{
  "openapi": "3.1.0",
  "info": {
    "title": "PortSIP PBX Rest API",
    "version": "22.3",
    "license": {
      "name": "PortSIP",
      "url": "https://portsip.com"
    },
    "x-logo": {
      "url": "/image/api-logo.png"
    },
    "description": "# Get Started\n\nThis document outlines the resources and corresponding operation interfaces of the PortSIP PBX RESTful APIs.\n\n> You cannot run the sample requests in this guide as-is. Replace call-specific parameters, such as tokens and IDs, with your own values.\n\n## Schema\n\n### Access\n\nThe API is accessible at `http(s)://[hostname]/api/`.\n\n### Data Format\n\n- All data is exchanged in JSON (JavaScript Object Notation) format.\n- Blank fields are explicitly included as null values to ensure consistency.\n\n### Timestamps\n\n- All timestamps returned by the API follow the RFC 3339 format: YYYY-MM-DDTHH:MM:SSZ.\n- This format specifies the year, month, day, hour, minute, second, and a mandatory \"Z\" character indicating Coordinated Universal Time (UTC).\n- For detailed information on timestamps in RFC 3339, refer to [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6).\n\n## Authentication and Authorization\n\n### PortSIP REST API uses Bearer Token Authentication:\n\n- Communication with the PortSIP REST API requires authentication.\n- The API utilizes Bearer token authentication, also known as token authentication.\n- A bearer token is a unique, opaque string generated by the server in response to a successful login request.\n- Clients must include this token in the Authorization header for accessing protected resources.\n\n### Obtaining an Access Token\n\n- The Account Login API endpoint is used to acquire an access token.\n- Upon successful login, the server sends a JSON response containing the access token within the `access_token`, `refresh_tokne` fields, along with additional details like expiry information and user role.\n\n**Example Access Token Response:**\n\n```json\n{\n    \"access_token\": \"NGMZZGRMZMQTNJG4YS0ZMJY3LWI1MTUTNWZJYTDIZDA4ODAY\",\n    \"expires_in\": 3600,\n    \"refresh_token\": \"NTU4Y2UXODATYJYZZC01OGI3LTKZMTATZGQ5ZGM1ODCZMDDM\",\n    \"token_type\": \"Bearer\"\n}\n```\n\n### Access Token Lifetime and Refresh\n\n- Access tokens have a limited lifespan indicated by either expires_at or expires_in fields in the response.\n- The `expires_in` value represents the duration in seconds until the token expires (e.g., 3600 seconds for one hour).\n- Before expiration, refresh the `access_token` using the refresh token API with the `refresh_token` to obtain a new one. \n- Re-use the access token until it expires to optimize API calls.\n\n## HTTP verbs\n\nThe PortSIP REST API supports both `GET` and `POST` HTTP verbs for each action.\n\n| Verb |                     Description                     |\n|:----:|:---------------------------------------------------:|\n| GET  |           Used for retrieving resources.            |\n| POST | Used for creating, replacing or deleting resources. |\n\n## Summary Representations\n\nWhen you fetch a list of resources, the response includes a subset of the attributes for that resource. This is the “summary” representation of the resource. Some attributes are computationally expensive for the API to provide. For performance reasons, the summary representation excludes those attributes. To obtain those attributes, fetch the “detailed” representation.\n\n## Resource ID\n\nEach resource has a corresponding ID, for example, `NzAwNTUxOTA5NzczMTQ4MTYw`. After successfully creating the resource, the user will receive the returned ID and must provide this ID when accessing the resource. Clients should treat this ID as an opaque string and should never attempt to assemble it. This document imposes no constraints on the format, and clients should never impose any.\n\n## Query Options Overview\n\nA query option is a set of query string parameters applied to a resource that can help control the amount of data being returned for the resource in the URL. Essentially, a query option requests that a service perform a set of transformations, such as filtering or sorting, on its data before returning the results.\n\n### Filter\n\nThe filter query option allows clients to filter a collection of resources addressed by a request URL. The expression specified with $filter is evaluated for each resource in the collection, and only items where the expression evaluates to true are included in the response. Resources for which the expression evaluates to false or null, or which reference properties unavailable due to permissions, are omitted from the response. You can find details on filter specification in the OData spec filter options section.\n\n**Examples:**\n\n- All CDRs with a caller equal to ‘101’: http://host/api/cdrs?filter=caller eq '101'\n- All CDRs with a caller not equal to ‘101’: http://host/api/cdrs?filter=caller ne '101'\n- All CDRs with a caller greater than ‘101’: http://host/api/cdrs?filter=caller gt '101'\n- All CDRs with a caller greater than or equal to ‘101’: http://host/api/cdrs?filter=caller ge '101'\n- All CDRs with a caller less than ‘101’: http://host/api/cdrs?filter=caller lt '101'\n- All CDRs with a caller less than or equal to ‘101’: http://host/api/cdrs?filter=caller le '101'\n- All CDRs with the caller ‘101’ that also have a start time greater than ‘2022-01-01T00:00:00Z’: http://host/api/cdrs?filter=caller eq '101' and started_at gt '2022-01-01T00:00:00Z'\n- All CDRs that either have the caller ‘101’ or have a start time less than ‘2022-01-01T00:00:00Z’: http://host/api/cdrs?filter=caller eq '101' or started_at lt '2022-01-01T00:00:00Z'\n- All CDRs that have a caller that starts with ‘10’: http://host/api/cdrs?filter=startswith(caller,'10')\n- All CDRs that have a caller that ends with ‘01’: http://host/api/cdrs?filter=endswith(caller,'01')\n- All CDRs that have a caller that contains ‘0’: http://host/api/cdrs?filter=contains(caller,'0')\n\n### OrderBy\n\n- The orderby system query option allows clients to request resources in a particular order.\n\n**Example:**\n\n- Return all CDRs ordered by caller in ascending order, then by start time in descending order: GET http://host/api/cdrs?orderby=caller asc, started_at desc\n\n### Top and Skip\n\nThe top system query option requests the number of items in the queried collection to be included in the result. The skip query option requests the number of items in the queried collection that are to be skipped and not included in the result. A client can request a particular page of items by combining top and skip. Note that skip numbering is 1-based and that omitting the skip parameter will return the first page.\n\n**Examples:**\n\n- Get top 100 CDRs: http://host/api/cdrs?top=100\n- Skip first 100 items: http://host/api/cdrs?$skip=100\n\n### Count\n\nThe count system query option allows clients to request a count of the matching resources included with the resources in the response. The count query option has a Boolean value of true or false.\n\n**Example:**\n\n- Return, along with the results, the total number of CDRs in the collection: http://host/api/cdrs?count=true\n\n### Search\n\nThe search system query option allows clients to request items within a collection matching a free-text search expression. The search query option can be applied to a URL representing a collection of entity, complex, or primitive typed instances. If both search and filter are applied to the same request, the results include only those items that match both criteria.\n\n**Example:**\n\n- All CDRs that are 101 or 102. It is up to the service to decide what makes a CDR 101 or 102: http://host/api/cdrs?search=101 or 102\n\n## Detailed representations\n\nWhen you fetch an individual resource, the response typically includes all attributes for that resource. This is the \"detailed\" representation of the resource. Note that authorization sometimes influences the amount of detail included in the representation.\n\n## Timezones\n\nSome requests that create new data allow you to provide time zone information when specifying or generating timestamps. We use RFC 3339 timestamps to determine time zone information for API calls.\n\n## API Response\n\nPortSIP PBX API calls return HTTP status codes. Some API calls also return JSON response bodies that include information about the resource.\n\n## Error Handling\n\nActionable failure conditions, covered in detail in their relevant sections, are reported as part of 4xx responses in a JSON response body. One or more errors will be returned in the following format:\n\n```JSON\n{\n  \"errors\": [\n    {\n      \"code\": \"<error identifier>\",\n      \"message\": \"<message describing condition>\",\n      \"detail\": \"<unstructured>\"\n    }\n  ]\n}\n```\n\n- The code field will be a unique identifier, all caps with underscores by convention.\n- The message field will be a human-readable string.\n- The optional detail field may contain arbitrary JSON data providing information the client can use to resolve the issue.\nWhile the client can take action on certain error codes, the registry may add new error codes over time. All client implementations should treat unknown error codes as `UNKNOWN`, allowing future error codes to be added without breaking API compatibility. For the purposes of the specification, error codes will only be added and never removed.\n\n### Errors\n\nThe error codes encountered via the API are enumerated in the following table:\n\n| Code            | Message                 | Description                                                               |\n|-----------------|-------------------------|---------------------------------------------------------------------------|\n| UNKNOWN         | unknown error           | Generic error returned when the error does not have an API classification |\n| VALIDATE_FAILED | field validation failed | This error code may be returned if a field validation fails.           |\n\n## Resource Synchronization\n\nPortSIP PBX RESTful APIs allow a client to request only resources that have changed. The high-level process is as follows:\n\n- Client requests a sync token from the server.\n- Server reports token 001.\n- Some time passes.\n- Client makes a sync request on the resource and supplies token 001.\n- Server returns resources that have been created, updated, or deleted and returns token 002.\nAs you can see, after the initial sync, only items that have been created, updated, or deleted will be sent. This has several advantages. The transmitted HTTP response bodies can generally be much shorter, and it is easier on both the client and server in terms of memory and CPU usage because only a limited set of items need to be compared.\n\nNote that a server is free to \"forget\" any sync tokens that have been previously issued. In this case, a full sync may be needed again. If the supplied sync token is not recognized by the server, an HTTP status code 403 is returned.\n\n## Personal Contacts Synchronization\n\nThe process for synchronizing personal contacts is as follows:\n\n1. Client gets a sync token from the server by sending a POST request to /api/user/contacts/sync_tokens.\n2. Server reports token 001.\n3. Some time passes.\n4. Client performs a sync operation by sending a POST request to /api/user/contacts/sync_tokens/{token}, supplying token 001.\n5. Server returns contacts that have been created, updated, or deleted and returns token 002.\n\n### Getting the First Sync Token\n\nInitially, request a sync token for contacts:\n\n```SHELL\ncurl -X POST 'https://HOSTNAME:PORT/api/user/contacts/sync_tokens'\n```\n\nThis would return something like the following:\n\n```JSON\n{\n  \"token\": \"001\"\n}\n```\n\n### Receiving Changes\n\nAfter a sync token has been obtained, the client can request all changes since the token was issued. This is done with a request that may look like this:\n\n```SHELL\ncurl -X POST 'https://HOSTNAME:PORT/api/user/contacts/sync_tokens/001'\n```\n\nThis would return something like the following:\n\n```JSON\n{\n  \"token\": \"002\",\n  \"items\": [\n    {\n      \"id\": \"CREATED-ITEM-ID\",\n      \"name\": \"...\",\n      \"email\": \"...\",\n      \"company\": \"...\",\n      \"title\": \"...\",\n      \"business\": \"...\",\n      \"business2\": \"...\",\n      \"mobile_phone\": \"...\",\n      \"mobile_phone2\": \"...\",\n      \"home_phone\": \"...\",\n      \"home_phone2\": \"...\",\n      \"other\": \"...\",\n      \"business_fax\": \"...\",\n      \"home_fax\": \"...\",\n      \"address\": \"...\",\n      \"notes\": \"...\",\n      \"favorite\": \"...\",\n      \"change_type\": \"CREATED\"\n    },\n    {\n      \"id\": \"UPDATED-ITEM-ID\",\n      \"name\": \"...\",\n      \"email\": \"...\",\n      \"company\": \"...\",\n      \"title\": \"...\",\n      \"business\": \"...\",\n      \"business2\": \"...\",\n      \"mobile_phone\": \"...\",\n      \"mobile_phone2\": \"...\",\n      \"home_phone\": \"...\",\n      \"home_phone2\": \"...\",\n      \"other\": \"...\",\n      \"business_fax\": \"...\",\n      \"home_fax\": \"...\",\n      \"address\": \"...\",\n      \"notes\": \"...\",\n      \"favorite\": \"...\",\n      \"change_type\": \"UPDATED\"\n    },\n    {\n      \"id\": \"DELETED-ITEM-ID\",\n      \"name\": \"...\",\n      \"email\": \"...\",\n      \"company\": \"...\",\n      \"title\": \"...\",\n      \"business\": \"...\",\n      \"business2\": \"...\",\n      \"mobile_phone\": \"...\",\n      \"mobile_phone2\": \"...\",\n      \"home_phone\": \"...\",\n      \"home_phone2\": \"...\",\n      \"other\": \"...\",\n      \"business_fax\": \"...\",\n      \"home_fax\": \"...\",\n      \"address\": \"...\",\n      \"notes\": \"...\",\n      \"favorite\": \"...\",\n      \"change_type\": \"DELETED\"\n    }\n  ]\n}\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": []
    }
  ],
  "tags": [
    {
      "name": "Administration",
      "x-displayName": "Administrations",
      "description": "Manage PBX System.\n"
    },
    {
      "name": "User",
      "x-displayName": "Users",
      "description": "Manage extension users.\n"
    },
    {
      "name": "Authentication",
      "x-displayName": "Authentication",
      "description": "Manage authentication.\n"
    },
    {
      "name": "Tenant",
      "x-displayName": "Tenants",
      "description": "Manage your tenants.\nAdmin user has access to details for his account and other tenant users,\nwhilst tenant user has access to his account info only.\n"
    },
    {
      "name": "Billing",
      "x-displayName": "Billing",
      "description": "Manage your billing.\n"
    },
    {
      "name": "Call Queue",
      "x-displayName": "Call Queues",
      "description": "Manage your call queues.\n"
    },
    {
      "name": "CTI",
      "x-displayName": "CTI",
      "description": "Manage CTI functions.\n"
    },
    {
      "name": "Call Session",
      "x-displayName": "Call Sessions",
      "description": "Manage your call sessions.\n"
    },
    {
      "name": "CDR",
      "x-displayName": "Call Detail Records",
      "description": "Manage your call detail records.\n"
    },
    {
      "name": "Conference",
      "x-displayName": "Conference",
      "description": "Manage your conference.\n"
    },
    {
      "name": "Contact",
      "x-displayName": "Contact",
      "description": "Manage your contacts.\n"
    },
    {
      "name": "Emergency Number",
      "x-displayName": "Emergency Numbers",
      "description": "Manage your Emergency numbers.\n"
    },
    {
      "name": "Extension",
      "x-displayName": "Extensions",
      "description": "Manage your extensions.\n"
    },
    {
      "name": "File",
      "x-displayName": "Files",
      "description": "Manage your files.\n"
    },
    {
      "name": "Blobs",
      "x-displayName": "Blobs",
      "description": "Manage file blobs.\n"
    },
    {
      "name": "Trunk",
      "x-displayName": "Trunks",
      "description": "Manage your trunks.\n"
    },
    {
      "name": "Inbound Rule",
      "x-displayName": "Inbound Rules",
      "description": "Manage your inbound rules.\n"
    },
    {
      "name": "Outbound Rule",
      "x-displayName": "Outbound rules",
      "description": "Manage your outbound rules.\n"
    },
    {
      "name": "Virtual Receptionist",
      "x-displayName": "Virtual Receptionists",
      "description": "Manage your virtual receptionists.\n"
    },
    {
      "name": "Media Server",
      "x-displayName": "Media Server",
      "description": "Manage your media servers.\n"
    },
    {
      "name": "MOH",
      "x-displayName": "MOH",
      "description": "Manage your MOH.\n"
    },
    {
      "name": "Automatic Callback",
      "x-displayName": "Automatic Callback",
      "description": "Manage Automatic Callback settings.\n"
    },
    {
      "name": "Auto Provisioning",
      "x-displayName": "Auto Provisioning",
      "description": "Manage your phone auto provisioning.\n"
    },
    {
      "name": "Push Notification",
      "x-displayName": "Push Notification",
      "description": "Manage your push notification.\n"
    },
    {
      "name": "Ring Group",
      "x-displayName": "Ring Groups",
      "description": "Manage your ring groups.\n"
    },
    {
      "name": "Shared Voicemail",
      "x-displayName": "Shared Voicemails",
      "description": "Manage your shared voicemail.\n"
    },
    {
      "name": "Security",
      "x-displayName": "Security",
      "description": "Manage your security options.\n"
    },
    {
      "name": "Feature Access Code",
      "x-displayName": "Feature Access Codes",
      "description": "Manage your feature access codes.\n"
    },
    {
      "name": "Voicemail",
      "x-displayName": "Voicemails",
      "description": "Manage voicemail functions.\n"
    },
    {
      "name": "Call Park",
      "x-displayName": "Call Park",
      "description": "Manage call park functions.\n"
    },
    {
      "name": "Call Pickup",
      "x-displayName": "Call Pickup",
      "description": "Manage call pickup functions.\n"
    },
    {
      "name": "Hot Desking",
      "x-displayName": "Hot Desking",
      "description": "Hot Desking of PBX system.\n"
    },
    {
      "name": "External Message",
      "x-displayName": "External Message",
      "description": "Manage external message service.\n"
    },
    {
      "name": "Notification",
      "x-displayName": "Notification",
      "description": "Manage notification functions.\n"
    },
    {
      "name": "Troubleshooting",
      "x-displayName": "Troubleshooting",
      "description": "Troubleshooting of PBX system.\n"
    },
    {
      "name": "Integration",
      "x-displayName": "Integrations",
      "description": "Manage integrations.\n"
    },
    {
      "name": "Dataflow",
      "x-displayName": "Dataflow",
      "description": "Manage Dataflow Functions.\n"
    }
  ],
  "paths": {
    "/info": {
      "get": {
        "tags": [
          "Authentication"
        ],
        "operationId": "retrieveMetadata",
        "x-category": "auth",
        "x-subcategory": "auth",
        "x-permissions": [],
        "summary": "Retrieve metadata.",
        "description": "Retrieve system metadata information.   \nIf the optional `domain` query parameter is specified,    \nthe relevant tenant metadata information will be returned together.   \nSystem metadata:   \n- `web_domain`\n- `private_ipv4`\n- `public_ipv4`\n- `enable_ipv6`\n- `private_ipv6`\n- `public_ipv6`\n- `primary_dns_server`\n- `secondary_dns_server`\n- `enable_dataflow`   \nTenant metadata:   \n- `name`\n- `domain`\n- `website`\n- `avatar_url`\n- `enable_ms365_integration`\n- `ms365_authorization_endpoint`\n",
        "parameters": [
          {
            "name": "domain",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "Use the `domain` query parameter to retrieve just a subset of a collection.\n"
          }
        ],
        "security": [],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "web_domain": {
                      "type": "string",
                      "description": "The web domain for PortSIP PBX\n"
                    },
                    "private_ipv4": {
                      "type": "string",
                      "description": "The private IPv4 of system.\n"
                    },
                    "public_ipv4": {
                      "type": "string",
                      "description": "The public IPv4 of system.\n"
                    },
                    "enable_ipv6": {
                      "type": "boolean",
                      "default": true,
                      "description": "Indicates if IPv6 would be enabled.\n"
                    },
                    "private_ipv6": {
                      "type": "string",
                      "description": "The private IPv6 of system.\n"
                    },
                    "public_ipv6": {
                      "type": "string",
                      "description": "The public IPv6 of system.\n"
                    },
                    "primary_dns_server": {
                      "type": "string",
                      "description": "The primary DNS server.\n"
                    },
                    "secondary_dns_server": {
                      "type": "string",
                      "description": "The secondary DNS server.\n"
                    },
                    "name": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 1024,
                      "description": "The name of the tenant.\n"
                    },
                    "domain": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 280,
                      "description": "The SIP domain of tenant.  \nIt is usually a fully qualified domain name (FQDN).\nIf there is no FQDN, you can also use the IP address of the PBX server as the SIP domain.\nThe SIP domain name is only used for SIP message authentication and does not require analysis.\n"
                    },
                    "website": {
                      "type": "string",
                      "maxLength": 255,
                      "description": "The official website of tenant.\n"
                    },
                    "avatar_url": {
                      "type": "string",
                      "readOnly": true,
                      "example": "/api/blobs/WexWdABcd5D4PDgzTKV3gAAAEu00WcK",
                      "description": "The relative path to file url for file downloading.\n"
                    },
                    "enable_ms365_integration": {
                      "type": "boolean",
                      "description": "Microsoft 365 SSO integration enabled or not.\n"
                    },
                    "ms365_authorization_endpoint": {
                      "type": "string",
                      "description": "The Microsoft Identity Provider authorization endpoint for this tenant.\n"
                    },
                    "enable_dataflow": {
                      "type": "boolean",
                      "description": "Dataflow service enabled or not.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "web_domain": "example.com",
                      "private_ipv4": "127.0.0.1",
                      "public_ipv4": "127.0.0.1",
                      "enable_ipv6": false,
                      "private_ipv6": "::1",
                      "public_ipv6": "::1",
                      "primary_dns_server": "127.0.0.1",
                      "secondary_dns_server": "127.0.0.1",
                      "name": "example",
                      "domain": "example.com",
                      "website": "example.com",
                      "avatar_url": "avatar.com/avatar",
                      "enable_ms365_integration": false,
                      "ms365_authorization_endpoint": "/ms365",
                      "enable_dataflow": true
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/auth/sign_in": {
      "post": {
        "tags": [
          "Authentication"
        ],
        "operationId": "signInWithCredentials",
        "x-category": "auth",
        "x-subcategory": "auth",
        "x-permissions": [],
        "summary": "Sign in with credentials",
        "description": "Sign in with credentials\n",
        "security": [],
        "parameters": [
          {
            "name": "qr",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "username": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64,
                    "description": "The user's account name.   \nOnly letters, numbers, and the following special characters can be added: underscore, dash, single quote, and period (_, -, ', and .).   \nUsername cannot start or end with period (.).   \n`admin`, `system`, `administrator`, and `root` are reserved names for system admin only with case ignored.\n"
                  },
                  "password": {
                    "type": "string",
                    "description": "The password of user.\n"
                  },
                  "domain": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 280,
                    "description": "The SIP domain of tenant.  \nIt is usually a fully qualified domain name (FQDN).\nIf there is no FQDN, you can also use the IP address of the PBX server as the SIP domain.\nThe SIP domain name is only used for SIP message authentication and does not require analysis.\n"
                  }
                },
                "required": [
                  "username",
                  "password"
                ]
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "username": null,
                    "password": null,
                    "domain": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "type": "object",
                      "properties": {
                        "two_factor_enabled": {
                          "type": "boolean",
                          "description": "Indicates that two factor authentication is enabled. Always true.\n"
                        },
                        "token": {
                          "type": "string",
                          "description": "The session token in authentication flow.\n"
                        }
                      }
                    },
                    {
                      "type": "object",
                      "properties": {
                        "token_type": {
                          "type": "string",
                          "description": "The token type.\n"
                        },
                        "access_token": {
                          "type": "string",
                          "description": "The access token.\n"
                        },
                        "refresh_token": {
                          "type": "string",
                          "description": "The refresh token.\n"
                        },
                        "expires_in": {
                          "type": "integer",
                          "description": "The access token expiration time in seconds."
                        }
                      }
                    }
                  ]
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "access_token": "xxxxxxxxxxx",
                      "refresh_token": "xxxxxxxxxxxxx",
                      "token_type": "Bearer",
                      "expires_in": 1800
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/auth/sign_in/{provider}": {
      "post": {
        "tags": [
          "Authentication"
        ],
        "operationId": "signInWithSocialAccount",
        "x-category": "auth",
        "x-subcategory": "auth",
        "x-permissions": [],
        "summary": "Sign in with social account",
        "description": "Sign in with social account\n",
        "security": [],
        "parameters": [
          {
            "name": "provider",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The name of IdP provider. Currently only supports microsoft.\n"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "domain": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 280,
                    "description": "The SIP domain of tenant.  \nIt is usually a fully qualified domain name (FQDN).\nIf there is no FQDN, you can also use the IP address of the PBX server as the SIP domain.\nThe SIP domain name is only used for SIP message authentication and does not require analysis.\n"
                  },
                  "callback_url": {
                    "type": "string",
                    "description": "The callback url for authentication flow.\n"
                  }
                },
                "required": [
                  "domain",
                  "callback_url"
                ]
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "domain": null,
                    "callback_url": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "url": {
                      "type": "string",
                      "description": "The IdP authentication url.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "url": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/auth/sign_out": {
      "post": {
        "tags": [
          "Authentication"
        ],
        "operationId": "signOut",
        "x-category": "auth",
        "x-subcategory": "auth",
        "x-permissions": [],
        "summary": "Sign out from system.",
        "description": "Sign out from system.\n",
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/auth/send_otp": {
      "post": {
        "tags": [
          "Authentication"
        ],
        "operationId": "sendOTP",
        "x-category": "auth",
        "x-subcategory": "auth",
        "x-permissions": [],
        "summary": "Send OTP to email.",
        "description": "Request to send OTP to email.\n",
        "security": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "token": {
                    "type": "string",
                    "description": "The session token in authentication flow.\n"
                  }
                },
                "required": [
                  "token"
                ]
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "token": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/auth/verify_otp": {
      "post": {
        "tags": [
          "Authentication"
        ],
        "operationId": "verifyOTP",
        "x-category": "auth",
        "x-subcategory": "auth",
        "x-permissions": [],
        "summary": "Verify OTP from email.",
        "description": "Request to verify OTP from email.\n",
        "security": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "token": {
                    "type": "string",
                    "description": "The session token in authentication flow.\n"
                  },
                  "code": {
                    "type": "string",
                    "description": "The OTP code in authentication flow.\n"
                  }
                },
                "required": [
                  "token",
                  "code"
                ]
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "token": null,
                    "code": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/auth/forget_password": {
      "post": {
        "tags": [
          "Authentication"
        ],
        "operationId": "forgetPassword",
        "x-category": "auth",
        "x-subcategory": "auth",
        "x-permissions": [],
        "summary": "Initiate authentication forget password flow",
        "description": "Initiate authentication forget password flow.\n",
        "security": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "domain": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 280,
                    "description": "The SIP domain of tenant.  \nIt is usually a fully qualified domain name (FQDN).\nIf there is no FQDN, you can also use the IP address of the PBX server as the SIP domain.\nThe SIP domain name is only used for SIP message authentication and does not require analysis.\n"
                  },
                  "username": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64,
                    "description": "The user's account name.   \nOnly letters, numbers, and the following special characters can be added: underscore, dash, single quote, and period (_, -, ', and .).   \nUsername cannot start or end with period (.).   \n`admin`, `system`, `administrator`, and `root` are reserved names for system admin only with case ignored.\n"
                  },
                  "callback_url": {
                    "type": "string",
                    "description": "The callback url for authentication flow.\n"
                  }
                },
                "required": [
                  "domain",
                  "username",
                  "callback_url"
                ]
              },
              "examples": {
                "default": {
                  "summary": "An example for forget password",
                  "value": {
                    "domain": null,
                    "username": null,
                    "callback_url": null,
                    "required": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/auth/reset_password": {
      "post": {
        "tags": [
          "Authentication"
        ],
        "operationId": "resetPassword",
        "x-category": "auth",
        "x-subcategory": "auth",
        "x-permissions": [],
        "summary": "Reset password with session token.",
        "description": "Reset password with session token.\n",
        "security": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "token": {
                    "type": "string",
                    "description": "The session token in authentication flow.\n"
                  },
                  "new_password": {
                    "type": "string",
                    "description": "The password of user.\n"
                  }
                },
                "required": [
                  "token",
                  "new_password"
                ]
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "token": null,
                    "new_password": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/auth/refresh_token": {
      "post": {
        "tags": [
          "Authentication"
        ],
        "operationId": "refreshToken",
        "x-category": "auth",
        "x-subcategory": "auth",
        "x-permissions": [],
        "summary": "Refresh the access token.",
        "description": "Refresh the access token.\n",
        "security": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "refresh_token": {
                    "type": "string",
                    "description": "The refresh token.\n"
                  }
                },
                "required": [
                  "refresh_token"
                ]
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "refresh_token": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "token_type": {
                      "type": "string",
                      "description": "The token type.\n"
                    },
                    "access_token": {
                      "type": "string",
                      "description": "The access token.\n"
                    },
                    "refresh_token": {
                      "type": "string",
                      "description": "The refresh token.\n"
                    },
                    "expires_in": {
                      "type": "integer",
                      "description": "The access token expiration time in seconds."
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/auth/user": {
      "get": {
        "tags": [
          "Authentication"
        ],
        "operationId": "getUserAuthInfo",
        "x-category": "auth",
        "x-subcategory": "auth",
        "x-permissions": [],
        "summary": "Get the authentication information of the logged-in user.",
        "description": "Get the authentication information of the logged-in user.\n",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "domain": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 280,
                      "description": "The SIP domain of tenant.  \nIt is usually a fully qualified domain name (FQDN).\nIf there is no FQDN, you can also use the IP address of the PBX server as the SIP domain.\nThe SIP domain name is only used for SIP message authentication and does not require analysis.\n"
                    },
                    "role_id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of role.\n"
                    },
                    "role_name": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64,
                      "example": "User",
                      "description": "Roles include built-in roles and custom roles.   \nBuilt-in roles roles cannot be modified.   \nAlso, the names of built-in roles are reserved words,   \ncustom roles are not allowed to use these names to avoid unnecessary confusion.   \nBuilt-in roles include:   \n- `SystemAdmin`: the system administrator has almost all permissions.\n- `OperationsAdmin`: the operations administrator.\n- `SiteAdmin`: the site administrator.\n- `Dealer`: the sales manager has all sold tenant resource permissions.\n- `Admin`: the admin has all tenant-wide resource permissions.\n- `StandardUser`: the user all user-wide resource permissions.\n- `StandardInternationalUser`: the user all user-wide resource permissions with international call permissions.\n- `QueueManager`: The call queue manager.\n"
                    },
                    "capabilities": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "description": "The permission string."
                      }
                    },
                    "password_verified": {
                      "type": "boolean",
                      "description": "Whether the user password has been verified.\n",
                      "example": true
                    },
                    "password_force_reset": {
                      "type": "boolean",
                      "default": false,
                      "description": "Whether to force reset the initial password.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "domain": null,
                      "role_id": null,
                      "role_name": null,
                      "capabilities": null,
                      "password_verified": null,
                      "password_force_reset": null
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        }
      }
    },
    "/login": {
      "get": {
        "tags": [
          "Authentication"
        ],
        "operationId": "getLoginStatus",
        "x-category": "auth",
        "x-subcategory": "auth",
        "x-permissions": [],
        "summary": "Get login status of current session",
        "description": "Get login status of current session.\n",
        "security": [],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "access_token": {
                      "type": "string",
                      "description": "Access token to be passed as a header\n",
                      "example": "4DFCF1D4C30B4D798ECE3AE43769F008."
                    },
                    "expires_at": {
                      "type": "string",
                      "format": "date_time",
                      "description": "The expiration date of the access token in RFC 3339 format, for example, ```2017-07-21T17:32:28Z```.\nThe RFC 3339 format is defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6)\n",
                      "example": "2017-07-21T17:32:28Z"
                    },
                    "expires_in": {
                      "type": "integer",
                      "format": "int32",
                      "example": 1800,
                      "readOnly": true,
                      "description": "The number of seconds that the access token will be valid.\n"
                    },
                    "role": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64,
                      "example": "User",
                      "description": "Roles include built-in roles and custom roles.   \nBuilt-in roles roles cannot be modified.   \nAlso, the names of built-in roles are reserved words,   \ncustom roles are not allowed to use these names to avoid unnecessary confusion.   \nBuilt-in roles include:   \n- `SystemAdmin`: the system administrator has almost all permissions.\n- `OperationsAdmin`: the operations administrator.\n- `SiteAdmin`: the site administrator.\n- `Dealer`: the sales manager has all sold tenant resource permissions.\n- `Admin`: the admin has all tenant-wide resource permissions.\n- `StandardUser`: the user all user-wide resource permissions.\n- `StandardInternationalUser`: the user all user-wide resource permissions with international call permissions.\n- `QueueManager`: The call queue manager.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "access_token": null,
                      "expires_at": null,
                      "expires_in": null,
                      "role": null
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        }
      },
      "post": {
        "tags": [
          "Authentication"
        ],
        "operationId": "login",
        "x-category": "auth",
        "x-subcategory": "auth",
        "x-permissions": [],
        "summary": "Login into system",
        "description": "Login with username and password.\n",
        "security": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "username": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64,
                    "description": "The user's account name.   \nOnly letters, numbers, and the following special characters can be added: underscore, dash, single quote, and period (_, -, ', and .).   \nUsername cannot start or end with period (.).   \n`admin`, `system`, `administrator`, and `root` are reserved names for system admin only with case ignored.\n"
                  },
                  "password": {
                    "type": "string",
                    "description": "The password of user.\n"
                  },
                  "domain": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 280,
                    "description": "The SIP domain of tenant.  \nIt is usually a fully qualified domain name (FQDN).\nIf there is no FQDN, you can also use the IP address of the PBX server as the SIP domain.\nThe SIP domain name is only used for SIP message authentication and does not require analysis.\n"
                  }
                },
                "required": [
                  "username",
                  "password"
                ]
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "username": null,
                    "password": null,
                    "domain": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/login/by_microsoft": {
      "post": {
        "tags": [
          "Authentication"
        ],
        "operationId": "loginWithMicrosoft",
        "x-category": "auth",
        "x-subcategory": "auth",
        "x-permissions": [],
        "summary": "login with Microsoft Identity Provider by Authorization Code Flow",
        "description": "login with Microsoft Identity Provider by Authorization Code Flow.\n",
        "security": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/x-www-form-urlencoded": {
              "schema": {
                "type": "object",
                "properties": {
                  "domain": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 280,
                    "description": "The SIP domain of tenant.  \nIt is usually a fully qualified domain name (FQDN).\nIf there is no FQDN, you can also use the IP address of the PBX server as the SIP domain.\nThe SIP domain name is only used for SIP message authentication and does not require analysis.\n"
                  }
                },
                "required": [
                  "domain"
                ]
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "domain": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "302": {
            "description": "Found"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/logout": {
      "post": {
        "tags": [
          "Authentication"
        ],
        "operationId": "logout",
        "x-category": "auth",
        "x-subcategory": "auth",
        "x-permissions": [],
        "summary": "Log out from system",
        "description": "Logs out current session.\n",
        "security": [],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/network": {
      "get": {
        "tags": [
          "Administration"
        ],
        "operationId": "retrieveNetworkConfigurations",
        "x-category": "system-management",
        "x-subcategory": "system-management",
        "x-permissions": [],
        "summary": "Retrieve network configurations",
        "description": "Get network configurations.\n",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "web_domain": {
                      "type": "string",
                      "description": "The web domain for PortSIP PBX\n"
                    },
                    "private_ipv4": {
                      "type": "string",
                      "description": "The private IPv4 of system.\n"
                    },
                    "public_ipv4": {
                      "type": "string",
                      "description": "The public IPv4 of system.\n"
                    },
                    "enable_ipv6": {
                      "type": "boolean",
                      "default": true,
                      "description": "Indicates if IPv6 would be enabled.\n"
                    },
                    "private_ipv6": {
                      "type": "string",
                      "description": "The private IPv6 of system.\n"
                    },
                    "public_ipv6": {
                      "type": "string",
                      "description": "The public IPv6 of system.\n"
                    },
                    "primary_dns_server": {
                      "type": "string",
                      "description": "The primary DNS server.\n"
                    },
                    "secondary_dns_server": {
                      "type": "string",
                      "description": "The secondary DNS server.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "web_domain": null,
                      "private_ipv4": null,
                      "public_ipv4": null,
                      "enable_ipv6": null,
                      "private_ipv6": null,
                      "public_ipv6": null,
                      "primary_dns_server": null,
                      "secondary_dns_server": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "post": {
        "tags": [
          "Administration"
        ],
        "operationId": "updateNetworkConfigurations",
        "x-category": "system-management",
        "x-subcategory": "system-management",
        "x-permissions": [
          "SystemSettings.FullAccess"
        ],
        "summary": "Update network configurations",
        "description": "Update network configurations for PortSIP PBX.\n",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "web_domain": {
                    "type": "string",
                    "description": "The web domain for PortSIP PBX\n"
                  },
                  "private_ipv4": {
                    "type": "string",
                    "description": "The private IPv4 of system.\n"
                  },
                  "public_ipv4": {
                    "type": "string",
                    "description": "The public IPv4 of system.\n"
                  },
                  "enable_ipv6": {
                    "type": "boolean",
                    "default": true,
                    "description": "Indicates if IPv6 would be enabled.\n"
                  },
                  "private_ipv6": {
                    "type": "string",
                    "description": "The private IPv6 of system.\n"
                  },
                  "public_ipv6": {
                    "type": "string",
                    "description": "The public IPv6 of system.\n"
                  },
                  "primary_dns_server": {
                    "type": "string",
                    "description": "The primary DNS server.\n"
                  },
                  "secondary_dns_server": {
                    "type": "string",
                    "description": "The secondary DNS server.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "web_domain": null,
                    "private_ipv4": null,
                    "public_ipv4": null,
                    "enable_ipv6": null,
                    "private_ipv6": null,
                    "public_ipv6": null,
                    "primary_dns_server": null,
                    "secondary_dns_server": null
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/admin/users": {
      "post": {
        "tags": [
          "Administration"
        ],
        "operationId": "createAdminUser",
        "x-category": "system-management",
        "x-subcategory": "users",
        "x-permissions": [
          "User.FullAccess"
        ],
        "summary": "Create a user",
        "description": "Create a user.\n",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64,
                    "description": "The user's account name.   \nOnly letters, numbers, and the following special characters can be added: underscore, dash, single quote, and period (_, -, ', and .).   \nUsername cannot start or end with period (.).   \n`admin`, `system`, `administrator`, and `root` are reserved names for system admin only with case ignored.\n"
                  },
                  "password": {
                    "type": "string",
                    "description": "The password of user.\n"
                  },
                  "email": {
                    "allOf": [
                      {
                        "type": "string",
                        "maxLength": 128,
                        "description": "The email address.\n",
                        "example": "example@example.com"
                      }
                    ],
                    "description": "The email address of user.\n"
                  },
                  "display_name": {
                    "type": "string",
                    "maxLength": 1024,
                    "description": "The display name of user.\n"
                  },
                  "enabled": {
                    "type": "boolean",
                    "default": true,
                    "description": "Whether user is enabled.\n"
                  },
                  "role": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64,
                    "example": "User",
                    "description": "Roles include built-in roles and custom roles.   \nBuilt-in roles roles cannot be modified.   \nAlso, the names of built-in roles are reserved words,   \ncustom roles are not allowed to use these names to avoid unnecessary confusion.   \nBuilt-in roles include:   \n- `SystemAdmin`: the system administrator has almost all permissions.\n- `OperationsAdmin`: the operations administrator.\n- `SiteAdmin`: the site administrator.\n- `Dealer`: the sales manager has all sold tenant resource permissions.\n- `Admin`: the admin has all tenant-wide resource permissions.\n- `StandardUser`: the user all user-wide resource permissions.\n- `StandardInternationalUser`: the user all user-wide resource permissions with international call permissions.\n- `QueueManager`: The call queue manager.\n"
                  },
                  "mobile_phone": {
                    "type": "string",
                    "maxLength": 32,
                    "description": "The mobile phone number of user.\n"
                  },
                  "work_phone": {
                    "type": "string",
                    "maxLength": 32,
                    "description": "The office phone number of user.\n"
                  },
                  "home_phone": {
                    "type": "string",
                    "maxLength": 32,
                    "description": "The home phone number of user.\n"
                  },
                  "address": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The address.\n"
                  },
                  "department": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The department of user.\n"
                  },
                  "website": {
                    "type": "string",
                    "description": "The website of user.\n"
                  }
                },
                "required": [
                  "name",
                  "display_name",
                  "password",
                  "email",
                  "role"
                ]
              },
              "examples": {
                "default": {
                  "psummary": null,
                  "value": {
                    "name": null,
                    "password": null,
                    "email": null,
                    "display_name": null,
                    "enabled": null,
                    "role": null,
                    "mobile_phone": null,
                    "work_phone": null,
                    "home_phone": null,
                    "address": null,
                    "department": null,
                    "website": ""
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                      "description": "The unique ID of the resource.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "The ID of created resource",
                    "value": {
                      "id": "xxxxxxxx"
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "get": {
        "tags": [
          "Administration"
        ],
        "operationId": "listAdminUsers",
        "x-category": "system-management",
        "x-subcategory": "users",
        "x-permissions": [
          "User.ViewOny"
        ],
        "summary": "List users",
        "description": "List a collection of users.",
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Use the `filter` query parameter to retrieve just a subset of a collection.\n"
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "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",
            "required": false,
            "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",
            "required": false,
            "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",
            "required": false,
            "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,
                      "example": 100,
                      "description": "Total number of resource.\n"
                    },
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string",
                            "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                            "description": "The unique ID of the resource.\n"
                          },
                          "name": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 64,
                            "description": "The user's account name.   \nOnly letters, numbers, and the following special characters can be added: underscore, dash, single quote, and period (_, -, ', and .).   \nUsername cannot start or end with period (.).   \n`admin`, `system`, `administrator`, and `root` are reserved names for system admin only with case ignored.\n"
                          },
                          "enabled": {
                            "type": "boolean",
                            "default": true,
                            "description": "Whether user is enabled.\n"
                          },
                          "protected": {
                            "type": "boolean",
                            "readOnly": true,
                            "default": false,
                            "description": "Whether user is protected.\n"
                          },
                          "email": {
                            "allOf": [
                              {
                                "type": "string",
                                "maxLength": 128,
                                "description": "The email address.\n",
                                "example": "example@example.com"
                              }
                            ],
                            "description": "The email address of user.\n"
                          },
                          "display_name": {
                            "type": "string",
                            "maxLength": 1024,
                            "description": "The display name of user.\n"
                          },
                          "role_id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "description": "The unique ID of role.\n"
                          },
                          "role_name": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 64,
                            "example": "User",
                            "description": "Roles include built-in roles and custom roles.   \nBuilt-in roles roles cannot be modified.   \nAlso, the names of built-in roles are reserved words,   \ncustom roles are not allowed to use these names to avoid unnecessary confusion.   \nBuilt-in roles include:   \n- `SystemAdmin`: the system administrator has almost all permissions.\n- `OperationsAdmin`: the operations administrator.\n- `SiteAdmin`: the site administrator.\n- `Dealer`: the sales manager has all sold tenant resource permissions.\n- `Admin`: the admin has all tenant-wide resource permissions.\n- `StandardUser`: the user all user-wide resource permissions.\n- `StandardInternationalUser`: the user all user-wide resource permissions with international call permissions.\n- `QueueManager`: The call queue manager.\n"
                          },
                          "mobile_phone": {
                            "type": "string",
                            "maxLength": 32,
                            "description": "The mobile phone number of user.\n"
                          },
                          "work_phone": {
                            "type": "string",
                            "maxLength": 32,
                            "description": "The office phone number of user.\n"
                          },
                          "home_phone": {
                            "type": "string",
                            "maxLength": 32,
                            "description": "The home phone number of user.\n"
                          },
                          "address": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The address.\n"
                          },
                          "department": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The department of user.\n"
                          },
                          "website": {
                            "type": "string",
                            "description": "The website of user.\n"
                          },
                          "avatar_file_name": {
                            "type": "string",
                            "description": "The name of the file.\n"
                          },
                          "avatar_file_size": {
                            "type": "integer",
                            "format": "int64",
                            "minimum": 0,
                            "example": 0,
                            "description": "The file size in bytes.\n"
                          },
                          "avatar_file_url": {
                            "type": "string",
                            "readOnly": true,
                            "example": "/api/blobs/WexWdABcd5D4PDgzTKV3gAAAEu00WcK",
                            "description": "The relative path to file url for file downloading.\n"
                          },
                          "created_at": {
                            "allOf": [
                              {
                                "type": "string",
                                "format": "date_time",
                                "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                                "example": "2017-07-21T17:32:28Z"
                              }
                            ],
                            "description": "The creation time of user.\n"
                          },
                          "login_at": {
                            "allOf": [
                              {
                                "type": "string",
                                "format": "date_time",
                                "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                                "example": "2017-07-21T17:32:28Z"
                              }
                            ],
                            "description": "The last sign in time of user.\n"
                          },
                          "logout_at": {
                            "allOf": [
                              {
                                "type": "string",
                                "format": "date_time",
                                "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                                "example": "2017-07-21T17:32:28Z"
                              }
                            ],
                            "description": "The last sign out time of user.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": null,
                          "name": null,
                          "enabled": null,
                          "protected": null,
                          "email": null,
                          "display_name": null,
                          "role_id": null,
                          "role_name": null,
                          "mobile_phone": null,
                          "work_phone": null,
                          "home_phone": null,
                          "address": null,
                          "department": null,
                          "website": null,
                          "created_at": null,
                          "login_at": null,
                          "logout_at": null,
                          "avatar_file_name": null,
                          "avatar_file_size": null,
                          "avatar_file_url": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/admin/users/{id}": {
      "get": {
        "tags": [
          "Administration"
        ],
        "operationId": "getAdminUser",
        "x-category": "system-management",
        "x-subcategory": "users",
        "x-permissions": [
          "User.ViewOny"
        ],
        "summary": "Get a user",
        "description": "Retrieves information of a user.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of user.\n"
            },
            "description": "The unique ID of user."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of user.\n"
                    },
                    "name": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64,
                      "description": "The user's account name.   \nOnly letters, numbers, and the following special characters can be added: underscore, dash, single quote, and period (_, -, ', and .).   \nUsername cannot start or end with period (.).   \n`admin`, `system`, `administrator`, and `root` are reserved names for system admin only with case ignored.\n"
                    },
                    "email": {
                      "allOf": [
                        {
                          "type": "string",
                          "maxLength": 128,
                          "description": "The email address.\n",
                          "example": "example@example.com"
                        }
                      ],
                      "description": "The email address of user.\n"
                    },
                    "display_name": {
                      "type": "string",
                      "maxLength": 1024,
                      "description": "The display name of user.\n"
                    },
                    "role_id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of role.\n"
                    },
                    "role_name": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64,
                      "example": "User",
                      "description": "Roles include built-in roles and custom roles.   \nBuilt-in roles roles cannot be modified.   \nAlso, the names of built-in roles are reserved words,   \ncustom roles are not allowed to use these names to avoid unnecessary confusion.   \nBuilt-in roles include:   \n- `SystemAdmin`: the system administrator has almost all permissions.\n- `OperationsAdmin`: the operations administrator.\n- `SiteAdmin`: the site administrator.\n- `Dealer`: the sales manager has all sold tenant resource permissions.\n- `Admin`: the admin has all tenant-wide resource permissions.\n- `StandardUser`: the user all user-wide resource permissions.\n- `StandardInternationalUser`: the user all user-wide resource permissions with international call permissions.\n- `QueueManager`: The call queue manager.\n"
                    },
                    "enabled": {
                      "type": "boolean",
                      "default": true,
                      "description": "Whether user is enabled.\n"
                    },
                    "protected": {
                      "type": "boolean",
                      "readOnly": true,
                      "default": false,
                      "description": "Whether user is protected.\n"
                    },
                    "mobile_phone": {
                      "type": "string",
                      "maxLength": 32,
                      "description": "The mobile phone number of user.\n"
                    },
                    "work_phone": {
                      "type": "string",
                      "maxLength": 32,
                      "description": "The office phone number of user.\n"
                    },
                    "home_phone": {
                      "type": "string",
                      "maxLength": 32,
                      "description": "The home phone number of user.\n"
                    },
                    "address": {
                      "type": "string",
                      "maxLength": 128,
                      "description": "The address.\n"
                    },
                    "department": {
                      "type": "string",
                      "maxLength": 128,
                      "description": "The department of user.\n"
                    },
                    "website": {
                      "type": "string",
                      "description": "The website of user.\n"
                    },
                    "created_at": {
                      "allOf": [
                        {
                          "type": "string",
                          "format": "date_time",
                          "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                          "example": "2017-07-21T17:32:28Z"
                        }
                      ],
                      "description": "The creation time of user.\n"
                    },
                    "login_at": {
                      "allOf": [
                        {
                          "type": "string",
                          "format": "date_time",
                          "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                          "example": "2017-07-21T17:32:28Z"
                        }
                      ],
                      "description": "The last sign in time of user.\n"
                    },
                    "logout_at": {
                      "allOf": [
                        {
                          "type": "string",
                          "format": "date_time",
                          "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                          "example": "2017-07-21T17:32:28Z"
                        }
                      ],
                      "description": "The last sign out time of user.\n"
                    },
                    "avatar_file_name": {
                      "type": "string",
                      "description": "The name of the file.\n"
                    },
                    "avatar_file_size": {
                      "type": "integer",
                      "format": "int64",
                      "minimum": 0,
                      "example": 0,
                      "description": "The file size in bytes.\n"
                    },
                    "avatar_file_url": {
                      "type": "string",
                      "readOnly": true,
                      "example": "/api/blobs/WexWdABcd5D4PDgzTKV3gAAAEu00WcK",
                      "description": "The relative path to file url for file downloading.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "id": null,
                      "name": null,
                      "email": null,
                      "display_name": null,
                      "role_id": null,
                      "role_name": null,
                      "enabled": null,
                      "protected": null,
                      "mobile_phone": null,
                      "work_phone": null,
                      "home_phone": null,
                      "address": null,
                      "department": null,
                      "website": null,
                      "created_at": null,
                      "login_at": null,
                      "logout_at": null,
                      "avatar_file_name": null,
                      "avatar_file_size": null,
                      "avatar_file_url": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "post": {
        "tags": [
          "Administration"
        ],
        "operationId": "updateAdminUser",
        "x-category": "system-management",
        "x-subcategory": "users",
        "x-permissions": [
          "User.FullAccess"
        ],
        "summary": "Update a user",
        "description": "Change configurations of user.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of user.\n"
            },
            "description": "The unique ID of the user."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "email": {
                    "allOf": [
                      {
                        "type": "string",
                        "maxLength": 128,
                        "description": "The email address.\n",
                        "example": "example@example.com"
                      }
                    ],
                    "description": "The email address of user.\n"
                  },
                  "display_name": {
                    "type": "string",
                    "maxLength": 1024,
                    "description": "The display name of user.\n"
                  },
                  "enabled": {
                    "type": "boolean",
                    "default": true,
                    "description": "Whether user is enabled.\n"
                  },
                  "mobile_phone": {
                    "type": "string",
                    "maxLength": 32,
                    "description": "The mobile phone number of user.\n"
                  },
                  "work_phone": {
                    "type": "string",
                    "maxLength": 32,
                    "description": "The office phone number of user.\n"
                  },
                  "home_phone": {
                    "type": "string",
                    "maxLength": 32,
                    "description": "The home phone number of user.\n"
                  },
                  "address": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The address.\n"
                  },
                  "department": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The department of user.\n"
                  },
                  "website": {
                    "type": "string",
                    "description": "The website of user.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "email": null,
                    "display_name": null,
                    "enabled": null,
                    "mobile_phone": null,
                    "work_phone": null,
                    "home_phone": null,
                    "address": null,
                    "department": null,
                    "website": null
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/admin/users/{id}/username": {
      "post": {
        "tags": [
          "Administration"
        ],
        "operationId": "changeAdminUserUsername",
        "x-category": "system-management",
        "x-subcategory": "users",
        "x-permissions": [
          "User.FullAccess"
        ],
        "summary": "Change username",
        "description": "Change admin user username.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of user.\n"
            },
            "description": "The unique ID of user."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64,
                    "description": "The user's account name.   \nOnly letters, numbers, and the following special characters can be added: underscore, dash, single quote, and period (_, -, ', and .).   \nUsername cannot start or end with period (.).   \n`admin`, `system`, `administrator`, and `root` are reserved names for system admin only with case ignored.\n"
                  }
                },
                "required": [
                  "name"
                ]
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "name": null
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/admin/users/{id}/password": {
      "post": {
        "tags": [
          "Administration"
        ],
        "operationId": "changeAdminUserPassword",
        "x-category": "system-management",
        "x-subcategory": "users",
        "x-permissions": [
          "User.FullAccess"
        ],
        "summary": "Change user password",
        "description": "Change admin user password.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of user.\n"
            },
            "description": "The unique ID of user."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "password": {
                    "allOf": [
                      {
                        "type": "string",
                        "description": "The password of system admin.\n"
                      }
                    ],
                    "description": "The new password of admin user.\n"
                  }
                },
                "required": [
                  "password"
                ]
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "password": "xxxxxxxxxxxx"
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/admin/users/{id}/role": {
      "post": {
        "tags": [
          "Administration"
        ],
        "operationId": "changeAdminUserRole",
        "x-category": "system-management",
        "x-subcategory": "users",
        "x-permissions": [
          "User.FullAccess"
        ],
        "summary": "Change user role",
        "description": "Change admin user role.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of user.\n"
            },
            "description": "The unique ID of the user."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "role": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64,
                    "example": "User",
                    "description": "Roles include built-in roles and custom roles.   \nBuilt-in roles roles cannot be modified.   \nAlso, the names of built-in roles are reserved words,   \ncustom roles are not allowed to use these names to avoid unnecessary confusion.   \nBuilt-in roles include:   \n- `SystemAdmin`: the system administrator has almost all permissions.\n- `OperationsAdmin`: the operations administrator.\n- `SiteAdmin`: the site administrator.\n- `Dealer`: the sales manager has all sold tenant resource permissions.\n- `Admin`: the admin has all tenant-wide resource permissions.\n- `StandardUser`: the user all user-wide resource permissions.\n- `StandardInternationalUser`: the user all user-wide resource permissions with international call permissions.\n- `QueueManager`: The call queue manager.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "role": null
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/admin/users/{id}/destroy": {
      "post": {
        "tags": [
          "Administration"
        ],
        "operationId": "deleteAdminUser",
        "x-category": "system-management",
        "x-subcategory": "users",
        "x-permissions": [
          "User.FullAccess"
        ],
        "summary": "Delete a user",
        "description": "Delete a user.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of user.\n"
            },
            "description": "The unique ID of the user."
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/admin/user": {
      "get": {
        "tags": [
          "Administration"
        ],
        "operationId": "getCurrentAdminUser",
        "x-category": "system-management",
        "x-subcategory": "users",
        "x-permissions": [],
        "summary": "Get current user",
        "description": "Retrieves information about the currently logged-in administrator user.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of user.\n"
                    },
                    "name": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64,
                      "description": "The user's account name.   \nOnly letters, numbers, and the following special characters can be added: underscore, dash, single quote, and period (_, -, ', and .).   \nUsername cannot start or end with period (.).   \n`admin`, `system`, `administrator`, and `root` are reserved names for system admin only with case ignored.\n"
                    },
                    "email": {
                      "allOf": [
                        {
                          "type": "string",
                          "maxLength": 128,
                          "description": "The email address.\n",
                          "example": "example@example.com"
                        }
                      ],
                      "description": "The email address of user.\n"
                    },
                    "display_name": {
                      "type": "string",
                      "maxLength": 1024,
                      "description": "The display name of user.\n"
                    },
                    "role_id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of role.\n"
                    },
                    "role_name": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64,
                      "example": "User",
                      "description": "Roles include built-in roles and custom roles.   \nBuilt-in roles roles cannot be modified.   \nAlso, the names of built-in roles are reserved words,   \ncustom roles are not allowed to use these names to avoid unnecessary confusion.   \nBuilt-in roles include:   \n- `SystemAdmin`: the system administrator has almost all permissions.\n- `OperationsAdmin`: the operations administrator.\n- `SiteAdmin`: the site administrator.\n- `Dealer`: the sales manager has all sold tenant resource permissions.\n- `Admin`: the admin has all tenant-wide resource permissions.\n- `StandardUser`: the user all user-wide resource permissions.\n- `StandardInternationalUser`: the user all user-wide resource permissions with international call permissions.\n- `QueueManager`: The call queue manager.\n"
                    },
                    "enabled": {
                      "type": "boolean",
                      "default": true,
                      "description": "Whether user is enabled.\n"
                    },
                    "protected": {
                      "type": "boolean",
                      "readOnly": true,
                      "default": false,
                      "description": "Whether user is protected.\n"
                    },
                    "mobile_phone": {
                      "type": "string",
                      "maxLength": 32,
                      "description": "The mobile phone number of user.\n"
                    },
                    "work_phone": {
                      "type": "string",
                      "maxLength": 32,
                      "description": "The office phone number of user.\n"
                    },
                    "home_phone": {
                      "type": "string",
                      "maxLength": 32,
                      "description": "The home phone number of user.\n"
                    },
                    "address": {
                      "type": "string",
                      "maxLength": 128,
                      "description": "The address.\n"
                    },
                    "department": {
                      "type": "string",
                      "maxLength": 128,
                      "description": "The department of user.\n"
                    },
                    "website": {
                      "type": "string",
                      "description": "The website of user.\n"
                    },
                    "created_at": {
                      "allOf": [
                        {
                          "type": "string",
                          "format": "date_time",
                          "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                          "example": "2017-07-21T17:32:28Z"
                        }
                      ],
                      "description": "The creation time of user.\n"
                    },
                    "login_at": {
                      "allOf": [
                        {
                          "type": "string",
                          "format": "date_time",
                          "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                          "example": "2017-07-21T17:32:28Z"
                        }
                      ],
                      "description": "The last sign in time of user.\n"
                    },
                    "logout_at": {
                      "allOf": [
                        {
                          "type": "string",
                          "format": "date_time",
                          "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                          "example": "2017-07-21T17:32:28Z"
                        }
                      ],
                      "description": "The last sign out time of user.\n"
                    },
                    "avatar_file_name": {
                      "type": "string",
                      "description": "The name of the file.\n"
                    },
                    "avatar_file_size": {
                      "type": "integer",
                      "format": "int64",
                      "minimum": 0,
                      "example": 0,
                      "description": "The file size in bytes.\n"
                    },
                    "avatar_file_url": {
                      "type": "string",
                      "readOnly": true,
                      "example": "/api/blobs/WexWdABcd5D4PDgzTKV3gAAAEu00WcK",
                      "description": "The relative path to file url for file downloading.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "id": null,
                      "name": null,
                      "email": null,
                      "display_name": null,
                      "role_id": null,
                      "role_name": null,
                      "enabled": null,
                      "protected": null,
                      "mobile_phone": null,
                      "work_phone": null,
                      "home_phone": null,
                      "address": null,
                      "department": null,
                      "website": null,
                      "created_at": null,
                      "login_at": null,
                      "logout_at": null,
                      "avatar_file_name": null,
                      "avatar_file_size": null,
                      "avatar_file_url": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "post": {
        "tags": [
          "Administration"
        ],
        "operationId": "updateCurrentAdminUser",
        "x-category": "system-management",
        "x-subcategory": "users",
        "x-permissions": [],
        "summary": "Update current user",
        "description": "Change configurations of currently logged-in administrator user.\n",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "email": {
                    "allOf": [
                      {
                        "type": "string",
                        "maxLength": 128,
                        "description": "The email address.\n",
                        "example": "example@example.com"
                      }
                    ],
                    "description": "The email address of user.\n"
                  },
                  "display_name": {
                    "type": "string",
                    "maxLength": 1024,
                    "description": "The display name of user.\n"
                  },
                  "mobile_phone": {
                    "type": "string",
                    "maxLength": 32,
                    "description": "The mobile phone number of user.\n"
                  },
                  "work_phone": {
                    "type": "string",
                    "maxLength": 32,
                    "description": "The office phone number of user.\n"
                  },
                  "home_phone": {
                    "type": "string",
                    "maxLength": 32,
                    "description": "The home phone number of user.\n"
                  },
                  "address": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The address.\n"
                  },
                  "department": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The department of user.\n"
                  },
                  "website": {
                    "type": "string",
                    "description": "The website of user.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "email": null,
                    "display_name": null,
                    "mobile_phone": null,
                    "work_phone": null,
                    "home_phone": null,
                    "address": null,
                    "department": null,
                    "website": null
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/admin/user/username": {
      "post": {
        "tags": [
          "Administration"
        ],
        "operationId": "changeCurrentAdminUserUsername",
        "x-category": "system-management",
        "x-subcategory": "users",
        "x-permissions": [],
        "summary": "Change current user username",
        "description": "Change current admin user username.\n",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64,
                    "description": "The user's account name.   \nOnly letters, numbers, and the following special characters can be added: underscore, dash, single quote, and period (_, -, ', and .).   \nUsername cannot start or end with period (.).   \n`admin`, `system`, `administrator`, and `root` are reserved names for system admin only with case ignored.\n"
                  }
                },
                "required": [
                  "name"
                ]
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "name": null
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/admin/user/password": {
      "post": {
        "tags": [
          "Administration"
        ],
        "operationId": "changeCurrentAdminUserPassword",
        "x-category": "system-management",
        "x-subcategory": "users",
        "x-permissions": [],
        "summary": "Change current user password",
        "description": "Change current admin user password.\n",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "old_password": {
                    "allOf": [
                      {
                        "type": "string",
                        "description": "The password of system admin.\n"
                      }
                    ],
                    "description": "The old password of admin user.\n"
                  },
                  "new_password": {
                    "allOf": [
                      {
                        "type": "string",
                        "description": "The password of system admin.\n"
                      }
                    ],
                    "description": "The new password of admin user.\n"
                  }
                },
                "required": [
                  "old_password",
                  "new_password"
                ]
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "old_password": null,
                    "new_password": null
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/admin/status": {
      "get": {
        "tags": [
          "Administration"
        ],
        "operationId": "retrieveCurrentSystemStatus",
        "x-category": "system-management",
        "x-subcategory": "system-management",
        "x-permissions": [
          "SystemInformation.ViewOnly"
        ],
        "summary": "Retrieve current system status",
        "description": "Get current status of system.\n",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "version": {
                      "type": "string",
                      "description": "The version information of PortSIP PBX.\n"
                    },
                    "news": {
                      "type": "string",
                      "description": "The news information of PortSIP PBX.\n"
                    },
                    "license_key": {
                      "type": "string",
                      "description": "The license key of PortSIP PBX.\n"
                    },
                    "license_type": {
                      "type": "string",
                      "description": "The license type of product.\n"
                    },
                    "maintenance_expires_at": {
                      "allOf": [
                        {
                          "type": "string",
                          "format": "date_time",
                          "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                          "example": "2017-07-21T17:32:28Z"
                        }
                      ],
                      "description": "The maintenance expiry time.\n"
                    },
                    "max_concurrent_calls": {
                      "type": "integer",
                      "format": "int32",
                      "description": "The number of authorized concurrent calls purchased by the user.\n"
                    },
                    "licensed_users": {
                      "type": "integer",
                      "format": "int32",
                      "description": "The maximum number of authorized users purchased by the system admin.\n"
                    },
                    "current_users": {
                      "type": "integer",
                      "format": "int32",
                      "description": "The number of current users of the system.\n"
                    },
                    "online_users": {
                      "type": "integer",
                      "format": "int32",
                      "description": "The number of current online users of the system.\n"
                    },
                    "current_tenants": {
                      "type": "integer",
                      "format": "int32",
                      "description": "The number of current tenants of the system.\n"
                    },
                    "current_dealers": {
                      "type": "integer",
                      "format": "int32",
                      "description": "The number of current dealers of the system.\n"
                    },
                    "current_calls": {
                      "type": "integer",
                      "format": "int32",
                      "description": "The current number of calls.\n"
                    },
                    "current_trunks": {
                      "type": "integer",
                      "format": "int32",
                      "description": "The current number of trunks.\n"
                    },
                    "current_conference_servers": {
                      "type": "integer",
                      "format": "int32",
                      "description": "The current number of conference servers.\n"
                    },
                    "current_media_servers": {
                      "type": "integer",
                      "format": "int32",
                      "description": "The current number of media servers.\n"
                    },
                    "current_call_queue_servers": {
                      "type": "integer",
                      "format": "int32",
                      "description": "The current number of call queue servers.\n"
                    },
                    "current_ivr_servers": {
                      "type": "integer",
                      "format": "int32",
                      "description": "The current number of ivr servers.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "version": null,
                      "news": null,
                      "license_key": null,
                      "license_type": null,
                      "maintenance_expires_at": null,
                      "max_concurrent_calls": null,
                      "licensed_users": null,
                      "current_users": null,
                      "online_users": null,
                      "current_tenants": null,
                      "current_dealers": null,
                      "current_calls": null,
                      "current_trunks": null,
                      "current_conference_servers": null,
                      "current_media_servers": null,
                      "current_call_queue_servers": null,
                      "current_ivr_servers": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/admin/settings": {
      "get": {
        "tags": [
          "Administration"
        ],
        "operationId": "listOptions",
        "x-category": "system-management",
        "x-subcategory": "system-management",
        "x-permissions": [
          "SystemSettings.ViewOnly"
        ],
        "summary": "Retrieve system settings",
        "description": "Retrieve settings for PortSIP PBX.\n",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "user_agent": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 1024,
                      "default": "PortSIP UC",
                      "description": "User agent.\n"
                    },
                    "blocked_user_agents": {
                      "type": "string",
                      "description": "The semicolon separated list of blocked user agents.\n"
                    },
                    "enable_shared_address_space_address_range": {
                      "type": "boolean",
                      "default": true,
                      "description": "Enable Shared Address Space Address Range or not (RFC 6598).\n"
                    },
                    "enable_digest_auth": {
                      "type": "boolean",
                      "default": true,
                      "description": "Indicates if DIGEST authentication would be enabled.\n"
                    },
                    "enable_auth_mid_dialog": {
                      "type": "boolean",
                      "default": false,
                      "description": "Indicates if PortSIP PBX requires authentication against all subsequent\nrequests originated from one calling.\n"
                    },
                    "enable_digest_auth_int": {
                      "type": "boolean",
                      "default": false,
                      "description": "Indicates if auth-int DIGEST authentication mode would be enabled.\n"
                    },
                    "enable_external_recording": {
                      "type": "boolean",
                      "default": true,
                      "description": "Allow external calls recording.\n"
                    },
                    "enable_reject_bad_nonce": {
                      "type": "boolean",
                      "default": false,
                      "description": "When a client sends a bad nonce in their credentials,\nreturn 403 message if this parameter is true, or send a new  challenge if this parameter is false.\n"
                    },
                    "statistics_log_interval": {
                      "type": "integer",
                      "format": "int32",
                      "minimum": 0,
                      "default": 600,
                      "description": "Interval for statistics logs, in seconds.\n"
                    },
                    "dead_session_timeout": {
                      "type": "integer",
                      "format": "int32",
                      "minimum": 0,
                      "default": 600,
                      "description": "Close the session if no RTP packets received within specified duration, in seconds.\n"
                    },
                    "enable_session_timer": {
                      "type": "boolean",
                      "default": true,
                      "description": "Indicates if session timer (RFC 4028) would be enabled. \nThis also requires client support.\n"
                    },
                    "session_timer_duration": {
                      "type": "integer",
                      "format": "int32",
                      "minimum": 90,
                      "maximum": 3600,
                      "default": 3600,
                      "description": "Duration recorded by Session timer.\nPrecondition: \"enable_session_timer\" MUST be set to true.\n"
                    },
                    "enable_to_tag_in_register": {
                      "type": "boolean",
                      "default": false,
                      "description": "Indicates if \"to\" tag is allowed in REGISTER message.\n"
                    },
                    "enable_congestion_management": {
                      "type": "boolean",
                      "default": true,
                      "description": "Indicates if congestion management would be enabled.\n"
                    },
                    "congestion_management_metric": {
                      "type": "string",
                      "enum": [
                        "WAIT_TIME",
                        "TIME_DEPTH",
                        "SIZE"
                      ],
                      "description": "Precondition: \"enable_congestion_management\" parameter MUST be set to true.\nThe recommended is WAIT_TIME based on the expected wait time for each FIFO.\n- `WAIT_TIME`:\n- `TIME_DEPTH`:\n- `SIZE`:\n"
                    },
                    "congestion_management_tolerance": {
                      "type": "integer",
                      "format": "int32",
                      "minimum": 0,
                      "default": 600,
                      "description": "Precondition: \"enable_congestion_management\" parameter MUST be set to true.\nCongestion management tolerance for the given metric.\nThis parameter determines when the Rejection Behavior changes.\n"
                    },
                    "enable_create_non_exist_extension": {
                      "type": "boolean",
                      "default": false,
                      "description": "Indicates if the extension would be automatically created when a non-existent extension try to register.\nIf it is set to true, when a non-included extension tries to send\nregistry message to PBX, the PBX will create the extension with\ndefault password \"portsip\" automatically.\n"
                    },
                    "enable_prack": {
                      "type": "boolean",
                      "default": false,
                      "description": "Enable prack or not.\n"
                    },
                    "enable_tenant_level_trunk": {
                      "type": "boolean",
                      "default": true,
                      "description": "Whether to enable tenant-level trunk.\n"
                    },
                    "enable_diversion_support": {
                      "type": "boolean",
                      "default": false,
                      "description": "Enable Diversion support or not (RFC 5806).\n"
                    },
                    "enable_history_info_support": {
                      "type": "boolean",
                      "default": false,
                      "description": "Enable History-Info support (RFC 7044).\n"
                    },
                    "enable_outbound_support": {
                      "type": "boolean",
                      "default": true,
                      "description": "Enable Outbound Support or not (RFC 5626).\n"
                    },
                    "flow_timer": {
                      "type": "integer",
                      "format": "int32",
                      "minimum": 0,
                      "default": 0,
                      "description": "The flow timer interval in seconds.\n"
                    },
                    "register_expiration_time": {
                      "type": "integer",
                      "minimum": 90,
                      "maximum": 3600,
                      "default": 300,
                      "description": "The register expiration time in seconds.\n"
                    },
                    "enable_auto_answer_alert_info_header": {
                      "type": "boolean",
                      "default": false,
                      "description": "Enable call-info header for auto answer or not.\n"
                    },
                    "auto_answer_alert_info_header": {
                      "type": "string",
                      "enum": [
                        "INTERCOM",
                        "ALERT_AUTO_ANSWER",
                        "AUTO_ANSWER"
                      ],
                      "description": "Alert-info header to be added in INVITE message when PBX is forwarding the page/intercom.\nValues includes:\n- `INTERCOM`: info=intercom.\n- `ALERT_AUTO_ANSWER`: Alert-Info:;info=alert-autoanswer;delay=0.\n- `AUTO_ANSWER`: info=Auto Answer.\n"
                    },
                    "enable_auto_answer_call_info_header": {
                      "type": "boolean",
                      "default": true,
                      "description": "Enable call-info header for auto answer.\nThe value is \"sip:portsip.com;answer-after=0\".\n"
                    },
                    "enable_require_answer_mode": {
                      "type": "boolean",
                      "default": false,
                      "description": "Enable Require Answer Mode (RFC 5373) for auto answer.\n"
                    },
                    "enable_www_auth": {
                      "type": "boolean",
                      "default": false,
                      "description": "Enable WWW authentication or not.\n"
                    },
                    "user_equal_required_for_auth_name": {
                      "type": "boolean",
                      "default": true,
                      "description": "User equal required for authentication name.\n"
                    },
                    "trace_server_host": {
                      "type": "string",
                      "description": "Tracer server host.\n"
                    },
                    "trace_server_port": {
                      "allOf": [
                        {
                          "type": "integer",
                          "format": "int32",
                          "minimum": 0,
                          "maximum": 65535,
                          "example": 80,
                          "description": "A port number is a 16-bit unsigned integer, thus ranging from 0 to 65535.\nFor TCP, port number 0 is reserved and cannot be used, while for UDP, the source port is optional and a value of zero means no port\n"
                        }
                      ],
                      "description": "The tracer server port.\n"
                    },
                    "web_failed_auth_amount": {
                      "type": "integer",
                      "format": "int32",
                      "minimum": 0,
                      "default": 5,
                      "description": "Block if failed to login PortSIP PBX Web more than this times.\n"
                    },
                    "web_blacklist_time_interval": {
                      "type": "integer",
                      "format": "int32",
                      "minimum": 0,
                      "default": 3600,
                      "description": "The web blocked time in seconds.\n"
                    },
                    "sip_failed_auth_amount": {
                      "type": "integer",
                      "format": "int32",
                      "minimum": 0,
                      "default": 50,
                      "description": "The number of authentication failures.\n"
                    },
                    "sip_failed_challenge_requests_amount": {
                      "type": "integer",
                      "format": "int32",
                      "minimum": 0,
                      "default": 1000,
                      "description": "DOS attacks can send REGISTER/INVITE requests but do not reply to Challenge (407).\nConfigure the amount of \"fake\" requests that PortSIP PBX will accept per IP Address.\nIf this value is exceeded in \"Detection Period\" interval the source IP address is put in the Blacklist.\nIP will remain blacklisted till \"SIP Blacklist time interval\" expires.\n"
                    },
                    "sip_blacklist_time_interval": {
                      "type": "integer",
                      "format": "int32",
                      "minimum": 0,
                      "default": 3600,
                      "description": "The sip blocked time in seconds.\n"
                    },
                    "sip_detection_period": {
                      "type": "integer",
                      "format": "int32",
                      "minimum": 0,
                      "default": 10,
                      "description": "The detection period in seconds.\n"
                    },
                    "sip_barrier_1_packets": {
                      "type": "integer",
                      "format": "int32",
                      "minimum": 0,
                      "default": 5000,
                      "description": "If the amount of packets is exceeded, the PBX will block the source IP for \"Level 1 blacklist time interval\" seconds.\n"
                    },
                    "sip_barrier_1_blocking_time": {
                      "type": "integer",
                      "format": "int32",
                      "minimum": 0,
                      "default": 3600,
                      "description": "This is the time interval in seconds that an abusive IP Address remains in the blacklist\n"
                    },
                    "sip_barrier_2_packets": {
                      "type": "integer",
                      "format": "int32",
                      "minimum": 0,
                      "default": 2000,
                      "description": "If the amount of packets is exceeded, the PBX will block the source IP for \"Level 2 blacklist time interval\" seconds.\n"
                    },
                    "sip_barrier_2_blocking_time": {
                      "type": "integer",
                      "format": "int32",
                      "minimum": 0,
                      "default": 30,
                      "description": "This is the time interval in seconds that an abusive IP Address remains in the blacklist\n"
                    },
                    "stir_shaken_cert": {
                      "type": "string",
                      "description": "Content of this certificate file for STIR/SHAKEN support.\n"
                    },
                    "stir_shaken_key": {
                      "type": "string",
                      "description": "Content of this private certificate file for STIR/SHAKEN support.\n"
                    },
                    "custom_options": {
                      "type": "string",
                      "description": "Some custom configuration options serialized as json string.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "user_agent": null,
                      "blocked_user_agents": null,
                      "enable_shared_address_space_address_range": null,
                      "enable_digest_auth": null,
                      "enable_auth_mid_dialog": null,
                      "enable_digest_auth_int": null,
                      "enable_external_recording": null,
                      "enable_reject_bad_nonce": null,
                      "statistics_log_interval": null,
                      "dead_session_timeout": null,
                      "enable_session_timer": null,
                      "session_timer_duration": null,
                      "enable_to_tag_in_register": null,
                      "enable_congestion_management": null,
                      "congestion_management_metric": null,
                      "congestion_management_tolerance": null,
                      "enable_create_non_exist_extension": null,
                      "enable_prack": null,
                      "enable_tenant_level_trunk": null,
                      "enable_diversion_support": null,
                      "enable_history_info_support": null,
                      "enable_outbound_support": null,
                      "flow_timer": null,
                      "register_expiration_time": null,
                      "enable_auto_answer_alert_info_header": null,
                      "auto_answer_alert_info_header": null,
                      "enable_auto_answer_call_info_header": null,
                      "enable_require_answer_mode": null,
                      "enable_www_auth": null,
                      "user_equal_required_for_auth_name": null,
                      "trace_server_host": null,
                      "trace_server_port": null,
                      "web_failed_auth_amount": null,
                      "web_blacklist_time_interval": null,
                      "sip_failed_auth_amount": null,
                      "sip_failed_challenge_requests_amount": null,
                      "sip_blacklist_time_interval": null,
                      "sip_detection_period": null,
                      "sip_barrier_1_packets": null,
                      "sip_barrier_1_blocking_time": null,
                      "sip_barrier_2_packets": null,
                      "sip_barrier_2_blocking_time": null,
                      "stir_shaken_cert": null,
                      "stir_shaken_key": null,
                      "custom_options": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "post": {
        "tags": [
          "Administration"
        ],
        "operationId": "updateOptions",
        "x-category": "system-management",
        "x-subcategory": "system-management",
        "x-permissions": [
          "SystemSettings.FullAccess"
        ],
        "summary": "Update system settings",
        "description": "Update settings for PortSIP PBX\n",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "user_agent": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 1024,
                    "default": "PortSIP UC",
                    "description": "User agent.\n"
                  },
                  "blocked_user_agents": {
                    "type": "string",
                    "description": "The semicolon separated list of blocked user agents.\n"
                  },
                  "enable_shared_address_space_address_range": {
                    "type": "boolean",
                    "default": true,
                    "description": "Enable Shared Address Space Address Range or not (RFC 6598).\n"
                  },
                  "enable_digest_auth": {
                    "type": "boolean",
                    "default": true,
                    "description": "Indicates if DIGEST authentication would be enabled.\n"
                  },
                  "enable_auth_mid_dialog": {
                    "type": "boolean",
                    "default": false,
                    "description": "Indicates if PortSIP PBX requires authentication against all subsequent\nrequests originated from one calling.\n"
                  },
                  "enable_digest_auth_int": {
                    "type": "boolean",
                    "default": false,
                    "description": "Indicates if auth-int DIGEST authentication mode would be enabled.\n"
                  },
                  "enable_external_recording": {
                    "type": "boolean",
                    "default": true,
                    "description": "Allow external calls recording.\n"
                  },
                  "enable_reject_bad_nonce": {
                    "type": "boolean",
                    "default": false,
                    "description": "When a client sends a bad nonce in their credentials,\nreturn 403 message if this parameter is true, or send a new  challenge if this parameter is false.\n"
                  },
                  "statistics_log_interval": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 0,
                    "default": 600,
                    "description": "Interval for statistics logs, in seconds.\n"
                  },
                  "dead_session_timeout": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 0,
                    "default": 600,
                    "description": "Close the session if no RTP packets received within specified duration, in seconds.\n"
                  },
                  "enable_session_timer": {
                    "type": "boolean",
                    "default": true,
                    "description": "Indicates if session timer (RFC 4028) would be enabled. \nThis also requires client support.\n"
                  },
                  "session_timer_duration": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 90,
                    "maximum": 3600,
                    "default": 3600,
                    "description": "Duration recorded by Session timer.\nPrecondition: \"enable_session_timer\" MUST be set to true.\n"
                  },
                  "enable_to_tag_in_register": {
                    "type": "boolean",
                    "default": false,
                    "description": "Indicates if \"to\" tag is allowed in REGISTER message.\n"
                  },
                  "enable_congestion_management": {
                    "type": "boolean",
                    "default": true,
                    "description": "Indicates if congestion management would be enabled.\n"
                  },
                  "congestion_management_metric": {
                    "type": "string",
                    "enum": [
                      "WAIT_TIME",
                      "TIME_DEPTH",
                      "SIZE"
                    ],
                    "description": "Precondition: \"enable_congestion_management\" parameter MUST be set to true.\nThe recommended is WAIT_TIME based on the expected wait time for each FIFO.\n- `WAIT_TIME`:\n- `TIME_DEPTH`:\n- `SIZE`:\n"
                  },
                  "congestion_management_tolerance": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 0,
                    "default": 600,
                    "description": "Precondition: \"enable_congestion_management\" parameter MUST be set to true.\nCongestion management tolerance for the given metric.\nThis parameter determines when the Rejection Behavior changes.\n"
                  },
                  "enable_create_non_exist_extension": {
                    "type": "boolean",
                    "default": false,
                    "description": "Indicates if the extension would be automatically created when a non-existent extension try to register.\nIf it is set to true, when a non-included extension tries to send\nregistry message to PBX, the PBX will create the extension with\ndefault password \"portsip\" automatically.\n"
                  },
                  "enable_prack": {
                    "type": "boolean",
                    "default": false,
                    "description": "Enable prack or not.\n"
                  },
                  "enable_tenant_level_trunk": {
                    "type": "boolean",
                    "default": true,
                    "description": "Whether to enable tenant-level trunk.\n"
                  },
                  "enable_diversion_support": {
                    "type": "boolean",
                    "default": false,
                    "description": "Enable Diversion support or not (RFC 5806).\n"
                  },
                  "enable_history_info_support": {
                    "type": "boolean",
                    "default": false,
                    "description": "Enable History-Info support (RFC 7044).\n"
                  },
                  "enable_outbound_support": {
                    "type": "boolean",
                    "default": true,
                    "description": "Enable Outbound Support or not (RFC 5626).\n"
                  },
                  "flow_timer": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 0,
                    "default": 0,
                    "description": "The flow timer interval in seconds.\n"
                  },
                  "register_expiration_time": {
                    "type": "integer",
                    "minimum": 90,
                    "maximum": 3600,
                    "default": 300,
                    "description": "The register expiration time in seconds.\n"
                  },
                  "enable_auto_answer_alert_info_header": {
                    "type": "boolean",
                    "default": false,
                    "description": "Enable call-info header for auto answer or not.\n"
                  },
                  "auto_answer_alert_info_header": {
                    "type": "string",
                    "enum": [
                      "INTERCOM",
                      "ALERT_AUTO_ANSWER",
                      "AUTO_ANSWER"
                    ],
                    "description": "Alert-info header to be added in INVITE message when PBX is forwarding the page/intercom.\nValues includes:\n- `INTERCOM`: info=intercom.\n- `ALERT_AUTO_ANSWER`: Alert-Info:;info=alert-autoanswer;delay=0.\n- `AUTO_ANSWER`: info=Auto Answer.\n"
                  },
                  "enable_auto_answer_call_info_header": {
                    "type": "boolean",
                    "default": true,
                    "description": "Enable call-info header for auto answer.\nThe value is \"sip:portsip.com;answer-after=0\".\n"
                  },
                  "enable_require_answer_mode": {
                    "type": "boolean",
                    "default": false,
                    "description": "Enable Require Answer Mode (RFC 5373) for auto answer.\n"
                  },
                  "enable_www_auth": {
                    "type": "boolean",
                    "default": false,
                    "description": "Enable WWW authentication or not.\n"
                  },
                  "user_equal_required_for_auth_name": {
                    "type": "boolean",
                    "default": true,
                    "description": "User equal required for authentication name.\n"
                  },
                  "trace_server_host": {
                    "type": "string",
                    "description": "Tracer server host.\n"
                  },
                  "trace_server_port": {
                    "allOf": [
                      {
                        "type": "integer",
                        "format": "int32",
                        "minimum": 0,
                        "maximum": 65535,
                        "example": 80,
                        "description": "A port number is a 16-bit unsigned integer, thus ranging from 0 to 65535.\nFor TCP, port number 0 is reserved and cannot be used, while for UDP, the source port is optional and a value of zero means no port\n"
                      }
                    ],
                    "description": "The tracer server port.\n"
                  },
                  "web_failed_auth_amount": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 0,
                    "default": 5,
                    "description": "Block if failed to login PortSIP PBX Web more than this times.\n"
                  },
                  "web_blacklist_time_interval": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 0,
                    "default": 3600,
                    "description": "The web blocked time in seconds.\n"
                  },
                  "sip_failed_auth_amount": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 0,
                    "default": 50,
                    "description": "The number of authentication failures.\n"
                  },
                  "sip_failed_challenge_requests_amount": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 0,
                    "default": 1000,
                    "description": "DOS attacks can send REGISTER/INVITE requests but do not reply to Challenge (407).\nConfigure the amount of \"fake\" requests that PortSIP PBX will accept per IP Address.\nIf this value is exceeded in \"Detection Period\" interval the source IP address is put in the Blacklist.\nIP will remain blacklisted till \"SIP Blacklist time interval\" expires.\n"
                  },
                  "sip_blacklist_time_interval": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 0,
                    "default": 3600,
                    "description": "The sip blocked time in seconds.\n"
                  },
                  "sip_detection_period": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 0,
                    "default": 10,
                    "description": "The detection period in seconds.\n"
                  },
                  "sip_barrier_1_packets": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 0,
                    "default": 5000,
                    "description": "If the amount of packets is exceeded, the PBX will block the source IP for \"Level 1 blacklist time interval\" seconds.\n"
                  },
                  "sip_barrier_1_blocking_time": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 0,
                    "default": 3600,
                    "description": "This is the time interval in seconds that an abusive IP Address remains in the blacklist\n"
                  },
                  "sip_barrier_2_packets": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 0,
                    "default": 2000,
                    "description": "If the amount of packets is exceeded, the PBX will block the source IP for \"Level 2 blacklist time interval\" seconds.\n"
                  },
                  "sip_barrier_2_blocking_time": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 0,
                    "default": 30,
                    "description": "This is the time interval in seconds that an abusive IP Address remains in the blacklist\n"
                  },
                  "stir_shaken_cert": {
                    "type": "string",
                    "description": "Content of this certificate file for STIR/SHAKEN support.\n"
                  },
                  "stir_shaken_key": {
                    "type": "string",
                    "description": "Content of this private certificate file for STIR/SHAKEN support.\n"
                  },
                  "custom_options": {
                    "type": "string",
                    "description": "Some custom configuration options serialized as json string.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "user_agent": null,
                    "blocked_user_agents": null,
                    "enable_shared_address_space_address_range": null,
                    "enable_digest_auth": null,
                    "enable_auth_mid_dialog": null,
                    "enable_digest_auth_int": null,
                    "enable_external_recording": null,
                    "enable_reject_bad_nonce": null,
                    "statistics_log_interval": null,
                    "dead_session_timeout": null,
                    "enable_session_timer": null,
                    "session_timer_duration": null,
                    "enable_to_tag_in_register": null,
                    "enable_congestion_management": null,
                    "congestion_management_metric": null,
                    "congestion_management_tolerance": null,
                    "enable_create_non_exist_extension": null,
                    "enable_prack": null,
                    "enable_tenant_level_trunk": null,
                    "enable_diversion_support": null,
                    "enable_history_info_support": null,
                    "enable_outbound_support": null,
                    "flow_timer": null,
                    "register_expiration_time": null,
                    "enable_auto_answer_alert_info_header": null,
                    "auto_answer_alert_info_header": null,
                    "enable_auto_answer_call_info_header": null,
                    "enable_require_answer_mode": null,
                    "enable_www_auth": null,
                    "user_equal_required_for_auth_name": null,
                    "trace_server_host": null,
                    "trace_server_port": null,
                    "web_failed_auth_amount": null,
                    "web_blacklist_time_interval": null,
                    "sip_failed_auth_amount": null,
                    "sip_failed_challenge_requests_amount": null,
                    "sip_blacklist_time_interval": null,
                    "sip_detection_period": null,
                    "sip_barrier_1_packets": null,
                    "sip_barrier_1_blocking_time": null,
                    "sip_barrier_2_packets": null,
                    "sip_barrier_2_blocking_time": null,
                    "stir_shaken_cert": null,
                    "stir_shaken_key": null,
                    "custom_options": null
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/admin/notification": {
      "get": {
        "tags": [
          "Administration"
        ],
        "operationId": "getSystemNotificationSettings",
        "x-category": "system-management",
        "x-subcategory": "integrations",
        "x-permissions": [
          "SystemSettings.ViewOnly"
        ],
        "summary": "Retrieve system notification settings",
        "description": "Retrieve details of system notification settings.\n",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "type": {
                      "type": "string",
                      "enum": [
                        "SMTP",
                        "MS365",
                        "GMAIL"
                      ],
                      "description": "The email server type.   \nCan be either:   \n- `SMTP`: Use generic SMTP server.\n- `MS365` Use Microsoft 365 email service.\n- `GMAIL` Use Google Gmail service.\n"
                    },
                    "server": {
                      "type": "string",
                      "description": "SMTP server used for sending mails.\n"
                    },
                    "port": {
                      "type": "integer",
                      "format": "int32",
                      "minimum": 0,
                      "maximum": 65535,
                      "example": 80,
                      "description": "A port number is a 16-bit unsigned integer, thus ranging from 0 to 65535.\nFor TCP, port number 0 is reserved and cannot be used, while for UDP, the source port is optional and a value of zero means no port\n"
                    },
                    "reply_to": {
                      "type": "string",
                      "description": "A Reply-To address is identified by inserting the Reply-To header in your email.  \nIt is the email address that the reply message is sent \nwhen you want the reply to go to an email address that is different than the From: address.\n"
                    },
                    "username": {
                      "type": "string",
                      "maxLength": 128,
                      "description": "Username or email address.\n"
                    },
                    "auth": {
                      "type": "string",
                      "enum": [
                        "DISABLE",
                        "AUTO",
                        "LOGIN",
                        "PLAIN"
                      ],
                      "default": "AUTO",
                      "description": "The authentication protocols.   \nCan be either:   \n- `DISABLE`: Skip authentication mechanism.\n- `AUTO`: Use auto-selected authentication algorithms by server (Currently only supports LOGIN and PLAIN).\n- `LOGIN`: Use LOGIN authentication mechanism.\n- `PLAIN` Use PLAIN authentication mechanism.\n"
                    },
                    "enable_tls_ssl": {
                      "type": "boolean",
                      "default": true,
                      "description": "Whether to enable TLS/SSL.\n"
                    },
                    "enable_starttls_auto": {
                      "type": "boolean",
                      "default": false,
                      "description": "Whether StartTLS is automatically enabled.\n"
                    },
                    "recipients": {
                      "type": "string",
                      "description": "Comma-separated list of email address that should receive notifications.   \nAllow up to 15 email addresses.\n"
                    },
                    "enable_tenant_access": {
                      "type": "boolean",
                      "default": true,
                      "description": "Apply the email server settings to all tenants.\n"
                    },
                    "hard_disk_threshold": {
                      "type": "number",
                      "format": "double",
                      "example": 0.9,
                      "description": "The hard disk threshold for email warning.\n"
                    },
                    "notify_hard_disk_exceeded_threshold": {
                      "type": "boolean",
                      "default": false,
                      "description": "Send a notification email when specified hard disk threshold is exceeded.\n"
                    },
                    "cpu_threshold": {
                      "type": "number",
                      "format": "double",
                      "example": 0.9,
                      "description": "The CPU threshold for email warning.\n"
                    },
                    "notify_cpu_exceeded_threshold": {
                      "type": "boolean",
                      "default": false,
                      "description": "Send a notification email when specified CPU threshold is exceeded.\n"
                    },
                    "memory_threshold": {
                      "type": "number",
                      "format": "double",
                      "example": 0.9,
                      "description": "The memory threshold for email warning.\n"
                    },
                    "notify_memory_exceeded_threshold": {
                      "type": "boolean",
                      "default": false,
                      "description": "Send an email notification when specified memory threshold is exceeded.\n"
                    },
                    "notify_ip_blocked": {
                      "type": "boolean",
                      "default": false,
                      "description": "Send a notification email when ip blocked.\n"
                    },
                    "notify_license_limited": {
                      "type": "boolean",
                      "default": false,
                      "description": "Send a notification email when license limit reached.\n"
                    },
                    "notify_service_disconnected": {
                      "type": "boolean",
                      "default": false,
                      "description": "Send a notification email when some service disconnected.\n"
                    },
                    "notify_push_certs_update_failed": {
                      "type": "boolean",
                      "default": false,
                      "description": "Send a notification email when push notification certificates update failed.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "An example for get system email notification integrations",
                    "value": {
                      "type": null,
                      "server": null,
                      "port": null,
                      "reply_to": null,
                      "username": null,
                      "auth": null,
                      "enable_tls_ssl": null,
                      "enable_starttls_auto": null,
                      "recipients": null,
                      "enable_tenant_access": null,
                      "hard_disk_threshold": null,
                      "notify_hard_disk_exceeded_threshold": null,
                      "cpu_threshold": null,
                      "notify_cpu_exceeded_threshold": null,
                      "memory_threshold": null,
                      "notify_memory_exceeded_threshold": null,
                      "notify_ip_blocked": null,
                      "notify_license_limited": null,
                      "notify_service_disconnected": null,
                      "notify_push_certs_update_failed": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "post": {
        "tags": [
          "Administration"
        ],
        "operationId": "updateSystemNotificationSettings",
        "x-category": "system-management",
        "x-subcategory": "integrations",
        "x-permissions": [
          "SystemSettings.FullAccess"
        ],
        "summary": "Update system notification settings",
        "description": "Update system notification settings.\n",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "enum": [
                      "SMTP",
                      "MS365",
                      "GMAIL"
                    ],
                    "description": "The email server type.   \nCan be either:   \n- `SMTP`: Use generic SMTP server.\n- `MS365` Use Microsoft 365 email service.\n- `GMAIL` Use Google Gmail service.\n"
                  },
                  "server": {
                    "type": "string",
                    "description": "SMTP server used for sending mails.\n"
                  },
                  "port": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 0,
                    "maximum": 65535,
                    "example": 80,
                    "description": "A port number is a 16-bit unsigned integer, thus ranging from 0 to 65535.\nFor TCP, port number 0 is reserved and cannot be used, while for UDP, the source port is optional and a value of zero means no port\n"
                  },
                  "reply_to": {
                    "type": "string",
                    "description": "A Reply-To address is identified by inserting the Reply-To header in your email.  \nIt is the email address that the reply message is sent \nwhen you want the reply to go to an email address that is different than the From: address.\n"
                  },
                  "username": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "Username or email address.\n"
                  },
                  "password": {
                    "type": "string",
                    "description": "Password for email account.\n"
                  },
                  "auth": {
                    "type": "string",
                    "enum": [
                      "DISABLE",
                      "AUTO",
                      "LOGIN",
                      "PLAIN"
                    ],
                    "default": "AUTO",
                    "description": "The authentication protocols.   \nCan be either:   \n- `DISABLE`: Skip authentication mechanism.\n- `AUTO`: Use auto-selected authentication algorithms by server (Currently only supports LOGIN and PLAIN).\n- `LOGIN`: Use LOGIN authentication mechanism.\n- `PLAIN` Use PLAIN authentication mechanism.\n"
                  },
                  "enable_tls_ssl": {
                    "type": "boolean",
                    "default": true,
                    "description": "Whether to enable TLS/SSL.\n"
                  },
                  "enable_starttls_auto": {
                    "type": "boolean",
                    "default": false,
                    "description": "Whether StartTLS is automatically enabled.\n"
                  },
                  "recipients": {
                    "type": "string",
                    "description": "Comma-separated list of email address that should receive notifications.   \nAllow up to 15 email addresses.\n"
                  },
                  "enable_tenant_access": {
                    "type": "boolean",
                    "default": true,
                    "description": "Apply the email server settings to all tenants.\n"
                  },
                  "hard_disk_threshold": {
                    "type": "number",
                    "format": "double",
                    "example": 0.9,
                    "description": "The hard disk threshold for email warning.\n"
                  },
                  "notify_hard_disk_exceeded_threshold": {
                    "type": "boolean",
                    "default": false,
                    "description": "Send a notification email when specified hard disk threshold is exceeded.\n"
                  },
                  "cpu_threshold": {
                    "type": "number",
                    "format": "double",
                    "example": 0.9,
                    "description": "The CPU threshold for email warning.\n"
                  },
                  "notify_cpu_exceeded_threshold": {
                    "type": "boolean",
                    "default": false,
                    "description": "Send a notification email when specified CPU threshold is exceeded.\n"
                  },
                  "memory_threshold": {
                    "type": "number",
                    "format": "double",
                    "example": 0.9,
                    "description": "The memory threshold for email warning.\n"
                  },
                  "notify_memory_exceeded_threshold": {
                    "type": "boolean",
                    "default": false,
                    "description": "Send an email notification when specified memory threshold is exceeded.\n"
                  },
                  "notify_ip_blocked": {
                    "type": "boolean",
                    "default": false,
                    "description": "Send a notification email when ip blocked.\n"
                  },
                  "notify_license_limited": {
                    "type": "boolean",
                    "default": false,
                    "description": "Send a notification email when license limit reached.\n"
                  },
                  "notify_service_disconnected": {
                    "type": "boolean",
                    "default": false,
                    "description": "Send a notification email when some service disconnected.\n"
                  },
                  "notify_push_certs_update_failed": {
                    "type": "boolean",
                    "default": false,
                    "description": "Send a notification email when push notification certificates update failed.\n"
                  }
                },
                "required": [
                  "type",
                  "username"
                ]
              },
              "examples": {
                "default": {
                  "summary": "An example for update system email notification integrations",
                  "value": {
                    "type": null,
                    "server": null,
                    "port": null,
                    "reply_to": null,
                    "username": null,
                    "password": null,
                    "auth": null,
                    "enable_tls_ssl": null,
                    "enable_starttls_auto": null,
                    "recipients": null,
                    "enable_tenant_access": null,
                    "hard_disk_threshold": null,
                    "notify_hard_disk_exceeded_threshold": null,
                    "cpu_threshold": null,
                    "notify_cpu_exceeded_threshold": null,
                    "memory_threshold": null,
                    "notify_memory_exceeded_threshold": null,
                    "notify_ip_blocked": null,
                    "notify_license_limited": null,
                    "notify_service_disconnected": null,
                    "notify_push_certs_update_failed": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/admin/notification/test_email": {
      "post": {
        "tags": [
          "Administration"
        ],
        "operationId": "sendGlobalNotificationTestEmail",
        "x-category": "system-management",
        "x-subcategory": "integrations",
        "x-permissions": [
          "SystemSettings.FullAccess"
        ],
        "summary": "Test email",
        "description": "Check email server configurations by sending testing email.\n",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "recipient": {
                    "type": "string",
                    "description": "The recipient's e-mail address.\n"
                  },
                  "subject": {
                    "type": "string",
                    "description": "Mail subject.\n"
                  },
                  "content": {
                    "type": "string",
                    "description": "Mail content.\n"
                  }
                },
                "required": [
                  "recipient",
                  "subject",
                  "content"
                ]
              },
              "examples": {
                "default": {
                  "summary": "An example for sending testing email with system email notification integrations",
                  "value": {
                    "recipient": null,
                    "subject": null,
                    "content": null
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/admin/ms365": {
      "get": {
        "tags": [
          "Integration"
        ],
        "operationId": "getGlobalMicrosoft365ProvisioningDetails",
        "x-category": "system-management",
        "x-subcategory": "integrations",
        "x-permissions": [
          "Integration.ViewOnly"
        ],
        "summary": "Retrieve global Microsoft 365 provisioning details",
        "description": "Retrieve details of global Microsoft 365 settings.\n",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "national_cloud": {
                      "type": "string",
                      "enum": [
                        "GLOBAL",
                        "CHINA"
                      ],
                      "default": "GLOBAL",
                      "description": "The Microsoft cloud services are available in several separate national clouds.   \nThese national cloud versions are physical and logical network-isolated instances of Microsoft enterprise cloud services   \nthat are confined within the geographic borders of specific countries and operated by local personnel.\nCan be either:   \n- `GLOBAL`: Azure global service.\n- `CHINA`: Azure China service.\n"
                    },
                    "directory_id": {
                      "type": "string",
                      "description": "The Directory ID (Tenant ID) of Microsoft identity platform.\n"
                    },
                    "application_id": {
                      "type": "string",
                      "description": "The Application (client) ID of Azure AD.\n"
                    },
                    "redirect_uri": {
                      "type": "string",
                      "readOnly": true,
                      "description": "Redirect URI. The URIs we will accept as destinations when returning authentication responses (tokens) after successfully authenticating or signing out users.   \nThe redirect URI you send in the request to the login server should match one listed here. Also referred to as reply URLs.\n"
                    },
                    "sbc_redirect_uri": {
                      "type": "string",
                      "readOnly": true,
                      "description": "Same as the `redirect_uri`, but via the sbc network topology.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "An example for get system Microsoft integrations",
                    "value": {
                      "national_cloud": null,
                      "directory_id": null,
                      "application_id": null,
                      "redirect_uri": null,
                      "sbc_redirect_uri": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "post": {
        "tags": [
          "Integration"
        ],
        "operationId": "updateGlobalMicrosoft365Provisioning",
        "x-category": "system-management",
        "x-subcategory": "integrations",
        "x-permissions": [
          "Integration.FullAccess"
        ],
        "summary": "Reprovision global Microsoft 365 integration.",
        "description": "Update global Microsoft 365 settings.\n",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "national_cloud": {
                    "type": "string",
                    "enum": [
                      "GLOBAL",
                      "CHINA"
                    ],
                    "default": "GLOBAL",
                    "description": "The Microsoft cloud services are available in several separate national clouds.   \nThese national cloud versions are physical and logical network-isolated instances of Microsoft enterprise cloud services   \nthat are confined within the geographic borders of specific countries and operated by local personnel.\nCan be either:   \n- `GLOBAL`: Azure global service.\n- `CHINA`: Azure China service.\n"
                  },
                  "directory_id": {
                    "type": "string",
                    "description": "The Directory ID (Tenant ID) of Microsoft identity platform.\n"
                  },
                  "application_id": {
                    "type": "string",
                    "description": "The Application (client) ID of Azure AD.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": "An example for update system Microsoft integrations",
                  "value": {
                    "national_cloud": null,
                    "directory_id": null,
                    "application_id": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/admin/ms365/certificate": {
      "post": {
        "tags": [
          "Integration"
        ],
        "operationId": "generateGlobalMicrosoft365Certificate",
        "x-category": "system-management",
        "x-subcategory": "integrations",
        "x-permissions": [
          "Integration.FullAccess"
        ],
        "summary": "Generate new global Microsoft 365 certificate",
        "description": "Generate new global Microsoft 365 certificate.\n",
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "Content-Disposition": {
                "schema": {
                  "type": "string"
                },
                "description": "the format is `attachment; filename=\"example\"`"
              }
            },
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "get": {
        "tags": [
          "Integration"
        ],
        "operationId": "downloadGlobalMicrosoft365Certificate",
        "x-category": "system-management",
        "x-subcategory": "integrations",
        "x-permissions": [
          "Integration.ViewOnly"
        ],
        "summary": "Download global Microsoft 365 certificate",
        "description": "Download global Microsoft 365 certificate.\n",
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "Content-Disposition": {
                "schema": {
                  "type": "string"
                },
                "description": "the format is `attachment; filename=\"example\"`"
              }
            },
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/admin/google": {
      "get": {
        "tags": [
          "Integration"
        ],
        "operationId": "getGlobalGoogleIntegrations",
        "x-category": "system-management",
        "x-subcategory": "integrations",
        "x-permissions": [
          "Integration.ViewOnly"
        ],
        "summary": "Retrieve global Google integrations",
        "description": "Retrieve details of global Google integrations settings.\n",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "client_id": {
                      "type": "string",
                      "description": "The client ID of Google Cloud project.\n"
                    },
                    "client_secret": {
                      "type": "string",
                      "description": "The client secret of Google Cloud project.\n"
                    },
                    "redirect_uri": {
                      "type": "string",
                      "readOnly": true,
                      "description": "Redirect URI. The URIs we will accept as destinations when returning authentication responses (tokens) after successfully authenticating or signing out users.   \nThe redirect URI you send in the request to the login server should match one listed here. Also referred to as reply URLs.\n"
                    },
                    "sbc_redirect_uri": {
                      "type": "string",
                      "readOnly": true,
                      "description": "Same as the `redirect_uri`, but via the sbc network topology.\n"
                    },
                    "auth_consent_uri": {
                      "type": "string",
                      "readOnly": true,
                      "description": "The Google OAuth2 consent uri.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "An example for get system google integrations",
                    "value": {
                      "client_id": null,
                      "client_secret": null,
                      "redirect_uri": null,
                      "sbc_redirect_uri": null,
                      "auth_consent_uri": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "post": {
        "tags": [
          "Integration"
        ],
        "operationId": "updateGlobalGoogleIntegrations",
        "x-category": "system-management",
        "x-subcategory": "integrations",
        "x-permissions": [
          "Integration.FullAccess"
        ],
        "summary": "Update global Google integration.",
        "description": "Update global Google integration settings.\n",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "client_id": {
                    "type": "string",
                    "description": "The client ID of Google Cloud project.\n"
                  },
                  "client_secret": {
                    "type": "string",
                    "description": "The client secret of Google Cloud project.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": "An example for update system google integrations",
                  "value": {
                    "client_id": null,
                    "client_secret": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/admin/ai_engine": {
      "get": {
        "tags": [
          "Admin"
        ],
        "operationId": "getAIEngine",
        "x-category": "system-management",
        "x-subcategory": "integrations",
        "x-permissions": [
          "Integration.ViewOnly"
        ],
        "summary": "Get AI Engine configuration",
        "description": "Get the ai engine configuration.\n",
        "parameters": [
          {
            "in": "query",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Unique identifier of the AI Engine configuration."
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully retrieved AI Engine configuration",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "engine_type": {
                      "type": "string",
                      "enum": [
                        "aws",
                        "azure"
                      ]
                    },
                    "config": {
                      "oneOf": [
                        {
                          "summary": "Schema for AWS AI Engine configuration",
                          "type": "object",
                          "properties": {
                            "access_key": {
                              "type": "string"
                            },
                            "secret_key": {
                              "type": "string"
                            },
                            "region": {
                              "type": "string"
                            },
                            "bucket_name": {
                              "type": "string"
                            },
                            "locale": {
                              "type": "string"
                            },
                            "lang_code": {
                              "type": "string"
                            },
                            "max_level": {
                              "type": "integer"
                            },
                            "max_speech_to_text_queue": {
                              "type": "integer"
                            },
                            "max_sentiment_requests_per_10s": {
                              "type": "integer"
                            }
                          },
                          "required": [
                            "access_key",
                            "secret_key",
                            "region",
                            "bucket_name"
                          ]
                        },
                        {
                          "summary": "Schema for Azure AI Engine configuration",
                          "type": "object",
                          "properties": {
                            "account_name": {
                              "type": "string"
                            },
                            "account_key": {
                              "type": "string"
                            },
                            "api_key": {
                              "type": "string"
                            },
                            "region": {
                              "type": "string"
                            },
                            "container_name": {
                              "type": "string"
                            },
                            "locale": {
                              "type": "string"
                            },
                            "max_level": {
                              "type": "integer"
                            },
                            "max_stt_requests_per_10s": {
                              "type": "integer"
                            },
                            "max_sentiment_requests_per_minute": {
                              "type": "integer"
                            }
                          },
                          "required": [
                            "account_name",
                            "account_key",
                            "api_key",
                            "region",
                            "container_name"
                          ]
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Invalid input or retrieval failed."
          }
        }
      },
      "post": {
        "tags": [
          "Admin"
        ],
        "operationId": "updateAIEngine",
        "x-category": "system-management",
        "x-subcategory": "integrations",
        "x-permissions": [
          "Integration.FullAccess"
        ],
        "summary": "Create or Update AI Engine configuration",
        "description": "Create a new AI Engine configuration if it does not exist,  \nor update the existing configuration by its ID.  \nThe `config` field varies depending on the selected engine type.\n",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "engine_type",
                  "config"
                ],
                "properties": {
                  "engine_type": {
                    "type": "string",
                    "enum": [
                      "aws",
                      "azure"
                    ],
                    "description": "Type of AI engine."
                  },
                  "config": {
                    "oneOf": [
                      {
                        "title": "AWS Config",
                        "type": "object",
                        "required": [
                          "access_key",
                          "secret_key",
                          "region",
                          "bucket_name",
                          "locale",
                          "lang_code",
                          "max_speech_to_text_queue",
                          "max_sentiment_requests_per_10s"
                        ],
                        "properties": {
                          "access_key": {
                            "type": "string"
                          },
                          "secret_key": {
                            "type": "string"
                          },
                          "region": {
                            "type": "string"
                          },
                          "bucket_name": {
                            "type": "string"
                          },
                          "locale": {
                            "type": "string"
                          },
                          "lang_code": {
                            "type": "string"
                          },
                          "max_speech_to_text_queue": {
                            "type": "integer"
                          },
                          "max_sentiment_requests_per_10s": {
                            "type": "integer"
                          }
                        }
                      },
                      {
                        "title": "Azure Config",
                        "type": "object",
                        "required": [
                          "account_name",
                          "account_key",
                          "api_key",
                          "region",
                          "container_name",
                          "locale",
                          "max_stt_requests_per_10s",
                          "max_sentiment_requests_per_minute"
                        ],
                        "properties": {
                          "account_name": {
                            "type": "string"
                          },
                          "account_key": {
                            "type": "string"
                          },
                          "api_key": {
                            "type": "string"
                          },
                          "region": {
                            "type": "string"
                          },
                          "container_name": {
                            "type": "string"
                          },
                          "locale": {
                            "type": "string"
                          },
                          "max_stt_requests_per_10s": {
                            "type": "integer"
                          },
                          "max_sentiment_requests_per_minute": {
                            "type": "integer"
                          }
                        }
                      }
                    ]
                  }
                }
              },
              "examples": {
                "aws": {
                  "summary": "Example of updating AWS AI Engine configuration",
                  "value": {
                    "engine_type": "aws",
                    "config": {
                      "access_key": "AKIAIOSFODNN7EXAMPLE",
                      "secret_key": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
                      "region": "us-west-2",
                      "bucket_name": "my-audio-bucket",
                      "locale": "en-US",
                      "lang_code": "en",
                      "max_level": 4,
                      "max_speech_to_text_queue": 100,
                      "max_sentiment_requests_per_10s": 20
                    }
                  }
                },
                "azure": {
                  "summary": "Example of updating Azure AI Engine configuration",
                  "value": {
                    "engine_type": "azure",
                    "config": {
                      "account_name": "myazureaccount",
                      "account_key": "6Q2y+v7DqfY7u3jW98Pv+uTTKrz1HQZ1rZbNEXAMPLE==",
                      "api_key": "1a2b3c4d5e6f7g8h9i0jEXAMPLEAPIKEY",
                      "region": "eastus",
                      "container_name": "aicontainer",
                      "locale": "en-US",
                      "max_level": 2,
                      "max_stt_requests_per_10s": 15,
                      "max_sentiment_requests_per_minute": 60
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "AI Engine configuration updated successfully."
          },
          "4XX": {
            "description": "Invalid input or update failed."
          }
        }
      }
    },
    "/sbc": {
      "get": {
        "tags": [
          "Administration"
        ],
        "operationId": "getSBCConfiguration",
        "x-category": "system-management",
        "x-subcategory": "system-management",
        "x-permissions": [
          "SystemSettings.FullAccess"
        ],
        "summary": "Retrieve SBC configuration",
        "description": "Retrieve settings for SBC.\n",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "domain": {
                      "type": "string",
                      "description": "The SBC domain.\n"
                    },
                    "http_port": {
                      "allOf": [
                        {
                          "type": "integer",
                          "format": "int32",
                          "minimum": 0,
                          "maximum": 65535,
                          "example": 80,
                          "description": "A port number is a 16-bit unsigned integer, thus ranging from 0 to 65535.\nFor TCP, port number 0 is reserved and cannot be used, while for UDP, the source port is optional and a value of zero means no port\n"
                        }
                      ],
                      "default": 8882,
                      "description": "The SBC web port for http.\n"
                    },
                    "https_port": {
                      "allOf": [
                        {
                          "type": "integer",
                          "format": "int32",
                          "minimum": 0,
                          "maximum": 65535,
                          "example": 80,
                          "description": "A port number is a 16-bit unsigned integer, thus ranging from 0 to 65535.\nFor TCP, port number 0 is reserved and cannot be used, while for UDP, the source port is optional and a value of zero means no port\n"
                        }
                      ],
                      "default": 8883,
                      "description": "The SBC web port fot https.\n"
                    },
                    "transports": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "protocol": {
                            "type": "string",
                            "enum": [
                              "UDP",
                              "TCP",
                              "TLS"
                            ],
                            "description": "The transport protocol:  \nCan be either:  \n- `UDP`:\n- `TCP`:\n- `TLS`:\n"
                          },
                          "port": {
                            "allOf": [
                              {
                                "type": "integer",
                                "format": "int32",
                                "minimum": 0,
                                "maximum": 65535,
                                "example": 80,
                                "description": "A port number is a 16-bit unsigned integer, thus ranging from 0 to 65535.\nFor TCP, port number 0 is reserved and cannot be used, while for UDP, the source port is optional and a value of zero means no port\n"
                              }
                            ],
                            "description": "The port of transport.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "domain": null,
                      "http_port": null,
                      "https_port": null,
                      "transports": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "post": {
        "tags": [
          "Administration"
        ],
        "operationId": "updateSBCConfiguration",
        "x-category": "system-management",
        "x-subcategory": "system-management",
        "x-permissions": [
          "SystemSettings.FullAccess"
        ],
        "summary": "Update SBC configuration",
        "description": "Update SBC configuration.\n",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "domain": {
                    "type": "string",
                    "description": "The SBC domain.\n"
                  },
                  "http_port": {
                    "allOf": [
                      {
                        "type": "integer",
                        "format": "int32",
                        "minimum": 0,
                        "maximum": 65535,
                        "example": 80,
                        "description": "A port number is a 16-bit unsigned integer, thus ranging from 0 to 65535.\nFor TCP, port number 0 is reserved and cannot be used, while for UDP, the source port is optional and a value of zero means no port\n"
                      }
                    ],
                    "default": 8882,
                    "description": "The SBC web port for http.\n"
                  },
                  "https_port": {
                    "allOf": [
                      {
                        "type": "integer",
                        "format": "int32",
                        "minimum": 0,
                        "maximum": 65535,
                        "example": 80,
                        "description": "A port number is a 16-bit unsigned integer, thus ranging from 0 to 65535.\nFor TCP, port number 0 is reserved and cannot be used, while for UDP, the source port is optional and a value of zero means no port\n"
                      }
                    ],
                    "default": 8883,
                    "description": "The SBC web port fot https.\n"
                  },
                  "transports": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "protocol": {
                          "type": "string",
                          "enum": [
                            "UDP",
                            "TCP",
                            "TLS"
                          ],
                          "description": "The transport protocol:  \nCan be either:  \n- `UDP`:\n- `TCP`:\n- `TLS`:\n"
                        },
                        "port": {
                          "allOf": [
                            {
                              "type": "integer",
                              "format": "int32",
                              "minimum": 0,
                              "maximum": 65535,
                              "example": 80,
                              "description": "A port number is a 16-bit unsigned integer, thus ranging from 0 to 65535.\nFor TCP, port number 0 is reserved and cannot be used, while for UDP, the source port is optional and a value of zero means no port\n"
                            }
                          ],
                          "description": "The port of transport.\n"
                        }
                      }
                    }
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "domain": null,
                    "http_port": null,
                    "https_port": null,
                    "transports": null
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/sbc/token": {
      "get": {
        "tags": [
          "Administration"
        ],
        "operationId": "getSBCToken",
        "x-category": "system-management",
        "x-subcategory": "system-management",
        "x-permissions": [
          "SystemSettings.ViewOnly"
        ],
        "summary": "Retrieve SBC token",
        "description": "Retrieve SBC token\n",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "token": {
                      "type": "string",
                      "description": "The access token for SBC.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "token": "xxxxxxxxxxxxxxxxxxxxxxxxx"
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "post": {
        "tags": [
          "Administration"
        ],
        "operationId": "regenerateSBCToken",
        "x-category": "system-management",
        "x-subcategory": "system-management",
        "x-permissions": [
          "SystemSettings.FullAccess"
        ],
        "summary": "Regenerate SBC token",
        "description": "Regenerate SBC token\n",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "token": {
                      "type": "string",
                      "description": "The access token for SBC.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "token": "xxxxxxxxxxxxxxxxxxxxx"
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/sbc/token/destroy": {
      "post": {
        "tags": [
          "Administration"
        ],
        "operationId": "destroySBCToken",
        "x-category": "system-management",
        "x-subcategory": "system-management",
        "x-permissions": [
          "SystemSettings.FullAccess"
        ],
        "summary": "Destroy SBC Token",
        "description": "Destroy SBC Token.\n",
        "responses": {
          "204": {
            "description": "No Content"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/im": {
      "get": {
        "tags": [
          "Administration"
        ],
        "operationId": "getIMServerConfiguration",
        "x-category": "system-management",
        "x-subcategory": "im-servers",
        "x-permissions": [
          "SystemSettings.ViewOnly"
        ],
        "summary": "Retrieve IM server configuration",
        "description": "Retrieve settings of IM server.\n",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "private_ipv4": {
                      "type": "string",
                      "description": "Host IPV4 address.\n"
                    },
                    "private_ipv6": {
                      "type": "string",
                      "description": "Host IPV6 address.\n"
                    },
                    "public_ipv4": {
                      "type": "string",
                      "description": "Host IPV4 address.\n"
                    },
                    "public_ipv6": {
                      "type": "string",
                      "description": "Host IPV6 address.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "private_ipv4": null,
                      "private_ipv6": null,
                      "public_ipv4": null,
                      "public_ipv6": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "post": {
        "tags": [
          "Administration"
        ],
        "operationId": "updateIMServerConfiguration",
        "x-category": "system-management",
        "x-subcategory": "im-servers",
        "x-permissions": [
          "SystemSettings.FullAccess"
        ],
        "summary": "Update IM server configuration",
        "description": "Update IM server configuration.\n",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "private_ipv4": {
                    "type": "string",
                    "description": "Host IPV4 address.\n"
                  },
                  "private_ipv6": {
                    "type": "string",
                    "description": "Host IPV6 address.\n"
                  },
                  "public_ipv4": {
                    "type": "string",
                    "description": "Host IPV4 address.\n"
                  },
                  "public_ipv6": {
                    "type": "string",
                    "description": "Host IPV6 address.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "private_ipv4": null,
                    "private_ipv6": null,
                    "public_ipv4": null,
                    "public_ipv6": null
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/im/token": {
      "get": {
        "tags": [
          "Administration"
        ],
        "operationId": "getIMServerToken",
        "x-category": "system-management",
        "x-subcategory": "im-servers",
        "x-permissions": [
          "SystemSettings.ViewOnly"
        ],
        "summary": "Retrieve IM Server token",
        "description": "Retrieve IM server token\n",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "token": {
                      "type": "string",
                      "description": "The access token for IM Server.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "token": "xxxxxxxxxxxxxxxxxxxxxx"
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "post": {
        "tags": [
          "Administration"
        ],
        "operationId": "regenerateIMServerToken",
        "x-category": "system-management",
        "x-subcategory": "im-servers",
        "x-permissions": [
          "SystemSettings.FullAccess"
        ],
        "summary": "Regenerate IM server token",
        "description": "Regenerate IM server token\n",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "token": {
                      "type": "string",
                      "description": "The access token for IM Server.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "token": "xxxxxxxxxxxxxxxxx"
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/im/token/destroy": {
      "post": {
        "tags": [
          "Administration"
        ],
        "operationId": "destroyIMServerToken",
        "x-category": "system-management",
        "x-subcategory": "im-servers",
        "x-permissions": [
          "SystemSettings.FullAccess"
        ],
        "summary": "Destroy IM server Token",
        "description": "Destroy IM server Token.\n",
        "responses": {
          "204": {
            "description": "No Content"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/dealers": {
      "post": {
        "tags": [
          "Administration"
        ],
        "operationId": "createDealer",
        "x-category": "system-management",
        "x-subcategory": "dealers",
        "x-permissions": [
          "SystemDealer.FullAccess"
        ],
        "summary": "Create a dealer",
        "description": "Create a dealer.\n",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "enabled": {
                    "type": "boolean",
                    "default": true,
                    "description": "Enable this dealer or not.\n"
                  },
                  "level": {
                    "type": "string",
                    "enum": [
                      "DISTRIBUTOR",
                      "SUB_DISTRIBUTOR",
                      "RESELLER"
                    ],
                    "description": "Dealer level includes:\n- `DISTRIBUTOR`: the first level of dealers.\n- `SUB_DISTRIBUTOR`: the second level of dealers.\n- `RESELLER`: the third level of dealers.\n"
                  },
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64,
                    "description": "The user's account name.   \nOnly letters, numbers, and the following special characters can be added: underscore, dash, single quote, and period (_, -, ', and .).   \nUsername cannot start or end with period (.).   \n`admin`, `system`, `administrator`, and `root` are reserved names for system admin only with case ignored.\n"
                  },
                  "password": {
                    "type": "string",
                    "description": "The password of dealer.\n"
                  },
                  "email": {
                    "allOf": [
                      {
                        "type": "string",
                        "maxLength": 128,
                        "description": "The email address.\n",
                        "example": "example@example.com"
                      }
                    ],
                    "description": "The email address of user.\n"
                  },
                  "display_name": {
                    "type": "string",
                    "maxLength": 1024,
                    "description": "The display name of user.\n"
                  },
                  "website": {
                    "type": "string",
                    "description": "The website of user.\n"
                  },
                  "phone": {
                    "type": "string",
                    "maxLength": 32,
                    "description": "The mobile phone number of user.\n"
                  },
                  "address": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The address.\n"
                  },
                  "description": {
                    "type": "string",
                    "description": "The description of dealer.\n"
                  },
                  "max_tenants": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 0,
                    "default": 100,
                    "description": "The maximum number of tenants that the dealer is allowed to create.\n"
                  },
                  "max_extensions": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 0,
                    "default": 50000,
                    "description": "The maximum number of extensions that the dealer is allowed to create.\n"
                  },
                  "tenant_full_access": {
                    "type": "boolean",
                    "default": true,
                    "description": "Whether or not the reseller is allowed to have full control over the tenant.   \nThis attribute is not valid if not modified by first level dealer.\n"
                  }
                },
                "required": [
                  "name",
                  "level",
                  "password",
                  "max_tenants",
                  "max_extensions"
                ]
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "enabled": null,
                    "level": null,
                    "name": null,
                    "password": null,
                    "email": null,
                    "display_name": null,
                    "website": null,
                    "phone": null,
                    "address": null,
                    "description": null,
                    "max_tenants": null,
                    "max_extensions": null,
                    "tenant_full_access": null
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of dealer.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "The ID of created resource",
                    "value": {
                      "id": "xxxxxxxx"
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "get": {
        "tags": [
          "Administration"
        ],
        "operationId": "listDealers",
        "x-category": "system-management",
        "x-subcategory": "dealers",
        "x-permissions": [
          "SystemDealer.ViewOnly"
        ],
        "summary": "List dealers",
        "description": "List a collection of dealers.\n",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "count": {
                      "type": "integer",
                      "format": "int64",
                      "minimum": 0,
                      "example": 100,
                      "description": "Total number of resource.\n"
                    },
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "description": "The unique ID of dealer.\n"
                          },
                          "enabled": {
                            "type": "boolean",
                            "default": true,
                            "description": "Enable this dealer or not.\n"
                          },
                          "level": {
                            "type": "string",
                            "enum": [
                              "DISTRIBUTOR",
                              "SUB_DISTRIBUTOR",
                              "RESELLER"
                            ],
                            "description": "Dealer level includes:\n- `DISTRIBUTOR`: the first level of dealers.\n- `SUB_DISTRIBUTOR`: the second level of dealers.\n- `RESELLER`: the third level of dealers.\n"
                          },
                          "name": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 64,
                            "description": "The user's account name.   \nOnly letters, numbers, and the following special characters can be added: underscore, dash, single quote, and period (_, -, ', and .).   \nUsername cannot start or end with period (.).   \n`admin`, `system`, `administrator`, and `root` are reserved names for system admin only with case ignored.\n"
                          },
                          "email": {
                            "allOf": [
                              {
                                "type": "string",
                                "maxLength": 128,
                                "description": "The email address.\n",
                                "example": "example@example.com"
                              }
                            ],
                            "description": "The email address of user.\n"
                          },
                          "display_name": {
                            "type": "string",
                            "maxLength": 1024,
                            "description": "The display name of user.\n"
                          },
                          "website": {
                            "type": "string",
                            "description": "The website of user.\n"
                          },
                          "phone": {
                            "type": "string",
                            "maxLength": 32,
                            "description": "The mobile phone number of user.\n"
                          },
                          "address": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The address.\n"
                          },
                          "description": {
                            "type": "string",
                            "description": "The description of dealer.\n"
                          },
                          "max_tenants": {
                            "type": "integer",
                            "format": "int32",
                            "minimum": 0,
                            "default": 100,
                            "description": "The maximum number of tenants that the dealer is allowed to create.\n"
                          },
                          "max_extensions": {
                            "type": "integer",
                            "format": "int32",
                            "minimum": 0,
                            "default": 50000,
                            "description": "The maximum number of extensions that the dealer is allowed to create.\n"
                          },
                          "tenant_full_access": {
                            "type": "boolean",
                            "default": true,
                            "description": "Whether or not the reseller is allowed to have full control over the tenant.   \nThis attribute is not valid if not modified by first level dealer.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": null,
                          "enabled": null,
                          "level": null,
                          "name": null,
                          "email": null,
                          "display_name": null,
                          "website": null,
                          "phone": null,
                          "address": null,
                          "description": null,
                          "max_tenants": null,
                          "max_extensions": null,
                          "tenant_full_access": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/dealers/{id}": {
      "get": {
        "tags": [
          "Administration"
        ],
        "operationId": "retrieveDealer",
        "x-category": "system-management",
        "x-subcategory": "dealers",
        "x-permissions": [
          "SystemDealer.ViewOnly"
        ],
        "summary": "Retrieve a dealer",
        "description": "Get details of the dealer by it's unique ID.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of dealer.\n"
            },
            "description": "The unique ID of the dealer."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of dealer.\n"
                    },
                    "enabled": {
                      "type": "boolean",
                      "default": true,
                      "description": "Enable this dealer or not.\n"
                    },
                    "level": {
                      "type": "string",
                      "enum": [
                        "DISTRIBUTOR",
                        "SUB_DISTRIBUTOR",
                        "RESELLER"
                      ],
                      "description": "Dealer level includes:\n- `DISTRIBUTOR`: the first level of dealers.\n- `SUB_DISTRIBUTOR`: the second level of dealers.\n- `RESELLER`: the third level of dealers.\n"
                    },
                    "name": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64,
                      "description": "The user's account name.   \nOnly letters, numbers, and the following special characters can be added: underscore, dash, single quote, and period (_, -, ', and .).   \nUsername cannot start or end with period (.).   \n`admin`, `system`, `administrator`, and `root` are reserved names for system admin only with case ignored.\n"
                    },
                    "email": {
                      "allOf": [
                        {
                          "type": "string",
                          "maxLength": 128,
                          "description": "The email address.\n",
                          "example": "example@example.com"
                        }
                      ],
                      "description": "The email address of user.\n"
                    },
                    "display_name": {
                      "type": "string",
                      "maxLength": 1024,
                      "description": "The display name of user.\n"
                    },
                    "website": {
                      "type": "string",
                      "description": "The website of user.\n"
                    },
                    "phone": {
                      "type": "string",
                      "maxLength": 32,
                      "description": "The mobile phone number of user.\n"
                    },
                    "address": {
                      "type": "string",
                      "maxLength": 128,
                      "description": "The address.\n"
                    },
                    "description": {
                      "type": "string",
                      "description": "The description of dealer.\n"
                    },
                    "max_tenants": {
                      "type": "integer",
                      "format": "int32",
                      "minimum": 0,
                      "default": 100,
                      "description": "The maximum number of tenants that the dealer is allowed to create.\n"
                    },
                    "max_extensions": {
                      "type": "integer",
                      "format": "int32",
                      "minimum": 0,
                      "default": 50000,
                      "description": "The maximum number of extensions that the dealer is allowed to create.\n"
                    },
                    "tenant_full_access": {
                      "type": "boolean",
                      "default": true,
                      "description": "Whether or not the reseller is allowed to have full control over the tenant.   \nThis attribute is not valid if not modified by first level dealer.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "id": null,
                      "enabled": null,
                      "level": null,
                      "name": null,
                      "email": null,
                      "display_name": null,
                      "website": null,
                      "phone": null,
                      "address": null,
                      "description": null,
                      "max_tenants": null,
                      "max_extensions": null,
                      "tenant_full_access": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "post": {
        "tags": [
          "Administration"
        ],
        "operationId": "updateDealer",
        "x-category": "system-management",
        "x-subcategory": "dealers",
        "x-permissions": [
          "SystemDealer.FullAccess"
        ],
        "summary": "Update a dealer",
        "description": "Modify the settings of the dealer.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of dealer.\n"
            },
            "description": "The unique ID of the dealer."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "enabled": {
                    "type": "boolean",
                    "default": true,
                    "description": "Enable this dealer or not.\n"
                  },
                  "email": {
                    "allOf": [
                      {
                        "type": "string",
                        "maxLength": 128,
                        "description": "The email address.\n",
                        "example": "example@example.com"
                      }
                    ],
                    "description": "The email address of user.\n"
                  },
                  "display_name": {
                    "type": "string",
                    "maxLength": 1024,
                    "description": "The display name of user.\n"
                  },
                  "website": {
                    "type": "string",
                    "description": "The website of user.\n"
                  },
                  "phone": {
                    "type": "string",
                    "maxLength": 32,
                    "description": "The mobile phone number of user.\n"
                  },
                  "address": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The address.\n"
                  },
                  "description": {
                    "type": "string",
                    "description": "The description of dealer.\n"
                  },
                  "max_tenants": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 0,
                    "default": 100,
                    "description": "The maximum number of tenants that the dealer is allowed to create.\n"
                  },
                  "max_extensions": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 0,
                    "default": 50000,
                    "description": "The maximum number of extensions that the dealer is allowed to create.\n"
                  },
                  "tenant_full_access": {
                    "type": "boolean",
                    "default": true,
                    "description": "Whether or not the reseller is allowed to have full control over the tenant.   \nThis attribute is not valid if not modified by first level dealer.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "enabled": null,
                    "email": null,
                    "display_name": null,
                    "website": null,
                    "phone": null,
                    "address": null,
                    "description": null,
                    "max_tenants": null,
                    "max_extensions": null,
                    "tenant_full_access": null
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/dealers/{id}/password": {
      "post": {
        "tags": [
          "Administration"
        ],
        "operationId": "resetDealerPassword",
        "x-category": "system-management",
        "x-subcategory": "dealers",
        "x-permissions": [
          "SystemDealer.FullAccess"
        ],
        "summary": "Reset dealer password",
        "description": "Reset dealer's password.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of dealer.\n"
            },
            "description": "The unique ID of the dealer."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "password": {
                    "type": "string",
                    "description": "The password of dealer.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "password": null
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/dealers/{id}/destroy": {
      "post": {
        "tags": [
          "Administration"
        ],
        "operationId": "deleteDealer",
        "x-category": "system-management",
        "x-subcategory": "dealers",
        "x-permissions": [
          "SystemDealer.FullAccess"
        ],
        "summary": "Delete a dealer",
        "description": "Delete a dealer by it's unique ID.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of dealer.\n"
            },
            "description": "The unique ID of the dealer."
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/mobile_push": {
      "post": {
        "tags": [
          "Push Notification"
        ],
        "operationId": "createPush",
        "x-category": "system-management",
        "x-subcategory": "system-management",
        "x-permissions": [
          "SystemSettings.FullAccess"
        ],
        "summary": "Add App for enabling push notification",
        "description": "Mobile push messages wake up PortSIP Solutions Soft Phone or other Client Apps\non mobile device so that a call or Instant Message can be accepted, \nreducing battery usage and improving reliability\nAndroid devices receive push notifications from Firebase Cloud Messaging Server;\niOS devices receive push notifications from APNs.\n",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "app_name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64,
                    "description": "Application name.\n"
                  },
                  "enabled": {
                    "type": "boolean",
                    "default": true,
                    "description": "Enabled this notification or not.\n"
                  },
                  "mode": {
                    "type": "string",
                    "enum": [
                      "PRODUCTION",
                      "DEVELOPMENT"
                    ],
                    "default": "PRODUCTION",
                    "description": "Connect to Apple/Google development push server or production push server:\n- `PRODUCTION`: Connect to Apple/Google production push server.\n- `DEVELOPMENT`: Connect to Apple/Google development push server.\n"
                  },
                  "android_service_account": {
                    "type": "string",
                    "description": "The Firebase Cloud Messaging service account JSON file.\n"
                  },
                  "ios_certificate": {
                    "type": "string",
                    "description": "Content of this APNs SSL certificate key file.\n"
                  },
                  "ios_private_key": {
                    "type": "string",
                    "description": "Content of this APNs SSL private key file.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "app_name": null,
                    "enabled": null,
                    "mode": null,
                    "android_service_account": null,
                    "ios_certificate": null,
                    "ios_private_key": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created push",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of push profile.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "The ID of created resource",
                    "value": {
                      "id": "xxxxxxxx"
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "get": {
        "tags": [
          "Push Notification"
        ],
        "operationId": "listPushes",
        "x-category": "system-management",
        "x-subcategory": "system-management",
        "x-permissions": [
          "SystemSettings.ViewOnly"
        ],
        "summary": "List an app push notification",
        "description": "Retrieve a collection of app push notification.\n",
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Use the `filter` query parameter to retrieve just a subset of a collection.\n"
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "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",
            "required": false,
            "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",
            "required": false,
            "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",
            "required": false,
            "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,
                      "example": 100,
                      "description": "Total number of resource.\n"
                    },
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "description": "The unique ID of push profile.\n"
                          },
                          "app_name": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 64,
                            "description": "Application name.\n"
                          },
                          "enabled": {
                            "type": "boolean",
                            "default": true,
                            "description": "Enabled this notification or not.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": null,
                          "app_name": null,
                          "enabled": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/mobile_push/{id}": {
      "get": {
        "tags": [
          "Push Notification"
        ],
        "operationId": "showPush",
        "x-category": "system-management",
        "x-subcategory": "system-management",
        "x-permissions": [
          "SystemSettings.ViewOnly"
        ],
        "summary": "Retrieve an app push notification.",
        "description": "Retrieve details of app push notification by it's unique ID.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of push profile.\n"
            },
            "description": "The unique ID of the app push notification."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of push profile.\n"
                    },
                    "app_name": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64,
                      "description": "Application name.\n"
                    },
                    "enabled": {
                      "type": "boolean",
                      "default": true,
                      "description": "Enabled this notification or not.\n"
                    },
                    "mode": {
                      "type": "string",
                      "enum": [
                        "PRODUCTION",
                        "DEVELOPMENT"
                      ],
                      "default": "PRODUCTION",
                      "description": "Connect to Apple/Google development push server or production push server:\n- `PRODUCTION`: Connect to Apple/Google production push server.\n- `DEVELOPMENT`: Connect to Apple/Google development push server.\n"
                    },
                    "android_service_account": {
                      "type": "string",
                      "description": "The Firebase Cloud Messaging service account JSON file.\n"
                    },
                    "ios_certificate": {
                      "type": "string",
                      "description": "Content of this APNs SSL certificate key file.\n"
                    },
                    "ios_private_key": {
                      "type": "string",
                      "description": "Content of this APNs SSL private key file.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "id": null,
                      "app_name": null,
                      "enabled": null,
                      "mode": null,
                      "android_service_account": null,
                      "ios_certificate": null,
                      "ios_private_key": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "post": {
        "tags": [
          "Push Notification"
        ],
        "operationId": "updatePush",
        "x-category": "system-management",
        "x-subcategory": "system-management",
        "x-permissions": [
          "SystemSettings.FullAccess"
        ],
        "summary": "Update an app push notification",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of push profile.\n"
            },
            "description": "The unique ID of the app push notification."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "app_name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64,
                    "description": "Application name.\n"
                  },
                  "enabled": {
                    "type": "boolean",
                    "default": true,
                    "description": "Enabled this notification or not.\n"
                  },
                  "mode": {
                    "type": "string",
                    "enum": [
                      "PRODUCTION",
                      "DEVELOPMENT"
                    ],
                    "default": "PRODUCTION",
                    "description": "Connect to Apple/Google development push server or production push server:\n- `PRODUCTION`: Connect to Apple/Google production push server.\n- `DEVELOPMENT`: Connect to Apple/Google development push server.\n"
                  },
                  "android_service_account": {
                    "type": "string",
                    "description": "The Firebase Cloud Messaging service account JSON file.\n"
                  },
                  "ios_certificate": {
                    "type": "string",
                    "description": "Content of this APNs SSL certificate key file.\n"
                  },
                  "ios_private_key": {
                    "type": "string",
                    "description": "Content of this APNs SSL private key file.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "app_name": null,
                    "enabled": null,
                    "mode": null,
                    "android_service_account": null,
                    "ios_certificate": null,
                    "ios_private_key": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/mobile_push/{id}/destroy": {
      "post": {
        "tags": [
          "Push Notification"
        ],
        "operationId": "deletePush",
        "x-category": "system-management",
        "x-subcategory": "system-management",
        "x-permissions": [
          "SystemSettings.FullAccess"
        ],
        "summary": "Delete an app push notification.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of push profile.\n"
            },
            "description": "The unique ID of the app push notification."
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/templates/phones": {
      "post": {
        "tags": [
          "Auto Provisioning"
        ],
        "operationId": "createFirmwareTemplate",
        "x-category": "auto-provisioning",
        "x-subcategory": "templates",
        "x-permissions": [
          "SystemDevice.FullAccess"
        ],
        "summary": "Create a new firmware template",
        "description": "Create a new firmware template into system.\n",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "filename": {
                    "type": "string",
                    "description": "Template XML file name for phone provisioning.\n"
                  },
                  "content": {
                    "type": "string",
                    "description": "The file content of the template.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "filename": null,
                    "content": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "filename": {
                      "type": "string",
                      "description": "Template XML file name for phone provisioning.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "The ID of created resource",
                    "value": {
                      "id": "xxxxxxxx"
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "get": {
        "tags": [
          "Auto Provisioning"
        ],
        "operationId": "listFirmwareTemplates",
        "x-category": "auto-provisioning",
        "x-subcategory": "templates",
        "x-permissions": [
          "SystemDevice.ViewOnly"
        ],
        "summary": "List firmware templates",
        "description": "List IP phones template files\n",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "filename": {
                            "type": "string",
                            "description": "Template XML file name for phone provisioning.\n"
                          },
                          "is_custom": {
                            "type": "boolean",
                            "description": "Whether it's a customize template.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "items": [
                        {
                          "filename": null,
                          "is_custom": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/templates/phones/{filename}": {
      "get": {
        "tags": [
          "Auto Provisioning"
        ],
        "operationId": "showFirmwareTemplate",
        "x-category": "auto-provisioning",
        "x-subcategory": "templates",
        "x-permissions": [
          "SystemDevice.ViewOnly"
        ],
        "summary": "Retrieve details of firmware template",
        "description": "Retrieve details of template file by it's filename.\n",
        "parameters": [
          {
            "name": "filename",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Template XML file name for phone provisioning.\n"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "filename": {
                      "type": "string",
                      "description": "Template XML file name for phone provisioning.\n"
                    },
                    "content": {
                      "type": "string",
                      "description": "The file content of the template.\n"
                    },
                    "is_custom": {
                      "type": "boolean",
                      "description": "Whether it's a customize template.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "filename": null,
                      "content": null,
                      "is_custom": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "post": {
        "tags": [
          "Auto Provisioning"
        ],
        "operationId": "updateFirmwareTemplate",
        "x-category": "auto-provisioning",
        "x-subcategory": "templates",
        "x-permissions": [
          "SystemDevice.FullAccess"
        ],
        "summary": "Update firmware template",
        "description": "Update phone template.\n",
        "parameters": [
          {
            "name": "filename",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Template XML file name for phone provisioning.\n"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "content": {
                    "type": "string",
                    "description": "The file content of the template.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "content": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/templates/phones/{filename}/destroy": {
      "post": {
        "tags": [
          "Auto Provisioning"
        ],
        "operationId": "deleteFirmwareTemplate",
        "x-category": "auto-provisioning",
        "x-subcategory": "templates",
        "x-permissions": [
          "SystemDevice.FullAccess"
        ],
        "summary": "Remove an firmware template",
        "description": "Remove custom template by it's filename.\n",
        "parameters": [
          {
            "name": "filename",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Template XML file name for phone provisioning.\n"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/ip_filters": {
      "post": {
        "tags": [
          "Administration"
        ],
        "operationId": "createIpRule",
        "x-category": "system-management",
        "x-subcategory": "security",
        "x-permissions": [
          "SystemSettings.FullAccess"
        ],
        "summary": "Create an IP rule",
        "description": "Add a new IP blacklist entry or whitelist entry to the system.\n",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "cidr": {
                    "type": "string",
                    "description": "The `CIDR` notation IP address and prefix length,\nlike \"192.0.2.0/24\" or \"2001:db8::/32\", as defined in RFC 4632 and RFC 4291.\n"
                  },
                  "target": {
                    "type": "string",
                    "enum": [
                      "ACCEPT",
                      "DENY"
                    ],
                    "description": "IP rule's target:\n- `ACCEPT`: An accepted rule.\n- `DENY`: A rejection rule.\n"
                  },
                  "expire_at": {
                    "allOf": [
                      {
                        "type": "string",
                        "format": "date_time",
                        "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                        "example": "2017-07-21T17:32:28Z"
                      }
                    ],
                    "description": "IP rule's expire time.\n"
                  },
                  "description": {
                    "type": "string",
                    "maxLength": 255,
                    "description": "Remarks for the IP rule.\n"
                  }
                },
                "required": [
                  "cidr",
                  "target"
                ]
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "cidr": null,
                    "target": null,
                    "expire_at": null,
                    "description": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of IP rule.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "The ID of created resource",
                    "value": {
                      "id": "xxxxxxxx"
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "get": {
        "tags": [
          "Administration"
        ],
        "operationId": "listIpRules",
        "x-category": "system-management",
        "x-subcategory": "security",
        "x-permissions": [
          "SystemSettings.ViewOnly"
        ],
        "summary": "List IP rules",
        "description": "Retrieve a collection of IP blacklist entries or whitelist entries.\n",
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Use the `filter` query parameter to retrieve just a subset of a collection.\n"
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "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",
            "required": false,
            "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",
            "required": false,
            "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",
            "required": false,
            "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,
                      "example": 100,
                      "description": "Total number of resource.\n"
                    },
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "description": "The unique ID of IP rule.\n"
                          },
                          "cidr": {
                            "type": "string",
                            "description": "The `CIDR` notation IP address and prefix length,\nlike \"192.0.2.0/24\" or \"2001:db8::/32\", as defined in RFC 4632 and RFC 4291.\n"
                          },
                          "target": {
                            "type": "string",
                            "enum": [
                              "ACCEPT",
                              "DENY"
                            ],
                            "description": "IP rule's target:\n- `ACCEPT`: An accepted rule.\n- `DENY`: A rejection rule.\n"
                          },
                          "expire_at": {
                            "allOf": [
                              {
                                "type": "string",
                                "format": "date_time",
                                "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                                "example": "2017-07-21T17:32:28Z"
                              }
                            ],
                            "description": "IP rule's expire time.\n"
                          },
                          "description": {
                            "type": "string",
                            "maxLength": 255,
                            "description": "Remarks for the IP rule.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "value": null,
                          "id": null,
                          "cidr": null,
                          "target": null,
                          "expire_at": null,
                          "description": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/ip_filters/{id}": {
      "get": {
        "tags": [
          "Administration"
        ],
        "operationId": "showIpRule",
        "x-category": "system-management",
        "x-subcategory": "security",
        "x-permissions": [
          "SystemSettings.ViewOnly"
        ],
        "summary": "Retrieve an IP rule",
        "description": "Retrieve IP blacklist entry or whitelist entry.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of IP rule.\n"
            },
            "description": "The unique ID of the rule."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of IP rule.\n"
                    },
                    "cidr": {
                      "type": "string",
                      "description": "The `CIDR` notation IP address and prefix length,\nlike \"192.0.2.0/24\" or \"2001:db8::/32\", as defined in RFC 4632 and RFC 4291.\n"
                    },
                    "target": {
                      "type": "string",
                      "enum": [
                        "ACCEPT",
                        "DENY"
                      ],
                      "description": "IP rule's target:\n- `ACCEPT`: An accepted rule.\n- `DENY`: A rejection rule.\n"
                    },
                    "expire_at": {
                      "allOf": [
                        {
                          "type": "string",
                          "format": "date_time",
                          "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                          "example": "2017-07-21T17:32:28Z"
                        }
                      ],
                      "description": "IP rule's expire time.\n"
                    },
                    "description": {
                      "type": "string",
                      "maxLength": 255,
                      "description": "Remarks for the IP rule.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "id": null,
                      "cidr": null,
                      "target": null,
                      "expire_at": null,
                      "description": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "post": {
        "tags": [
          "Administration"
        ],
        "operationId": "updateIpRule",
        "x-category": "system-management",
        "x-subcategory": "security",
        "x-permissions": [
          "SystemSettings.FullAccess"
        ],
        "summary": "Update an IP rule",
        "description": "Update IP blacklist entry or whitelist entry that already exists.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of IP rule.\n"
            },
            "description": "The unique ID of the rule."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "cidr": {
                    "type": "string",
                    "description": "The `CIDR` notation IP address and prefix length,\nlike \"192.0.2.0/24\" or \"2001:db8::/32\", as defined in RFC 4632 and RFC 4291.\n"
                  },
                  "target": {
                    "type": "string",
                    "enum": [
                      "ACCEPT",
                      "DENY"
                    ],
                    "description": "IP rule's target:\n- `ACCEPT`: An accepted rule.\n- `DENY`: A rejection rule.\n"
                  },
                  "expire_at": {
                    "allOf": [
                      {
                        "type": "string",
                        "format": "date_time",
                        "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                        "example": "2017-07-21T17:32:28Z"
                      }
                    ],
                    "description": "IP rule's expire time.\n"
                  },
                  "description": {
                    "type": "string",
                    "maxLength": 255,
                    "description": "Remarks for the IP rule.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "cidr": null,
                    "target": null,
                    "expire_at": null,
                    "description": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/ip_filters/{id}/destroy": {
      "post": {
        "tags": [
          "Administration"
        ],
        "operationId": "deleteIpRule",
        "x-category": "system-management",
        "x-subcategory": "security",
        "x-permissions": [
          "SystemSettings.FullAccess"
        ],
        "summary": "Delete an IP rule",
        "description": "Destroy a certain IP rule.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of IP rule.\n"
            },
            "description": "The unique ID of the rule."
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Invalid rule ID supplied."
          }
        }
      }
    },
    "/ip_filters/export": {
      "get": {
        "tags": [
          "Administration"
        ],
        "operationId": "exportIpRules",
        "x-category": "system-management",
        "x-subcategory": "security",
        "x-permissions": [
          "SystemSettings.FullAccess"
        ],
        "summary": "Export IP rules",
        "description": "Export a collection of IP rules to file.\n",
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "Content-Disposition": {
                "schema": {
                  "type": "string"
                },
                "description": "the format is `attachment; filename=\"example\"`"
              }
            },
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/transports": {
      "post": {
        "tags": [
          "Administration"
        ],
        "operationId": "createTransport",
        "x-category": "system-management",
        "x-subcategory": "system-management",
        "x-permissions": [
          "SystemSettings.FullAccess"
        ],
        "summary": "Create a transport",
        "description": "Add a new transport.\n",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "protocol": {
                    "type": "string",
                    "enum": [
                      "UDP",
                      "TCP",
                      "TLS"
                    ],
                    "description": "The transport protocol:  \nCan be either:  \n- `UDP`:\n- `TCP`:\n- `TLS`:\n"
                  },
                  "port": {
                    "allOf": [
                      {
                        "type": "integer",
                        "format": "int32",
                        "minimum": 0,
                        "maximum": 65535,
                        "example": 80,
                        "description": "A port number is a 16-bit unsigned integer, thus ranging from 0 to 65535.\nFor TCP, port number 0 is reserved and cannot be used, while for UDP, the source port is optional and a value of zero means no port\n"
                      }
                    ],
                    "description": "The port of transport.\n"
                  },
                  "verification": {
                    "type": "string",
                    "enum": [
                      "DISABLE",
                      "OPTIONAL",
                      "MANDATORY"
                    ],
                    "description": "Indicates if PBX wishes (Optional) or requires (Mandatory) TLS clients to present a client certificate:\n- `DISABLE`: disable client certificate.\n- `OPTIONAL`: client authentication optional.\n- `MANDATORY`: force client authentication.\n"
                  }
                },
                "required": [
                  "protocol",
                  "port"
                ]
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "protocol": null,
                    "port": null,
                    "verification": null
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created transport",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of transport.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "The ID of created resource",
                    "value": {
                      "id": "xxxxxxxx"
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "get": {
        "tags": [
          "Administration"
        ],
        "operationId": "listTransports",
        "x-category": "system-management",
        "x-subcategory": "system-management",
        "x-permissions": [
          "SystemSettings.ViewOnly"
        ],
        "summary": "List transports",
        "description": "Retrieve a collection of transports\n",
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Use the `filter` query parameter to retrieve just a subset of a collection.\n"
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "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",
            "required": false,
            "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",
            "required": false,
            "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",
            "required": false,
            "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,
                      "example": 100,
                      "description": "Total number of resource.\n"
                    },
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "description": "The unique ID of transport.\n"
                          },
                          "protocol": {
                            "type": "string",
                            "enum": [
                              "UDP",
                              "TCP",
                              "TLS"
                            ],
                            "description": "The transport protocol:  \nCan be either:  \n- `UDP`:\n- `TCP`:\n- `TLS`:\n"
                          },
                          "port": {
                            "allOf": [
                              {
                                "type": "integer",
                                "format": "int32",
                                "minimum": 0,
                                "maximum": 65535,
                                "example": 80,
                                "description": "A port number is a 16-bit unsigned integer, thus ranging from 0 to 65535.\nFor TCP, port number 0 is reserved and cannot be used, while for UDP, the source port is optional and a value of zero means no port\n"
                              }
                            ],
                            "description": "The port of transport.\n"
                          },
                          "verification": {
                            "type": "string",
                            "enum": [
                              "DISABLE",
                              "OPTIONAL",
                              "MANDATORY"
                            ],
                            "description": "Indicates if PBX wishes (Optional) or requires (Mandatory) TLS clients to present a client certificate:\n- `DISABLE`: disable client certificate.\n- `OPTIONAL`: client authentication optional.\n- `MANDATORY`: force client authentication.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": null,
                          "protocol": null,
                          "port": null,
                          "verification": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/transports/{id}": {
      "get": {
        "tags": [
          "Administration"
        ],
        "operationId": "showTransport",
        "x-category": "system-management",
        "x-subcategory": "system-management",
        "x-permissions": [
          "SystemSettings.ViewOnly"
        ],
        "summary": "Retrieve a transport",
        "description": "Retrieve a transport by it's unique ID.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
              "description": "The unique ID of the resource.\n"
            },
            "description": "The unique ID of the transport."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of transport.\n"
                    },
                    "protocol": {
                      "type": "string",
                      "enum": [
                        "UDP",
                        "TCP",
                        "TLS"
                      ],
                      "description": "The transport protocol:  \nCan be either:  \n- `UDP`:\n- `TCP`:\n- `TLS`:\n"
                    },
                    "port": {
                      "allOf": [
                        {
                          "type": "integer",
                          "format": "int32",
                          "minimum": 0,
                          "maximum": 65535,
                          "example": 80,
                          "description": "A port number is a 16-bit unsigned integer, thus ranging from 0 to 65535.\nFor TCP, port number 0 is reserved and cannot be used, while for UDP, the source port is optional and a value of zero means no port\n"
                        }
                      ],
                      "description": "The port of transport.\n"
                    },
                    "verification": {
                      "type": "string",
                      "enum": [
                        "DISABLE",
                        "OPTIONAL",
                        "MANDATORY"
                      ],
                      "description": "Indicates if PBX wishes (Optional) or requires (Mandatory) TLS clients to present a client certificate:\n- `DISABLE`: disable client certificate.\n- `OPTIONAL`: client authentication optional.\n- `MANDATORY`: force client authentication.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "id": null,
                      "protocol": null,
                      "port": null,
                      "verification": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "post": {
        "tags": [
          "Administration"
        ],
        "operationId": "updateTransport",
        "x-category": "system-management",
        "x-subcategory": "system-management",
        "x-permissions": [
          "SystemSettings.FullAccess"
        ],
        "summary": "Update transport",
        "description": "Update a new transport.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of transport.\n"
            },
            "description": "The unique ID of the transport."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "port": {
                    "allOf": [
                      {
                        "type": "integer",
                        "format": "int32",
                        "minimum": 0,
                        "maximum": 65535,
                        "example": 80,
                        "description": "A port number is a 16-bit unsigned integer, thus ranging from 0 to 65535.\nFor TCP, port number 0 is reserved and cannot be used, while for UDP, the source port is optional and a value of zero means no port\n"
                      }
                    ],
                    "description": "The port of transport.\n"
                  },
                  "verification": {
                    "type": "string",
                    "enum": [
                      "DISABLE",
                      "OPTIONAL",
                      "MANDATORY"
                    ],
                    "description": "Indicates if PBX wishes (Optional) or requires (Mandatory) TLS clients to present a client certificate:\n- `DISABLE`: disable client certificate.\n- `OPTIONAL`: client authentication optional.\n- `MANDATORY`: force client authentication.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "port": null,
                    "verification": null
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/transports/{id}/destroy": {
      "post": {
        "tags": [
          "Administration"
        ],
        "operationId": "deleteTransport",
        "x-category": "system-management",
        "x-subcategory": "system-management",
        "x-permissions": [
          "SystemSettings.FullAccess"
        ],
        "summary": "Destroy transport",
        "description": "Destroy transport\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of transport.\n"
            },
            "description": "The unique ID of the transport."
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/transports/{id}/status": {
      "get": {
        "tags": [
          "Administration"
        ],
        "operationId": "getTransportStatus",
        "x-category": "system-management",
        "x-subcategory": "system-management",
        "x-permissions": [
          "SystemSettings.ViewOnly"
        ],
        "summary": "Query transport's status",
        "description": "Query transport's status\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "enum": [
                "UDP",
                "TCP",
                "TLS"
              ],
              "description": "The transport protocol:  \nCan be either:  \n- `UDP`:\n- `TCP`:\n- `TLS`:\n"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "enum": [
                        "ACTIVATED",
                        "DEACTIVATED"
                      ],
                      "readOnly": true,
                      "description": "Status of transport includes:\n- `ACTIVATED`:\n- `DEACTIVATED`:\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "status": "ACTIVATED"
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/tenants": {
      "post": {
        "tags": [
          "Administration"
        ],
        "operationId": "createTenant",
        "x-category": "tenants",
        "x-subcategory": "tenants",
        "x-permissions": [
          "SystemTenant.FullAccess"
        ],
        "summary": "Create a tenant",
        "description": "Create an new tenant.\n",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 1024,
                    "description": "The name of the tenant.\n"
                  },
                  "domain": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 280,
                    "description": "The SIP domain of tenant.  \nIt is usually a fully qualified domain name (FQDN).\nIf there is no FQDN, you can also use the IP address of the PBX server as the SIP domain.\nThe SIP domain name is only used for SIP message authentication and does not require analysis.\n"
                  },
                  "website": {
                    "type": "string",
                    "maxLength": 255,
                    "description": "The official website of tenant.\n"
                  },
                  "timezone": {
                    "allOf": [
                      {
                        "type": "string",
                        "description": "The IANA Time Zone names, such as \"Asia/Shanghai\".\n"
                      }
                    ],
                    "description": "Timezone for tenant.\n"
                  },
                  "currency": {
                    "type": "string",
                    "example": "USD",
                    "description": "The Currency code (ISO 4217).\n"
                  },
                  "region": {
                    "type": "string",
                    "description": "A valid country code based on iso3166-1 alpha-3 standard. see: https://www.iso.org/iso-3166-country-codes.html\n"
                  },
                  "enabled": {
                    "type": "boolean",
                    "default": true,
                    "description": "Enable this tenant or not.\n"
                  },
                  "enable_video_recording": {
                    "type": "boolean",
                    "default": false,
                    "description": "Allow extension video recording.\n"
                  },
                  "limit_app_logins": {
                    "type": "object",
                    "properties": {
                      "max_app_users": {
                        "type": "integer",
                        "description": "Maximum number of app users allowed to log in"
                      },
                      "max_teams_app_users": {
                        "type": "integer",
                        "description": "Maximum number of Teams app users allowed to log in"
                      },
                      "enable": {
                        "type": "boolean",
                        "description": "Whether this configuration is enabled"
                      }
                    },
                    "description": "app login limit settings"
                  },
                  "allow_password_retrieval": {
                    "type": "boolean",
                    "default": false,
                    "description": "Allow the user result api to return the user password and the user extension password.\n"
                  },
                  "ai_engine": {
                    "type": "object",
                    "properties": {
                      "enabled": {
                        "type": "boolean",
                        "default": false,
                        "description": "Enabled this event or not.\n"
                      },
                      "transcription_quota": {
                        "type": "integer",
                        "description": "Transcription_quota\n"
                      }
                    },
                    "description": "Allow extension video ai transcription.\n"
                  },
                  "enable_audio_recording": {
                    "type": "boolean",
                    "default": false,
                    "description": "Allow extension audio recording.\n"
                  },
                  "enable_dual_track_recording": {
                    "type": "boolean",
                    "default": false,
                    "description": "Allow dual track recording for calls.\n"
                  },
                  "enable_billing": {
                    "type": "boolean",
                    "default": false,
                    "description": "Enable call billing or not.\n"
                  },
                  "enable_feature_billing": {
                    "type": "boolean",
                    "default": false,
                    "description": "Enable call billing feature or not.\n"
                  },
                  "enable_feature_call_statistics": {
                    "type": "boolean",
                    "default": true,
                    "description": "Enable call statistics feature or not.\n"
                  },
                  "enable_feature_contact_center": {
                    "type": "boolean",
                    "default": true,
                    "description": "Enable contact center feature or not.\n"
                  },
                  "enable_feature_message_channels": {
                    "type": "boolean",
                    "default": true,
                    "description": "Enable message channels feature or not.\n"
                  },
                  "enable_feature_microsoft_teams": {
                    "type": "boolean",
                    "default": true,
                    "description": "Enable Microsoft Teams feature or not.\n"
                  },
                  "enable_feature_trunks": {
                    "type": "boolean",
                    "default": true,
                    "description": "Enable trunks feature or not.\n"
                  },
                  "enable_feature_whats_app": {
                    "type": "boolean",
                    "default": true,
                    "description": "Enable WhatsApp feature or not.\n"
                  },
                  "enable_feature_crm": {
                    "type": "boolean",
                    "default": true,
                    "description": "Enable CRM integrations feature or not.\n"
                  },
                  "enable_night_mode": {
                    "type": "boolean",
                    "default": false,
                    "description": "Whether to enable night mode.\n"
                  },
                  "enable_two_factor_authentication": {
                    "type": "boolean",
                    "default": false,
                    "description": "Whether to enable two-factor authentication.\n"
                  },
                  "custom_options": {
                    "type": "string",
                    "description": "Some custom configuration options serialized as json string\n"
                  },
                  "max_extensions": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 0,
                    "default": 1000,
                    "description": "The maximum number of users that the tenant is allowed to create.\n"
                  },
                  "max_concurrent_calls": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 0,
                    "default": 20,
                    "description": "The maximum number of concurrent calls that the tenant is allowed to have.\n"
                  },
                  "max_ring_groups": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 0,
                    "default": 20,
                    "description": "The maximum number of ring groups that the tenant is allowed to create.\n"
                  },
                  "max_virtual_receptionists": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 0,
                    "default": 20,
                    "description": "The maximum number of virtual receptionists that the tenant is allowed to create.\n"
                  },
                  "max_call_queues": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 0,
                    "default": 20,
                    "description": "The maximum number of call queues that the tenant is allowed to create.\n"
                  },
                  "max_conference_rooms": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 0,
                    "default": 20,
                    "description": "The maximum number of conference rooms that the tenant is allowed to be online at the same time.\n"
                  },
                  "disk_quota": {
                    "type": "string",
                    "default": "",
                    "description": "The maximum size of disk space that the tenant is allowed to have.  \nSpecify a positive number and specify the unit at the same time, KB, MB, GB, PB are all allowed.  \nFor example: 100MB, 1000GB. Leave it empty, means unlimited.\n"
                  },
                  "im_disk_quota": {
                    "type": "string",
                    "default": "",
                    "description": "The maximum size of disk space that the tenant is allowed to have for IM service.  \nSpecify a positive number and specify the unit at the same time, KB, MB, GB, PB are all allowed.  \nFor example: 100MB, 1000GB. Leave it empty, means unlimited.\n"
                  },
                  "extension_im_disk_quota": {
                    "type": "string",
                    "default": "1GB",
                    "description": "The maximum size of disk space that the extension user is allowed to have for IM service.  \nSpecify a positive number and specify the unit at the same time, KB, MB, GB, PB are all allowed.  \nFor example: 100MB, 1000GB. Leave it empty, means unlimited.\n"
                  },
                  "recording_retention": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 1,
                    "default": 180,
                    "description": "The retention period in days of recordings.\n"
                  },
                  "call_report_retention": {
                    "type": "integer",
                    "minimum": 1,
                    "default": 30,
                    "description": "The retention period in days of call report files.\n"
                  },
                  "log_retention": {
                    "type": "integer",
                    "minimum": 1,
                    "default": 180,
                    "description": "The retention period in days of audit logs and event logs.\n"
                  },
                  "temp_file_retention": {
                    "type": "integer",
                    "minimum": 1,
                    "default": 30,
                    "description": "The retention period in days of temporary files.\n"
                  },
                  "office_hours": {
                    "type": "object",
                    "properties": {
                      "monday": {
                        "type": "object",
                        "properties": {
                          "enabled": {
                            "type": "boolean",
                            "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                          },
                          "ranges": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "from": {
                                  "type": "string",
                                  "example": "09:00",
                                  "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                },
                                "to": {
                                  "type": "string",
                                  "example": "17:00",
                                  "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                }
                              }
                            },
                            "description": "Multiple start and end time periods make up the working time.\n"
                          }
                        }
                      },
                      "tuesday": {
                        "type": "object",
                        "properties": {
                          "enabled": {
                            "type": "boolean",
                            "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                          },
                          "ranges": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "from": {
                                  "type": "string",
                                  "example": "09:00",
                                  "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                },
                                "to": {
                                  "type": "string",
                                  "example": "17:00",
                                  "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                }
                              }
                            },
                            "description": "Multiple start and end time periods make up the working time.\n"
                          }
                        }
                      },
                      "wednesday": {
                        "type": "object",
                        "properties": {
                          "enabled": {
                            "type": "boolean",
                            "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                          },
                          "ranges": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "from": {
                                  "type": "string",
                                  "example": "09:00",
                                  "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                },
                                "to": {
                                  "type": "string",
                                  "example": "17:00",
                                  "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                }
                              }
                            },
                            "description": "Multiple start and end time periods make up the working time.\n"
                          }
                        }
                      },
                      "thursday": {
                        "type": "object",
                        "properties": {
                          "enabled": {
                            "type": "boolean",
                            "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                          },
                          "ranges": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "from": {
                                  "type": "string",
                                  "example": "09:00",
                                  "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                },
                                "to": {
                                  "type": "string",
                                  "example": "17:00",
                                  "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                }
                              }
                            },
                            "description": "Multiple start and end time periods make up the working time.\n"
                          }
                        }
                      },
                      "friday": {
                        "type": "object",
                        "properties": {
                          "enabled": {
                            "type": "boolean",
                            "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                          },
                          "ranges": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "from": {
                                  "type": "string",
                                  "example": "09:00",
                                  "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                },
                                "to": {
                                  "type": "string",
                                  "example": "17:00",
                                  "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                }
                              }
                            },
                            "description": "Multiple start and end time periods make up the working time.\n"
                          }
                        }
                      },
                      "saturday": {
                        "type": "object",
                        "properties": {
                          "enabled": {
                            "type": "boolean",
                            "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                          },
                          "ranges": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "from": {
                                  "type": "string",
                                  "example": "09:00",
                                  "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                },
                                "to": {
                                  "type": "string",
                                  "example": "17:00",
                                  "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                }
                              }
                            },
                            "description": "Multiple start and end time periods make up the working time.\n"
                          }
                        }
                      },
                      "sunday": {
                        "type": "object",
                        "properties": {
                          "enabled": {
                            "type": "boolean",
                            "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                          },
                          "ranges": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "from": {
                                  "type": "string",
                                  "example": "09:00",
                                  "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                },
                                "to": {
                                  "type": "string",
                                  "example": "17:00",
                                  "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                }
                              }
                            },
                            "description": "Multiple start and end time periods make up the working time.\n"
                          }
                        }
                      }
                    }
                  },
                  "e164": {
                    "type": "object",
                    "properties": {
                      "enabled": {
                        "type": "boolean",
                        "default": false,
                        "description": "Enable number processing or not.\n"
                      },
                      "international_code": {
                        "type": "string",
                        "description": "The International code.\n"
                      },
                      "country": {
                        "type": "string",
                        "description": "Country code.\n",
                        "example": "Angola(244)"
                      },
                      "area_code": {
                        "type": "string",
                        "description": "Area code.\n"
                      },
                      "national_code": {
                        "type": "string",
                        "description": "National code.\n"
                      },
                      "prefix": {
                        "type": "string",
                        "description": "Add prefix.\n"
                      },
                      "remove_special_chars": {
                        "type": "boolean",
                        "default": false,
                        "description": "Remove special characters in the numbers(the \"(\" and \")\" and spaces).\n"
                      },
                      "remove_duplicate_countries": {
                        "type": "boolean",
                        "default": true,
                        "description": "Remove duplicate countries.\n"
                      },
                      "remove_duplicate_area_codes": {
                        "type": "boolean",
                        "default": true,
                        "description": "Remove duplicate area code.\n"
                      }
                    }
                  },
                  "cdr_event": {
                    "type": "object",
                    "properties": {
                      "enabled": {
                        "type": "boolean",
                        "default": false,
                        "description": "Enabled this event or not.\n"
                      },
                      "auth": {
                        "type": "string",
                        "enum": [
                          "DISABLE",
                          "BASIC",
                          "DIGEST",
                          "BEARER"
                        ],
                        "default": "DISABLE",
                        "description": "The authentication method of event URL:  \nCan be either:  \n- `DISABLE`: Disable authentication.\n- `BASIC`: Use basic authentication.\n- `DIGEST`: Use digest authentication.\n- `BEARER`: Use bearer authentication.\n"
                      },
                      "username": {
                        "type": "string",
                        "minLength": 6,
                        "maxLength": 64,
                        "pattern": "[a-z0-9]{6,64}",
                        "description": "The username for authentication, when auth is `BASIC` or `DIGEST`.\n"
                      },
                      "password": {
                        "type": "string",
                        "minLength": 6,
                        "maxLength": 64,
                        "pattern": "[a-z0-9]{6,64}",
                        "description": "The password for authentication, when auth is `BASIC` or `DIGEST`.\n"
                      },
                      "token": {
                        "type": "string",
                        "description": "The token for authentication, when auth is `BEARER`.\n"
                      },
                      "url": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 128,
                        "pattern": "[a-z0-9]{6,64}",
                        "description": "The event url.\n"
                      }
                    }
                  },
                  "extension_event": {
                    "type": "object",
                    "properties": {
                      "enabled": {
                        "type": "boolean",
                        "default": false,
                        "description": "Enabled this event or not.\n"
                      },
                      "auth": {
                        "type": "string",
                        "enum": [
                          "DISABLE",
                          "BASIC",
                          "DIGEST",
                          "BEARER"
                        ],
                        "default": "DISABLE",
                        "description": "The authentication method of event URL:  \nCan be either:  \n- `DISABLE`: Disable authentication.\n- `BASIC`: Use basic authentication.\n- `DIGEST`: Use digest authentication.\n- `BEARER`: Use bearer authentication.\n"
                      },
                      "username": {
                        "type": "string",
                        "minLength": 6,
                        "maxLength": 64,
                        "pattern": "[a-z0-9]{6,64}",
                        "description": "The username for authentication, when auth is `BASIC` or `DIGEST`.\n"
                      },
                      "password": {
                        "type": "string",
                        "minLength": 6,
                        "maxLength": 64,
                        "pattern": "[a-z0-9]{6,64}",
                        "description": "The password for authentication, when auth is `BASIC` or `DIGEST`.\n"
                      },
                      "token": {
                        "type": "string",
                        "description": "The token for authentication, when auth is `BEARER`.\n"
                      },
                      "url": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 128,
                        "pattern": "[a-z0-9]{6,64}",
                        "description": "The event url.\n"
                      }
                    }
                  },
                  "contact_match_type": {
                    "type": "string",
                    "enum": [
                      "DISABLE",
                      "MATCH_EXACTLY",
                      "MATCH_LENGTH"
                    ],
                    "default": "MATCH_EXACTLY",
                    "description": "The match method of contact:  \nCan be either:  \n- `DISABLE`: Disable match.\n- `MATCH_EXACTLY`: Match exactly.\n- `MATCH_LENGTH`: Match at least specified number of characters.\n"
                  },
                  "contact_match_length": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 0,
                    "description": "The matched length of characters when contact_match_type is `MATCH_LENGTH`.\n"
                  },
                  "contact_append_type": {
                    "type": "string",
                    "enum": [
                      "DISABLE",
                      "APPEND",
                      "PREPEND"
                    ],
                    "default": "APPEND",
                    "description": "Method for adding Group, Queue or DID/DDI Names to Caller ID:  \nCan be either:  \n- `DISABLE`: Do not add.\n- `APPEND`: Append names.\n- `PREPEND`: Prepend names.\n"
                  },
                  "contact_inbound_rule_append_type": {
                    "type": "string",
                    "enum": [
                      "DISABLE",
                      "APPEND",
                      "PREPEND"
                    ],
                    "default": "APPEND",
                    "description": "Method for adding Group, Queue or DID/DDI Names to Caller ID:  \nCan be either:  \n- `DISABLE`: Do not add.\n- `APPEND`: Append names.\n- `PREPEND`: Prepend names.\n"
                  },
                  "contact_update_interval": {
                    "type": "integer",
                    "format": "uint32",
                    "minimum": 1,
                    "maximum": 43200,
                    "default": 720,
                    "description": "The interval for synchronizing contacts from the server, in minutes.\n"
                  },
                  "email_recipients": {
                    "type": "string",
                    "description": "Comma-separated list of email address that should receive notifications.   \nAllow up to 15 email addresses.\n"
                  },
                  "password_force_reset": {
                    "type": "boolean",
                    "default": false,
                    "description": "Whether to force reset the initial password.\n"
                  }
                },
                "required": [
                  "name",
                  "domain",
                  "timezone",
                  "currency",
                  "region"
                ]
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "name": null,
                    "domain": null,
                    "website": null,
                    "timezone": null,
                    "currency": null,
                    "region": null,
                    "enabled": null,
                    "enable_video_recording": null,
                    "ai_engine": null,
                    "enable_audio_recording": null,
                    "enable_dual_track_recording": null,
                    "enable_billing": null,
                    "enable_feature_billing": null,
                    "enable_feature_call_statistics": null,
                    "enable_feature_contact_center": null,
                    "enable_feature_message_channels": null,
                    "enable_feature_microsoft_teams": null,
                    "enable_feature_trunks": null,
                    "enable_feature_whats_app": null,
                    "enable_night_mode": null,
                    "enable_two_factor_authentication": null,
                    "custom_options": null,
                    "max_extensions": null,
                    "max_concurrent_calls": null,
                    "max_ring_groups": null,
                    "max_virtual_receptionists": null,
                    "max_call_queues": null,
                    "max_conference_rooms": null,
                    "disk_quota": null,
                    "im_disk_quota": null,
                    "extension_im_disk_quota": null,
                    "recording_retention": null,
                    "call_report_retention": null,
                    "log_retention": null,
                    "temp_file_retention": null,
                    "office_hours": null,
                    "e164": null,
                    "cdr_event": null,
                    "extension_event": null,
                    "contact_match_type": null,
                    "contact_match_length": null,
                    "contact_append_type": null,
                    "contact_inbound_rule_append_type": null,
                    "contact_update_interval": null,
                    "email_recipients": null,
                    "password_force_reset": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of tenant.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "The ID of created resource",
                    "value": {
                      "id": "xxxxxxxx"
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "get": {
        "tags": [
          "Administration"
        ],
        "operationId": "listTenants",
        "x-category": "tenants",
        "x-subcategory": "tenants",
        "x-permissions": [
          "SystemTenant.ViewOnly"
        ],
        "summary": "List tenants",
        "description": "Returns a list of tenant summary information.\nNote that it uses a different, smaller representation of a tenant than retrieving a single tenant.\n",
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Use the `filter` query parameter to retrieve just a subset of a collection.\n"
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "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",
            "required": false,
            "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",
            "required": false,
            "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",
            "required": false,
            "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,
                      "example": 100,
                      "description": "Total number of resource.\n"
                    },
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "description": "The unique ID of tenant.\n"
                          },
                          "name": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 1024,
                            "description": "The name of the tenant.\n"
                          },
                          "domain": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 280,
                            "description": "The SIP domain of tenant.  \nIt is usually a fully qualified domain name (FQDN).\nIf there is no FQDN, you can also use the IP address of the PBX server as the SIP domain.\nThe SIP domain name is only used for SIP message authentication and does not require analysis.\n"
                          },
                          "max_extensions": {
                            "type": "integer",
                            "format": "int32",
                            "minimum": 0,
                            "default": 1000,
                            "description": "The maximum number of users that the tenant is allowed to create.\n"
                          },
                          "current_extensions": {
                            "type": "integer",
                            "format": "int32",
                            "description": "The number of users that the tenant has already created.\n"
                          },
                          "max_concurrent_calls": {
                            "type": "integer",
                            "format": "int32",
                            "minimum": 0,
                            "default": 20,
                            "description": "The maximum number of concurrent calls that the tenant is allowed to have.\n"
                          },
                          "enabled": {
                            "type": "boolean",
                            "default": true,
                            "description": "Enable this tenant or not.\n"
                          },
                          "website": {
                            "type": "string",
                            "maxLength": 255,
                            "description": "The official website of tenant.\n"
                          },
                          "timezone": {
                            "allOf": [
                              {
                                "type": "string",
                                "description": "The IANA Time Zone names, such as \"Asia/Shanghai\".\n"
                              }
                            ],
                            "description": "Timezone for tenant.\n"
                          },
                          "currency": {
                            "type": "string",
                            "example": "USD",
                            "description": "The Currency code (ISO 4217).\n"
                          },
                          "region": {
                            "type": "string",
                            "description": "A valid country code based on iso3166-1 alpha-3 standard. see: https://www.iso.org/iso-3166-country-codes.html\n"
                          },
                          "avatar_file_name": {
                            "type": "string",
                            "description": "The name of the file.\n"
                          },
                          "avatar_file_size": {
                            "type": "integer",
                            "format": "int64",
                            "minimum": 0,
                            "example": 0,
                            "description": "The file size in bytes.\n"
                          },
                          "avatar_file_url": {
                            "type": "string",
                            "readOnly": true,
                            "example": "/api/blobs/WexWdABcd5D4PDgzTKV3gAAAEu00WcK",
                            "description": "The relative path to file url for file downloading.\n"
                          },
                          "created_at": {
                            "allOf": [
                              {
                                "type": "string",
                                "format": "date_time",
                                "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                                "example": "2017-07-21T17:32:28Z"
                              }
                            ],
                            "description": "The creation time of tenant.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": null,
                          "name": null,
                          "domain": null,
                          "max_extensions": 100,
                          "current_extensions": 100,
                          "max_concurrent_calls": null,
                          "enabled": null,
                          "website": null,
                          "timezone": null,
                          "currency": null,
                          "region": null,
                          "avatar_file_name": null,
                          "avatar_file_size": null,
                          "avatar_file_url": null,
                          "created_at": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/tenants/{id}": {
      "get": {
        "tags": [
          "Administration"
        ],
        "operationId": "showTenant",
        "x-category": "tenants",
        "x-subcategory": "tenants",
        "x-permissions": [
          "SystemTenant.ViewOnly"
        ],
        "summary": "Retrieve a tenant",
        "description": "Get detailed properties for a tenant.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of tenant.\n"
            },
            "description": "The unique ID of the tenant."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of tenant.\n"
                    },
                    "name": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 1024,
                      "description": "The name of the tenant.\n"
                    },
                    "domain": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 280,
                      "description": "The SIP domain of tenant.  \nIt is usually a fully qualified domain name (FQDN).\nIf there is no FQDN, you can also use the IP address of the PBX server as the SIP domain.\nThe SIP domain name is only used for SIP message authentication and does not require analysis.\n"
                    },
                    "website": {
                      "type": "string",
                      "maxLength": 255,
                      "description": "The official website of tenant.\n"
                    },
                    "timezone": {
                      "allOf": [
                        {
                          "type": "string",
                          "description": "The IANA Time Zone names, such as \"Asia/Shanghai\".\n"
                        }
                      ],
                      "description": "Timezone for tenant.\n"
                    },
                    "currency": {
                      "type": "string",
                      "example": "USD",
                      "description": "The Currency code (ISO 4217).\n"
                    },
                    "region": {
                      "type": "string",
                      "description": "A valid country code based on iso3166-1 alpha-3 standard. see: https://www.iso.org/iso-3166-country-codes.html\n"
                    },
                    "enabled": {
                      "type": "boolean",
                      "default": true,
                      "description": "Enable this tenant or not.\n"
                    },
                    "enable_video_recording": {
                      "type": "boolean",
                      "default": false,
                      "description": "Allow extension video recording.\n"
                    },
                    "limit_app_logins": {
                      "type": "object",
                      "properties": {
                        "max_app_users": {
                          "type": "integer",
                          "description": "Maximum number of app users allowed to log in"
                        },
                        "max_teams_app_users": {
                          "type": "integer",
                          "description": "Maximum number of Teams app users allowed to log in"
                        },
                        "enable": {
                          "type": "boolean",
                          "description": "Whether this configuration is enabled"
                        }
                      },
                      "description": "app login limit settings"
                    },
                    "ai_engine": {
                      "type": "object",
                      "properties": {
                        "enabled": {
                          "type": "boolean",
                          "default": false,
                          "description": "Enabled this event or not.\n"
                        },
                        "transcription_quota": {
                          "type": "integer",
                          "description": "Transcription_quota\n"
                        }
                      },
                      "description": "Allow extension video ai transcription.\n"
                    },
                    "enable_audio_recording": {
                      "type": "boolean",
                      "default": false,
                      "description": "Allow extension audio recording.\n"
                    },
                    "enable_dual_track_recording": {
                      "type": "boolean",
                      "default": false,
                      "description": "Allow dual track recording for calls.\n"
                    },
                    "enable_billing": {
                      "type": "boolean",
                      "default": false,
                      "description": "Enable call billing or not.\n"
                    },
                    "allow_password_retrieval": {
                      "type": "boolean",
                      "default": false,
                      "description": "Allow the user result api to return the user password and the user extension password.\n"
                    },
                    "enable_feature_billing": {
                      "type": "boolean",
                      "default": false,
                      "description": "Enable call billing feature or not.\n"
                    },
                    "enable_feature_call_statistics": {
                      "type": "boolean",
                      "default": true,
                      "description": "Enable call statistics feature or not.\n"
                    },
                    "enable_feature_contact_center": {
                      "type": "boolean",
                      "default": true,
                      "description": "Enable contact center feature or not.\n"
                    },
                    "enable_feature_message_channels": {
                      "type": "boolean",
                      "default": true,
                      "description": "Enable message channels feature or not.\n"
                    },
                    "enable_feature_microsoft_teams": {
                      "type": "boolean",
                      "default": true,
                      "description": "Enable Microsoft Teams feature or not.\n"
                    },
                    "enable_feature_trunks": {
                      "type": "boolean",
                      "default": true,
                      "description": "Enable trunks feature or not.\n"
                    },
                    "enable_feature_whats_app": {
                      "type": "boolean",
                      "default": true,
                      "description": "Enable WhatsApp feature or not.\n"
                    },
                    "enable_feature_crm": {
                      "type": "boolean",
                      "default": true,
                      "description": "Enable CRM integrations feature or not.\n"
                    },
                    "enable_night_mode": {
                      "type": "boolean",
                      "default": false,
                      "description": "Whether to enable night mode.\n"
                    },
                    "enable_two_factor_authentication": {
                      "type": "boolean",
                      "default": false,
                      "description": "Whether to enable two-factor authentication.\n"
                    },
                    "custom_options": {
                      "type": "string",
                      "description": "Some custom configuration options serialized as json string\n"
                    },
                    "max_extensions": {
                      "type": "integer",
                      "format": "int32",
                      "minimum": 0,
                      "default": 1000,
                      "description": "The maximum number of users that the tenant is allowed to create.\n"
                    },
                    "max_concurrent_calls": {
                      "type": "integer",
                      "format": "int32",
                      "minimum": 0,
                      "default": 20,
                      "description": "The maximum number of concurrent calls that the tenant is allowed to have.\n"
                    },
                    "max_ring_groups": {
                      "type": "integer",
                      "format": "int32",
                      "minimum": 0,
                      "default": 20,
                      "description": "The maximum number of ring groups that the tenant is allowed to create.\n"
                    },
                    "max_virtual_receptionists": {
                      "type": "integer",
                      "format": "int32",
                      "minimum": 0,
                      "default": 20,
                      "description": "The maximum number of virtual receptionists that the tenant is allowed to create.\n"
                    },
                    "max_call_queues": {
                      "type": "integer",
                      "format": "int32",
                      "minimum": 0,
                      "default": 20,
                      "description": "The maximum number of call queues that the tenant is allowed to create.\n"
                    },
                    "max_conference_rooms": {
                      "type": "integer",
                      "format": "int32",
                      "minimum": 0,
                      "default": 20,
                      "description": "The maximum number of conference rooms that the tenant is allowed to be online at the same time.\n"
                    },
                    "disk_quota": {
                      "type": "string",
                      "default": "",
                      "description": "The maximum size of disk space that the tenant is allowed to have.  \nSpecify a positive number and specify the unit at the same time, KB, MB, GB, PB are all allowed.  \nFor example: 100MB, 1000GB. Leave it empty, means unlimited.\n"
                    },
                    "used_disk_quota": {
                      "type": "string",
                      "description": "The used disk quota, an number followed by unit (KB, MB, GB, PB).\n"
                    },
                    "im_disk_quota": {
                      "type": "string",
                      "default": "",
                      "description": "The maximum size of disk space that the tenant is allowed to have for IM service.  \nSpecify a positive number and specify the unit at the same time, KB, MB, GB, PB are all allowed.  \nFor example: 100MB, 1000GB. Leave it empty, means unlimited.\n"
                    },
                    "extension_im_disk_quota": {
                      "type": "string",
                      "default": "1GB",
                      "description": "The maximum size of disk space that the extension user is allowed to have for IM service.  \nSpecify a positive number and specify the unit at the same time, KB, MB, GB, PB are all allowed.  \nFor example: 100MB, 1000GB. Leave it empty, means unlimited.\n"
                    },
                    "recording_retention": {
                      "type": "integer",
                      "format": "int32",
                      "minimum": 1,
                      "default": 180,
                      "description": "The retention period in days of recordings.\n"
                    },
                    "call_report_retention": {
                      "type": "integer",
                      "minimum": 1,
                      "default": 30,
                      "description": "The retention period in days of call report files.\n"
                    },
                    "log_retention": {
                      "type": "integer",
                      "minimum": 1,
                      "default": 180,
                      "description": "The retention period in days of audit logs and event logs.\n"
                    },
                    "temp_file_retention": {
                      "type": "integer",
                      "minimum": 1,
                      "default": 30,
                      "description": "The retention period in days of temporary files.\n"
                    },
                    "office_hours": {
                      "type": "object",
                      "properties": {
                        "monday": {
                          "type": "object",
                          "properties": {
                            "enabled": {
                              "type": "boolean",
                              "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                            },
                            "ranges": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "from": {
                                    "type": "string",
                                    "example": "09:00",
                                    "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                  },
                                  "to": {
                                    "type": "string",
                                    "example": "17:00",
                                    "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                  }
                                }
                              },
                              "description": "Multiple start and end time periods make up the working time.\n"
                            }
                          }
                        },
                        "tuesday": {
                          "type": "object",
                          "properties": {
                            "enabled": {
                              "type": "boolean",
                              "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                            },
                            "ranges": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "from": {
                                    "type": "string",
                                    "example": "09:00",
                                    "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                  },
                                  "to": {
                                    "type": "string",
                                    "example": "17:00",
                                    "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                  }
                                }
                              },
                              "description": "Multiple start and end time periods make up the working time.\n"
                            }
                          }
                        },
                        "wednesday": {
                          "type": "object",
                          "properties": {
                            "enabled": {
                              "type": "boolean",
                              "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                            },
                            "ranges": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "from": {
                                    "type": "string",
                                    "example": "09:00",
                                    "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                  },
                                  "to": {
                                    "type": "string",
                                    "example": "17:00",
                                    "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                  }
                                }
                              },
                              "description": "Multiple start and end time periods make up the working time.\n"
                            }
                          }
                        },
                        "thursday": {
                          "type": "object",
                          "properties": {
                            "enabled": {
                              "type": "boolean",
                              "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                            },
                            "ranges": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "from": {
                                    "type": "string",
                                    "example": "09:00",
                                    "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                  },
                                  "to": {
                                    "type": "string",
                                    "example": "17:00",
                                    "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                  }
                                }
                              },
                              "description": "Multiple start and end time periods make up the working time.\n"
                            }
                          }
                        },
                        "friday": {
                          "type": "object",
                          "properties": {
                            "enabled": {
                              "type": "boolean",
                              "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                            },
                            "ranges": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "from": {
                                    "type": "string",
                                    "example": "09:00",
                                    "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                  },
                                  "to": {
                                    "type": "string",
                                    "example": "17:00",
                                    "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                  }
                                }
                              },
                              "description": "Multiple start and end time periods make up the working time.\n"
                            }
                          }
                        },
                        "saturday": {
                          "type": "object",
                          "properties": {
                            "enabled": {
                              "type": "boolean",
                              "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                            },
                            "ranges": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "from": {
                                    "type": "string",
                                    "example": "09:00",
                                    "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                  },
                                  "to": {
                                    "type": "string",
                                    "example": "17:00",
                                    "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                  }
                                }
                              },
                              "description": "Multiple start and end time periods make up the working time.\n"
                            }
                          }
                        },
                        "sunday": {
                          "type": "object",
                          "properties": {
                            "enabled": {
                              "type": "boolean",
                              "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                            },
                            "ranges": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "from": {
                                    "type": "string",
                                    "example": "09:00",
                                    "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                  },
                                  "to": {
                                    "type": "string",
                                    "example": "17:00",
                                    "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                  }
                                }
                              },
                              "description": "Multiple start and end time periods make up the working time.\n"
                            }
                          }
                        }
                      }
                    },
                    "outbound_caller_ids": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "provider_id": {
                            "allOf": [
                              {
                                "allOf": [
                                  {
                                    "type": "string",
                                    "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                    "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"
                    },
                    "e164": {
                      "type": "object",
                      "properties": {
                        "enabled": {
                          "type": "boolean",
                          "default": false,
                          "description": "Enable number processing or not.\n"
                        },
                        "international_code": {
                          "type": "string",
                          "description": "The International code.\n"
                        },
                        "country": {
                          "type": "string",
                          "description": "Country code.\n",
                          "example": "Angola(244)"
                        },
                        "area_code": {
                          "type": "string",
                          "description": "Area code.\n"
                        },
                        "national_code": {
                          "type": "string",
                          "description": "National code.\n"
                        },
                        "prefix": {
                          "type": "string",
                          "description": "Add prefix.\n"
                        },
                        "remove_special_chars": {
                          "type": "boolean",
                          "default": false,
                          "description": "Remove special characters in the numbers(the \"(\" and \")\" and spaces).\n"
                        },
                        "remove_duplicate_countries": {
                          "type": "boolean",
                          "default": true,
                          "description": "Remove duplicate countries.\n"
                        },
                        "remove_duplicate_area_codes": {
                          "type": "boolean",
                          "default": true,
                          "description": "Remove duplicate area code.\n"
                        }
                      }
                    },
                    "cdr_event": {
                      "type": "object",
                      "properties": {
                        "enabled": {
                          "type": "boolean",
                          "default": false,
                          "description": "Enabled this event or not.\n"
                        },
                        "auth": {
                          "type": "string",
                          "enum": [
                            "DISABLE",
                            "BASIC",
                            "DIGEST",
                            "BEARER"
                          ],
                          "default": "DISABLE",
                          "description": "The authentication method of event URL:  \nCan be either:  \n- `DISABLE`: Disable authentication.\n- `BASIC`: Use basic authentication.\n- `DIGEST`: Use digest authentication.\n- `BEARER`: Use bearer authentication.\n"
                        },
                        "username": {
                          "type": "string",
                          "minLength": 6,
                          "maxLength": 64,
                          "pattern": "[a-z0-9]{6,64}",
                          "description": "The username for authentication, when auth is `BASIC` or `DIGEST`.\n"
                        },
                        "password": {
                          "type": "string",
                          "minLength": 6,
                          "maxLength": 64,
                          "pattern": "[a-z0-9]{6,64}",
                          "description": "The password for authentication, when auth is `BASIC` or `DIGEST`.\n"
                        },
                        "token": {
                          "type": "string",
                          "description": "The token for authentication, when auth is `BEARER`.\n"
                        },
                        "url": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 128,
                          "pattern": "[a-z0-9]{6,64}",
                          "description": "The event url.\n"
                        }
                      }
                    },
                    "extension_event": {
                      "type": "object",
                      "properties": {
                        "enabled": {
                          "type": "boolean",
                          "default": false,
                          "description": "Enabled this event or not.\n"
                        },
                        "auth": {
                          "type": "string",
                          "enum": [
                            "DISABLE",
                            "BASIC",
                            "DIGEST",
                            "BEARER"
                          ],
                          "default": "DISABLE",
                          "description": "The authentication method of event URL:  \nCan be either:  \n- `DISABLE`: Disable authentication.\n- `BASIC`: Use basic authentication.\n- `DIGEST`: Use digest authentication.\n- `BEARER`: Use bearer authentication.\n"
                        },
                        "username": {
                          "type": "string",
                          "minLength": 6,
                          "maxLength": 64,
                          "pattern": "[a-z0-9]{6,64}",
                          "description": "The username for authentication, when auth is `BASIC` or `DIGEST`.\n"
                        },
                        "password": {
                          "type": "string",
                          "minLength": 6,
                          "maxLength": 64,
                          "pattern": "[a-z0-9]{6,64}",
                          "description": "The password for authentication, when auth is `BASIC` or `DIGEST`.\n"
                        },
                        "token": {
                          "type": "string",
                          "description": "The token for authentication, when auth is `BEARER`.\n"
                        },
                        "url": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 128,
                          "pattern": "[a-z0-9]{6,64}",
                          "description": "The event url.\n"
                        }
                      }
                    },
                    "contact_match_type": {
                      "type": "string",
                      "enum": [
                        "DISABLE",
                        "MATCH_EXACTLY",
                        "MATCH_LENGTH"
                      ],
                      "default": "MATCH_EXACTLY",
                      "description": "The match method of contact:  \nCan be either:  \n- `DISABLE`: Disable match.\n- `MATCH_EXACTLY`: Match exactly.\n- `MATCH_LENGTH`: Match at least specified number of characters.\n"
                    },
                    "contact_match_length": {
                      "type": "integer",
                      "format": "int32",
                      "minimum": 0,
                      "description": "The matched length of characters when contact_match_type is `MATCH_LENGTH`.\n"
                    },
                    "contact_append_type": {
                      "type": "string",
                      "enum": [
                        "DISABLE",
                        "APPEND",
                        "PREPEND"
                      ],
                      "default": "APPEND",
                      "description": "Method for adding Group, Queue or DID/DDI Names to Caller ID:  \nCan be either:  \n- `DISABLE`: Do not add.\n- `APPEND`: Append names.\n- `PREPEND`: Prepend names.\n"
                    },
                    "contact_inbound_rule_append_type": {
                      "type": "string",
                      "enum": [
                        "DISABLE",
                        "APPEND",
                        "PREPEND"
                      ],
                      "default": "APPEND",
                      "description": "Method for adding Group, Queue or DID/DDI Names to Caller ID:  \nCan be either:  \n- `DISABLE`: Do not add.\n- `APPEND`: Append names.\n- `PREPEND`: Prepend names.\n"
                    },
                    "contact_update_interval": {
                      "type": "integer",
                      "format": "uint32",
                      "minimum": 1,
                      "maximum": 43200,
                      "default": 720,
                      "description": "The interval for synchronizing contacts from the server, in minutes.\n"
                    },
                    "email_recipients": {
                      "type": "string",
                      "description": "Comma-separated list of email address that should receive notifications.   \nAllow up to 15 email addresses.\n"
                    },
                    "password_force_reset": {
                      "type": "boolean",
                      "default": false,
                      "description": "Whether to force reset the initial password.\n"
                    },
                    "created_at": {
                      "allOf": [
                        {
                          "type": "string",
                          "format": "date_time",
                          "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                          "example": "2017-07-21T17:32:28Z"
                        }
                      ],
                      "description": "The creation time of tenant.\n"
                    },
                    "avatar_file_name": {
                      "type": "string",
                      "description": "The name of the file.\n"
                    },
                    "avatar_file_size": {
                      "type": "integer",
                      "format": "int64",
                      "minimum": 0,
                      "example": 0,
                      "description": "The file size in bytes.\n"
                    },
                    "avatar_file_url": {
                      "type": "string",
                      "readOnly": true,
                      "example": "/api/blobs/WexWdABcd5D4PDgzTKV3gAAAEu00WcK",
                      "description": "The relative path to file url for file downloading.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "id": null,
                      "name": null,
                      "domain": null,
                      "website": null,
                      "timezone": null,
                      "currency": null,
                      "region": null,
                      "enabled": null,
                      "enable_video_recording": null,
                      "ai_engine": null,
                      "enable_audio_recording": null,
                      "enable_dual_track_recording": null,
                      "enable_billing": null,
                      "enable_feature_billing": null,
                      "enable_feature_call_statistics": null,
                      "enable_feature_contact_center": null,
                      "enable_feature_message_channels": null,
                      "enable_feature_microsoft_teams": null,
                      "enable_feature_trunks": null,
                      "enable_feature_whats_app": null,
                      "enable_night_mode": null,
                      "enable_two_factor_authentication": null,
                      "custom_options": null,
                      "max_extensions": null,
                      "max_concurrent_calls": null,
                      "max_ring_groups": null,
                      "max_virtual_receptionists": null,
                      "max_call_queues": null,
                      "max_conference_rooms": null,
                      "disk_quota": null,
                      "used_disk_quota": null,
                      "im_disk_quota": null,
                      "extension_im_disk_quota": null,
                      "recording_retention": null,
                      "call_report_retention": null,
                      "log_retention": null,
                      "temp_file_retention": null,
                      "office_hours": null,
                      "outbound_caller_ids": null,
                      "e164": null,
                      "cdr_event": null,
                      "extension_event": null,
                      "contact_match_type": null,
                      "contact_match_length": null,
                      "contact_append_type": null,
                      "contact_inbound_rule_append_type": null,
                      "contact_update_interval": null,
                      "email_recipients": null,
                      "password_force_reset": null,
                      "created_at": null,
                      "avatar_file_name": null,
                      "avatar_file_size": null,
                      "avatar_file_url": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "post": {
        "tags": [
          "Administration"
        ],
        "operationId": "updateTenant",
        "x-category": "tenants",
        "x-subcategory": "tenants",
        "x-permissions": [
          "SystemTenant.FullAccess"
        ],
        "summary": "Update a tenant",
        "description": "Update tenant properties by it's unique ID.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of tenant.\n"
            },
            "description": "The unique ID of the tenant."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 1024,
                    "description": "The name of the tenant.\n"
                  },
                  "domain": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 280,
                    "description": "The SIP domain of tenant.  \nIt is usually a fully qualified domain name (FQDN).\nIf there is no FQDN, you can also use the IP address of the PBX server as the SIP domain.\nThe SIP domain name is only used for SIP message authentication and does not require analysis.\n"
                  },
                  "website": {
                    "type": "string",
                    "maxLength": 255,
                    "description": "The official website of tenant.\n"
                  },
                  "timezone": {
                    "allOf": [
                      {
                        "type": "string",
                        "description": "The IANA Time Zone names, such as \"Asia/Shanghai\".\n"
                      }
                    ],
                    "description": "Timezone for tenant.\n"
                  },
                  "currency": {
                    "type": "string",
                    "example": "USD",
                    "description": "The Currency code (ISO 4217).\n"
                  },
                  "region": {
                    "type": "string",
                    "description": "A valid country code based on iso3166-1 alpha-3 standard. see: https://www.iso.org/iso-3166-country-codes.html\n"
                  },
                  "enabled": {
                    "type": "boolean",
                    "default": true,
                    "description": "Enable this tenant or not.\n"
                  },
                  "enable_video_recording": {
                    "type": "boolean",
                    "default": false,
                    "description": "Allow extension video recording.\n"
                  },
                  "ai_engine": {
                    "type": "object",
                    "properties": {
                      "enabled": {
                        "type": "boolean",
                        "default": false,
                        "description": "Enabled this event or not.\n"
                      },
                      "transcription_quota": {
                        "type": "integer",
                        "description": "Transcription_quota\n"
                      }
                    },
                    "description": "Allow extension video ai transcription.\n"
                  },
                  "limit_app_logins": {
                    "type": "object",
                    "properties": {
                      "max_app_users": {
                        "type": "integer",
                        "description": "Maximum number of app users allowed to log in"
                      },
                      "max_teams_app_users": {
                        "type": "integer",
                        "description": "Maximum number of Teams app users allowed to log in"
                      },
                      "enable": {
                        "type": "boolean",
                        "description": "Whether this configuration is enabled"
                      }
                    },
                    "description": "app login limit settings"
                  },
                  "enable_audio_recording": {
                    "type": "boolean",
                    "default": false,
                    "description": "Allow extension audio recording.\n"
                  },
                  "enable_dual_track_recording": {
                    "type": "boolean",
                    "default": false,
                    "description": "Allow dual track recording for calls.\n"
                  },
                  "enable_billing": {
                    "type": "boolean",
                    "default": false,
                    "description": "Enable call billing or not.\n"
                  },
                  "enable_feature_billing": {
                    "type": "boolean",
                    "default": false,
                    "description": "Enable call billing feature or not.\n"
                  },
                  "allow_password_retrieval": {
                    "type": "boolean",
                    "default": false,
                    "description": "Allow the user result api to return the user password and the user extension password.\n"
                  },
                  "enable_feature_call_statistics": {
                    "type": "boolean",
                    "default": true,
                    "description": "Enable call statistics feature or not.\n"
                  },
                  "enable_feature_contact_center": {
                    "type": "boolean",
                    "default": true,
                    "description": "Enable contact center feature or not.\n"
                  },
                  "enable_feature_message_channels": {
                    "type": "boolean",
                    "default": true,
                    "description": "Enable message channels feature or not.\n"
                  },
                  "enable_feature_microsoft_teams": {
                    "type": "boolean",
                    "default": true,
                    "description": "Enable Microsoft Teams feature or not.\n"
                  },
                  "enable_feature_trunks": {
                    "type": "boolean",
                    "default": true,
                    "description": "Enable trunks feature or not.\n"
                  },
                  "enable_feature_whats_app": {
                    "type": "boolean",
                    "default": true,
                    "description": "Enable WhatsApp feature or not.\n"
                  },
                  "enable_feature_crm": {
                    "type": "boolean",
                    "default": true,
                    "description": "Enable CRM integrations feature or not.\n"
                  },
                  "enable_night_mode": {
                    "type": "boolean",
                    "default": false,
                    "description": "Whether to enable night mode.\n"
                  },
                  "enable_two_factor_authentication": {
                    "type": "boolean",
                    "default": false,
                    "description": "Whether to enable two-factor authentication.\n"
                  },
                  "custom_options": {
                    "type": "string",
                    "description": "Some custom configuration options serialized as json string\n"
                  },
                  "max_extensions": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 0,
                    "default": 1000,
                    "description": "The maximum number of users that the tenant is allowed to create.\n"
                  },
                  "max_concurrent_calls": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 0,
                    "default": 20,
                    "description": "The maximum number of concurrent calls that the tenant is allowed to have.\n"
                  },
                  "max_ring_groups": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 0,
                    "default": 20,
                    "description": "The maximum number of ring groups that the tenant is allowed to create.\n"
                  },
                  "max_virtual_receptionists": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 0,
                    "default": 20,
                    "description": "The maximum number of virtual receptionists that the tenant is allowed to create.\n"
                  },
                  "max_call_queues": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 0,
                    "default": 20,
                    "description": "The maximum number of call queues that the tenant is allowed to create.\n"
                  },
                  "max_conference_rooms": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 0,
                    "default": 20,
                    "description": "The maximum number of conference rooms that the tenant is allowed to be online at the same time.\n"
                  },
                  "disk_quota": {
                    "type": "string",
                    "default": "",
                    "description": "The maximum size of disk space that the tenant is allowed to have.  \nSpecify a positive number and specify the unit at the same time, KB, MB, GB, PB are all allowed.  \nFor example: 100MB, 1000GB. Leave it empty, means unlimited.\n"
                  },
                  "im_disk_quota": {
                    "type": "string",
                    "default": "",
                    "description": "The maximum size of disk space that the tenant is allowed to have for IM service.  \nSpecify a positive number and specify the unit at the same time, KB, MB, GB, PB are all allowed.  \nFor example: 100MB, 1000GB. Leave it empty, means unlimited.\n"
                  },
                  "extension_im_disk_quota": {
                    "type": "string",
                    "default": "1GB",
                    "description": "The maximum size of disk space that the extension user is allowed to have for IM service.  \nSpecify a positive number and specify the unit at the same time, KB, MB, GB, PB are all allowed.  \nFor example: 100MB, 1000GB. Leave it empty, means unlimited.\n"
                  },
                  "recording_retention": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 1,
                    "default": 180,
                    "description": "The retention period in days of recordings.\n"
                  },
                  "call_report_retention": {
                    "type": "integer",
                    "minimum": 1,
                    "default": 30,
                    "description": "The retention period in days of call report files.\n"
                  },
                  "log_retention": {
                    "type": "integer",
                    "minimum": 1,
                    "default": 180,
                    "description": "The retention period in days of audit logs and event logs.\n"
                  },
                  "temp_file_retention": {
                    "type": "integer",
                    "minimum": 1,
                    "default": 30,
                    "description": "The retention period in days of temporary files.\n"
                  },
                  "office_hours": {
                    "type": "object",
                    "properties": {
                      "monday": {
                        "type": "object",
                        "properties": {
                          "enabled": {
                            "type": "boolean",
                            "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                          },
                          "ranges": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "from": {
                                  "type": "string",
                                  "example": "09:00",
                                  "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                },
                                "to": {
                                  "type": "string",
                                  "example": "17:00",
                                  "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                }
                              }
                            },
                            "description": "Multiple start and end time periods make up the working time.\n"
                          }
                        }
                      },
                      "tuesday": {
                        "type": "object",
                        "properties": {
                          "enabled": {
                            "type": "boolean",
                            "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                          },
                          "ranges": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "from": {
                                  "type": "string",
                                  "example": "09:00",
                                  "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                },
                                "to": {
                                  "type": "string",
                                  "example": "17:00",
                                  "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                }
                              }
                            },
                            "description": "Multiple start and end time periods make up the working time.\n"
                          }
                        }
                      },
                      "wednesday": {
                        "type": "object",
                        "properties": {
                          "enabled": {
                            "type": "boolean",
                            "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                          },
                          "ranges": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "from": {
                                  "type": "string",
                                  "example": "09:00",
                                  "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                },
                                "to": {
                                  "type": "string",
                                  "example": "17:00",
                                  "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                }
                              }
                            },
                            "description": "Multiple start and end time periods make up the working time.\n"
                          }
                        }
                      },
                      "thursday": {
                        "type": "object",
                        "properties": {
                          "enabled": {
                            "type": "boolean",
                            "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                          },
                          "ranges": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "from": {
                                  "type": "string",
                                  "example": "09:00",
                                  "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                },
                                "to": {
                                  "type": "string",
                                  "example": "17:00",
                                  "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                }
                              }
                            },
                            "description": "Multiple start and end time periods make up the working time.\n"
                          }
                        }
                      },
                      "friday": {
                        "type": "object",
                        "properties": {
                          "enabled": {
                            "type": "boolean",
                            "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                          },
                          "ranges": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "from": {
                                  "type": "string",
                                  "example": "09:00",
                                  "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                },
                                "to": {
                                  "type": "string",
                                  "example": "17:00",
                                  "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                }
                              }
                            },
                            "description": "Multiple start and end time periods make up the working time.\n"
                          }
                        }
                      },
                      "saturday": {
                        "type": "object",
                        "properties": {
                          "enabled": {
                            "type": "boolean",
                            "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                          },
                          "ranges": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "from": {
                                  "type": "string",
                                  "example": "09:00",
                                  "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                },
                                "to": {
                                  "type": "string",
                                  "example": "17:00",
                                  "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                }
                              }
                            },
                            "description": "Multiple start and end time periods make up the working time.\n"
                          }
                        }
                      },
                      "sunday": {
                        "type": "object",
                        "properties": {
                          "enabled": {
                            "type": "boolean",
                            "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                          },
                          "ranges": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "from": {
                                  "type": "string",
                                  "example": "09:00",
                                  "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                },
                                "to": {
                                  "type": "string",
                                  "example": "17:00",
                                  "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                }
                              }
                            },
                            "description": "Multiple start and end time periods make up the working time.\n"
                          }
                        }
                      }
                    }
                  },
                  "e164": {
                    "type": "object",
                    "properties": {
                      "enabled": {
                        "type": "boolean",
                        "default": false,
                        "description": "Enable number processing or not.\n"
                      },
                      "international_code": {
                        "type": "string",
                        "description": "The International code.\n"
                      },
                      "country": {
                        "type": "string",
                        "description": "Country code.\n",
                        "example": "Angola(244)"
                      },
                      "area_code": {
                        "type": "string",
                        "description": "Area code.\n"
                      },
                      "national_code": {
                        "type": "string",
                        "description": "National code.\n"
                      },
                      "prefix": {
                        "type": "string",
                        "description": "Add prefix.\n"
                      },
                      "remove_special_chars": {
                        "type": "boolean",
                        "default": false,
                        "description": "Remove special characters in the numbers(the \"(\" and \")\" and spaces).\n"
                      },
                      "remove_duplicate_countries": {
                        "type": "boolean",
                        "default": true,
                        "description": "Remove duplicate countries.\n"
                      },
                      "remove_duplicate_area_codes": {
                        "type": "boolean",
                        "default": true,
                        "description": "Remove duplicate area code.\n"
                      }
                    }
                  },
                  "cdr_event": {
                    "type": "object",
                    "properties": {
                      "enabled": {
                        "type": "boolean",
                        "default": false,
                        "description": "Enabled this event or not.\n"
                      },
                      "auth": {
                        "type": "string",
                        "enum": [
                          "DISABLE",
                          "BASIC",
                          "DIGEST",
                          "BEARER"
                        ],
                        "default": "DISABLE",
                        "description": "The authentication method of event URL:  \nCan be either:  \n- `DISABLE`: Disable authentication.\n- `BASIC`: Use basic authentication.\n- `DIGEST`: Use digest authentication.\n- `BEARER`: Use bearer authentication.\n"
                      },
                      "username": {
                        "type": "string",
                        "minLength": 6,
                        "maxLength": 64,
                        "pattern": "[a-z0-9]{6,64}",
                        "description": "The username for authentication, when auth is `BASIC` or `DIGEST`.\n"
                      },
                      "password": {
                        "type": "string",
                        "minLength": 6,
                        "maxLength": 64,
                        "pattern": "[a-z0-9]{6,64}",
                        "description": "The password for authentication, when auth is `BASIC` or `DIGEST`.\n"
                      },
                      "token": {
                        "type": "string",
                        "description": "The token for authentication, when auth is `BEARER`.\n"
                      },
                      "url": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 128,
                        "pattern": "[a-z0-9]{6,64}",
                        "description": "The event url.\n"
                      }
                    }
                  },
                  "extension_event": {
                    "type": "object",
                    "properties": {
                      "enabled": {
                        "type": "boolean",
                        "default": false,
                        "description": "Enabled this event or not.\n"
                      },
                      "auth": {
                        "type": "string",
                        "enum": [
                          "DISABLE",
                          "BASIC",
                          "DIGEST",
                          "BEARER"
                        ],
                        "default": "DISABLE",
                        "description": "The authentication method of event URL:  \nCan be either:  \n- `DISABLE`: Disable authentication.\n- `BASIC`: Use basic authentication.\n- `DIGEST`: Use digest authentication.\n- `BEARER`: Use bearer authentication.\n"
                      },
                      "username": {
                        "type": "string",
                        "minLength": 6,
                        "maxLength": 64,
                        "pattern": "[a-z0-9]{6,64}",
                        "description": "The username for authentication, when auth is `BASIC` or `DIGEST`.\n"
                      },
                      "password": {
                        "type": "string",
                        "minLength": 6,
                        "maxLength": 64,
                        "pattern": "[a-z0-9]{6,64}",
                        "description": "The password for authentication, when auth is `BASIC` or `DIGEST`.\n"
                      },
                      "token": {
                        "type": "string",
                        "description": "The token for authentication, when auth is `BEARER`.\n"
                      },
                      "url": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 128,
                        "pattern": "[a-z0-9]{6,64}",
                        "description": "The event url.\n"
                      }
                    }
                  },
                  "contact_match_type": {
                    "type": "string",
                    "enum": [
                      "DISABLE",
                      "MATCH_EXACTLY",
                      "MATCH_LENGTH"
                    ],
                    "default": "MATCH_EXACTLY",
                    "description": "The match method of contact:  \nCan be either:  \n- `DISABLE`: Disable match.\n- `MATCH_EXACTLY`: Match exactly.\n- `MATCH_LENGTH`: Match at least specified number of characters.\n"
                  },
                  "contact_match_length": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 0,
                    "description": "The matched length of characters when contact_match_type is `MATCH_LENGTH`.\n"
                  },
                  "contact_append_type": {
                    "type": "string",
                    "enum": [
                      "DISABLE",
                      "APPEND",
                      "PREPEND"
                    ],
                    "default": "APPEND",
                    "description": "Method for adding Group, Queue or DID/DDI Names to Caller ID:  \nCan be either:  \n- `DISABLE`: Do not add.\n- `APPEND`: Append names.\n- `PREPEND`: Prepend names.\n"
                  },
                  "contact_inbound_rule_append_type": {
                    "type": "string",
                    "enum": [
                      "DISABLE",
                      "APPEND",
                      "PREPEND"
                    ],
                    "default": "APPEND",
                    "description": "Method for adding Group, Queue or DID/DDI Names to Caller ID:  \nCan be either:  \n- `DISABLE`: Do not add.\n- `APPEND`: Append names.\n- `PREPEND`: Prepend names.\n"
                  },
                  "contact_update_interval": {
                    "type": "integer",
                    "format": "uint32",
                    "minimum": 1,
                    "maximum": 43200,
                    "default": 720,
                    "description": "The interval for synchronizing contacts from the server, in minutes.\n"
                  },
                  "email_recipients": {
                    "type": "string",
                    "description": "Comma-separated list of email address that should receive notifications.   \nAllow up to 15 email addresses.\n"
                  },
                  "password_force_reset": {
                    "type": "boolean",
                    "default": false,
                    "description": "Whether to force reset the initial password.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "name": null,
                    "domain": null,
                    "website": null,
                    "timezone": null,
                    "currency": null,
                    "region": null,
                    "enabled": null,
                    "enable_video_recording": null,
                    "ai_engine": null,
                    "enable_audio_recording": null,
                    "enable_dual_track_recording": null,
                    "enable_billing": null,
                    "enable_feature_billing": null,
                    "enable_feature_call_statistics": null,
                    "enable_feature_contact_center": null,
                    "enable_feature_message_channels": null,
                    "enable_feature_microsoft_teams": null,
                    "enable_feature_trunks": null,
                    "enable_feature_whats_app": null,
                    "enable_night_mode": null,
                    "enable_two_factor_authentication": null,
                    "custom_options": null,
                    "max_extensions": null,
                    "max_concurrent_calls": null,
                    "max_ring_groups": null,
                    "max_virtual_receptionists": null,
                    "max_call_queues": null,
                    "max_conference_rooms": null,
                    "disk_quota": null,
                    "im_disk_quota": null,
                    "extension_im_disk_quota": null,
                    "recording_retention": null,
                    "call_report_retention": null,
                    "log_retention": null,
                    "temp_file_retention": null,
                    "office_hours": null,
                    "e164": null,
                    "cdr_event": null,
                    "extension_event": null,
                    "contact_match_type": null,
                    "contact_match_length": null,
                    "contact_append_type": null,
                    "contact_inbound_rule_append_type": null,
                    "contact_update_interval": null,
                    "email_recipients": null,
                    "password_force_reset": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/tenants/switch": {
      "post": {
        "tags": [
          "Administration"
        ],
        "operationId": "switchTenants",
        "x-category": "tenants",
        "x-subcategory": "tenants",
        "x-permissions": [],
        "summary": "Switch between tenants",
        "description": "Switch between tenants.\n",
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of tenant.\n"
            },
            "description": "The unique ID of the tenant.\n"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/tenants/{id}/dealers": {
      "get": {
        "tags": [
          "Administration"
        ],
        "operationId": "retrieveTenantDealer",
        "x-category": "tenants",
        "x-subcategory": "tenants",
        "x-permissions": [
          "SystemTenant.ViewOnly"
        ],
        "summary": "Retrieve dealer information the tenant belongs",
        "description": "Get the dealer to which the tenant belongs.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of tenant.\n"
            },
            "description": "The unique ID of the tenant."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "description": "The unique ID of dealer.\n"
                          },
                          "enabled": {
                            "type": "boolean",
                            "default": true,
                            "description": "Enable this dealer or not.\n"
                          },
                          "level": {
                            "type": "string",
                            "enum": [
                              "DISTRIBUTOR",
                              "SUB_DISTRIBUTOR",
                              "RESELLER"
                            ],
                            "description": "Dealer level includes:\n- `DISTRIBUTOR`: the first level of dealers.\n- `SUB_DISTRIBUTOR`: the second level of dealers.\n- `RESELLER`: the third level of dealers.\n"
                          },
                          "name": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 64,
                            "description": "The user's account name.   \nOnly letters, numbers, and the following special characters can be added: underscore, dash, single quote, and period (_, -, ', and .).   \nUsername cannot start or end with period (.).   \n`admin`, `system`, `administrator`, and `root` are reserved names for system admin only with case ignored.\n"
                          },
                          "display_name": {
                            "type": "string",
                            "maxLength": 1024,
                            "description": "The display name of user.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "items": [
                        {
                          "id": null,
                          "enabled": null,
                          "level": null,
                          "name": null,
                          "display_name": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/tenants/{id}/dealers/{dealer_id}": {
      "post": {
        "tags": [
          "Administration"
        ],
        "operationId": "designateTenantToDealer",
        "x-category": "tenants",
        "x-subcategory": "tenants",
        "x-permissions": [
          "SystemTenant.FullAccess"
        ],
        "summary": "Designate tenant to dealer",
        "description": "Designate tenant to dealer.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of tenant.\n"
            },
            "description": "The unique ID of the tenant."
          },
          {
            "name": "dealer_id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of dealer.\n"
            },
            "description": "The unique ID of the dealer."
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/tenants/{id}/dealers/{dealer_id}/destroy": {
      "post": {
        "tags": [
          "Administration"
        ],
        "operationId": "removeTenantFromDealer",
        "x-category": "tenants",
        "x-subcategory": "tenants",
        "x-permissions": [
          "SystemTenant.FullAccess"
        ],
        "summary": "Remove tenant to dealer",
        "description": "Remove tenant from dealer.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of tenant.\n"
            },
            "description": "The unique ID of the tenant."
          },
          {
            "name": "dealer_id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of dealer.\n"
            },
            "description": "The unique ID of the dealer."
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/tenants/{id}/destroy": {
      "post": {
        "tags": [
          "Administration"
        ],
        "operationId": "deleteTenant",
        "x-category": "tenants",
        "x-subcategory": "tenants",
        "x-permissions": [
          "SystemTenant.FullAccess"
        ],
        "summary": "Delete a tenant",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of tenant.\n"
            },
            "description": "The unique ID of the tenant."
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Invalid name supplied"
          },
          "404": {
            "description": "Tenant not found"
          }
        }
      }
    },
    "/tenant": {
      "get": {
        "tags": [
          "Tenant"
        ],
        "operationId": "showCurrentConfigurations",
        "x-category": "tenants",
        "x-subcategory": "organization",
        "x-permissions": [
          "Company.ViewOnly"
        ],
        "summary": "Retrieve current configurations",
        "description": "Get detailed properties for current tenant.\n",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of tenant.\n"
                    },
                    "name": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 1024,
                      "description": "The name of the tenant.\n"
                    },
                    "domain": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 280,
                      "description": "The SIP domain of tenant.  \nIt is usually a fully qualified domain name (FQDN).\nIf there is no FQDN, you can also use the IP address of the PBX server as the SIP domain.\nThe SIP domain name is only used for SIP message authentication and does not require analysis.\n"
                    },
                    "website": {
                      "type": "string",
                      "maxLength": 255,
                      "description": "The official website of tenant.\n"
                    },
                    "timezone": {
                      "allOf": [
                        {
                          "type": "string",
                          "description": "The IANA Time Zone names, such as \"Asia/Shanghai\".\n"
                        }
                      ],
                      "description": "Timezone for tenant.\n"
                    },
                    "currency": {
                      "type": "string",
                      "example": "USD",
                      "description": "The Currency code (ISO 4217).\n"
                    },
                    "region": {
                      "type": "string",
                      "description": "A valid country code based on iso3166-1 alpha-3 standard. see: https://www.iso.org/iso-3166-country-codes.html\n"
                    },
                    "enable_video_recording": {
                      "type": "boolean",
                      "default": false,
                      "description": "Allow extension video recording.\n"
                    },
                    "ai_engine": {
                      "type": "object",
                      "properties": {
                        "enabled": {
                          "type": "boolean",
                          "default": false,
                          "description": "Enabled this event or not.\n"
                        },
                        "transcription_quota": {
                          "type": "integer",
                          "description": "Transcription_quota\n"
                        }
                      },
                      "description": "Allow extension video ai transcription.\n"
                    },
                    "limit_app_logins": {
                      "type": "object",
                      "properties": {
                        "max_app_users": {
                          "type": "integer",
                          "description": "Maximum number of app users allowed to log in"
                        },
                        "max_teams_app_users": {
                          "type": "integer",
                          "description": "Maximum number of Teams app users allowed to log in"
                        },
                        "enable": {
                          "type": "boolean",
                          "description": "Whether this configuration is enabled"
                        }
                      },
                      "description": "app login limit settings"
                    },
                    "allow_password_retrieval": {
                      "type": "boolean",
                      "default": false,
                      "description": "Allow the user result api to return the user password and the user extension password.\n"
                    },
                    "enable_audio_recording": {
                      "type": "boolean",
                      "default": false,
                      "description": "Allow extension audio recording.\n"
                    },
                    "enable_dual_track_recording": {
                      "type": "boolean",
                      "default": false,
                      "description": "Allow dual track recording for calls.\n"
                    },
                    "enable_billing": {
                      "type": "boolean",
                      "default": false,
                      "description": "Enable call billing or not.\n"
                    },
                    "enable_feature_billing": {
                      "type": "boolean",
                      "default": false,
                      "description": "Enable call billing feature or not.\n"
                    },
                    "enable_feature_call_statistics": {
                      "type": "boolean",
                      "default": true,
                      "description": "Enable call statistics feature or not.\n"
                    },
                    "enable_feature_contact_center": {
                      "type": "boolean",
                      "default": true,
                      "description": "Enable contact center feature or not.\n"
                    },
                    "enable_feature_message_channels": {
                      "type": "boolean",
                      "default": true,
                      "description": "Enable message channels feature or not.\n"
                    },
                    "enable_feature_microsoft_teams": {
                      "type": "boolean",
                      "default": true,
                      "description": "Enable Microsoft Teams feature or not.\n"
                    },
                    "enable_feature_trunks": {
                      "type": "boolean",
                      "default": true,
                      "description": "Enable trunks feature or not.\n"
                    },
                    "enable_feature_whats_app": {
                      "type": "boolean",
                      "default": true,
                      "description": "Enable WhatsApp feature or not.\n"
                    },
                    "enable_feature_crm": {
                      "type": "boolean",
                      "default": true,
                      "description": "Enable CRM integrations feature or not.\n"
                    },
                    "enable_night_mode": {
                      "type": "boolean",
                      "default": false,
                      "description": "Whether to enable night mode.\n"
                    },
                    "enable_two_factor_authentication": {
                      "type": "boolean",
                      "default": false,
                      "description": "Whether to enable two-factor authentication.\n"
                    },
                    "custom_options": {
                      "type": "string",
                      "description": "Some custom configuration options serialized as json string\n"
                    },
                    "max_extensions": {
                      "type": "integer",
                      "format": "int32",
                      "minimum": 0,
                      "default": 1000,
                      "description": "The maximum number of users that the tenant is allowed to create.\n"
                    },
                    "max_concurrent_calls": {
                      "type": "integer",
                      "format": "int32",
                      "minimum": 0,
                      "default": 20,
                      "description": "The maximum number of concurrent calls that the tenant is allowed to have.\n"
                    },
                    "max_ring_groups": {
                      "type": "integer",
                      "format": "int32",
                      "minimum": 0,
                      "default": 20,
                      "description": "The maximum number of ring groups that the tenant is allowed to create.\n"
                    },
                    "max_virtual_receptionists": {
                      "type": "integer",
                      "format": "int32",
                      "minimum": 0,
                      "default": 20,
                      "description": "The maximum number of virtual receptionists that the tenant is allowed to create.\n"
                    },
                    "max_call_queues": {
                      "type": "integer",
                      "format": "int32",
                      "minimum": 0,
                      "default": 20,
                      "description": "The maximum number of call queues that the tenant is allowed to create.\n"
                    },
                    "max_conference_rooms": {
                      "type": "integer",
                      "format": "int32",
                      "minimum": 0,
                      "default": 20,
                      "description": "The maximum number of conference rooms that the tenant is allowed to be online at the same time.\n"
                    },
                    "disk_quota": {
                      "type": "string",
                      "default": "",
                      "description": "The maximum size of disk space that the tenant is allowed to have.  \nSpecify a positive number and specify the unit at the same time, KB, MB, GB, PB are all allowed.  \nFor example: 100MB, 1000GB. Leave it empty, means unlimited.\n"
                    },
                    "used_disk_quota": {
                      "type": "string",
                      "description": "The used disk quota, an number followed by unit (KB, MB, GB, PB).\n"
                    },
                    "im_disk_quota": {
                      "type": "string",
                      "default": "",
                      "description": "The maximum size of disk space that the tenant is allowed to have for IM service.  \nSpecify a positive number and specify the unit at the same time, KB, MB, GB, PB are all allowed.  \nFor example: 100MB, 1000GB. Leave it empty, means unlimited.\n"
                    },
                    "extension_im_disk_quota": {
                      "type": "string",
                      "default": "1GB",
                      "description": "The maximum size of disk space that the extension user is allowed to have for IM service.  \nSpecify a positive number and specify the unit at the same time, KB, MB, GB, PB are all allowed.  \nFor example: 100MB, 1000GB. Leave it empty, means unlimited.\n"
                    },
                    "recording_retention": {
                      "type": "integer",
                      "format": "int32",
                      "minimum": 1,
                      "default": 180,
                      "description": "The retention period in days of recordings.\n"
                    },
                    "call_report_retention": {
                      "type": "integer",
                      "minimum": 1,
                      "default": 30,
                      "description": "The retention period in days of call report files.\n"
                    },
                    "log_retention": {
                      "type": "integer",
                      "minimum": 1,
                      "default": 180,
                      "description": "The retention period in days of audit logs and event logs.\n"
                    },
                    "temp_file_retention": {
                      "type": "integer",
                      "minimum": 1,
                      "default": 30,
                      "description": "The retention period in days of temporary files.\n"
                    },
                    "office_hours": {
                      "type": "object",
                      "properties": {
                        "monday": {
                          "type": "object",
                          "properties": {
                            "enabled": {
                              "type": "boolean",
                              "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                            },
                            "ranges": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "from": {
                                    "type": "string",
                                    "example": "09:00",
                                    "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                  },
                                  "to": {
                                    "type": "string",
                                    "example": "17:00",
                                    "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                  }
                                }
                              },
                              "description": "Multiple start and end time periods make up the working time.\n"
                            }
                          }
                        },
                        "tuesday": {
                          "type": "object",
                          "properties": {
                            "enabled": {
                              "type": "boolean",
                              "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                            },
                            "ranges": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "from": {
                                    "type": "string",
                                    "example": "09:00",
                                    "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                  },
                                  "to": {
                                    "type": "string",
                                    "example": "17:00",
                                    "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                  }
                                }
                              },
                              "description": "Multiple start and end time periods make up the working time.\n"
                            }
                          }
                        },
                        "wednesday": {
                          "type": "object",
                          "properties": {
                            "enabled": {
                              "type": "boolean",
                              "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                            },
                            "ranges": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "from": {
                                    "type": "string",
                                    "example": "09:00",
                                    "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                  },
                                  "to": {
                                    "type": "string",
                                    "example": "17:00",
                                    "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                  }
                                }
                              },
                              "description": "Multiple start and end time periods make up the working time.\n"
                            }
                          }
                        },
                        "thursday": {
                          "type": "object",
                          "properties": {
                            "enabled": {
                              "type": "boolean",
                              "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                            },
                            "ranges": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "from": {
                                    "type": "string",
                                    "example": "09:00",
                                    "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                  },
                                  "to": {
                                    "type": "string",
                                    "example": "17:00",
                                    "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                  }
                                }
                              },
                              "description": "Multiple start and end time periods make up the working time.\n"
                            }
                          }
                        },
                        "friday": {
                          "type": "object",
                          "properties": {
                            "enabled": {
                              "type": "boolean",
                              "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                            },
                            "ranges": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "from": {
                                    "type": "string",
                                    "example": "09:00",
                                    "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                  },
                                  "to": {
                                    "type": "string",
                                    "example": "17:00",
                                    "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                  }
                                }
                              },
                              "description": "Multiple start and end time periods make up the working time.\n"
                            }
                          }
                        },
                        "saturday": {
                          "type": "object",
                          "properties": {
                            "enabled": {
                              "type": "boolean",
                              "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                            },
                            "ranges": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "from": {
                                    "type": "string",
                                    "example": "09:00",
                                    "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                  },
                                  "to": {
                                    "type": "string",
                                    "example": "17:00",
                                    "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                  }
                                }
                              },
                              "description": "Multiple start and end time periods make up the working time.\n"
                            }
                          }
                        },
                        "sunday": {
                          "type": "object",
                          "properties": {
                            "enabled": {
                              "type": "boolean",
                              "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                            },
                            "ranges": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "from": {
                                    "type": "string",
                                    "example": "09:00",
                                    "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                  },
                                  "to": {
                                    "type": "string",
                                    "example": "17:00",
                                    "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                  }
                                }
                              },
                              "description": "Multiple start and end time periods make up the working time.\n"
                            }
                          }
                        }
                      }
                    },
                    "outbound_caller_ids": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "provider_id": {
                            "allOf": [
                              {
                                "allOf": [
                                  {
                                    "type": "string",
                                    "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                    "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"
                    },
                    "e164": {
                      "type": "object",
                      "properties": {
                        "enabled": {
                          "type": "boolean",
                          "default": false,
                          "description": "Enable number processing or not.\n"
                        },
                        "international_code": {
                          "type": "string",
                          "description": "The International code.\n"
                        },
                        "country": {
                          "type": "string",
                          "description": "Country code.\n",
                          "example": "Angola(244)"
                        },
                        "area_code": {
                          "type": "string",
                          "description": "Area code.\n"
                        },
                        "national_code": {
                          "type": "string",
                          "description": "National code.\n"
                        },
                        "prefix": {
                          "type": "string",
                          "description": "Add prefix.\n"
                        },
                        "remove_special_chars": {
                          "type": "boolean",
                          "default": false,
                          "description": "Remove special characters in the numbers(the \"(\" and \")\" and spaces).\n"
                        },
                        "remove_duplicate_countries": {
                          "type": "boolean",
                          "default": true,
                          "description": "Remove duplicate countries.\n"
                        },
                        "remove_duplicate_area_codes": {
                          "type": "boolean",
                          "default": true,
                          "description": "Remove duplicate area code.\n"
                        }
                      }
                    },
                    "cdr_event": {
                      "type": "object",
                      "properties": {
                        "enabled": {
                          "type": "boolean",
                          "default": false,
                          "description": "Enabled this event or not.\n"
                        },
                        "auth": {
                          "type": "string",
                          "enum": [
                            "DISABLE",
                            "BASIC",
                            "DIGEST",
                            "BEARER"
                          ],
                          "default": "DISABLE",
                          "description": "The authentication method of event URL:  \nCan be either:  \n- `DISABLE`: Disable authentication.\n- `BASIC`: Use basic authentication.\n- `DIGEST`: Use digest authentication.\n- `BEARER`: Use bearer authentication.\n"
                        },
                        "username": {
                          "type": "string",
                          "minLength": 6,
                          "maxLength": 64,
                          "pattern": "[a-z0-9]{6,64}",
                          "description": "The username for authentication, when auth is `BASIC` or `DIGEST`.\n"
                        },
                        "password": {
                          "type": "string",
                          "minLength": 6,
                          "maxLength": 64,
                          "pattern": "[a-z0-9]{6,64}",
                          "description": "The password for authentication, when auth is `BASIC` or `DIGEST`.\n"
                        },
                        "token": {
                          "type": "string",
                          "description": "The token for authentication, when auth is `BEARER`.\n"
                        },
                        "url": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 128,
                          "pattern": "[a-z0-9]{6,64}",
                          "description": "The event url.\n"
                        }
                      }
                    },
                    "extension_event": {
                      "type": "object",
                      "properties": {
                        "enabled": {
                          "type": "boolean",
                          "default": false,
                          "description": "Enabled this event or not.\n"
                        },
                        "auth": {
                          "type": "string",
                          "enum": [
                            "DISABLE",
                            "BASIC",
                            "DIGEST",
                            "BEARER"
                          ],
                          "default": "DISABLE",
                          "description": "The authentication method of event URL:  \nCan be either:  \n- `DISABLE`: Disable authentication.\n- `BASIC`: Use basic authentication.\n- `DIGEST`: Use digest authentication.\n- `BEARER`: Use bearer authentication.\n"
                        },
                        "username": {
                          "type": "string",
                          "minLength": 6,
                          "maxLength": 64,
                          "pattern": "[a-z0-9]{6,64}",
                          "description": "The username for authentication, when auth is `BASIC` or `DIGEST`.\n"
                        },
                        "password": {
                          "type": "string",
                          "minLength": 6,
                          "maxLength": 64,
                          "pattern": "[a-z0-9]{6,64}",
                          "description": "The password for authentication, when auth is `BASIC` or `DIGEST`.\n"
                        },
                        "token": {
                          "type": "string",
                          "description": "The token for authentication, when auth is `BEARER`.\n"
                        },
                        "url": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 128,
                          "pattern": "[a-z0-9]{6,64}",
                          "description": "The event url.\n"
                        }
                      }
                    },
                    "contact_match_type": {
                      "type": "string",
                      "enum": [
                        "DISABLE",
                        "MATCH_EXACTLY",
                        "MATCH_LENGTH"
                      ],
                      "default": "MATCH_EXACTLY",
                      "description": "The match method of contact:  \nCan be either:  \n- `DISABLE`: Disable match.\n- `MATCH_EXACTLY`: Match exactly.\n- `MATCH_LENGTH`: Match at least specified number of characters.\n"
                    },
                    "contact_match_length": {
                      "type": "integer",
                      "format": "int32",
                      "minimum": 0,
                      "description": "The matched length of characters when contact_match_type is `MATCH_LENGTH`.\n"
                    },
                    "contact_append_type": {
                      "type": "string",
                      "enum": [
                        "DISABLE",
                        "APPEND",
                        "PREPEND"
                      ],
                      "default": "APPEND",
                      "description": "Method for adding Group, Queue or DID/DDI Names to Caller ID:  \nCan be either:  \n- `DISABLE`: Do not add.\n- `APPEND`: Append names.\n- `PREPEND`: Prepend names.\n"
                    },
                    "contact_inbound_rule_append_type": {
                      "type": "string",
                      "enum": [
                        "DISABLE",
                        "APPEND",
                        "PREPEND"
                      ],
                      "default": "APPEND",
                      "description": "Method for adding Group, Queue or DID/DDI Names to Caller ID:  \nCan be either:  \n- `DISABLE`: Do not add.\n- `APPEND`: Append names.\n- `PREPEND`: Prepend names.\n"
                    },
                    "contact_update_interval": {
                      "type": "integer",
                      "format": "uint32",
                      "minimum": 1,
                      "maximum": 43200,
                      "default": 720,
                      "description": "The interval for synchronizing contacts from the server, in minutes.\n"
                    },
                    "password_force_reset": {
                      "type": "boolean",
                      "default": false,
                      "description": "Whether to force reset the initial password.\n"
                    },
                    "avatar_file_name": {
                      "type": "string",
                      "description": "The name of the file.\n"
                    },
                    "avatar_file_size": {
                      "type": "integer",
                      "format": "int64",
                      "minimum": 0,
                      "example": 0,
                      "description": "The file size in bytes.\n"
                    },
                    "avatar_file_url": {
                      "type": "string",
                      "readOnly": true,
                      "example": "/api/blobs/WexWdABcd5D4PDgzTKV3gAAAEu00WcK",
                      "description": "The relative path to file url for file downloading.\n"
                    },
                    "stir_shaken_cert": {
                      "type": "string",
                      "description": "Content of this certificate file for STIR/SHAKEN support.\n"
                    },
                    "stir_shaken_key": {
                      "type": "string",
                      "description": "Content of this private certificate file for STIR/SHAKEN support.\n"
                    },
                    "crm_provider": {
                      "type": "string",
                      "description": "The CRM provider.   \nSuch as zoho, hubspot.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "id": null,
                      "name": null,
                      "domain": null,
                      "website": null,
                      "timezone": null,
                      "currency": null,
                      "region": null,
                      "enable_video_recording": null,
                      "ai_engine": null,
                      "enable_audio_recording": null,
                      "enable_dual_track_recording": null,
                      "enable_billing": null,
                      "enable_feature_billing": null,
                      "enable_feature_call_statistics": null,
                      "enable_feature_contact_center": null,
                      "enable_feature_message_channels": null,
                      "enable_feature_microsoft_teams": null,
                      "enable_feature_trunks": null,
                      "enable_feature_whats_app": null,
                      "enable_night_mode": null,
                      "enable_two_factor_authentication": null,
                      "custom_options": null,
                      "max_extensions": null,
                      "max_concurrent_calls": null,
                      "max_ring_groups": null,
                      "max_virtual_receptionists": null,
                      "max_call_queues": null,
                      "max_conference_rooms": null,
                      "disk_quota": null,
                      "used_disk_quota": null,
                      "im_disk_quota": null,
                      "extension_im_disk_quota": null,
                      "recording_retention": null,
                      "call_report_retention": null,
                      "log_retention": null,
                      "temp_file_retention": null,
                      "office_hours": null,
                      "outbound_caller_ids": null,
                      "e164": null,
                      "cdr_event": null,
                      "extension_event": null,
                      "contact_match_type": null,
                      "contact_match_length": null,
                      "contact_append_type": null,
                      "contact_inbound_rule_append_type": null,
                      "contact_update_interval": null,
                      "password_force_reset": null,
                      "avatar_file_name": null,
                      "avatar_file_size": null,
                      "avatar_file_url": null,
                      "stir_shaken_cert": null,
                      "stir_shaken_key": null,
                      "crm_provider": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "post": {
        "tags": [
          "Tenant"
        ],
        "operationId": "updateSettings",
        "x-category": "tenants",
        "x-subcategory": "organization",
        "x-permissions": [
          "Company.FullAccess"
        ],
        "summary": "Update a tenant",
        "description": "Set tenant object that already exists.\n",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 1024,
                    "description": "The name of the tenant.\n"
                  },
                  "domain": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 280,
                    "description": "The SIP domain of tenant.  \nIt is usually a fully qualified domain name (FQDN).\nIf there is no FQDN, you can also use the IP address of the PBX server as the SIP domain.\nThe SIP domain name is only used for SIP message authentication and does not require analysis.\n"
                  },
                  "website": {
                    "type": "string",
                    "maxLength": 255,
                    "description": "The official website of tenant.\n"
                  },
                  "timezone": {
                    "allOf": [
                      {
                        "type": "string",
                        "description": "The IANA Time Zone names, such as \"Asia/Shanghai\".\n"
                      }
                    ],
                    "description": "Timezone for tenant.\n"
                  },
                  "currency": {
                    "type": "string",
                    "example": "USD",
                    "description": "The Currency code (ISO 4217).\n"
                  },
                  "region": {
                    "type": "string",
                    "description": "A valid country code based on iso3166-1 alpha-3 standard. see: https://www.iso.org/iso-3166-country-codes.html\n"
                  },
                  "enable_video_recording": {
                    "type": "boolean",
                    "default": false,
                    "description": "Allow extension video recording.\n"
                  },
                  "enable_audio_recording": {
                    "type": "boolean",
                    "default": false,
                    "description": "Allow extension audio recording.\n"
                  },
                  "enable_dual_track_recording": {
                    "type": "boolean",
                    "default": false,
                    "description": "Allow dual track recording for calls.\n"
                  },
                  "enable_night_mode": {
                    "type": "boolean",
                    "default": false,
                    "description": "Whether to enable night mode.\n"
                  },
                  "enable_two_factor_authentication": {
                    "type": "boolean",
                    "default": false,
                    "description": "Whether to enable two-factor authentication.\n"
                  },
                  "custom_options": {
                    "type": "string",
                    "description": "Some custom configuration options serialized as json string\n"
                  },
                  "recording_retention": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 1,
                    "default": 180,
                    "description": "The retention period in days of recordings.\n"
                  },
                  "call_report_retention": {
                    "type": "integer",
                    "minimum": 1,
                    "default": 30,
                    "description": "The retention period in days of call report files.\n"
                  },
                  "log_retention": {
                    "type": "integer",
                    "minimum": 1,
                    "default": 180,
                    "description": "The retention period in days of audit logs and event logs.\n"
                  },
                  "temp_file_retention": {
                    "type": "integer",
                    "minimum": 1,
                    "default": 30,
                    "description": "The retention period in days of temporary files.\n"
                  },
                  "extension_im_disk_quota": {
                    "type": "string",
                    "default": "1GB",
                    "description": "The maximum size of disk space that the extension user is allowed to have for IM service.  \nSpecify a positive number and specify the unit at the same time, KB, MB, GB, PB are all allowed.  \nFor example: 100MB, 1000GB. Leave it empty, means unlimited.\n"
                  },
                  "office_hours": {
                    "type": "object",
                    "properties": {
                      "monday": {
                        "type": "object",
                        "properties": {
                          "enabled": {
                            "type": "boolean",
                            "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                          },
                          "ranges": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "from": {
                                  "type": "string",
                                  "example": "09:00",
                                  "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                },
                                "to": {
                                  "type": "string",
                                  "example": "17:00",
                                  "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                }
                              }
                            },
                            "description": "Multiple start and end time periods make up the working time.\n"
                          }
                        }
                      },
                      "tuesday": {
                        "type": "object",
                        "properties": {
                          "enabled": {
                            "type": "boolean",
                            "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                          },
                          "ranges": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "from": {
                                  "type": "string",
                                  "example": "09:00",
                                  "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                },
                                "to": {
                                  "type": "string",
                                  "example": "17:00",
                                  "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                }
                              }
                            },
                            "description": "Multiple start and end time periods make up the working time.\n"
                          }
                        }
                      },
                      "wednesday": {
                        "type": "object",
                        "properties": {
                          "enabled": {
                            "type": "boolean",
                            "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                          },
                          "ranges": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "from": {
                                  "type": "string",
                                  "example": "09:00",
                                  "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                },
                                "to": {
                                  "type": "string",
                                  "example": "17:00",
                                  "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                }
                              }
                            },
                            "description": "Multiple start and end time periods make up the working time.\n"
                          }
                        }
                      },
                      "thursday": {
                        "type": "object",
                        "properties": {
                          "enabled": {
                            "type": "boolean",
                            "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                          },
                          "ranges": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "from": {
                                  "type": "string",
                                  "example": "09:00",
                                  "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                },
                                "to": {
                                  "type": "string",
                                  "example": "17:00",
                                  "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                }
                              }
                            },
                            "description": "Multiple start and end time periods make up the working time.\n"
                          }
                        }
                      },
                      "friday": {
                        "type": "object",
                        "properties": {
                          "enabled": {
                            "type": "boolean",
                            "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                          },
                          "ranges": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "from": {
                                  "type": "string",
                                  "example": "09:00",
                                  "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                },
                                "to": {
                                  "type": "string",
                                  "example": "17:00",
                                  "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                }
                              }
                            },
                            "description": "Multiple start and end time periods make up the working time.\n"
                          }
                        }
                      },
                      "saturday": {
                        "type": "object",
                        "properties": {
                          "enabled": {
                            "type": "boolean",
                            "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                          },
                          "ranges": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "from": {
                                  "type": "string",
                                  "example": "09:00",
                                  "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                },
                                "to": {
                                  "type": "string",
                                  "example": "17:00",
                                  "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                }
                              }
                            },
                            "description": "Multiple start and end time periods make up the working time.\n"
                          }
                        }
                      },
                      "sunday": {
                        "type": "object",
                        "properties": {
                          "enabled": {
                            "type": "boolean",
                            "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                          },
                          "ranges": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "from": {
                                  "type": "string",
                                  "example": "09:00",
                                  "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                },
                                "to": {
                                  "type": "string",
                                  "example": "17:00",
                                  "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                }
                              }
                            },
                            "description": "Multiple start and end time periods make up the working time.\n"
                          }
                        }
                      }
                    }
                  },
                  "outbound_caller_ids": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "provider_id": {
                          "allOf": [
                            {
                              "allOf": [
                                {
                                  "type": "string",
                                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                  "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"
                  },
                  "e164": {
                    "type": "object",
                    "properties": {
                      "enabled": {
                        "type": "boolean",
                        "default": false,
                        "description": "Enable number processing or not.\n"
                      },
                      "international_code": {
                        "type": "string",
                        "description": "The International code.\n"
                      },
                      "country": {
                        "type": "string",
                        "description": "Country code.\n",
                        "example": "Angola(244)"
                      },
                      "area_code": {
                        "type": "string",
                        "description": "Area code.\n"
                      },
                      "national_code": {
                        "type": "string",
                        "description": "National code.\n"
                      },
                      "prefix": {
                        "type": "string",
                        "description": "Add prefix.\n"
                      },
                      "remove_special_chars": {
                        "type": "boolean",
                        "default": false,
                        "description": "Remove special characters in the numbers(the \"(\" and \")\" and spaces).\n"
                      },
                      "remove_duplicate_countries": {
                        "type": "boolean",
                        "default": true,
                        "description": "Remove duplicate countries.\n"
                      },
                      "remove_duplicate_area_codes": {
                        "type": "boolean",
                        "default": true,
                        "description": "Remove duplicate area code.\n"
                      }
                    }
                  },
                  "cdr_event": {
                    "type": "object",
                    "properties": {
                      "enabled": {
                        "type": "boolean",
                        "default": false,
                        "description": "Enabled this event or not.\n"
                      },
                      "auth": {
                        "type": "string",
                        "enum": [
                          "DISABLE",
                          "BASIC",
                          "DIGEST",
                          "BEARER"
                        ],
                        "default": "DISABLE",
                        "description": "The authentication method of event URL:  \nCan be either:  \n- `DISABLE`: Disable authentication.\n- `BASIC`: Use basic authentication.\n- `DIGEST`: Use digest authentication.\n- `BEARER`: Use bearer authentication.\n"
                      },
                      "username": {
                        "type": "string",
                        "minLength": 6,
                        "maxLength": 64,
                        "pattern": "[a-z0-9]{6,64}",
                        "description": "The username for authentication, when auth is `BASIC` or `DIGEST`.\n"
                      },
                      "password": {
                        "type": "string",
                        "minLength": 6,
                        "maxLength": 64,
                        "pattern": "[a-z0-9]{6,64}",
                        "description": "The password for authentication, when auth is `BASIC` or `DIGEST`.\n"
                      },
                      "token": {
                        "type": "string",
                        "description": "The token for authentication, when auth is `BEARER`.\n"
                      },
                      "url": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 128,
                        "pattern": "[a-z0-9]{6,64}",
                        "description": "The event url.\n"
                      }
                    }
                  },
                  "extension_event": {
                    "type": "object",
                    "properties": {
                      "enabled": {
                        "type": "boolean",
                        "default": false,
                        "description": "Enabled this event or not.\n"
                      },
                      "auth": {
                        "type": "string",
                        "enum": [
                          "DISABLE",
                          "BASIC",
                          "DIGEST",
                          "BEARER"
                        ],
                        "default": "DISABLE",
                        "description": "The authentication method of event URL:  \nCan be either:  \n- `DISABLE`: Disable authentication.\n- `BASIC`: Use basic authentication.\n- `DIGEST`: Use digest authentication.\n- `BEARER`: Use bearer authentication.\n"
                      },
                      "username": {
                        "type": "string",
                        "minLength": 6,
                        "maxLength": 64,
                        "pattern": "[a-z0-9]{6,64}",
                        "description": "The username for authentication, when auth is `BASIC` or `DIGEST`.\n"
                      },
                      "password": {
                        "type": "string",
                        "minLength": 6,
                        "maxLength": 64,
                        "pattern": "[a-z0-9]{6,64}",
                        "description": "The password for authentication, when auth is `BASIC` or `DIGEST`.\n"
                      },
                      "token": {
                        "type": "string",
                        "description": "The token for authentication, when auth is `BEARER`.\n"
                      },
                      "url": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 128,
                        "pattern": "[a-z0-9]{6,64}",
                        "description": "The event url.\n"
                      }
                    }
                  },
                  "contact_match_type": {
                    "type": "string",
                    "enum": [
                      "DISABLE",
                      "MATCH_EXACTLY",
                      "MATCH_LENGTH"
                    ],
                    "default": "MATCH_EXACTLY",
                    "description": "The match method of contact:  \nCan be either:  \n- `DISABLE`: Disable match.\n- `MATCH_EXACTLY`: Match exactly.\n- `MATCH_LENGTH`: Match at least specified number of characters.\n"
                  },
                  "contact_match_length": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 0,
                    "description": "The matched length of characters when contact_match_type is `MATCH_LENGTH`.\n"
                  },
                  "contact_append_type": {
                    "type": "string",
                    "enum": [
                      "DISABLE",
                      "APPEND",
                      "PREPEND"
                    ],
                    "default": "APPEND",
                    "description": "Method for adding Group, Queue or DID/DDI Names to Caller ID:  \nCan be either:  \n- `DISABLE`: Do not add.\n- `APPEND`: Append names.\n- `PREPEND`: Prepend names.\n"
                  },
                  "contact_inbound_rule_append_type": {
                    "type": "string",
                    "enum": [
                      "DISABLE",
                      "APPEND",
                      "PREPEND"
                    ],
                    "default": "APPEND",
                    "description": "Method for adding Group, Queue or DID/DDI Names to Caller ID:  \nCan be either:  \n- `DISABLE`: Do not add.\n- `APPEND`: Append names.\n- `PREPEND`: Prepend names.\n"
                  },
                  "contact_update_interval": {
                    "type": "integer",
                    "format": "uint32",
                    "minimum": 1,
                    "maximum": 43200,
                    "default": 720,
                    "description": "The interval for synchronizing contacts from the server, in minutes.\n"
                  },
                  "password_force_reset": {
                    "type": "boolean",
                    "default": false,
                    "description": "Whether to force reset the initial password.\n"
                  },
                  "avatar_file_id": {
                    "allOf": [
                      {
                        "type": "string",
                        "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                        "description": "The unique ID of the resource.\n"
                      }
                    ],
                    "description": "The unique ID of the file.\n"
                  },
                  "stir_shaken_cert": {
                    "type": "string",
                    "description": "Content of this certificate file for STIR/SHAKEN support.\n"
                  },
                  "stir_shaken_key": {
                    "type": "string",
                    "description": "Content of this private certificate file for STIR/SHAKEN support.\n"
                  },
                  "ai_transcript": {
                    "type": "object",
                    "properties": {
                      "enable_record": {
                        "type": "boolean",
                        "default": false,
                        "description": "Enabled auto record ai transcription.\n"
                      },
                      "enable_voicemails": {
                        "type": "boolean",
                        "default": false,
                        "description": "Enable auto voicemails ai transcription.\n"
                      }
                    },
                    "description": "Allow auto extension video ai transcription.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "name": null,
                    "domain": null,
                    "website": null,
                    "timezone": null,
                    "currency": null,
                    "region": null,
                    "enable_video_recording": null,
                    "ai_engine": null,
                    "enable_audio_recording": null,
                    "enable_dual_track_recording": null,
                    "enable_night_mode": null,
                    "enable_two_factor_authentication": null,
                    "custom_options": null,
                    "recording_retention": null,
                    "call_report_retention": null,
                    "log_retention": null,
                    "temp_file_retention": null,
                    "extension_im_disk_quota": null,
                    "office_hours": null,
                    "outbound_caller_ids": null,
                    "e164": null,
                    "cdr_event": null,
                    "extension_event": null,
                    "contact_match_type": null,
                    "contact_match_length": null,
                    "contact_append_type": null,
                    "contact_inbound_rule_append_type": null,
                    "contact_update_interval": null,
                    "password_force_reset": null,
                    "avatar_file_id": null,
                    "stir_shaken_cert": null,
                    "stir_shaken_key": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/tenant/status": {
      "get": {
        "tags": [
          "Tenant"
        ],
        "operationId": "retrieveCurrentTenantStatus",
        "x-category": "tenants",
        "x-subcategory": "organization",
        "x-permissions": [
          "Company.Information"
        ],
        "summary": "Retrieve current tenant status",
        "description": "Get status of current tenant.\n",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "version": {
                      "type": "string",
                      "description": "The version information of PortSIP PBX.\n"
                    },
                    "licensed_users": {
                      "type": "integer",
                      "format": "int32",
                      "description": "The maximum number of authorized users purchased by the tenant from System Admin or Dealer.\n"
                    },
                    "current_users": {
                      "type": "integer",
                      "format": "int32",
                      "description": "The number of current users of the tenant.\n"
                    },
                    "online_users": {
                      "type": "integer",
                      "format": "int32",
                      "description": "The number of current online users of the tenant.\n"
                    },
                    "current_calls": {
                      "type": "integer",
                      "format": "int32",
                      "description": "The current number of calls.\n"
                    },
                    "current_queues": {
                      "type": "integer",
                      "format": "int32",
                      "description": "The current number of call queues.\n"
                    },
                    "current_conference_rooms": {
                      "type": "integer",
                      "format": "int32",
                      "description": "The current number of conference rooms.\n"
                    },
                    "current_ring_groups": {
                      "type": "integer",
                      "format": "int32",
                      "description": "The current number of ring groups.\n"
                    },
                    "current_ivrs": {
                      "type": "integer",
                      "format": "int32",
                      "description": "The current number of virtual receptionists.\n"
                    },
                    "current_trunks": {
                      "type": "integer",
                      "format": "int32",
                      "description": "The current number of trunks.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "version": null,
                      "licensed_users": null,
                      "current_users": null,
                      "online_users": null,
                      "current_calls": null,
                      "current_queues": null,
                      "current_conference_rooms": null,
                      "current_ring_groups": null,
                      "current_ivrs": null,
                      "current_trunks": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/tenant/notification": {
      "get": {
        "tags": [
          "Notification"
        ],
        "operationId": "showNotificationSettings",
        "x-category": "integrations",
        "x-subcategory": "email-notification",
        "x-permissions": [
          "Company.ViewOnly"
        ],
        "summary": "Retrieve notification settings",
        "description": "Retrieve details of notification settings.\n",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "type": {
                      "type": "string",
                      "enum": [
                        "SMTP",
                        "MS365",
                        "GMAIL"
                      ],
                      "description": "The email server type.   \nCan be either:   \n- `SMTP`: Use generic SMTP server.\n- `MS365` Use Microsoft 365 email service.\n- `GMAIL` Use Google Gmail service.\n"
                    },
                    "server": {
                      "type": "string",
                      "description": "SMTP server used for sending mails.\n"
                    },
                    "port": {
                      "type": "integer",
                      "format": "int32",
                      "minimum": 0,
                      "maximum": 65535,
                      "example": 80,
                      "description": "A port number is a 16-bit unsigned integer, thus ranging from 0 to 65535.\nFor TCP, port number 0 is reserved and cannot be used, while for UDP, the source port is optional and a value of zero means no port\n"
                    },
                    "reply_to": {
                      "type": "string",
                      "description": "A Reply-To address is identified by inserting the Reply-To header in your email.  \nIt is the email address that the reply message is sent \nwhen you want the reply to go to an email address that is different than the From: address.\n"
                    },
                    "username": {
                      "type": "string",
                      "maxLength": 128,
                      "description": "Username or email address.\n"
                    },
                    "auth": {
                      "type": "string",
                      "enum": [
                        "DISABLE",
                        "AUTO",
                        "LOGIN",
                        "PLAIN"
                      ],
                      "default": "AUTO",
                      "description": "The authentication protocols.   \nCan be either:   \n- `DISABLE`: Skip authentication mechanism.\n- `AUTO`: Use auto-selected authentication algorithms by server (Currently only supports LOGIN and PLAIN).\n- `LOGIN`: Use LOGIN authentication mechanism.\n- `PLAIN` Use PLAIN authentication mechanism.\n"
                    },
                    "enable_tls_ssl": {
                      "type": "boolean",
                      "default": true,
                      "description": "Whether to enable TLS/SSL.\n"
                    },
                    "enable_starttls_auto": {
                      "type": "boolean",
                      "default": false,
                      "description": "Whether StartTLS is automatically enabled.\n"
                    },
                    "recipients": {
                      "type": "string",
                      "description": "Comma-separated list of email address that should receive notifications.   \nAllow up to 15 email addresses.\n"
                    },
                    "enable_system_email_server": {
                      "type": "boolean",
                      "readOnly": true,
                      "description": "Has ability to use system email server settings to send notifications.\n"
                    },
                    "notify_user_registration": {
                      "type": "boolean",
                      "default": false,
                      "description": "Notify via email when user registered.\n"
                    },
                    "notify_queue_sla_breached": {
                      "type": "boolean",
                      "default": false,
                      "description": "Notify queue manager via email when SLA time has been breached.\n"
                    },
                    "notify_queue_callback": {
                      "type": "boolean",
                      "default": false,
                      "description": "Notify queue manager via email when callback has been made.\n"
                    },
                    "notify_queue_callback_failed": {
                      "type": "boolean",
                      "default": false,
                      "description": "Notify queue manager via email when callback failed.\n"
                    },
                    "notify_queue_call_lost": {
                      "type": "boolean",
                      "default": false,
                      "description": "Notify queue Manager via email when call lost.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "type": null,
                      "server": null,
                      "port": null,
                      "reply_to": null,
                      "username": null,
                      "auth": null,
                      "enable_tls_ssl": null,
                      "enable_starttls_auto": null,
                      "recipients": null,
                      "enable_system_email_server": null,
                      "notify_user_registration": null,
                      "notify_queue_sla_breached": null,
                      "notify_queue_callback": null,
                      "notify_queue_callback_failed": null,
                      "notify_queue_call_lost": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "post": {
        "tags": [
          "Notification"
        ],
        "operationId": "updateNotificationSettings",
        "x-category": "integrations",
        "x-subcategory": "email-notification",
        "x-permissions": [
          "Company.FullAccess"
        ],
        "summary": "Update notification settings",
        "description": "Update notification settings.\n",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "enum": [
                      "SMTP",
                      "MS365",
                      "GMAIL"
                    ],
                    "description": "The email server type.   \nCan be either:   \n- `SMTP`: Use generic SMTP server.\n- `MS365` Use Microsoft 365 email service.\n- `GMAIL` Use Google Gmail service.\n"
                  },
                  "server": {
                    "type": "string",
                    "description": "SMTP server used for sending mails.\n"
                  },
                  "port": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 0,
                    "maximum": 65535,
                    "example": 80,
                    "description": "A port number is a 16-bit unsigned integer, thus ranging from 0 to 65535.\nFor TCP, port number 0 is reserved and cannot be used, while for UDP, the source port is optional and a value of zero means no port\n"
                  },
                  "reply_to": {
                    "type": "string",
                    "description": "A Reply-To address is identified by inserting the Reply-To header in your email.  \nIt is the email address that the reply message is sent \nwhen you want the reply to go to an email address that is different than the From: address.\n"
                  },
                  "username": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "Username or email address.\n"
                  },
                  "password": {
                    "type": "string",
                    "description": "Password for email account.\n"
                  },
                  "auth": {
                    "type": "string",
                    "enum": [
                      "DISABLE",
                      "AUTO",
                      "LOGIN",
                      "PLAIN"
                    ],
                    "default": "AUTO",
                    "description": "The authentication protocols.   \nCan be either:   \n- `DISABLE`: Skip authentication mechanism.\n- `AUTO`: Use auto-selected authentication algorithms by server (Currently only supports LOGIN and PLAIN).\n- `LOGIN`: Use LOGIN authentication mechanism.\n- `PLAIN` Use PLAIN authentication mechanism.\n"
                  },
                  "enable_tls_ssl": {
                    "type": "boolean",
                    "default": true,
                    "description": "Whether to enable TLS/SSL.\n"
                  },
                  "enable_starttls_auto": {
                    "type": "boolean",
                    "default": false,
                    "description": "Whether StartTLS is automatically enabled.\n"
                  },
                  "recipients": {
                    "type": "string",
                    "description": "Comma-separated list of email address that should receive notifications.   \nAllow up to 15 email addresses.\n"
                  },
                  "notify_user_registration": {
                    "type": "boolean",
                    "default": false,
                    "description": "Notify via email when user registered.\n"
                  },
                  "notify_queue_sla_breached": {
                    "type": "boolean",
                    "default": false,
                    "description": "Notify queue manager via email when SLA time has been breached.\n"
                  },
                  "notify_queue_callback": {
                    "type": "boolean",
                    "default": false,
                    "description": "Notify queue manager via email when callback has been made.\n"
                  },
                  "notify_queue_callback_failed": {
                    "type": "boolean",
                    "default": false,
                    "description": "Notify queue manager via email when callback failed.\n"
                  },
                  "notify_queue_call_lost": {
                    "type": "boolean",
                    "default": false,
                    "description": "Notify queue Manager via email when call lost.\n"
                  }
                },
                "required": [
                  "type",
                  "username"
                ]
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "type": null,
                    "server": null,
                    "port": null,
                    "reply_to": null,
                    "username": null,
                    "password": null,
                    "auth": null,
                    "enable_tls_ssl": null,
                    "enable_starttls_auto": null,
                    "recipients": null,
                    "notify_user_registration": null,
                    "notify_queue_sla_breached": null,
                    "notify_queue_callback": null,
                    "notify_queue_callback_failed": null,
                    "notify_queue_call_lost": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/tenant/notification/test_email": {
      "post": {
        "tags": [
          "Notification"
        ],
        "operationId": "testEmail",
        "x-category": "integrations",
        "x-subcategory": "email-notification",
        "x-permissions": [
          "Company.FullAccess"
        ],
        "summary": "Test email",
        "description": "Check email server configurations by sending testing email.\n",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "recipient": {
                    "type": "string",
                    "description": "The recipient's e-mail address.\n"
                  },
                  "subject": {
                    "type": "string",
                    "description": "Mail subject.\n"
                  },
                  "content": {
                    "type": "string",
                    "description": "Mail content.\n"
                  }
                },
                "required": [
                  "recipient",
                  "subject",
                  "content"
                ]
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "recipient": null,
                    "subject": null,
                    "content": null
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/tenant/password_policy": {
      "get": {
        "tags": [
          "Tenant"
        ],
        "operationId": "retrieveTenantPasswordPolicy",
        "x-category": "tenants",
        "x-subcategory": "organization",
        "x-permissions": [
          "Company.ViewOnly"
        ],
        "summary": "Retrieve tenant password policy",
        "description": "Retrieve details of tenant password policy.\n",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "min_length": {
                      "type": "integer",
                      "format": "int32",
                      "minimum": 6,
                      "maximum": 32,
                      "default": 6,
                      "description": "The password must contains at least `min_length` characters.  \nMust be less than or equal the value of `max_length`.\n"
                    },
                    "max_length": {
                      "type": "integer",
                      "format": "int32",
                      "minimum": 6,
                      "maximum": 32,
                      "default": 32,
                      "description": "The password must contains at most `max_length` characters.  \nMust be greater than or equal the value of `min_length`.\n"
                    },
                    "contains_letters": {
                      "type": "boolean",
                      "default": true,
                      "description": "The password must contains at least one letter (latin characters).\n"
                    },
                    "contains_numbers": {
                      "type": "boolean",
                      "default": true,
                      "description": "The password must contains at least one number (0-9).\n"
                    },
                    "contains_special_letters": {
                      "type": "boolean",
                      "default": true,
                      "description": "The password must contains at least one upper case letter or special character (e.g. ~,!,@,#,$,%,^,&,*,(,),_,+,=).\n"
                    },
                    "disable_sequential_characters": {
                      "type": "boolean",
                      "default": true,
                      "description": "The password must not contains sequential_characters.\n"
                    },
                    "disable_repeating_characters": {
                      "type": "boolean",
                      "default": true,
                      "description": "The password must not contains repeating_characters.\n"
                    },
                    "disable_account_information": {
                      "type": "boolean",
                      "default": true,
                      "description": "The password must not similar to the account information.\n"
                    },
                    "pin_min_length": {
                      "type": "integer",
                      "format": "int32",
                      "minimum": 4,
                      "maximum": 10,
                      "default": 4,
                      "description": "The password must contains at least `min_length` characters.  \nMust be less than or equal the value of `pin_max_length`.\n"
                    },
                    "pin_max_length": {
                      "type": "integer",
                      "format": "int32",
                      "minimum": 4,
                      "maximum": 10,
                      "default": 6,
                      "description": "The password must contains at most `max_length` characters.  \nMust be greater than or equal the value of `pin_min_length`.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "min_length": null,
                      "max_length": null,
                      "contains_letters": null,
                      "contains_numbers": null,
                      "contains_special_letters": null,
                      "disable_sequential_characters": null,
                      "disable_repeating_characters": null,
                      "disable_account_information": null,
                      "pin_min_length": null,
                      "pin_max_length": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "post": {
        "tags": [
          "Tenant"
        ],
        "operationId": "updateTenantPasswordPolicy",
        "x-category": "tenants",
        "x-subcategory": "organization",
        "x-permissions": [
          "Company.FullAccess"
        ],
        "summary": "Update tenant password policy",
        "description": "Update tenant password policy.\n",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "min_length": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 6,
                    "maximum": 32,
                    "default": 6,
                    "description": "The password must contains at least `min_length` characters.  \nMust be less than or equal the value of `max_length`.\n"
                  },
                  "max_length": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 6,
                    "maximum": 32,
                    "default": 32,
                    "description": "The password must contains at most `max_length` characters.  \nMust be greater than or equal the value of `min_length`.\n"
                  },
                  "contains_letters": {
                    "type": "boolean",
                    "default": true,
                    "description": "The password must contains at least one letter (latin characters).\n"
                  },
                  "contains_numbers": {
                    "type": "boolean",
                    "default": true,
                    "description": "The password must contains at least one number (0-9).\n"
                  },
                  "contains_special_letters": {
                    "type": "boolean",
                    "default": true,
                    "description": "The password must contains at least one upper case letter or special character (e.g. ~,!,@,#,$,%,^,&,*,(,),_,+,=).\n"
                  },
                  "disable_sequential_characters": {
                    "type": "boolean",
                    "default": true,
                    "description": "The password must not contains sequential_characters.\n"
                  },
                  "disable_repeating_characters": {
                    "type": "boolean",
                    "default": true,
                    "description": "The password must not contains repeating_characters.\n"
                  },
                  "disable_account_information": {
                    "type": "boolean",
                    "default": true,
                    "description": "The password must not similar to the account information.\n"
                  },
                  "pin_min_length": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 4,
                    "maximum": 10,
                    "default": 4,
                    "description": "The password must contains at least `min_length` characters.  \nMust be less than or equal the value of `pin_max_length`.\n"
                  },
                  "pin_max_length": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 4,
                    "maximum": 10,
                    "default": 6,
                    "description": "The password must contains at most `max_length` characters.  \nMust be greater than or equal the value of `pin_min_length`.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "min_length": null,
                    "max_length": null,
                    "contains_letters": null,
                    "contains_numbers": null,
                    "contains_special_letters": null,
                    "disable_sequential_characters": null,
                    "disable_repeating_characters": null,
                    "disable_account_information": null,
                    "pin_min_length": null,
                    "pin_max_length": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/tenant/billing": {
      "get": {
        "tags": [
          "Billing"
        ],
        "operationId": "getTenantBillingConfigurations",
        "x-category": "tenants",
        "x-subcategory": "organization",
        "x-permissions": [
          "Company.ViewOnly"
        ],
        "summary": "Retrieve tenant billing configurations.",
        "description": "Retrieve details of tenant billing configurations.\n",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "enabled": {
                      "type": "boolean",
                      "default": false,
                      "description": "Enable call billing or not.\n"
                    },
                    "account": {
                      "type": "string",
                      "enum": [
                        "TENANT",
                        "USER"
                      ],
                      "default": "TENANT",
                      "description": "The billing account:  \nCan be either:  \n- `TENANT`: Use company account for billing.\n- `USER`: Use private user account for billing.\n"
                    },
                    "type": {
                      "type": "string",
                      "enum": [
                        "OFFLINE",
                        "ONLINE"
                      ],
                      "default": "OFFLINE",
                      "description": "The billing type:  \nCan be either:  \n- `OFFLINE`: Use offline charging for billing.\n- `ONLINE`: Use online charging for billing.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "enabled": null,
                      "account": null,
                      "type": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "post": {
        "tags": [
          "Billing"
        ],
        "operationId": "setTenantBillingConfigurations",
        "x-category": "tenants",
        "x-subcategory": "organization",
        "x-permissions": [
          "Company.FullAccess"
        ],
        "summary": "Update tenant billing configurations.",
        "description": "Update tenant billing configurations.\n",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "enabled": {
                    "type": "boolean",
                    "default": false,
                    "description": "Enable call billing or not.\n"
                  },
                  "account": {
                    "type": "string",
                    "enum": [
                      "TENANT",
                      "USER"
                    ],
                    "default": "TENANT",
                    "description": "The billing account:  \nCan be either:  \n- `TENANT`: Use company account for billing.\n- `USER`: Use private user account for billing.\n"
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "OFFLINE",
                      "ONLINE"
                    ],
                    "default": "OFFLINE",
                    "description": "The billing type:  \nCan be either:  \n- `OFFLINE`: Use offline charging for billing.\n- `ONLINE`: Use online charging for billing.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "enabled": null,
                    "account": null,
                    "type": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/tenant/balance": {
      "get": {
        "tags": [
          "Tenant"
        ],
        "operationId": "getTenantBalance",
        "x-category": "tenants",
        "x-subcategory": "organization",
        "x-permissions": [
          "Company.ViewOnly"
        ],
        "summary": "Retrieve tenant balance",
        "description": "Retrieve tenant's balance.\n",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "balance": {
                      "type": "number",
                      "format": "double",
                      "description": "User balance. Precision is five digits.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "balance": 100
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "post": {
        "tags": [
          "Tenant"
        ],
        "operationId": "rechargeTenant",
        "x-category": "tenants",
        "x-subcategory": "organization",
        "x-permissions": [
          "Company.FullAccess"
        ],
        "summary": "Recharge the tenant",
        "description": "Recharge into the tenant's account.\n",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "balance": {
                    "type": "number",
                    "format": "double",
                    "description": "User balance. Precision is five digits.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "balance": 100
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/tenant/custom_headers": {
      "get": {
        "tags": [
          "Tenant"
        ],
        "operationId": "retrieveTenantCustomHeaders",
        "x-category": "tenants",
        "x-subcategory": "organization",
        "x-permissions": [
          "Company.ViewOnly"
        ],
        "summary": "Retrieve tenant custom headers",
        "description": "Retrieve details of tenant custom headers.\n",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "add": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "name": {
                            "type": "string",
                            "minLength": 2,
                            "maxLength": 32,
                            "description": "The name of custom SIP header.\n"
                          },
                          "value": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 64,
                            "description": "The value of custom SIP header.\n"
                          },
                          "scope": {
                            "type": "string",
                            "enum": [
                              "ALL",
                              "TRUNK",
                              "USER"
                            ],
                            "default": "TRUNK",
                            "description": "The applied calls of custom SIP headers:   \nCan be either:  \n- `ALL`: Applies to all calls.\n- `TRUNK`: Applies to trunk calls.\n- `USER`: Applies to user calls.\n"
                          }
                        }
                      }
                    },
                    "relay": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "name": {
                            "type": "string",
                            "minLength": 2,
                            "maxLength": 32,
                            "description": "The name of custom SIP header.\n"
                          },
                          "scope": {
                            "type": "string",
                            "enum": [
                              "ALL",
                              "TRUNK",
                              "USER"
                            ],
                            "default": "TRUNK",
                            "description": "The applied calls of custom SIP headers:   \nCan be either:  \n- `ALL`: Applies to all calls.\n- `TRUNK`: Applies to trunk calls.\n- `USER`: Applies to user calls.\n"
                          }
                        }
                      }
                    }
                  },
                  "description": "The added custom SIP headers and forwarded SIP headers in tenant scope.\n"
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "add": [
                        {
                          "name": null,
                          "value": null,
                          "scope": null
                        }
                      ],
                      "relay": [
                        {
                          "name": null,
                          "scope": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "post": {
        "tags": [
          "Tenant"
        ],
        "operationId": "updateTenantCustomHeaders",
        "x-category": "tenants",
        "x-subcategory": "organization",
        "x-permissions": [
          "Company.FullAccess"
        ],
        "summary": "Update tenant custom headers",
        "description": "Update tenant custom headers.\n",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "add": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "name": {
                          "type": "string",
                          "minLength": 2,
                          "maxLength": 32,
                          "description": "The name of custom SIP header.\n"
                        },
                        "value": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 64,
                          "description": "The value of custom SIP header.\n"
                        },
                        "scope": {
                          "type": "string",
                          "enum": [
                            "ALL",
                            "TRUNK",
                            "USER"
                          ],
                          "default": "TRUNK",
                          "description": "The applied calls of custom SIP headers:   \nCan be either:  \n- `ALL`: Applies to all calls.\n- `TRUNK`: Applies to trunk calls.\n- `USER`: Applies to user calls.\n"
                        }
                      }
                    }
                  },
                  "relay": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "name": {
                          "type": "string",
                          "minLength": 2,
                          "maxLength": 32,
                          "description": "The name of custom SIP header.\n"
                        },
                        "scope": {
                          "type": "string",
                          "enum": [
                            "ALL",
                            "TRUNK",
                            "USER"
                          ],
                          "default": "TRUNK",
                          "description": "The applied calls of custom SIP headers:   \nCan be either:  \n- `ALL`: Applies to all calls.\n- `TRUNK`: Applies to trunk calls.\n- `USER`: Applies to user calls.\n"
                        }
                      }
                    }
                  }
                },
                "description": "The added custom SIP headers and forwarded SIP headers in tenant scope.\n"
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "add": [
                      {
                        "name": null,
                        "value": null,
                        "scope": null
                      }
                    ],
                    "relay": [
                      {
                        "name": null,
                        "scope": null
                      }
                    ]
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/conference_servers": {
      "post": {
        "tags": [
          "Conference"
        ],
        "operationId": "createConferenceServer",
        "x-category": "system-management",
        "x-subcategory": "conference-servers",
        "x-permissions": [
          "SystemSettings.FullAccess"
        ],
        "summary": "Create a conference server",
        "description": "Create a conference server.  \nPlease note that: at least one of ipv4 or ipv6 must be specified.\n",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64,
                    "description": "The name of conference server.\n"
                  },
                  "enabled": {
                    "type": "boolean",
                    "default": true,
                    "description": "The activate status or deactivated status.\n"
                  },
                  "ipv4": {
                    "type": "string",
                    "description": "Host IPV4 address.\n"
                  },
                  "ipv6": {
                    "type": "string",
                    "description": "Host IPV6 address.\n"
                  },
                  "max_rooms": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 0,
                    "description": "The maximum number of rooms for conference server.\n"
                  },
                  "max_participants": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 0,
                    "description": "The maximum number of participants for conference server.\n"
                  }
                },
                "required": [
                  "name",
                  "max_rooms",
                  "max_participants"
                ]
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "name": null,
                    "enabled": null,
                    "ipv4": null,
                    "ipv6": null,
                    "max_rooms": null,
                    "max_participants": null
                  }
                }
              }
            }
          },
          "description": "Conference room object"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of conference server.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "The ID of created resource",
                    "value": {
                      "id": "xxxxxxxx"
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "get": {
        "tags": [
          "Conference"
        ],
        "operationId": "listConferenceServers",
        "x-category": "system-management",
        "x-subcategory": "conference-servers",
        "x-permissions": [
          "SystemSettings.ViewOnly"
        ],
        "summary": "List conference servers",
        "description": "List conference servers\n",
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Use the `filter` query parameter to retrieve just a subset of a collection.\n"
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "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",
            "required": false,
            "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",
            "required": false,
            "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",
            "required": false,
            "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"
          },
          {
            "name": "count",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            },
            "description": "Use the $count=true query option to include a count of entities that match the filter criteria.\n"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "count": {
                      "type": "integer",
                      "format": "int64",
                      "minimum": 0,
                      "example": 100,
                      "description": "Total number of resource.\n"
                    },
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "description": "The unique ID of conference server.\n"
                          },
                          "name": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 64,
                            "description": "The name of conference server.\n"
                          },
                          "enabled": {
                            "type": "boolean",
                            "default": true,
                            "description": "The activate status or deactivated status.\n"
                          },
                          "type": {
                            "type": "string",
                            "enum": [
                              "INTERNAL",
                              "EXTERNAL"
                            ],
                            "readOnly": true,
                            "description": "Every PortSIP PBX has a built-in conference server marked as `INTERNAL`;   \nNewly added conference servers will be marked as \"EXTERNAL\".\n"
                          },
                          "ipv4": {
                            "type": "string",
                            "description": "Host IPV4 address.\n"
                          },
                          "ipv6": {
                            "type": "string",
                            "description": "Host IPV6 address.\n"
                          },
                          "max_rooms": {
                            "type": "integer",
                            "format": "int32",
                            "minimum": 0,
                            "description": "The maximum number of rooms for conference server.\n"
                          },
                          "max_participants": {
                            "type": "integer",
                            "format": "int32",
                            "minimum": 0,
                            "description": "The maximum number of participants for conference server.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": null,
                          "name": null,
                          "enabled": null,
                          "type": null,
                          "ipv4": null,
                          "ipv6": null,
                          "max_rooms": null,
                          "max_participants": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/conference_servers/{id}": {
      "get": {
        "tags": [
          "Conference"
        ],
        "operationId": "showConferenceServer",
        "x-category": "system-management",
        "x-subcategory": "conference-servers",
        "x-permissions": [
          "SystemSettings.ViewOnly"
        ],
        "summary": "Retrieve a conference server",
        "description": "Retrieve a conference server.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of conference server.\n"
            },
            "description": "The unique ID of the conference server."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of conference server.\n"
                    },
                    "name": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64,
                      "description": "The name of conference server.\n"
                    },
                    "enabled": {
                      "type": "boolean",
                      "default": true,
                      "description": "The activate status or deactivated status.\n"
                    },
                    "type": {
                      "type": "string",
                      "enum": [
                        "INTERNAL",
                        "EXTERNAL"
                      ],
                      "readOnly": true,
                      "description": "Every PortSIP PBX has a built-in conference server marked as `INTERNAL`;   \nNewly added conference servers will be marked as \"EXTERNAL\".\n"
                    },
                    "ipv4": {
                      "type": "string",
                      "description": "Host IPV4 address.\n"
                    },
                    "ipv6": {
                      "type": "string",
                      "description": "Host IPV6 address.\n"
                    },
                    "max_rooms": {
                      "type": "integer",
                      "format": "int32",
                      "minimum": 0,
                      "description": "The maximum number of rooms for conference server.\n"
                    },
                    "max_participants": {
                      "type": "integer",
                      "format": "int32",
                      "minimum": 0,
                      "description": "The maximum number of participants for conference server.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "id": null,
                      "name": null,
                      "enabled": null,
                      "type": null,
                      "ipv4": null,
                      "ipv6": null,
                      "max_rooms": null,
                      "max_participants": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "post": {
        "tags": [
          "Conference"
        ],
        "operationId": "updateConferenceServer",
        "x-category": "system-management",
        "x-subcategory": "conference-servers",
        "x-permissions": [
          "SystemSettings.FullAccess"
        ],
        "summary": "Update a conference server",
        "description": "Update a conference server\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of conference server.\n"
            },
            "description": "The unique ID of the conference server."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "enabled": {
                    "type": "boolean",
                    "default": true,
                    "description": "The activate status or deactivated status.\n"
                  },
                  "max_rooms": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 0,
                    "description": "The maximum number of rooms for conference server.\n"
                  },
                  "max_participants": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 0,
                    "description": "The maximum number of participants for conference server.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "enabled": null,
                    "max_rooms": null,
                    "max_participants": null
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/conference_servers/{id}/status": {
      "get": {
        "tags": [
          "Conference"
        ],
        "operationId": "getConferenceServerStatus",
        "x-category": "system-management",
        "x-subcategory": "conference-servers",
        "x-permissions": [
          "SystemSettings.ViewOnly"
        ],
        "summary": "Query conference server status",
        "description": "Retrieve a conference server's status.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of conference server.\n"
            },
            "description": "The unique ID of the conference server."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "readOnly": true,
                  "properties": {
                    "rooms_count": {
                      "type": "integer",
                      "description": "The  number of rooms for conference server.\n"
                    },
                    "participants_count": {
                      "type": "integer",
                      "description": "The  number of participants for conference server.\n"
                    },
                    "cpu_usage": {
                      "type": "integer",
                      "description": "CPU usage.\n"
                    },
                    "memory_usage": {
                      "type": "integer",
                      "description": "Memory usage.\n"
                    },
                    "status": {
                      "type": "string",
                      "enum": [
                        "ONLINE",
                        "OFFLINE"
                      ],
                      "description": "Conference room's status:\n- `ONLINE`: room is online.\n- `OFFLINE`: room is offline.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "rooms_count": null,
                      "participants_count": null,
                      "cpu_usage": null,
                      "memory_usage": null,
                      "status": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/conference_servers/{id}/destroy": {
      "post": {
        "tags": [
          "Conference"
        ],
        "operationId": "deleteConferenceServer",
        "x-category": "system-management",
        "x-subcategory": "conference-servers",
        "x-permissions": [
          "SystemSettings.FullAccess"
        ],
        "summary": "Delete a conference server",
        "description": "Delete a conference server\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of conference server.\n"
            },
            "description": "The unique ID of the conference server."
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Invalid server id supplied"
          },
          "404": {
            "description": "User not found"
          }
        }
      }
    },
    "/media_servers": {
      "post": {
        "tags": [
          "Media Server"
        ],
        "operationId": "createMediaServer",
        "x-category": "system-management",
        "x-subcategory": "media-servers",
        "x-permissions": [
          "SystemSettings.FullAccess"
        ],
        "summary": "Create a media server",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64,
                    "description": "The name of media server.\n"
                  },
                  "enabled": {
                    "type": "boolean",
                    "default": true,
                    "description": "The activate status or deactivated status.\n"
                  },
                  "private_ipv4": {
                    "type": "string",
                    "description": "Host IPV4 address.\n"
                  },
                  "private_ipv6": {
                    "type": "string",
                    "description": "Host IPV6 address.\n"
                  },
                  "public_ipv4": {
                    "type": "string",
                    "description": "Host IPV4 address.\n"
                  },
                  "public_ipv6": {
                    "type": "string",
                    "description": "Host IPV6 address.\n"
                  },
                  "max_concurrency": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 1,
                    "default": 2000,
                    "description": "Max concurrent sessions.\n"
                  },
                  "custom_options": {
                    "type": "string",
                    "description": "Some custom configuration options serialized as json string\n"
                  }
                },
                "required": [
                  "name"
                ]
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "name": null,
                    "enabled": null,
                    "private_ipv4": null,
                    "private_ipv6": null,
                    "public_ipv4": null,
                    "public_ipv6": null,
                    "max_concurrency": null,
                    "custom_options": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Created media server",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of media server.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "The ID of created resource",
                    "value": {
                      "id": "xxxxxxxx"
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "get": {
        "tags": [
          "Media Server"
        ],
        "operationId": "listMediaServers",
        "x-category": "system-management",
        "x-subcategory": "media-servers",
        "x-permissions": [
          "SystemSettings.ViewOnly"
        ],
        "summary": "List media servers",
        "description": "Retrieve a collection of media servers\n",
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Use the `filter` query parameter to retrieve just a subset of a collection.\n"
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "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",
            "required": false,
            "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",
            "required": false,
            "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",
            "required": false,
            "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,
                      "example": 100,
                      "description": "Total number of resource.\n"
                    },
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "description": "The unique ID of media server.\n"
                          },
                          "name": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 64,
                            "description": "The name of media server.\n"
                          },
                          "type": {
                            "type": "string",
                            "enum": [
                              "INTERNAL",
                              "EXTERNAL"
                            ],
                            "readOnly": true,
                            "description": "Every PortSIP PBX has a built-in media server marked as `INTERNAL`;   \nNewly added media servers will be marked as \"EXTERNAL\".\n"
                          },
                          "enabled": {
                            "type": "boolean",
                            "default": true,
                            "description": "The activate status or deactivated status.\n"
                          },
                          "private_ipv4": {
                            "type": "string",
                            "description": "Host IPV4 address.\n"
                          },
                          "private_ipv6": {
                            "type": "string",
                            "description": "Host IPV6 address.\n"
                          },
                          "public_ipv4": {
                            "type": "string",
                            "description": "Host IPV4 address.\n"
                          },
                          "public_ipv6": {
                            "type": "string",
                            "description": "Host IPV6 address.\n"
                          },
                          "max_concurrency": {
                            "type": "integer",
                            "format": "int32",
                            "minimum": 1,
                            "default": 2000,
                            "description": "Max concurrent sessions.\n"
                          },
                          "custom_options": {
                            "type": "string",
                            "description": "Some custom configuration options serialized as json string\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": null,
                          "name": null,
                          "type": null,
                          "enabled": null,
                          "private_ipv4": null,
                          "private_ipv6": null,
                          "public_ipv4": null,
                          "public_ipv6": null,
                          "max_concurrency": null,
                          "custom_options": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/media_servers/{id}": {
      "get": {
        "tags": [
          "Media Server"
        ],
        "operationId": "getMediaServer",
        "x-category": "system-management",
        "x-subcategory": "media-servers",
        "x-permissions": [
          "SystemSettings.ViewOnly"
        ],
        "summary": "Retrieve a media server",
        "description": "Retrieve a media server.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of media server.\n"
            },
            "description": "The unique ID of the media server."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of media server.\n"
                    },
                    "name": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64,
                      "description": "The name of media server.\n"
                    },
                    "type": {
                      "type": "string",
                      "enum": [
                        "INTERNAL",
                        "EXTERNAL"
                      ],
                      "readOnly": true,
                      "description": "Every PortSIP PBX has a built-in media server marked as `INTERNAL`;   \nNewly added media servers will be marked as \"EXTERNAL\".\n"
                    },
                    "enabled": {
                      "type": "boolean",
                      "default": true,
                      "description": "The activate status or deactivated status.\n"
                    },
                    "private_ipv4": {
                      "type": "string",
                      "description": "Host IPV4 address.\n"
                    },
                    "private_ipv6": {
                      "type": "string",
                      "description": "Host IPV6 address.\n"
                    },
                    "public_ipv4": {
                      "type": "string",
                      "description": "Host IPV4 address.\n"
                    },
                    "public_ipv6": {
                      "type": "string",
                      "description": "Host IPV6 address.\n"
                    },
                    "max_concurrency": {
                      "type": "integer",
                      "format": "int32",
                      "minimum": 1,
                      "default": 2000,
                      "description": "Max concurrent sessions.\n"
                    },
                    "custom_options": {
                      "type": "string",
                      "description": "Some custom configuration options serialized as json string\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "id": null,
                      "name": null,
                      "type": null,
                      "enabled": null,
                      "private_ipv4": null,
                      "private_ipv6": null,
                      "public_ipv4": null,
                      "public_ipv6": null,
                      "max_concurrency": null,
                      "custom_options": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "post": {
        "tags": [
          "Media Server"
        ],
        "operationId": "updateMediaServer",
        "x-category": "system-management",
        "x-subcategory": "media-servers",
        "x-permissions": [
          "SystemSettings.FullAccess"
        ],
        "summary": "Update a media server",
        "description": "Update a media server\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of media server.\n"
            },
            "description": "The unique ID of the media server."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "enabled": {
                    "type": "boolean",
                    "default": true,
                    "description": "The activate status or deactivated status.\n"
                  },
                  "max_concurrency": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 1,
                    "default": 2000,
                    "description": "Max concurrent sessions.\n"
                  },
                  "custom_options": {
                    "type": "string",
                    "description": "Some custom configuration options serialized as json string\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "enabled": null,
                    "max_concurrency": null,
                    "custom_options": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/media_servers/{id}/status": {
      "get": {
        "tags": [
          "Media Server"
        ],
        "operationId": "getMediaServerStatus",
        "x-category": "system-management",
        "x-subcategory": "media-servers",
        "x-permissions": [
          "SystemSettings.ViewOnly"
        ],
        "summary": "Query media server Status",
        "description": "Query media server's status by it's ID",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of media server.\n"
            },
            "description": "The unique ID of the media server."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "current_concurrency": {
                      "type": "integer",
                      "format": "int32",
                      "description": "Current concurrent sessions.\n"
                    },
                    "cpu_usage": {
                      "type": "integer",
                      "description": "CPU usage.\n"
                    },
                    "memory_usage": {
                      "type": "integer",
                      "description": "Memory usage.\n"
                    },
                    "status": {
                      "type": "string",
                      "enum": [
                        "OFFLINE",
                        "ONLINE"
                      ],
                      "readOnly": true,
                      "description": "Server status includes:\n- `OFFLINE`:\n- `ONLINE`:\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "current_concurrency": null,
                      "cpu_usage": null,
                      "memory_usage": null,
                      "status": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/media_servers/{id}/destroy": {
      "post": {
        "tags": [
          "Media Server"
        ],
        "operationId": "deleteMediaServer",
        "x-category": "system-management",
        "x-subcategory": "media-servers",
        "x-permissions": [
          "SystemSettings.FullAccess"
        ],
        "summary": "Delete a media server",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of media server.\n"
            },
            "description": "The unique ID of the media server."
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Invalid server ID supplied."
          }
        }
      }
    },
    "/license": {
      "get": {
        "tags": [
          "Administration"
        ],
        "operationId": "showLicense",
        "x-category": "system-management",
        "x-subcategory": "system-management",
        "x-permissions": [
          "SystemSettings.FullAccess"
        ],
        "summary": "Retrieve license information",
        "description": "Retrieve license information\n",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "api_version": {
                      "type": "string",
                      "description": "API version of PortSIP PBX.\n"
                    },
                    "product_name": {
                      "type": "string",
                      "description": "Product name of PortSIP PBX.\n",
                      "example": "PortSIP PBX"
                    },
                    "max_sim_calls": {
                      "type": "integer",
                      "format": "int32",
                      "description": "Max Simultaneous Calls allowed for this version.\n"
                    },
                    "license_key": {
                      "type": "string",
                      "description": "License key of PortSIP PBX.\n"
                    },
                    "company_name": {
                      "type": "string",
                      "description": "Company name of license user.\n"
                    },
                    "contact_email": {
                      "type": "string",
                      "description": "Contact email of license user.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "api_version": null,
                      "product_name": null,
                      "max_sim_calls": null,
                      "license_key": null,
                      "company_name": null,
                      "contact_email": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "post": {
        "tags": [
          "Administration"
        ],
        "operationId": "updateLicense",
        "x-category": "system-management",
        "x-subcategory": "system-management",
        "x-permissions": [
          "SystemSettings.FullAccess"
        ],
        "summary": "Update license",
        "description": "Update license\n",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "license_key": {
                    "type": "string",
                    "description": "License key of PortSIP PBX.\n"
                  }
                },
                "required": [
                  "license_key"
                ]
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "license_key": "xxxxxxxxxxxxxxxxxxxxx"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/key": {
      "post": {
        "tags": [
          "Administration"
        ],
        "operationId": "updateKey",
        "x-category": "system-management",
        "x-subcategory": "security",
        "x-permissions": [
          "SystemSettings.FullAccess"
        ],
        "summary": "Update certificate key",
        "description": "Update certificate key.\n",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "crt": {
                    "type": "string",
                    "description": "Content of this certificate file for TLS or WSS transport protocol.\nThe certificate file MUST be PEM-encoded with X.509.\n"
                  },
                  "key": {
                    "type": "string",
                    "description": "Content of this private certificate file for TLS or WSS transport protocol.\n"
                  }
                },
                "required": [
                  "crt",
                  "key"
                ]
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "crt": null,
                    "key": null
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "get": {
        "tags": [
          "Administration"
        ],
        "operationId": "showKey",
        "x-category": "system-management",
        "x-subcategory": "security",
        "x-permissions": [
          "SystemSettings.FullAccess"
        ],
        "summary": "Show certificate key",
        "description": "Retrieve content of certificate key.\n",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "crt": {
                      "type": "string",
                      "description": "Content of this certificate file for TLS or WSS transport protocol.\nThe certificate file MUST be PEM-encoded with X.509.\n"
                    },
                    "key": {
                      "type": "string",
                      "description": "Content of this private certificate file for TLS or WSS transport protocol.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "crt": null,
                      "key": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/brand": {
      "post": {
        "tags": [
          "Administration"
        ],
        "operationId": "updateBrandInformation",
        "x-category": "system-management",
        "x-subcategory": "system-management",
        "x-permissions": [
          "SystemSettings.FullAccess"
        ],
        "summary": "Update brand information",
        "description": "Update brand information.\n",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "theme": {
                    "type": "string",
                    "enum": [
                      "BLUE",
                      "DARK",
                      "GREEN",
                      "LIGHT_BLUE",
                      "PURPLE"
                    ],
                    "description": "The color scheme:   \nCan be either:   \n- `BLUE`: Blue\n- `DARK`: Dark\n- `GREEN`: Green\n- `LIGHT_BLUE`: Light Blue\n- `PURPLE`: Purple\n"
                  },
                  "logo": {
                    "allOf": [
                      {
                        "allOf": [
                          {
                            "type": "string",
                            "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                            "description": "The unique ID of the resource.\n"
                          }
                        ],
                        "description": "The unique ID of the file.\n"
                      }
                    ],
                    "description": "The unique ID of file from your file library.  \nThis file will be used as the logo image.\n"
                  },
                  "favicon": {
                    "allOf": [
                      {
                        "allOf": [
                          {
                            "type": "string",
                            "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                            "description": "The unique ID of the resource.\n"
                          }
                        ],
                        "description": "The unique ID of the file.\n"
                      }
                    ],
                    "description": "The unique ID of file from your file library.  \nThis file will be used as the favicon image.\n"
                  },
                  "title": {
                    "type": "string",
                    "description": "The title text.  \nThis text will be displayed as the title.\n"
                  },
                  "copyright": {
                    "type": "string",
                    "description": "The copyright text.  \nThis text will be displayed as the copyright.\n"
                  },
                  "product": {
                    "type": "string",
                    "description": "The product name text.  \nThis text will be displayed as the product name.\n"
                  },
                  "website": {
                    "type": "string",
                    "description": "The website text.  \nThis text will be displayed as the product website.\n"
                  },
                  "forum": {
                    "type": "string",
                    "description": "The forum url.  \nThis text will be displayed as the forum url.\n"
                  },
                  "bottom_text": {
                    "type": "string",
                    "description": "The bottom text, maximum size is 256 characters.\nThis text will be displayed at the bottom of the login page. It can be either plain text or HTML code.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "theme": "BLUE",
                    "logo": null,
                    "favicon": null,
                    "title": null,
                    "copyright": null,
                    "product": null,
                    "website": null,
                    "forum": null,
                    "bottom_text": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/dealer": {
      "get": {
        "tags": [
          "Administration"
        ],
        "operationId": "retrieveCurrentDealer",
        "x-category": "system-management",
        "x-subcategory": "dealers",
        "x-permissions": [],
        "summary": "Retrieve current dealer",
        "description": "Get details of current dealer.\n",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of dealer.\n"
                    },
                    "enabled": {
                      "type": "boolean",
                      "default": true,
                      "description": "Enable this dealer or not.\n"
                    },
                    "level": {
                      "type": "string",
                      "enum": [
                        "DISTRIBUTOR",
                        "SUB_DISTRIBUTOR",
                        "RESELLER"
                      ],
                      "description": "Dealer level includes:\n- `DISTRIBUTOR`: the first level of dealers.\n- `SUB_DISTRIBUTOR`: the second level of dealers.\n- `RESELLER`: the third level of dealers.\n"
                    },
                    "name": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64,
                      "description": "The user's account name.   \nOnly letters, numbers, and the following special characters can be added: underscore, dash, single quote, and period (_, -, ', and .).   \nUsername cannot start or end with period (.).   \n`admin`, `system`, `administrator`, and `root` are reserved names for system admin only with case ignored.\n"
                    },
                    "email": {
                      "allOf": [
                        {
                          "type": "string",
                          "maxLength": 128,
                          "description": "The email address.\n",
                          "example": "example@example.com"
                        }
                      ],
                      "description": "The email address of user.\n"
                    },
                    "display_name": {
                      "type": "string",
                      "maxLength": 1024,
                      "description": "The display name of user.\n"
                    },
                    "website": {
                      "type": "string",
                      "description": "The website of user.\n"
                    },
                    "phone": {
                      "type": "string",
                      "maxLength": 32,
                      "description": "The mobile phone number of user.\n"
                    },
                    "address": {
                      "type": "string",
                      "maxLength": 128,
                      "description": "The address.\n"
                    },
                    "description": {
                      "type": "string",
                      "description": "The description of dealer.\n"
                    },
                    "max_tenants": {
                      "type": "integer",
                      "format": "int32",
                      "minimum": 0,
                      "default": 100,
                      "description": "The maximum number of tenants that the dealer is allowed to create.\n"
                    },
                    "max_extensions": {
                      "type": "integer",
                      "format": "int32",
                      "minimum": 0,
                      "default": 50000,
                      "description": "The maximum number of extensions that the dealer is allowed to create.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "id": null,
                      "enabled": null,
                      "level": null,
                      "name": null,
                      "email": null,
                      "display_name": null,
                      "website": null,
                      "phone": null,
                      "address": null,
                      "description": null,
                      "max_tenants": null,
                      "max_extensions": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "post": {
        "tags": [
          "Administration"
        ],
        "operationId": "updateCurrentDealer",
        "x-category": "system-management",
        "x-subcategory": "dealers",
        "x-permissions": [],
        "summary": "Update current dealer",
        "description": "Modify the settings of the current dealer.\n",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "email": {
                    "allOf": [
                      {
                        "type": "string",
                        "maxLength": 128,
                        "description": "The email address.\n",
                        "example": "example@example.com"
                      }
                    ],
                    "description": "The email address of user.\n"
                  },
                  "display_name": {
                    "type": "string",
                    "maxLength": 1024,
                    "description": "The display name of user.\n"
                  },
                  "website": {
                    "type": "string",
                    "description": "The website of user.\n"
                  },
                  "phone": {
                    "type": "string",
                    "maxLength": 32,
                    "description": "The mobile phone number of user.\n"
                  },
                  "address": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The address.\n"
                  },
                  "description": {
                    "type": "string",
                    "description": "The description of dealer.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "email": null,
                    "display_name": null,
                    "website": null,
                    "phone": null,
                    "address": null,
                    "description": null
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/dealer/status": {
      "get": {
        "tags": [
          "Administration"
        ],
        "operationId": "retrieveCurrentDealerStatus",
        "x-category": "system-management",
        "x-subcategory": "dealers",
        "x-permissions": [],
        "summary": "Retrieve current dealer status",
        "description": "Get status of current dealer.\n",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "version": {
                      "type": "string",
                      "description": "The version information of PortSIP PBX.\n"
                    },
                    "max_dealers": {
                      "type": "integer",
                      "format": "int32",
                      "description": "The maximum number of sub-dealers.\n"
                    },
                    "current_dealers": {
                      "type": "integer",
                      "format": "int32",
                      "description": "The number of current sub-dealers.\n"
                    },
                    "max_users": {
                      "type": "integer",
                      "format": "int32",
                      "description": "The maximum number of authorized users purchased by the dealer from distributor.\n"
                    },
                    "current_users": {
                      "type": "integer",
                      "format": "int32",
                      "description": "The number of current users of the dealer.\n"
                    },
                    "max_tenants": {
                      "type": "integer",
                      "format": "int32",
                      "description": "The maximum number of tenants the current dealer is allowed to create.\n"
                    },
                    "current_tenants": {
                      "type": "integer",
                      "format": "int32",
                      "description": "The number of current tenants of the dealer.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "version": null,
                      "max_dealers": null,
                      "current_dealers": null,
                      "max_users": null,
                      "current_users": null,
                      "max_tenants": null,
                      "current_tenants": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/dealer/username": {
      "post": {
        "tags": [
          "Administration"
        ],
        "operationId": "changeCurrentDealerUsername",
        "x-category": "system-management",
        "x-subcategory": "dealers",
        "x-permissions": [],
        "summary": "Change current dealer username",
        "description": "Change current dealer username.\n",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64,
                    "description": "The user's account name.   \nOnly letters, numbers, and the following special characters can be added: underscore, dash, single quote, and period (_, -, ', and .).   \nUsername cannot start or end with period (.).   \n`admin`, `system`, `administrator`, and `root` are reserved names for system admin only with case ignored.\n"
                  }
                },
                "required": [
                  "name"
                ]
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "name": null
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/dealer/password": {
      "post": {
        "tags": [
          "Administration"
        ],
        "operationId": "resetCurrentDealerPassword",
        "x-category": "system-management",
        "x-subcategory": "dealers",
        "x-permissions": [],
        "summary": "Reset current dealer password",
        "description": "Reset current dealer password.\n",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "old_password": {
                    "type": "string",
                    "description": "The password of dealer.\n"
                  },
                  "new_password": {
                    "type": "string",
                    "description": "The password of dealer.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "old_password": null,
                    "new_password": null
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/roles": {
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "createRole",
        "x-category": "auth",
        "x-subcategory": "roles",
        "x-permissions": [
          "Role.FullAccess"
        ],
        "summary": "Create a role",
        "description": "Create a new role.\n",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64,
                    "example": "User",
                    "description": "Roles include built-in roles and custom roles.   \nBuilt-in roles roles cannot be modified.   \nAlso, the names of built-in roles are reserved words,   \ncustom roles are not allowed to use these names to avoid unnecessary confusion.   \nBuilt-in roles include:   \n- `SystemAdmin`: the system administrator has almost all permissions.\n- `OperationsAdmin`: the operations administrator.\n- `SiteAdmin`: the site administrator.\n- `Dealer`: the sales manager has all sold tenant resource permissions.\n- `Admin`: the admin has all tenant-wide resource permissions.\n- `StandardUser`: the user all user-wide resource permissions.\n- `StandardInternationalUser`: the user all user-wide resource permissions with international call permissions.\n- `QueueManager`: The call queue manager.\n"
                  },
                  "capabilities": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "description": "The permission string."
                    }
                  },
                  "description": {
                    "type": "string",
                    "maxLength": 1024,
                    "description": "Role's description.\n"
                  }
                },
                "required": [
                  "name",
                  "capabilities"
                ]
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "name": null,
                    "capabilities": null,
                    "description": null
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of role.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "The ID of created resource",
                    "value": {
                      "id": "xxxxxxxx"
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "get": {
        "tags": [
          "User"
        ],
        "operationId": "listRoles",
        "x-category": "auth",
        "x-subcategory": "roles",
        "x-permissions": [
          "Role.ViewOnly",
          "Company.ViewOnly"
        ],
        "summary": "List roles",
        "description": "List a collection of roles.",
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Use the `filter` query parameter to retrieve just a subset of a collection.\n"
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "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",
            "required": false,
            "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",
            "required": false,
            "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",
            "required": false,
            "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,
                      "example": 100,
                      "description": "Total number of resource.\n"
                    },
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "description": "The unique ID of role.\n"
                          },
                          "name": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 64,
                            "example": "User",
                            "description": "Roles include built-in roles and custom roles.   \nBuilt-in roles roles cannot be modified.   \nAlso, the names of built-in roles are reserved words,   \ncustom roles are not allowed to use these names to avoid unnecessary confusion.   \nBuilt-in roles include:   \n- `SystemAdmin`: the system administrator has almost all permissions.\n- `OperationsAdmin`: the operations administrator.\n- `SiteAdmin`: the site administrator.\n- `Dealer`: the sales manager has all sold tenant resource permissions.\n- `Admin`: the admin has all tenant-wide resource permissions.\n- `StandardUser`: the user all user-wide resource permissions.\n- `StandardInternationalUser`: the user all user-wide resource permissions with international call permissions.\n- `QueueManager`: The call queue manager.\n"
                          },
                          "protected": {
                            "type": "boolean",
                            "readOnly": true,
                            "default": false,
                            "description": "Whether role is protected.\n"
                          },
                          "capabilities": {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "description": "The permission string."
                            }
                          },
                          "description": {
                            "type": "string",
                            "maxLength": 1024,
                            "description": "Role's description.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": null,
                          "name": null,
                          "protected": false,
                          "capabilities": null,
                          "description": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/roles/{id}": {
      "get": {
        "tags": [
          "User"
        ],
        "operationId": "getRole",
        "x-category": "auth",
        "x-subcategory": "roles",
        "x-permissions": [
          "Role.ViewOnly",
          "Company.ViewOnly"
        ],
        "summary": "Get a role",
        "description": "Retrieves the settings of a role.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of role.\n"
            },
            "description": "The unique ID of the role."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of role.\n"
                    },
                    "name": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64,
                      "example": "User",
                      "description": "Roles include built-in roles and custom roles.   \nBuilt-in roles roles cannot be modified.   \nAlso, the names of built-in roles are reserved words,   \ncustom roles are not allowed to use these names to avoid unnecessary confusion.   \nBuilt-in roles include:   \n- `SystemAdmin`: the system administrator has almost all permissions.\n- `OperationsAdmin`: the operations administrator.\n- `SiteAdmin`: the site administrator.\n- `Dealer`: the sales manager has all sold tenant resource permissions.\n- `Admin`: the admin has all tenant-wide resource permissions.\n- `StandardUser`: the user all user-wide resource permissions.\n- `StandardInternationalUser`: the user all user-wide resource permissions with international call permissions.\n- `QueueManager`: The call queue manager.\n"
                    },
                    "protected": {
                      "type": "boolean",
                      "readOnly": true,
                      "default": false,
                      "description": "Whether role is protected.\n"
                    },
                    "capabilities": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "description": "The permission string."
                      }
                    },
                    "description": {
                      "type": "string",
                      "maxLength": 1024,
                      "description": "Role's description.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "id": null,
                      "name": null,
                      "capabilities": null,
                      "protected": false,
                      "description": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "updateRole",
        "x-category": "auth",
        "x-subcategory": "roles",
        "x-permissions": [
          "Role.FullAccess"
        ],
        "summary": "Update a role",
        "description": "Modify the settings of a role.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of role.\n"
            },
            "description": "The unique ID of the role."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64,
                    "example": "User",
                    "description": "Roles include built-in roles and custom roles.   \nBuilt-in roles roles cannot be modified.   \nAlso, the names of built-in roles are reserved words,   \ncustom roles are not allowed to use these names to avoid unnecessary confusion.   \nBuilt-in roles include:   \n- `SystemAdmin`: the system administrator has almost all permissions.\n- `OperationsAdmin`: the operations administrator.\n- `SiteAdmin`: the site administrator.\n- `Dealer`: the sales manager has all sold tenant resource permissions.\n- `Admin`: the admin has all tenant-wide resource permissions.\n- `StandardUser`: the user all user-wide resource permissions.\n- `StandardInternationalUser`: the user all user-wide resource permissions with international call permissions.\n- `QueueManager`: The call queue manager.\n"
                  },
                  "capabilities": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "description": "The permission string."
                    }
                  },
                  "description": {
                    "type": "string",
                    "maxLength": 1024,
                    "description": "Role's description.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "name": null,
                    "capabilities": null,
                    "description": null
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/roles/{id}/destroy": {
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "deleteRole",
        "x-category": "auth",
        "x-subcategory": "roles",
        "x-permissions": [
          "Role.FullAccess"
        ],
        "summary": "Delete a role",
        "description": "Delete a certain role.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of role.\n"
            },
            "description": "The unique ID of the role."
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/user": {
      "get": {
        "tags": [
          "User"
        ],
        "operationId": "getDetailsOfCurrentUser",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [],
        "summary": "Retrieve current user",
        "description": "Retrieve details of current user.\n",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of user.\n"
                    },
                    "name": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64,
                      "description": "The user's account name.   \nOnly letters, numbers, and the following special characters can be added: underscore, dash, single quote, and period (_, -, ', and .).   \nUsername cannot start or end with period (.).   \n`admin`, `system`, `administrator`, and `root` are reserved names for system admin only with case ignored.\n"
                    },
                    "email": {
                      "allOf": [
                        {
                          "type": "string",
                          "maxLength": 128,
                          "description": "The email address.\n",
                          "example": "example@example.com"
                        }
                      ],
                      "description": "The email address of user.\n"
                    },
                    "display_name": {
                      "type": "string",
                      "maxLength": 1024,
                      "description": "The display name of user.\n"
                    },
                    "role": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64,
                      "example": "User",
                      "description": "Roles include built-in roles and custom roles.   \nBuilt-in roles roles cannot be modified.   \nAlso, the names of built-in roles are reserved words,   \ncustom roles are not allowed to use these names to avoid unnecessary confusion.   \nBuilt-in roles include:   \n- `SystemAdmin`: the system administrator has almost all permissions.\n- `OperationsAdmin`: the operations administrator.\n- `SiteAdmin`: the site administrator.\n- `Dealer`: the sales manager has all sold tenant resource permissions.\n- `Admin`: the admin has all tenant-wide resource permissions.\n- `StandardUser`: the user all user-wide resource permissions.\n- `StandardInternationalUser`: the user all user-wide resource permissions with international call permissions.\n- `QueueManager`: The call queue manager.\n"
                    },
                    "role_id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of role.\n"
                    },
                    "role_name": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64,
                      "example": "User",
                      "description": "Roles include built-in roles and custom roles.   \nBuilt-in roles roles cannot be modified.   \nAlso, the names of built-in roles are reserved words,   \ncustom roles are not allowed to use these names to avoid unnecessary confusion.   \nBuilt-in roles include:   \n- `SystemAdmin`: the system administrator has almost all permissions.\n- `OperationsAdmin`: the operations administrator.\n- `SiteAdmin`: the site administrator.\n- `Dealer`: the sales manager has all sold tenant resource permissions.\n- `Admin`: the admin has all tenant-wide resource permissions.\n- `StandardUser`: the user all user-wide resource permissions.\n- `StandardInternationalUser`: the user all user-wide resource permissions with international call permissions.\n- `QueueManager`: The call queue manager.\n"
                    },
                    "enabled": {
                      "type": "boolean",
                      "default": true,
                      "description": "Allows temporarily disabling the extension.\n"
                    },
                    "mobile_phone": {
                      "type": "string",
                      "maxLength": 32,
                      "description": "The mobile phone number of user.\n"
                    },
                    "work_phone": {
                      "type": "string",
                      "maxLength": 32,
                      "description": "The office phone number of user.\n"
                    },
                    "home_phone": {
                      "type": "string",
                      "maxLength": 32,
                      "description": "The home phone number of user.\n"
                    },
                    "address": {
                      "type": "string",
                      "maxLength": 128,
                      "description": "The address.\n"
                    },
                    "department": {
                      "type": "string",
                      "maxLength": 128,
                      "description": "The department of user.\n"
                    },
                    "extension_number": {
                      "type": "string",
                      "minLength": 3,
                      "maxLength": 64,
                      "pattern": "[0-9]{3,64}",
                      "description": "The extension number.\n"
                    },
                    "enable_audio_recording": {
                      "type": "boolean",
                      "default": false,
                      "description": "Records all calls and saves audio recordings on server.\n"
                    },
                    "enable_video_recording": {
                      "type": "boolean",
                      "default": false,
                      "description": "Records all calls and saves video recordings on server.\n"
                    },
                    "enable_dnd": {
                      "type": "boolean",
                      "description": "Enable `Do Not Disturb` or not.\n"
                    },
                    "enable_acb": {
                      "type": "boolean",
                      "description": "Enable `Automatic Callback` or not.\n"
                    },
                    "enable_hot_desking": {
                      "type": "boolean",
                      "default": false,
                      "description": "Enable hot desking feature or not.\n"
                    },
                    "anonymous_outbound_calls": {
                      "type": "boolean",
                      "default": false,
                      "description": "Always make outbound anonymous calls or not.\n"
                    },
                    "delivery_outbound_cid": {
                      "type": "boolean",
                      "default": true,
                      "description": "Always delivery outbound caller ID or not.\n"
                    },
                    "sms": {
                      "type": "string",
                      "enum": [
                        "DISABLE",
                        "ALLOW",
                        "ALLOW_WITH_SENDER_ID"
                      ],
                      "default": "DISABLE",
                      "description": "The preferred configuration for SMS/MMS.   \nNote: Only users with `UserManagement::Users` privilege can change this property.   \n  - `DISABLE`: Disable user SMS/MMS feature.\n  - `ALLOW`: Enable user SMS/MMS feature but with outbound caller ID.\n  - `ALLOW_WITH_SENDER_ID`: Enable user SMS/MMS but with trunk sender ID.\n"
                    },
                    "outbound_caller_ids": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "provider_id": {
                            "allOf": [
                              {
                                "allOf": [
                                  {
                                    "type": "string",
                                    "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                    "description": "The unique ID of the resource.\n"
                                  }
                                ],
                                "description": "The unique ID of user.\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"
                          },
                          "preferred": {
                            "type": "boolean",
                            "description": "Whether this outbound caller id preferred.\n"
                          },
                          "description": {
                            "type": "string",
                            "maxLength": 1024,
                            "description": "The descriptive information about this outbound caller id.\n"
                          }
                        }
                      },
                      "description": "A collection of outbound caller IDs.\n"
                    },
                    "custom_options": {
                      "type": "string",
                      "description": "Some custom configuration options serialized as json string\n"
                    },
                    "office_hours": {
                      "allOf": [
                        {
                          "type": "object",
                          "properties": {
                            "mode": {
                              "type": "string",
                              "enum": [
                                "GLOBAL",
                                "CUSTOM"
                              ],
                              "example": "CUSTOM",
                              "description": "The office hours mode can be either:  \n- `GLOBAL`: Use global office hours.\n- `CUSTOM`: Use specific office hours.\n"
                            }
                          }
                        },
                        {
                          "type": "object",
                          "properties": {
                            "monday": {
                              "type": "object",
                              "properties": {
                                "enabled": {
                                  "type": "boolean",
                                  "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                },
                                "ranges": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "from": {
                                        "type": "string",
                                        "example": "09:00",
                                        "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                      },
                                      "to": {
                                        "type": "string",
                                        "example": "17:00",
                                        "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                      }
                                    }
                                  },
                                  "description": "Multiple start and end time periods make up the working time.\n"
                                }
                              }
                            },
                            "tuesday": {
                              "type": "object",
                              "properties": {
                                "enabled": {
                                  "type": "boolean",
                                  "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                },
                                "ranges": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "from": {
                                        "type": "string",
                                        "example": "09:00",
                                        "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                      },
                                      "to": {
                                        "type": "string",
                                        "example": "17:00",
                                        "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                      }
                                    }
                                  },
                                  "description": "Multiple start and end time periods make up the working time.\n"
                                }
                              }
                            },
                            "wednesday": {
                              "type": "object",
                              "properties": {
                                "enabled": {
                                  "type": "boolean",
                                  "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                },
                                "ranges": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "from": {
                                        "type": "string",
                                        "example": "09:00",
                                        "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                      },
                                      "to": {
                                        "type": "string",
                                        "example": "17:00",
                                        "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                      }
                                    }
                                  },
                                  "description": "Multiple start and end time periods make up the working time.\n"
                                }
                              }
                            },
                            "thursday": {
                              "type": "object",
                              "properties": {
                                "enabled": {
                                  "type": "boolean",
                                  "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                },
                                "ranges": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "from": {
                                        "type": "string",
                                        "example": "09:00",
                                        "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                      },
                                      "to": {
                                        "type": "string",
                                        "example": "17:00",
                                        "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                      }
                                    }
                                  },
                                  "description": "Multiple start and end time periods make up the working time.\n"
                                }
                              }
                            },
                            "friday": {
                              "type": "object",
                              "properties": {
                                "enabled": {
                                  "type": "boolean",
                                  "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                },
                                "ranges": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "from": {
                                        "type": "string",
                                        "example": "09:00",
                                        "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                      },
                                      "to": {
                                        "type": "string",
                                        "example": "17:00",
                                        "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                      }
                                    }
                                  },
                                  "description": "Multiple start and end time periods make up the working time.\n"
                                }
                              }
                            },
                            "saturday": {
                              "type": "object",
                              "properties": {
                                "enabled": {
                                  "type": "boolean",
                                  "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                },
                                "ranges": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "from": {
                                        "type": "string",
                                        "example": "09:00",
                                        "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                      },
                                      "to": {
                                        "type": "string",
                                        "example": "17:00",
                                        "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                      }
                                    }
                                  },
                                  "description": "Multiple start and end time periods make up the working time.\n"
                                }
                              }
                            },
                            "sunday": {
                              "type": "object",
                              "properties": {
                                "enabled": {
                                  "type": "boolean",
                                  "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                },
                                "ranges": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "from": {
                                        "type": "string",
                                        "example": "09:00",
                                        "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                      },
                                      "to": {
                                        "type": "string",
                                        "example": "17:00",
                                        "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                      }
                                    }
                                  },
                                  "description": "Multiple start and end time periods make up the working time.\n"
                                }
                              }
                            }
                          }
                        }
                      ]
                    },
                    "available_office_hours_forward_rule": {
                      "type": "object",
                      "properties": {
                        "action": {
                          "type": "string",
                          "enum": [
                            "FORWARD_TO_NUMBER",
                            "FORWARD_TO_VOICEMAIL",
                            "RING_ANYWAY",
                            "HANGUP"
                          ],
                          "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`: Forward to the specified number\n- `FORWARD_TO_VOICEMAIL`: Forward to the specified voicemail.\n- `RING_ANYWAY`: Ring anyway.\n- `HANGUP`: Finish call\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"
                        }
                      }
                    },
                    "available_non_office_hours_forward_rule": {
                      "type": "object",
                      "properties": {
                        "action": {
                          "type": "string",
                          "enum": [
                            "FORWARD_TO_NUMBER",
                            "FORWARD_TO_VOICEMAIL",
                            "RING_ANYWAY",
                            "HANGUP"
                          ],
                          "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`: Forward to the specified number\n- `FORWARD_TO_VOICEMAIL`: Forward to the specified voicemail.\n- `RING_ANYWAY`: Ring anyway.\n- `HANGUP`: Finish call\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"
                        }
                      }
                    },
                    "available_no_answer_forward_rule": {
                      "type": "object",
                      "properties": {
                        "action": {
                          "type": "string",
                          "enum": [
                            "FORWARD_TO_NUMBER",
                            "FORWARD_TO_VOICEMAIL",
                            "HANGUP"
                          ],
                          "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`: Forward to the specified number\n- `FORWARD_TO_VOICEMAIL`: Forward to the specified voicemail.\n- `HANGUP`: Finish call\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"
                        },
                        "timeout": {
                          "type": "integer",
                          "format": "int32",
                          "minimum": 0,
                          "default": 60,
                          "description": "Duration that the call will remain ringing when no one answered, in seconds.\n"
                        }
                      }
                    },
                    "busy_office_hours_forward_rule": {
                      "type": "object",
                      "properties": {
                        "action": {
                          "type": "string",
                          "enum": [
                            "FORWARD_TO_NUMBER",
                            "FORWARD_TO_VOICEMAIL",
                            "RING_ANYWAY",
                            "HANGUP"
                          ],
                          "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`: Forward to the specified number\n- `FORWARD_TO_VOICEMAIL`: Forward to the specified voicemail.\n- `RING_ANYWAY`: Ring anyway.\n- `HANGUP`: Finish call\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"
                        }
                      }
                    },
                    "busy_non_office_hours_forward_rule": {
                      "type": "object",
                      "properties": {
                        "action": {
                          "type": "string",
                          "enum": [
                            "FORWARD_TO_NUMBER",
                            "FORWARD_TO_VOICEMAIL",
                            "RING_ANYWAY",
                            "HANGUP"
                          ],
                          "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`: Forward to the specified number\n- `FORWARD_TO_VOICEMAIL`: Forward to the specified voicemail.\n- `RING_ANYWAY`: Ring anyway.\n- `HANGUP`: Finish call\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"
                        }
                      }
                    },
                    "busy_no_answer_forward_rule": {
                      "type": "object",
                      "properties": {
                        "action": {
                          "type": "string",
                          "enum": [
                            "FORWARD_TO_NUMBER",
                            "FORWARD_TO_VOICEMAIL",
                            "HANGUP"
                          ],
                          "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`: Forward to the specified number\n- `FORWARD_TO_VOICEMAIL`: Forward to the specified voicemail.\n- `HANGUP`: Finish call\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"
                        },
                        "timeout": {
                          "type": "integer",
                          "format": "int32",
                          "minimum": 0,
                          "default": 60,
                          "description": "Duration that the call will remain ringing when no one answered, in seconds.\n"
                        }
                      }
                    },
                    "dnd_office_hours_forward_rule": {
                      "type": "object",
                      "properties": {
                        "action": {
                          "type": "string",
                          "enum": [
                            "FORWARD_TO_NUMBER",
                            "FORWARD_TO_VOICEMAIL",
                            "HANGUP"
                          ],
                          "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`: Forward to the specified number\n- `FORWARD_TO_VOICEMAIL`: Forward to the specified voicemail.\n- `HANGUP`: Finish call\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"
                        }
                      }
                    },
                    "dnd_non_office_hours_forward_rule": {
                      "type": "object",
                      "properties": {
                        "action": {
                          "type": "string",
                          "enum": [
                            "FORWARD_TO_NUMBER",
                            "FORWARD_TO_VOICEMAIL",
                            "HANGUP"
                          ],
                          "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`: Forward to the specified number\n- `FORWARD_TO_VOICEMAIL`: Forward to the specified voicemail.\n- `HANGUP`: Finish call\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"
                        }
                      }
                    },
                    "away_office_hours_forward_rule": {
                      "type": "object",
                      "properties": {
                        "action": {
                          "type": "string",
                          "enum": [
                            "FORWARD_TO_NUMBER",
                            "FORWARD_TO_VOICEMAIL",
                            "HANGUP"
                          ],
                          "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`: Forward to the specified number\n- `FORWARD_TO_VOICEMAIL`: Forward to the specified voicemail.\n- `HANGUP`: Finish call\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"
                        }
                      }
                    },
                    "away_non_office_hours_forward_rule": {
                      "type": "object",
                      "properties": {
                        "action": {
                          "type": "string",
                          "enum": [
                            "FORWARD_TO_NUMBER",
                            "FORWARD_TO_VOICEMAIL",
                            "HANGUP"
                          ],
                          "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`: Forward to the specified number\n- `FORWARD_TO_VOICEMAIL`: Forward to the specified voicemail.\n- `HANGUP`: Finish call\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"
                        }
                      }
                    },
                    "lunch_office_hours_forward_rule": {
                      "type": "object",
                      "properties": {
                        "action": {
                          "type": "string",
                          "enum": [
                            "FORWARD_TO_NUMBER",
                            "FORWARD_TO_VOICEMAIL",
                            "HANGUP"
                          ],
                          "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`: Forward to the specified number\n- `FORWARD_TO_VOICEMAIL`: Forward to the specified voicemail.\n- `HANGUP`: Finish call\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"
                        }
                      }
                    },
                    "lunch_non_office_hours_forward_rule": {
                      "type": "object",
                      "properties": {
                        "action": {
                          "type": "string",
                          "enum": [
                            "FORWARD_TO_NUMBER",
                            "FORWARD_TO_VOICEMAIL",
                            "HANGUP"
                          ],
                          "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`: Forward to the specified number\n- `FORWARD_TO_VOICEMAIL`: Forward to the specified voicemail.\n- `HANGUP`: Finish call\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"
                        }
                      }
                    },
                    "trip_office_hours_forward_rule": {
                      "type": "object",
                      "properties": {
                        "action": {
                          "type": "string",
                          "enum": [
                            "FORWARD_TO_NUMBER",
                            "FORWARD_TO_VOICEMAIL",
                            "HANGUP"
                          ],
                          "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`: Forward to the specified number\n- `FORWARD_TO_VOICEMAIL`: Forward to the specified voicemail.\n- `HANGUP`: Finish call\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"
                        }
                      }
                    },
                    "trip_non_office_hours_forward_rule": {
                      "type": "object",
                      "properties": {
                        "action": {
                          "type": "string",
                          "enum": [
                            "FORWARD_TO_NUMBER",
                            "FORWARD_TO_VOICEMAIL",
                            "HANGUP"
                          ],
                          "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`: Forward to the specified number\n- `FORWARD_TO_VOICEMAIL`: Forward to the specified voicemail.\n- `HANGUP`: Finish call\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"
                        }
                      }
                    },
                    "offline_office_hours_forward_rule": {
                      "type": "object",
                      "properties": {
                        "action": {
                          "type": "string",
                          "enum": [
                            "FORWARD_TO_NUMBER",
                            "FORWARD_TO_VOICEMAIL",
                            "HANGUP"
                          ],
                          "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`: Forward to the specified number\n- `FORWARD_TO_VOICEMAIL`: Forward to the specified voicemail.\n- `HANGUP`: Finish call\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"
                        }
                      }
                    },
                    "offline_non_office_hours_forward_rule": {
                      "type": "object",
                      "properties": {
                        "action": {
                          "type": "string",
                          "enum": [
                            "FORWARD_TO_NUMBER",
                            "FORWARD_TO_VOICEMAIL",
                            "HANGUP"
                          ],
                          "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`: Forward to the specified number\n- `FORWARD_TO_VOICEMAIL`: Forward to the specified voicemail.\n- `HANGUP`: Finish call\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"
                        }
                      }
                    },
                    "custom_forward_rules": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "action": {
                            "type": "string",
                            "enum": [
                              "FORWARD_TO_NUMBER",
                              "FORWARD_TO_VOICEMAIL",
                              "RING_ANYWAY",
                              "HANGUP"
                            ],
                            "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`: Forward to the specified number\n- `FORWARD_TO_VOICEMAIL`: Forward to the specified voicemail.\n- `RING_ANYWAY`: Ring anyway.\n- `HANGUP`: Finish call\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"
                          },
                          "caller_id": {
                            "type": "string",
                            "description": "Specify the caller ID mask.\n"
                          },
                          "type": {
                            "type": "string",
                            "enum": [
                              "ALL_HOURS",
                              "SPECIFIC_HOURS",
                              "OUTSIDE_SPECIFIC_HOURS"
                            ],
                            "description": "Specify hours mode for forward rule:\n- `ALL_HOURS`:\n- `SPECIFIC_HOURS`:\n- `OUTSIDE_SPECIFIC_HOURS`:\n"
                          },
                          "hours": {
                            "allOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "monday": {
                                    "type": "object",
                                    "properties": {
                                      "enabled": {
                                        "type": "boolean",
                                        "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                      },
                                      "ranges": {
                                        "type": "array",
                                        "items": {
                                          "type": "object",
                                          "properties": {
                                            "from": {
                                              "type": "string",
                                              "example": "09:00",
                                              "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                            },
                                            "to": {
                                              "type": "string",
                                              "example": "17:00",
                                              "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                            }
                                          }
                                        },
                                        "description": "Multiple start and end time periods make up the working time.\n"
                                      }
                                    }
                                  },
                                  "tuesday": {
                                    "type": "object",
                                    "properties": {
                                      "enabled": {
                                        "type": "boolean",
                                        "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                      },
                                      "ranges": {
                                        "type": "array",
                                        "items": {
                                          "type": "object",
                                          "properties": {
                                            "from": {
                                              "type": "string",
                                              "example": "09:00",
                                              "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                            },
                                            "to": {
                                              "type": "string",
                                              "example": "17:00",
                                              "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                            }
                                          }
                                        },
                                        "description": "Multiple start and end time periods make up the working time.\n"
                                      }
                                    }
                                  },
                                  "wednesday": {
                                    "type": "object",
                                    "properties": {
                                      "enabled": {
                                        "type": "boolean",
                                        "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                      },
                                      "ranges": {
                                        "type": "array",
                                        "items": {
                                          "type": "object",
                                          "properties": {
                                            "from": {
                                              "type": "string",
                                              "example": "09:00",
                                              "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                            },
                                            "to": {
                                              "type": "string",
                                              "example": "17:00",
                                              "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                            }
                                          }
                                        },
                                        "description": "Multiple start and end time periods make up the working time.\n"
                                      }
                                    }
                                  },
                                  "thursday": {
                                    "type": "object",
                                    "properties": {
                                      "enabled": {
                                        "type": "boolean",
                                        "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                      },
                                      "ranges": {
                                        "type": "array",
                                        "items": {
                                          "type": "object",
                                          "properties": {
                                            "from": {
                                              "type": "string",
                                              "example": "09:00",
                                              "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                            },
                                            "to": {
                                              "type": "string",
                                              "example": "17:00",
                                              "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                            }
                                          }
                                        },
                                        "description": "Multiple start and end time periods make up the working time.\n"
                                      }
                                    }
                                  },
                                  "friday": {
                                    "type": "object",
                                    "properties": {
                                      "enabled": {
                                        "type": "boolean",
                                        "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                      },
                                      "ranges": {
                                        "type": "array",
                                        "items": {
                                          "type": "object",
                                          "properties": {
                                            "from": {
                                              "type": "string",
                                              "example": "09:00",
                                              "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                            },
                                            "to": {
                                              "type": "string",
                                              "example": "17:00",
                                              "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                            }
                                          }
                                        },
                                        "description": "Multiple start and end time periods make up the working time.\n"
                                      }
                                    }
                                  },
                                  "saturday": {
                                    "type": "object",
                                    "properties": {
                                      "enabled": {
                                        "type": "boolean",
                                        "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                      },
                                      "ranges": {
                                        "type": "array",
                                        "items": {
                                          "type": "object",
                                          "properties": {
                                            "from": {
                                              "type": "string",
                                              "example": "09:00",
                                              "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                            },
                                            "to": {
                                              "type": "string",
                                              "example": "17:00",
                                              "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                            }
                                          }
                                        },
                                        "description": "Multiple start and end time periods make up the working time.\n"
                                      }
                                    }
                                  },
                                  "sunday": {
                                    "type": "object",
                                    "properties": {
                                      "enabled": {
                                        "type": "boolean",
                                        "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                      },
                                      "ranges": {
                                        "type": "array",
                                        "items": {
                                          "type": "object",
                                          "properties": {
                                            "from": {
                                              "type": "string",
                                              "example": "09:00",
                                              "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                            },
                                            "to": {
                                              "type": "string",
                                              "example": "17:00",
                                              "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                            }
                                          }
                                        },
                                        "description": "Multiple start and end time periods make up the working time.\n"
                                      }
                                    }
                                  }
                                }
                              }
                            ],
                            "description": "Specify hours for this custom forward rule.\n"
                          }
                        }
                      }
                    },
                    "voicemail_prompt": {
                      "type": "string",
                      "example": "en-US",
                      "description": "BCP 47 Language Tags (The Internet Best Current Practices (BCP) for language tags).\nA language tag is composed of a sequence of one or more subtags such as language, region, variant and script subtags.\nWhen a language tag is comprised of more than one subtag, the subtag values are separated by the \"-\" character.\nYou will most commonly find language tags written with 2 subtags - language and region. For example: en-US.\n"
                    },
                    "enable_voicemail_pin": {
                      "type": "boolean",
                      "default": true,
                      "description": "Whether the PIN is required to access voice mail of extension.\n"
                    },
                    "voicemail_pin": {
                      "type": "string",
                      "description": "The PIN number for accessing.\n"
                    },
                    "enable_voicemail_notify": {
                      "type": "boolean",
                      "default": false,
                      "description": "Enable voicemail to email notify.\n"
                    },
                    "voicemail_play_datetime": {
                      "type": "string",
                      "enum": [
                        "DISABLE",
                        "12_HOUR_CLOCK",
                        "24_HOUR_CLOCK"
                      ],
                      "description": "Announces Date and Time of Message.\n- `DISABLE`: Do not read;\n- `12_HOUR_CLOCK`: Read in 12-hour clock;\n- `24_HOUR_CLOCK`: Read in 24-hour clock.\n"
                    },
                    "interface": {
                      "type": "string",
                      "enum": [
                        "WEB_DOMAIN",
                        "PUBLIC_IPV4",
                        "PUBLIC_IPV6",
                        "PRIVATE_IPV4",
                        "PRIVATE_IPV6",
                        "SBC_DOMAIN"
                      ],
                      "description": "The interface type for QR code or auto provisioning.   \nCan be neither:  \n- `WEB_DOMAIN`:\n- `PUBLIC_IPV4`:\n- `PUBLIC_IPV6`:\n- `PRIVATE_IPV4`:\n- `PRIVATE_IPV6`:\n- `SBC_DOMAIN`:\n"
                    },
                    "enable_ai_transcript": {
                      "type": "boolean",
                      "description": "Enable `ai transcript` or not.\n"
                    },
                    "preferred_transport": {
                      "type": "string",
                      "enum": [
                        "UDP",
                        "TCP",
                        "TLS"
                      ],
                      "description": "The transport protocol:  \nCan be either:  \n- `UDP`:\n- `TCP`:\n- `TLS`:\n"
                    },
                    "blfs": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "key": {
                            "type": "string",
                            "description": "The key of BLF.\n"
                          },
                          "value": {
                            "type": "string",
                            "description": "The value of BLF.\n"
                          },
                          "first_name": {
                            "type": "string",
                            "description": "The first name of BLF.\n"
                          },
                          "last_name": {
                            "type": "string",
                            "description": "The last name of BLF.\n"
                          }
                        }
                      },
                      "description": "A collection of BLFs.\n"
                    },
                    "created_at": {
                      "allOf": [
                        {
                          "type": "string",
                          "format": "date_time",
                          "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                          "example": "2017-07-21T17:32:28Z"
                        }
                      ],
                      "description": "The creation time of user.\n"
                    },
                    "avatar_file_name": {
                      "type": "string",
                      "description": "The name of the file.\n"
                    },
                    "avatar_file_size": {
                      "type": "integer",
                      "format": "int64",
                      "minimum": 0,
                      "example": 0,
                      "description": "The file size in bytes.\n"
                    },
                    "avatar_file_url": {
                      "type": "string",
                      "readOnly": true,
                      "example": "/api/blobs/WexWdABcd5D4PDgzTKV3gAAAEu00WcK",
                      "description": "The relative path to file url for file downloading.\n"
                    },
                    "transports": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "protocol": {
                            "type": "string",
                            "enum": [
                              "UDP",
                              "TCP",
                              "TLS"
                            ],
                            "description": "The transport protocol:  \nCan be either:  \n- `UDP`:\n- `TCP`:\n- `TLS`:\n"
                          },
                          "port": {
                            "allOf": [
                              {
                                "type": "integer",
                                "format": "int32",
                                "minimum": 0,
                                "maximum": 65535,
                                "example": 80,
                                "description": "A port number is a 16-bit unsigned integer, thus ranging from 0 to 65535.\nFor TCP, port number 0 is reserved and cannot be used, while for UDP, the source port is optional and a value of zero means no port\n"
                              }
                            ],
                            "description": "The port of transport.\n"
                          },
                          "verification": {
                            "type": "string",
                            "enum": [
                              "DISABLE",
                              "OPTIONAL",
                              "MANDATORY"
                            ],
                            "description": "Indicates if PBX wishes (Optional) or requires (Mandatory) TLS clients to present a client certificate:\n- `DISABLE`: disable client certificate.\n- `OPTIONAL`: client authentication optional.\n- `MANDATORY`: force client authentication.\n"
                          }
                        }
                      }
                    },
                    "profile": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of user profile file.\n"
                    },
                    "provider": {
                      "type": "string",
                      "description": "The account provider.\n"
                    },
                    "provider_id": {
                      "type": "string",
                      "description": "The account provider ID.\n"
                    },
                    "sync_type": {
                      "type": "string",
                      "enum": [
                        "Microsoft 365"
                      ],
                      "description": "The synchronization method.   \nCan be either:   \n- `Microsoft 365`: Sync from Microsoft 365.\n"
                    },
                    "enable_uc_app": {
                      "type": "boolean",
                      "description": "Is login to the app allowed.\n"
                    },
                    "enable_teams_phone_app": {
                      "type": "boolean",
                      "description": "Is it allowed to log in to the teams phone app.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "id": null,
                      "name": null,
                      "email": null,
                      "display_name": null,
                      "role": null,
                      "role_id": null,
                      "role_name": null,
                      "enabled": null,
                      "mobile_phone": null,
                      "work_phone": null,
                      "home_phone": null,
                      "address": null,
                      "department": null,
                      "extension_number": null,
                      "enable_audio_recording": null,
                      "enable_video_recording": null,
                      "enable_dnd": null,
                      "enable_acb": null,
                      "enable_hot_desking": null,
                      "anonymous_outbound_calls": null,
                      "delivery_outbound_cid": null,
                      "sms": null,
                      "outbound_caller_ids": null,
                      "custom_options": null,
                      "office_hours": null,
                      "available_office_hours_forward_rule": null,
                      "available_non_office_hours_forward_rule": null,
                      "available_no_answer_forward_rule": null,
                      "busy_office_hours_forward_rule": null,
                      "busy_non_office_hours_forward_rule": null,
                      "busy_no_answer_forward_rule": null,
                      "dnd_office_hours_forward_rule": null,
                      "dnd_non_office_hours_forward_rule": null,
                      "away_office_hours_forward_rule": null,
                      "away_non_office_hours_forward_rule": null,
                      "lunch_office_hours_forward_rule": null,
                      "lunch_non_office_hours_forward_rule": null,
                      "trip_office_hours_forward_rule": null,
                      "trip_non_office_hours_forward_rule": null,
                      "offline_office_hours_forward_rule": null,
                      "offline_non_office_hours_forward_rule": null,
                      "custom_forward_rules": null,
                      "voicemail_prompt": null,
                      "enable_voicemail_pin": null,
                      "voicemail_pin": null,
                      "enable_voicemail_notify": null,
                      "voicemail_play_datetime": null,
                      "interface": null,
                      "preferred_transport": null,
                      "blfs": null,
                      "created_at": null,
                      "avatar_file_name": null,
                      "avatar_file_size": null,
                      "avatar_file_url": null,
                      "transports": null,
                      "profile": null,
                      "provider": null,
                      "provider_id": null,
                      "sync_type": null,
                      "enable_uc_app": true,
                      "enable_teams_phone_app": true
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "updateCurrentUser",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [],
        "summary": "Update current user properties.",
        "description": "Update current user properties.\n",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "email": {
                    "allOf": [
                      {
                        "type": "string",
                        "maxLength": 128,
                        "description": "The email address.\n",
                        "example": "example@example.com"
                      }
                    ],
                    "description": "The email address of user.\n"
                  },
                  "display_name": {
                    "type": "string",
                    "maxLength": 1024,
                    "description": "The display name of user.\n"
                  },
                  "mobile_phone": {
                    "type": "string",
                    "maxLength": 32,
                    "description": "The mobile phone number of user.\n"
                  },
                  "work_phone": {
                    "type": "string",
                    "maxLength": 32,
                    "description": "The office phone number of user.\n"
                  },
                  "home_phone": {
                    "type": "string",
                    "maxLength": 32,
                    "description": "The home phone number of user.\n"
                  },
                  "address": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The address.\n"
                  },
                  "department": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The department of user.\n"
                  },
                  "enable_audio_recording": {
                    "type": "boolean",
                    "default": false,
                    "description": "Records all calls and saves audio recordings on server.\n"
                  },
                  "enable_video_recording": {
                    "type": "boolean",
                    "default": false,
                    "description": "Records all calls and saves video recordings on server.\n"
                  },
                  "enable_dnd": {
                    "type": "boolean",
                    "description": "Enable `Do Not Disturb` or not.\n"
                  },
                  "enable_acb": {
                    "type": "boolean",
                    "description": "Enable `Automatic Callback` or not.\n"
                  },
                  "enable_hot_desking": {
                    "type": "boolean",
                    "default": false,
                    "description": "Enable hot desking feature or not.\n"
                  },
                  "anonymous_outbound_calls": {
                    "type": "boolean",
                    "default": false,
                    "description": "Always make outbound anonymous calls or not.\n"
                  },
                  "delivery_outbound_cid": {
                    "type": "boolean",
                    "default": true,
                    "description": "Always delivery outbound caller ID or not.\n"
                  },
                  "sms": {
                    "type": "string",
                    "enum": [
                      "DISABLE",
                      "ALLOW",
                      "ALLOW_WITH_SENDER_ID"
                    ],
                    "default": "DISABLE",
                    "description": "The preferred configuration for SMS/MMS.   \nNote: Only users with `UserManagement::Users` privilege can change this property.   \n  - `DISABLE`: Disable user SMS/MMS feature.\n  - `ALLOW`: Enable user SMS/MMS feature but with outbound caller ID.\n  - `ALLOW_WITH_SENDER_ID`: Enable user SMS/MMS but with trunk sender ID.\n"
                  },
                  "outbound_caller_ids": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "provider_id": {
                          "allOf": [
                            {
                              "allOf": [
                                {
                                  "type": "string",
                                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                  "description": "The unique ID of the resource.\n"
                                }
                              ],
                              "description": "The unique ID of user.\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"
                        },
                        "preferred": {
                          "type": "boolean",
                          "description": "Whether this outbound caller id preferred.\n"
                        },
                        "description": {
                          "type": "string",
                          "maxLength": 1024,
                          "description": "The descriptive information about this outbound caller id.\n"
                        }
                      }
                    },
                    "description": "A collection of outbound caller IDs.\n"
                  },
                  "custom_options": {
                    "type": "string",
                    "description": "Some custom configuration options serialized as json string\n"
                  },
                  "office_hours": {
                    "allOf": [
                      {
                        "type": "object",
                        "properties": {
                          "mode": {
                            "type": "string",
                            "enum": [
                              "GLOBAL",
                              "CUSTOM"
                            ],
                            "example": "CUSTOM",
                            "description": "The office hours mode can be either:  \n- `GLOBAL`: Use global office hours.\n- `CUSTOM`: Use specific office hours.\n"
                          }
                        }
                      },
                      {
                        "type": "object",
                        "properties": {
                          "monday": {
                            "type": "object",
                            "properties": {
                              "enabled": {
                                "type": "boolean",
                                "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                              },
                              "ranges": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "from": {
                                      "type": "string",
                                      "example": "09:00",
                                      "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                    },
                                    "to": {
                                      "type": "string",
                                      "example": "17:00",
                                      "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                    }
                                  }
                                },
                                "description": "Multiple start and end time periods make up the working time.\n"
                              }
                            }
                          },
                          "tuesday": {
                            "type": "object",
                            "properties": {
                              "enabled": {
                                "type": "boolean",
                                "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                              },
                              "ranges": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "from": {
                                      "type": "string",
                                      "example": "09:00",
                                      "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                    },
                                    "to": {
                                      "type": "string",
                                      "example": "17:00",
                                      "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                    }
                                  }
                                },
                                "description": "Multiple start and end time periods make up the working time.\n"
                              }
                            }
                          },
                          "wednesday": {
                            "type": "object",
                            "properties": {
                              "enabled": {
                                "type": "boolean",
                                "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                              },
                              "ranges": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "from": {
                                      "type": "string",
                                      "example": "09:00",
                                      "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                    },
                                    "to": {
                                      "type": "string",
                                      "example": "17:00",
                                      "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                    }
                                  }
                                },
                                "description": "Multiple start and end time periods make up the working time.\n"
                              }
                            }
                          },
                          "thursday": {
                            "type": "object",
                            "properties": {
                              "enabled": {
                                "type": "boolean",
                                "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                              },
                              "ranges": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "from": {
                                      "type": "string",
                                      "example": "09:00",
                                      "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                    },
                                    "to": {
                                      "type": "string",
                                      "example": "17:00",
                                      "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                    }
                                  }
                                },
                                "description": "Multiple start and end time periods make up the working time.\n"
                              }
                            }
                          },
                          "friday": {
                            "type": "object",
                            "properties": {
                              "enabled": {
                                "type": "boolean",
                                "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                              },
                              "ranges": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "from": {
                                      "type": "string",
                                      "example": "09:00",
                                      "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                    },
                                    "to": {
                                      "type": "string",
                                      "example": "17:00",
                                      "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                    }
                                  }
                                },
                                "description": "Multiple start and end time periods make up the working time.\n"
                              }
                            }
                          },
                          "saturday": {
                            "type": "object",
                            "properties": {
                              "enabled": {
                                "type": "boolean",
                                "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                              },
                              "ranges": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "from": {
                                      "type": "string",
                                      "example": "09:00",
                                      "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                    },
                                    "to": {
                                      "type": "string",
                                      "example": "17:00",
                                      "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                    }
                                  }
                                },
                                "description": "Multiple start and end time periods make up the working time.\n"
                              }
                            }
                          },
                          "sunday": {
                            "type": "object",
                            "properties": {
                              "enabled": {
                                "type": "boolean",
                                "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                              },
                              "ranges": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "from": {
                                      "type": "string",
                                      "example": "09:00",
                                      "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                    },
                                    "to": {
                                      "type": "string",
                                      "example": "17:00",
                                      "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                    }
                                  }
                                },
                                "description": "Multiple start and end time periods make up the working time.\n"
                              }
                            }
                          }
                        }
                      }
                    ]
                  },
                  "available_office_hours_forward_rule": {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "enum": [
                          "FORWARD_TO_NUMBER",
                          "FORWARD_TO_VOICEMAIL",
                          "RING_ANYWAY",
                          "HANGUP"
                        ],
                        "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`: Forward to the specified number\n- `FORWARD_TO_VOICEMAIL`: Forward to the specified voicemail.\n- `RING_ANYWAY`: Ring anyway.\n- `HANGUP`: Finish call\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"
                      }
                    }
                  },
                  "available_non_office_hours_forward_rule": {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "enum": [
                          "FORWARD_TO_NUMBER",
                          "FORWARD_TO_VOICEMAIL",
                          "RING_ANYWAY",
                          "HANGUP"
                        ],
                        "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`: Forward to the specified number\n- `FORWARD_TO_VOICEMAIL`: Forward to the specified voicemail.\n- `RING_ANYWAY`: Ring anyway.\n- `HANGUP`: Finish call\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"
                      }
                    }
                  },
                  "available_no_answer_forward_rule": {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "enum": [
                          "FORWARD_TO_NUMBER",
                          "FORWARD_TO_VOICEMAIL",
                          "HANGUP"
                        ],
                        "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`: Forward to the specified number\n- `FORWARD_TO_VOICEMAIL`: Forward to the specified voicemail.\n- `HANGUP`: Finish call\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"
                      },
                      "timeout": {
                        "type": "integer",
                        "format": "int32",
                        "minimum": 0,
                        "default": 60,
                        "description": "Duration that the call will remain ringing when no one answered, in seconds.\n"
                      }
                    }
                  },
                  "busy_office_hours_forward_rule": {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "enum": [
                          "FORWARD_TO_NUMBER",
                          "FORWARD_TO_VOICEMAIL",
                          "RING_ANYWAY",
                          "HANGUP"
                        ],
                        "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`: Forward to the specified number\n- `FORWARD_TO_VOICEMAIL`: Forward to the specified voicemail.\n- `RING_ANYWAY`: Ring anyway.\n- `HANGUP`: Finish call\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"
                      }
                    }
                  },
                  "busy_non_office_hours_forward_rule": {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "enum": [
                          "FORWARD_TO_NUMBER",
                          "FORWARD_TO_VOICEMAIL",
                          "RING_ANYWAY",
                          "HANGUP"
                        ],
                        "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`: Forward to the specified number\n- `FORWARD_TO_VOICEMAIL`: Forward to the specified voicemail.\n- `RING_ANYWAY`: Ring anyway.\n- `HANGUP`: Finish call\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"
                      }
                    }
                  },
                  "busy_no_answer_forward_rule": {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "enum": [
                          "FORWARD_TO_NUMBER",
                          "FORWARD_TO_VOICEMAIL",
                          "HANGUP"
                        ],
                        "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`: Forward to the specified number\n- `FORWARD_TO_VOICEMAIL`: Forward to the specified voicemail.\n- `HANGUP`: Finish call\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"
                      },
                      "timeout": {
                        "type": "integer",
                        "format": "int32",
                        "minimum": 0,
                        "default": 60,
                        "description": "Duration that the call will remain ringing when no one answered, in seconds.\n"
                      }
                    }
                  },
                  "dnd_office_hours_forward_rule": {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "enum": [
                          "FORWARD_TO_NUMBER",
                          "FORWARD_TO_VOICEMAIL",
                          "HANGUP"
                        ],
                        "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`: Forward to the specified number\n- `FORWARD_TO_VOICEMAIL`: Forward to the specified voicemail.\n- `HANGUP`: Finish call\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"
                      }
                    }
                  },
                  "dnd_non_office_hours_forward_rule": {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "enum": [
                          "FORWARD_TO_NUMBER",
                          "FORWARD_TO_VOICEMAIL",
                          "HANGUP"
                        ],
                        "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`: Forward to the specified number\n- `FORWARD_TO_VOICEMAIL`: Forward to the specified voicemail.\n- `HANGUP`: Finish call\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"
                      }
                    }
                  },
                  "away_office_hours_forward_rule": {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "enum": [
                          "FORWARD_TO_NUMBER",
                          "FORWARD_TO_VOICEMAIL",
                          "HANGUP"
                        ],
                        "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`: Forward to the specified number\n- `FORWARD_TO_VOICEMAIL`: Forward to the specified voicemail.\n- `HANGUP`: Finish call\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"
                      }
                    }
                  },
                  "away_non_office_hours_forward_rule": {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "enum": [
                          "FORWARD_TO_NUMBER",
                          "FORWARD_TO_VOICEMAIL",
                          "HANGUP"
                        ],
                        "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`: Forward to the specified number\n- `FORWARD_TO_VOICEMAIL`: Forward to the specified voicemail.\n- `HANGUP`: Finish call\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"
                      }
                    }
                  },
                  "lunch_office_hours_forward_rule": {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "enum": [
                          "FORWARD_TO_NUMBER",
                          "FORWARD_TO_VOICEMAIL",
                          "HANGUP"
                        ],
                        "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`: Forward to the specified number\n- `FORWARD_TO_VOICEMAIL`: Forward to the specified voicemail.\n- `HANGUP`: Finish call\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"
                      }
                    }
                  },
                  "lunch_non_office_hours_forward_rule": {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "enum": [
                          "FORWARD_TO_NUMBER",
                          "FORWARD_TO_VOICEMAIL",
                          "HANGUP"
                        ],
                        "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`: Forward to the specified number\n- `FORWARD_TO_VOICEMAIL`: Forward to the specified voicemail.\n- `HANGUP`: Finish call\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"
                      }
                    }
                  },
                  "trip_office_hours_forward_rule": {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "enum": [
                          "FORWARD_TO_NUMBER",
                          "FORWARD_TO_VOICEMAIL",
                          "HANGUP"
                        ],
                        "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`: Forward to the specified number\n- `FORWARD_TO_VOICEMAIL`: Forward to the specified voicemail.\n- `HANGUP`: Finish call\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"
                      }
                    }
                  },
                  "trip_non_office_hours_forward_rule": {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "enum": [
                          "FORWARD_TO_NUMBER",
                          "FORWARD_TO_VOICEMAIL",
                          "HANGUP"
                        ],
                        "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`: Forward to the specified number\n- `FORWARD_TO_VOICEMAIL`: Forward to the specified voicemail.\n- `HANGUP`: Finish call\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"
                      }
                    }
                  },
                  "offline_office_hours_forward_rule": {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "enum": [
                          "FORWARD_TO_NUMBER",
                          "FORWARD_TO_VOICEMAIL",
                          "HANGUP"
                        ],
                        "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`: Forward to the specified number\n- `FORWARD_TO_VOICEMAIL`: Forward to the specified voicemail.\n- `HANGUP`: Finish call\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"
                      }
                    }
                  },
                  "offline_non_office_hours_forward_rule": {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "enum": [
                          "FORWARD_TO_NUMBER",
                          "FORWARD_TO_VOICEMAIL",
                          "HANGUP"
                        ],
                        "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`: Forward to the specified number\n- `FORWARD_TO_VOICEMAIL`: Forward to the specified voicemail.\n- `HANGUP`: Finish call\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"
                      }
                    }
                  },
                  "custom_forward_rules": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "action": {
                          "type": "string",
                          "enum": [
                            "FORWARD_TO_NUMBER",
                            "FORWARD_TO_VOICEMAIL",
                            "RING_ANYWAY",
                            "HANGUP"
                          ],
                          "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`: Forward to the specified number\n- `FORWARD_TO_VOICEMAIL`: Forward to the specified voicemail.\n- `RING_ANYWAY`: Ring anyway.\n- `HANGUP`: Finish call\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"
                        },
                        "caller_id": {
                          "type": "string",
                          "description": "Specify the caller ID mask.\n"
                        },
                        "type": {
                          "type": "string",
                          "enum": [
                            "ALL_HOURS",
                            "SPECIFIC_HOURS",
                            "OUTSIDE_SPECIFIC_HOURS"
                          ],
                          "description": "Specify hours mode for forward rule:\n- `ALL_HOURS`:\n- `SPECIFIC_HOURS`:\n- `OUTSIDE_SPECIFIC_HOURS`:\n"
                        },
                        "hours": {
                          "allOf": [
                            {
                              "type": "object",
                              "properties": {
                                "monday": {
                                  "type": "object",
                                  "properties": {
                                    "enabled": {
                                      "type": "boolean",
                                      "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                    },
                                    "ranges": {
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "from": {
                                            "type": "string",
                                            "example": "09:00",
                                            "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                          },
                                          "to": {
                                            "type": "string",
                                            "example": "17:00",
                                            "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                          }
                                        }
                                      },
                                      "description": "Multiple start and end time periods make up the working time.\n"
                                    }
                                  }
                                },
                                "tuesday": {
                                  "type": "object",
                                  "properties": {
                                    "enabled": {
                                      "type": "boolean",
                                      "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                    },
                                    "ranges": {
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "from": {
                                            "type": "string",
                                            "example": "09:00",
                                            "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                          },
                                          "to": {
                                            "type": "string",
                                            "example": "17:00",
                                            "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                          }
                                        }
                                      },
                                      "description": "Multiple start and end time periods make up the working time.\n"
                                    }
                                  }
                                },
                                "wednesday": {
                                  "type": "object",
                                  "properties": {
                                    "enabled": {
                                      "type": "boolean",
                                      "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                    },
                                    "ranges": {
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "from": {
                                            "type": "string",
                                            "example": "09:00",
                                            "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                          },
                                          "to": {
                                            "type": "string",
                                            "example": "17:00",
                                            "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                          }
                                        }
                                      },
                                      "description": "Multiple start and end time periods make up the working time.\n"
                                    }
                                  }
                                },
                                "thursday": {
                                  "type": "object",
                                  "properties": {
                                    "enabled": {
                                      "type": "boolean",
                                      "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                    },
                                    "ranges": {
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "from": {
                                            "type": "string",
                                            "example": "09:00",
                                            "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                          },
                                          "to": {
                                            "type": "string",
                                            "example": "17:00",
                                            "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                          }
                                        }
                                      },
                                      "description": "Multiple start and end time periods make up the working time.\n"
                                    }
                                  }
                                },
                                "friday": {
                                  "type": "object",
                                  "properties": {
                                    "enabled": {
                                      "type": "boolean",
                                      "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                    },
                                    "ranges": {
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "from": {
                                            "type": "string",
                                            "example": "09:00",
                                            "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                          },
                                          "to": {
                                            "type": "string",
                                            "example": "17:00",
                                            "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                          }
                                        }
                                      },
                                      "description": "Multiple start and end time periods make up the working time.\n"
                                    }
                                  }
                                },
                                "saturday": {
                                  "type": "object",
                                  "properties": {
                                    "enabled": {
                                      "type": "boolean",
                                      "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                    },
                                    "ranges": {
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "from": {
                                            "type": "string",
                                            "example": "09:00",
                                            "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                          },
                                          "to": {
                                            "type": "string",
                                            "example": "17:00",
                                            "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                          }
                                        }
                                      },
                                      "description": "Multiple start and end time periods make up the working time.\n"
                                    }
                                  }
                                },
                                "sunday": {
                                  "type": "object",
                                  "properties": {
                                    "enabled": {
                                      "type": "boolean",
                                      "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                    },
                                    "ranges": {
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "from": {
                                            "type": "string",
                                            "example": "09:00",
                                            "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                          },
                                          "to": {
                                            "type": "string",
                                            "example": "17:00",
                                            "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                          }
                                        }
                                      },
                                      "description": "Multiple start and end time periods make up the working time.\n"
                                    }
                                  }
                                }
                              }
                            }
                          ],
                          "description": "Specify hours for this custom forward rule.\n"
                        }
                      }
                    }
                  },
                  "voicemail_prompt": {
                    "type": "string",
                    "example": "en-US",
                    "description": "BCP 47 Language Tags (The Internet Best Current Practices (BCP) for language tags).\nA language tag is composed of a sequence of one or more subtags such as language, region, variant and script subtags.\nWhen a language tag is comprised of more than one subtag, the subtag values are separated by the \"-\" character.\nYou will most commonly find language tags written with 2 subtags - language and region. For example: en-US.\n"
                  },
                  "enable_voicemail_pin": {
                    "type": "boolean",
                    "default": true,
                    "description": "Whether the PIN is required to access voice mail of extension.\n"
                  },
                  "voicemail_pin": {
                    "type": "string",
                    "description": "The PIN number for accessing.\n"
                  },
                  "enable_voicemail_notify": {
                    "type": "boolean",
                    "default": false,
                    "description": "Enable voicemail to email notify.\n"
                  },
                  "voicemail_play_datetime": {
                    "type": "string",
                    "enum": [
                      "DISABLE",
                      "12_HOUR_CLOCK",
                      "24_HOUR_CLOCK"
                    ],
                    "description": "Announces Date and Time of Message.\n- `DISABLE`: Do not read;\n- `12_HOUR_CLOCK`: Read in 12-hour clock;\n- `24_HOUR_CLOCK`: Read in 24-hour clock.\n"
                  },
                  "interface": {
                    "type": "string",
                    "enum": [
                      "WEB_DOMAIN",
                      "PUBLIC_IPV4",
                      "PUBLIC_IPV6",
                      "PRIVATE_IPV4",
                      "PRIVATE_IPV6",
                      "SBC_DOMAIN"
                    ],
                    "description": "The interface type for QR code or auto provisioning.   \nCan be neither:  \n- `WEB_DOMAIN`:\n- `PUBLIC_IPV4`:\n- `PUBLIC_IPV6`:\n- `PRIVATE_IPV4`:\n- `PRIVATE_IPV6`:\n- `SBC_DOMAIN`:\n"
                  },
                  "preferred_transport": {
                    "type": "string",
                    "enum": [
                      "UDP",
                      "TCP",
                      "TLS"
                    ],
                    "description": "The transport protocol:  \nCan be either:  \n- `UDP`:\n- `TCP`:\n- `TLS`:\n"
                  },
                  "enable_ai_transcript": {
                    "type": "boolean",
                    "description": "Enable `ai transcript` or not.\n"
                  },
                  "enable_uc_app": {
                    "type": "boolean",
                    "description": "Enable `user-agent of app` or not.\n"
                  },
                  "enable_teams_phone_app": {
                    "type": "boolean",
                    "description": "Enable `enable teams phone app` or not.\n"
                  },
                  "blfs": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "key": {
                          "type": "string",
                          "description": "The key of BLF.\n"
                        },
                        "value": {
                          "type": "string",
                          "description": "The value of BLF.\n"
                        },
                        "first_name": {
                          "type": "string",
                          "description": "The first name of BLF.\n"
                        },
                        "last_name": {
                          "type": "string",
                          "description": "The last name of BLF.\n"
                        }
                      }
                    },
                    "description": "A collection of BLFs.\n"
                  },
                  "avatar_file_id": {
                    "allOf": [
                      {
                        "type": "string",
                        "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                        "description": "The unique ID of the resource.\n"
                      }
                    ],
                    "description": "The unique ID of the file.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "email": null,
                    "display_name": null,
                    "mobile_phone": null,
                    "work_phone": null,
                    "home_phone": null,
                    "address": null,
                    "department": null,
                    "enable_audio_recording": null,
                    "enable_video_recording": null,
                    "enable_dnd": null,
                    "enable_acb": null,
                    "enable_hot_desking": null,
                    "anonymous_outbound_calls": null,
                    "delivery_outbound_cid": null,
                    "sms": null,
                    "outbound_caller_ids": null,
                    "custom_options": null,
                    "office_hours": null,
                    "available_office_hours_forward_rule": null,
                    "available_non_office_hours_forward_rule": null,
                    "available_no_answer_forward_rule": null,
                    "busy_office_hours_forward_rule": null,
                    "busy_non_office_hours_forward_rule": null,
                    "busy_no_answer_forward_rule": null,
                    "dnd_office_hours_forward_rule": null,
                    "dnd_non_office_hours_forward_rule": null,
                    "away_office_hours_forward_rule": null,
                    "away_non_office_hours_forward_rule": null,
                    "lunch_office_hours_forward_rule": null,
                    "lunch_non_office_hours_forward_rule": null,
                    "trip_office_hours_forward_rule": null,
                    "trip_non_office_hours_forward_rule": null,
                    "offline_office_hours_forward_rule": null,
                    "offline_non_office_hours_forward_rule": null,
                    "custom_forward_rules": null,
                    "voicemail_prompt": null,
                    "enable_voicemail_pin": null,
                    "voicemail_pin": null,
                    "enable_voicemail_notify": null,
                    "voicemail_play_datetime": null,
                    "interface": null,
                    "preferred_transport": null,
                    "blfs": null,
                    "avatar_file_id": null
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/user/password": {
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "resetCurrentUserPassword",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [],
        "summary": "Reset current user password",
        "description": "Reset current user password.\n",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "old_password": {
                    "type": "string",
                    "description": "The password of user.\n"
                  },
                  "new_password": {
                    "type": "string",
                    "description": "The password of user.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "old_password": null,
                    "new_password": null
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/user/extension_password": {
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "resetCurrentUserExtensionPassword",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [],
        "summary": "Reset current user extension password",
        "description": "Reset current user extension password.\n",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "old_password": {
                    "type": "string",
                    "description": "The extension password.\n"
                  },
                  "new_password": {
                    "type": "string",
                    "description": "The extension password.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "old_password": null,
                    "new_password": null
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/user/profile": {
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "resetCurrentUserProfile",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [],
        "summary": "Reset current user profile",
        "description": "Reset current user profile.\n",
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/user/status": {
      "get": {
        "tags": [
          "User"
        ],
        "operationId": "getCurrentUserStatus",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [],
        "summary": "Retrieves current user status",
        "description": "Get status of current user.\n",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "enum": [
                        "ONLINE",
                        "OFFLINE",
                        "ONCALL"
                      ],
                      "description": "Status of extension:\n  - `ONLINE`   \n  - `OFFLINE`   \n  - `ONCALL`\n"
                    },
                    "presence": {
                      "type": "string",
                      "enum": [
                        "DO_NOT_DISTURB",
                        "AWAY",
                        "BUSINESS_TRIP",
                        "LUNCH",
                        "OFFLINE",
                        "ONLINE"
                      ],
                      "description": "The current presence of extension:   \n- `DO_NOT_DISTURB`:   \n- `AWAY`:   \n- `BUSINESS_TRIP`:   \n- `LUNCH`:\n- `OFFLINE`\n- `ONLINE`\n"
                    },
                    "presence_note": {
                      "type": "string",
                      "maxLength": 128,
                      "description": "The presence note.\n"
                    },
                    "registration": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "instance_id": {
                            "type": "string",
                            "description": "The instance ID of registration.\n"
                          },
                          "user_agent": {
                            "type": "string",
                            "description": "User agent of login device.\n"
                          },
                          "application": {
                            "type": "string",
                            "description": "The application name of login device.\n"
                          },
                          "ip": {
                            "type": "string",
                            "description": "The IP address of login device.\n"
                          },
                          "enable_push": {
                            "type": "boolean",
                            "description": "Whether push is enabled of login device.\n"
                          },
                          "contact_address": {
                            "type": "string",
                            "description": "The contact address information.\n"
                          }
                        }
                      },
                      "description": "Collection of registration information.\n"
                    },
                    "enable_dnd": {
                      "type": "boolean",
                      "description": "`Do Not Disturb` enabled or not.\n"
                    },
                    "enable_acb": {
                      "type": "boolean",
                      "description": "`Automatic Callback` enabled or not.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "status": "ONLINE",
                      "presence": null,
                      "presence_note": null,
                      "registration": null,
                      "enable_dnd": null,
                      "enable_acb": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/user/presence": {
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "setCurrentUserPresence",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [],
        "summary": "Set current extension user presence",
        "description": "Set current extension user presence.\n",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "presence": {
                    "type": "string",
                    "enym": [
                      "ONLINE",
                      "LUNCH",
                      "BUSINESS_TRIP",
                      "DO_NOT_DISTURB",
                      "AWAY"
                    ],
                    "description": "The specified presence of the extension.  \n- `ONLINE`  \n- `LUNCH`  \n- `BUSINESS_TRIP`  \n- `DO_NOT_DISTURB`  \n- `AWAY`\n"
                  },
                  "presence_note": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The presence note.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "presence": null,
                    "presence_note": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/user/balance": {
      "get": {
        "tags": [
          "User"
        ],
        "operationId": "getCurrentUserBalance",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [],
        "summary": "Retrieve current user balance.",
        "description": "Retrieve current user's balance.\n",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "balance": {
                      "type": "number",
                      "format": "double",
                      "description": "User balance. Precision is five digits.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "balance": 100
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/user/greetings": {
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "createGreetingForCurrentUser",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [],
        "summary": "Create voicemail greeting for current user",
        "description": "Create voicemail greeting for current user.\n",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "file_id": {
                    "allOf": [
                      {
                        "type": "string",
                        "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                        "description": "The unique ID of the resource.\n"
                      }
                    ],
                    "description": "The unique ID of the file.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "file_id": "xxxxxxxxxxxxxxxxxxxxx"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of greeting.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "The ID of created resource",
                    "value": {
                      "id": "xxxxxxxx"
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "get": {
        "tags": [
          "User"
        ],
        "operationId": "listCurrentUserGreetings",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [],
        "summary": "List current user voicemail greetings",
        "description": "Retrieves a collection of greetings for current user.\n",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "description": "The unique ID of greeting.\n"
                          },
                          "enabled": {
                            "type": "boolean",
                            "description": "Whether the greeting is enabled or not.\n"
                          },
                          "file_name": {
                            "type": "string",
                            "description": "The name of the file.\n"
                          },
                          "file_size": {
                            "type": "integer",
                            "format": "int64",
                            "minimum": 0,
                            "example": 0,
                            "description": "The file size in bytes.\n"
                          },
                          "file_url": {
                            "type": "string",
                            "readOnly": true,
                            "example": "/api/blobs/WexWdABcd5D4PDgzTKV3gAAAEu00WcK",
                            "description": "The relative path to file url for file downloading.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "items": [
                        {
                          "id": null,
                          "enabled": null,
                          "file_name": null,
                          "file_size": null,
                          "file_url": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/user/greetings/{id}/enable": {
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "enableCurrentUserGreeting",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [],
        "summary": "Enable one of current user's greetings.",
        "description": "Set one of current user's greetings to activated state.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of greeting.\n"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Invalid extension number supplied"
          },
          "404": {
            "description": "User not found"
          }
        }
      }
    },
    "/user/greetings/{id}/disable": {
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "disableCurrentUserGreeting",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [],
        "summary": "Disable current user greeting",
        "description": "Disable current user voicemail greeting by it's unique ID.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of greeting.\n"
            },
            "description": "The unique ID of the greeting."
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Invalid extension number supplied"
          },
          "404": {
            "description": "User not found"
          }
        }
      }
    },
    "/user/greetings/{id}/destroy": {
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "delCurrentUserGreeting",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [],
        "summary": "Delete voicemail greeting",
        "description": "Destroy a voicemail greeting from user.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of greeting.\n"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/user/phones": {
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "createCurrentUserPhone",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [],
        "summary": "Assign phone to current user",
        "description": "Assign a phone to current user.\n",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "mac": {
                    "allOf": [
                      {
                        "type": "string",
                        "description": "MAC address.\n"
                      }
                    ],
                    "description": "MAC address of this IP phone.\n"
                  },
                  "filename": {
                    "type": "string",
                    "description": "Template XML file name for phone provisioning.\n"
                  },
                  "vendor": {
                    "type": "string",
                    "description": "The phone vendor of IP phone.\n"
                  },
                  "model": {
                    "type": "string",
                    "description": "The name of IP phone model.\n"
                  },
                  "password": {
                    "type": "string",
                    "description": "Password for accessing the Web interface of phone.\nThe username remains default because most phone manufacturers do not\nallow modification of the user name. This is supported for some phone model, such as \"Snom 300\".\n"
                  },
                  "language": {
                    "type": "string",
                    "enum": [
                      "ENGLISH",
                      "CHINESE",
                      "DUTCH",
                      "FRENCH",
                      "GERMAN",
                      "GREEK",
                      "ITALIAN",
                      "JAPANESE",
                      "POLISH",
                      "RUSSIAN",
                      "SPANISH",
                      "SWEDISH",
                      "UKRAINIAN",
                      "BULGARIAN"
                    ],
                    "description": "Language for strings displayed on Phone Display LCD.\nSupported languages include ENGLISH, CHINESE, DUTCH, FRENCH, GERMAN,\nGREEK, ITALIAN, JAPANESE, POLISH, RUSSIAN, SPANISH, SWEDISH, UKRAINIAN, and BULGARIAN.\n"
                  },
                  "transfer": {
                    "type": "string",
                    "enum": [
                      "BLIND",
                      "ATTENDED",
                      "NEW_CALL"
                    ],
                    "default": "BLIND",
                    "description": "The transfer method for auto provision.  \nCan be either: \n- `BLIND`: After the IP phone is configured with the BLF of a certain key, during a call on the IP phone, press the key, and the phone will directly initiate a Blind transfer to the configured number.\n- `ATTENDED`: After the IP phone is configured with the BLF of a key, during a call on the IP phone, press the key, and the phone will directly initiate an Attended transfer to the configured number.\n- `NEW_CALL`: After the IP phone is configured with the BLF of a certain key, during a call on the IP phone, press the key, and the phone will initiate a new call to the configured number.\n"
                  },
                  "timezone": {
                    "type": "string",
                    "description": "The timezone of phone.\n"
                  },
                  "ringtone": {
                    "type": "string",
                    "description": "The ringtone of phone.\n"
                  },
                  "queue_ringtone": {
                    "type": "string",
                    "description": "The queue ringtone of phone for queue calls or ring group calls.\n"
                  },
                  "external_ringtone": {
                    "type": "string",
                    "description": "The ringtone of phone for external calls.\n"
                  },
                  "date_format": {
                    "type": "string",
                    "description": "The date format of phone.\n"
                  },
                  "time_format": {
                    "type": "string",
                    "description": "The time format of phone.\n"
                  },
                  "powerled": {
                    "type": "string",
                    "description": "The power led of phone.\n"
                  },
                  "backlight": {
                    "type": "string",
                    "description": "The backlight of phone.\n"
                  },
                  "screensaver": {
                    "type": "string",
                    "description": "The screensaver of phone.\n"
                  },
                  "rps": {
                    "type": "boolean",
                    "description": "Send to RPS or not.\n"
                  },
                  "https": {
                    "type": "boolean",
                    "description": "Whether to use https\n"
                  },
                  "codecs": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "description": "The list of currently enabled codec formats.\n"
                  },
                  "enable_lldp": {
                    "type": "boolean",
                    "default": false,
                    "description": "Enable or disable Link Layer Discovery Protocol."
                  },
                  "enable_vlan_wan_port": {
                    "type": "boolean",
                    "default": false,
                    "description": "Enable or disable VLAN for WAN Port.\n"
                  },
                  "wan_port_id": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 4094,
                    "description": "VLAN ID for WAN PORT.\n"
                  },
                  "wan_port_priority": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 7,
                    "description": "VLAN priority for WAN Port.\n"
                  },
                  "enable_vlan_pc_port": {
                    "type": "boolean",
                    "default": false,
                    "description": "Enable or disable VLAN for PC Port.\n"
                  },
                  "pc_port_id": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 4094,
                    "description": "VLAN ID for PC PORT.\n"
                  },
                  "pc_port_priority": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 7,
                    "description": "VLAN priority for PC Port.\n"
                  },
                  "interface": {
                    "type": "string",
                    "enum": [
                      "WEB_DOMAIN",
                      "PUBLIC_IPV4",
                      "PUBLIC_IPV6",
                      "PRIVATE_IPV4",
                      "PRIVATE_IPV6",
                      "SBC_DOMAIN"
                    ],
                    "description": "The interface type for QR code or auto provisioning.   \nCan be neither:  \n- `WEB_DOMAIN`:\n- `PUBLIC_IPV4`:\n- `PUBLIC_IPV6`:\n- `PRIVATE_IPV4`:\n- `PRIVATE_IPV6`:\n- `SBC_DOMAIN`:\n"
                  },
                  "preferred_transport": {
                    "type": "string",
                    "enum": [
                      "UDP",
                      "TCP",
                      "TLS"
                    ],
                    "description": "The transport protocol:  \nCan be either:  \n- `UDP`:\n- `TCP`:\n- `TLS`:\n"
                  },
                  "serial_number": {
                    "type": "string",
                    "description": "The serial number of phone.\n"
                  },
                  "door_password1": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 8,
                    "description": "The primary door password of phone. Only numeric sequences are allowed.\n"
                  },
                  "door_password2": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 8,
                    "description": "The secondary door password of phone. Only numeric sequences are allowed.\n"
                  }
                },
                "required": [
                  "mac",
                  "filename",
                  "vendor",
                  "model",
                  "password",
                  "language",
                  "transfer",
                  "timezone",
                  "codecs",
                  "interface",
                  "preferred_transport"
                ]
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "mac": null,
                    "filename": null,
                    "vendor": null,
                    "model": null,
                    "password": null,
                    "language": null,
                    "transfer": null,
                    "timezone": null,
                    "ringtone": null,
                    "queue_ringtone": null,
                    "external_ringtone": null,
                    "date_format": null,
                    "time_format": null,
                    "powerled": null,
                    "backlight": null,
                    "screensaver": null,
                    "rps": null,
                    "https": null,
                    "codecs": null,
                    "enable_lldp": null,
                    "enable_vlan_wan_port": null,
                    "wan_port_id": null,
                    "wan_port_priority": null,
                    "enable_vlan_pc_port": null,
                    "pc_port_id": null,
                    "pc_port_priority": null,
                    "interface": null,
                    "preferred_transport": null,
                    "serial_number": null,
                    "door_password1": null,
                    "door_password2": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of phone.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "The ID of created resource",
                    "value": {
                      "id": "xxxxxxxx"
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "get": {
        "tags": [
          "User"
        ],
        "operationId": "listCurrentUserPhones",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [],
        "summary": "List current user's IP phones",
        "description": "Retrieve a collection of IP Phones for current user.\n",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "description": "The unique ID of phone.\n"
                          },
                          "mac": {
                            "allOf": [
                              {
                                "type": "string",
                                "description": "MAC address.\n"
                              }
                            ],
                            "description": "MAC address of this IP phone.\n"
                          },
                          "filename": {
                            "type": "string",
                            "description": "Template XML file name for phone provisioning.\n"
                          },
                          "vendor": {
                            "type": "string",
                            "description": "The phone vendor of IP phone.\n"
                          },
                          "model": {
                            "type": "string",
                            "description": "The name of IP phone model.\n"
                          },
                          "fwver": {
                            "type": "string",
                            "description": "The firmware version of IP phone.\n"
                          },
                          "password": {
                            "type": "string",
                            "description": "Password for accessing the Web interface of phone.\nThe username remains default because most phone manufacturers do not\nallow modification of the user name. This is supported for some phone model, such as \"Snom 300\".\n"
                          },
                          "language": {
                            "type": "string",
                            "enum": [
                              "ENGLISH",
                              "CHINESE",
                              "DUTCH",
                              "FRENCH",
                              "GERMAN",
                              "GREEK",
                              "ITALIAN",
                              "JAPANESE",
                              "POLISH",
                              "RUSSIAN",
                              "SPANISH",
                              "SWEDISH",
                              "UKRAINIAN",
                              "BULGARIAN"
                            ],
                            "description": "Language for strings displayed on Phone Display LCD.\nSupported languages include ENGLISH, CHINESE, DUTCH, FRENCH, GERMAN,\nGREEK, ITALIAN, JAPANESE, POLISH, RUSSIAN, SPANISH, SWEDISH, UKRAINIAN, and BULGARIAN.\n"
                          },
                          "transfer": {
                            "type": "string",
                            "enum": [
                              "BLIND",
                              "ATTENDED",
                              "NEW_CALL"
                            ],
                            "default": "BLIND",
                            "description": "The transfer method for auto provision.  \nCan be either: \n- `BLIND`: After the IP phone is configured with the BLF of a certain key, during a call on the IP phone, press the key, and the phone will directly initiate a Blind transfer to the configured number.\n- `ATTENDED`: After the IP phone is configured with the BLF of a key, during a call on the IP phone, press the key, and the phone will directly initiate an Attended transfer to the configured number.\n- `NEW_CALL`: After the IP phone is configured with the BLF of a certain key, during a call on the IP phone, press the key, and the phone will initiate a new call to the configured number.\n"
                          },
                          "timezone": {
                            "type": "string",
                            "description": "The timezone of phone.\n"
                          },
                          "ringtone": {
                            "type": "string",
                            "description": "The ringtone of phone.\n"
                          },
                          "queue_ringtone": {
                            "type": "string",
                            "description": "The queue ringtone of phone for queue calls or ring group calls.\n"
                          },
                          "external_ringtone": {
                            "type": "string",
                            "description": "The ringtone of phone for external calls.\n"
                          },
                          "date_format": {
                            "type": "string",
                            "description": "The date format of phone.\n"
                          },
                          "time_format": {
                            "type": "string",
                            "description": "The time format of phone.\n"
                          },
                          "powerled": {
                            "type": "string",
                            "description": "The power led of phone.\n"
                          },
                          "backlight": {
                            "type": "string",
                            "description": "The backlight of phone.\n"
                          },
                          "screensaver": {
                            "type": "string",
                            "description": "The screensaver of phone.\n"
                          },
                          "rps": {
                            "type": "boolean",
                            "description": "Send to RPS or not.\n"
                          },
                          "https": {
                            "type": "boolean",
                            "description": "Whether to use https\n"
                          },
                          "codecs": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "The list of currently enabled codec formats.\n"
                          },
                          "enable_lldp": {
                            "type": "boolean",
                            "default": false,
                            "description": "Enable or disable Link Layer Discovery Protocol."
                          },
                          "enable_vlan_wan_port": {
                            "type": "boolean",
                            "default": false,
                            "description": "Enable or disable VLAN for WAN Port.\n"
                          },
                          "wan_port_id": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 4094,
                            "description": "VLAN ID for WAN PORT.\n"
                          },
                          "wan_port_priority": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 7,
                            "description": "VLAN priority for WAN Port.\n"
                          },
                          "enable_vlan_pc_port": {
                            "type": "boolean",
                            "default": false,
                            "description": "Enable or disable VLAN for PC Port.\n"
                          },
                          "pc_port_id": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 4094,
                            "description": "VLAN ID for PC PORT.\n"
                          },
                          "pc_port_priority": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 7,
                            "description": "VLAN priority for PC Port.\n"
                          },
                          "interface": {
                            "type": "string",
                            "enum": [
                              "WEB_DOMAIN",
                              "PUBLIC_IPV4",
                              "PUBLIC_IPV6",
                              "PRIVATE_IPV4",
                              "PRIVATE_IPV6",
                              "SBC_DOMAIN"
                            ],
                            "description": "The interface type for QR code or auto provisioning.   \nCan be neither:  \n- `WEB_DOMAIN`:\n- `PUBLIC_IPV4`:\n- `PUBLIC_IPV6`:\n- `PRIVATE_IPV4`:\n- `PRIVATE_IPV6`:\n- `SBC_DOMAIN`:\n"
                          },
                          "preferred_transport": {
                            "type": "string",
                            "enum": [
                              "UDP",
                              "TCP",
                              "TLS"
                            ],
                            "description": "The transport protocol:  \nCan be either:  \n- `UDP`:\n- `TCP`:\n- `TLS`:\n"
                          },
                          "serial_number": {
                            "type": "string",
                            "description": "The serial number of phone.\n"
                          },
                          "door_password1": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 8,
                            "description": "The primary door password of phone. Only numeric sequences are allowed.\n"
                          },
                          "door_password2": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 8,
                            "description": "The secondary door password of phone. Only numeric sequences are allowed.\n"
                          },
                          "url": {
                            "type": "string",
                            "description": "Auto provision server URL.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "items": [
                        {
                          "id": null,
                          "mac": null,
                          "filename": null,
                          "vendor": null,
                          "model": null,
                          "fwver": null,
                          "password": null,
                          "language": null,
                          "transfer": null,
                          "timezone": null,
                          "ringtone": null,
                          "queue_ringtone": null,
                          "external_ringtone": null,
                          "date_format": null,
                          "time_format": null,
                          "powerled": null,
                          "backlight": null,
                          "screensaver": null,
                          "rps": null,
                          "https": null,
                          "codecs": null,
                          "enable_lldp": null,
                          "enable_vlan_wan_port": null,
                          "wan_port_id": null,
                          "wan_port_priority": null,
                          "enable_vlan_pc_port": null,
                          "pc_port_id": null,
                          "pc_port_priority": null,
                          "interface": null,
                          "preferred_transport": null,
                          "serial_number": null,
                          "door_password1": null,
                          "door_password2": null,
                          "url": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/user/phones/{id}": {
      "get": {
        "tags": [
          "User"
        ],
        "operationId": "showCurrentUserPhone",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [],
        "summary": "Retrieve current user phone details",
        "description": "Retrieve phone details of current user.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of phone.\n"
            },
            "description": "The unique ID of the phone."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of phone.\n"
                    },
                    "mac": {
                      "allOf": [
                        {
                          "type": "string",
                          "description": "MAC address.\n"
                        }
                      ],
                      "description": "MAC address of this IP phone.\n"
                    },
                    "filename": {
                      "type": "string",
                      "description": "Template XML file name for phone provisioning.\n"
                    },
                    "vendor": {
                      "type": "string",
                      "description": "The phone vendor of IP phone.\n"
                    },
                    "model": {
                      "type": "string",
                      "description": "The name of IP phone model.\n"
                    },
                    "password": {
                      "type": "string",
                      "description": "Password for accessing the Web interface of phone.\nThe username remains default because most phone manufacturers do not\nallow modification of the user name. This is supported for some phone model, such as \"Snom 300\".\n"
                    },
                    "language": {
                      "type": "string",
                      "enum": [
                        "ENGLISH",
                        "CHINESE",
                        "DUTCH",
                        "FRENCH",
                        "GERMAN",
                        "GREEK",
                        "ITALIAN",
                        "JAPANESE",
                        "POLISH",
                        "RUSSIAN",
                        "SPANISH",
                        "SWEDISH",
                        "UKRAINIAN",
                        "BULGARIAN"
                      ],
                      "description": "Language for strings displayed on Phone Display LCD.\nSupported languages include ENGLISH, CHINESE, DUTCH, FRENCH, GERMAN,\nGREEK, ITALIAN, JAPANESE, POLISH, RUSSIAN, SPANISH, SWEDISH, UKRAINIAN, and BULGARIAN.\n"
                    },
                    "transfer": {
                      "type": "string",
                      "enum": [
                        "BLIND",
                        "ATTENDED",
                        "NEW_CALL"
                      ],
                      "default": "BLIND",
                      "description": "The transfer method for auto provision.  \nCan be either: \n- `BLIND`: After the IP phone is configured with the BLF of a certain key, during a call on the IP phone, press the key, and the phone will directly initiate a Blind transfer to the configured number.\n- `ATTENDED`: After the IP phone is configured with the BLF of a key, during a call on the IP phone, press the key, and the phone will directly initiate an Attended transfer to the configured number.\n- `NEW_CALL`: After the IP phone is configured with the BLF of a certain key, during a call on the IP phone, press the key, and the phone will initiate a new call to the configured number.\n"
                    },
                    "timezone": {
                      "type": "string",
                      "description": "The timezone of phone.\n"
                    },
                    "ringtone": {
                      "type": "string",
                      "description": "The ringtone of phone.\n"
                    },
                    "queue_ringtone": {
                      "type": "string",
                      "description": "The queue ringtone of phone for queue calls or ring group calls.\n"
                    },
                    "external_ringtone": {
                      "type": "string",
                      "description": "The ringtone of phone for external calls.\n"
                    },
                    "date_format": {
                      "type": "string",
                      "description": "The date format of phone.\n"
                    },
                    "time_format": {
                      "type": "string",
                      "description": "The time format of phone.\n"
                    },
                    "powerled": {
                      "type": "string",
                      "description": "The power led of phone.\n"
                    },
                    "backlight": {
                      "type": "string",
                      "description": "The backlight of phone.\n"
                    },
                    "screensaver": {
                      "type": "string",
                      "description": "The screensaver of phone.\n"
                    },
                    "rps": {
                      "type": "boolean",
                      "description": "Send to RPS or not.\n"
                    },
                    "https": {
                      "type": "boolean",
                      "description": "Whether to use https\n"
                    },
                    "codecs": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "description": "The list of currently enabled codec formats.\n"
                    },
                    "enable_lldp": {
                      "type": "boolean",
                      "default": false,
                      "description": "Enable or disable Link Layer Discovery Protocol."
                    },
                    "enable_vlan_wan_port": {
                      "type": "boolean",
                      "default": false,
                      "description": "Enable or disable VLAN for WAN Port.\n"
                    },
                    "wan_port_id": {
                      "type": "integer",
                      "minimum": 1,
                      "maximum": 4094,
                      "description": "VLAN ID for WAN PORT.\n"
                    },
                    "wan_port_priority": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 7,
                      "description": "VLAN priority for WAN Port.\n"
                    },
                    "enable_vlan_pc_port": {
                      "type": "boolean",
                      "default": false,
                      "description": "Enable or disable VLAN for PC Port.\n"
                    },
                    "pc_port_id": {
                      "type": "integer",
                      "minimum": 1,
                      "maximum": 4094,
                      "description": "VLAN ID for PC PORT.\n"
                    },
                    "pc_port_priority": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 7,
                      "description": "VLAN priority for PC Port.\n"
                    },
                    "interface": {
                      "type": "string",
                      "enum": [
                        "WEB_DOMAIN",
                        "PUBLIC_IPV4",
                        "PUBLIC_IPV6",
                        "PRIVATE_IPV4",
                        "PRIVATE_IPV6",
                        "SBC_DOMAIN"
                      ],
                      "description": "The interface type for QR code or auto provisioning.   \nCan be neither:  \n- `WEB_DOMAIN`:\n- `PUBLIC_IPV4`:\n- `PUBLIC_IPV6`:\n- `PRIVATE_IPV4`:\n- `PRIVATE_IPV6`:\n- `SBC_DOMAIN`:\n"
                    },
                    "preferred_transport": {
                      "type": "string",
                      "enum": [
                        "UDP",
                        "TCP",
                        "TLS"
                      ],
                      "description": "The transport protocol:  \nCan be either:  \n- `UDP`:\n- `TCP`:\n- `TLS`:\n"
                    },
                    "serial_number": {
                      "type": "string",
                      "description": "The serial number of phone.\n"
                    },
                    "door_password1": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 8,
                      "description": "The primary door password of phone. Only numeric sequences are allowed.\n"
                    },
                    "door_password2": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 8,
                      "description": "The secondary door password of phone. Only numeric sequences are allowed.\n"
                    },
                    "url": {
                      "type": "string",
                      "description": "Auto provision server URL.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "id": null,
                      "mac": null,
                      "filename": null,
                      "vendor": null,
                      "model": null,
                      "password": null,
                      "language": null,
                      "transfer": null,
                      "timezone": null,
                      "ringtone": null,
                      "queue_ringtone": null,
                      "external_ringtone": null,
                      "date_format": null,
                      "time_format": null,
                      "powerled": null,
                      "backlight": null,
                      "screensaver": null,
                      "rps": null,
                      "https": null,
                      "codecs": null,
                      "enable_lldp": null,
                      "enable_vlan_wan_port": null,
                      "wan_port_id": null,
                      "wan_port_priority": null,
                      "enable_vlan_pc_port": null,
                      "pc_port_id": null,
                      "pc_port_priority": null,
                      "interface": null,
                      "preferred_transport": null,
                      "serial_number": null,
                      "door_password1": null,
                      "door_password2": null,
                      "url": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "updateCurrentUserPhone",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [],
        "summary": "Update a phone of current user",
        "description": "Update phone of current user by it's unique ID.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of phone.\n"
            },
            "description": "The unique ID of the phone."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "password": {
                    "type": "string",
                    "description": "Password for accessing the Web interface of phone.\nThe username remains default because most phone manufacturers do not\nallow modification of the user name. This is supported for some phone model, such as \"Snom 300\".\n"
                  },
                  "language": {
                    "type": "string",
                    "enum": [
                      "ENGLISH",
                      "CHINESE",
                      "DUTCH",
                      "FRENCH",
                      "GERMAN",
                      "GREEK",
                      "ITALIAN",
                      "JAPANESE",
                      "POLISH",
                      "RUSSIAN",
                      "SPANISH",
                      "SWEDISH",
                      "UKRAINIAN",
                      "BULGARIAN"
                    ],
                    "description": "Language for strings displayed on Phone Display LCD.\nSupported languages include ENGLISH, CHINESE, DUTCH, FRENCH, GERMAN,\nGREEK, ITALIAN, JAPANESE, POLISH, RUSSIAN, SPANISH, SWEDISH, UKRAINIAN, and BULGARIAN.\n"
                  },
                  "transfer": {
                    "type": "string",
                    "enum": [
                      "BLIND",
                      "ATTENDED",
                      "NEW_CALL"
                    ],
                    "default": "BLIND",
                    "description": "The transfer method for auto provision.  \nCan be either: \n- `BLIND`: After the IP phone is configured with the BLF of a certain key, during a call on the IP phone, press the key, and the phone will directly initiate a Blind transfer to the configured number.\n- `ATTENDED`: After the IP phone is configured with the BLF of a key, during a call on the IP phone, press the key, and the phone will directly initiate an Attended transfer to the configured number.\n- `NEW_CALL`: After the IP phone is configured with the BLF of a certain key, during a call on the IP phone, press the key, and the phone will initiate a new call to the configured number.\n"
                  },
                  "timezone": {
                    "type": "string",
                    "description": "The timezone of phone.\n"
                  },
                  "ringtone": {
                    "type": "string",
                    "description": "The ringtone of phone.\n"
                  },
                  "queue_ringtone": {
                    "type": "string",
                    "description": "The queue ringtone of phone for queue calls or ring group calls.\n"
                  },
                  "external_ringtone": {
                    "type": "string",
                    "description": "The ringtone of phone for external calls.\n"
                  },
                  "date_format": {
                    "type": "string",
                    "description": "The date format of phone.\n"
                  },
                  "time_format": {
                    "type": "string",
                    "description": "The time format of phone.\n"
                  },
                  "powerled": {
                    "type": "string",
                    "description": "The power led of phone.\n"
                  },
                  "backlight": {
                    "type": "string",
                    "description": "The backlight of phone.\n"
                  },
                  "screensaver": {
                    "type": "string",
                    "description": "The screensaver of phone.\n"
                  },
                  "rps": {
                    "type": "boolean",
                    "description": "Send to RPS or not.\n"
                  },
                  "https": {
                    "type": "boolean",
                    "description": "Whether to use https\n"
                  },
                  "codecs": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "description": "The list of currently enabled codec formats.\n"
                  },
                  "enable_lldp": {
                    "type": "boolean",
                    "default": false,
                    "description": "Enable or disable Link Layer Discovery Protocol."
                  },
                  "enable_vlan_wan_port": {
                    "type": "boolean",
                    "default": false,
                    "description": "Enable or disable VLAN for WAN Port.\n"
                  },
                  "wan_port_id": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 4094,
                    "description": "VLAN ID for WAN PORT.\n"
                  },
                  "wan_port_priority": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 7,
                    "description": "VLAN priority for WAN Port.\n"
                  },
                  "enable_vlan_pc_port": {
                    "type": "boolean",
                    "default": false,
                    "description": "Enable or disable VLAN for PC Port.\n"
                  },
                  "pc_port_id": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 4094,
                    "description": "VLAN ID for PC PORT.\n"
                  },
                  "pc_port_priority": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 7,
                    "description": "VLAN priority for PC Port.\n"
                  },
                  "interface": {
                    "type": "string",
                    "enum": [
                      "WEB_DOMAIN",
                      "PUBLIC_IPV4",
                      "PUBLIC_IPV6",
                      "PRIVATE_IPV4",
                      "PRIVATE_IPV6",
                      "SBC_DOMAIN"
                    ],
                    "description": "The interface type for QR code or auto provisioning.   \nCan be neither:  \n- `WEB_DOMAIN`:\n- `PUBLIC_IPV4`:\n- `PUBLIC_IPV6`:\n- `PRIVATE_IPV4`:\n- `PRIVATE_IPV6`:\n- `SBC_DOMAIN`:\n"
                  },
                  "preferred_transport": {
                    "type": "string",
                    "enum": [
                      "UDP",
                      "TCP",
                      "TLS"
                    ],
                    "description": "The transport protocol:  \nCan be either:  \n- `UDP`:\n- `TCP`:\n- `TLS`:\n"
                  },
                  "serial_number": {
                    "type": "string",
                    "description": "The serial number of phone.\n"
                  },
                  "door_password1": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 8,
                    "description": "The primary door password of phone. Only numeric sequences are allowed.\n"
                  },
                  "door_password2": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 8,
                    "description": "The secondary door password of phone. Only numeric sequences are allowed.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "password": null,
                    "language": null,
                    "transfer": null,
                    "timezone": null,
                    "ringtone": null,
                    "queue_ringtone": null,
                    "external_ringtone": null,
                    "date_format": null,
                    "time_format": null,
                    "powerled": null,
                    "backlight": null,
                    "screensaver": null,
                    "rps": null,
                    "https": null,
                    "codecs": null,
                    "enable_lldp": null,
                    "enable_vlan_wan_port": null,
                    "wan_port_id": null,
                    "wan_port_priority": null,
                    "enable_vlan_pc_port": null,
                    "pc_port_id": null,
                    "pc_port_priority": null,
                    "interface": null,
                    "preferred_transport": null,
                    "serial_number": null,
                    "door_password1": null,
                    "door_password2": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/user/phones/{id}/destroy": {
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "deleteCurrentUserPhone",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [],
        "summary": "Remove a phone of current user",
        "description": "Remove a phone profile from current user.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of phone.\n"
            },
            "description": "The unique ID of the phone."
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/user/cdrs": {
      "get": {
        "tags": [
          "User"
        ],
        "operationId": "listUserCDRs",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [],
        "summary": "List user call detail records",
        "description": "Retrieve a collection of user call detail records.\n",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "count": {
                      "type": "integer",
                      "format": "int64",
                      "minimum": 0,
                      "example": 100,
                      "description": "Total number of resource.\n"
                    },
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "description": "The unique ID of CDR.\n"
                          },
                          "caller": {
                            "type": "string",
                            "maxLength": 256,
                            "description": "The caller number of the call.\n"
                          },
                          "caller_domain": {
                            "type": "string",
                            "maxLength": 1024,
                            "description": "The caller domain of the call.\n"
                          },
                          "caller_display_name": {
                            "type": "string",
                            "maxLength": 1024,
                            "description": "The caller display name of the call.\n"
                          },
                          "callee": {
                            "type": "string",
                            "maxLength": 256,
                            "description": "The callee number of the call.\n"
                          },
                          "callee_domain": {
                            "type": "string",
                            "maxLength": 1024,
                            "description": "The callee domain of the call.\n"
                          },
                          "callee_display_name": {
                            "type": "string",
                            "maxLength": 1024,
                            "description": "The callee display name of the call.\n"
                          },
                          "started_at": {
                            "allOf": [
                              {
                                "type": "string",
                                "format": "date_time",
                                "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                                "example": "2017-07-21T17:32:28Z"
                              }
                            ],
                            "description": "The start time of the call.\n"
                          },
                          "rang_at": {
                            "allOf": [
                              {
                                "type": "string",
                                "format": "date_time",
                                "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                                "example": "2017-07-21T17:32:28Z"
                              }
                            ],
                            "description": "The ringing time of the call.\n"
                          },
                          "answered_at": {
                            "allOf": [
                              {
                                "type": "string",
                                "format": "date_time",
                                "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                                "example": "2017-07-21T17:32:28Z"
                              }
                            ],
                            "description": "The answer time of the call.\n"
                          },
                          "ended_at": {
                            "allOf": [
                              {
                                "type": "string",
                                "format": "date_time",
                                "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                                "example": "2017-07-21T17:32:28Z"
                              }
                            ],
                            "description": "The end time of the call.\n"
                          },
                          "call_id": {
                            "type": "string",
                            "description": "The call ID of CDR.\n"
                          },
                          "direction": {
                            "type": "string",
                            "enum": [
                              "INBOUND_CALL",
                              "OUTBOUND_CALL",
                              "EXTENSION_CALL",
                              "INBOUND_OUTBOUND_CALL"
                            ],
                            "description": "The direction of CDR:\n- `INBOUND_CALL`:\n- `OUTBOUND_CALL`:\n- `EXTENSION_CALL`:\n- `INBOUND_OUTBOUND_CALL`:\n"
                          },
                          "end_reason": {
                            "type": "string",
                            "enum": [
                              "CALLER_DISCONNECTED",
                              "CALLEE_DISCONNECTED",
                              "BLIND_TRANSFER_COMPLETED",
                              "CONSULT_TRANSFER_COMPLETED",
                              "REPLACED",
                              "REFERRED",
                              "REDIRECTED",
                              "CANCELLED"
                            ],
                            "description": "The ended reason of CDR:  \nCan be either:  \n- `CALLER_DISCONNECTED`:\n- `CALLEE_DISCONNECTED`:\n- `BLIND_TRANSFER_COMPLETED`:\n- `CONSULT_TRANSFER_COMPLETED`:\n- `REPLACED`:\n- `REFERRED`:\n- `REDIRECTED`:\n- `CANCELLED`:\n"
                          },
                          "reroute_reason": {
                            "type": "string",
                            "enum": [
                              "TRANSFER",
                              "OVERFLOW",
                              "CAPACITY_BLOCKED",
                              "QUEUE_EXIT",
                              "QUEUE_ABANDONED",
                              "REDIRECT",
                              "FORWARDING_UNCONDITIONAL",
                              "FORWARDING_BUSY",
                              "FORWARDING_NO_ANSWER",
                              "FORWARDING_NOT_REACHABLE",
                              "FORWARDING_EXCEPTION",
                              "FORWARDING_LUNCH",
                              "FORWARDING_BUSINESS_TRIP",
                              "FORWARDING_AWAY",
                              "FORWARDING_NIGHT_MODE",
                              "DISA"
                            ],
                            "description": "The reroute reason of CDR:  \nCan be either:  \n- `TRANSFER`:\n- `OVERFLOW`:\n- `CAPACITY_BLOCKED`:\n- `QUEUE_EXIT`:\n- `QUEUE_ABANDONED`:\n- `REDIRECT`:\n- `FORWARDING_UNCONDITIONAL`:\n- `FORWARDING_BUSY`:\n- `FORWARDING_NO_ANSWER`:\n- `FORWARDING_NOT_REACHABLE`:\n- `FORWARDING_EXCEPTION`:\n- `FORWARDING_LUNCH`:\n- `FORWARDING_BUSINESS_TRIP`:\n- `FORWARDING_AWAY`:\n- `FORWARDING_NIGHT_MODE`:\n- `DISA`:\n"
                          },
                          "status_code": {
                            "type": "integer",
                            "description": "The status code of CDR.\n"
                          },
                          "destination": {
                            "type": "string",
                            "description": "The destination number of CDR.\n"
                          },
                          "outbound_caller_id": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 64,
                            "description": "Outbound caller id.\n"
                          },
                          "did_cid": {
                            "type": "string",
                            "description": "The DID CID of CDR.\n"
                          },
                          "trunk": {
                            "type": "string",
                            "description": "The trunk name of CDR.\n"
                          },
                          "duration": {
                            "type": "integer",
                            "format": "int32",
                            "description": "The total talk time for a session (in seconds).\n"
                          },
                          "service_number": {
                            "type": "string",
                            "description": "The service number of the call.\n"
                          },
                          "user_data": {
                            "type": "string",
                            "description": "The additional custom user data of CDR.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": null,
                          "caller": null,
                          "caller_domain": null,
                          "caller_display_name": null,
                          "callee": null,
                          "callee_domain": null,
                          "callee_display_name": null,
                          "started_at": null,
                          "rang_at": null,
                          "answered_at": null,
                          "ended_at": null,
                          "call_id": null,
                          "direction": null,
                          "end_reason": null,
                          "reroute_reason": null,
                          "status_code": null,
                          "destination": null,
                          "outbound_caller_id": null,
                          "did_cid": null,
                          "trunk": null,
                          "duration": null,
                          "service_number": null,
                          "user_data": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/user/cdrs/{id}": {
      "get": {
        "tags": [
          "User"
        ],
        "operationId": "retrieveUserCDR",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [],
        "summary": "Retrieve user call detail record",
        "description": "Retrieve user call detail record.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of CDR.\n"
            },
            "description": "The unique ID of the CDR."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "object",
                      "properties": {
                        "caller": {
                          "type": "string",
                          "maxLength": 256,
                          "description": "The caller number of the call.\n"
                        },
                        "caller_domain": {
                          "type": "string",
                          "maxLength": 1024,
                          "description": "The caller domain of the call.\n"
                        },
                        "caller_display_name": {
                          "type": "string",
                          "maxLength": 1024,
                          "description": "The caller display name of the call.\n"
                        },
                        "callee": {
                          "type": "string",
                          "maxLength": 256,
                          "description": "The callee number of the call.\n"
                        },
                        "callee_domain": {
                          "type": "string",
                          "maxLength": 1024,
                          "description": "The callee domain of the call.\n"
                        },
                        "callee_display_name": {
                          "type": "string",
                          "maxLength": 1024,
                          "description": "The callee display name of the call.\n"
                        },
                        "started_at": {
                          "allOf": [
                            {
                              "type": "string",
                              "format": "date_time",
                              "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                              "example": "2017-07-21T17:32:28Z"
                            }
                          ],
                          "description": "The start time of the call.\n"
                        },
                        "rang_at": {
                          "allOf": [
                            {
                              "type": "string",
                              "format": "date_time",
                              "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                              "example": "2017-07-21T17:32:28Z"
                            }
                          ],
                          "description": "The ringing time of the call.\n"
                        },
                        "answered_at": {
                          "allOf": [
                            {
                              "type": "string",
                              "format": "date_time",
                              "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                              "example": "2017-07-21T17:32:28Z"
                            }
                          ],
                          "description": "The answer time of the call.\n"
                        },
                        "ended_at": {
                          "allOf": [
                            {
                              "type": "string",
                              "format": "date_time",
                              "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                              "example": "2017-07-21T17:32:28Z"
                            }
                          ],
                          "description": "The end time of the call.\n"
                        },
                        "call_id": {
                          "type": "string",
                          "description": "The call ID of CDR.\n"
                        },
                        "direction": {
                          "type": "string",
                          "enum": [
                            "INBOUND_CALL",
                            "OUTBOUND_CALL",
                            "EXTENSION_CALL",
                            "INBOUND_OUTBOUND_CALL"
                          ],
                          "description": "The direction of CDR:\n- `INBOUND_CALL`:\n- `OUTBOUND_CALL`:\n- `EXTENSION_CALL`:\n- `INBOUND_OUTBOUND_CALL`:\n"
                        },
                        "end_reason": {
                          "type": "string",
                          "enum": [
                            "CALLER_DISCONNECTED",
                            "CALLEE_DISCONNECTED",
                            "BLIND_TRANSFER_COMPLETED",
                            "CONSULT_TRANSFER_COMPLETED",
                            "REPLACED",
                            "REFERRED",
                            "REDIRECTED",
                            "CANCELLED"
                          ],
                          "description": "The ended reason of CDR:  \nCan be either:  \n- `CALLER_DISCONNECTED`:\n- `CALLEE_DISCONNECTED`:\n- `BLIND_TRANSFER_COMPLETED`:\n- `CONSULT_TRANSFER_COMPLETED`:\n- `REPLACED`:\n- `REFERRED`:\n- `REDIRECTED`:\n- `CANCELLED`:\n"
                        },
                        "reroute_reason": {
                          "type": "string",
                          "enum": [
                            "TRANSFER",
                            "OVERFLOW",
                            "CAPACITY_BLOCKED",
                            "QUEUE_EXIT",
                            "QUEUE_ABANDONED",
                            "REDIRECT",
                            "FORWARDING_UNCONDITIONAL",
                            "FORWARDING_BUSY",
                            "FORWARDING_NO_ANSWER",
                            "FORWARDING_NOT_REACHABLE",
                            "FORWARDING_EXCEPTION",
                            "FORWARDING_LUNCH",
                            "FORWARDING_BUSINESS_TRIP",
                            "FORWARDING_AWAY",
                            "FORWARDING_NIGHT_MODE",
                            "DISA"
                          ],
                          "description": "The reroute reason of CDR:  \nCan be either:  \n- `TRANSFER`:\n- `OVERFLOW`:\n- `CAPACITY_BLOCKED`:\n- `QUEUE_EXIT`:\n- `QUEUE_ABANDONED`:\n- `REDIRECT`:\n- `FORWARDING_UNCONDITIONAL`:\n- `FORWARDING_BUSY`:\n- `FORWARDING_NO_ANSWER`:\n- `FORWARDING_NOT_REACHABLE`:\n- `FORWARDING_EXCEPTION`:\n- `FORWARDING_LUNCH`:\n- `FORWARDING_BUSINESS_TRIP`:\n- `FORWARDING_AWAY`:\n- `FORWARDING_NIGHT_MODE`:\n- `DISA`:\n"
                        },
                        "status_code": {
                          "type": "integer",
                          "description": "The status code of CDR.\n"
                        },
                        "destination": {
                          "type": "string",
                          "description": "The destination number of CDR.\n"
                        },
                        "outbound_caller_id": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 64,
                          "description": "Outbound caller id.\n"
                        },
                        "did_cid": {
                          "type": "string",
                          "description": "The DID CID of CDR.\n"
                        },
                        "trunk": {
                          "type": "string",
                          "description": "The trunk name of CDR.\n"
                        },
                        "cost": {
                          "type": "number",
                          "format": "double",
                          "description": "The cost for this call.\n"
                        },
                        "billed_account": {
                          "type": "string",
                          "description": "The account name for billing.\n"
                        },
                        "service_number": {
                          "type": "string",
                          "description": "The service number of the call.\n"
                        },
                        "user_data": {
                          "type": "string",
                          "description": "The additional custom user data of CDR.\n"
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "items": [
                        {
                          "caller": null,
                          "caller_domain": null,
                          "caller_display_name": null,
                          "callee": null,
                          "callee_domain": null,
                          "callee_display_name": null,
                          "started_at": null,
                          "rang_at": null,
                          "answered_at": null,
                          "ended_at": null,
                          "call_id": null,
                          "direction": null,
                          "end_reason": null,
                          "reroute_reason": null,
                          "status_code": null,
                          "destination": null,
                          "outbound_caller_id": null,
                          "did_cid": null,
                          "trunk": null,
                          "cost": null,
                          "billed_account": null,
                          "service_number": null,
                          "user_data": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/user/cdrs/sync_tokens": {
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "createPersonalCdrSyncToken",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [],
        "summary": "Create new personal cdr sync token",
        "parameters": [
          {
            "name": "date_from",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date_time",
              "description": "The start time sync token in RFC 3339 format, for example, ```2017-07-21T17:32:28Z```.\nThe RFC 3339 format is defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6)\n",
              "example": "2017-07-21T17:32:28Z"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "token": {
                      "type": "string",
                      "description": "The sync token.   \nClients should treat the sync token as an opaque string and should never try to assemble it.   \nThis document imposes no constraints on the format and clients should never impose any.\n",
                      "example": "RQ2dX9ZC7VuWlVpXXvad2dL3lyhjnN-7eOw95wXymoo."
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "token": "xxxxxxxxxxxxx"
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/user/cdrs/sync_tokens/{token}/diff": {
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "listPersonalCdrChanges",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [],
        "summary": "List personal cdr changes",
        "description": "List personal cdr changes.",
        "parameters": [
          {
            "name": "token",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The sync token.   \nClients should treat the sync token as an opaque string and should never try to assemble it.   \nThis document imposes no constraints on the format and clients should never impose any.\n",
              "example": "RQ2dX9ZC7VuWlVpXXvad2dL3lyhjnN-7eOw95wXymoo."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "token": {
                      "type": "string",
                      "description": "The sync token.   \nClients should treat the sync token as an opaque string and should never try to assemble it.   \nThis document imposes no constraints on the format and clients should never impose any.\n",
                      "example": "RQ2dX9ZC7VuWlVpXXvad2dL3lyhjnN-7eOw95wXymoo."
                    },
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "description": "The unique ID of CDR.\n"
                          },
                          "change_type": {
                            "type": "string",
                            "enum": [
                              "CREATED",
                              "UPDATED",
                              "DELETED"
                            ],
                            "example": "CREATED",
                            "description": "The resource change types can be either:  \n- `CREATED`: The resource has been created.   \n- `UPDATED`: The resource has been updated.   \n- `DELETED`: The resource has been deleted.\n"
                          },
                          "items": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "caller": {
                                  "type": "string",
                                  "maxLength": 256,
                                  "description": "The caller number of the call.\n"
                                },
                                "callee": {
                                  "type": "string",
                                  "maxLength": 256,
                                  "description": "The callee number of the call.\n"
                                },
                                "started_at": {
                                  "allOf": [
                                    {
                                      "type": "string",
                                      "format": "date_time",
                                      "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                                      "example": "2017-07-21T17:32:28Z"
                                    }
                                  ],
                                  "description": "The start time of the call.\n"
                                },
                                "answered_at": {
                                  "allOf": [
                                    {
                                      "type": "string",
                                      "format": "date_time",
                                      "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                                      "example": "2017-07-21T17:32:28Z"
                                    }
                                  ],
                                  "description": "The answer time of the call.\n"
                                },
                                "ended_at": {
                                  "allOf": [
                                    {
                                      "type": "string",
                                      "format": "date_time",
                                      "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                                      "example": "2017-07-21T17:32:28Z"
                                    }
                                  ],
                                  "description": "The end time of the call.\n"
                                },
                                "outbound_caller_id": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 64,
                                  "description": "Outbound caller id.\n"
                                },
                                "did_cid": {
                                  "type": "string",
                                  "description": "The DID CID of CDR.\n"
                                },
                                "trunk": {
                                  "type": "string",
                                  "description": "The trunk name of CDR.\n"
                                },
                                "status_code": {
                                  "type": "integer",
                                  "description": "The status code of CDR.\n"
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "token": "xxxxxxxxxxxxxxxx",
                      "items": [
                        {
                          "id": {
                            "change_type": {
                              "items": [
                                {
                                  "caller": null,
                                  "callee": null,
                                  "started_at": null,
                                  "answered_at": null,
                                  "ended_at": null,
                                  "outbound_caller_id": null,
                                  "did_cid": null,
                                  "trunk": null,
                                  "status_code": null
                                }
                              ]
                            }
                          }
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/user/external_messages": {
      "get": {
        "tags": [
          "User"
        ],
        "operationId": "listUserExternalMessages",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [],
        "summary": "List user external messages",
        "description": "Retrieve a collection of user external messages.\n",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "count": {
                      "type": "integer",
                      "format": "int64",
                      "minimum": 0,
                      "example": 100,
                      "description": "Total number of resource.\n"
                    },
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "description": "The unique ID of external message.\n"
                          },
                          "config_id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "description": "The unique ID of external message.\n"
                          },
                          "sender": {
                            "type": "string",
                            "description": "The sender number of the message.\n"
                          },
                          "sender_name": {
                            "type": "string",
                            "description": "The sender name of the message.\n"
                          },
                          "receiver": {
                            "type": "string",
                            "description": "The receiver number of the message.\n"
                          },
                          "receiver_name": {
                            "type": "string",
                            "description": "The receiver name of the message.\n"
                          },
                          "channel_name": {
                            "type": "string",
                            "description": "The channel name of the message.\n"
                          },
                          "channel_number": {
                            "type": "string",
                            "description": "The channel number of the message.\n"
                          },
                          "brand": {
                            "type": "string",
                            "description": "The brand of the message.\n"
                          },
                          "did": {
                            "type": "string",
                            "description": "The did of the message.\n"
                          },
                          "msg_type": {
                            "type": "string",
                            "enum": [
                              "UNKNOWN",
                              "SMS",
                              "WHATSAPP"
                            ],
                            "description": "The type of message:  \nCan be either:  \n- `UNKNOWN`:   \n- `SMS`:   \n- `WHATSAPP`:\n"
                          },
                          "direction": {
                            "type": "string",
                            "enum": [
                              "IN",
                              "OUT"
                            ],
                            "description": "The direction of message:   \n- `IN`:   \n- `OUT`:\n"
                          },
                          "content": {
                            "type": "string",
                            "description": "The content of the message.\n"
                          },
                          "reason": {
                            "type": "string",
                            "description": "The reason of the message.\n"
                          },
                          "delivery": {
                            "type": "string",
                            "enum": [
                              "ERR",
                              "SENT",
                              "RECV",
                              "DELIVERED"
                            ],
                            "description": "The delivery status of message:  \nCan be either:  \n- `ERR`:\n- `SENT`:\n- `RECV`:\n- `DELIVERED`:   \n"
                          },
                          "provider_msg_id": {
                            "type": "string",
                            "description": "The provider message ID of the message.\n"
                          },
                          "created_at": {
                            "allOf": [
                              {
                                "type": "string",
                                "format": "date_time",
                                "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                                "example": "2017-07-21T17:32:28Z"
                              }
                            ],
                            "description": "The creation time of the message.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": null,
                          "config_id": null,
                          "sender": null,
                          "sender_name": null,
                          "receiver": null,
                          "receiver_name": null,
                          "channel_name": null,
                          "channel_number": null,
                          "brand": null,
                          "did": null,
                          "msg_type": null,
                          "direction": null,
                          "content": null,
                          "reason": null,
                          "delivery": null,
                          "provider_msg_id": null,
                          "created_at": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/user/external_messages/{id}": {
      "get": {
        "tags": [
          "User"
        ],
        "operationId": "retrieveUserExternalMessage",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [],
        "summary": "Retrieve user external message",
        "description": "Retrieve user external message.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of external message.\n"
            },
            "description": "The unique ID of the external message."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of external message.\n"
                    },
                    "config_id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of external message.\n"
                    },
                    "sender": {
                      "type": "string",
                      "description": "The sender number of the message.\n"
                    },
                    "sender_name": {
                      "type": "string",
                      "description": "The sender name of the message.\n"
                    },
                    "receiver": {
                      "type": "string",
                      "description": "The receiver number of the message.\n"
                    },
                    "receiver_name": {
                      "type": "string",
                      "description": "The receiver name of the message.\n"
                    },
                    "channel_name": {
                      "type": "string",
                      "description": "The channel name of the message.\n"
                    },
                    "channel_number": {
                      "type": "string",
                      "description": "The channel number of the message.\n"
                    },
                    "brand": {
                      "type": "string",
                      "description": "The brand of the message.\n"
                    },
                    "did": {
                      "type": "string",
                      "description": "The did of the message.\n"
                    },
                    "msg_type": {
                      "type": "string",
                      "enum": [
                        "UNKNOWN",
                        "SMS",
                        "WHATSAPP"
                      ],
                      "description": "The type of message:  \nCan be either:  \n- `UNKNOWN`:   \n- `SMS`:   \n- `WHATSAPP`:\n"
                    },
                    "direction": {
                      "type": "string",
                      "enum": [
                        "IN",
                        "OUT"
                      ],
                      "description": "The direction of message:   \n- `IN`:   \n- `OUT`:\n"
                    },
                    "content": {
                      "type": "string",
                      "description": "The content of the message.\n"
                    },
                    "reason": {
                      "type": "string",
                      "description": "The reason of the message.\n"
                    },
                    "delivery": {
                      "type": "string",
                      "enum": [
                        "ERR",
                        "SENT",
                        "RECV",
                        "DELIVERED"
                      ],
                      "description": "The delivery status of message:  \nCan be either:  \n- `ERR`:\n- `SENT`:\n- `RECV`:\n- `DELIVERED`:   \n"
                    },
                    "provider_msg_id": {
                      "type": "string",
                      "description": "The provider message ID of the message.\n"
                    },
                    "created_at": {
                      "allOf": [
                        {
                          "type": "string",
                          "format": "date_time",
                          "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                          "example": "2017-07-21T17:32:28Z"
                        }
                      ],
                      "description": "The creation time of the message.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "id": null,
                      "config_id": null,
                      "sender": null,
                      "sender_name": null,
                      "receiver": null,
                      "receiver_name": null,
                      "channel_name": null,
                      "channel_number": null,
                      "brand": null,
                      "did": null,
                      "msg_type": null,
                      "direction": null,
                      "content": null,
                      "reason": null,
                      "delivery": null,
                      "provider_msg_id": null,
                      "created_at": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/user/recordings": {
      "get": {
        "tags": [
          "User"
        ],
        "operationId": "listUserRecordings",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [
          "GeneralCallRecording.ViewOnly"
        ],
        "summary": "List user call recordings",
        "description": "Retrieve a collection of user call recordings.\n",
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Use the `filter` query parameter to retrieve just a subset of a collection.\n"
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "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",
            "required": false,
            "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",
            "required": false,
            "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",
            "required": false,
            "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,
                      "example": 100,
                      "description": "Total number of resource.\n"
                    },
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "readOnly": true,
                            "description": "The unique ID of call recording.\n"
                          },
                          "caller": {
                            "type": "string",
                            "description": "Caller who started the call.\n"
                          },
                          "callee": {
                            "type": "string",
                            "description": "Callee who answered the call.\n"
                          },
                          "started_at": {
                            "allOf": [
                              {
                                "type": "string",
                                "format": "date_time",
                                "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                                "example": "2017-07-21T17:32:28Z"
                              }
                            ],
                            "description": "Time on which the call is answered.\n"
                          },
                          "ended_at": {
                            "allOf": [
                              {
                                "type": "string",
                                "format": "date_time",
                                "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                                "example": "2017-07-21T17:32:28Z"
                              }
                            ],
                            "description": "Time on which the call is ended.\n"
                          },
                          "status": {
                            "type": "integer",
                            "description": "AI transcription status.\n- 0 = NotTranscribed\n- 1 = TranscriptionNotStarted\n- 2 = TranscriptionQuotaLimited\n- 3 = TranscriptionRunning\n- 4 = TranscriptionFailed\n- 5 = TranscriptionSucceeded\n- 6 = AnalyzeRunning\n- 7 = AnalyzeFailed\n- 8 = AnalyzeSucceeded\n- 9 = TranscriptionUploadFailed\n- 10 = TranscriptionOtherFailed\n",
                            "enum": [
                              0,
                              1,
                              2,
                              3,
                              4,
                              5,
                              6,
                              7,
                              8,
                              9,
                              10
                            ]
                          },
                          "status_description": {
                            "type": "string",
                            "description": "AI transcription status description.\n"
                          },
                          "sentiment": {
                            "type": "integer",
                            "description": "AI transcription sentiment.\n- 1 = SentimentPositive\n- 2 = SentimentNeutral\n- 3 = SentimentNegative\n",
                            "enum": [
                              1,
                              2,
                              3
                            ]
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": null,
                          "caller": null,
                          "callee": null,
                          "started_at": null,
                          "ended_at": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/user/recordings/{id}": {
      "get": {
        "tags": [
          "User"
        ],
        "operationId": "getUserRecording",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [
          "GeneralCallRecording.ViewOnly"
        ],
        "summary": "Retrieve an user call recording",
        "description": "Get details of an user call recording.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "readOnly": true,
              "description": "The unique ID of call recording.\n"
            },
            "description": "The unique ID of the call recording."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "readOnly": true,
                            "description": "The unique ID of call recording.\n"
                          },
                          "caller": {
                            "type": "string",
                            "description": "Caller who started the call.\n"
                          },
                          "callee": {
                            "type": "string",
                            "description": "Callee who answered the call.\n"
                          },
                          "started_at": {
                            "allOf": [
                              {
                                "type": "string",
                                "format": "date_time",
                                "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                                "example": "2017-07-21T17:32:28Z"
                              }
                            ],
                            "description": "Time on which the call is answered.\n"
                          },
                          "ended_at": {
                            "allOf": [
                              {
                                "type": "string",
                                "format": "date_time",
                                "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                                "example": "2017-07-21T17:32:28Z"
                              }
                            ],
                            "description": "Time on which the call is ended.\n"
                          },
                          "duration": {
                            "type": "integer",
                            "format": "int32",
                            "description": "The playback time (in seconds).\n"
                          },
                          "file_name": {
                            "type": "string",
                            "description": "The name of the file.\n"
                          },
                          "file_size": {
                            "type": "integer",
                            "format": "int64",
                            "minimum": 0,
                            "example": 0,
                            "description": "The file size in bytes.\n"
                          },
                          "file_url": {
                            "type": "string",
                            "readOnly": true,
                            "example": "/api/blobs/WexWdABcd5D4PDgzTKV3gAAAEu00WcK",
                            "description": "The relative path to file url for file downloading.\n"
                          },
                          "status": {
                            "type": "integer",
                            "description": "AI transcription status.\n- 0 = NotTranscribed\n- 1 = TranscriptionNotStarted\n- 2 = TranscriptionQuotaLimited\n- 3 = TranscriptionRunning\n- 4 = TranscriptionFailed\n- 5 = TranscriptionSucceeded\n- 6 = AnalyzeRunning\n- 7 = AnalyzeFailed\n- 8 = AnalyzeSucceeded\n- 9 = TranscriptionUploadFailed\n- 10 = TranscriptionOtherFailed\n",
                            "enum": [
                              0,
                              1,
                              2,
                              3,
                              4,
                              5,
                              6,
                              7,
                              8,
                              9,
                              10
                            ]
                          },
                          "status_description": {
                            "type": "string",
                            "description": "AI transcription status description.\n"
                          },
                          "sentiment": {
                            "type": "integer",
                            "description": "AI transcription sentiment.\n- 1 = SentimentPositive\n- 2 = SentimentNeutral\n- 3 = SentimentNegative\n",
                            "enum": [
                              1,
                              2,
                              3
                            ]
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "Example list of recording items",
                    "description": "This example shows two recording records with caller, callee, file details, and transcription status information.",
                    "value": {
                      "items": [
                        {
                          "id": "1017775853607587840",
                          "caller": "0001",
                          "callee": "777",
                          "started_at": "2025-09-09T12:37:56.263Z",
                          "ended_at": "2025-09-09T12:38:17.573Z",
                          "duration": 21,
                          "file_name": "1017756506826735616_1017775853607587840_0001_777_09092025_203756.wav",
                          "file_size": 341196,
                          "file_url": "/api/blobs/iMXGGAns8sMlxoPcLMtmxwAAQD3X3R8O",
                          "status": "TRANSCRIPTION_RUNNING",
                          "status_description": "good goodgood",
                          "sentiment": "SENTIMENT_NEUTRAL"
                        },
                        {
                          "id": "1017775853607587841",
                          "caller": "0001",
                          "callee": "777",
                          "started_at": "2025-09-08T12:37:56.263Z",
                          "ended_at": "2025-09-08T12:38:17.573Z",
                          "duration": 21,
                          "file_name": "1017756506826735616_1017775853607587840_0001_777_09092025_203756.wav",
                          "file_size": 3411886,
                          "file_url": "/api/blobs/iMXGGAns8sMlxoPcLMtmxwAAQD3X3R8O",
                          "status": "TRANSCRIPTION_RUNNING",
                          "status_description": "good good good",
                          "sentiment": "SENTIMENT_NEUTRAL"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/user/recordings/{id}/destroy": {
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "deleteUserRecording",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [
          "GeneralCallRecording.FullAccess"
        ],
        "summary": "Delete user call recording",
        "description": "Delete an user call recording\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "readOnly": true,
              "description": "The unique ID of call recording.\n"
            },
            "description": "The unique ID of the recording."
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/user/transcription": {
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "transcriptUserRecordings",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [
          "GeneralCallRecording.ViewOnly"
        ],
        "summary": "Create AI Transcription",
        "description": "Creates an AI transcription record.  \nThe source is identified by the `res_id` and `item_type` provided in the request body.  \nThis endpoint can be called multiple times. If a previous transcription attempt has failed (status indicates failure),  \ncalling this endpoint again will retry the transcription process.  \nThe response may contain multiple IDs because a single call can include multiple recording files.\n",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "res_id": {
                    "type": "string",
                    "description": "ID from a `/voicemails` or `/recordings` item used to create the transcription."
                  },
                  "item_type": {
                    "type": "string",
                    "description": "Type of the source item. Allowed values are `CALL_RECORD` or `VOICE_MAIL`.",
                    "enum": [
                      "CALL_RECORD",
                      "VOICE_MAIL"
                    ]
                  }
                },
                "required": [
                  "res_id",
                  "item_type"
                ]
              },
              "example": {
                "res_id": "1017757975109963776",
                "item_type": "CALL_RECORD_ITEM"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successfully created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ids": {
                      "type": "array",
                      "items": {
                        "type": "integer"
                      },
                      "description": "List of created transcription IDs."
                    }
                  }
                },
                "example": {
                  "ids": [
                    "1017758181150949376"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid parameters"
          },
          "500": {
            "description": "Internal server error"
          }
        }
      }
    },
    "/user/transcription/{id}": {
      "get": {
        "tags": [
          "User"
        ],
        "operationId": "getUserTranscriptions",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [
          "GeneralCallRecording.ViewOnly"
        ],
        "summary": "Get AI Transcription Details",
        "description": "Retrieve all AI transcription records associated with a specific resource ID (`id`).  \nThe `id` comes from the `id` field of an item in either the `/recordings` or `/voicemails` list.  \nA single resource may have multiple transcription or analysis results, so the response is returned as an array of transcription detail objects.  \nOnly records belonging to the current user are included in the response.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "The resource ID from `/recordings` or `/voicemails` to retrieve transcription records for.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Transcription details retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string",
                        "readOnly": true,
                        "description": "The unique ID of the transcription record."
                      },
                      "tenant_id": {
                        "type": "string",
                        "description": "The tenant ID associated with the transcription record."
                      },
                      "item_id": {
                        "type": "string",
                        "description": "The item ID of the original recording."
                      },
                      "file_id": {
                        "type": "string",
                        "description": "The file ID associated with the transcription."
                      },
                      "type": {
                        "type": "string",
                        "description": "Type of the source item. Allowed values are `CALL_RECORD` or `VOICE_MAIL`.",
                        "enum": [
                          "CALL_RECORD",
                          "VOICE_MAIL"
                        ]
                      },
                      "transcription_id": {
                        "type": "string",
                        "description": "The unique ID of the transcription."
                      },
                      "analyze_id": {
                        "type": "string",
                        "description": "The unique ID of the analysis result."
                      },
                      "status": {
                        "type": "string",
                        "description": "AI transcription status.\n- TranscriptionNotStarted\n- TranscriptionQuotaLimited\n- TranscriptionRunning\n- TranscriptionFailed\n- TranscriptionSucceeded\n- AnalyzeRunning\n- AnalyzeFailed\n- AnalyzeSucceeded\n- TranscriptionUploadFailed\n- TranscriptionOtherFailed\n",
                        "enum": [
                          "TRANSCRIPTION_NOTSTARTED",
                          "TRANSCRIPTION_QUOTALIMITED",
                          "TRANSCRIPTION_RUNNING",
                          "TRANSCRIPTION_FAILED",
                          "TRANSCRIPTION_SUCCEEDED",
                          "ANALYZE_RUNNING",
                          "ANALYZE_FAILED",
                          "ANALYZE_SUCCEEDED",
                          "TRANSCRIPTION_UPLOAD_FAILED",
                          "TRANSCRIPTION_OTHER_FAILED"
                        ]
                      },
                      "status_description": {
                        "type": "string",
                        "description": "AI transcription status description."
                      },
                      "transcription_display": {
                        "type": "string",
                        "description": "Display version of the AI transcription in JSON format."
                      },
                      "intelligent_summary": {
                        "type": "string",
                        "description": "AI-generated summary of the transcription."
                      },
                      "sentiment": {
                        "type": "string",
                        "description": "AI transcription sentiment.\n- SentimentPositive\n- SentimentNeutral\n- SentimentNegative\n",
                        "enum": [
                          "SENTIMENT_POSITIVE",
                          "SENTIMENT_NEUTRAL",
                          "SENTIMENT_NEGATIVE"
                        ]
                      },
                      "created_at": {
                        "type": "string",
                        "format": "date-time",
                        "description": "Time at which the transcription record was created."
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "value": [
                      {
                        "id": "1015828562055266304",
                        "tenant_id": "1015826085515886592",
                        "item_id": "1015826629533896704",
                        "file_id": "1015826629588418560",
                        "session_id": "1015826576371093504",
                        "type": "CALL_RECORD_ITEM",
                        "transcription_id": "c40f915e-1fd0-4488-9afa-ad82c456449e",
                        "analyze_id": "4968fe37-490f-4e03-b337-562ea5c02e5d",
                        "status": "ANALYZE_SUCCEEDED",
                        "status_description": "",
                        "transcription_display": "{\n  \"transcript\": \"Welcome to the voicemail service. Please enter your password then press #.\",\n  \"audio_segments\": [\n    {\n      \"transcript\": \"Welcome to the voicemail service.\",\n      \"start_time\": 0.52,\n      \"end_time\": 2.44,\n      \"speaker\": \"spk_0\"\n    },\n    {\n      \"transcript\": \"Please enter your password then press #.\",\n      \"start_time\": 3.16,\n      \"end_time\": 5.56,\n      \"speaker\": \"spk_0\"\n    }\n  ]\n}\n",
                        "intelligent_summary": "{\n  \"analyze\": [\n    \"Welcome to the voicemail service.\",\n    \"Please enter your password then press #.\"\n  ]\n}\n",
                        "sentiment": 2,
                        "created_at": "2025-09-04T11:40:02.376779Z",
                        "caller": "0001",
                        "callee": "777",
                        "file_url": "/api/blobs/R1AW1C0XTpzJ5Bdh1jz4mQAAAALw8BgO"
                      }
                    ]
                  }
                }
              }
            }
          },
          "404": {
            "description": "Transcription not found"
          }
        }
      },
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "updateUserTranscription",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [
          "GeneralCallRecording.ViewOnly"
        ],
        "summary": "Update AI Transcription",
        "description": "Update transcription information for a specific transcription record.  \nThe `id` parameter refers to the primary key of the transcription.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "The primary key ID of the transcription record to update.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "transcription_display": {
                    "type": "string",
                    "description": "Transcription display content (JSON string)."
                  },
                  "intelligent_summary": {
                    "type": "string",
                    "description": "Intelligent summary content."
                  },
                  "sentiment": {
                    "type": "string",
                    "description": "AI transcription sentiment.\n- SentimentPositive\n- SentimentNeutral\n- SentimentNegative\n",
                    "enum": [
                      "SENTIMENT_POSITIVE",
                      "SENTIMENT_NEUTRAL",
                      "SENTIMENT_NEGATIVE"
                    ]
                  }
                }
              },
              "examples": {
                "default": {
                  "value": {
                    "transcription_display": "{\n  \"transcript\": \"Thanks for calling. If you know the extension of the person you would like to reach, you may dial it at anytime.\",\n  \"audio_segments\": [\n    {\n      \"transcript\": \"Thanks for calling.\",\n      \"start_time\": 0.04,\n      \"end_time\": 1.04,\n      \"speaker\": \"spk_0\"\n    },\n    {\n      \"transcript\": \"If you know the extension of the person you would like to reach, you may dial it at anytime.\",\n      \"start_time\": 1.24,\n      \"end_time\": 5.48,\n      \"speaker\": \"spk_0\"\n    }\n  ]\n}\n",
                    "intelligent_summary": "AnalyzeText Result : - {\"transcript\":\"Thanks for calling. - If you know the extension of the person you would like to reach, you may dial it at anytime.\", \"audio_segments\":[\n  {\"transcript\":\"Thanks for calling.\",\"start_time\":0.04,\"end_time\":1.04,\"speaker\":\"spk_0\"},\n  {\"transcript\":\"If you know the extension of the person you would like to reach, you may dial it at anytime.\",\"start_time\":1.24,\"end_time\":5.48,\"speaker\":\"spk_0\"}\n]}\n",
                    "sentiment": "SENTIMENT_POSITIVE"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Transcription updated successfully"
          }
        }
      }
    },
    "/user/speed_dial_8": {
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "addSpeedDial8",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [],
        "summary": "Add new speed dial 8",
        "description": "Create new speed dial 8.\n",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "code": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 1,
                    "description": "The speed dial 8 dialing code.   \nAvailable code range from `2` to `9`.\n"
                  },
                  "phone_number": {
                    "type": "string",
                    "description": "The phone number that you want to call.\n"
                  },
                  "description": {
                    "type": "string",
                    "maximum": 1024,
                    "description": "The description of speed dial.\n"
                  }
                },
                "required": [
                  "code",
                  "phone_number"
                ]
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "code": null,
                    "phone_number": null,
                    "description": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of speed dial.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "The ID of created resource",
                    "value": {
                      "id": "xxxxxxxx"
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "get": {
        "tags": [
          "User"
        ],
        "operationId": "listSpeedDial8",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [],
        "summary": "List speed dial 8",
        "description": "List speed dial 8.\n",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "description": "The unique ID of speed dial.\n"
                          },
                          "code": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 1,
                            "description": "The speed dial 8 dialing code.   \nAvailable code range from `2` to `9`.\n"
                          },
                          "phone_number": {
                            "type": "string",
                            "description": "The phone number that you want to call.\n"
                          },
                          "description": {
                            "type": "string",
                            "maximum": 1024,
                            "description": "The description of speed dial.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "items": [
                        {
                          "id": null,
                          "code": null,
                          "phone_number": null,
                          "description": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/user/speed_dial_8/{id}": {
      "get": {
        "tags": [
          "User"
        ],
        "operationId": "retrieveSpeedDial8",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [],
        "summary": "Retrieve details of speed dial 8",
        "description": "Retrieve details of speed dial 8 by it's ID.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of speed dial.\n"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of speed dial.\n"
                    },
                    "code": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 1,
                      "description": "The speed dial 8 dialing code.   \nAvailable code range from `2` to `9`.\n"
                    },
                    "phone_number": {
                      "type": "string",
                      "description": "The phone number that you want to call.\n"
                    },
                    "description": {
                      "type": "string",
                      "maximum": 1024,
                      "description": "The description of speed dial.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "id": null,
                      "code": null,
                      "phone_number": null,
                      "description": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "updateSpeedDial8",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [],
        "summary": "Update speed dial 8",
        "description": "Update speed dial 8.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of speed dial.\n"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "code": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 1,
                    "description": "The speed dial 8 dialing code.   \nAvailable code range from `2` to `9`.\n"
                  },
                  "phone_number": {
                    "type": "string",
                    "description": "The phone number that you want to call.\n"
                  },
                  "description": {
                    "type": "string",
                    "maximum": 1024,
                    "description": "The description of speed dial.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "code": null,
                    "phone_number": null,
                    "description": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/user/speed_dial_8/{id}/destroy": {
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "deleteSpeedDial8",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [],
        "summary": "Delete speed dial 8",
        "description": "Remove speed dial 8 by ID.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of speed dial.\n"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/user/speed_dial_100": {
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "addSpeedDial100",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [],
        "summary": "Add new speed dial 100",
        "description": "Create new speed dial 100.\n",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "code": {
                    "type": "string",
                    "minLength": 2,
                    "maxLength": 2,
                    "description": "The speed dial 100 dialing code.   \nAvailable code range from `00` to `99`.\n"
                  },
                  "phone_number": {
                    "type": "string",
                    "description": "The phone number that you want to call.\n"
                  },
                  "description": {
                    "type": "string",
                    "maximum": 1024,
                    "description": "The description of speed dial.\n"
                  }
                },
                "required": [
                  "code",
                  "phone_number"
                ]
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "code": null,
                    "phone_number": null,
                    "description": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of speed dial.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "The ID of created resource",
                    "value": {
                      "id": "xxxxxxxx"
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "get": {
        "tags": [
          "User"
        ],
        "operationId": "listSpeedDial100",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [],
        "summary": "List speed dial 100",
        "description": "List speed dial 100.\n",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "description": "The unique ID of speed dial.\n"
                          },
                          "code": {
                            "type": "string",
                            "minLength": 2,
                            "maxLength": 2,
                            "description": "The speed dial 100 dialing code.   \nAvailable code range from `00` to `99`.\n"
                          },
                          "phone_number": {
                            "type": "string",
                            "description": "The phone number that you want to call.\n"
                          },
                          "description": {
                            "type": "string",
                            "maximum": 1024,
                            "description": "The description of speed dial.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "items": [
                        {
                          "id": null,
                          "code": null,
                          "phone_number": null,
                          "description": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/user/speed_dial_100/{id}": {
      "get": {
        "tags": [
          "User"
        ],
        "operationId": "retrieveSpeedDial100",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [],
        "summary": "Retrieve details of speed dial 100",
        "description": "Retrieve details of speed dial 100 by it's ID.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of speed dial.\n"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of speed dial.\n"
                    },
                    "code": {
                      "type": "string",
                      "minLength": 2,
                      "maxLength": 2,
                      "description": "The speed dial 100 dialing code.   \nAvailable code range from `00` to `99`.\n"
                    },
                    "phone_number": {
                      "type": "string",
                      "description": "The phone number that you want to call.\n"
                    },
                    "description": {
                      "type": "string",
                      "maximum": 1024,
                      "description": "The description of speed dial.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "id": null,
                      "code": null,
                      "phone_number": null,
                      "description": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "updateSpeedDial100",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [],
        "summary": "Update speed dial 100",
        "description": "Update speed dial 100.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of speed dial.\n"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "code": {
                    "type": "string",
                    "minLength": 2,
                    "maxLength": 2,
                    "description": "The speed dial 100 dialing code.   \nAvailable code range from `00` to `99`.\n"
                  },
                  "phone_number": {
                    "type": "string",
                    "description": "The phone number that you want to call.\n"
                  },
                  "description": {
                    "type": "string",
                    "maximum": 1024,
                    "description": "The description of speed dial.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "code": null,
                    "phone_number": null,
                    "description": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/user/speed_dial_100/{id}/destroy": {
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "deleteSpeedDial100",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [],
        "summary": "Delete speed dial 100",
        "description": "Remove speed dial 100 by ID.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of speed dial.\n"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/user/meetings": {
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "createMeeting",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [
          "GeneralMeeting.FullAccess"
        ],
        "summary": "Create a Meeting",
        "description": "Create a meeting.\n",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "mode": {
                    "type": "string",
                    "enum": [
                      "AUDIO",
                      "VIDEO"
                    ],
                    "description": "The conference room mode.  \nCan be either:  \n- `AUDIO`: audio conference room.\n- `VIDEO`: video conference room.\n"
                  },
                  "control": {
                    "type": "string",
                    "enum": [
                      "FREE",
                      "MASTER"
                    ],
                    "default": "FREE",
                    "description": "The conference control type.  \nCan be either:  \n- `FREE`: the free mode.  \n- `MASTER`: the master mode.\n"
                  },
                  "height": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 144,
                    "maximum": 1920,
                    "default": 720,
                    "description": "The height for video conference room.  \nOnly valid in `VIDEO` mode.\n"
                  },
                  "width": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 144,
                    "maximum": 1920,
                    "default": 1280,
                    "description": "The width for video conference room.  \nOnly valid in `VIDEO` mode.\n"
                  },
                  "bitrate": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 128,
                    "maximum": 10240,
                    "default": 1024,
                    "description": "The transmission rate for video conference room.  \nOnly valid in `VIDEO` mode.\n"
                  },
                  "framerate": {
                    "type": "integer",
                    "minimum": 5,
                    "maximum": 30,
                    "default": 15,
                    "description": "The framerate for video conference room.  \nOnly valid in `VIDEO` mode.\n"
                  },
                  "layout": {
                    "type": "string",
                    "enum": [
                      "LAYOUT0",
                      "LAYOUT1",
                      "LAYOUT2",
                      "LAYOUT3",
                      "LAYOUT4",
                      "LAYOUT6",
                      "LAYOUT9"
                    ],
                    "default": "LAYOUT0",
                    "description": "The number of grids allowed for video conference room.  \nOnly valid in `VIDEO` mode.  \nCan be either:  \n- LAYOUT0:\n- LAYOUT1:\n- LAYOUT2:\n- LAYOUT3:\n- LAYOUT4:\n- LAYOUT6:\n- LAYOUT9:\n"
                  },
                  "subject": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64,
                    "description": "The subject of conference room.\n"
                  },
                  "language": {
                    "type": "string",
                    "example": "en-US",
                    "description": "BCP 47 Language Tags (The Internet Best Current Practices (BCP) for language tags).\nA language tag is composed of a sequence of one or more subtags such as language, region, variant and script subtags.\nWhen a language tag is comprised of more than one subtag, the subtag values are separated by the \"-\" character.\nYou will most commonly find language tags written with 2 subtags - language and region. For example: en-US.\n"
                  },
                  "admin_pin": {
                    "type": "string",
                    "minLength": 3,
                    "maxLength": 6,
                    "description": "The PIN for admin of the conference room. Only numeric sequences are allowed.\n"
                  },
                  "room_pin": {
                    "type": "string",
                    "minLength": 3,
                    "maxLength": 6,
                    "description": "The PIN for the conference room. Only numeric sequences are allowed.\n"
                  },
                  "enable_recording": {
                    "type": "boolean",
                    "default": false,
                    "description": "Whether to enable recording when created.\n"
                  },
                  "enable_prompt": {
                    "type": "boolean",
                    "default": true,
                    "description": "Whether to enable voice menu.\n"
                  },
                  "timezone": {
                    "type": "string",
                    "description": "The IANA Time Zone names, such as \"Asia/Shanghai\".\n"
                  },
                  "scheduled_start_at": {
                    "allOf": [
                      {
                        "type": "string",
                        "format": "date_time",
                        "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                        "example": "2017-07-21T17:32:28Z"
                      }
                    ],
                    "description": "The scheduled start time of meeting.\n"
                  },
                  "scheduled_end_at": {
                    "allOf": [
                      {
                        "type": "string",
                        "format": "date_time",
                        "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                        "example": "2017-07-21T17:32:28Z"
                      }
                    ],
                    "description": "The scheduled end time of meeting.\n"
                  },
                  "internal_invitees": {
                    "type": "array",
                    "items": {
                      "allOf": [
                        {
                          "allOf": [
                            {
                              "type": "string",
                              "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                              "description": "The unique ID of the resource.\n"
                            }
                          ],
                          "description": "The unique ID of user.\n"
                        }
                      ],
                      "description": "A collection of extension's ID for sending invitation emails.\n"
                    }
                  },
                  "external_invitees": {
                    "type": "string",
                    "description": "The invitees to send invitation emails to.\n"
                  },
                  "close_on_nobody": {
                    "type": "boolean",
                    "default": false,
                    "description": "Whether to close the meeting if the nobody in.\n"
                  },
                  "outbound_caller_ids": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "provider_id": {
                          "allOf": [
                            {
                              "allOf": [
                                {
                                  "type": "string",
                                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                  "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"
                  },
                  "custom_options": {
                    "type": "string",
                    "description": "Some custom configuration options serialized as json string\n"
                  }
                },
                "required": [
                  "mode",
                  "subject",
                  "timezone"
                ]
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "mode": null,
                    "control": null,
                    "height": null,
                    "width": null,
                    "bitrate": null,
                    "framerate": null,
                    "layout": null,
                    "subject": null,
                    "language": null,
                    "admin_pin": null,
                    "room_pin": null,
                    "enable_recording": null,
                    "enable_prompt": null,
                    "timezone": null,
                    "scheduled_start_at": null,
                    "scheduled_end_at": null,
                    "internal_invitees": null,
                    "external_invitees": null,
                    "close_on_nobody": null,
                    "outbound_caller_ids": null,
                    "custom_options": null
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of conference room.\n"
                    },
                    "extension_number": {
                      "type": "string",
                      "minLength": 3,
                      "maxLength": 64,
                      "pattern": "[0-9]{3,64}",
                      "description": "The extension number.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "id": null,
                      "extension_number": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "get": {
        "tags": [
          "User"
        ],
        "operationId": "listUserMeetings",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [
          "GeneralMeeting.ViewOnly"
        ],
        "summary": "List user meetings",
        "description": "Retrieve a collection of meetings.\n",
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Use the `filter` query parameter to retrieve just a subset of a collection.\n"
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "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",
            "required": false,
            "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",
            "required": false,
            "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",
            "required": false,
            "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,
                      "example": 100,
                      "description": "Total number of resource.\n"
                    },
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "description": "The unique ID of conference room.\n"
                          },
                          "extension_number": {
                            "type": "string",
                            "minLength": 3,
                            "maxLength": 64,
                            "pattern": "[0-9]{3,64}",
                            "description": "The extension number.\n"
                          },
                          "mode": {
                            "type": "string",
                            "enum": [
                              "AUDIO",
                              "VIDEO"
                            ],
                            "description": "The conference room mode.  \nCan be either:  \n- `AUDIO`: audio conference room.\n- `VIDEO`: video conference room.\n"
                          },
                          "control": {
                            "type": "string",
                            "enum": [
                              "FREE",
                              "MASTER"
                            ],
                            "default": "FREE",
                            "description": "The conference control type.  \nCan be either:  \n- `FREE`: the free mode.  \n- `MASTER`: the master mode.\n"
                          },
                          "height": {
                            "type": "integer",
                            "format": "int32",
                            "minimum": 144,
                            "maximum": 1920,
                            "default": 720,
                            "description": "The height for video conference room.  \nOnly valid in `VIDEO` mode.\n"
                          },
                          "width": {
                            "type": "integer",
                            "format": "int32",
                            "minimum": 144,
                            "maximum": 1920,
                            "default": 1280,
                            "description": "The width for video conference room.  \nOnly valid in `VIDEO` mode.\n"
                          },
                          "bitrate": {
                            "type": "integer",
                            "format": "int32",
                            "minimum": 128,
                            "maximum": 10240,
                            "default": 1024,
                            "description": "The transmission rate for video conference room.  \nOnly valid in `VIDEO` mode.\n"
                          },
                          "framerate": {
                            "type": "integer",
                            "minimum": 5,
                            "maximum": 30,
                            "default": 15,
                            "description": "The framerate for video conference room.  \nOnly valid in `VIDEO` mode.\n"
                          },
                          "layout": {
                            "type": "string",
                            "enum": [
                              "LAYOUT0",
                              "LAYOUT1",
                              "LAYOUT2",
                              "LAYOUT3",
                              "LAYOUT4",
                              "LAYOUT6",
                              "LAYOUT9"
                            ],
                            "default": "LAYOUT0",
                            "description": "The number of grids allowed for video conference room.  \nOnly valid in `VIDEO` mode.  \nCan be either:  \n- LAYOUT0:\n- LAYOUT1:\n- LAYOUT2:\n- LAYOUT3:\n- LAYOUT4:\n- LAYOUT6:\n- LAYOUT9:\n"
                          },
                          "subject": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 64,
                            "description": "The subject of conference room.\n"
                          },
                          "language": {
                            "type": "string",
                            "example": "en-US",
                            "description": "BCP 47 Language Tags (The Internet Best Current Practices (BCP) for language tags).\nA language tag is composed of a sequence of one or more subtags such as language, region, variant and script subtags.\nWhen a language tag is comprised of more than one subtag, the subtag values are separated by the \"-\" character.\nYou will most commonly find language tags written with 2 subtags - language and region. For example: en-US.\n"
                          },
                          "capacity": {
                            "type": "integer",
                            "format": "int32",
                            "minimum": 1,
                            "maximum": 200,
                            "default": 9,
                            "description": "The maximum number of participants allowed in the room.\n"
                          },
                          "admin_pin": {
                            "type": "string",
                            "minLength": 3,
                            "maxLength": 6,
                            "description": "The PIN for admin of the conference room. Only numeric sequences are allowed.\n"
                          },
                          "room_pin": {
                            "type": "string",
                            "minLength": 3,
                            "maxLength": 6,
                            "description": "The PIN for the conference room. Only numeric sequences are allowed.\n"
                          },
                          "enable_recording": {
                            "type": "boolean",
                            "default": false,
                            "description": "Whether to enable recording when created.\n"
                          },
                          "enable_prompt": {
                            "type": "boolean",
                            "default": true,
                            "description": "Whether to enable voice menu.\n"
                          },
                          "timezone": {
                            "type": "string",
                            "description": "The IANA Time Zone names, such as \"Asia/Shanghai\".\n"
                          },
                          "created_at": {
                            "allOf": [
                              {
                                "type": "string",
                                "format": "date_time",
                                "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                                "example": "2017-07-21T17:32:28Z"
                              }
                            ],
                            "description": "The creation time of conference room.\n"
                          },
                          "scheduled_start_at": {
                            "allOf": [
                              {
                                "type": "string",
                                "format": "date_time",
                                "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                                "example": "2017-07-21T17:32:28Z"
                              }
                            ],
                            "description": "The scheduled start time of meeting.\n"
                          },
                          "scheduled_end_at": {
                            "allOf": [
                              {
                                "type": "string",
                                "format": "date_time",
                                "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                                "example": "2017-07-21T17:32:28Z"
                              }
                            ],
                            "description": "The scheduled end time of meeting.\n"
                          },
                          "internal_invitees": {
                            "type": "array",
                            "items": {
                              "allOf": [
                                {
                                  "allOf": [
                                    {
                                      "type": "string",
                                      "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                      "description": "The unique ID of the resource.\n"
                                    }
                                  ],
                                  "description": "The unique ID of user.\n"
                                }
                              ],
                              "description": "A collection of extension's ID for sending invitation emails.\n"
                            }
                          },
                          "external_invitees": {
                            "type": "string",
                            "description": "The invitees to send invitation emails to.\n"
                          },
                          "close_on_nobody": {
                            "type": "boolean",
                            "default": false,
                            "description": "Whether to close the meeting if the nobody in.\n"
                          },
                          "outbound_caller_ids": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "provider_id": {
                                  "allOf": [
                                    {
                                      "allOf": [
                                        {
                                          "type": "string",
                                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                          "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"
                          },
                          "ownership": {
                            "type": "boolean",
                            "description": "Whether the user has ownership of the meeting.\n"
                          },
                          "custom_options": {
                            "type": "string",
                            "description": "Some custom configuration options serialized as json string\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": null,
                          "extension_number": null,
                          "mode": null,
                          "control": null,
                          "height": null,
                          "width": null,
                          "bitrate": null,
                          "framerate": null,
                          "layout": null,
                          "subject": null,
                          "language": null,
                          "capacity": null,
                          "admin_pin": null,
                          "room_pin": null,
                          "enable_recording": null,
                          "enable_prompt": null,
                          "timezone": null,
                          "created_at": null,
                          "scheduled_start_at": null,
                          "scheduled_end_at": null,
                          "internal_invitees": null,
                          "external_invitees": null,
                          "close_on_nobody": null,
                          "outbound_caller_ids": null,
                          "ownership": null,
                          "custom_options": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/user/meetings/{id}": {
      "get": {
        "tags": [
          "User"
        ],
        "operationId": "getMeeting",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [
          "GeneralMeeting.ViewOnly"
        ],
        "summary": "Retrieve a meeting",
        "description": "Retrieve a meeting.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of conference room.\n"
            },
            "description": "The unique ID of the meeting."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of conference room.\n"
                    },
                    "extension_number": {
                      "type": "string",
                      "minLength": 3,
                      "maxLength": 64,
                      "pattern": "[0-9]{3,64}",
                      "description": "The extension number.\n"
                    },
                    "mode": {
                      "type": "string",
                      "enum": [
                        "AUDIO",
                        "VIDEO"
                      ],
                      "description": "The conference room mode.  \nCan be either:  \n- `AUDIO`: audio conference room.\n- `VIDEO`: video conference room.\n"
                    },
                    "control": {
                      "type": "string",
                      "enum": [
                        "FREE",
                        "MASTER"
                      ],
                      "default": "FREE",
                      "description": "The conference control type.  \nCan be either:  \n- `FREE`: the free mode.  \n- `MASTER`: the master mode.\n"
                    },
                    "height": {
                      "type": "integer",
                      "format": "int32",
                      "minimum": 144,
                      "maximum": 1920,
                      "default": 720,
                      "description": "The height for video conference room.  \nOnly valid in `VIDEO` mode.\n"
                    },
                    "width": {
                      "type": "integer",
                      "format": "int32",
                      "minimum": 144,
                      "maximum": 1920,
                      "default": 1280,
                      "description": "The width for video conference room.  \nOnly valid in `VIDEO` mode.\n"
                    },
                    "bitrate": {
                      "type": "integer",
                      "format": "int32",
                      "minimum": 128,
                      "maximum": 10240,
                      "default": 1024,
                      "description": "The transmission rate for video conference room.  \nOnly valid in `VIDEO` mode.\n"
                    },
                    "framerate": {
                      "type": "integer",
                      "minimum": 5,
                      "maximum": 30,
                      "default": 15,
                      "description": "The framerate for video conference room.  \nOnly valid in `VIDEO` mode.\n"
                    },
                    "layout": {
                      "type": "string",
                      "enum": [
                        "LAYOUT0",
                        "LAYOUT1",
                        "LAYOUT2",
                        "LAYOUT3",
                        "LAYOUT4",
                        "LAYOUT6",
                        "LAYOUT9"
                      ],
                      "default": "LAYOUT0",
                      "description": "The number of grids allowed for video conference room.  \nOnly valid in `VIDEO` mode.  \nCan be either:  \n- LAYOUT0:\n- LAYOUT1:\n- LAYOUT2:\n- LAYOUT3:\n- LAYOUT4:\n- LAYOUT6:\n- LAYOUT9:\n"
                    },
                    "subject": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64,
                      "description": "The subject of conference room.\n"
                    },
                    "language": {
                      "type": "string",
                      "example": "en-US",
                      "description": "BCP 47 Language Tags (The Internet Best Current Practices (BCP) for language tags).\nA language tag is composed of a sequence of one or more subtags such as language, region, variant and script subtags.\nWhen a language tag is comprised of more than one subtag, the subtag values are separated by the \"-\" character.\nYou will most commonly find language tags written with 2 subtags - language and region. For example: en-US.\n"
                    },
                    "capacity": {
                      "type": "integer",
                      "format": "int32",
                      "minimum": 1,
                      "maximum": 200,
                      "default": 9,
                      "description": "The maximum number of participants allowed in the room.\n"
                    },
                    "admin_pin": {
                      "type": "string",
                      "minLength": 3,
                      "maxLength": 6,
                      "description": "The PIN for admin of the conference room. Only numeric sequences are allowed.\n"
                    },
                    "room_pin": {
                      "type": "string",
                      "minLength": 3,
                      "maxLength": 6,
                      "description": "The PIN for the conference room. Only numeric sequences are allowed.\n"
                    },
                    "enable_recording": {
                      "type": "boolean",
                      "default": false,
                      "description": "Whether to enable recording when created.\n"
                    },
                    "enable_prompt": {
                      "type": "boolean",
                      "default": true,
                      "description": "Whether to enable voice menu.\n"
                    },
                    "timezone": {
                      "type": "string",
                      "description": "The IANA Time Zone names, such as \"Asia/Shanghai\".\n"
                    },
                    "created_at": {
                      "allOf": [
                        {
                          "type": "string",
                          "format": "date_time",
                          "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                          "example": "2017-07-21T17:32:28Z"
                        }
                      ],
                      "description": "The creation time of conference room.\n"
                    },
                    "scheduled_start_at": {
                      "allOf": [
                        {
                          "type": "string",
                          "format": "date_time",
                          "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                          "example": "2017-07-21T17:32:28Z"
                        }
                      ],
                      "description": "The scheduled start time of meeting.\n"
                    },
                    "scheduled_end_at": {
                      "allOf": [
                        {
                          "type": "string",
                          "format": "date_time",
                          "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                          "example": "2017-07-21T17:32:28Z"
                        }
                      ],
                      "description": "The scheduled end time of meeting.\n"
                    },
                    "internal_invitees": {
                      "type": "array",
                      "items": {
                        "allOf": [
                          {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "description": "The unique ID of user.\n"
                          }
                        ],
                        "description": "A collection of extension's ID for sending invitation emails.\n"
                      }
                    },
                    "external_invitees": {
                      "type": "string",
                      "description": "The invitees to send invitation emails to.\n"
                    },
                    "close_on_nobody": {
                      "type": "boolean",
                      "default": false,
                      "description": "Whether to close the meeting if the nobody in.\n"
                    },
                    "domain": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 280,
                      "description": "The SIP domain of tenant.  \nIt is usually a fully qualified domain name (FQDN).\nIf there is no FQDN, you can also use the IP address of the PBX server as the SIP domain.\nThe SIP domain name is only used for SIP message authentication and does not require analysis.\n"
                    },
                    "sbc_host": {
                      "type": "string",
                      "description": "The SBC domain.\n"
                    },
                    "sbc_port": {
                      "allOf": [
                        {
                          "type": "integer",
                          "format": "int32",
                          "minimum": 0,
                          "maximum": 65535,
                          "example": 80,
                          "description": "A port number is a 16-bit unsigned integer, thus ranging from 0 to 65535.\nFor TCP, port number 0 is reserved and cannot be used, while for UDP, the source port is optional and a value of zero means no port\n"
                        }
                      ],
                      "default": 8883,
                      "description": "The SBC web port fot https.\n"
                    },
                    "token": {
                      "type": "string",
                      "description": "Access token to be passed as a header\n",
                      "example": "4DFCF1D4C30B4D798ECE3AE43769F008."
                    },
                    "outbound_caller_ids": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "provider_id": {
                            "allOf": [
                              {
                                "allOf": [
                                  {
                                    "type": "string",
                                    "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                    "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"
                    },
                    "ownership": {
                      "type": "boolean",
                      "description": "Whether the user has ownership of the meeting.\n"
                    },
                    "custom_options": {
                      "type": "string",
                      "description": "Some custom configuration options serialized as json string\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "id": null,
                      "extension_number": null,
                      "mode": null,
                      "control": null,
                      "height": null,
                      "width": null,
                      "bitrate": null,
                      "framerate": null,
                      "layout": null,
                      "subject": null,
                      "language": null,
                      "capacity": null,
                      "admin_pin": null,
                      "room_pin": null,
                      "enable_recording": null,
                      "enable_prompt": null,
                      "timezone": null,
                      "created_at": null,
                      "scheduled_start_at": null,
                      "scheduled_end_at": null,
                      "internal_invitees": null,
                      "external_invitees": null,
                      "close_on_nobody": null,
                      "domain": null,
                      "sbc_host": null,
                      "sbc_port": null,
                      "token": null,
                      "outbound_caller_ids": null,
                      "ownership": null,
                      "custom_options": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "updateMeeting",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [
          "GeneralMeeting.FullAccess"
        ],
        "summary": "Update a meeting",
        "description": "Update a meeting\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of conference room.\n"
            },
            "description": "The unique ID of the meeting."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "control": {
                    "type": "string",
                    "enum": [
                      "FREE",
                      "MASTER"
                    ],
                    "default": "FREE",
                    "description": "The conference control type.  \nCan be either:  \n- `FREE`: the free mode.  \n- `MASTER`: the master mode.\n"
                  },
                  "height": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 144,
                    "maximum": 1920,
                    "default": 720,
                    "description": "The height for video conference room.  \nOnly valid in `VIDEO` mode.\n"
                  },
                  "width": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 144,
                    "maximum": 1920,
                    "default": 1280,
                    "description": "The width for video conference room.  \nOnly valid in `VIDEO` mode.\n"
                  },
                  "bitrate": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 128,
                    "maximum": 10240,
                    "default": 1024,
                    "description": "The transmission rate for video conference room.  \nOnly valid in `VIDEO` mode.\n"
                  },
                  "framerate": {
                    "type": "integer",
                    "minimum": 5,
                    "maximum": 30,
                    "default": 15,
                    "description": "The framerate for video conference room.  \nOnly valid in `VIDEO` mode.\n"
                  },
                  "layout": {
                    "type": "string",
                    "enum": [
                      "LAYOUT0",
                      "LAYOUT1",
                      "LAYOUT2",
                      "LAYOUT3",
                      "LAYOUT4",
                      "LAYOUT6",
                      "LAYOUT9"
                    ],
                    "default": "LAYOUT0",
                    "description": "The number of grids allowed for video conference room.  \nOnly valid in `VIDEO` mode.  \nCan be either:  \n- LAYOUT0:\n- LAYOUT1:\n- LAYOUT2:\n- LAYOUT3:\n- LAYOUT4:\n- LAYOUT6:\n- LAYOUT9:\n"
                  },
                  "subject": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64,
                    "description": "The subject of conference room.\n"
                  },
                  "language": {
                    "type": "string",
                    "example": "en-US",
                    "description": "BCP 47 Language Tags (The Internet Best Current Practices (BCP) for language tags).\nA language tag is composed of a sequence of one or more subtags such as language, region, variant and script subtags.\nWhen a language tag is comprised of more than one subtag, the subtag values are separated by the \"-\" character.\nYou will most commonly find language tags written with 2 subtags - language and region. For example: en-US.\n"
                  },
                  "capacity": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 1,
                    "maximum": 200,
                    "default": 9,
                    "description": "The maximum number of participants allowed in the room.\n"
                  },
                  "admin_pin": {
                    "type": "string",
                    "minLength": 3,
                    "maxLength": 6,
                    "description": "The PIN for admin of the conference room. Only numeric sequences are allowed.\n"
                  },
                  "room_pin": {
                    "type": "string",
                    "minLength": 3,
                    "maxLength": 6,
                    "description": "The PIN for the conference room. Only numeric sequences are allowed.\n"
                  },
                  "enable_recording": {
                    "type": "boolean",
                    "default": false,
                    "description": "Whether to enable recording when created.\n"
                  },
                  "enable_prompt": {
                    "type": "boolean",
                    "default": true,
                    "description": "Whether to enable voice menu.\n"
                  },
                  "timezone": {
                    "type": "string",
                    "description": "The IANA Time Zone names, such as \"Asia/Shanghai\".\n"
                  },
                  "scheduled_start_at": {
                    "allOf": [
                      {
                        "type": "string",
                        "format": "date_time",
                        "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                        "example": "2017-07-21T17:32:28Z"
                      }
                    ],
                    "description": "The scheduled start time of meeting.\n"
                  },
                  "scheduled_end_at": {
                    "allOf": [
                      {
                        "type": "string",
                        "format": "date_time",
                        "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                        "example": "2017-07-21T17:32:28Z"
                      }
                    ],
                    "description": "The scheduled end time of meeting.\n"
                  },
                  "internal_invitees": {
                    "type": "array",
                    "items": {
                      "allOf": [
                        {
                          "allOf": [
                            {
                              "type": "string",
                              "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                              "description": "The unique ID of the resource.\n"
                            }
                          ],
                          "description": "The unique ID of user.\n"
                        }
                      ],
                      "description": "A collection of extension's ID for sending invitation emails.\n"
                    }
                  },
                  "external_invitees": {
                    "type": "string",
                    "description": "The invitees to send invitation emails to.\n"
                  },
                  "close_on_nobody": {
                    "type": "boolean",
                    "default": false,
                    "description": "Whether to close the meeting if the nobody in.\n"
                  },
                  "outbound_caller_ids": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "provider_id": {
                          "allOf": [
                            {
                              "allOf": [
                                {
                                  "type": "string",
                                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                  "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"
                  },
                  "custom_options": {
                    "type": "string",
                    "description": "Some custom configuration options serialized as json string\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "control": null,
                    "height": null,
                    "width": null,
                    "bitrate": null,
                    "framerate": null,
                    "layout": null,
                    "subject": null,
                    "language": null,
                    "capacity": null,
                    "admin_pin": null,
                    "room_pin": null,
                    "enable_recording": null,
                    "enable_prompt": null,
                    "timezone": null,
                    "scheduled_start_at": null,
                    "scheduled_end_at": null,
                    "internal_invitees": null,
                    "external_invitees": null,
                    "close_on_nobody": null,
                    "outbound_caller_ids": null,
                    "custom_options": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/user/meetings/{id}/destroy": {
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "deleteMeeting",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [
          "GeneralMeeting.FullAccess"
        ],
        "summary": "Delete meeting",
        "description": "Destroy a conference room\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of conference room.\n"
            },
            "description": "The unique ID of the meeting."
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Invalid username supplied"
          },
          "404": {
            "description": "Not found"
          }
        }
      }
    },
    "/user/meetings/{id}/status": {
      "get": {
        "tags": [
          "User"
        ],
        "operationId": "getUserMeetingStatus",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [
          "GeneralMeeting.ViewOnly"
        ],
        "summary": "Get meeting status",
        "description": "Retrieve meeting status.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of conference room.\n"
            },
            "description": "The unique ID of the meeting."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "enum": [
                        "ONLINE",
                        "OFFLINE",
                        "ON_CALL"
                      ],
                      "description": "The conference room status.\nCan be either:  \n- `ONLINE`:\n- `OFFLINE`:\n- `ON_CALL`:\n"
                    },
                    "locked": {
                      "type": "boolean",
                      "description": "Whether the conference room was locked.\n"
                    },
                    "muted": {
                      "type": "boolean",
                      "description": "Whether the conference room was muted.\n"
                    },
                    "recording": {
                      "type": "boolean",
                      "description": "Whether the conference room is recording.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "status": "ONLINE",
                      "locked": false,
                      "muted": false,
                      "recording": false
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/user/meetings/{id}/mute": {
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "muteMeeting",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [
          "GeneralMeeting.FullAccess"
        ],
        "summary": "Mute meeting",
        "description": "Mute meeting.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of conference room.\n"
            },
            "description": "The unique ID of the meeting."
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/user/meetings/{id}/unmute": {
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "unmuteMeeting",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [
          "GeneralMeeting.FullAccess"
        ],
        "summary": "Unmute meeting",
        "description": "Unmute meeting by it's unique ID.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of conference room.\n"
            },
            "description": "The unique ID of the meeting."
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/user/meetings/{id}/lock": {
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "lockMeeting",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [
          "GeneralMeeting.FullAccess"
        ],
        "summary": "Lock meeting",
        "description": "Lock meeting by it's unique ID.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of conference room.\n"
            },
            "description": "The unique ID of the meeting."
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/user/meetings/{id}/unlock": {
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "unlockMeeting",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [
          "GeneralMeeting.FullAccess"
        ],
        "summary": "Unlock meeting",
        "description": "Unlock meeting by it's unique ID.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of conference room.\n"
            },
            "description": "The unique ID of the meeting."
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/user/meetings/{id}/start": {
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "startMeeting",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [
          "GeneralMeeting.FullAccess"
        ],
        "summary": "Start meeting",
        "description": "Start meeting by it's unique ID.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of conference room.\n"
            },
            "description": "The unique ID of the meeting."
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/user/meetings/{id}/stop": {
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "stopMeeting",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [
          "GeneralMeeting.FullAccess"
        ],
        "summary": "Stop meeting",
        "description": "Stop meeting by it's unique ID.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of conference room.\n"
            },
            "description": "The unique ID of the meeting."
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/user/meetings/{id}/start_recording": {
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "startRecordingMeeting",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [
          "GeneralMeeting.FullAccess"
        ],
        "summary": "Start recording in meeting",
        "description": "Start recording in meeting.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of conference room.\n"
            },
            "description": "The unique ID of the meeting."
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/user/meetings/{id}/stop_recording": {
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "stopRecordingMeeting",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [
          "GeneralMeeting.FullAccess"
        ],
        "summary": "Stop recording in meeting",
        "description": "Stop recording in meeting.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of conference room.\n"
            },
            "description": "The unique ID of the meeting."
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/user/meetings/{id}/participants": {
      "get": {
        "tags": [
          "User"
        ],
        "operationId": "listMeetingParticipants",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [
          "GeneralMeeting.ViewOnly"
        ],
        "summary": "List meeting participants",
        "description": "Retrieve a collection of meeting participants.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of conference room.\n"
            },
            "description": "The unique ID of meeting."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "description": "The unique ID of conference room participant.\n"
                          },
                          "display_name": {
                            "type": "string",
                            "example": "\"example\"<sip:100@example.com>",
                            "description": "The display name of conference room participant.\n"
                          },
                          "muted": {
                            "type": "boolean",
                            "description": "Whether the participant is muted.\n"
                          },
                          "chairman": {
                            "type": "boolean",
                            "description": "Indicates whether the user is chairman of the conference room.\n"
                          },
                          "position": {
                            "type": "integer",
                            "format": "int32",
                            "minimum": -1,
                            "maximum": 8,
                            "description": "The position of room member.  \nThe member will not be displayed when *-1* is specified.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "items": [
                        {
                          "id": null,
                          "display_name": null,
                          "muted": null,
                          "chairman": null,
                          "position": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/user/meetings/{id}/participants/layout": {
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "updateMeetingParticipantsLayout",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [
          "GeneralMeeting.FullAccess"
        ],
        "summary": "Update meeting participants layout",
        "description": "Modify participants layout based on meeting layout.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of conference room.\n"
            },
            "description": "The unique ID of the meeting."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "items": {
                    "type": "array",
                    "items": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of conference room participant.\n"
                    },
                    "description": "A collection of participant's id.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "items": [
                      "xxx",
                      "yyy"
                    ]
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/user/meetings/{id}/participants/{participant_id}": {
      "get": {
        "tags": [
          "User"
        ],
        "operationId": "getMeetingParticipant",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [
          "GeneralMeeting.ViewOnly"
        ],
        "summary": "Get meeting participant details",
        "description": "Get meeting participant details.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of conference room.\n"
            },
            "description": "The unique ID of meeting."
          },
          {
            "name": "participant_id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of conference room participant.\n"
            },
            "description": "The id of the participant."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of conference room participant.\n"
                    },
                    "display_name": {
                      "type": "string",
                      "example": "\"example\"<sip:100@example.com>",
                      "description": "The display name of conference room participant.\n"
                    },
                    "muted": {
                      "type": "boolean",
                      "description": "Whether the participant is muted.\n"
                    },
                    "chairman": {
                      "type": "boolean",
                      "description": "Indicates whether the user is chairman of the conference room.\n"
                    },
                    "position": {
                      "type": "integer",
                      "format": "int32",
                      "minimum": -1,
                      "maximum": 8,
                      "description": "The position of room member.  \nThe member will not be displayed when *-1* is specified.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "id": null,
                      "display_name": null,
                      "muted": null,
                      "chairman": null,
                      "position": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/user/meetings/{id}/participants/invite": {
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "inviteMeetingParticipant",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [
          "GeneralMeeting.FullAccess"
        ],
        "summary": "Invite meeting participant",
        "description": "Invite an user as meeting participant.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of conference room.\n"
            },
            "description": "The unique ID of the meeting."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "number": {
                    "type": "string",
                    "description": "The number of invited participant.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "number": "111-222-33333"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/user/meetings/{id}/participants/{participant_id}/mute": {
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "muteMeetingParticipant",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [
          "GeneralMeeting.FullAccess"
        ],
        "summary": "Mute meeting participant",
        "description": "Mute meeting participant.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of conference room.\n"
            },
            "description": "The unique ID of the meeting."
          },
          {
            "name": "participant_id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of conference room participant.\n"
            },
            "description": "The id of the participant."
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/user/meetings/{id}/participants/{participant_id}/unmute": {
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "unmuteMeetingParticipant",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [
          "GeneralMeeting.FullAccess"
        ],
        "summary": "Unmute meeting participant",
        "description": "Unmute meeting participant.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of conference room.\n"
            },
            "description": "The unique ID of the meeting."
          },
          {
            "name": "participant_id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of conference room participant.\n"
            },
            "description": "The id of the participant."
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/user/meetings/{id}/participants/{participant_id}/chairman": {
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "transferMeetingOwnership",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [
          "GeneralMeeting.FullAccess"
        ],
        "summary": "Transfer meeting ownership",
        "description": "Transfer meeting ownership to another participant.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of conference room.\n"
            },
            "description": "The unique ID of meeting."
          },
          {
            "name": "participant_id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of conference room participant.\n"
            },
            "description": "The id of the participant."
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/user/meetings/{id}/participants/{participant_id}/position": {
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "setMeetingParticipantPosition",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [
          "GeneralMeeting.FullAccess"
        ],
        "summary": "Set meeting participant position",
        "description": "Set meeting participant position.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of conference room.\n"
            },
            "description": "The unique ID of the meeting."
          },
          {
            "name": "participant_id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of conference room participant.\n"
            },
            "description": "The id of the participant."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "position": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": -1,
                    "maximum": 8,
                    "description": "The position of room member.  \nThe member will not be displayed when *-1* is specified.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "position": 1
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/user/meetings/{id}/participants/{participant_id}/destroy": {
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "kickOutMeetingParticipant",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [
          "GeneralMeeting.FullAccess"
        ],
        "summary": "Kick out meeting participant",
        "description": "Kick out meeting participant.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of conference room.\n"
            },
            "description": "The unique ID of the meeting."
          },
          {
            "name": "participant_id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of conference room participant.\n"
            },
            "description": "The id of the participant."
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/user/holidays": {
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "createCurrentUserHoliday",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [],
        "summary": "Create a new holiday for current user",
        "description": "Create a new holiday for current user.\n",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64,
                    "description": "The name of the holiday.\n"
                  },
                  "region": {
                    "type": "string",
                    "description": "A valid country code based on iso3166-1 alpha-3 standard. see: https://www.iso.org/iso-3166-country-codes.html\n"
                  },
                  "consecutive": {
                    "type": "boolean",
                    "description": "Whether the holiday consists of consecutive days.\n"
                  },
                  "every_year": {
                    "type": "boolean",
                    "description": "Does the holiday take effect every year.\n"
                  },
                  "year_start": {
                    "type": "integer",
                    "description": "The start year of holiday.\n"
                  },
                  "year_end": {
                    "type": "integer",
                    "description": "The end year of holiday.\n"
                  },
                  "month_start": {
                    "type": "integer",
                    "description": "The start month of holiday.\n"
                  },
                  "month_end": {
                    "type": "integer",
                    "description": "The end month of holiday.\n"
                  },
                  "day_start": {
                    "type": "integer",
                    "description": "The start day of holiday.\n"
                  },
                  "day_end": {
                    "type": "integer",
                    "description": "The end day of holiday.\n"
                  },
                  "hour_start": {
                    "type": "integer",
                    "description": "The start hour of holiday.\n"
                  },
                  "hour_end": {
                    "type": "integer",
                    "description": "The end hour of holiday.\n"
                  },
                  "minute_start": {
                    "type": "integer",
                    "description": "The start minute of holiday.\n"
                  },
                  "minute_end": {
                    "type": "integer",
                    "description": "The end minute of holiday.\n"
                  }
                },
                "required": [
                  "name",
                  "region",
                  "consecutive",
                  "every_year"
                ]
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "name": null,
                    "region": null,
                    "consecutive": null,
                    "every_year": null,
                    "year_start": null,
                    "year_end": null,
                    "month_start": null,
                    "month_end": null,
                    "day_start": null,
                    "day_end": null,
                    "hour_start": null,
                    "hour_end": null,
                    "minute_start": null,
                    "minute_end": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "readOnly": true,
                      "description": "The unique ID of holiday.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "The ID of created resource",
                    "value": {
                      "id": "xxxxxxxx"
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "get": {
        "tags": [
          "User"
        ],
        "operationId": "listCurrentUserHolidays",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [],
        "summary": "List current user's holidays",
        "description": "Retrieve a collection of current user's holidays.\n",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "count": {
                      "type": "integer",
                      "format": "int64",
                      "minimum": 0,
                      "example": 100,
                      "description": "Total number of resource.\n"
                    },
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "readOnly": true,
                            "description": "The unique ID of holiday.\n"
                          },
                          "name": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 64,
                            "description": "The name of the holiday.\n"
                          },
                          "region": {
                            "type": "string",
                            "description": "A valid country code based on iso3166-1 alpha-3 standard. see: https://www.iso.org/iso-3166-country-codes.html\n"
                          },
                          "consecutive": {
                            "type": "boolean",
                            "description": "Whether the holiday consists of consecutive days.\n"
                          },
                          "every_year": {
                            "type": "boolean",
                            "description": "Does the holiday take effect every year.\n"
                          },
                          "year_start": {
                            "type": "integer",
                            "description": "The start year of holiday.\n"
                          },
                          "year_end": {
                            "type": "integer",
                            "description": "The end year of holiday.\n"
                          },
                          "month_start": {
                            "type": "integer",
                            "description": "The start month of holiday.\n"
                          },
                          "month_end": {
                            "type": "integer",
                            "description": "The end month of holiday.\n"
                          },
                          "day_start": {
                            "type": "integer",
                            "description": "The start day of holiday.\n"
                          },
                          "day_end": {
                            "type": "integer",
                            "description": "The end day of holiday.\n"
                          },
                          "hour_start": {
                            "type": "integer",
                            "description": "The start hour of holiday.\n"
                          },
                          "hour_end": {
                            "type": "integer",
                            "description": "The end hour of holiday.\n"
                          },
                          "minute_start": {
                            "type": "integer",
                            "description": "The start minute of holiday.\n"
                          },
                          "minute_end": {
                            "type": "integer",
                            "description": "The end minute of holiday.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": null,
                          "name": null,
                          "region": null,
                          "consecutive": null,
                          "every_year": null,
                          "year_start": null,
                          "year_end": null,
                          "month_start": null,
                          "month_end": null,
                          "day_start": null,
                          "day_end": null,
                          "hour_start": null,
                          "hour_end": null,
                          "minute_start": null,
                          "minute_end": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/user/holidays/{id}": {
      "get": {
        "tags": [
          "User"
        ],
        "operationId": "retrieveCurrentUserHoliday",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [],
        "summary": "Retrieve a holiday of current user",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "readOnly": true,
              "description": "The unique ID of holiday.\n"
            },
            "description": "The unique ID of the holiday."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "readOnly": true,
                      "description": "The unique ID of holiday.\n"
                    },
                    "name": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64,
                      "description": "The name of the holiday.\n"
                    },
                    "region": {
                      "type": "string",
                      "description": "A valid country code based on iso3166-1 alpha-3 standard. see: https://www.iso.org/iso-3166-country-codes.html\n"
                    },
                    "consecutive": {
                      "type": "boolean",
                      "description": "Whether the holiday consists of consecutive days.\n"
                    },
                    "every_year": {
                      "type": "boolean",
                      "description": "Does the holiday take effect every year.\n"
                    },
                    "year_start": {
                      "type": "integer",
                      "description": "The start year of holiday.\n"
                    },
                    "year_end": {
                      "type": "integer",
                      "description": "The end year of holiday.\n"
                    },
                    "month_start": {
                      "type": "integer",
                      "description": "The start month of holiday.\n"
                    },
                    "month_end": {
                      "type": "integer",
                      "description": "The end month of holiday.\n"
                    },
                    "day_start": {
                      "type": "integer",
                      "description": "The start day of holiday.\n"
                    },
                    "day_end": {
                      "type": "integer",
                      "description": "The end day of holiday.\n"
                    },
                    "hour_start": {
                      "type": "integer",
                      "description": "The start hour of holiday.\n"
                    },
                    "hour_end": {
                      "type": "integer",
                      "description": "The end hour of holiday.\n"
                    },
                    "minute_start": {
                      "type": "integer",
                      "description": "The start minute of holiday.\n"
                    },
                    "minute_end": {
                      "type": "integer",
                      "description": "The end minute of holiday.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "id": null,
                      "name": null,
                      "region": null,
                      "consecutive": null,
                      "every_year": null,
                      "year_start": null,
                      "year_end": null,
                      "month_start": null,
                      "month_end": null,
                      "day_start": null,
                      "day_end": null,
                      "hour_start": null,
                      "hour_end": null,
                      "minute_start": null,
                      "minute_end": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "updateCurrentUserHoliday",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [],
        "summary": "Update a holiday of current user",
        "description": "Update a holiday of current user.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "readOnly": true,
              "description": "The unique ID of holiday.\n"
            },
            "description": "The unique ID of the holiday."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64,
                    "description": "The name of the holiday.\n"
                  },
                  "region": {
                    "type": "string",
                    "description": "A valid country code based on iso3166-1 alpha-3 standard. see: https://www.iso.org/iso-3166-country-codes.html\n"
                  },
                  "consecutive": {
                    "type": "boolean",
                    "description": "Whether the holiday consists of consecutive days.\n"
                  },
                  "every_year": {
                    "type": "boolean",
                    "description": "Does the holiday take effect every year.\n"
                  },
                  "year_start": {
                    "type": "integer",
                    "description": "The start year of holiday.\n"
                  },
                  "year_end": {
                    "type": "integer",
                    "description": "The end year of holiday.\n"
                  },
                  "month_start": {
                    "type": "integer",
                    "description": "The start month of holiday.\n"
                  },
                  "month_end": {
                    "type": "integer",
                    "description": "The end month of holiday.\n"
                  },
                  "day_start": {
                    "type": "integer",
                    "description": "The start day of holiday.\n"
                  },
                  "day_end": {
                    "type": "integer",
                    "description": "The end day of holiday.\n"
                  },
                  "hour_start": {
                    "type": "integer",
                    "description": "The start hour of holiday.\n"
                  },
                  "hour_end": {
                    "type": "integer",
                    "description": "The end hour of holiday.\n"
                  },
                  "minute_start": {
                    "type": "integer",
                    "description": "The start minute of holiday.\n"
                  },
                  "minute_end": {
                    "type": "integer",
                    "description": "The end minute of holiday.\n"
                  }
                },
                "required": [
                  "name",
                  "consecutive",
                  "every_year"
                ]
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "name": null,
                    "region": null,
                    "consecutive": null,
                    "every_year": null,
                    "year_start": null,
                    "year_end": null,
                    "month_start": null,
                    "month_end": null,
                    "day_start": null,
                    "day_end": null,
                    "hour_start": null,
                    "hour_end": null,
                    "minute_start": null,
                    "minute_end": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/user/holidays/{id}/destroy": {
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "deleteCurrentUserHoliday",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [],
        "summary": "Destroy a holiday of current user",
        "description": "Destroy a holiday of current user.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "readOnly": true,
              "description": "The unique ID of holiday.\n"
            },
            "description": "The unique ID of the holiday."
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Invalid ID supplied."
          }
        }
      }
    },
    "/user/global_holidays": {
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "updateCurrentUserGlobalHoliday",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [],
        "summary": "Update current user's global holidays",
        "description": "Update current user's global holidays from tenant holidays.\n",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "items": {
                    "type": "array",
                    "items": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "readOnly": true,
                      "description": "The unique ID of holiday.\n"
                    },
                    "description": "A collection of ID of tenant's holiday.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "items": [
                      "xxxxxxxxx",
                      "yyyyyyyyy"
                    ]
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "get": {
        "tags": [
          "User"
        ],
        "operationId": "listCurrentUserGlobalHolidays",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [],
        "summary": "List current user's global holidays",
        "description": "Retrieve a collection of current user's global holidays.\n",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "readOnly": true,
                            "description": "The unique ID of holiday.\n"
                          },
                          "name": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 64,
                            "description": "The name of the holiday.\n"
                          },
                          "region": {
                            "type": "string",
                            "description": "A valid country code based on iso3166-1 alpha-3 standard. see: https://www.iso.org/iso-3166-country-codes.html\n"
                          },
                          "consecutive": {
                            "type": "boolean",
                            "description": "Whether the holiday consists of consecutive days.\n"
                          },
                          "every_year": {
                            "type": "boolean",
                            "description": "Does the holiday take effect every year.\n"
                          },
                          "year_start": {
                            "type": "integer",
                            "description": "The start year of holiday.\n"
                          },
                          "year_end": {
                            "type": "integer",
                            "description": "The end year of holiday.\n"
                          },
                          "month_start": {
                            "type": "integer",
                            "description": "The start month of holiday.\n"
                          },
                          "month_end": {
                            "type": "integer",
                            "description": "The end month of holiday.\n"
                          },
                          "day_start": {
                            "type": "integer",
                            "description": "The start day of holiday.\n"
                          },
                          "day_end": {
                            "type": "integer",
                            "description": "The end day of holiday.\n"
                          },
                          "hour_start": {
                            "type": "integer",
                            "description": "The start hour of holiday.\n"
                          },
                          "hour_end": {
                            "type": "integer",
                            "description": "The end hour of holiday.\n"
                          },
                          "minute_start": {
                            "type": "integer",
                            "description": "The start minute of holiday.\n"
                          },
                          "minute_end": {
                            "type": "integer",
                            "description": "The end minute of holiday.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "items": [
                        {
                          "id": null,
                          "name": null,
                          "region": null,
                          "consecutive": null,
                          "every_year": null,
                          "year_start": null,
                          "year_end": null,
                          "month_start": null,
                          "month_end": null,
                          "day_start": null,
                          "day_end": null,
                          "hour_start": null,
                          "hour_end": null,
                          "minute_start": null,
                          "minute_end": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/user/contacts": {
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "createPersonalContact",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [],
        "summary": "Add a new personal contact",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64,
                    "description": "The name of contact.\n"
                  },
                  "email": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The email of contact.\n"
                  },
                  "company": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The company name of contact.\n"
                  },
                  "title": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The title of contact.\n"
                  },
                  "business": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The business phone number of contact.\n"
                  },
                  "business2": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The secondary business phone number of contact.\n"
                  },
                  "mobile_phone": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The mobile phone number of contact.\n"
                  },
                  "mobile_phone2": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The secondary mobile phone number of contact.\n"
                  },
                  "home_phone": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The home phone number of contact.\n"
                  },
                  "home_phone2": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The secondary home phone number of contact.\n"
                  },
                  "other": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The other phone number of contact.\n"
                  },
                  "business_fax": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The business fax of contact.\n"
                  },
                  "home_fax": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The home fax of contact.\n"
                  },
                  "address": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The address.\n"
                  },
                  "notes": {
                    "type": "string",
                    "maxLength": 1024,
                    "description": "The notes of contact.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "name": null,
                    "email": null,
                    "company": null,
                    "title": null,
                    "business": null,
                    "business2": null,
                    "mobile_phone": null,
                    "mobile_phone2": null,
                    "home_phone": null,
                    "home_phone2": null,
                    "other": null,
                    "business_fax": null,
                    "home_fax": null,
                    "address": null,
                    "notes": null
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created contact",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of contact.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "The ID of created resource",
                    "value": {
                      "id": "xxxxxxxx"
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "get": {
        "tags": [
          "User"
        ],
        "operationId": "listPersonalContacts",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [],
        "summary": "List personal contact",
        "description": "Retrieve a collection of personal contacts.\n",
        "parameters": [
          {
            "name": "skip",
            "in": "query",
            "required": false,
            "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",
            "required": false,
            "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,
                      "example": 100,
                      "description": "Total number of resource.\n"
                    },
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "description": "The unique ID of contact.\n"
                          },
                          "name": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 64,
                            "description": "The name of contact.\n"
                          },
                          "email": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The email of contact.\n"
                          },
                          "company": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The company name of contact.\n"
                          },
                          "title": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The title of contact.\n"
                          },
                          "business": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The business phone number of contact.\n"
                          },
                          "business2": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The secondary business phone number of contact.\n"
                          },
                          "mobile_phone": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The mobile phone number of contact.\n"
                          },
                          "mobile_phone2": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The secondary mobile phone number of contact.\n"
                          },
                          "home_phone": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The home phone number of contact.\n"
                          },
                          "home_phone2": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The secondary home phone number of contact.\n"
                          },
                          "other": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The other phone number of contact.\n"
                          },
                          "business_fax": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The business fax of contact.\n"
                          },
                          "home_fax": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The home fax of contact.\n"
                          },
                          "address": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The address.\n"
                          },
                          "notes": {
                            "type": "string",
                            "maxLength": 1024,
                            "description": "The notes of contact.\n"
                          },
                          "sync_type": {
                            "type": "string",
                            "enum": [
                              "Microsoft 365"
                            ],
                            "description": "The synchronization method.   \nCan be either:   \n- `Microsoft 365`: Sync from Microsoft 365.\n"
                          },
                          "favorite": {
                            "type": "boolean",
                            "example": true,
                            "description": "Mark if a contact has been added to the favorites list.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": null,
                          "name": null,
                          "email": null,
                          "company": null,
                          "title": null,
                          "business": null,
                          "business2": null,
                          "mobile_phone": null,
                          "mobile_phone2": null,
                          "home_phone": null,
                          "home_phone2": null,
                          "other": null,
                          "business_fax": null,
                          "home_fax": null,
                          "address": null,
                          "notes": null,
                          "sync_type": null,
                          "favorite": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/user/contacts/{id}": {
      "get": {
        "tags": [
          "User"
        ],
        "operationId": "retrievePersonalContact",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [],
        "summary": "Retrieve personal contact details",
        "description": "Retrieves details of a personal contact.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of contact.\n"
            },
            "description": "The unique ID of the contact."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of contact.\n"
                    },
                    "name": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64,
                      "description": "The name of contact.\n"
                    },
                    "email": {
                      "type": "string",
                      "maxLength": 128,
                      "description": "The email of contact.\n"
                    },
                    "company": {
                      "type": "string",
                      "maxLength": 128,
                      "description": "The company name of contact.\n"
                    },
                    "title": {
                      "type": "string",
                      "maxLength": 128,
                      "description": "The title of contact.\n"
                    },
                    "business": {
                      "type": "string",
                      "maxLength": 128,
                      "description": "The business phone number of contact.\n"
                    },
                    "business2": {
                      "type": "string",
                      "maxLength": 128,
                      "description": "The secondary business phone number of contact.\n"
                    },
                    "mobile_phone": {
                      "type": "string",
                      "maxLength": 128,
                      "description": "The mobile phone number of contact.\n"
                    },
                    "mobile_phone2": {
                      "type": "string",
                      "maxLength": 128,
                      "description": "The secondary mobile phone number of contact.\n"
                    },
                    "home_phone": {
                      "type": "string",
                      "maxLength": 128,
                      "description": "The home phone number of contact.\n"
                    },
                    "home_phone2": {
                      "type": "string",
                      "maxLength": 128,
                      "description": "The secondary home phone number of contact.\n"
                    },
                    "other": {
                      "type": "string",
                      "maxLength": 128,
                      "description": "The other phone number of contact.\n"
                    },
                    "business_fax": {
                      "type": "string",
                      "maxLength": 128,
                      "description": "The business fax of contact.\n"
                    },
                    "home_fax": {
                      "type": "string",
                      "maxLength": 128,
                      "description": "The home fax of contact.\n"
                    },
                    "address": {
                      "type": "string",
                      "maxLength": 128,
                      "description": "The address.\n"
                    },
                    "notes": {
                      "type": "string",
                      "maxLength": 1024,
                      "description": "The notes of contact.\n"
                    },
                    "sync_type": {
                      "type": "string",
                      "enum": [
                        "Microsoft 365"
                      ],
                      "description": "The synchronization method.   \nCan be either:   \n- `Microsoft 365`: Sync from Microsoft 365.\n"
                    },
                    "favorite": {
                      "type": "boolean",
                      "example": true,
                      "description": "Mark if a contact has been added to the favorites list.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "id": null,
                      "name": null,
                      "email": null,
                      "company": null,
                      "title": null,
                      "business": null,
                      "business2": null,
                      "mobile_phone": null,
                      "mobile_phone2": null,
                      "home_phone": null,
                      "home_phone2": null,
                      "other": null,
                      "business_fax": null,
                      "home_fax": null,
                      "address": null,
                      "notes": null,
                      "sync_type": null,
                      "favorite": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "updatePersonalContact",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [],
        "summary": "Update a personal contact",
        "description": "Update a personal contact.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of contact.\n"
            },
            "description": "The unique ID of the contact."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64,
                    "description": "The name of contact.\n"
                  },
                  "email": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The email of contact.\n"
                  },
                  "company": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The company name of contact.\n"
                  },
                  "title": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The title of contact.\n"
                  },
                  "business": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The business phone number of contact.\n"
                  },
                  "business2": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The secondary business phone number of contact.\n"
                  },
                  "mobile_phone": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The mobile phone number of contact.\n"
                  },
                  "mobile_phone2": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The secondary mobile phone number of contact.\n"
                  },
                  "home_phone": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The home phone number of contact.\n"
                  },
                  "home_phone2": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The secondary home phone number of contact.\n"
                  },
                  "other": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The other phone number of contact.\n"
                  },
                  "business_fax": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The business fax of contact.\n"
                  },
                  "home_fax": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The home fax of contact.\n"
                  },
                  "address": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The address.\n"
                  },
                  "notes": {
                    "type": "string",
                    "maxLength": 1024,
                    "description": "The notes of contact.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "name": null,
                    "email": null,
                    "company": null,
                    "title": null,
                    "business": null,
                    "business2": null,
                    "mobile_phone": null,
                    "mobile_phone2": null,
                    "home_phone": null,
                    "home_phone2": null,
                    "other": null,
                    "business_fax": null,
                    "home_fax": null,
                    "address": null,
                    "notes": null
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/user/contacts/{id}/favorite": {
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "favoritePersonalContact",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [],
        "summary": "Favorite a personal contact",
        "description": "Favorite a personal contact.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of contact.\n"
            },
            "description": "The unique ID of the contact."
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/user/contacts/{id}/unfavorite": {
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "unfavoritePersonalContact",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [],
        "summary": "Unfavorite a personal contact",
        "description": "Favorite a personal contact.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of contact.\n"
            },
            "description": "The unique ID of the contact."
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/user/contacts/{id}/destroy": {
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "deletePersonalContact",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [],
        "summary": "Delete a personal contact",
        "description": "Delete a personal contact by it's unique id.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of contact.\n"
            },
            "description": "The unique ID of the contact."
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/user/contacts/sync_tokens": {
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "createPersonalContactSyncToken",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [],
        "summary": "Create new personal contact sync token",
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "token": {
                      "type": "string",
                      "description": "The sync token.   \nClients should treat the sync token as an opaque string and should never try to assemble it.   \nThis document imposes no constraints on the format and clients should never impose any.\n",
                      "example": "RQ2dX9ZC7VuWlVpXXvad2dL3lyhjnN-7eOw95wXymoo."
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "token": "xxxxxxxxxxxxxxxx"
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/user/contacts/sync_tokens/{token}/diff": {
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "listPersonalContactChanges",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [],
        "summary": "List personal contact changes",
        "description": "List personal contact changes.",
        "parameters": [
          {
            "name": "token",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The sync token.   \nClients should treat the sync token as an opaque string and should never try to assemble it.   \nThis document imposes no constraints on the format and clients should never impose any.\n",
              "example": "RQ2dX9ZC7VuWlVpXXvad2dL3lyhjnN-7eOw95wXymoo."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "token": {
                      "type": "string",
                      "description": "The sync token.   \nClients should treat the sync token as an opaque string and should never try to assemble it.   \nThis document imposes no constraints on the format and clients should never impose any.\n",
                      "example": "RQ2dX9ZC7VuWlVpXXvad2dL3lyhjnN-7eOw95wXymoo."
                    },
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "description": "The unique ID of contact.\n"
                          },
                          "name": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 64,
                            "description": "The name of contact.\n"
                          },
                          "email": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The email of contact.\n"
                          },
                          "company": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The company name of contact.\n"
                          },
                          "title": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The title of contact.\n"
                          },
                          "business": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The business phone number of contact.\n"
                          },
                          "business2": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The secondary business phone number of contact.\n"
                          },
                          "mobile_phone": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The mobile phone number of contact.\n"
                          },
                          "mobile_phone2": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The secondary mobile phone number of contact.\n"
                          },
                          "home_phone": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The home phone number of contact.\n"
                          },
                          "home_phone2": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The secondary home phone number of contact.\n"
                          },
                          "other": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The other phone number of contact.\n"
                          },
                          "business_fax": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The business fax of contact.\n"
                          },
                          "home_fax": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The home fax of contact.\n"
                          },
                          "address": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The address.\n"
                          },
                          "notes": {
                            "type": "string",
                            "maxLength": 1024,
                            "description": "The notes of contact.\n"
                          },
                          "favorite": {
                            "type": "boolean",
                            "example": true,
                            "description": "Mark if a contact has been added to the favorites list.\n"
                          },
                          "change_type": {
                            "type": "string",
                            "enum": [
                              "CREATED",
                              "UPDATED",
                              "DELETED"
                            ],
                            "example": "CREATED",
                            "description": "The resource change types can be either:  \n- `CREATED`: The resource has been created.   \n- `UPDATED`: The resource has been updated.   \n- `DELETED`: The resource has been deleted.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "token": "xxxxxxxxxxxxxxx",
                      "items": [
                        {
                          "id": null,
                          "name": null,
                          "email": null,
                          "company": null,
                          "title": null,
                          "business": null,
                          "business2": null,
                          "mobile_phone": null,
                          "mobile_phone2": null,
                          "home_phone": null,
                          "home_phone2": null,
                          "other": null,
                          "business_fax": null,
                          "home_fax": null,
                          "address": null,
                          "notes": null,
                          "favorite": null,
                          "change_type": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/user/business_contacts/{id}/favorite": {
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "favoriteBusinessContact",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [],
        "summary": "Favorite a business contact",
        "description": "Favorite a business contact.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of contact.\n"
            },
            "description": "The unique ID of the contact."
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/user/business_contacts/{id}/unfavorite": {
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "unfavoriteBusinessContact",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [],
        "summary": "Unfavorite a business contact",
        "description": "Favorite a business contact.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of contact.\n"
            },
            "description": "The unique ID of the contact."
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/user/business_contacts/sync_tokens": {
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "createBusinessContactSyncToken",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [],
        "summary": "Create a business contact sync token",
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "token": {
                      "type": "string",
                      "description": "The sync token.   \nClients should treat the sync token as an opaque string and should never try to assemble it.   \nThis document imposes no constraints on the format and clients should never impose any.\n",
                      "example": "RQ2dX9ZC7VuWlVpXXvad2dL3lyhjnN-7eOw95wXymoo."
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "token": "xxxxxxxxxxxxxxxxx"
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/user/business_contacts/sync_tokens/{token}/diff": {
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "listBusinessContactChanges",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [],
        "summary": "List business contact changes",
        "description": "List business contact changes.",
        "parameters": [
          {
            "name": "token",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The sync token.   \nClients should treat the sync token as an opaque string and should never try to assemble it.   \nThis document imposes no constraints on the format and clients should never impose any.\n",
              "example": "RQ2dX9ZC7VuWlVpXXvad2dL3lyhjnN-7eOw95wXymoo."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "token": {
                      "type": "string",
                      "description": "The sync token.   \nClients should treat the sync token as an opaque string and should never try to assemble it.   \nThis document imposes no constraints on the format and clients should never impose any.\n",
                      "example": "RQ2dX9ZC7VuWlVpXXvad2dL3lyhjnN-7eOw95wXymoo."
                    },
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "description": "The unique ID of contact.\n"
                          },
                          "name": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 64,
                            "description": "The name of contact.\n"
                          },
                          "email": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The email of contact.\n"
                          },
                          "company": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The company name of contact.\n"
                          },
                          "title": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The title of contact.\n"
                          },
                          "business": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The business phone number of contact.\n"
                          },
                          "business2": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The secondary business phone number of contact.\n"
                          },
                          "mobile_phone": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The mobile phone number of contact.\n"
                          },
                          "mobile_phone2": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The secondary mobile phone number of contact.\n"
                          },
                          "home_phone": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The home phone number of contact.\n"
                          },
                          "home_phone2": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The secondary home phone number of contact.\n"
                          },
                          "other": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The other phone number of contact.\n"
                          },
                          "business_fax": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The business fax of contact.\n"
                          },
                          "home_fax": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The home fax of contact.\n"
                          },
                          "address": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The address.\n"
                          },
                          "notes": {
                            "type": "string",
                            "maxLength": 1024,
                            "description": "The notes of contact.\n"
                          },
                          "favorite": {
                            "type": "boolean",
                            "example": true,
                            "description": "Mark if a contact has been added to the favorites list.\n"
                          },
                          "change_type": {
                            "type": "string",
                            "enum": [
                              "CREATED",
                              "UPDATED",
                              "DELETED"
                            ],
                            "example": "CREATED",
                            "description": "The resource change types can be either:  \n- `CREATED`: The resource has been created.   \n- `UPDATED`: The resource has been updated.   \n- `DELETED`: The resource has been deleted.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "token": "xxxxxxxxxxxxxxxxxx",
                      "items": [
                        {
                          "id": null,
                          "name": null,
                          "email": null,
                          "company": null,
                          "title": null,
                          "business": null,
                          "business2": null,
                          "mobile_phone": null,
                          "mobile_phone2": null,
                          "home_phone": null,
                          "home_phone2": null,
                          "other": null,
                          "business_fax": null,
                          "home_fax": null,
                          "address": null,
                          "notes": null,
                          "favorite": null,
                          "change_type": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/user/extension_contacts/{id}/favorite": {
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "favoriteExtensionContact",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [],
        "summary": "Favorite an extension contact",
        "description": "Favorite an extension contact.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of contact.\n"
            },
            "description": "The unique ID of the contact."
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/user/extension_contacts/{id}/unfavorite": {
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "unfavoriteExtensionContact",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [],
        "summary": "Unfavorite an extension contact",
        "description": "Favorite an extension contact.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of contact.\n"
            },
            "description": "The unique ID of the contact."
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/user/extension_contacts/sync_tokens": {
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "createExtensionContactSyncToken",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [],
        "summary": "Create a extension contact sync token",
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "token": {
                      "type": "string",
                      "description": "The sync token.   \nClients should treat the sync token as an opaque string and should never try to assemble it.   \nThis document imposes no constraints on the format and clients should never impose any.\n",
                      "example": "RQ2dX9ZC7VuWlVpXXvad2dL3lyhjnN-7eOw95wXymoo."
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "token": "xxxxxxxxxxxxxxx"
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/user/extension_contacts/sync_tokens/{token}/diff": {
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "listExtensionContactChanges",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [],
        "summary": "List extension contact changes",
        "description": "List extension contact changes.",
        "parameters": [
          {
            "name": "token",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The sync token.   \nClients should treat the sync token as an opaque string and should never try to assemble it.   \nThis document imposes no constraints on the format and clients should never impose any.\n",
              "example": "RQ2dX9ZC7VuWlVpXXvad2dL3lyhjnN-7eOw95wXymoo."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "token": {
                      "type": "string",
                      "description": "The sync token.   \nClients should treat the sync token as an opaque string and should never try to assemble it.   \nThis document imposes no constraints on the format and clients should never impose any.\n",
                      "example": "RQ2dX9ZC7VuWlVpXXvad2dL3lyhjnN-7eOw95wXymoo."
                    },
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "description": "The unique ID of user.\n"
                          },
                          "display_name": {
                            "type": "string",
                            "maxLength": 1024,
                            "description": "The display name of user.\n"
                          },
                          "email": {
                            "allOf": [
                              {
                                "type": "string",
                                "maxLength": 128,
                                "description": "The email address.\n",
                                "example": "example@example.com"
                              }
                            ],
                            "description": "The email address of user.\n"
                          },
                          "mobile_phone": {
                            "allOf": [
                              {
                                "type": "string",
                                "maxLength": 128,
                                "description": "The email address.\n",
                                "example": "example@example.com"
                              }
                            ],
                            "description": "The email address of user.\n"
                          },
                          "work_phone": {
                            "allOf": [
                              {
                                "type": "string",
                                "maxLength": 128,
                                "description": "The email address.\n",
                                "example": "example@example.com"
                              }
                            ],
                            "description": "The email address of user.\n"
                          },
                          "home_phone": {
                            "allOf": [
                              {
                                "type": "string",
                                "maxLength": 128,
                                "description": "The email address.\n",
                                "example": "example@example.com"
                              }
                            ],
                            "description": "The email address of user.\n"
                          },
                          "address": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The address.\n"
                          },
                          "department": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The department of user.\n"
                          },
                          "avatar_file_url": {
                            "type": "string",
                            "readOnly": true,
                            "example": "/api/blobs/WexWdABcd5D4PDgzTKV3gAAAEu00WcK",
                            "description": "The relative path to file url for file downloading.\n"
                          },
                          "extension_number": {
                            "type": "string",
                            "minLength": 3,
                            "maxLength": 64,
                            "pattern": "[0-9]{3,64}",
                            "description": "The extension number.\n"
                          },
                          "favorite": {
                            "type": "boolean",
                            "example": true,
                            "description": "Mark if a contact has been added to the favorites list.\n"
                          },
                          "change_type": {
                            "type": "string",
                            "enum": [
                              "CREATED",
                              "UPDATED",
                              "DELETED"
                            ],
                            "example": "CREATED",
                            "description": "The resource change types can be either:  \n- `CREATED`: The resource has been created.   \n- `UPDATED`: The resource has been updated.   \n- `DELETED`: The resource has been deleted.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "token": "xxxxxxxxxxxxxxxx",
                      "items": [
                        {
                          "id": null,
                          "display_name": null,
                          "email": null,
                          "mobile_phone": null,
                          "work_phone": null,
                          "home_phone": null,
                          "address": null,
                          "department": null,
                          "avatar_file_url": null,
                          "extension_number": null,
                          "favorite": null,
                          "change_type": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/user/crm_contacts/{id}/favorite": {
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "likeCrmContact",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [
          "CRMContact.ViewOnly"
        ],
        "summary": "Favorite a CRM contact",
        "description": "Favorite a CRM contact.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of contact.\n"
            },
            "description": "The unique ID of the contact."
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/user/crm_contacts/{id}/unfavorite": {
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "dislikeCRMContact",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [
          "CRMContact.ViewOnly"
        ],
        "summary": "Unfavorite a CRM contact",
        "description": "Favorite a CRM contact.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of contact.\n"
            },
            "description": "The unique ID of the contact."
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/user/crm_contacts/sync_tokens": {
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "createCRMContactSyncToken",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [
          "CRMContact.ViewOnly"
        ],
        "summary": "Create a CRM contact sync token",
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "token": {
                      "type": "string",
                      "description": "The sync token.   \nClients should treat the sync token as an opaque string and should never try to assemble it.   \nThis document imposes no constraints on the format and clients should never impose any.\n",
                      "example": "RQ2dX9ZC7VuWlVpXXvad2dL3lyhjnN-7eOw95wXymoo."
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "token": "xxxxxxxxxxxxxxxxx"
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/user/crm_contacts/sync_tokens/{token}/diff": {
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "listCRMContactChanges",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [
          "CRMContact.ViewOnly"
        ],
        "summary": "List CRM contact changes",
        "description": "List CRM contact changes.",
        "parameters": [
          {
            "name": "token",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The sync token.   \nClients should treat the sync token as an opaque string and should never try to assemble it.   \nThis document imposes no constraints on the format and clients should never impose any.\n",
              "example": "RQ2dX9ZC7VuWlVpXXvad2dL3lyhjnN-7eOw95wXymoo."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "token": {
                      "type": "string",
                      "description": "The sync token.   \nClients should treat the sync token as an opaque string and should never try to assemble it.   \nThis document imposes no constraints on the format and clients should never impose any.\n",
                      "example": "RQ2dX9ZC7VuWlVpXXvad2dL3lyhjnN-7eOw95wXymoo."
                    },
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "description": "The unique ID of contact.\n"
                          },
                          "first_name": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 64,
                            "description": "The first name of contact.\n"
                          },
                          "last_name": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 64,
                            "description": "The last name of contact.\n"
                          },
                          "email": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The email of contact.\n"
                          },
                          "company": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The company name of contact.\n"
                          },
                          "title": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The title of contact.\n"
                          },
                          "business": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The business phone number of contact.\n"
                          },
                          "business2": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The secondary business phone number of contact.\n"
                          },
                          "mobile_phone": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The mobile phone number of contact.\n"
                          },
                          "mobile_phone2": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The secondary mobile phone number of contact.\n"
                          },
                          "home_phone": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The home phone number of contact.\n"
                          },
                          "home_phone2": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The secondary home phone number of contact.\n"
                          },
                          "other": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The other phone number of contact.\n"
                          },
                          "business_fax": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The business fax of contact.\n"
                          },
                          "home_fax": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The home fax of contact.\n"
                          },
                          "address": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The address.\n"
                          },
                          "notes": {
                            "type": "string",
                            "maxLength": 1024,
                            "description": "The notes of contact.\n"
                          },
                          "url": {
                            "type": "string",
                            "description": "The access URL of contact.\n"
                          },
                          "type": {
                            "type": "string",
                            "description": "The CRM contact type.\n"
                          },
                          "favorite": {
                            "type": "boolean",
                            "example": true,
                            "description": "Mark if a contact has been added to the favorites list.\n"
                          },
                          "change_type": {
                            "type": "string",
                            "enum": [
                              "CREATED",
                              "UPDATED",
                              "DELETED"
                            ],
                            "example": "CREATED",
                            "description": "The resource change types can be either:  \n- `CREATED`: The resource has been created.   \n- `UPDATED`: The resource has been updated.   \n- `DELETED`: The resource has been deleted.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "token": "xxxxxxxxxxxxxxxxxx",
                      "items": [
                        {
                          "id": null,
                          "first_name": null,
                          "last_name": null,
                          "email": null,
                          "company": null,
                          "title": null,
                          "business": null,
                          "business2": null,
                          "mobile_phone": null,
                          "mobile_phone2": null,
                          "home_phone": null,
                          "home_phone2": null,
                          "other": null,
                          "business_fax": null,
                          "home_fax": null,
                          "address": null,
                          "notes": null,
                          "favorite": null,
                          "type": "Contact",
                          "url": null,
                          "change_type": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/user/call_queues": {
      "get": {
        "tags": [
          "User"
        ],
        "operationId": "listCurrentUserBelongedCallQueues",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [],
        "summary": "Retrieve the call queues which current user belongs",
        "description": "Retrieve the call queues which current user belongs.\n",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "description": "The unique ID of call queue.\n"
                          },
                          "name": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 64,
                            "description": "The name of call queue.\n"
                          },
                          "extension_number": {
                            "allOf": [
                              {
                                "type": "string",
                                "minLength": 3,
                                "maxLength": 64,
                                "pattern": "[0-9]{3,64}",
                                "description": "The extension number.\n"
                              }
                            ],
                            "description": "The extension number of call queue.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "items": [
                        {
                          "id": null,
                          "name": null,
                          "extension_number": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/user/call_queues/{id}/agent": {
      "get": {
        "tags": [
          "User"
        ],
        "operationId": "getCurrentUserCallQueueAgentStatus",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [],
        "summary": "Retrieve call queue agent",
        "description": "Retrieve information of call queue agent.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of call queue.\n"
            },
            "description": "The unique ID of the call queue."
          }
        ],
        "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"
                        }
                      ],
                      "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 queue.   \nOnly valid when `polling_strategy` is skill based.\n"
                    },
                    "status": {
                      "type": "string",
                      "enum": [
                        "READY",
                        "NOT_READY",
                        "QUEUE_CALL",
                        "OTHER_CALL",
                        "WRAP_UP",
                        "BREAK",
                        "LUNCH",
                        "LOGGED_OUT",
                        "OFFLINE"
                      ],
                      "readOnly": true,
                      "description": "Current status of agent: \n- `READY`:  \n- `NOT_READY`:  \n- `QUEUE_CALL`:  \n- `OTHER_CALL`:  \n- `WRAP_UP`:  \n- `BREAK`:  \n- `LUNCH`:  \n- `TRANSFER`:   \n- `CONSULT_TRANSFER`:   \n- `ON_HOLD`:   \n- `LOGGED_OUT`:  \n- `OFFLINE`:\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "extension_number": null,
                      "display_name": null,
                      "skill_level": null,
                      "status": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "setCurrentUserCallQueueAgentStatus",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [],
        "summary": "Set call queue agent status",
        "description": "Set call queue agent status.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of call queue.\n"
            },
            "description": "The unique ID of call queue."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "status": {
                    "type": "string",
                    "enum": [
                      "READY",
                      "NOT_READY",
                      "WRAP_UP",
                      "LOGGED_IN",
                      "LOGGED_OUT"
                    ],
                    "example": "READY",
                    "description": "Change call queue agent status to one of the following: \n- `READY`:  \n- `NOT_READY`:  \n- `WRAP_UP`:  \n- `LOGGED_IN`:   \n- `LOGGED_OUT`:\n"
                  },
                  "reason": {
                    "type": "string",
                    "example": "NOT_RAEDY",
                    "description": "The reason for changing a call queue agent's status.  \nStandard presets include:  \n- `NOT_RAEDY`  \n- `LUNCH`  \n- `BUSINESS_TRIP`  \n- `DO_NOT_DISTURB`\n- `AWAY`  \nYou can also provide a custom string for a custom reason.  \n**Note:** This field is only effective when setting `status` to `NOT_READY`.  \nFor other statuses, this field will be ignored.  \nThe reason field is optional and can be left empty.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "status": "NOT_READY",
                    "reason": "At lunch"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/user/outbound_caller_ids": {
      "get": {
        "tags": [
          "User"
        ],
        "operationId": "listCurrentUserOutboundCallerIds",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [],
        "summary": "Retrieve a collection of outbound caller ids",
        "description": "Retrieve a collection of outbound caller ids.\n",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "provider_id": {
                            "allOf": [
                              {
                                "allOf": [
                                  {
                                    "type": "string",
                                    "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                    "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"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "items": [
                        {
                          "provider_id": null,
                          "caller_id": null,
                          "description": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/user/ring_groups": {
      "get": {
        "tags": [
          "User"
        ],
        "operationId": "listCurrentUserBelongedRingGroups",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [],
        "summary": "Retrieve the ring groups which current user belongs",
        "description": "Retrieve the ring groups which current user belongs.\n",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "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"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "items": [
                        {
                          "id": null,
                          "name": null,
                          "extension_number": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/user/sessions": {
      "get": {
        "tags": [
          "User"
        ],
        "operationId": "listCurrentUserCallSessions",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [],
        "summary": "List call sessions",
        "description": "Retrieve a collection current user call sessions.\n",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "count": {
                      "type": "integer",
                      "format": "int64",
                      "minimum": 0,
                      "example": 100,
                      "description": "Total number of resource.\n"
                    },
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "description": "The unique ID of session.\n"
                          },
                          "calls": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "caller": {
                                  "type": "string",
                                  "maxLength": 256,
                                  "description": "The caller number of the call.\n"
                                },
                                "caller_display_name": {
                                  "type": "string",
                                  "maxLength": 1024,
                                  "description": "The caller display name of the call.\n"
                                },
                                "callee": {
                                  "type": "string",
                                  "maxLength": 256,
                                  "description": "The callee number of the call.\n"
                                },
                                "trunk": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 64,
                                  "description": "The name of the trunk.\n"
                                },
                                "started_at": {
                                  "allOf": [
                                    {
                                      "type": "string",
                                      "format": "date_time",
                                      "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                                      "example": "2017-07-21T17:32:28Z"
                                    }
                                  ],
                                  "description": "The start time of the call session.\n"
                                },
                                "talking_time": {
                                  "type": "integer",
                                  "format": "uint32",
                                  "description": "The duration of the call session in seconds.\n"
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": null,
                          "calls": [
                            {
                              "caller": null,
                              "caller_display_name": null,
                              "callee": null,
                              "trunk": null,
                              "started_at": null,
                              "talking_time": null
                            }
                          ]
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/users": {
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "createUser",
        "x-category": "extensions",
        "x-subcategory": "extensions",
        "x-permissions": [
          "User.FullAccess"
        ],
        "summary": "Create a user",
        "description": "Create a new user.\n",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64,
                    "description": "The user's account name.   \nOnly letters, numbers, and the following special characters can be added: underscore, dash, single quote, and period (_, -, ', and .).   \nUsername cannot start or end with period (.).   \n`admin`, `system`, `administrator`, and `root` are reserved names for system admin only with case ignored.\n"
                  },
                  "password": {
                    "type": "string",
                    "description": "The password of user.\n"
                  },
                  "email": {
                    "allOf": [
                      {
                        "type": "string",
                        "maxLength": 128,
                        "description": "The email address.\n",
                        "example": "example@example.com"
                      }
                    ],
                    "description": "The email address of user.\n"
                  },
                  "display_name": {
                    "type": "string",
                    "maxLength": 1024,
                    "description": "The display name of user.\n"
                  },
                  "enabled": {
                    "type": "boolean",
                    "default": true,
                    "description": "Allows temporarily disabling the extension.\n"
                  },
                  "role": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64,
                    "example": "User",
                    "description": "Roles include built-in roles and custom roles.   \nBuilt-in roles roles cannot be modified.   \nAlso, the names of built-in roles are reserved words,   \ncustom roles are not allowed to use these names to avoid unnecessary confusion.   \nBuilt-in roles include:   \n- `SystemAdmin`: the system administrator has almost all permissions.\n- `OperationsAdmin`: the operations administrator.\n- `SiteAdmin`: the site administrator.\n- `Dealer`: the sales manager has all sold tenant resource permissions.\n- `Admin`: the admin has all tenant-wide resource permissions.\n- `StandardUser`: the user all user-wide resource permissions.\n- `StandardInternationalUser`: the user all user-wide resource permissions with international call permissions.\n- `QueueManager`: The call queue manager.\n"
                  },
                  "mobile_phone": {
                    "type": "string",
                    "maxLength": 32,
                    "description": "The mobile phone number of user.\n"
                  },
                  "work_phone": {
                    "type": "string",
                    "maxLength": 32,
                    "description": "The office phone number of user.\n"
                  },
                  "home_phone": {
                    "type": "string",
                    "maxLength": 32,
                    "description": "The home phone number of user.\n"
                  },
                  "address": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The address.\n"
                  },
                  "department": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The department of user.\n"
                  },
                  "extension_number": {
                    "type": "string",
                    "minLength": 3,
                    "maxLength": 64,
                    "pattern": "[0-9]{3,64}",
                    "description": "The extension number.\n"
                  },
                  "extension_password": {
                    "type": "string",
                    "description": "The extension password.\n"
                  },
                  "enable_audio_recording": {
                    "type": "boolean",
                    "default": false,
                    "description": "Records all calls and saves audio recordings on server.\n"
                  },
                  "enable_video_recording": {
                    "type": "boolean",
                    "default": false,
                    "description": "Records all calls and saves video recordings on server.\n"
                  },
                  "enable_dnd": {
                    "type": "boolean",
                    "description": "Enable `Do Not Disturb` or not.\n"
                  },
                  "enable_acb": {
                    "type": "boolean",
                    "description": "Enable `Automatic Callback` or not.\n"
                  },
                  "enable_hot_desking": {
                    "type": "boolean",
                    "default": false,
                    "description": "Enable hot desking feature or not.\n"
                  },
                  "anonymous_outbound_calls": {
                    "type": "boolean",
                    "default": false,
                    "description": "Always make outbound anonymous calls or not.\n"
                  },
                  "sms": {
                    "type": "string",
                    "enum": [
                      "DISABLE",
                      "ALLOW",
                      "ALLOW_WITH_SENDER_ID"
                    ],
                    "default": "DISABLE",
                    "description": "The preferred configuration for SMS/MMS.   \nNote: Only users with `UserManagement::Users` privilege can change this property.   \n  - `DISABLE`: Disable user SMS/MMS feature.\n  - `ALLOW`: Enable user SMS/MMS feature but with outbound caller ID.\n  - `ALLOW_WITH_SENDER_ID`: Enable user SMS/MMS but with trunk sender ID.\n"
                  },
                  "delivery_outbound_cid": {
                    "type": "boolean",
                    "default": true,
                    "description": "Always delivery outbound caller ID or not.\n"
                  },
                  "outbound_caller_ids": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "provider_id": {
                          "allOf": [
                            {
                              "allOf": [
                                {
                                  "type": "string",
                                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                  "description": "The unique ID of the resource.\n"
                                }
                              ],
                              "description": "The unique ID of user.\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"
                        },
                        "preferred": {
                          "type": "boolean",
                          "description": "Whether this outbound caller id preferred.\n"
                        },
                        "description": {
                          "type": "string",
                          "maxLength": 1024,
                          "description": "The descriptive information about this outbound caller id.\n"
                        }
                      }
                    },
                    "description": "A collection of outbound caller IDs.\n"
                  },
                  "custom_options": {
                    "type": "string",
                    "description": "Some custom configuration options serialized as json string\n"
                  },
                  "office_hours": {
                    "allOf": [
                      {
                        "type": "object",
                        "properties": {
                          "mode": {
                            "type": "string",
                            "enum": [
                              "GLOBAL",
                              "CUSTOM"
                            ],
                            "example": "CUSTOM",
                            "description": "The office hours mode can be either:  \n- `GLOBAL`: Use global office hours.\n- `CUSTOM`: Use specific office hours.\n"
                          }
                        }
                      },
                      {
                        "type": "object",
                        "properties": {
                          "monday": {
                            "type": "object",
                            "properties": {
                              "enabled": {
                                "type": "boolean",
                                "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                              },
                              "ranges": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "from": {
                                      "type": "string",
                                      "example": "09:00",
                                      "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                    },
                                    "to": {
                                      "type": "string",
                                      "example": "17:00",
                                      "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                    }
                                  }
                                },
                                "description": "Multiple start and end time periods make up the working time.\n"
                              }
                            }
                          },
                          "tuesday": {
                            "type": "object",
                            "properties": {
                              "enabled": {
                                "type": "boolean",
                                "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                              },
                              "ranges": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "from": {
                                      "type": "string",
                                      "example": "09:00",
                                      "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                    },
                                    "to": {
                                      "type": "string",
                                      "example": "17:00",
                                      "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                    }
                                  }
                                },
                                "description": "Multiple start and end time periods make up the working time.\n"
                              }
                            }
                          },
                          "wednesday": {
                            "type": "object",
                            "properties": {
                              "enabled": {
                                "type": "boolean",
                                "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                              },
                              "ranges": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "from": {
                                      "type": "string",
                                      "example": "09:00",
                                      "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                    },
                                    "to": {
                                      "type": "string",
                                      "example": "17:00",
                                      "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                    }
                                  }
                                },
                                "description": "Multiple start and end time periods make up the working time.\n"
                              }
                            }
                          },
                          "thursday": {
                            "type": "object",
                            "properties": {
                              "enabled": {
                                "type": "boolean",
                                "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                              },
                              "ranges": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "from": {
                                      "type": "string",
                                      "example": "09:00",
                                      "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                    },
                                    "to": {
                                      "type": "string",
                                      "example": "17:00",
                                      "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                    }
                                  }
                                },
                                "description": "Multiple start and end time periods make up the working time.\n"
                              }
                            }
                          },
                          "friday": {
                            "type": "object",
                            "properties": {
                              "enabled": {
                                "type": "boolean",
                                "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                              },
                              "ranges": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "from": {
                                      "type": "string",
                                      "example": "09:00",
                                      "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                    },
                                    "to": {
                                      "type": "string",
                                      "example": "17:00",
                                      "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                    }
                                  }
                                },
                                "description": "Multiple start and end time periods make up the working time.\n"
                              }
                            }
                          },
                          "saturday": {
                            "type": "object",
                            "properties": {
                              "enabled": {
                                "type": "boolean",
                                "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                              },
                              "ranges": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "from": {
                                      "type": "string",
                                      "example": "09:00",
                                      "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                    },
                                    "to": {
                                      "type": "string",
                                      "example": "17:00",
                                      "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                    }
                                  }
                                },
                                "description": "Multiple start and end time periods make up the working time.\n"
                              }
                            }
                          },
                          "sunday": {
                            "type": "object",
                            "properties": {
                              "enabled": {
                                "type": "boolean",
                                "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                              },
                              "ranges": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "from": {
                                      "type": "string",
                                      "example": "09:00",
                                      "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                    },
                                    "to": {
                                      "type": "string",
                                      "example": "17:00",
                                      "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                    }
                                  }
                                },
                                "description": "Multiple start and end time periods make up the working time.\n"
                              }
                            }
                          }
                        }
                      }
                    ]
                  },
                  "available_office_hours_forward_rule": {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "enum": [
                          "FORWARD_TO_NUMBER",
                          "FORWARD_TO_VOICEMAIL",
                          "RING_ANYWAY",
                          "HANGUP"
                        ],
                        "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`: Forward to the specified number\n- `FORWARD_TO_VOICEMAIL`: Forward to the specified voicemail.\n- `RING_ANYWAY`: Ring anyway.\n- `HANGUP`: Finish call\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"
                      }
                    }
                  },
                  "available_non_office_hours_forward_rule": {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "enum": [
                          "FORWARD_TO_NUMBER",
                          "FORWARD_TO_VOICEMAIL",
                          "RING_ANYWAY",
                          "HANGUP"
                        ],
                        "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`: Forward to the specified number\n- `FORWARD_TO_VOICEMAIL`: Forward to the specified voicemail.\n- `RING_ANYWAY`: Ring anyway.\n- `HANGUP`: Finish call\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"
                      }
                    }
                  },
                  "available_no_answer_forward_rule": {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "enum": [
                          "FORWARD_TO_NUMBER",
                          "FORWARD_TO_VOICEMAIL",
                          "HANGUP"
                        ],
                        "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`: Forward to the specified number\n- `FORWARD_TO_VOICEMAIL`: Forward to the specified voicemail.\n- `HANGUP`: Finish call\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"
                      },
                      "timeout": {
                        "type": "integer",
                        "format": "int32",
                        "minimum": 0,
                        "default": 60,
                        "description": "Duration that the call will remain ringing when no one answered, in seconds.\n"
                      }
                    }
                  },
                  "busy_office_hours_forward_rule": {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "enum": [
                          "FORWARD_TO_NUMBER",
                          "FORWARD_TO_VOICEMAIL",
                          "RING_ANYWAY",
                          "HANGUP"
                        ],
                        "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`: Forward to the specified number\n- `FORWARD_TO_VOICEMAIL`: Forward to the specified voicemail.\n- `RING_ANYWAY`: Ring anyway.\n- `HANGUP`: Finish call\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"
                      }
                    }
                  },
                  "busy_non_office_hours_forward_rule": {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "enum": [
                          "FORWARD_TO_NUMBER",
                          "FORWARD_TO_VOICEMAIL",
                          "RING_ANYWAY",
                          "HANGUP"
                        ],
                        "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`: Forward to the specified number\n- `FORWARD_TO_VOICEMAIL`: Forward to the specified voicemail.\n- `RING_ANYWAY`: Ring anyway.\n- `HANGUP`: Finish call\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"
                      }
                    }
                  },
                  "busy_no_answer_forward_rule": {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "enum": [
                          "FORWARD_TO_NUMBER",
                          "FORWARD_TO_VOICEMAIL",
                          "HANGUP"
                        ],
                        "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`: Forward to the specified number\n- `FORWARD_TO_VOICEMAIL`: Forward to the specified voicemail.\n- `HANGUP`: Finish call\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"
                      },
                      "timeout": {
                        "type": "integer",
                        "format": "int32",
                        "minimum": 0,
                        "default": 60,
                        "description": "Duration that the call will remain ringing when no one answered, in seconds.\n"
                      }
                    }
                  },
                  "dnd_office_hours_forward_rule": {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "enum": [
                          "FORWARD_TO_NUMBER",
                          "FORWARD_TO_VOICEMAIL",
                          "HANGUP"
                        ],
                        "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`: Forward to the specified number\n- `FORWARD_TO_VOICEMAIL`: Forward to the specified voicemail.\n- `HANGUP`: Finish call\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"
                      }
                    }
                  },
                  "dnd_non_office_hours_forward_rule": {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "enum": [
                          "FORWARD_TO_NUMBER",
                          "FORWARD_TO_VOICEMAIL",
                          "HANGUP"
                        ],
                        "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`: Forward to the specified number\n- `FORWARD_TO_VOICEMAIL`: Forward to the specified voicemail.\n- `HANGUP`: Finish call\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"
                      }
                    }
                  },
                  "away_office_hours_forward_rule": {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "enum": [
                          "FORWARD_TO_NUMBER",
                          "FORWARD_TO_VOICEMAIL",
                          "HANGUP"
                        ],
                        "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`: Forward to the specified number\n- `FORWARD_TO_VOICEMAIL`: Forward to the specified voicemail.\n- `HANGUP`: Finish call\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"
                      }
                    }
                  },
                  "away_non_office_hours_forward_rule": {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "enum": [
                          "FORWARD_TO_NUMBER",
                          "FORWARD_TO_VOICEMAIL",
                          "HANGUP"
                        ],
                        "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`: Forward to the specified number\n- `FORWARD_TO_VOICEMAIL`: Forward to the specified voicemail.\n- `HANGUP`: Finish call\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"
                      }
                    }
                  },
                  "lunch_office_hours_forward_rule": {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "enum": [
                          "FORWARD_TO_NUMBER",
                          "FORWARD_TO_VOICEMAIL",
                          "HANGUP"
                        ],
                        "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`: Forward to the specified number\n- `FORWARD_TO_VOICEMAIL`: Forward to the specified voicemail.\n- `HANGUP`: Finish call\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"
                      }
                    }
                  },
                  "lunch_non_office_hours_forward_rule": {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "enum": [
                          "FORWARD_TO_NUMBER",
                          "FORWARD_TO_VOICEMAIL",
                          "HANGUP"
                        ],
                        "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`: Forward to the specified number\n- `FORWARD_TO_VOICEMAIL`: Forward to the specified voicemail.\n- `HANGUP`: Finish call\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"
                      }
                    }
                  },
                  "trip_office_hours_forward_rule": {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "enum": [
                          "FORWARD_TO_NUMBER",
                          "FORWARD_TO_VOICEMAIL",
                          "HANGUP"
                        ],
                        "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`: Forward to the specified number\n- `FORWARD_TO_VOICEMAIL`: Forward to the specified voicemail.\n- `HANGUP`: Finish call\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"
                      }
                    }
                  },
                  "trip_non_office_hours_forward_rule": {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "enum": [
                          "FORWARD_TO_NUMBER",
                          "FORWARD_TO_VOICEMAIL",
                          "HANGUP"
                        ],
                        "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`: Forward to the specified number\n- `FORWARD_TO_VOICEMAIL`: Forward to the specified voicemail.\n- `HANGUP`: Finish call\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"
                      }
                    }
                  },
                  "offline_office_hours_forward_rule": {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "enum": [
                          "FORWARD_TO_NUMBER",
                          "FORWARD_TO_VOICEMAIL",
                          "HANGUP"
                        ],
                        "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`: Forward to the specified number\n- `FORWARD_TO_VOICEMAIL`: Forward to the specified voicemail.\n- `HANGUP`: Finish call\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"
                      }
                    }
                  },
                  "offline_non_office_hours_forward_rule": {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "enum": [
                          "FORWARD_TO_NUMBER",
                          "FORWARD_TO_VOICEMAIL",
                          "HANGUP"
                        ],
                        "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`: Forward to the specified number\n- `FORWARD_TO_VOICEMAIL`: Forward to the specified voicemail.\n- `HANGUP`: Finish call\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"
                      }
                    }
                  },
                  "custom_forward_rules": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "action": {
                          "type": "string",
                          "enum": [
                            "FORWARD_TO_NUMBER",
                            "FORWARD_TO_VOICEMAIL",
                            "RING_ANYWAY",
                            "HANGUP"
                          ],
                          "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`: Forward to the specified number\n- `FORWARD_TO_VOICEMAIL`: Forward to the specified voicemail.\n- `RING_ANYWAY`: Ring anyway.\n- `HANGUP`: Finish call\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"
                        },
                        "caller_id": {
                          "type": "string",
                          "description": "Specify the caller ID mask.\n"
                        },
                        "type": {
                          "type": "string",
                          "enum": [
                            "ALL_HOURS",
                            "SPECIFIC_HOURS",
                            "OUTSIDE_SPECIFIC_HOURS"
                          ],
                          "description": "Specify hours mode for forward rule:\n- `ALL_HOURS`:\n- `SPECIFIC_HOURS`:\n- `OUTSIDE_SPECIFIC_HOURS`:\n"
                        },
                        "hours": {
                          "allOf": [
                            {
                              "type": "object",
                              "properties": {
                                "monday": {
                                  "type": "object",
                                  "properties": {
                                    "enabled": {
                                      "type": "boolean",
                                      "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                    },
                                    "ranges": {
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "from": {
                                            "type": "string",
                                            "example": "09:00",
                                            "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                          },
                                          "to": {
                                            "type": "string",
                                            "example": "17:00",
                                            "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                          }
                                        }
                                      },
                                      "description": "Multiple start and end time periods make up the working time.\n"
                                    }
                                  }
                                },
                                "tuesday": {
                                  "type": "object",
                                  "properties": {
                                    "enabled": {
                                      "type": "boolean",
                                      "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                    },
                                    "ranges": {
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "from": {
                                            "type": "string",
                                            "example": "09:00",
                                            "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                          },
                                          "to": {
                                            "type": "string",
                                            "example": "17:00",
                                            "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                          }
                                        }
                                      },
                                      "description": "Multiple start and end time periods make up the working time.\n"
                                    }
                                  }
                                },
                                "wednesday": {
                                  "type": "object",
                                  "properties": {
                                    "enabled": {
                                      "type": "boolean",
                                      "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                    },
                                    "ranges": {
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "from": {
                                            "type": "string",
                                            "example": "09:00",
                                            "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                          },
                                          "to": {
                                            "type": "string",
                                            "example": "17:00",
                                            "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                          }
                                        }
                                      },
                                      "description": "Multiple start and end time periods make up the working time.\n"
                                    }
                                  }
                                },
                                "thursday": {
                                  "type": "object",
                                  "properties": {
                                    "enabled": {
                                      "type": "boolean",
                                      "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                    },
                                    "ranges": {
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "from": {
                                            "type": "string",
                                            "example": "09:00",
                                            "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                          },
                                          "to": {
                                            "type": "string",
                                            "example": "17:00",
                                            "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                          }
                                        }
                                      },
                                      "description": "Multiple start and end time periods make up the working time.\n"
                                    }
                                  }
                                },
                                "friday": {
                                  "type": "object",
                                  "properties": {
                                    "enabled": {
                                      "type": "boolean",
                                      "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                    },
                                    "ranges": {
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "from": {
                                            "type": "string",
                                            "example": "09:00",
                                            "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                          },
                                          "to": {
                                            "type": "string",
                                            "example": "17:00",
                                            "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                          }
                                        }
                                      },
                                      "description": "Multiple start and end time periods make up the working time.\n"
                                    }
                                  }
                                },
                                "saturday": {
                                  "type": "object",
                                  "properties": {
                                    "enabled": {
                                      "type": "boolean",
                                      "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                    },
                                    "ranges": {
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "from": {
                                            "type": "string",
                                            "example": "09:00",
                                            "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                          },
                                          "to": {
                                            "type": "string",
                                            "example": "17:00",
                                            "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                          }
                                        }
                                      },
                                      "description": "Multiple start and end time periods make up the working time.\n"
                                    }
                                  }
                                },
                                "sunday": {
                                  "type": "object",
                                  "properties": {
                                    "enabled": {
                                      "type": "boolean",
                                      "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                    },
                                    "ranges": {
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "from": {
                                            "type": "string",
                                            "example": "09:00",
                                            "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                          },
                                          "to": {
                                            "type": "string",
                                            "example": "17:00",
                                            "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                          }
                                        }
                                      },
                                      "description": "Multiple start and end time periods make up the working time.\n"
                                    }
                                  }
                                }
                              }
                            }
                          ],
                          "description": "Specify hours for this custom forward rule.\n"
                        }
                      }
                    }
                  },
                  "voicemail_prompt": {
                    "type": "string",
                    "example": "en-US",
                    "description": "BCP 47 Language Tags (The Internet Best Current Practices (BCP) for language tags).\nA language tag is composed of a sequence of one or more subtags such as language, region, variant and script subtags.\nWhen a language tag is comprised of more than one subtag, the subtag values are separated by the \"-\" character.\nYou will most commonly find language tags written with 2 subtags - language and region. For example: en-US.\n"
                  },
                  "enable_voicemail_pin": {
                    "type": "boolean",
                    "default": true,
                    "description": "Whether the PIN is required to access voice mail of extension.\n"
                  },
                  "voicemail_pin": {
                    "type": "string",
                    "description": "The PIN number for accessing.\n"
                  },
                  "enable_voicemail_notify": {
                    "type": "boolean",
                    "default": false,
                    "description": "Enable voicemail to email notify.\n"
                  },
                  "voicemail_play_datetime": {
                    "type": "string",
                    "enum": [
                      "DISABLE",
                      "12_HOUR_CLOCK",
                      "24_HOUR_CLOCK"
                    ],
                    "description": "Announces Date and Time of Message.\n- `DISABLE`: Do not read;\n- `12_HOUR_CLOCK`: Read in 12-hour clock;\n- `24_HOUR_CLOCK`: Read in 24-hour clock.\n"
                  },
                  "interface": {
                    "type": "string",
                    "enum": [
                      "WEB_DOMAIN",
                      "PUBLIC_IPV4",
                      "PUBLIC_IPV6",
                      "PRIVATE_IPV4",
                      "PRIVATE_IPV6",
                      "SBC_DOMAIN"
                    ],
                    "description": "The interface type for QR code or auto provisioning.   \nCan be neither:  \n- `WEB_DOMAIN`:\n- `PUBLIC_IPV4`:\n- `PUBLIC_IPV6`:\n- `PRIVATE_IPV4`:\n- `PRIVATE_IPV6`:\n- `SBC_DOMAIN`:\n"
                  },
                  "preferred_transport": {
                    "type": "string",
                    "enum": [
                      "UDP",
                      "TCP",
                      "TLS"
                    ],
                    "description": "The transport protocol:  \nCan be either:  \n- `UDP`:\n- `TCP`:\n- `TLS`:\n"
                  },
                  "blfs": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "key": {
                          "type": "string",
                          "description": "The key of BLF.\n"
                        },
                        "value": {
                          "type": "string",
                          "description": "The value of BLF.\n"
                        },
                        "first_name": {
                          "type": "string",
                          "description": "The first name of BLF.\n"
                        },
                        "last_name": {
                          "type": "string",
                          "description": "The last name of BLF.\n"
                        }
                      }
                    },
                    "description": "A collection of BLFs.\n"
                  },
                  "enable_ai_transcript": {
                    "type": "boolean",
                    "description": "Enable `ai transcript` or not.\n"
                  },
                  "enable_uc_app": {
                    "type": "boolean",
                    "description": "Enable `user-agent of app` or not.\n"
                  },
                  "enable_teams_phone_app": {
                    "type": "boolean",
                    "description": "Enable `enable teams phone app` or not.\n"
                  },
                  "phones": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "mac": {
                          "allOf": [
                            {
                              "type": "string",
                              "description": "MAC address.\n"
                            }
                          ],
                          "description": "MAC address of this IP phone.\n"
                        },
                        "filename": {
                          "type": "string",
                          "description": "Template XML file name for phone provisioning.\n"
                        },
                        "vendor": {
                          "type": "string",
                          "description": "The phone vendor of IP phone.\n"
                        },
                        "model": {
                          "type": "string",
                          "description": "The name of IP phone model.\n"
                        },
                        "password": {
                          "type": "string",
                          "description": "Password for accessing the Web interface of phone.\nThe username remains default because most phone manufacturers do not\nallow modification of the user name. This is supported for some phone model, such as \"Snom 300\".\n"
                        },
                        "language": {
                          "type": "string",
                          "enum": [
                            "ENGLISH",
                            "CHINESE",
                            "DUTCH",
                            "FRENCH",
                            "GERMAN",
                            "GREEK",
                            "ITALIAN",
                            "JAPANESE",
                            "POLISH",
                            "RUSSIAN",
                            "SPANISH",
                            "SWEDISH",
                            "UKRAINIAN",
                            "BULGARIAN"
                          ],
                          "description": "Language for strings displayed on Phone Display LCD.\nSupported languages include ENGLISH, CHINESE, DUTCH, FRENCH, GERMAN,\nGREEK, ITALIAN, JAPANESE, POLISH, RUSSIAN, SPANISH, SWEDISH, UKRAINIAN, and BULGARIAN.\n"
                        },
                        "transfer": {
                          "type": "string",
                          "enum": [
                            "BLIND",
                            "ATTENDED",
                            "NEW_CALL"
                          ],
                          "default": "BLIND",
                          "description": "The transfer method for auto provision.  \nCan be either: \n- `BLIND`: After the IP phone is configured with the BLF of a certain key, during a call on the IP phone, press the key, and the phone will directly initiate a Blind transfer to the configured number.\n- `ATTENDED`: After the IP phone is configured with the BLF of a key, during a call on the IP phone, press the key, and the phone will directly initiate an Attended transfer to the configured number.\n- `NEW_CALL`: After the IP phone is configured with the BLF of a certain key, during a call on the IP phone, press the key, and the phone will initiate a new call to the configured number.\n"
                        },
                        "timezone": {
                          "type": "string",
                          "description": "The timezone of phone.\n"
                        },
                        "ringtone": {
                          "type": "string",
                          "description": "The ringtone of phone.\n"
                        },
                        "queue_ringtone": {
                          "type": "string",
                          "description": "The queue ringtone of phone for queue calls or ring group calls.\n"
                        },
                        "external_ringtone": {
                          "type": "string",
                          "description": "The ringtone of phone for external calls.\n"
                        },
                        "date_format": {
                          "type": "string",
                          "description": "The date format of phone.\n"
                        },
                        "time_format": {
                          "type": "string",
                          "description": "The time format of phone.\n"
                        },
                        "powerled": {
                          "type": "string",
                          "description": "The power led of phone.\n"
                        },
                        "backlight": {
                          "type": "string",
                          "description": "The backlight of phone.\n"
                        },
                        "screensaver": {
                          "type": "string",
                          "description": "The screensaver of phone.\n"
                        },
                        "rps": {
                          "type": "boolean",
                          "description": "Send to RPS or not.\n"
                        },
                        "https": {
                          "type": "boolean",
                          "description": "Whether to use https\n"
                        },
                        "codecs": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "The list of currently enabled codec formats.\n"
                        },
                        "enable_lldp": {
                          "type": "boolean",
                          "default": false,
                          "description": "Enable or disable Link Layer Discovery Protocol."
                        },
                        "enable_vlan_wan_port": {
                          "type": "boolean",
                          "default": false,
                          "description": "Enable or disable VLAN for WAN Port.\n"
                        },
                        "wan_port_id": {
                          "type": "integer",
                          "minimum": 1,
                          "maximum": 4094,
                          "description": "VLAN ID for WAN PORT.\n"
                        },
                        "wan_port_priority": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 7,
                          "description": "VLAN priority for WAN Port.\n"
                        },
                        "enable_vlan_pc_port": {
                          "type": "boolean",
                          "default": false,
                          "description": "Enable or disable VLAN for PC Port.\n"
                        },
                        "pc_port_id": {
                          "type": "integer",
                          "minimum": 1,
                          "maximum": 4094,
                          "description": "VLAN ID for PC PORT.\n"
                        },
                        "pc_port_priority": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 7,
                          "description": "VLAN priority for PC Port.\n"
                        },
                        "interface": {
                          "type": "string",
                          "enum": [
                            "WEB_DOMAIN",
                            "PUBLIC_IPV4",
                            "PUBLIC_IPV6",
                            "PRIVATE_IPV4",
                            "PRIVATE_IPV6",
                            "SBC_DOMAIN"
                          ],
                          "description": "The interface type for QR code or auto provisioning.   \nCan be neither:  \n- `WEB_DOMAIN`:\n- `PUBLIC_IPV4`:\n- `PUBLIC_IPV6`:\n- `PRIVATE_IPV4`:\n- `PRIVATE_IPV6`:\n- `SBC_DOMAIN`:\n"
                        },
                        "preferred_transport": {
                          "type": "string",
                          "enum": [
                            "UDP",
                            "TCP",
                            "TLS"
                          ],
                          "description": "The transport protocol:  \nCan be either:  \n- `UDP`:\n- `TCP`:\n- `TLS`:\n"
                        },
                        "serial_number": {
                          "type": "string",
                          "description": "The serial number of phone.\n"
                        },
                        "door_password1": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 8,
                          "description": "The primary door password of phone. Only numeric sequences are allowed.\n"
                        },
                        "door_password2": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 8,
                          "description": "The secondary door password of phone. Only numeric sequences are allowed.\n"
                        }
                      }
                    }
                  }
                },
                "required": [
                  "name",
                  "display_name",
                  "password",
                  "email",
                  "role",
                  "extension_number",
                  "extension_password",
                  "voicemail_pin"
                ]
              },
              "examples": {
                "default": {
                  "psummary": null,
                  "value": {
                    "name": null,
                    "password": null,
                    "email": null,
                    "display_name": null,
                    "enabled": null,
                    "role": null,
                    "mobile_phone": null,
                    "work_phone": null,
                    "home_phone": null,
                    "address": null,
                    "department": null,
                    "extension_number": null,
                    "extension_password": null,
                    "enable_audio_recording": null,
                    "enable_video_recording": null,
                    "enable_dnd": null,
                    "enable_acb": null,
                    "enable_hot_desking": null,
                    "anonymous_outbound_calls": null,
                    "sms": null,
                    "delivery_outbound_cid": null,
                    "outbound_caller_ids": null,
                    "custom_options": null,
                    "office_hours": null,
                    "available_office_hours_forward_rule": null,
                    "available_non_office_hours_forward_rule": null,
                    "available_no_answer_forward_rule": null,
                    "busy_office_hours_forward_rule": null,
                    "busy_non_office_hours_forward_rule": null,
                    "busy_no_answer_forward_rule": null,
                    "dnd_office_hours_forward_rule": null,
                    "dnd_non_office_hours_forward_rule": null,
                    "away_office_hours_forward_rule": null,
                    "away_non_office_hours_forward_rule": null,
                    "lunch_office_hours_forward_rule": null,
                    "lunch_non_office_hours_forward_rule": null,
                    "trip_office_hours_forward_rule": null,
                    "trip_non_office_hours_forward_rule": null,
                    "offline_office_hours_forward_rule": null,
                    "offline_non_office_hours_forward_rule": null,
                    "custom_forward_rules": null,
                    "voicemail_prompt": null,
                    "enable_voicemail_pin": null,
                    "voicemail_pin": null,
                    "enable_voicemail_notify": null,
                    "voicemail_play_datetime": null,
                    "interface": null,
                    "preferred_transport": null,
                    "blfs": null,
                    "phones": [
                      {
                        "mac": null,
                        "filename": null,
                        "vendor": null,
                        "model": null,
                        "password": null,
                        "language": null,
                        "transfer": null,
                        "timezone": null,
                        "ringtone": null,
                        "queue_ringtone": null,
                        "external_ringtone": null,
                        "date_format": null,
                        "time_format": null,
                        "powerled": null,
                        "backlight": null,
                        "screensaver": null,
                        "rps": null,
                        "https": null,
                        "codecs": null,
                        "enable_lldp": null,
                        "enable_vlan_wan_port": null,
                        "wan_port_id": null,
                        "wan_port_priority": null,
                        "enable_vlan_pc_port": null,
                        "pc_port_id": null,
                        "pc_port_priority": null,
                        "interface": null,
                        "preferred_transport": null,
                        "serial_number": null,
                        "door_password1": null,
                        "door_password2": null
                      }
                    ]
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of user.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "The ID of created resource",
                    "value": {
                      "id": "xxxxxxxx"
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "get": {
        "tags": [
          "User"
        ],
        "operationId": "listUsers",
        "x-category": "extensions",
        "x-subcategory": "extensions",
        "x-permissions": [
          "User.ViewOnly",
          "PhoneSystem.ViewOnly"
        ],
        "summary": "List users",
        "description": "List a collection of users.",
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Use the `filter` query parameter to retrieve just a subset of a collection.\n"
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "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",
            "required": false,
            "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",
            "required": false,
            "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",
            "required": false,
            "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,
                      "example": 100,
                      "description": "Total number of resource.\n"
                    },
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "description": "The unique ID of user.\n"
                          },
                          "name": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 64,
                            "description": "The user's account name.   \nOnly letters, numbers, and the following special characters can be added: underscore, dash, single quote, and period (_, -, ', and .).   \nUsername cannot start or end with period (.).   \n`admin`, `system`, `administrator`, and `root` are reserved names for system admin only with case ignored.\n"
                          },
                          "enabled": {
                            "type": "boolean",
                            "default": true,
                            "description": "Allows temporarily disabling the extension.\n"
                          },
                          "email": {
                            "allOf": [
                              {
                                "type": "string",
                                "maxLength": 128,
                                "description": "The email address.\n",
                                "example": "example@example.com"
                              }
                            ],
                            "description": "The email address of user.\n"
                          },
                          "display_name": {
                            "type": "string",
                            "maxLength": 1024,
                            "description": "The display name of user.\n"
                          },
                          "role": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 64,
                            "example": "User",
                            "description": "Roles include built-in roles and custom roles.   \nBuilt-in roles roles cannot be modified.   \nAlso, the names of built-in roles are reserved words,   \ncustom roles are not allowed to use these names to avoid unnecessary confusion.   \nBuilt-in roles include:   \n- `SystemAdmin`: the system administrator has almost all permissions.\n- `OperationsAdmin`: the operations administrator.\n- `SiteAdmin`: the site administrator.\n- `Dealer`: the sales manager has all sold tenant resource permissions.\n- `Admin`: the admin has all tenant-wide resource permissions.\n- `StandardUser`: the user all user-wide resource permissions.\n- `StandardInternationalUser`: the user all user-wide resource permissions with international call permissions.\n- `QueueManager`: The call queue manager.\n"
                          },
                          "role_id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "description": "The unique ID of role.\n"
                          },
                          "role_name": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 64,
                            "example": "User",
                            "description": "Roles include built-in roles and custom roles.   \nBuilt-in roles roles cannot be modified.   \nAlso, the names of built-in roles are reserved words,   \ncustom roles are not allowed to use these names to avoid unnecessary confusion.   \nBuilt-in roles include:   \n- `SystemAdmin`: the system administrator has almost all permissions.\n- `OperationsAdmin`: the operations administrator.\n- `SiteAdmin`: the site administrator.\n- `Dealer`: the sales manager has all sold tenant resource permissions.\n- `Admin`: the admin has all tenant-wide resource permissions.\n- `StandardUser`: the user all user-wide resource permissions.\n- `StandardInternationalUser`: the user all user-wide resource permissions with international call permissions.\n- `QueueManager`: The call queue manager.\n"
                          },
                          "mobile_phone": {
                            "type": "string",
                            "maxLength": 32,
                            "description": "The mobile phone number of user.\n"
                          },
                          "work_phone": {
                            "type": "string",
                            "maxLength": 32,
                            "description": "The office phone number of user.\n"
                          },
                          "home_phone": {
                            "type": "string",
                            "maxLength": 32,
                            "description": "The home phone number of user.\n"
                          },
                          "address": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The address.\n"
                          },
                          "department": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The department of user.\n"
                          },
                          "extension_number": {
                            "type": "string",
                            "minLength": 3,
                            "maxLength": 64,
                            "pattern": "[0-9]{3,64}",
                            "description": "The extension number.\n"
                          },
                          "created_at": {
                            "allOf": [
                              {
                                "type": "string",
                                "format": "date_time",
                                "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                                "example": "2017-07-21T17:32:28Z"
                              }
                            ],
                            "description": "The creation time of user.\n"
                          },
                          "avatar_file_name": {
                            "type": "string",
                            "description": "The name of the file.\n"
                          },
                          "avatar_file_size": {
                            "type": "integer",
                            "format": "int64",
                            "minimum": 0,
                            "example": 0,
                            "description": "The file size in bytes.\n"
                          },
                          "avatar_file_url": {
                            "type": "string",
                            "readOnly": true,
                            "example": "/api/blobs/WexWdABcd5D4PDgzTKV3gAAAEu00WcK",
                            "description": "The relative path to file url for file downloading.\n"
                          },
                          "provider": {
                            "type": "string",
                            "description": "The account provider.\n"
                          },
                          "provider_id": {
                            "type": "string",
                            "description": "The account provider ID.\n"
                          },
                          "sync_type": {
                            "type": "string",
                            "enum": [
                              "Microsoft 365"
                            ],
                            "description": "The synchronization method.   \nCan be either:   \n- `Microsoft 365`: Sync from Microsoft 365.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": null,
                          "name": null,
                          "enabled": null,
                          "email": null,
                          "display_name": null,
                          "role_id": null,
                          "role_name": null,
                          "mobile_phone": null,
                          "work_phone": null,
                          "home_phone": null,
                          "address": null,
                          "department": null,
                          "extension_number": null,
                          "created_at": null,
                          "avatar_file_name": null,
                          "avatar_file_size": null,
                          "avatar_file_url": null,
                          "provider": null,
                          "provider_id": null,
                          "sync_type": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/users/create_many": {
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "bulkCreateUsers",
        "x-category": "extensions",
        "x-subcategory": "extensions",
        "x-permissions": [
          "User.FullAccess"
        ],
        "summary": "Bulk create users",
        "description": "Bulk create users.\n",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "items": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "name": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 64,
                          "description": "The user's account name.   \nOnly letters, numbers, and the following special characters can be added: underscore, dash, single quote, and period (_, -, ', and .).   \nUsername cannot start or end with period (.).   \n`admin`, `system`, `administrator`, and `root` are reserved names for system admin only with case ignored.\n"
                        },
                        "password": {
                          "type": "string",
                          "description": "The password of user.\n"
                        },
                        "email": {
                          "allOf": [
                            {
                              "type": "string",
                              "maxLength": 128,
                              "description": "The email address.\n",
                              "example": "example@example.com"
                            }
                          ],
                          "description": "The email address of user.\n"
                        },
                        "display_name": {
                          "type": "string",
                          "maxLength": 1024,
                          "description": "The display name of user.\n"
                        },
                        "enabled": {
                          "type": "boolean",
                          "default": true,
                          "description": "Allows temporarily disabling the extension.\n"
                        },
                        "role": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 64,
                          "example": "User",
                          "description": "Roles include built-in roles and custom roles.   \nBuilt-in roles roles cannot be modified.   \nAlso, the names of built-in roles are reserved words,   \ncustom roles are not allowed to use these names to avoid unnecessary confusion.   \nBuilt-in roles include:   \n- `SystemAdmin`: the system administrator has almost all permissions.\n- `OperationsAdmin`: the operations administrator.\n- `SiteAdmin`: the site administrator.\n- `Dealer`: the sales manager has all sold tenant resource permissions.\n- `Admin`: the admin has all tenant-wide resource permissions.\n- `StandardUser`: the user all user-wide resource permissions.\n- `StandardInternationalUser`: the user all user-wide resource permissions with international call permissions.\n- `QueueManager`: The call queue manager.\n"
                        },
                        "mobile_phone": {
                          "type": "string",
                          "maxLength": 32,
                          "description": "The mobile phone number of user.\n"
                        },
                        "work_phone": {
                          "type": "string",
                          "maxLength": 32,
                          "description": "The office phone number of user.\n"
                        },
                        "home_phone": {
                          "type": "string",
                          "maxLength": 32,
                          "description": "The home phone number of user.\n"
                        },
                        "address": {
                          "type": "string",
                          "maxLength": 128,
                          "description": "The address.\n"
                        },
                        "department": {
                          "type": "string",
                          "maxLength": 128,
                          "description": "The department of user.\n"
                        },
                        "extension_number": {
                          "type": "string",
                          "minLength": 3,
                          "maxLength": 64,
                          "pattern": "[0-9]{3,64}",
                          "description": "The extension number.\n"
                        },
                        "extension_password": {
                          "type": "string",
                          "description": "The extension password.\n"
                        },
                        "enable_audio_recording": {
                          "type": "boolean",
                          "default": false,
                          "description": "Records all calls and saves audio recordings on server.\n"
                        },
                        "enable_video_recording": {
                          "type": "boolean",
                          "default": false,
                          "description": "Records all calls and saves video recordings on server.\n"
                        },
                        "enable_dnd": {
                          "type": "boolean",
                          "description": "Enable `Do Not Disturb` or not.\n"
                        },
                        "enable_acb": {
                          "type": "boolean",
                          "description": "Enable `Automatic Callback` or not.\n"
                        },
                        "enable_hot_desking": {
                          "type": "boolean",
                          "default": false,
                          "description": "Enable hot desking feature or not.\n"
                        },
                        "anonymous_outbound_calls": {
                          "type": "boolean",
                          "default": false,
                          "description": "Always make outbound anonymous calls or not.\n"
                        },
                        "sms": {
                          "type": "string",
                          "enum": [
                            "DISABLE",
                            "ALLOW",
                            "ALLOW_WITH_SENDER_ID"
                          ],
                          "default": "DISABLE",
                          "description": "The preferred configuration for SMS/MMS.   \nNote: Only users with `UserManagement::Users` privilege can change this property.   \n  - `DISABLE`: Disable user SMS/MMS feature.\n  - `ALLOW`: Enable user SMS/MMS feature but with outbound caller ID.\n  - `ALLOW_WITH_SENDER_ID`: Enable user SMS/MMS but with trunk sender ID.\n"
                        },
                        "delivery_outbound_cid": {
                          "type": "boolean",
                          "default": true,
                          "description": "Always delivery outbound caller ID or not.\n"
                        },
                        "outbound_caller_ids": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "provider_id": {
                                "allOf": [
                                  {
                                    "allOf": [
                                      {
                                        "type": "string",
                                        "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                        "description": "The unique ID of the resource.\n"
                                      }
                                    ],
                                    "description": "The unique ID of user.\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"
                              },
                              "preferred": {
                                "type": "boolean",
                                "description": "Whether this outbound caller id preferred.\n"
                              },
                              "description": {
                                "type": "string",
                                "maxLength": 1024,
                                "description": "The descriptive information about this outbound caller id.\n"
                              }
                            }
                          },
                          "description": "A collection of outbound caller IDs.\n"
                        },
                        "custom_options": {
                          "type": "string",
                          "description": "Some custom configuration options serialized as json string\n"
                        },
                        "office_hours": {
                          "allOf": [
                            {
                              "type": "object",
                              "properties": {
                                "mode": {
                                  "type": "string",
                                  "enum": [
                                    "GLOBAL",
                                    "CUSTOM"
                                  ],
                                  "example": "CUSTOM",
                                  "description": "The office hours mode can be either:  \n- `GLOBAL`: Use global office hours.\n- `CUSTOM`: Use specific office hours.\n"
                                }
                              }
                            },
                            {
                              "type": "object",
                              "properties": {
                                "monday": {
                                  "type": "object",
                                  "properties": {
                                    "enabled": {
                                      "type": "boolean",
                                      "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                    },
                                    "ranges": {
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "from": {
                                            "type": "string",
                                            "example": "09:00",
                                            "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                          },
                                          "to": {
                                            "type": "string",
                                            "example": "17:00",
                                            "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                          }
                                        }
                                      },
                                      "description": "Multiple start and end time periods make up the working time.\n"
                                    }
                                  }
                                },
                                "tuesday": {
                                  "type": "object",
                                  "properties": {
                                    "enabled": {
                                      "type": "boolean",
                                      "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                    },
                                    "ranges": {
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "from": {
                                            "type": "string",
                                            "example": "09:00",
                                            "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                          },
                                          "to": {
                                            "type": "string",
                                            "example": "17:00",
                                            "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                          }
                                        }
                                      },
                                      "description": "Multiple start and end time periods make up the working time.\n"
                                    }
                                  }
                                },
                                "wednesday": {
                                  "type": "object",
                                  "properties": {
                                    "enabled": {
                                      "type": "boolean",
                                      "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                    },
                                    "ranges": {
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "from": {
                                            "type": "string",
                                            "example": "09:00",
                                            "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                          },
                                          "to": {
                                            "type": "string",
                                            "example": "17:00",
                                            "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                          }
                                        }
                                      },
                                      "description": "Multiple start and end time periods make up the working time.\n"
                                    }
                                  }
                                },
                                "thursday": {
                                  "type": "object",
                                  "properties": {
                                    "enabled": {
                                      "type": "boolean",
                                      "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                    },
                                    "ranges": {
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "from": {
                                            "type": "string",
                                            "example": "09:00",
                                            "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                          },
                                          "to": {
                                            "type": "string",
                                            "example": "17:00",
                                            "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                          }
                                        }
                                      },
                                      "description": "Multiple start and end time periods make up the working time.\n"
                                    }
                                  }
                                },
                                "friday": {
                                  "type": "object",
                                  "properties": {
                                    "enabled": {
                                      "type": "boolean",
                                      "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                    },
                                    "ranges": {
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "from": {
                                            "type": "string",
                                            "example": "09:00",
                                            "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                          },
                                          "to": {
                                            "type": "string",
                                            "example": "17:00",
                                            "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                          }
                                        }
                                      },
                                      "description": "Multiple start and end time periods make up the working time.\n"
                                    }
                                  }
                                },
                                "saturday": {
                                  "type": "object",
                                  "properties": {
                                    "enabled": {
                                      "type": "boolean",
                                      "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                    },
                                    "ranges": {
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "from": {
                                            "type": "string",
                                            "example": "09:00",
                                            "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                          },
                                          "to": {
                                            "type": "string",
                                            "example": "17:00",
                                            "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                          }
                                        }
                                      },
                                      "description": "Multiple start and end time periods make up the working time.\n"
                                    }
                                  }
                                },
                                "sunday": {
                                  "type": "object",
                                  "properties": {
                                    "enabled": {
                                      "type": "boolean",
                                      "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                    },
                                    "ranges": {
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "from": {
                                            "type": "string",
                                            "example": "09:00",
                                            "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                          },
                                          "to": {
                                            "type": "string",
                                            "example": "17:00",
                                            "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                          }
                                        }
                                      },
                                      "description": "Multiple start and end time periods make up the working time.\n"
                                    }
                                  }
                                }
                              }
                            }
                          ]
                        },
                        "available_office_hours_forward_rule": {
                          "type": "object",
                          "properties": {
                            "action": {
                              "type": "string",
                              "enum": [
                                "FORWARD_TO_NUMBER",
                                "FORWARD_TO_VOICEMAIL",
                                "RING_ANYWAY",
                                "HANGUP"
                              ],
                              "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`: Forward to the specified number\n- `FORWARD_TO_VOICEMAIL`: Forward to the specified voicemail.\n- `RING_ANYWAY`: Ring anyway.\n- `HANGUP`: Finish call\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"
                            }
                          }
                        },
                        "available_non_office_hours_forward_rule": {
                          "type": "object",
                          "properties": {
                            "action": {
                              "type": "string",
                              "enum": [
                                "FORWARD_TO_NUMBER",
                                "FORWARD_TO_VOICEMAIL",
                                "RING_ANYWAY",
                                "HANGUP"
                              ],
                              "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`: Forward to the specified number\n- `FORWARD_TO_VOICEMAIL`: Forward to the specified voicemail.\n- `RING_ANYWAY`: Ring anyway.\n- `HANGUP`: Finish call\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"
                            }
                          }
                        },
                        "available_no_answer_forward_rule": {
                          "type": "object",
                          "properties": {
                            "action": {
                              "type": "string",
                              "enum": [
                                "FORWARD_TO_NUMBER",
                                "FORWARD_TO_VOICEMAIL",
                                "HANGUP"
                              ],
                              "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`: Forward to the specified number\n- `FORWARD_TO_VOICEMAIL`: Forward to the specified voicemail.\n- `HANGUP`: Finish call\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"
                            },
                            "timeout": {
                              "type": "integer",
                              "format": "int32",
                              "minimum": 0,
                              "default": 60,
                              "description": "Duration that the call will remain ringing when no one answered, in seconds.\n"
                            }
                          }
                        },
                        "busy_office_hours_forward_rule": {
                          "type": "object",
                          "properties": {
                            "action": {
                              "type": "string",
                              "enum": [
                                "FORWARD_TO_NUMBER",
                                "FORWARD_TO_VOICEMAIL",
                                "RING_ANYWAY",
                                "HANGUP"
                              ],
                              "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`: Forward to the specified number\n- `FORWARD_TO_VOICEMAIL`: Forward to the specified voicemail.\n- `RING_ANYWAY`: Ring anyway.\n- `HANGUP`: Finish call\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"
                            }
                          }
                        },
                        "busy_non_office_hours_forward_rule": {
                          "type": "object",
                          "properties": {
                            "action": {
                              "type": "string",
                              "enum": [
                                "FORWARD_TO_NUMBER",
                                "FORWARD_TO_VOICEMAIL",
                                "RING_ANYWAY",
                                "HANGUP"
                              ],
                              "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`: Forward to the specified number\n- `FORWARD_TO_VOICEMAIL`: Forward to the specified voicemail.\n- `RING_ANYWAY`: Ring anyway.\n- `HANGUP`: Finish call\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"
                            }
                          }
                        },
                        "busy_no_answer_forward_rule": {
                          "type": "object",
                          "properties": {
                            "action": {
                              "type": "string",
                              "enum": [
                                "FORWARD_TO_NUMBER",
                                "FORWARD_TO_VOICEMAIL",
                                "HANGUP"
                              ],
                              "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`: Forward to the specified number\n- `FORWARD_TO_VOICEMAIL`: Forward to the specified voicemail.\n- `HANGUP`: Finish call\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"
                            },
                            "timeout": {
                              "type": "integer",
                              "format": "int32",
                              "minimum": 0,
                              "default": 60,
                              "description": "Duration that the call will remain ringing when no one answered, in seconds.\n"
                            }
                          }
                        },
                        "dnd_office_hours_forward_rule": {
                          "type": "object",
                          "properties": {
                            "action": {
                              "type": "string",
                              "enum": [
                                "FORWARD_TO_NUMBER",
                                "FORWARD_TO_VOICEMAIL",
                                "HANGUP"
                              ],
                              "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`: Forward to the specified number\n- `FORWARD_TO_VOICEMAIL`: Forward to the specified voicemail.\n- `HANGUP`: Finish call\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"
                            }
                          }
                        },
                        "dnd_non_office_hours_forward_rule": {
                          "type": "object",
                          "properties": {
                            "action": {
                              "type": "string",
                              "enum": [
                                "FORWARD_TO_NUMBER",
                                "FORWARD_TO_VOICEMAIL",
                                "HANGUP"
                              ],
                              "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`: Forward to the specified number\n- `FORWARD_TO_VOICEMAIL`: Forward to the specified voicemail.\n- `HANGUP`: Finish call\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"
                            }
                          }
                        },
                        "away_office_hours_forward_rule": {
                          "type": "object",
                          "properties": {
                            "action": {
                              "type": "string",
                              "enum": [
                                "FORWARD_TO_NUMBER",
                                "FORWARD_TO_VOICEMAIL",
                                "HANGUP"
                              ],
                              "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`: Forward to the specified number\n- `FORWARD_TO_VOICEMAIL`: Forward to the specified voicemail.\n- `HANGUP`: Finish call\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"
                            }
                          }
                        },
                        "away_non_office_hours_forward_rule": {
                          "type": "object",
                          "properties": {
                            "action": {
                              "type": "string",
                              "enum": [
                                "FORWARD_TO_NUMBER",
                                "FORWARD_TO_VOICEMAIL",
                                "HANGUP"
                              ],
                              "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`: Forward to the specified number\n- `FORWARD_TO_VOICEMAIL`: Forward to the specified voicemail.\n- `HANGUP`: Finish call\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"
                            }
                          }
                        },
                        "lunch_office_hours_forward_rule": {
                          "type": "object",
                          "properties": {
                            "action": {
                              "type": "string",
                              "enum": [
                                "FORWARD_TO_NUMBER",
                                "FORWARD_TO_VOICEMAIL",
                                "HANGUP"
                              ],
                              "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`: Forward to the specified number\n- `FORWARD_TO_VOICEMAIL`: Forward to the specified voicemail.\n- `HANGUP`: Finish call\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"
                            }
                          }
                        },
                        "lunch_non_office_hours_forward_rule": {
                          "type": "object",
                          "properties": {
                            "action": {
                              "type": "string",
                              "enum": [
                                "FORWARD_TO_NUMBER",
                                "FORWARD_TO_VOICEMAIL",
                                "HANGUP"
                              ],
                              "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`: Forward to the specified number\n- `FORWARD_TO_VOICEMAIL`: Forward to the specified voicemail.\n- `HANGUP`: Finish call\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"
                            }
                          }
                        },
                        "trip_office_hours_forward_rule": {
                          "type": "object",
                          "properties": {
                            "action": {
                              "type": "string",
                              "enum": [
                                "FORWARD_TO_NUMBER",
                                "FORWARD_TO_VOICEMAIL",
                                "HANGUP"
                              ],
                              "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`: Forward to the specified number\n- `FORWARD_TO_VOICEMAIL`: Forward to the specified voicemail.\n- `HANGUP`: Finish call\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"
                            }
                          }
                        },
                        "trip_non_office_hours_forward_rule": {
                          "type": "object",
                          "properties": {
                            "action": {
                              "type": "string",
                              "enum": [
                                "FORWARD_TO_NUMBER",
                                "FORWARD_TO_VOICEMAIL",
                                "HANGUP"
                              ],
                              "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`: Forward to the specified number\n- `FORWARD_TO_VOICEMAIL`: Forward to the specified voicemail.\n- `HANGUP`: Finish call\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"
                            }
                          }
                        },
                        "offline_office_hours_forward_rule": {
                          "type": "object",
                          "properties": {
                            "action": {
                              "type": "string",
                              "enum": [
                                "FORWARD_TO_NUMBER",
                                "FORWARD_TO_VOICEMAIL",
                                "HANGUP"
                              ],
                              "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`: Forward to the specified number\n- `FORWARD_TO_VOICEMAIL`: Forward to the specified voicemail.\n- `HANGUP`: Finish call\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"
                            }
                          }
                        },
                        "offline_non_office_hours_forward_rule": {
                          "type": "object",
                          "properties": {
                            "action": {
                              "type": "string",
                              "enum": [
                                "FORWARD_TO_NUMBER",
                                "FORWARD_TO_VOICEMAIL",
                                "HANGUP"
                              ],
                              "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`: Forward to the specified number\n- `FORWARD_TO_VOICEMAIL`: Forward to the specified voicemail.\n- `HANGUP`: Finish call\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"
                            }
                          }
                        },
                        "custom_forward_rules": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "action": {
                                "type": "string",
                                "enum": [
                                  "FORWARD_TO_NUMBER",
                                  "FORWARD_TO_VOICEMAIL",
                                  "RING_ANYWAY",
                                  "HANGUP"
                                ],
                                "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`: Forward to the specified number\n- `FORWARD_TO_VOICEMAIL`: Forward to the specified voicemail.\n- `RING_ANYWAY`: Ring anyway.\n- `HANGUP`: Finish call\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"
                              },
                              "caller_id": {
                                "type": "string",
                                "description": "Specify the caller ID mask.\n"
                              },
                              "type": {
                                "type": "string",
                                "enum": [
                                  "ALL_HOURS",
                                  "SPECIFIC_HOURS",
                                  "OUTSIDE_SPECIFIC_HOURS"
                                ],
                                "description": "Specify hours mode for forward rule:\n- `ALL_HOURS`:\n- `SPECIFIC_HOURS`:\n- `OUTSIDE_SPECIFIC_HOURS`:\n"
                              },
                              "hours": {
                                "allOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "monday": {
                                        "type": "object",
                                        "properties": {
                                          "enabled": {
                                            "type": "boolean",
                                            "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                          },
                                          "ranges": {
                                            "type": "array",
                                            "items": {
                                              "type": "object",
                                              "properties": {
                                                "from": {
                                                  "type": "string",
                                                  "example": "09:00",
                                                  "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                                },
                                                "to": {
                                                  "type": "string",
                                                  "example": "17:00",
                                                  "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                                }
                                              }
                                            },
                                            "description": "Multiple start and end time periods make up the working time.\n"
                                          }
                                        }
                                      },
                                      "tuesday": {
                                        "type": "object",
                                        "properties": {
                                          "enabled": {
                                            "type": "boolean",
                                            "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                          },
                                          "ranges": {
                                            "type": "array",
                                            "items": {
                                              "type": "object",
                                              "properties": {
                                                "from": {
                                                  "type": "string",
                                                  "example": "09:00",
                                                  "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                                },
                                                "to": {
                                                  "type": "string",
                                                  "example": "17:00",
                                                  "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                                }
                                              }
                                            },
                                            "description": "Multiple start and end time periods make up the working time.\n"
                                          }
                                        }
                                      },
                                      "wednesday": {
                                        "type": "object",
                                        "properties": {
                                          "enabled": {
                                            "type": "boolean",
                                            "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                          },
                                          "ranges": {
                                            "type": "array",
                                            "items": {
                                              "type": "object",
                                              "properties": {
                                                "from": {
                                                  "type": "string",
                                                  "example": "09:00",
                                                  "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                                },
                                                "to": {
                                                  "type": "string",
                                                  "example": "17:00",
                                                  "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                                }
                                              }
                                            },
                                            "description": "Multiple start and end time periods make up the working time.\n"
                                          }
                                        }
                                      },
                                      "thursday": {
                                        "type": "object",
                                        "properties": {
                                          "enabled": {
                                            "type": "boolean",
                                            "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                          },
                                          "ranges": {
                                            "type": "array",
                                            "items": {
                                              "type": "object",
                                              "properties": {
                                                "from": {
                                                  "type": "string",
                                                  "example": "09:00",
                                                  "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                                },
                                                "to": {
                                                  "type": "string",
                                                  "example": "17:00",
                                                  "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                                }
                                              }
                                            },
                                            "description": "Multiple start and end time periods make up the working time.\n"
                                          }
                                        }
                                      },
                                      "friday": {
                                        "type": "object",
                                        "properties": {
                                          "enabled": {
                                            "type": "boolean",
                                            "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                          },
                                          "ranges": {
                                            "type": "array",
                                            "items": {
                                              "type": "object",
                                              "properties": {
                                                "from": {
                                                  "type": "string",
                                                  "example": "09:00",
                                                  "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                                },
                                                "to": {
                                                  "type": "string",
                                                  "example": "17:00",
                                                  "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                                }
                                              }
                                            },
                                            "description": "Multiple start and end time periods make up the working time.\n"
                                          }
                                        }
                                      },
                                      "saturday": {
                                        "type": "object",
                                        "properties": {
                                          "enabled": {
                                            "type": "boolean",
                                            "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                          },
                                          "ranges": {
                                            "type": "array",
                                            "items": {
                                              "type": "object",
                                              "properties": {
                                                "from": {
                                                  "type": "string",
                                                  "example": "09:00",
                                                  "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                                },
                                                "to": {
                                                  "type": "string",
                                                  "example": "17:00",
                                                  "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                                }
                                              }
                                            },
                                            "description": "Multiple start and end time periods make up the working time.\n"
                                          }
                                        }
                                      },
                                      "sunday": {
                                        "type": "object",
                                        "properties": {
                                          "enabled": {
                                            "type": "boolean",
                                            "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                          },
                                          "ranges": {
                                            "type": "array",
                                            "items": {
                                              "type": "object",
                                              "properties": {
                                                "from": {
                                                  "type": "string",
                                                  "example": "09:00",
                                                  "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                                },
                                                "to": {
                                                  "type": "string",
                                                  "example": "17:00",
                                                  "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                                }
                                              }
                                            },
                                            "description": "Multiple start and end time periods make up the working time.\n"
                                          }
                                        }
                                      }
                                    }
                                  }
                                ],
                                "description": "Specify hours for this custom forward rule.\n"
                              }
                            }
                          }
                        },
                        "voicemail_prompt": {
                          "type": "string",
                          "example": "en-US",
                          "description": "BCP 47 Language Tags (The Internet Best Current Practices (BCP) for language tags).\nA language tag is composed of a sequence of one or more subtags such as language, region, variant and script subtags.\nWhen a language tag is comprised of more than one subtag, the subtag values are separated by the \"-\" character.\nYou will most commonly find language tags written with 2 subtags - language and region. For example: en-US.\n"
                        },
                        "enable_voicemail_pin": {
                          "type": "boolean",
                          "default": true,
                          "description": "Whether the PIN is required to access voice mail of extension.\n"
                        },
                        "voicemail_pin": {
                          "type": "string",
                          "description": "The PIN number for accessing.\n"
                        },
                        "enable_voicemail_notify": {
                          "type": "boolean",
                          "default": false,
                          "description": "Enable voicemail to email notify.\n"
                        },
                        "voicemail_play_datetime": {
                          "type": "string",
                          "enum": [
                            "DISABLE",
                            "12_HOUR_CLOCK",
                            "24_HOUR_CLOCK"
                          ],
                          "description": "Announces Date and Time of Message.\n- `DISABLE`: Do not read;\n- `12_HOUR_CLOCK`: Read in 12-hour clock;\n- `24_HOUR_CLOCK`: Read in 24-hour clock.\n"
                        },
                        "interface": {
                          "type": "string",
                          "enum": [
                            "WEB_DOMAIN",
                            "PUBLIC_IPV4",
                            "PUBLIC_IPV6",
                            "PRIVATE_IPV4",
                            "PRIVATE_IPV6",
                            "SBC_DOMAIN"
                          ],
                          "description": "The interface type for QR code or auto provisioning.   \nCan be neither:  \n- `WEB_DOMAIN`:\n- `PUBLIC_IPV4`:\n- `PUBLIC_IPV6`:\n- `PRIVATE_IPV4`:\n- `PRIVATE_IPV6`:\n- `SBC_DOMAIN`:\n"
                        },
                        "preferred_transport": {
                          "type": "string",
                          "enum": [
                            "UDP",
                            "TCP",
                            "TLS"
                          ],
                          "description": "The transport protocol:  \nCan be either:  \n- `UDP`:\n- `TCP`:\n- `TLS`:\n"
                        },
                        "blfs": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "key": {
                                "type": "string",
                                "description": "The key of BLF.\n"
                              },
                              "value": {
                                "type": "string",
                                "description": "The value of BLF.\n"
                              },
                              "first_name": {
                                "type": "string",
                                "description": "The first name of BLF.\n"
                              },
                              "last_name": {
                                "type": "string",
                                "description": "The last name of BLF.\n"
                              }
                            }
                          },
                          "description": "A collection of BLFs.\n"
                        },
                        "phones": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "mac": {
                                "allOf": [
                                  {
                                    "type": "string",
                                    "description": "MAC address.\n"
                                  }
                                ],
                                "description": "MAC address of this IP phone.\n"
                              },
                              "filename": {
                                "type": "string",
                                "description": "Template XML file name for phone provisioning.\n"
                              },
                              "vendor": {
                                "type": "string",
                                "description": "The phone vendor of IP phone.\n"
                              },
                              "model": {
                                "type": "string",
                                "description": "The name of IP phone model.\n"
                              },
                              "password": {
                                "type": "string",
                                "description": "Password for accessing the Web interface of phone.\nThe username remains default because most phone manufacturers do not\nallow modification of the user name. This is supported for some phone model, such as \"Snom 300\".\n"
                              },
                              "language": {
                                "type": "string",
                                "enum": [
                                  "ENGLISH",
                                  "CHINESE",
                                  "DUTCH",
                                  "FRENCH",
                                  "GERMAN",
                                  "GREEK",
                                  "ITALIAN",
                                  "JAPANESE",
                                  "POLISH",
                                  "RUSSIAN",
                                  "SPANISH",
                                  "SWEDISH",
                                  "UKRAINIAN",
                                  "BULGARIAN"
                                ],
                                "description": "Language for strings displayed on Phone Display LCD.\nSupported languages include ENGLISH, CHINESE, DUTCH, FRENCH, GERMAN,\nGREEK, ITALIAN, JAPANESE, POLISH, RUSSIAN, SPANISH, SWEDISH, UKRAINIAN, and BULGARIAN.\n"
                              },
                              "transfer": {
                                "type": "string",
                                "enum": [
                                  "BLIND",
                                  "ATTENDED",
                                  "NEW_CALL"
                                ],
                                "default": "BLIND",
                                "description": "The transfer method for auto provision.  \nCan be either: \n- `BLIND`: After the IP phone is configured with the BLF of a certain key, during a call on the IP phone, press the key, and the phone will directly initiate a Blind transfer to the configured number.\n- `ATTENDED`: After the IP phone is configured with the BLF of a key, during a call on the IP phone, press the key, and the phone will directly initiate an Attended transfer to the configured number.\n- `NEW_CALL`: After the IP phone is configured with the BLF of a certain key, during a call on the IP phone, press the key, and the phone will initiate a new call to the configured number.\n"
                              },
                              "timezone": {
                                "type": "string",
                                "description": "The timezone of phone.\n"
                              },
                              "ringtone": {
                                "type": "string",
                                "description": "The ringtone of phone.\n"
                              },
                              "queue_ringtone": {
                                "type": "string",
                                "description": "The queue ringtone of phone for queue calls or ring group calls.\n"
                              },
                              "external_ringtone": {
                                "type": "string",
                                "description": "The ringtone of phone for external calls.\n"
                              },
                              "date_format": {
                                "type": "string",
                                "description": "The date format of phone.\n"
                              },
                              "time_format": {
                                "type": "string",
                                "description": "The time format of phone.\n"
                              },
                              "powerled": {
                                "type": "string",
                                "description": "The power led of phone.\n"
                              },
                              "backlight": {
                                "type": "string",
                                "description": "The backlight of phone.\n"
                              },
                              "screensaver": {
                                "type": "string",
                                "description": "The screensaver of phone.\n"
                              },
                              "rps": {
                                "type": "boolean",
                                "description": "Send to RPS or not.\n"
                              },
                              "https": {
                                "type": "boolean",
                                "description": "Whether to use https\n"
                              },
                              "codecs": {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                },
                                "description": "The list of currently enabled codec formats.\n"
                              },
                              "enable_lldp": {
                                "type": "boolean",
                                "default": false,
                                "description": "Enable or disable Link Layer Discovery Protocol."
                              },
                              "enable_vlan_wan_port": {
                                "type": "boolean",
                                "default": false,
                                "description": "Enable or disable VLAN for WAN Port.\n"
                              },
                              "wan_port_id": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 4094,
                                "description": "VLAN ID for WAN PORT.\n"
                              },
                              "wan_port_priority": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 7,
                                "description": "VLAN priority for WAN Port.\n"
                              },
                              "enable_vlan_pc_port": {
                                "type": "boolean",
                                "default": false,
                                "description": "Enable or disable VLAN for PC Port.\n"
                              },
                              "pc_port_id": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 4094,
                                "description": "VLAN ID for PC PORT.\n"
                              },
                              "pc_port_priority": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 7,
                                "description": "VLAN priority for PC Port.\n"
                              },
                              "interface": {
                                "type": "string",
                                "enum": [
                                  "WEB_DOMAIN",
                                  "PUBLIC_IPV4",
                                  "PUBLIC_IPV6",
                                  "PRIVATE_IPV4",
                                  "PRIVATE_IPV6",
                                  "SBC_DOMAIN"
                                ],
                                "description": "The interface type for QR code or auto provisioning.   \nCan be neither:  \n- `WEB_DOMAIN`:\n- `PUBLIC_IPV4`:\n- `PUBLIC_IPV6`:\n- `PRIVATE_IPV4`:\n- `PRIVATE_IPV6`:\n- `SBC_DOMAIN`:\n"
                              },
                              "preferred_transport": {
                                "type": "string",
                                "enum": [
                                  "UDP",
                                  "TCP",
                                  "TLS"
                                ],
                                "description": "The transport protocol:  \nCan be either:  \n- `UDP`:\n- `TCP`:\n- `TLS`:\n"
                              },
                              "serial_number": {
                                "type": "string",
                                "description": "The serial number of phone.\n"
                              },
                              "door_password1": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 8,
                                "description": "The primary door password of phone. Only numeric sequences are allowed.\n"
                              },
                              "door_password2": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 8,
                                "description": "The secondary door password of phone. Only numeric sequences are allowed.\n"
                              }
                            }
                          }
                        }
                      },
                      "required": [
                        "name",
                        "display_name",
                        "password",
                        "email",
                        "role",
                        "extension_number",
                        "extension_password",
                        "voicemail_pin"
                      ]
                    }
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "items": [
                      {
                        "name": null,
                        "password": null,
                        "email": null,
                        "display_name": null,
                        "enabled": null,
                        "role": null,
                        "mobile_phone": null,
                        "work_phone": null,
                        "home_phone": null,
                        "address": null,
                        "department": null,
                        "extension_number": null,
                        "extension_password": null,
                        "enable_audio_recording": null,
                        "enable_video_recording": null,
                        "enable_dnd": null,
                        "enable_acb": null,
                        "enable_hot_desking": null,
                        "anonymous_outbound_calls": null,
                        "sms": null,
                        "delivery_outbound_cid": null,
                        "outbound_caller_ids": null,
                        "custom_options": null,
                        "office_hours": null,
                        "available_office_hours_forward_rule": null,
                        "available_non_office_hours_forward_rule": null,
                        "available_no_answer_forward_rule": null,
                        "busy_office_hours_forward_rule": null,
                        "busy_non_office_hours_forward_rule": null,
                        "busy_no_answer_forward_rule": null,
                        "dnd_office_hours_forward_rule": null,
                        "dnd_non_office_hours_forward_rule": null,
                        "away_office_hours_forward_rule": null,
                        "away_non_office_hours_forward_rule": null,
                        "lunch_office_hours_forward_rule": null,
                        "lunch_non_office_hours_forward_rule": null,
                        "trip_office_hours_forward_rule": null,
                        "trip_non_office_hours_forward_rule": null,
                        "offline_office_hours_forward_rule": null,
                        "offline_non_office_hours_forward_rule": null,
                        "custom_forward_rules": null,
                        "voicemail_prompt": null,
                        "enable_voicemail_pin": null,
                        "voicemail_pin": null,
                        "enable_voicemail_notify": null,
                        "voicemail_play_datetime": null,
                        "interface": null,
                        "preferred_transport": null,
                        "blfs": null,
                        "phones": [
                          {
                            "mac": null,
                            "filename": null,
                            "vendor": null,
                            "model": null,
                            "password": null,
                            "language": null,
                            "transfer": null,
                            "timezone": null,
                            "ringtone": null,
                            "queue_ringtone": null,
                            "external_ringtone": null,
                            "date_format": null,
                            "time_format": null,
                            "powerled": null,
                            "backlight": null,
                            "screensaver": null,
                            "rps": null,
                            "https": null,
                            "codecs": null,
                            "enable_lldp": null,
                            "enable_vlan_wan_port": null,
                            "wan_port_id": null,
                            "wan_port_priority": null,
                            "enable_vlan_pc_port": null,
                            "pc_port_id": null,
                            "pc_port_priority": null,
                            "interface": null,
                            "preferred_transport": null,
                            "serial_number": null,
                            "door_password1": null,
                            "door_password2": null
                          }
                        ]
                      }
                    ]
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "oneOf": [
                          {
                            "type": "object",
                            "properties": {
                              "id": {
                                "allOf": [
                                  {
                                    "type": "string",
                                    "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                    "description": "The unique ID of the resource.\n"
                                  }
                                ],
                                "description": "The unique ID of user.\n"
                              }
                            }
                          },
                          {
                            "type": "object",
                            "properties": {
                              "errors": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "code": {
                                      "type": "string",
                                      "description": "The error identifier."
                                    },
                                    "message": {
                                      "type": "string",
                                      "description": "The error message description."
                                    },
                                    "detail": {
                                      "type": "string",
                                      "description": "The detailed information of the error"
                                    }
                                  }
                                }
                              }
                            }
                          }
                        ]
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "items": [
                        "xxx",
                        "yyy"
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/users/export": {
      "get": {
        "tags": [
          "Inbound Rule"
        ],
        "operationId": "exportExtensions",
        "x-category": "extensions",
        "x-subcategory": "extensions",
        "x-permissions": [
          "User.FullAccess"
        ],
        "summary": "Export extension users",
        "description": "Export a collection of extension users to file.\n",
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "Content-Disposition": {
                "schema": {
                  "type": "string"
                },
                "description": "the format is `attachment; filename=\"example\"`"
              }
            },
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/users/profile": {
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "resetAllUserProfiles",
        "x-category": "extensions",
        "x-subcategory": "extensions",
        "x-permissions": [
          "User.FullAccess"
        ],
        "summary": "Reset all user profiles",
        "description": "Reset the active user profile with the specified ID, or reset all active user profiles when `id` is not specified.\n",
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of user.\n"
            },
            "description": "The unique ID of the user."
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/users/status/get_many": {
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "bulkGetUsersStatus",
        "x-category": "extensions",
        "x-subcategory": "extensions",
        "x-permissions": [
          "User.ViewOnly"
        ],
        "summary": "Bulk retrieve user current status",
        "description": "Bulk retrieve users status.\n",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "items": {
                    "type": "array",
                    "items": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of user.\n"
                    }
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "items": [
                      "xxx",
                      "yyy"
                    ]
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "status": {
                            "type": "string",
                            "enum": [
                              "ONLINE",
                              "OFFLINE",
                              "ONCALL"
                            ],
                            "description": "Status of extension:\n  - `ONLINE`   \n  - `OFFLINE`   \n  - `ONCALL`\n"
                          },
                          "presence": {
                            "type": "string",
                            "enum": [
                              "DO_NOT_DISTURB",
                              "AWAY",
                              "BUSINESS_TRIP",
                              "LUNCH",
                              "OFFLINE",
                              "ONLINE"
                            ],
                            "description": "The current presence of extension:   \n- `DO_NOT_DISTURB`:   \n- `AWAY`:   \n- `BUSINESS_TRIP`:   \n- `LUNCH`:\n- `OFFLINE`\n- `ONLINE`\n"
                          },
                          "presence_note": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The presence note.\n"
                          },
                          "registration": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "instance_id": {
                                  "type": "string",
                                  "description": "The instance ID of registration.\n"
                                },
                                "user_agent": {
                                  "type": "string",
                                  "description": "User agent of login device.\n"
                                },
                                "application": {
                                  "type": "string",
                                  "description": "The application name of login device.\n"
                                },
                                "ip": {
                                  "type": "string",
                                  "description": "The IP address of login device.\n"
                                },
                                "enable_push": {
                                  "type": "boolean",
                                  "description": "Whether push is enabled of login device.\n"
                                },
                                "contact_address": {
                                  "type": "string",
                                  "description": "The contact address information.\n"
                                }
                              }
                            },
                            "description": "Collection of registration information.\n"
                          },
                          "enable_dnd": {
                            "type": "boolean",
                            "description": "`Do Not Disturb` enabled or not.\n"
                          },
                          "enable_acb": {
                            "type": "boolean",
                            "description": "`Automatic Callback` enabled or not.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "items": [
                        {
                          "status": null,
                          "presence": null,
                          "presence_note": null,
                          "registration": null,
                          "enable_dnd": null,
                          "enable_acb": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/users/{id}": {
      "get": {
        "tags": [
          "User"
        ],
        "operationId": "showUser",
        "x-category": "extensions",
        "x-subcategory": "extensions",
        "x-permissions": [
          "User.ViewOnly"
        ],
        "summary": "Retrieve a user",
        "description": "Retrieves the settings of a user.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of user.\n"
            },
            "description": "The unique ID of the user."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of user.\n"
                    },
                    "name": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64,
                      "description": "The user's account name.   \nOnly letters, numbers, and the following special characters can be added: underscore, dash, single quote, and period (_, -, ', and .).   \nUsername cannot start or end with period (.).   \n`admin`, `system`, `administrator`, and `root` are reserved names for system admin only with case ignored.\n"
                    },
                    "email": {
                      "allOf": [
                        {
                          "type": "string",
                          "maxLength": 128,
                          "description": "The email address.\n",
                          "example": "example@example.com"
                        }
                      ],
                      "description": "The email address of user.\n"
                    },
                    "display_name": {
                      "type": "string",
                      "maxLength": 1024,
                      "description": "The display name of user.\n"
                    },
                    "role": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64,
                      "example": "User",
                      "description": "Roles include built-in roles and custom roles.   \nBuilt-in roles roles cannot be modified.   \nAlso, the names of built-in roles are reserved words,   \ncustom roles are not allowed to use these names to avoid unnecessary confusion.   \nBuilt-in roles include:   \n- `SystemAdmin`: the system administrator has almost all permissions.\n- `OperationsAdmin`: the operations administrator.\n- `SiteAdmin`: the site administrator.\n- `Dealer`: the sales manager has all sold tenant resource permissions.\n- `Admin`: the admin has all tenant-wide resource permissions.\n- `StandardUser`: the user all user-wide resource permissions.\n- `StandardInternationalUser`: the user all user-wide resource permissions with international call permissions.\n- `QueueManager`: The call queue manager.\n"
                    },
                    "role_id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of role.\n"
                    },
                    "role_name": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64,
                      "example": "User",
                      "description": "Roles include built-in roles and custom roles.   \nBuilt-in roles roles cannot be modified.   \nAlso, the names of built-in roles are reserved words,   \ncustom roles are not allowed to use these names to avoid unnecessary confusion.   \nBuilt-in roles include:   \n- `SystemAdmin`: the system administrator has almost all permissions.\n- `OperationsAdmin`: the operations administrator.\n- `SiteAdmin`: the site administrator.\n- `Dealer`: the sales manager has all sold tenant resource permissions.\n- `Admin`: the admin has all tenant-wide resource permissions.\n- `StandardUser`: the user all user-wide resource permissions.\n- `StandardInternationalUser`: the user all user-wide resource permissions with international call permissions.\n- `QueueManager`: The call queue manager.\n"
                    },
                    "enabled": {
                      "type": "boolean",
                      "default": true,
                      "description": "Allows temporarily disabling the extension.\n"
                    },
                    "mobile_phone": {
                      "type": "string",
                      "maxLength": 32,
                      "description": "The mobile phone number of user.\n"
                    },
                    "work_phone": {
                      "type": "string",
                      "maxLength": 32,
                      "description": "The office phone number of user.\n"
                    },
                    "home_phone": {
                      "type": "string",
                      "maxLength": 32,
                      "description": "The home phone number of user.\n"
                    },
                    "address": {
                      "type": "string",
                      "maxLength": 128,
                      "description": "The address.\n"
                    },
                    "department": {
                      "type": "string",
                      "maxLength": 128,
                      "description": "The department of user.\n"
                    },
                    "extension_number": {
                      "type": "string",
                      "minLength": 3,
                      "maxLength": 64,
                      "pattern": "[0-9]{3,64}",
                      "description": "The extension number.\n"
                    },
                    "enable_audio_recording": {
                      "type": "boolean",
                      "default": false,
                      "description": "Records all calls and saves audio recordings on server.\n"
                    },
                    "enable_video_recording": {
                      "type": "boolean",
                      "default": false,
                      "description": "Records all calls and saves video recordings on server.\n"
                    },
                    "enable_dnd": {
                      "type": "boolean",
                      "description": "Enable `Do Not Disturb` or not.\n"
                    },
                    "enable_acb": {
                      "type": "boolean",
                      "description": "Enable `Automatic Callback` or not.\n"
                    },
                    "enable_hot_desking": {
                      "type": "boolean",
                      "default": false,
                      "description": "Enable hot desking feature or not.\n"
                    },
                    "anonymous_outbound_calls": {
                      "type": "boolean",
                      "default": false,
                      "description": "Always make outbound anonymous calls or not.\n"
                    },
                    "delivery_outbound_cid": {
                      "type": "boolean",
                      "default": true,
                      "description": "Always delivery outbound caller ID or not.\n"
                    },
                    "sms": {
                      "type": "string",
                      "enum": [
                        "DISABLE",
                        "ALLOW",
                        "ALLOW_WITH_SENDER_ID"
                      ],
                      "default": "DISABLE",
                      "description": "The preferred configuration for SMS/MMS.   \nNote: Only users with `UserManagement::Users` privilege can change this property.   \n  - `DISABLE`: Disable user SMS/MMS feature.\n  - `ALLOW`: Enable user SMS/MMS feature but with outbound caller ID.\n  - `ALLOW_WITH_SENDER_ID`: Enable user SMS/MMS but with trunk sender ID.\n"
                    },
                    "outbound_caller_ids": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "provider_id": {
                            "allOf": [
                              {
                                "allOf": [
                                  {
                                    "type": "string",
                                    "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                    "description": "The unique ID of the resource.\n"
                                  }
                                ],
                                "description": "The unique ID of user.\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"
                          },
                          "preferred": {
                            "type": "boolean",
                            "description": "Whether this outbound caller id preferred.\n"
                          },
                          "description": {
                            "type": "string",
                            "maxLength": 1024,
                            "description": "The descriptive information about this outbound caller id.\n"
                          }
                        }
                      },
                      "description": "A collection of outbound caller IDs.\n"
                    },
                    "custom_options": {
                      "type": "string",
                      "description": "Some custom configuration options serialized as json string\n"
                    },
                    "office_hours": {
                      "allOf": [
                        {
                          "type": "object",
                          "properties": {
                            "mode": {
                              "type": "string",
                              "enum": [
                                "GLOBAL",
                                "CUSTOM"
                              ],
                              "example": "CUSTOM",
                              "description": "The office hours mode can be either:  \n- `GLOBAL`: Use global office hours.\n- `CUSTOM`: Use specific office hours.\n"
                            }
                          }
                        },
                        {
                          "type": "object",
                          "properties": {
                            "monday": {
                              "type": "object",
                              "properties": {
                                "enabled": {
                                  "type": "boolean",
                                  "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                },
                                "ranges": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "from": {
                                        "type": "string",
                                        "example": "09:00",
                                        "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                      },
                                      "to": {
                                        "type": "string",
                                        "example": "17:00",
                                        "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                      }
                                    }
                                  },
                                  "description": "Multiple start and end time periods make up the working time.\n"
                                }
                              }
                            },
                            "tuesday": {
                              "type": "object",
                              "properties": {
                                "enabled": {
                                  "type": "boolean",
                                  "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                },
                                "ranges": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "from": {
                                        "type": "string",
                                        "example": "09:00",
                                        "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                      },
                                      "to": {
                                        "type": "string",
                                        "example": "17:00",
                                        "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                      }
                                    }
                                  },
                                  "description": "Multiple start and end time periods make up the working time.\n"
                                }
                              }
                            },
                            "wednesday": {
                              "type": "object",
                              "properties": {
                                "enabled": {
                                  "type": "boolean",
                                  "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                },
                                "ranges": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "from": {
                                        "type": "string",
                                        "example": "09:00",
                                        "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                      },
                                      "to": {
                                        "type": "string",
                                        "example": "17:00",
                                        "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                      }
                                    }
                                  },
                                  "description": "Multiple start and end time periods make up the working time.\n"
                                }
                              }
                            },
                            "thursday": {
                              "type": "object",
                              "properties": {
                                "enabled": {
                                  "type": "boolean",
                                  "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                },
                                "ranges": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "from": {
                                        "type": "string",
                                        "example": "09:00",
                                        "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                      },
                                      "to": {
                                        "type": "string",
                                        "example": "17:00",
                                        "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                      }
                                    }
                                  },
                                  "description": "Multiple start and end time periods make up the working time.\n"
                                }
                              }
                            },
                            "friday": {
                              "type": "object",
                              "properties": {
                                "enabled": {
                                  "type": "boolean",
                                  "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                },
                                "ranges": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "from": {
                                        "type": "string",
                                        "example": "09:00",
                                        "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                      },
                                      "to": {
                                        "type": "string",
                                        "example": "17:00",
                                        "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                      }
                                    }
                                  },
                                  "description": "Multiple start and end time periods make up the working time.\n"
                                }
                              }
                            },
                            "saturday": {
                              "type": "object",
                              "properties": {
                                "enabled": {
                                  "type": "boolean",
                                  "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                },
                                "ranges": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "from": {
                                        "type": "string",
                                        "example": "09:00",
                                        "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                      },
                                      "to": {
                                        "type": "string",
                                        "example": "17:00",
                                        "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                      }
                                    }
                                  },
                                  "description": "Multiple start and end time periods make up the working time.\n"
                                }
                              }
                            },
                            "sunday": {
                              "type": "object",
                              "properties": {
                                "enabled": {
                                  "type": "boolean",
                                  "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                },
                                "ranges": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "from": {
                                        "type": "string",
                                        "example": "09:00",
                                        "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                      },
                                      "to": {
                                        "type": "string",
                                        "example": "17:00",
                                        "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                      }
                                    }
                                  },
                                  "description": "Multiple start and end time periods make up the working time.\n"
                                }
                              }
                            }
                          }
                        }
                      ]
                    },
                    "available_office_hours_forward_rule": {
                      "type": "object",
                      "properties": {
                        "action": {
                          "type": "string",
                          "enum": [
                            "FORWARD_TO_NUMBER",
                            "FORWARD_TO_VOICEMAIL",
                            "RING_ANYWAY",
                            "HANGUP"
                          ],
                          "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`: Forward to the specified number\n- `FORWARD_TO_VOICEMAIL`: Forward to the specified voicemail.\n- `RING_ANYWAY`: Ring anyway.\n- `HANGUP`: Finish call\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"
                        }
                      }
                    },
                    "available_non_office_hours_forward_rule": {
                      "type": "object",
                      "properties": {
                        "action": {
                          "type": "string",
                          "enum": [
                            "FORWARD_TO_NUMBER",
                            "FORWARD_TO_VOICEMAIL",
                            "RING_ANYWAY",
                            "HANGUP"
                          ],
                          "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`: Forward to the specified number\n- `FORWARD_TO_VOICEMAIL`: Forward to the specified voicemail.\n- `RING_ANYWAY`: Ring anyway.\n- `HANGUP`: Finish call\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"
                        }
                      }
                    },
                    "available_no_answer_forward_rule": {
                      "type": "object",
                      "properties": {
                        "action": {
                          "type": "string",
                          "enum": [
                            "FORWARD_TO_NUMBER",
                            "FORWARD_TO_VOICEMAIL",
                            "HANGUP"
                          ],
                          "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`: Forward to the specified number\n- `FORWARD_TO_VOICEMAIL`: Forward to the specified voicemail.\n- `HANGUP`: Finish call\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"
                        },
                        "timeout": {
                          "type": "integer",
                          "format": "int32",
                          "minimum": 0,
                          "default": 60,
                          "description": "Duration that the call will remain ringing when no one answered, in seconds.\n"
                        }
                      }
                    },
                    "busy_office_hours_forward_rule": {
                      "type": "object",
                      "properties": {
                        "action": {
                          "type": "string",
                          "enum": [
                            "FORWARD_TO_NUMBER",
                            "FORWARD_TO_VOICEMAIL",
                            "RING_ANYWAY",
                            "HANGUP"
                          ],
                          "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`: Forward to the specified number\n- `FORWARD_TO_VOICEMAIL`: Forward to the specified voicemail.\n- `RING_ANYWAY`: Ring anyway.\n- `HANGUP`: Finish call\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"
                        }
                      }
                    },
                    "busy_non_office_hours_forward_rule": {
                      "type": "object",
                      "properties": {
                        "action": {
                          "type": "string",
                          "enum": [
                            "FORWARD_TO_NUMBER",
                            "FORWARD_TO_VOICEMAIL",
                            "RING_ANYWAY",
                            "HANGUP"
                          ],
                          "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`: Forward to the specified number\n- `FORWARD_TO_VOICEMAIL`: Forward to the specified voicemail.\n- `RING_ANYWAY`: Ring anyway.\n- `HANGUP`: Finish call\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"
                        }
                      }
                    },
                    "busy_no_answer_forward_rule": {
                      "type": "object",
                      "properties": {
                        "action": {
                          "type": "string",
                          "enum": [
                            "FORWARD_TO_NUMBER",
                            "FORWARD_TO_VOICEMAIL",
                            "HANGUP"
                          ],
                          "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`: Forward to the specified number\n- `FORWARD_TO_VOICEMAIL`: Forward to the specified voicemail.\n- `HANGUP`: Finish call\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"
                        },
                        "timeout": {
                          "type": "integer",
                          "format": "int32",
                          "minimum": 0,
                          "default": 60,
                          "description": "Duration that the call will remain ringing when no one answered, in seconds.\n"
                        }
                      }
                    },
                    "dnd_office_hours_forward_rule": {
                      "type": "object",
                      "properties": {
                        "action": {
                          "type": "string",
                          "enum": [
                            "FORWARD_TO_NUMBER",
                            "FORWARD_TO_VOICEMAIL",
                            "HANGUP"
                          ],
                          "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`: Forward to the specified number\n- `FORWARD_TO_VOICEMAIL`: Forward to the specified voicemail.\n- `HANGUP`: Finish call\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"
                        }
                      }
                    },
                    "dnd_non_office_hours_forward_rule": {
                      "type": "object",
                      "properties": {
                        "action": {
                          "type": "string",
                          "enum": [
                            "FORWARD_TO_NUMBER",
                            "FORWARD_TO_VOICEMAIL",
                            "HANGUP"
                          ],
                          "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`: Forward to the specified number\n- `FORWARD_TO_VOICEMAIL`: Forward to the specified voicemail.\n- `HANGUP`: Finish call\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"
                        }
                      }
                    },
                    "away_office_hours_forward_rule": {
                      "type": "object",
                      "properties": {
                        "action": {
                          "type": "string",
                          "enum": [
                            "FORWARD_TO_NUMBER",
                            "FORWARD_TO_VOICEMAIL",
                            "HANGUP"
                          ],
                          "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`: Forward to the specified number\n- `FORWARD_TO_VOICEMAIL`: Forward to the specified voicemail.\n- `HANGUP`: Finish call\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"
                        }
                      }
                    },
                    "away_non_office_hours_forward_rule": {
                      "type": "object",
                      "properties": {
                        "action": {
                          "type": "string",
                          "enum": [
                            "FORWARD_TO_NUMBER",
                            "FORWARD_TO_VOICEMAIL",
                            "HANGUP"
                          ],
                          "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`: Forward to the specified number\n- `FORWARD_TO_VOICEMAIL`: Forward to the specified voicemail.\n- `HANGUP`: Finish call\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"
                        }
                      }
                    },
                    "lunch_office_hours_forward_rule": {
                      "type": "object",
                      "properties": {
                        "action": {
                          "type": "string",
                          "enum": [
                            "FORWARD_TO_NUMBER",
                            "FORWARD_TO_VOICEMAIL",
                            "HANGUP"
                          ],
                          "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`: Forward to the specified number\n- `FORWARD_TO_VOICEMAIL`: Forward to the specified voicemail.\n- `HANGUP`: Finish call\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"
                        }
                      }
                    },
                    "lunch_non_office_hours_forward_rule": {
                      "type": "object",
                      "properties": {
                        "action": {
                          "type": "string",
                          "enum": [
                            "FORWARD_TO_NUMBER",
                            "FORWARD_TO_VOICEMAIL",
                            "HANGUP"
                          ],
                          "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`: Forward to the specified number\n- `FORWARD_TO_VOICEMAIL`: Forward to the specified voicemail.\n- `HANGUP`: Finish call\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"
                        }
                      }
                    },
                    "trip_office_hours_forward_rule": {
                      "type": "object",
                      "properties": {
                        "action": {
                          "type": "string",
                          "enum": [
                            "FORWARD_TO_NUMBER",
                            "FORWARD_TO_VOICEMAIL",
                            "HANGUP"
                          ],
                          "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`: Forward to the specified number\n- `FORWARD_TO_VOICEMAIL`: Forward to the specified voicemail.\n- `HANGUP`: Finish call\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"
                        }
                      }
                    },
                    "trip_non_office_hours_forward_rule": {
                      "type": "object",
                      "properties": {
                        "action": {
                          "type": "string",
                          "enum": [
                            "FORWARD_TO_NUMBER",
                            "FORWARD_TO_VOICEMAIL",
                            "HANGUP"
                          ],
                          "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`: Forward to the specified number\n- `FORWARD_TO_VOICEMAIL`: Forward to the specified voicemail.\n- `HANGUP`: Finish call\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"
                        }
                      }
                    },
                    "offline_office_hours_forward_rule": {
                      "type": "object",
                      "properties": {
                        "action": {
                          "type": "string",
                          "enum": [
                            "FORWARD_TO_NUMBER",
                            "FORWARD_TO_VOICEMAIL",
                            "HANGUP"
                          ],
                          "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`: Forward to the specified number\n- `FORWARD_TO_VOICEMAIL`: Forward to the specified voicemail.\n- `HANGUP`: Finish call\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"
                        }
                      }
                    },
                    "offline_non_office_hours_forward_rule": {
                      "type": "object",
                      "properties": {
                        "action": {
                          "type": "string",
                          "enum": [
                            "FORWARD_TO_NUMBER",
                            "FORWARD_TO_VOICEMAIL",
                            "HANGUP"
                          ],
                          "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`: Forward to the specified number\n- `FORWARD_TO_VOICEMAIL`: Forward to the specified voicemail.\n- `HANGUP`: Finish call\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"
                        }
                      }
                    },
                    "custom_forward_rules": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "action": {
                            "type": "string",
                            "enum": [
                              "FORWARD_TO_NUMBER",
                              "FORWARD_TO_VOICEMAIL",
                              "RING_ANYWAY",
                              "HANGUP"
                            ],
                            "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`: Forward to the specified number\n- `FORWARD_TO_VOICEMAIL`: Forward to the specified voicemail.\n- `RING_ANYWAY`: Ring anyway.\n- `HANGUP`: Finish call\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"
                          },
                          "caller_id": {
                            "type": "string",
                            "description": "Specify the caller ID mask.\n"
                          },
                          "type": {
                            "type": "string",
                            "enum": [
                              "ALL_HOURS",
                              "SPECIFIC_HOURS",
                              "OUTSIDE_SPECIFIC_HOURS"
                            ],
                            "description": "Specify hours mode for forward rule:\n- `ALL_HOURS`:\n- `SPECIFIC_HOURS`:\n- `OUTSIDE_SPECIFIC_HOURS`:\n"
                          },
                          "hours": {
                            "allOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "monday": {
                                    "type": "object",
                                    "properties": {
                                      "enabled": {
                                        "type": "boolean",
                                        "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                      },
                                      "ranges": {
                                        "type": "array",
                                        "items": {
                                          "type": "object",
                                          "properties": {
                                            "from": {
                                              "type": "string",
                                              "example": "09:00",
                                              "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                            },
                                            "to": {
                                              "type": "string",
                                              "example": "17:00",
                                              "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                            }
                                          }
                                        },
                                        "description": "Multiple start and end time periods make up the working time.\n"
                                      }
                                    }
                                  },
                                  "tuesday": {
                                    "type": "object",
                                    "properties": {
                                      "enabled": {
                                        "type": "boolean",
                                        "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                      },
                                      "ranges": {
                                        "type": "array",
                                        "items": {
                                          "type": "object",
                                          "properties": {
                                            "from": {
                                              "type": "string",
                                              "example": "09:00",
                                              "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                            },
                                            "to": {
                                              "type": "string",
                                              "example": "17:00",
                                              "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                            }
                                          }
                                        },
                                        "description": "Multiple start and end time periods make up the working time.\n"
                                      }
                                    }
                                  },
                                  "wednesday": {
                                    "type": "object",
                                    "properties": {
                                      "enabled": {
                                        "type": "boolean",
                                        "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                      },
                                      "ranges": {
                                        "type": "array",
                                        "items": {
                                          "type": "object",
                                          "properties": {
                                            "from": {
                                              "type": "string",
                                              "example": "09:00",
                                              "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                            },
                                            "to": {
                                              "type": "string",
                                              "example": "17:00",
                                              "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                            }
                                          }
                                        },
                                        "description": "Multiple start and end time periods make up the working time.\n"
                                      }
                                    }
                                  },
                                  "thursday": {
                                    "type": "object",
                                    "properties": {
                                      "enabled": {
                                        "type": "boolean",
                                        "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                      },
                                      "ranges": {
                                        "type": "array",
                                        "items": {
                                          "type": "object",
                                          "properties": {
                                            "from": {
                                              "type": "string",
                                              "example": "09:00",
                                              "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                            },
                                            "to": {
                                              "type": "string",
                                              "example": "17:00",
                                              "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                            }
                                          }
                                        },
                                        "description": "Multiple start and end time periods make up the working time.\n"
                                      }
                                    }
                                  },
                                  "friday": {
                                    "type": "object",
                                    "properties": {
                                      "enabled": {
                                        "type": "boolean",
                                        "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                      },
                                      "ranges": {
                                        "type": "array",
                                        "items": {
                                          "type": "object",
                                          "properties": {
                                            "from": {
                                              "type": "string",
                                              "example": "09:00",
                                              "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                            },
                                            "to": {
                                              "type": "string",
                                              "example": "17:00",
                                              "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                            }
                                          }
                                        },
                                        "description": "Multiple start and end time periods make up the working time.\n"
                                      }
                                    }
                                  },
                                  "saturday": {
                                    "type": "object",
                                    "properties": {
                                      "enabled": {
                                        "type": "boolean",
                                        "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                      },
                                      "ranges": {
                                        "type": "array",
                                        "items": {
                                          "type": "object",
                                          "properties": {
                                            "from": {
                                              "type": "string",
                                              "example": "09:00",
                                              "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                            },
                                            "to": {
                                              "type": "string",
                                              "example": "17:00",
                                              "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                            }
                                          }
                                        },
                                        "description": "Multiple start and end time periods make up the working time.\n"
                                      }
                                    }
                                  },
                                  "sunday": {
                                    "type": "object",
                                    "properties": {
                                      "enabled": {
                                        "type": "boolean",
                                        "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                      },
                                      "ranges": {
                                        "type": "array",
                                        "items": {
                                          "type": "object",
                                          "properties": {
                                            "from": {
                                              "type": "string",
                                              "example": "09:00",
                                              "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                            },
                                            "to": {
                                              "type": "string",
                                              "example": "17:00",
                                              "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                            }
                                          }
                                        },
                                        "description": "Multiple start and end time periods make up the working time.\n"
                                      }
                                    }
                                  }
                                }
                              }
                            ],
                            "description": "Specify hours for this custom forward rule.\n"
                          }
                        }
                      }
                    },
                    "voicemail_prompt": {
                      "type": "string",
                      "example": "en-US",
                      "description": "BCP 47 Language Tags (The Internet Best Current Practices (BCP) for language tags).\nA language tag is composed of a sequence of one or more subtags such as language, region, variant and script subtags.\nWhen a language tag is comprised of more than one subtag, the subtag values are separated by the \"-\" character.\nYou will most commonly find language tags written with 2 subtags - language and region. For example: en-US.\n"
                    },
                    "enable_voicemail_pin": {
                      "type": "boolean",
                      "default": true,
                      "description": "Whether the PIN is required to access voice mail of extension.\n"
                    },
                    "voicemail_pin": {
                      "type": "string",
                      "description": "The PIN number for accessing.\n"
                    },
                    "enable_voicemail_notify": {
                      "type": "boolean",
                      "default": false,
                      "description": "Enable voicemail to email notify.\n"
                    },
                    "voicemail_play_datetime": {
                      "type": "string",
                      "enum": [
                        "DISABLE",
                        "12_HOUR_CLOCK",
                        "24_HOUR_CLOCK"
                      ],
                      "description": "Announces Date and Time of Message.\n- `DISABLE`: Do not read;\n- `12_HOUR_CLOCK`: Read in 12-hour clock;\n- `24_HOUR_CLOCK`: Read in 24-hour clock.\n"
                    },
                    "interface": {
                      "type": "string",
                      "enum": [
                        "WEB_DOMAIN",
                        "PUBLIC_IPV4",
                        "PUBLIC_IPV6",
                        "PRIVATE_IPV4",
                        "PRIVATE_IPV6",
                        "SBC_DOMAIN"
                      ],
                      "description": "The interface type for QR code or auto provisioning.   \nCan be neither:  \n- `WEB_DOMAIN`:\n- `PUBLIC_IPV4`:\n- `PUBLIC_IPV6`:\n- `PRIVATE_IPV4`:\n- `PRIVATE_IPV6`:\n- `SBC_DOMAIN`:\n"
                    },
                    "preferred_transport": {
                      "type": "string",
                      "enum": [
                        "UDP",
                        "TCP",
                        "TLS"
                      ],
                      "description": "The transport protocol:  \nCan be either:  \n- `UDP`:\n- `TCP`:\n- `TLS`:\n"
                    },
                    "blfs": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "key": {
                            "type": "string",
                            "description": "The key of BLF.\n"
                          },
                          "value": {
                            "type": "string",
                            "description": "The value of BLF.\n"
                          },
                          "first_name": {
                            "type": "string",
                            "description": "The first name of BLF.\n"
                          },
                          "last_name": {
                            "type": "string",
                            "description": "The last name of BLF.\n"
                          }
                        }
                      },
                      "description": "A collection of BLFs.\n"
                    },
                    "profile": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of user profile file.\n"
                    },
                    "created_at": {
                      "allOf": [
                        {
                          "type": "string",
                          "format": "date_time",
                          "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                          "example": "2017-07-21T17:32:28Z"
                        }
                      ],
                      "description": "The creation time of user.\n"
                    },
                    "avatar_file_name": {
                      "type": "string",
                      "description": "The name of the file.\n"
                    },
                    "avatar_file_size": {
                      "type": "integer",
                      "format": "int64",
                      "minimum": 0,
                      "example": 0,
                      "description": "The file size in bytes.\n"
                    },
                    "avatar_file_url": {
                      "type": "string",
                      "readOnly": true,
                      "example": "/api/blobs/WexWdABcd5D4PDgzTKV3gAAAEu00WcK",
                      "description": "The relative path to file url for file downloading.\n"
                    },
                    "provider": {
                      "type": "string",
                      "description": "The account provider.\n"
                    },
                    "provider_id": {
                      "type": "string",
                      "description": "The account provider ID.\n"
                    },
                    "sync_type": {
                      "type": "string",
                      "enum": [
                        "Microsoft 365"
                      ],
                      "description": "The synchronization method.   \nCan be either:   \n- `Microsoft 365`: Sync from Microsoft 365.\n"
                    },
                    "enable_ai_transcript": {
                      "type": "boolean",
                      "description": "Enable `ai transcript` or not.\n"
                    },
                    "enable_uc_app": {
                      "type": "boolean",
                      "description": "Enable `user-agent of app` or not.\n"
                    },
                    "password": {
                      "type": "string",
                      "description": "The password of user.\n"
                    },
                    "extension_password": {
                      "type": "string",
                      "description": "The extension_password of user.\n"
                    },
                    "enable_teams_phone_app": {
                      "type": "boolean",
                      "description": "Is it allowed to log in to the teams phone app.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "id": null,
                      "name": null,
                      "email": null,
                      "display_name": null,
                      "role": null,
                      "enabled": null,
                      "mobile_phone": null,
                      "work_phone": null,
                      "home_phone": null,
                      "address": null,
                      "department": null,
                      "extension_number": null,
                      "enable_audio_recording": null,
                      "enable_video_recording": null,
                      "enable_dnd": null,
                      "enable_acb": null,
                      "enable_hot_desking": null,
                      "anonymous_outbound_calls": null,
                      "delivery_outbound_cid": null,
                      "sms": null,
                      "outbound_caller_ids": null,
                      "custom_options": null,
                      "office_hours": null,
                      "available_office_hours_forward_rule": null,
                      "available_non_office_hours_forward_rule": null,
                      "available_no_answer_forward_rule": null,
                      "busy_office_hours_forward_rule": null,
                      "busy_non_office_hours_forward_rule": null,
                      "busy_no_answer_forward_rule": null,
                      "dnd_office_hours_forward_rule": null,
                      "dnd_non_office_hours_forward_rule": null,
                      "away_office_hours_forward_rule": null,
                      "away_non_office_hours_forward_rule": null,
                      "lunch_office_hours_forward_rule": null,
                      "lunch_non_office_hours_forward_rule": null,
                      "trip_office_hours_forward_rule": null,
                      "trip_non_office_hours_forward_rule": null,
                      "offline_office_hours_forward_rule": null,
                      "offline_non_office_hours_forward_rule": null,
                      "custom_forward_rules": null,
                      "voicemail_prompt": null,
                      "enable_voicemail_pin": null,
                      "voicemail_pin": null,
                      "enable_voicemail_notify": null,
                      "voicemail_play_datetime": null,
                      "interface": null,
                      "preferred_transport": null,
                      "blfs": null,
                      "profile": null,
                      "created_at": null,
                      "avatar_file_name": null,
                      "avatar_file_size": null,
                      "avatar_file_url": null,
                      "provider": null,
                      "provider_id": null,
                      "sync_type": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "updateUser",
        "x-category": "extensions",
        "x-subcategory": "extensions",
        "x-permissions": [
          "User.FullAccess"
        ],
        "summary": "Update a user",
        "description": "Modify the settings of a user.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of user.\n"
            },
            "description": "The unique ID of the user."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "email": {
                    "allOf": [
                      {
                        "type": "string",
                        "maxLength": 128,
                        "description": "The email address.\n",
                        "example": "example@example.com"
                      }
                    ],
                    "description": "The email address of user.\n"
                  },
                  "display_name": {
                    "type": "string",
                    "maxLength": 1024,
                    "description": "The display name of user.\n"
                  },
                  "enabled": {
                    "type": "boolean",
                    "default": true,
                    "description": "Allows temporarily disabling the extension.\n"
                  },
                  "mobile_phone": {
                    "type": "string",
                    "maxLength": 32,
                    "description": "The mobile phone number of user.\n"
                  },
                  "work_phone": {
                    "type": "string",
                    "maxLength": 32,
                    "description": "The office phone number of user.\n"
                  },
                  "home_phone": {
                    "type": "string",
                    "maxLength": 32,
                    "description": "The home phone number of user.\n"
                  },
                  "address": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The address.\n"
                  },
                  "department": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The department of user.\n"
                  },
                  "enable_audio_recording": {
                    "type": "boolean",
                    "default": false,
                    "description": "Records all calls and saves audio recordings on server.\n"
                  },
                  "enable_video_recording": {
                    "type": "boolean",
                    "default": false,
                    "description": "Records all calls and saves video recordings on server.\n"
                  },
                  "enable_dnd": {
                    "type": "boolean",
                    "description": "Enable `Do Not Disturb` or not.\n"
                  },
                  "enable_acb": {
                    "type": "boolean",
                    "description": "Enable `Automatic Callback` or not.\n"
                  },
                  "enable_hot_desking": {
                    "type": "boolean",
                    "default": false,
                    "description": "Enable hot desking feature or not.\n"
                  },
                  "anonymous_outbound_calls": {
                    "type": "boolean",
                    "default": false,
                    "description": "Always make outbound anonymous calls or not.\n"
                  },
                  "delivery_outbound_cid": {
                    "type": "boolean",
                    "default": true,
                    "description": "Always delivery outbound caller ID or not.\n"
                  },
                  "sms": {
                    "type": "string",
                    "enum": [
                      "DISABLE",
                      "ALLOW",
                      "ALLOW_WITH_SENDER_ID"
                    ],
                    "default": "DISABLE",
                    "description": "The preferred configuration for SMS/MMS.   \nNote: Only users with `UserManagement::Users` privilege can change this property.   \n  - `DISABLE`: Disable user SMS/MMS feature.\n  - `ALLOW`: Enable user SMS/MMS feature but with outbound caller ID.\n  - `ALLOW_WITH_SENDER_ID`: Enable user SMS/MMS but with trunk sender ID.\n"
                  },
                  "outbound_caller_ids": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "provider_id": {
                          "allOf": [
                            {
                              "allOf": [
                                {
                                  "type": "string",
                                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                  "description": "The unique ID of the resource.\n"
                                }
                              ],
                              "description": "The unique ID of user.\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"
                        },
                        "preferred": {
                          "type": "boolean",
                          "description": "Whether this outbound caller id preferred.\n"
                        },
                        "description": {
                          "type": "string",
                          "maxLength": 1024,
                          "description": "The descriptive information about this outbound caller id.\n"
                        }
                      }
                    },
                    "description": "A collection of outbound caller IDs.\n"
                  },
                  "custom_options": {
                    "type": "string",
                    "description": "Some custom configuration options serialized as json string\n"
                  },
                  "office_hours": {
                    "allOf": [
                      {
                        "type": "object",
                        "properties": {
                          "mode": {
                            "type": "string",
                            "enum": [
                              "GLOBAL",
                              "CUSTOM"
                            ],
                            "example": "CUSTOM",
                            "description": "The office hours mode can be either:  \n- `GLOBAL`: Use global office hours.\n- `CUSTOM`: Use specific office hours.\n"
                          }
                        }
                      },
                      {
                        "type": "object",
                        "properties": {
                          "monday": {
                            "type": "object",
                            "properties": {
                              "enabled": {
                                "type": "boolean",
                                "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                              },
                              "ranges": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "from": {
                                      "type": "string",
                                      "example": "09:00",
                                      "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                    },
                                    "to": {
                                      "type": "string",
                                      "example": "17:00",
                                      "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                    }
                                  }
                                },
                                "description": "Multiple start and end time periods make up the working time.\n"
                              }
                            }
                          },
                          "tuesday": {
                            "type": "object",
                            "properties": {
                              "enabled": {
                                "type": "boolean",
                                "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                              },
                              "ranges": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "from": {
                                      "type": "string",
                                      "example": "09:00",
                                      "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                    },
                                    "to": {
                                      "type": "string",
                                      "example": "17:00",
                                      "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                    }
                                  }
                                },
                                "description": "Multiple start and end time periods make up the working time.\n"
                              }
                            }
                          },
                          "wednesday": {
                            "type": "object",
                            "properties": {
                              "enabled": {
                                "type": "boolean",
                                "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                              },
                              "ranges": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "from": {
                                      "type": "string",
                                      "example": "09:00",
                                      "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                    },
                                    "to": {
                                      "type": "string",
                                      "example": "17:00",
                                      "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                    }
                                  }
                                },
                                "description": "Multiple start and end time periods make up the working time.\n"
                              }
                            }
                          },
                          "thursday": {
                            "type": "object",
                            "properties": {
                              "enabled": {
                                "type": "boolean",
                                "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                              },
                              "ranges": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "from": {
                                      "type": "string",
                                      "example": "09:00",
                                      "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                    },
                                    "to": {
                                      "type": "string",
                                      "example": "17:00",
                                      "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                    }
                                  }
                                },
                                "description": "Multiple start and end time periods make up the working time.\n"
                              }
                            }
                          },
                          "friday": {
                            "type": "object",
                            "properties": {
                              "enabled": {
                                "type": "boolean",
                                "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                              },
                              "ranges": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "from": {
                                      "type": "string",
                                      "example": "09:00",
                                      "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                    },
                                    "to": {
                                      "type": "string",
                                      "example": "17:00",
                                      "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                    }
                                  }
                                },
                                "description": "Multiple start and end time periods make up the working time.\n"
                              }
                            }
                          },
                          "saturday": {
                            "type": "object",
                            "properties": {
                              "enabled": {
                                "type": "boolean",
                                "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                              },
                              "ranges": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "from": {
                                      "type": "string",
                                      "example": "09:00",
                                      "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                    },
                                    "to": {
                                      "type": "string",
                                      "example": "17:00",
                                      "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                    }
                                  }
                                },
                                "description": "Multiple start and end time periods make up the working time.\n"
                              }
                            }
                          },
                          "sunday": {
                            "type": "object",
                            "properties": {
                              "enabled": {
                                "type": "boolean",
                                "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                              },
                              "ranges": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "from": {
                                      "type": "string",
                                      "example": "09:00",
                                      "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                    },
                                    "to": {
                                      "type": "string",
                                      "example": "17:00",
                                      "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                    }
                                  }
                                },
                                "description": "Multiple start and end time periods make up the working time.\n"
                              }
                            }
                          }
                        }
                      }
                    ]
                  },
                  "available_office_hours_forward_rule": {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "enum": [
                          "FORWARD_TO_NUMBER",
                          "FORWARD_TO_VOICEMAIL",
                          "RING_ANYWAY",
                          "HANGUP"
                        ],
                        "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`: Forward to the specified number\n- `FORWARD_TO_VOICEMAIL`: Forward to the specified voicemail.\n- `RING_ANYWAY`: Ring anyway.\n- `HANGUP`: Finish call\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"
                      }
                    }
                  },
                  "available_non_office_hours_forward_rule": {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "enum": [
                          "FORWARD_TO_NUMBER",
                          "FORWARD_TO_VOICEMAIL",
                          "RING_ANYWAY",
                          "HANGUP"
                        ],
                        "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`: Forward to the specified number\n- `FORWARD_TO_VOICEMAIL`: Forward to the specified voicemail.\n- `RING_ANYWAY`: Ring anyway.\n- `HANGUP`: Finish call\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"
                      }
                    }
                  },
                  "available_no_answer_forward_rule": {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "enum": [
                          "FORWARD_TO_NUMBER",
                          "FORWARD_TO_VOICEMAIL",
                          "HANGUP"
                        ],
                        "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`: Forward to the specified number\n- `FORWARD_TO_VOICEMAIL`: Forward to the specified voicemail.\n- `HANGUP`: Finish call\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"
                      },
                      "timeout": {
                        "type": "integer",
                        "format": "int32",
                        "minimum": 0,
                        "default": 60,
                        "description": "Duration that the call will remain ringing when no one answered, in seconds.\n"
                      }
                    }
                  },
                  "busy_office_hours_forward_rule": {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "enum": [
                          "FORWARD_TO_NUMBER",
                          "FORWARD_TO_VOICEMAIL",
                          "RING_ANYWAY",
                          "HANGUP"
                        ],
                        "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`: Forward to the specified number\n- `FORWARD_TO_VOICEMAIL`: Forward to the specified voicemail.\n- `RING_ANYWAY`: Ring anyway.\n- `HANGUP`: Finish call\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"
                      }
                    }
                  },
                  "busy_non_office_hours_forward_rule": {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "enum": [
                          "FORWARD_TO_NUMBER",
                          "FORWARD_TO_VOICEMAIL",
                          "RING_ANYWAY",
                          "HANGUP"
                        ],
                        "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`: Forward to the specified number\n- `FORWARD_TO_VOICEMAIL`: Forward to the specified voicemail.\n- `RING_ANYWAY`: Ring anyway.\n- `HANGUP`: Finish call\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"
                      }
                    }
                  },
                  "busy_no_answer_forward_rule": {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "enum": [
                          "FORWARD_TO_NUMBER",
                          "FORWARD_TO_VOICEMAIL",
                          "HANGUP"
                        ],
                        "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`: Forward to the specified number\n- `FORWARD_TO_VOICEMAIL`: Forward to the specified voicemail.\n- `HANGUP`: Finish call\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"
                      },
                      "timeout": {
                        "type": "integer",
                        "format": "int32",
                        "minimum": 0,
                        "default": 60,
                        "description": "Duration that the call will remain ringing when no one answered, in seconds.\n"
                      }
                    }
                  },
                  "dnd_office_hours_forward_rule": {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "enum": [
                          "FORWARD_TO_NUMBER",
                          "FORWARD_TO_VOICEMAIL",
                          "HANGUP"
                        ],
                        "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`: Forward to the specified number\n- `FORWARD_TO_VOICEMAIL`: Forward to the specified voicemail.\n- `HANGUP`: Finish call\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"
                      }
                    }
                  },
                  "dnd_non_office_hours_forward_rule": {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "enum": [
                          "FORWARD_TO_NUMBER",
                          "FORWARD_TO_VOICEMAIL",
                          "HANGUP"
                        ],
                        "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`: Forward to the specified number\n- `FORWARD_TO_VOICEMAIL`: Forward to the specified voicemail.\n- `HANGUP`: Finish call\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"
                      }
                    }
                  },
                  "away_office_hours_forward_rule": {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "enum": [
                          "FORWARD_TO_NUMBER",
                          "FORWARD_TO_VOICEMAIL",
                          "HANGUP"
                        ],
                        "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`: Forward to the specified number\n- `FORWARD_TO_VOICEMAIL`: Forward to the specified voicemail.\n- `HANGUP`: Finish call\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"
                      }
                    }
                  },
                  "away_non_office_hours_forward_rule": {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "enum": [
                          "FORWARD_TO_NUMBER",
                          "FORWARD_TO_VOICEMAIL",
                          "HANGUP"
                        ],
                        "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`: Forward to the specified number\n- `FORWARD_TO_VOICEMAIL`: Forward to the specified voicemail.\n- `HANGUP`: Finish call\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"
                      }
                    }
                  },
                  "lunch_office_hours_forward_rule": {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "enum": [
                          "FORWARD_TO_NUMBER",
                          "FORWARD_TO_VOICEMAIL",
                          "HANGUP"
                        ],
                        "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`: Forward to the specified number\n- `FORWARD_TO_VOICEMAIL`: Forward to the specified voicemail.\n- `HANGUP`: Finish call\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"
                      }
                    }
                  },
                  "lunch_non_office_hours_forward_rule": {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "enum": [
                          "FORWARD_TO_NUMBER",
                          "FORWARD_TO_VOICEMAIL",
                          "HANGUP"
                        ],
                        "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`: Forward to the specified number\n- `FORWARD_TO_VOICEMAIL`: Forward to the specified voicemail.\n- `HANGUP`: Finish call\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"
                      }
                    }
                  },
                  "trip_office_hours_forward_rule": {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "enum": [
                          "FORWARD_TO_NUMBER",
                          "FORWARD_TO_VOICEMAIL",
                          "HANGUP"
                        ],
                        "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`: Forward to the specified number\n- `FORWARD_TO_VOICEMAIL`: Forward to the specified voicemail.\n- `HANGUP`: Finish call\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"
                      }
                    }
                  },
                  "trip_non_office_hours_forward_rule": {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "enum": [
                          "FORWARD_TO_NUMBER",
                          "FORWARD_TO_VOICEMAIL",
                          "HANGUP"
                        ],
                        "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`: Forward to the specified number\n- `FORWARD_TO_VOICEMAIL`: Forward to the specified voicemail.\n- `HANGUP`: Finish call\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"
                      }
                    }
                  },
                  "offline_office_hours_forward_rule": {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "enum": [
                          "FORWARD_TO_NUMBER",
                          "FORWARD_TO_VOICEMAIL",
                          "HANGUP"
                        ],
                        "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`: Forward to the specified number\n- `FORWARD_TO_VOICEMAIL`: Forward to the specified voicemail.\n- `HANGUP`: Finish call\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"
                      }
                    }
                  },
                  "offline_non_office_hours_forward_rule": {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "enum": [
                          "FORWARD_TO_NUMBER",
                          "FORWARD_TO_VOICEMAIL",
                          "HANGUP"
                        ],
                        "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`: Forward to the specified number\n- `FORWARD_TO_VOICEMAIL`: Forward to the specified voicemail.\n- `HANGUP`: Finish call\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"
                      }
                    }
                  },
                  "custom_forward_rules": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "action": {
                          "type": "string",
                          "enum": [
                            "FORWARD_TO_NUMBER",
                            "FORWARD_TO_VOICEMAIL",
                            "RING_ANYWAY",
                            "HANGUP"
                          ],
                          "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`: Forward to the specified number\n- `FORWARD_TO_VOICEMAIL`: Forward to the specified voicemail.\n- `RING_ANYWAY`: Ring anyway.\n- `HANGUP`: Finish call\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"
                        },
                        "caller_id": {
                          "type": "string",
                          "description": "Specify the caller ID mask.\n"
                        },
                        "type": {
                          "type": "string",
                          "enum": [
                            "ALL_HOURS",
                            "SPECIFIC_HOURS",
                            "OUTSIDE_SPECIFIC_HOURS"
                          ],
                          "description": "Specify hours mode for forward rule:\n- `ALL_HOURS`:\n- `SPECIFIC_HOURS`:\n- `OUTSIDE_SPECIFIC_HOURS`:\n"
                        },
                        "hours": {
                          "allOf": [
                            {
                              "type": "object",
                              "properties": {
                                "monday": {
                                  "type": "object",
                                  "properties": {
                                    "enabled": {
                                      "type": "boolean",
                                      "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                    },
                                    "ranges": {
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "from": {
                                            "type": "string",
                                            "example": "09:00",
                                            "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                          },
                                          "to": {
                                            "type": "string",
                                            "example": "17:00",
                                            "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                          }
                                        }
                                      },
                                      "description": "Multiple start and end time periods make up the working time.\n"
                                    }
                                  }
                                },
                                "tuesday": {
                                  "type": "object",
                                  "properties": {
                                    "enabled": {
                                      "type": "boolean",
                                      "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                    },
                                    "ranges": {
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "from": {
                                            "type": "string",
                                            "example": "09:00",
                                            "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                          },
                                          "to": {
                                            "type": "string",
                                            "example": "17:00",
                                            "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                          }
                                        }
                                      },
                                      "description": "Multiple start and end time periods make up the working time.\n"
                                    }
                                  }
                                },
                                "wednesday": {
                                  "type": "object",
                                  "properties": {
                                    "enabled": {
                                      "type": "boolean",
                                      "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                    },
                                    "ranges": {
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "from": {
                                            "type": "string",
                                            "example": "09:00",
                                            "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                          },
                                          "to": {
                                            "type": "string",
                                            "example": "17:00",
                                            "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                          }
                                        }
                                      },
                                      "description": "Multiple start and end time periods make up the working time.\n"
                                    }
                                  }
                                },
                                "thursday": {
                                  "type": "object",
                                  "properties": {
                                    "enabled": {
                                      "type": "boolean",
                                      "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                    },
                                    "ranges": {
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "from": {
                                            "type": "string",
                                            "example": "09:00",
                                            "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                          },
                                          "to": {
                                            "type": "string",
                                            "example": "17:00",
                                            "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                          }
                                        }
                                      },
                                      "description": "Multiple start and end time periods make up the working time.\n"
                                    }
                                  }
                                },
                                "friday": {
                                  "type": "object",
                                  "properties": {
                                    "enabled": {
                                      "type": "boolean",
                                      "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                    },
                                    "ranges": {
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "from": {
                                            "type": "string",
                                            "example": "09:00",
                                            "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                          },
                                          "to": {
                                            "type": "string",
                                            "example": "17:00",
                                            "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                          }
                                        }
                                      },
                                      "description": "Multiple start and end time periods make up the working time.\n"
                                    }
                                  }
                                },
                                "saturday": {
                                  "type": "object",
                                  "properties": {
                                    "enabled": {
                                      "type": "boolean",
                                      "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                    },
                                    "ranges": {
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "from": {
                                            "type": "string",
                                            "example": "09:00",
                                            "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                          },
                                          "to": {
                                            "type": "string",
                                            "example": "17:00",
                                            "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                          }
                                        }
                                      },
                                      "description": "Multiple start and end time periods make up the working time.\n"
                                    }
                                  }
                                },
                                "sunday": {
                                  "type": "object",
                                  "properties": {
                                    "enabled": {
                                      "type": "boolean",
                                      "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                    },
                                    "ranges": {
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "from": {
                                            "type": "string",
                                            "example": "09:00",
                                            "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                          },
                                          "to": {
                                            "type": "string",
                                            "example": "17:00",
                                            "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                          }
                                        }
                                      },
                                      "description": "Multiple start and end time periods make up the working time.\n"
                                    }
                                  }
                                }
                              }
                            }
                          ],
                          "description": "Specify hours for this custom forward rule.\n"
                        }
                      }
                    }
                  },
                  "voicemail_prompt": {
                    "type": "string",
                    "example": "en-US",
                    "description": "BCP 47 Language Tags (The Internet Best Current Practices (BCP) for language tags).\nA language tag is composed of a sequence of one or more subtags such as language, region, variant and script subtags.\nWhen a language tag is comprised of more than one subtag, the subtag values are separated by the \"-\" character.\nYou will most commonly find language tags written with 2 subtags - language and region. For example: en-US.\n"
                  },
                  "enable_voicemail_pin": {
                    "type": "boolean",
                    "default": true,
                    "description": "Whether the PIN is required to access voice mail of extension.\n"
                  },
                  "voicemail_pin": {
                    "type": "string",
                    "description": "The PIN number for accessing.\n"
                  },
                  "enable_voicemail_notify": {
                    "type": "boolean",
                    "default": false,
                    "description": "Enable voicemail to email notify.\n"
                  },
                  "voicemail_play_datetime": {
                    "type": "string",
                    "enum": [
                      "DISABLE",
                      "12_HOUR_CLOCK",
                      "24_HOUR_CLOCK"
                    ],
                    "description": "Announces Date and Time of Message.\n- `DISABLE`: Do not read;\n- `12_HOUR_CLOCK`: Read in 12-hour clock;\n- `24_HOUR_CLOCK`: Read in 24-hour clock.\n"
                  },
                  "interface": {
                    "type": "string",
                    "enum": [
                      "WEB_DOMAIN",
                      "PUBLIC_IPV4",
                      "PUBLIC_IPV6",
                      "PRIVATE_IPV4",
                      "PRIVATE_IPV6",
                      "SBC_DOMAIN"
                    ],
                    "description": "The interface type for QR code or auto provisioning.   \nCan be neither:  \n- `WEB_DOMAIN`:\n- `PUBLIC_IPV4`:\n- `PUBLIC_IPV6`:\n- `PRIVATE_IPV4`:\n- `PRIVATE_IPV6`:\n- `SBC_DOMAIN`:\n"
                  },
                  "preferred_transport": {
                    "type": "string",
                    "enum": [
                      "UDP",
                      "TCP",
                      "TLS"
                    ],
                    "description": "The transport protocol:  \nCan be either:  \n- `UDP`:\n- `TCP`:\n- `TLS`:\n"
                  },
                  "enable_ai_transcript": {
                    "type": "boolean",
                    "description": "Enable `ai transcript` or not.\n"
                  },
                  "enable_uc_app": {
                    "type": "boolean",
                    "description": "Enable `user-agent of app` or not.\n"
                  },
                  "enable_teams_phone_app": {
                    "type": "boolean",
                    "description": "Enable `enable teams phone app` or not.\n"
                  },
                  "blfs": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "key": {
                          "type": "string",
                          "description": "The key of BLF.\n"
                        },
                        "value": {
                          "type": "string",
                          "description": "The value of BLF.\n"
                        },
                        "first_name": {
                          "type": "string",
                          "description": "The first name of BLF.\n"
                        },
                        "last_name": {
                          "type": "string",
                          "description": "The last name of BLF.\n"
                        }
                      }
                    },
                    "description": "A collection of BLFs.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "email": null,
                    "display_name": null,
                    "enabled": null,
                    "mobile_phone": null,
                    "work_phone": null,
                    "home_phone": null,
                    "address": null,
                    "department": null,
                    "enable_audio_recording": null,
                    "enable_video_recording": null,
                    "enable_dnd": null,
                    "enable_acb": null,
                    "enable_hot_desking": null,
                    "anonymous_outbound_calls": null,
                    "delivery_outbound_cid": null,
                    "sms": null,
                    "outbound_caller_ids": null,
                    "custom_options": null,
                    "office_hours": null,
                    "available_office_hours_forward_rule": null,
                    "available_non_office_hours_forward_rule": null,
                    "available_no_answer_forward_rule": null,
                    "busy_office_hours_forward_rule": null,
                    "busy_non_office_hours_forward_rule": null,
                    "busy_no_answer_forward_rule": null,
                    "dnd_office_hours_forward_rule": null,
                    "dnd_non_office_hours_forward_rule": null,
                    "away_office_hours_forward_rule": null,
                    "away_non_office_hours_forward_rule": null,
                    "lunch_office_hours_forward_rule": null,
                    "lunch_non_office_hours_forward_rule": null,
                    "trip_office_hours_forward_rule": null,
                    "trip_non_office_hours_forward_rule": null,
                    "offline_office_hours_forward_rule": null,
                    "offline_non_office_hours_forward_rule": null,
                    "custom_forward_rules": null,
                    "voicemail_prompt": null,
                    "enable_voicemail_pin": null,
                    "voicemail_pin": null,
                    "enable_voicemail_notify": null,
                    "voicemail_play_datetime": null,
                    "interface": null,
                    "preferred_transport": null,
                    "blfs": null
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/users/{id}/password": {
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "resetUserPassword",
        "x-category": "extensions",
        "x-subcategory": "extensions",
        "x-permissions": [
          "User.FullAccess"
        ],
        "summary": "Reset user password",
        "description": "Reset user password.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of user.\n"
            },
            "description": "The unique ID of the user."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "password": {
                    "type": "string",
                    "description": "The password of user.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "password": null
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/users/{id}/extension_password": {
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "resetUserExtensionPassword",
        "x-category": "extensions",
        "x-subcategory": "extensions",
        "x-permissions": [
          "User.FullAccess"
        ],
        "summary": "Reset user extension password",
        "description": "Reset user extension password.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of user.\n"
            },
            "description": "The unique ID of the user."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "password": {
                    "type": "string",
                    "description": "The extension password.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "password": null
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/users/{id}/role": {
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "changeUserRole",
        "x-category": "extensions",
        "x-subcategory": "extensions",
        "x-permissions": [
          "User.FullAccess"
        ],
        "summary": "Change user role",
        "description": "Change user role.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of user.\n"
            },
            "description": "The unique ID of the user."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "role": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64,
                    "example": "User",
                    "description": "Roles include built-in roles and custom roles.   \nBuilt-in roles roles cannot be modified.   \nAlso, the names of built-in roles are reserved words,   \ncustom roles are not allowed to use these names to avoid unnecessary confusion.   \nBuilt-in roles include:   \n- `SystemAdmin`: the system administrator has almost all permissions.\n- `OperationsAdmin`: the operations administrator.\n- `SiteAdmin`: the site administrator.\n- `Dealer`: the sales manager has all sold tenant resource permissions.\n- `Admin`: the admin has all tenant-wide resource permissions.\n- `StandardUser`: the user all user-wide resource permissions.\n- `StandardInternationalUser`: the user all user-wide resource permissions with international call permissions.\n- `QueueManager`: The call queue manager.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "role": null
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/users/{id}/profile": {
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "resetUserProfile",
        "x-category": "extensions",
        "x-subcategory": "extensions",
        "x-permissions": [
          "User.FullAccess"
        ],
        "summary": "Reset user profile",
        "description": "Reset user profile.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of user.\n"
            },
            "description": "The unique ID of the user."
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/users/{id}/ms365_binding": {
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "addUserMs365Binding",
        "x-category": "extensions",
        "x-subcategory": "extensions",
        "x-permissions": [
          "User.FullAccess"
        ],
        "summary": "Bind user to ms365 account",
        "description": "Bind user to ms365 account.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of user.\n"
            },
            "description": "The unique ID of the user."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "The `OID` or `Principal Name` of Microsoft 365 user.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "id": "2f3863dc-021b-41e6-ad55-2a36044336b0"
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/users/{id}/ms365_binding/destroy": {
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "removeUserMs365Binding",
        "x-category": "extensions",
        "x-subcategory": "extensions",
        "x-permissions": [
          "User.FullAccess"
        ],
        "summary": "Unbind user from ms365 account",
        "description": "Unbind user from ms365 account.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of user.\n"
            },
            "description": "The unique ID of the user."
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/users/{id}/destroy": {
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "deleteUser",
        "x-category": "extensions",
        "x-subcategory": "extensions",
        "x-permissions": [
          "User.FullAccess"
        ],
        "summary": "Delete a user",
        "description": "Delete a certain user.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of user.\n"
            },
            "description": "The unique ID of the user."
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/users/{id}/status": {
      "get": {
        "tags": [
          "User"
        ],
        "operationId": "getUserStatus",
        "x-category": "extensions",
        "x-subcategory": "extensions",
        "x-permissions": [
          "User.ViewOnly"
        ],
        "summary": "Retrieves user current status",
        "description": "Retrieves current status of given user.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of user.\n"
            },
            "description": "The unique ID of the user."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "enum": [
                        "ONLINE",
                        "OFFLINE",
                        "ONCALL"
                      ],
                      "description": "Status of extension:\n  - `ONLINE`   \n  - `OFFLINE`   \n  - `ONCALL`\n"
                    },
                    "presence": {
                      "type": "string",
                      "enum": [
                        "DO_NOT_DISTURB",
                        "AWAY",
                        "BUSINESS_TRIP",
                        "LUNCH",
                        "OFFLINE",
                        "ONLINE"
                      ],
                      "description": "The current presence of extension:   \n- `DO_NOT_DISTURB`:   \n- `AWAY`:   \n- `BUSINESS_TRIP`:   \n- `LUNCH`:\n- `OFFLINE`\n- `ONLINE`\n"
                    },
                    "presence_note": {
                      "type": "string",
                      "maxLength": 128,
                      "description": "The presence note.\n"
                    },
                    "registration": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "instance_id": {
                            "type": "string",
                            "description": "The instance ID of registration.\n"
                          },
                          "user_agent": {
                            "type": "string",
                            "description": "User agent of login device.\n"
                          },
                          "application": {
                            "type": "string",
                            "description": "The application name of login device.\n"
                          },
                          "ip": {
                            "type": "string",
                            "description": "The IP address of login device.\n"
                          },
                          "enable_push": {
                            "type": "boolean",
                            "description": "Whether push is enabled of login device.\n"
                          },
                          "contact_address": {
                            "type": "string",
                            "description": "The contact address information.\n"
                          }
                        }
                      },
                      "description": "Collection of registration information.\n"
                    },
                    "enable_dnd": {
                      "type": "boolean",
                      "description": "`Do Not Disturb` enabled or not.\n"
                    },
                    "enable_acb": {
                      "type": "boolean",
                      "description": "`Automatic Callback` enabled or not.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "status": null,
                      "presence": null,
                      "presence_note": null,
                      "registration": null,
                      "enable_dnd": null,
                      "enable_acb": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/users/{id}/status/{instance_id}/destroy_status": {
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "delUserRegistration",
        "x-category": "extensions",
        "x-subcategory": "extensions",
        "x-permissions": [
          "User.FullAccess"
        ],
        "summary": "Delete user registration",
        "description": "Delete user registration.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of user.\n"
            },
            "description": "The unique ID of the user."
          },
          {
            "name": "instance_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The instance ID of registration.\n"
            },
            "description": "The instance ID of the registration."
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/users/{id}/balance": {
      "get": {
        "tags": [
          "User"
        ],
        "operationId": "getUserBalance",
        "x-category": "extensions",
        "x-subcategory": "extensions",
        "x-permissions": [
          "User.ViewOnly"
        ],
        "summary": "Retrieve balance",
        "description": "Retrieve extension's balance by it's unique ID.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
              "description": "The unique ID of the resource.\n"
            },
            "description": "The unique ID of the extension.\n"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "balance": {
                      "type": "number",
                      "format": "double",
                      "description": "User balance. Precision is five digits.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "balance": 100
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "updateUserBalance",
        "x-category": "extensions",
        "x-subcategory": "extensions",
        "x-permissions": [
          "User.FullAccess"
        ],
        "summary": "Update balance",
        "description": "Update extension's balance\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
              "description": "The unique ID of the resource.\n"
            },
            "description": "The unique ID of the extension."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "balance": {
                    "type": "number",
                    "format": "double",
                    "description": "User balance. Precision is five digits.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "balance": 100
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/users/{id}/greetings": {
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "createGreeting",
        "x-category": "extensions",
        "x-subcategory": "extensions",
        "x-permissions": [
          "User.FullAccess"
        ],
        "summary": "Create voicemail greeting",
        "description": "Create a voicemail greeting for user.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of user.\n"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "file_id": {
                    "allOf": [
                      {
                        "type": "string",
                        "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                        "description": "The unique ID of the resource.\n"
                      }
                    ],
                    "description": "The unique ID of the file.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "file_id": "xxxxxxxxxxxx"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of greeting.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "The ID of created resource",
                    "value": {
                      "id": "xxxxxxxx"
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "get": {
        "tags": [
          "User"
        ],
        "operationId": "listGreetings",
        "x-category": "extensions",
        "x-subcategory": "extensions",
        "x-permissions": [
          "User.ViewOnly"
        ],
        "summary": "List voicemail greetings",
        "description": "Retrieves a collection of greetings available to certain user.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
              "description": "The unique ID of the resource.\n"
            },
            "description": "The unique ID of the user."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "description": "The unique ID of greeting.\n"
                          },
                          "enabled": {
                            "type": "boolean",
                            "description": "Whether the greeting is enabled or not.\n"
                          },
                          "file_name": {
                            "type": "string",
                            "description": "The name of the file.\n"
                          },
                          "file_size": {
                            "type": "integer",
                            "format": "int64",
                            "minimum": 0,
                            "example": 0,
                            "description": "The file size in bytes.\n"
                          },
                          "file_url": {
                            "type": "string",
                            "readOnly": true,
                            "example": "/api/blobs/WexWdABcd5D4PDgzTKV3gAAAEu00WcK",
                            "description": "The relative path to file url for file downloading.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "items": [
                        {
                          "id": null,
                          "enabled": null,
                          "file_name": null,
                          "file_size": null,
                          "file_url": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/users/{id}/greetings/{greeting_id}/enable": {
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "enableGreeting",
        "x-category": "extensions",
        "x-subcategory": "extensions",
        "x-permissions": [
          "User.FullAccess"
        ],
        "summary": "Enable greeting",
        "description": "Set a voicemail greeting activated.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of user.\n"
            }
          },
          {
            "name": "greeting_id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of greeting.\n"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Invalid extension number supplied"
          },
          "404": {
            "description": "User not found"
          }
        }
      }
    },
    "/users/{id}/greetings/{greeting_id}/disable": {
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "disableGreeting",
        "x-category": "extensions",
        "x-subcategory": "extensions",
        "x-permissions": [
          "User.FullAccess"
        ],
        "summary": "Disable greeting",
        "description": "Disable user voicemail greeting.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of user.\n"
            },
            "description": "The unique ID of user."
          },
          {
            "name": "greeting_id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of greeting.\n"
            },
            "description": "The unique ID of the greeting."
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Invalid extension number supplied"
          },
          "404": {
            "description": "User not found"
          }
        }
      }
    },
    "/users/{id}/greetings/{greeting_id}/destroy": {
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "delGreeting",
        "x-category": "extensions",
        "x-subcategory": "extensions",
        "x-permissions": [
          "User.FullAccess"
        ],
        "summary": "Delete voicemail greeting",
        "description": "Destroy a voicemail greeting from user.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of user.\n"
            }
          },
          {
            "name": "greeting_id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of greeting.\n"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/users/{id}/phones": {
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "createUserPhone",
        "x-category": "extensions",
        "x-subcategory": "extensions",
        "x-permissions": [
          "User.FullAccess"
        ],
        "summary": "Assign phone to user",
        "description": "Assign a phone to user.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of user.\n"
            },
            "description": "The unique ID of the user."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "mac": {
                    "allOf": [
                      {
                        "type": "string",
                        "description": "MAC address.\n"
                      }
                    ],
                    "description": "MAC address of this IP phone.\n"
                  },
                  "filename": {
                    "type": "string",
                    "description": "Template XML file name for phone provisioning.\n"
                  },
                  "vendor": {
                    "type": "string",
                    "description": "The phone vendor of IP phone.\n"
                  },
                  "model": {
                    "type": "string",
                    "description": "The name of IP phone model.\n"
                  },
                  "password": {
                    "type": "string",
                    "description": "Password for accessing the Web interface of phone.\nThe username remains default because most phone manufacturers do not\nallow modification of the user name. This is supported for some phone model, such as \"Snom 300\".\n"
                  },
                  "language": {
                    "type": "string",
                    "enum": [
                      "ENGLISH",
                      "CHINESE",
                      "DUTCH",
                      "FRENCH",
                      "GERMAN",
                      "GREEK",
                      "ITALIAN",
                      "JAPANESE",
                      "POLISH",
                      "RUSSIAN",
                      "SPANISH",
                      "SWEDISH",
                      "UKRAINIAN",
                      "BULGARIAN"
                    ],
                    "description": "Language for strings displayed on Phone Display LCD.\nSupported languages include ENGLISH, CHINESE, DUTCH, FRENCH, GERMAN,\nGREEK, ITALIAN, JAPANESE, POLISH, RUSSIAN, SPANISH, SWEDISH, UKRAINIAN, and BULGARIAN.\n"
                  },
                  "transfer": {
                    "type": "string",
                    "enum": [
                      "BLIND",
                      "ATTENDED",
                      "NEW_CALL"
                    ],
                    "default": "BLIND",
                    "description": "The transfer method for auto provision.  \nCan be either: \n- `BLIND`: After the IP phone is configured with the BLF of a certain key, during a call on the IP phone, press the key, and the phone will directly initiate a Blind transfer to the configured number.\n- `ATTENDED`: After the IP phone is configured with the BLF of a key, during a call on the IP phone, press the key, and the phone will directly initiate an Attended transfer to the configured number.\n- `NEW_CALL`: After the IP phone is configured with the BLF of a certain key, during a call on the IP phone, press the key, and the phone will initiate a new call to the configured number.\n"
                  },
                  "timezone": {
                    "type": "string",
                    "description": "The timezone of phone.\n"
                  },
                  "ringtone": {
                    "type": "string",
                    "description": "The ringtone of phone.\n"
                  },
                  "queue_ringtone": {
                    "type": "string",
                    "description": "The queue ringtone of phone for queue calls or ring group calls.\n"
                  },
                  "external_ringtone": {
                    "type": "string",
                    "description": "The ringtone of phone for external calls.\n"
                  },
                  "date_format": {
                    "type": "string",
                    "description": "The date format of phone.\n"
                  },
                  "time_format": {
                    "type": "string",
                    "description": "The time format of phone.\n"
                  },
                  "powerled": {
                    "type": "string",
                    "description": "The power led of phone.\n"
                  },
                  "backlight": {
                    "type": "string",
                    "description": "The backlight of phone.\n"
                  },
                  "screensaver": {
                    "type": "string",
                    "description": "The screensaver of phone.\n"
                  },
                  "rps": {
                    "type": "boolean",
                    "description": "Send to RPS or not.\n"
                  },
                  "https": {
                    "type": "boolean",
                    "description": "Whether to use https\n"
                  },
                  "codecs": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "description": "The list of currently enabled codec formats.\n"
                  },
                  "all_codecs": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "description": "The list of all supported codec formats.\n"
                  },
                  "enable_lldp": {
                    "type": "boolean",
                    "default": false,
                    "description": "Enable or disable Link Layer Discovery Protocol."
                  },
                  "enable_vlan_wan_port": {
                    "type": "boolean",
                    "default": false,
                    "description": "Enable or disable VLAN for WAN Port.\n"
                  },
                  "wan_port_id": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 4094,
                    "description": "VLAN ID for WAN PORT.\n"
                  },
                  "wan_port_priority": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 7,
                    "description": "VLAN priority for WAN Port.\n"
                  },
                  "enable_vlan_pc_port": {
                    "type": "boolean",
                    "default": false,
                    "description": "Enable or disable VLAN for PC Port.\n"
                  },
                  "pc_port_id": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 4094,
                    "description": "VLAN ID for PC PORT.\n"
                  },
                  "pc_port_priority": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 7,
                    "description": "VLAN priority for PC Port.\n"
                  },
                  "interface": {
                    "type": "string",
                    "enum": [
                      "WEB_DOMAIN",
                      "PUBLIC_IPV4",
                      "PUBLIC_IPV6",
                      "PRIVATE_IPV4",
                      "PRIVATE_IPV6",
                      "SBC_DOMAIN"
                    ],
                    "description": "The interface type for QR code or auto provisioning.   \nCan be neither:  \n- `WEB_DOMAIN`:\n- `PUBLIC_IPV4`:\n- `PUBLIC_IPV6`:\n- `PRIVATE_IPV4`:\n- `PRIVATE_IPV6`:\n- `SBC_DOMAIN`:\n"
                  },
                  "preferred_transport": {
                    "type": "string",
                    "enum": [
                      "UDP",
                      "TCP",
                      "TLS"
                    ],
                    "description": "The transport protocol:  \nCan be either:  \n- `UDP`:\n- `TCP`:\n- `TLS`:\n"
                  },
                  "serial_number": {
                    "type": "string",
                    "description": "The serial number of phone.\n"
                  },
                  "door_password1": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 8,
                    "description": "The primary door password of phone. Only numeric sequences are allowed.\n"
                  },
                  "door_password2": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 8,
                    "description": "The secondary door password of phone. Only numeric sequences are allowed.\n"
                  }
                },
                "required": [
                  "mac",
                  "filename",
                  "vendor",
                  "model",
                  "password",
                  "language",
                  "transfer",
                  "timezone",
                  "codecs",
                  "all_codecs",
                  "interface",
                  "preferred_transport"
                ]
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "mac": null,
                    "filename": null,
                    "vendor": null,
                    "model": null,
                    "password": null,
                    "language": null,
                    "transfer": null,
                    "timezone": null,
                    "ringtone": null,
                    "queue_ringtone": null,
                    "external_ringtone": null,
                    "date_format": null,
                    "time_format": null,
                    "powerled": null,
                    "backlight": null,
                    "screensaver": null,
                    "rps": null,
                    "https": null,
                    "codecs": null,
                    "enable_lldp": null,
                    "enable_vlan_wan_port": null,
                    "wan_port_id": null,
                    "wan_port_priority": null,
                    "enable_vlan_pc_port": null,
                    "pc_port_id": null,
                    "pc_port_priority": null,
                    "interface": null,
                    "preferred_transport": null,
                    "serial_number": null,
                    "door_password1": null,
                    "door_password2": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of phone.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "The ID of created resource",
                    "value": {
                      "id": "xxxxxxxx"
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "get": {
        "tags": [
          "User"
        ],
        "operationId": "listUserPhones",
        "x-category": "extensions",
        "x-subcategory": "extensions",
        "x-permissions": [
          "User.ViewOnly"
        ],
        "summary": "List user's IP phones",
        "description": "Retrieve a collection of IP Phones.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of user.\n"
            },
            "description": "The unique ID of the user."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "description": "The unique ID of phone.\n"
                          },
                          "mac": {
                            "allOf": [
                              {
                                "type": "string",
                                "description": "MAC address.\n"
                              }
                            ],
                            "description": "MAC address of this IP phone.\n"
                          },
                          "filename": {
                            "type": "string",
                            "description": "Template XML file name for phone provisioning.\n"
                          },
                          "vendor": {
                            "type": "string",
                            "description": "The phone vendor of IP phone.\n"
                          },
                          "model": {
                            "type": "string",
                            "description": "The name of IP phone model.\n"
                          },
                          "password": {
                            "type": "string",
                            "description": "Password for accessing the Web interface of phone.\nThe username remains default because most phone manufacturers do not\nallow modification of the user name. This is supported for some phone model, such as \"Snom 300\".\n"
                          },
                          "language": {
                            "type": "string",
                            "enum": [
                              "ENGLISH",
                              "CHINESE",
                              "DUTCH",
                              "FRENCH",
                              "GERMAN",
                              "GREEK",
                              "ITALIAN",
                              "JAPANESE",
                              "POLISH",
                              "RUSSIAN",
                              "SPANISH",
                              "SWEDISH",
                              "UKRAINIAN",
                              "BULGARIAN"
                            ],
                            "description": "Language for strings displayed on Phone Display LCD.\nSupported languages include ENGLISH, CHINESE, DUTCH, FRENCH, GERMAN,\nGREEK, ITALIAN, JAPANESE, POLISH, RUSSIAN, SPANISH, SWEDISH, UKRAINIAN, and BULGARIAN.\n"
                          },
                          "transfer": {
                            "type": "string",
                            "enum": [
                              "BLIND",
                              "ATTENDED",
                              "NEW_CALL"
                            ],
                            "default": "BLIND",
                            "description": "The transfer method for auto provision.  \nCan be either: \n- `BLIND`: After the IP phone is configured with the BLF of a certain key, during a call on the IP phone, press the key, and the phone will directly initiate a Blind transfer to the configured number.\n- `ATTENDED`: After the IP phone is configured with the BLF of a key, during a call on the IP phone, press the key, and the phone will directly initiate an Attended transfer to the configured number.\n- `NEW_CALL`: After the IP phone is configured with the BLF of a certain key, during a call on the IP phone, press the key, and the phone will initiate a new call to the configured number.\n"
                          },
                          "timezone": {
                            "type": "string",
                            "description": "The timezone of phone.\n"
                          },
                          "ringtone": {
                            "type": "string",
                            "description": "The ringtone of phone.\n"
                          },
                          "queue_ringtone": {
                            "type": "string",
                            "description": "The queue ringtone of phone for queue calls or ring group calls.\n"
                          },
                          "external_ringtone": {
                            "type": "string",
                            "description": "The ringtone of phone for external calls.\n"
                          },
                          "date_format": {
                            "type": "string",
                            "description": "The date format of phone.\n"
                          },
                          "time_format": {
                            "type": "string",
                            "description": "The time format of phone.\n"
                          },
                          "powerled": {
                            "type": "string",
                            "description": "The power led of phone.\n"
                          },
                          "backlight": {
                            "type": "string",
                            "description": "The backlight of phone.\n"
                          },
                          "screensaver": {
                            "type": "string",
                            "description": "The screensaver of phone.\n"
                          },
                          "rps": {
                            "type": "boolean",
                            "description": "Send to RPS or not.\n"
                          },
                          "https": {
                            "type": "boolean",
                            "description": "Whether to use https\n"
                          },
                          "codecs": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "The list of currently enabled codec formats.\n"
                          },
                          "all_codecs": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "The list of all supported codec formats.\n"
                          },
                          "enable_lldp": {
                            "type": "boolean",
                            "default": false,
                            "description": "Enable or disable Link Layer Discovery Protocol."
                          },
                          "enable_vlan_wan_port": {
                            "type": "boolean",
                            "default": false,
                            "description": "Enable or disable VLAN for WAN Port.\n"
                          },
                          "wan_port_id": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 4094,
                            "description": "VLAN ID for WAN PORT.\n"
                          },
                          "wan_port_priority": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 7,
                            "description": "VLAN priority for WAN Port.\n"
                          },
                          "enable_vlan_pc_port": {
                            "type": "boolean",
                            "default": false,
                            "description": "Enable or disable VLAN for PC Port.\n"
                          },
                          "pc_port_id": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 4094,
                            "description": "VLAN ID for PC PORT.\n"
                          },
                          "pc_port_priority": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 7,
                            "description": "VLAN priority for PC Port.\n"
                          },
                          "interface": {
                            "type": "string",
                            "enum": [
                              "WEB_DOMAIN",
                              "PUBLIC_IPV4",
                              "PUBLIC_IPV6",
                              "PRIVATE_IPV4",
                              "PRIVATE_IPV6",
                              "SBC_DOMAIN"
                            ],
                            "description": "The interface type for QR code or auto provisioning.   \nCan be neither:  \n- `WEB_DOMAIN`:\n- `PUBLIC_IPV4`:\n- `PUBLIC_IPV6`:\n- `PRIVATE_IPV4`:\n- `PRIVATE_IPV6`:\n- `SBC_DOMAIN`:\n"
                          },
                          "preferred_transport": {
                            "type": "string",
                            "enum": [
                              "UDP",
                              "TCP",
                              "TLS"
                            ],
                            "description": "The transport protocol:  \nCan be either:  \n- `UDP`:\n- `TCP`:\n- `TLS`:\n"
                          },
                          "serial_number": {
                            "type": "string",
                            "description": "The serial number of phone.\n"
                          },
                          "door_password1": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 8,
                            "description": "The primary door password of phone. Only numeric sequences are allowed.\n"
                          },
                          "door_password2": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 8,
                            "description": "The secondary door password of phone. Only numeric sequences are allowed.\n"
                          },
                          "url": {
                            "type": "string",
                            "description": "Auto provision server URL.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "items": [
                        {
                          "id": null,
                          "mac": null,
                          "filename": null,
                          "vendor": null,
                          "model": null,
                          "password": null,
                          "language": null,
                          "transfer": null,
                          "timezone": null,
                          "ringtone": null,
                          "queue_ringtone": null,
                          "external_ringtone": null,
                          "date_format": null,
                          "time_format": null,
                          "powerled": null,
                          "backlight": null,
                          "screensaver": null,
                          "rps": null,
                          "https": null,
                          "codecs": null,
                          "enable_lldp": null,
                          "enable_vlan_wan_port": null,
                          "wan_port_id": null,
                          "wan_port_priority": null,
                          "enable_vlan_pc_port": null,
                          "pc_port_id": null,
                          "pc_port_priority": null,
                          "interface": null,
                          "preferred_transport": null,
                          "serial_number": null,
                          "door_password1": null,
                          "door_password2": null,
                          "url": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/users/{id}/phones/{phone_id}": {
      "get": {
        "tags": [
          "User"
        ],
        "operationId": "showUserPhone",
        "x-category": "extensions",
        "x-subcategory": "extensions",
        "x-permissions": [
          "User.ViewOnly"
        ],
        "summary": "Retrieve user phone details",
        "description": "Retrieve phone details of user.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of user.\n"
            },
            "description": "The unique ID of the user."
          },
          {
            "name": "phone_id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of phone.\n"
            },
            "description": "The unique ID of the phone."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of phone.\n"
                    },
                    "mac": {
                      "allOf": [
                        {
                          "type": "string",
                          "description": "MAC address.\n"
                        }
                      ],
                      "description": "MAC address of this IP phone.\n"
                    },
                    "filename": {
                      "type": "string",
                      "description": "Template XML file name for phone provisioning.\n"
                    },
                    "vendor": {
                      "type": "string",
                      "description": "The phone vendor of IP phone.\n"
                    },
                    "model": {
                      "type": "string",
                      "description": "The name of IP phone model.\n"
                    },
                    "password": {
                      "type": "string",
                      "description": "Password for accessing the Web interface of phone.\nThe username remains default because most phone manufacturers do not\nallow modification of the user name. This is supported for some phone model, such as \"Snom 300\".\n"
                    },
                    "language": {
                      "type": "string",
                      "enum": [
                        "ENGLISH",
                        "CHINESE",
                        "DUTCH",
                        "FRENCH",
                        "GERMAN",
                        "GREEK",
                        "ITALIAN",
                        "JAPANESE",
                        "POLISH",
                        "RUSSIAN",
                        "SPANISH",
                        "SWEDISH",
                        "UKRAINIAN",
                        "BULGARIAN"
                      ],
                      "description": "Language for strings displayed on Phone Display LCD.\nSupported languages include ENGLISH, CHINESE, DUTCH, FRENCH, GERMAN,\nGREEK, ITALIAN, JAPANESE, POLISH, RUSSIAN, SPANISH, SWEDISH, UKRAINIAN, and BULGARIAN.\n"
                    },
                    "transfer": {
                      "type": "string",
                      "enum": [
                        "BLIND",
                        "ATTENDED",
                        "NEW_CALL"
                      ],
                      "default": "BLIND",
                      "description": "The transfer method for auto provision.  \nCan be either: \n- `BLIND`: After the IP phone is configured with the BLF of a certain key, during a call on the IP phone, press the key, and the phone will directly initiate a Blind transfer to the configured number.\n- `ATTENDED`: After the IP phone is configured with the BLF of a key, during a call on the IP phone, press the key, and the phone will directly initiate an Attended transfer to the configured number.\n- `NEW_CALL`: After the IP phone is configured with the BLF of a certain key, during a call on the IP phone, press the key, and the phone will initiate a new call to the configured number.\n"
                    },
                    "timezone": {
                      "type": "string",
                      "description": "The timezone of phone.\n"
                    },
                    "ringtone": {
                      "type": "string",
                      "description": "The ringtone of phone.\n"
                    },
                    "queue_ringtone": {
                      "type": "string",
                      "description": "The queue ringtone of phone for queue calls or ring group calls.\n"
                    },
                    "external_ringtone": {
                      "type": "string",
                      "description": "The ringtone of phone for external calls.\n"
                    },
                    "date_format": {
                      "type": "string",
                      "description": "The date format of phone.\n"
                    },
                    "time_format": {
                      "type": "string",
                      "description": "The time format of phone.\n"
                    },
                    "powerled": {
                      "type": "string",
                      "description": "The power led of phone.\n"
                    },
                    "backlight": {
                      "type": "string",
                      "description": "The backlight of phone.\n"
                    },
                    "screensaver": {
                      "type": "string",
                      "description": "The screensaver of phone.\n"
                    },
                    "rps": {
                      "type": "boolean",
                      "description": "Send to RPS or not.\n"
                    },
                    "https": {
                      "type": "boolean",
                      "description": "Whether to use https\n"
                    },
                    "codecs": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "description": "The list of currently enabled codec formats.\n"
                    },
                    "all_codecs": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "description": "The list of all supported codec formats.\n"
                    },
                    "enable_lldp": {
                      "type": "boolean",
                      "default": false,
                      "description": "Enable or disable Link Layer Discovery Protocol."
                    },
                    "enable_vlan_wan_port": {
                      "type": "boolean",
                      "default": false,
                      "description": "Enable or disable VLAN for WAN Port.\n"
                    },
                    "wan_port_id": {
                      "type": "integer",
                      "minimum": 1,
                      "maximum": 4094,
                      "description": "VLAN ID for WAN PORT.\n"
                    },
                    "wan_port_priority": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 7,
                      "description": "VLAN priority for WAN Port.\n"
                    },
                    "enable_vlan_pc_port": {
                      "type": "boolean",
                      "default": false,
                      "description": "Enable or disable VLAN for PC Port.\n"
                    },
                    "pc_port_id": {
                      "type": "integer",
                      "minimum": 1,
                      "maximum": 4094,
                      "description": "VLAN ID for PC PORT.\n"
                    },
                    "pc_port_priority": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 7,
                      "description": "VLAN priority for PC Port.\n"
                    },
                    "interface": {
                      "type": "string",
                      "enum": [
                        "WEB_DOMAIN",
                        "PUBLIC_IPV4",
                        "PUBLIC_IPV6",
                        "PRIVATE_IPV4",
                        "PRIVATE_IPV6",
                        "SBC_DOMAIN"
                      ],
                      "description": "The interface type for QR code or auto provisioning.   \nCan be neither:  \n- `WEB_DOMAIN`:\n- `PUBLIC_IPV4`:\n- `PUBLIC_IPV6`:\n- `PRIVATE_IPV4`:\n- `PRIVATE_IPV6`:\n- `SBC_DOMAIN`:\n"
                    },
                    "preferred_transport": {
                      "type": "string",
                      "enum": [
                        "UDP",
                        "TCP",
                        "TLS"
                      ],
                      "description": "The transport protocol:  \nCan be either:  \n- `UDP`:\n- `TCP`:\n- `TLS`:\n"
                    },
                    "serial_number": {
                      "type": "string",
                      "description": "The serial number of phone.\n"
                    },
                    "door_password1": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 8,
                      "description": "The primary door password of phone. Only numeric sequences are allowed.\n"
                    },
                    "door_password2": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 8,
                      "description": "The secondary door password of phone. Only numeric sequences are allowed.\n"
                    },
                    "url": {
                      "type": "string",
                      "description": "Auto provision server URL.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "id": null,
                      "mac": null,
                      "filename": null,
                      "vendor": null,
                      "model": null,
                      "password": null,
                      "language": null,
                      "transfer": null,
                      "timezone": null,
                      "ringtone": null,
                      "queue_ringtone": null,
                      "external_ringtone": null,
                      "date_format": null,
                      "time_format": null,
                      "powerled": null,
                      "backlight": null,
                      "screensaver": null,
                      "rps": null,
                      "https": null,
                      "codecs": null,
                      "enable_lldp": null,
                      "enable_vlan_wan_port": null,
                      "wan_port_id": null,
                      "wan_port_priority": null,
                      "enable_vlan_pc_port": null,
                      "pc_port_id": null,
                      "pc_port_priority": null,
                      "interface": null,
                      "preferred_transport": null,
                      "serial_number": null,
                      "door_password1": null,
                      "door_password2": null,
                      "url": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "updateUserPhone",
        "x-category": "extensions",
        "x-subcategory": "extensions",
        "x-permissions": [
          "User.FullAccess"
        ],
        "summary": "Update a phone of user",
        "description": "Update phone of user by it's unique ID.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of user.\n"
            },
            "description": "The unique ID of the user."
          },
          {
            "name": "phone_id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of phone.\n"
            },
            "description": "The unique ID of the phone."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "password": {
                    "type": "string",
                    "description": "Password for accessing the Web interface of phone.\nThe username remains default because most phone manufacturers do not\nallow modification of the user name. This is supported for some phone model, such as \"Snom 300\".\n"
                  },
                  "language": {
                    "type": "string",
                    "enum": [
                      "ENGLISH",
                      "CHINESE",
                      "DUTCH",
                      "FRENCH",
                      "GERMAN",
                      "GREEK",
                      "ITALIAN",
                      "JAPANESE",
                      "POLISH",
                      "RUSSIAN",
                      "SPANISH",
                      "SWEDISH",
                      "UKRAINIAN",
                      "BULGARIAN"
                    ],
                    "description": "Language for strings displayed on Phone Display LCD.\nSupported languages include ENGLISH, CHINESE, DUTCH, FRENCH, GERMAN,\nGREEK, ITALIAN, JAPANESE, POLISH, RUSSIAN, SPANISH, SWEDISH, UKRAINIAN, and BULGARIAN.\n"
                  },
                  "transfer": {
                    "type": "string",
                    "enum": [
                      "BLIND",
                      "ATTENDED",
                      "NEW_CALL"
                    ],
                    "default": "BLIND",
                    "description": "The transfer method for auto provision.  \nCan be either: \n- `BLIND`: After the IP phone is configured with the BLF of a certain key, during a call on the IP phone, press the key, and the phone will directly initiate a Blind transfer to the configured number.\n- `ATTENDED`: After the IP phone is configured with the BLF of a key, during a call on the IP phone, press the key, and the phone will directly initiate an Attended transfer to the configured number.\n- `NEW_CALL`: After the IP phone is configured with the BLF of a certain key, during a call on the IP phone, press the key, and the phone will initiate a new call to the configured number.\n"
                  },
                  "timezone": {
                    "type": "string",
                    "description": "The timezone of phone.\n"
                  },
                  "ringtone": {
                    "type": "string",
                    "description": "The ringtone of phone.\n"
                  },
                  "queue_ringtone": {
                    "type": "string",
                    "description": "The queue ringtone of phone for queue calls or ring group calls.\n"
                  },
                  "external_ringtone": {
                    "type": "string",
                    "description": "The ringtone of phone for external calls.\n"
                  },
                  "date_format": {
                    "type": "string",
                    "description": "The date format of phone.\n"
                  },
                  "time_format": {
                    "type": "string",
                    "description": "The time format of phone.\n"
                  },
                  "powerled": {
                    "type": "string",
                    "description": "The power led of phone.\n"
                  },
                  "backlight": {
                    "type": "string",
                    "description": "The backlight of phone.\n"
                  },
                  "screensaver": {
                    "type": "string",
                    "description": "The screensaver of phone.\n"
                  },
                  "rps": {
                    "type": "boolean",
                    "description": "Send to RPS or not.\n"
                  },
                  "https": {
                    "type": "boolean",
                    "description": "Whether to use https\n"
                  },
                  "codecs": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "description": "The list of currently enabled codec formats.\n"
                  },
                  "enable_lldp": {
                    "type": "boolean",
                    "default": false,
                    "description": "Enable or disable Link Layer Discovery Protocol."
                  },
                  "enable_vlan_wan_port": {
                    "type": "boolean",
                    "default": false,
                    "description": "Enable or disable VLAN for WAN Port.\n"
                  },
                  "wan_port_id": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 4094,
                    "description": "VLAN ID for WAN PORT.\n"
                  },
                  "wan_port_priority": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 7,
                    "description": "VLAN priority for WAN Port.\n"
                  },
                  "enable_vlan_pc_port": {
                    "type": "boolean",
                    "default": false,
                    "description": "Enable or disable VLAN for PC Port.\n"
                  },
                  "pc_port_id": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 4094,
                    "description": "VLAN ID for PC PORT.\n"
                  },
                  "pc_port_priority": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 7,
                    "description": "VLAN priority for PC Port.\n"
                  },
                  "interface": {
                    "type": "string",
                    "enum": [
                      "WEB_DOMAIN",
                      "PUBLIC_IPV4",
                      "PUBLIC_IPV6",
                      "PRIVATE_IPV4",
                      "PRIVATE_IPV6",
                      "SBC_DOMAIN"
                    ],
                    "description": "The interface type for QR code or auto provisioning.   \nCan be neither:  \n- `WEB_DOMAIN`:\n- `PUBLIC_IPV4`:\n- `PUBLIC_IPV6`:\n- `PRIVATE_IPV4`:\n- `PRIVATE_IPV6`:\n- `SBC_DOMAIN`:\n"
                  },
                  "preferred_transport": {
                    "type": "string",
                    "enum": [
                      "UDP",
                      "TCP",
                      "TLS"
                    ],
                    "description": "The transport protocol:  \nCan be either:  \n- `UDP`:\n- `TCP`:\n- `TLS`:\n"
                  },
                  "serial_number": {
                    "type": "string",
                    "description": "The serial number of phone.\n"
                  },
                  "door_password1": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 8,
                    "description": "The primary door password of phone. Only numeric sequences are allowed.\n"
                  },
                  "door_password2": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 8,
                    "description": "The secondary door password of phone. Only numeric sequences are allowed.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "password": null,
                    "language": null,
                    "transfer": null,
                    "timezone": null,
                    "ringtone": null,
                    "queue_ringtone": null,
                    "external_ringtone": null,
                    "date_format": null,
                    "time_format": null,
                    "powerled": null,
                    "backlight": null,
                    "screensaver": null,
                    "rps": null,
                    "https": null,
                    "codecs": null,
                    "enable_lldp": null,
                    "enable_vlan_wan_port": null,
                    "wan_port_id": null,
                    "wan_port_priority": null,
                    "enable_vlan_pc_port": null,
                    "pc_port_id": null,
                    "pc_port_priority": null,
                    "interface": null,
                    "preferred_transport": null,
                    "serial_number": null,
                    "door_password1": null,
                    "door_password2": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/users/{id}/phones/{phone_id}/destroy": {
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "deleteUserPhone",
        "x-category": "extensions",
        "x-subcategory": "extensions",
        "x-permissions": [
          "User.FullAccess"
        ],
        "summary": "Remove a user phone",
        "description": "Unassign a phone from extension.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of user.\n"
            },
            "description": "The unique ID of the user."
          },
          {
            "name": "phone_id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of phone.\n"
            },
            "description": "The unique ID of the phone."
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/users/{id}/holidays": {
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "createUserHoliday",
        "x-category": "extensions",
        "x-subcategory": "extensions",
        "x-permissions": [
          "User.FullAccess"
        ],
        "summary": "Create a new holiday for user",
        "description": "Create a new holiday for a user.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of user.\n"
            },
            "description": "The unique ID of the user."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64,
                    "description": "The name of the holiday.\n"
                  },
                  "region": {
                    "type": "string",
                    "description": "A valid country code based on iso3166-1 alpha-3 standard. see: https://www.iso.org/iso-3166-country-codes.html\n"
                  },
                  "consecutive": {
                    "type": "boolean",
                    "description": "Whether the holiday consists of consecutive days.\n"
                  },
                  "every_year": {
                    "type": "boolean",
                    "description": "Does the holiday take effect every year.\n"
                  },
                  "year_start": {
                    "type": "integer",
                    "description": "The start year of holiday.\n"
                  },
                  "year_end": {
                    "type": "integer",
                    "description": "The end year of holiday.\n"
                  },
                  "month_start": {
                    "type": "integer",
                    "description": "The start month of holiday.\n"
                  },
                  "month_end": {
                    "type": "integer",
                    "description": "The end month of holiday.\n"
                  },
                  "day_start": {
                    "type": "integer",
                    "description": "The start day of holiday.\n"
                  },
                  "day_end": {
                    "type": "integer",
                    "description": "The end day of holiday.\n"
                  },
                  "hour_start": {
                    "type": "integer",
                    "description": "The start hour of holiday.\n"
                  },
                  "hour_end": {
                    "type": "integer",
                    "description": "The end hour of holiday.\n"
                  },
                  "minute_start": {
                    "type": "integer",
                    "description": "The start minute of holiday.\n"
                  },
                  "minute_end": {
                    "type": "integer",
                    "description": "The end minute of holiday.\n"
                  }
                },
                "required": [
                  "name",
                  "region",
                  "consecutive",
                  "every_year"
                ]
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "name": null,
                    "region": null,
                    "consecutive": null,
                    "every_year": null,
                    "year_start": null,
                    "year_end": null,
                    "month_start": null,
                    "month_end": null,
                    "day_start": null,
                    "day_end": null,
                    "hour_start": null,
                    "hour_end": null,
                    "minute_start": null,
                    "minute_end": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "readOnly": true,
                      "description": "The unique ID of holiday.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "The ID of created resource",
                    "value": {
                      "id": "xxxxxxxx"
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "get": {
        "tags": [
          "User"
        ],
        "operationId": "listUserHolidays",
        "x-category": "extensions",
        "x-subcategory": "extensions",
        "x-permissions": [
          "User.ViewOnly"
        ],
        "summary": "List user's holidays",
        "description": "Retrieve a collection of user's holidays.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of user.\n"
            },
            "description": "The unique ID of the user."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "count": {
                      "type": "integer",
                      "format": "int64",
                      "minimum": 0,
                      "example": 100,
                      "description": "Total number of resource.\n"
                    },
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "readOnly": true,
                            "description": "The unique ID of holiday.\n"
                          },
                          "name": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 64,
                            "description": "The name of the holiday.\n"
                          },
                          "region": {
                            "type": "string",
                            "description": "A valid country code based on iso3166-1 alpha-3 standard. see: https://www.iso.org/iso-3166-country-codes.html\n"
                          },
                          "consecutive": {
                            "type": "boolean",
                            "description": "Whether the holiday consists of consecutive days.\n"
                          },
                          "every_year": {
                            "type": "boolean",
                            "description": "Does the holiday take effect every year.\n"
                          },
                          "year_start": {
                            "type": "integer",
                            "description": "The start year of holiday.\n"
                          },
                          "year_end": {
                            "type": "integer",
                            "description": "The end year of holiday.\n"
                          },
                          "month_start": {
                            "type": "integer",
                            "description": "The start month of holiday.\n"
                          },
                          "month_end": {
                            "type": "integer",
                            "description": "The end month of holiday.\n"
                          },
                          "day_start": {
                            "type": "integer",
                            "description": "The start day of holiday.\n"
                          },
                          "day_end": {
                            "type": "integer",
                            "description": "The end day of holiday.\n"
                          },
                          "hour_start": {
                            "type": "integer",
                            "description": "The start hour of holiday.\n"
                          },
                          "hour_end": {
                            "type": "integer",
                            "description": "The end hour of holiday.\n"
                          },
                          "minute_start": {
                            "type": "integer",
                            "description": "The start minute of holiday.\n"
                          },
                          "minute_end": {
                            "type": "integer",
                            "description": "The end minute of holiday.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": null,
                          "name": null,
                          "region": null,
                          "consecutive": null,
                          "every_year": null,
                          "year_start": null,
                          "year_end": null,
                          "month_start": null,
                          "month_end": null,
                          "day_start": null,
                          "day_end": null,
                          "hour_start": null,
                          "hour_end": null,
                          "minute_start": null,
                          "minute_end": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/users/{id}/holidays/{holiday_id}": {
      "get": {
        "tags": [
          "User"
        ],
        "operationId": "retrieveUserHoliday",
        "x-category": "extensions",
        "x-subcategory": "extensions",
        "x-permissions": [
          "User.ViewOnly"
        ],
        "summary": "Retrieve a holiday of a user",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "readOnly": true,
              "description": "The unique ID of holiday.\n"
            },
            "description": "The unique ID of the holiday."
          },
          {
            "name": "holiday_id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "readOnly": true,
              "description": "The unique ID of holiday.\n"
            },
            "description": "The unique ID of the holiday."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "readOnly": true,
                      "description": "The unique ID of holiday.\n"
                    },
                    "name": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64,
                      "description": "The name of the holiday.\n"
                    },
                    "region": {
                      "type": "string",
                      "description": "A valid country code based on iso3166-1 alpha-3 standard. see: https://www.iso.org/iso-3166-country-codes.html\n"
                    },
                    "consecutive": {
                      "type": "boolean",
                      "description": "Whether the holiday consists of consecutive days.\n"
                    },
                    "every_year": {
                      "type": "boolean",
                      "description": "Does the holiday take effect every year.\n"
                    },
                    "year_start": {
                      "type": "integer",
                      "description": "The start year of holiday.\n"
                    },
                    "year_end": {
                      "type": "integer",
                      "description": "The end year of holiday.\n"
                    },
                    "month_start": {
                      "type": "integer",
                      "description": "The start month of holiday.\n"
                    },
                    "month_end": {
                      "type": "integer",
                      "description": "The end month of holiday.\n"
                    },
                    "day_start": {
                      "type": "integer",
                      "description": "The start day of holiday.\n"
                    },
                    "day_end": {
                      "type": "integer",
                      "description": "The end day of holiday.\n"
                    },
                    "hour_start": {
                      "type": "integer",
                      "description": "The start hour of holiday.\n"
                    },
                    "hour_end": {
                      "type": "integer",
                      "description": "The end hour of holiday.\n"
                    },
                    "minute_start": {
                      "type": "integer",
                      "description": "The start minute of holiday.\n"
                    },
                    "minute_end": {
                      "type": "integer",
                      "description": "The end minute of holiday.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "id": null,
                      "name": null,
                      "region": null,
                      "consecutive": null,
                      "every_year": null,
                      "year_start": null,
                      "year_end": null,
                      "month_start": null,
                      "month_end": null,
                      "day_start": null,
                      "day_end": null,
                      "hour_start": null,
                      "hour_end": null,
                      "minute_start": null,
                      "minute_end": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "updateUserHoliday",
        "x-category": "extensions",
        "x-subcategory": "extensions",
        "x-permissions": [
          "User.FullAccess"
        ],
        "summary": "Update a holiday for a user",
        "description": "Update a holiday that already exists.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "readOnly": true,
              "description": "The unique ID of holiday.\n"
            },
            "description": "The unique ID of the holiday."
          },
          {
            "name": "holiday_id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "readOnly": true,
              "description": "The unique ID of holiday.\n"
            },
            "description": "The unique ID of the holiday."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64,
                    "description": "The name of the holiday.\n"
                  },
                  "region": {
                    "type": "string",
                    "description": "A valid country code based on iso3166-1 alpha-3 standard. see: https://www.iso.org/iso-3166-country-codes.html\n"
                  },
                  "consecutive": {
                    "type": "boolean",
                    "description": "Whether the holiday consists of consecutive days.\n"
                  },
                  "every_year": {
                    "type": "boolean",
                    "description": "Does the holiday take effect every year.\n"
                  },
                  "year_start": {
                    "type": "integer",
                    "description": "The start year of holiday.\n"
                  },
                  "year_end": {
                    "type": "integer",
                    "description": "The end year of holiday.\n"
                  },
                  "month_start": {
                    "type": "integer",
                    "description": "The start month of holiday.\n"
                  },
                  "month_end": {
                    "type": "integer",
                    "description": "The end month of holiday.\n"
                  },
                  "day_start": {
                    "type": "integer",
                    "description": "The start day of holiday.\n"
                  },
                  "day_end": {
                    "type": "integer",
                    "description": "The end day of holiday.\n"
                  },
                  "hour_start": {
                    "type": "integer",
                    "description": "The start hour of holiday.\n"
                  },
                  "hour_end": {
                    "type": "integer",
                    "description": "The end hour of holiday.\n"
                  },
                  "minute_start": {
                    "type": "integer",
                    "description": "The start minute of holiday.\n"
                  },
                  "minute_end": {
                    "type": "integer",
                    "description": "The end minute of holiday.\n"
                  }
                },
                "required": [
                  "name",
                  "consecutive",
                  "every_year"
                ]
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "name": null,
                    "region": null,
                    "consecutive": null,
                    "every_year": null,
                    "year_start": null,
                    "year_end": null,
                    "month_start": null,
                    "month_end": null,
                    "day_start": null,
                    "day_end": null,
                    "hour_start": null,
                    "hour_end": null,
                    "minute_start": null,
                    "minute_end": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/users/{id}/holidays/{holiday_id}/destroy": {
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "deleteUserHoliday",
        "x-category": "extensions",
        "x-subcategory": "extensions",
        "x-permissions": [
          "User.FullAccess"
        ],
        "summary": "Destroy a holiday of user",
        "description": "Destroy a holiday of user.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "readOnly": true,
              "description": "The unique ID of holiday.\n"
            },
            "description": "The unique ID of the holiday."
          },
          {
            "name": "holiday_id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "readOnly": true,
              "description": "The unique ID of holiday.\n"
            },
            "description": "The unique ID of the holiday."
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Invalid ID supplied."
          }
        }
      }
    },
    "/users/{id}/global_holidays": {
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "updateUserGlobalHoliday",
        "x-category": "extensions",
        "x-subcategory": "extensions",
        "x-permissions": [
          "User.FullAccess"
        ],
        "summary": "Update user's global holidays",
        "description": "Update global holidays from tenant holidays.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of user.\n"
            },
            "description": "The unique ID of the user."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "items": {
                    "type": "array",
                    "items": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "readOnly": true,
                      "description": "The unique ID of holiday.\n"
                    },
                    "description": "A collection of ID of tenant's holiday.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "items": [
                      "xxx",
                      "yyy"
                    ]
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "get": {
        "tags": [
          "User"
        ],
        "operationId": "listUserGlobalHolidays",
        "x-category": "extensions",
        "x-subcategory": "extensions",
        "x-permissions": [
          "User.ViewOnly"
        ],
        "summary": "List user's global holidays",
        "description": "Retrieve a collection of global holidays.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of user.\n"
            },
            "description": "The unique ID of the user."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "readOnly": true,
                            "description": "The unique ID of holiday.\n"
                          },
                          "name": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 64,
                            "description": "The name of the holiday.\n"
                          },
                          "region": {
                            "type": "string",
                            "description": "A valid country code based on iso3166-1 alpha-3 standard. see: https://www.iso.org/iso-3166-country-codes.html\n"
                          },
                          "consecutive": {
                            "type": "boolean",
                            "description": "Whether the holiday consists of consecutive days.\n"
                          },
                          "every_year": {
                            "type": "boolean",
                            "description": "Does the holiday take effect every year.\n"
                          },
                          "year_start": {
                            "type": "integer",
                            "description": "The start year of holiday.\n"
                          },
                          "year_end": {
                            "type": "integer",
                            "description": "The end year of holiday.\n"
                          },
                          "month_start": {
                            "type": "integer",
                            "description": "The start month of holiday.\n"
                          },
                          "month_end": {
                            "type": "integer",
                            "description": "The end month of holiday.\n"
                          },
                          "day_start": {
                            "type": "integer",
                            "description": "The start day of holiday.\n"
                          },
                          "day_end": {
                            "type": "integer",
                            "description": "The end day of holiday.\n"
                          },
                          "hour_start": {
                            "type": "integer",
                            "description": "The start hour of holiday.\n"
                          },
                          "hour_end": {
                            "type": "integer",
                            "description": "The end hour of holiday.\n"
                          },
                          "minute_start": {
                            "type": "integer",
                            "description": "The start minute of holiday.\n"
                          },
                          "minute_end": {
                            "type": "integer",
                            "description": "The end minute of holiday.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "items": [
                        {
                          "id": null,
                          "name": null,
                          "region": null,
                          "consecutive": null,
                          "every_year": null,
                          "year_start": null,
                          "year_end": null,
                          "month_start": null,
                          "month_end": null,
                          "day_start": null,
                          "day_end": null,
                          "hour_start": null,
                          "hour_end": null,
                          "minute_start": null,
                          "minute_end": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/users/{id}/call_queues": {
      "get": {
        "tags": [
          "User"
        ],
        "operationId": "listUserBelongedCallQueues",
        "x-category": "extensions",
        "x-subcategory": "extensions",
        "x-permissions": [
          "User.ViewOnly"
        ],
        "summary": "Retrieve the call queues which the user belongs",
        "description": "Retrieve the call queues which the user belongs.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of user.\n"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "description": "The unique ID of call queue.\n"
                          },
                          "name": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 64,
                            "description": "The name of call queue.\n"
                          },
                          "extension_number": {
                            "allOf": [
                              {
                                "type": "string",
                                "minLength": 3,
                                "maxLength": 64,
                                "pattern": "[0-9]{3,64}",
                                "description": "The extension number.\n"
                              }
                            ],
                            "description": "The extension number of call queue.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "items": [
                        {
                          "id": null,
                          "name": null,
                          "extension_number": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/users/{id}/call_queues/{queue_id}/agent": {
      "get": {
        "tags": [
          "User"
        ],
        "operationId": "getUserCallQueueAgentStatus",
        "x-category": "extensions",
        "x-subcategory": "extensions",
        "x-permissions": [
          "User.ViewOnly"
        ],
        "summary": "Retrieve call queue agent",
        "description": "Retrieve information of call queue agent.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of user.\n"
            },
            "description": "The unique ID of the user."
          },
          {
            "name": "queue_id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of call queue.\n"
            },
            "description": "The unique ID of the call queue."
          }
        ],
        "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"
                        }
                      ],
                      "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 queue.   \nOnly valid when `polling_strategy` is skill based.\n"
                    },
                    "status": {
                      "type": "string",
                      "enum": [
                        "READY",
                        "NOT_READY",
                        "QUEUE_CALL",
                        "OTHER_CALL",
                        "WRAP_UP",
                        "BREAK",
                        "LUNCH",
                        "LOGGED_OUT",
                        "OFFLINE"
                      ],
                      "readOnly": true,
                      "description": "Current status of agent: \n- `READY`:  \n- `NOT_READY`:  \n- `QUEUE_CALL`:  \n- `OTHER_CALL`:  \n- `WRAP_UP`:  \n- `BREAK`:  \n- `LUNCH`:  \n- `TRANSFER`:   \n- `CONSULT_TRANSFER`:   \n- `ON_HOLD`:   \n- `LOGGED_OUT`:  \n- `OFFLINE`:\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "extension_number": null,
                      "display_name": null,
                      "skill_level": null,
                      "status": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "setUserCallQueueAgentStatus",
        "x-category": "extensions",
        "x-subcategory": "extensions",
        "x-permissions": [
          "User.FullAccess"
        ],
        "summary": "Set call queue agent status",
        "description": "Set call queue agent status.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of user.\n"
            },
            "description": "The unique ID of the user."
          },
          {
            "name": "queue_id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of call queue.\n"
            },
            "description": "The unique ID of the call queue."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "status": {
                    "type": "string",
                    "enum": [
                      "READY",
                      "NOT_READY",
                      "WRAP_UP",
                      "LOGGED_IN",
                      "LOGGED_OUT"
                    ],
                    "example": "READY",
                    "description": "Change call queue agent status to one of the following: \n- `READY`:  \n- `NOT_READY`:  \n- `WRAP_UP`:  \n- `LOGGED_IN`:   \n- `LOGGED_OUT`:\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "status": "READY"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/users/{id}/speed_dial_8": {
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "usersCreateSpeedDial8",
        "x-category": "extensions",
        "x-subcategory": "extensions",
        "x-permissions": [
          "User.FullAccess"
        ],
        "summary": "Add new speed dial 8",
        "description": "Create new speed dial 8.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of user.\n"
            },
            "description": "The unique ID of the user."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "code": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 1,
                    "description": "The speed dial 8 dialing code.   \nAvailable code range from `2` to `9`.\n"
                  },
                  "phone_number": {
                    "type": "string",
                    "description": "The phone number that you want to call.\n"
                  },
                  "description": {
                    "type": "string",
                    "maximum": 1024,
                    "description": "The description of speed dial.\n"
                  }
                },
                "required": [
                  "code",
                  "phone_number"
                ]
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "code": null,
                    "phone_number": null,
                    "description": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of speed dial.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "The ID of created resource",
                    "value": {
                      "id": "xxxxxxxx"
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "get": {
        "tags": [
          "User"
        ],
        "operationId": "usersListSpeedDial8",
        "x-category": "extensions",
        "x-subcategory": "extensions",
        "x-permissions": [
          "User.ViewOnly"
        ],
        "summary": "List speed dial 8",
        "description": "List speed dial 8.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of user.\n"
            },
            "description": "The unique ID of the user."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "description": "The unique ID of speed dial.\n"
                          },
                          "code": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 1,
                            "description": "The speed dial 8 dialing code.   \nAvailable code range from `2` to `9`.\n"
                          },
                          "phone_number": {
                            "type": "string",
                            "description": "The phone number that you want to call.\n"
                          },
                          "description": {
                            "type": "string",
                            "maximum": 1024,
                            "description": "The description of speed dial.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "items": [
                        {
                          "id": null,
                          "code": null,
                          "phone_number": null,
                          "description": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/users/{id}/speed_dial_8/{dial_id}": {
      "get": {
        "tags": [
          "User"
        ],
        "operationId": "usersRetrieveSpeedDial8",
        "x-category": "extensions",
        "x-subcategory": "extensions",
        "x-permissions": [
          "User.ViewOnly"
        ],
        "summary": "Retrieve details of speed dial 8",
        "description": "Retrieve details of speed dial 8 by it's ID.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of user.\n"
            },
            "description": "The unique ID of the user."
          },
          {
            "name": "dial_id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of speed dial.\n"
            },
            "description": "The unique ID of the speed dial."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of speed dial.\n"
                    },
                    "code": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 1,
                      "description": "The speed dial 8 dialing code.   \nAvailable code range from `2` to `9`.\n"
                    },
                    "phone_number": {
                      "type": "string",
                      "description": "The phone number that you want to call.\n"
                    },
                    "description": {
                      "type": "string",
                      "maximum": 1024,
                      "description": "The description of speed dial.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "id": null,
                      "code": null,
                      "phone_number": null,
                      "description": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "usersUpdateSpeedDial8",
        "x-category": "extensions",
        "x-subcategory": "extensions",
        "x-permissions": [
          "User.FullAccess"
        ],
        "summary": "Update speed dial 8",
        "description": "Update speed dial 8.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of user.\n"
            },
            "description": "The unique ID of the user."
          },
          {
            "name": "dial_id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of speed dial.\n"
            },
            "description": "The unique ID of the speed dial."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "code": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 1,
                    "description": "The speed dial 8 dialing code.   \nAvailable code range from `2` to `9`.\n"
                  },
                  "phone_number": {
                    "type": "string",
                    "description": "The phone number that you want to call.\n"
                  },
                  "description": {
                    "type": "string",
                    "maximum": 1024,
                    "description": "The description of speed dial.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "code": null,
                    "phone_number": null,
                    "description": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/users/{id}/speed_dial_8/{dial_id}/destroy": {
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "usersDeleteSpeedDial8",
        "x-category": "extensions",
        "x-subcategory": "extensions",
        "x-permissions": [
          "User.FullAccess"
        ],
        "summary": "Delete speed dial 8",
        "description": "Remove speed dial 8 by ID.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of user.\n"
            },
            "description": "The unique ID of the user."
          },
          {
            "name": "dial_id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of speed dial.\n"
            },
            "description": "The unique ID of the speed dial."
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/users/{id}/speed_dial_100": {
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "usersAddSpeedDial100",
        "x-category": "extensions",
        "x-subcategory": "extensions",
        "x-permissions": [
          "User.FullAccess"
        ],
        "summary": "Add new speed dial 100",
        "description": "Create new speed dial 100.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of user.\n"
            },
            "description": "The unique ID of the user."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "code": {
                    "type": "string",
                    "minLength": 2,
                    "maxLength": 2,
                    "description": "The speed dial 100 dialing code.   \nAvailable code range from `00` to `99`.\n"
                  },
                  "phone_number": {
                    "type": "string",
                    "description": "The phone number that you want to call.\n"
                  },
                  "description": {
                    "type": "string",
                    "maximum": 1024,
                    "description": "The description of speed dial.\n"
                  }
                },
                "required": [
                  "code",
                  "phone_number"
                ]
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "code": null,
                    "phone_number": null,
                    "description": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of speed dial.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "The ID of created resource",
                    "value": {
                      "id": "xxxxxxxx"
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "get": {
        "tags": [
          "User"
        ],
        "operationId": "usersListSpeedDial100",
        "x-category": "extensions",
        "x-subcategory": "extensions",
        "x-permissions": [
          "User.ViewOnly"
        ],
        "summary": "List speed dial 100",
        "description": "List speed dial 100.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of user.\n"
            },
            "description": "The unique ID of the user."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "description": "The unique ID of speed dial.\n"
                          },
                          "code": {
                            "type": "string",
                            "minLength": 2,
                            "maxLength": 2,
                            "description": "The speed dial 100 dialing code.   \nAvailable code range from `00` to `99`.\n"
                          },
                          "phone_number": {
                            "type": "string",
                            "description": "The phone number that you want to call.\n"
                          },
                          "description": {
                            "type": "string",
                            "maximum": 1024,
                            "description": "The description of speed dial.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "items": [
                        {
                          "id": null,
                          "code": null,
                          "phone_number": null,
                          "description": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/users/{id}/speed_dial_100/{dial_id}": {
      "get": {
        "tags": [
          "User"
        ],
        "operationId": "usersRetrieveSpeedDial100",
        "x-category": "extensions",
        "x-subcategory": "extensions",
        "x-permissions": [
          "User.ViewOnly"
        ],
        "summary": "Retrieve details of speed dial 100",
        "description": "Retrieve details of speed dial 100 by it's ID.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of user.\n"
            },
            "description": "The unique ID of the user."
          },
          {
            "name": "dial_id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of speed dial.\n"
            },
            "description": "The unique ID of the speed dial."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of speed dial.\n"
                    },
                    "code": {
                      "type": "string",
                      "minLength": 2,
                      "maxLength": 2,
                      "description": "The speed dial 100 dialing code.   \nAvailable code range from `00` to `99`.\n"
                    },
                    "phone_number": {
                      "type": "string",
                      "description": "The phone number that you want to call.\n"
                    },
                    "description": {
                      "type": "string",
                      "maximum": 1024,
                      "description": "The description of speed dial.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "id": null,
                      "code": null,
                      "phone_number": null,
                      "description": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "usersUpdateSpeedDial100",
        "x-category": "extensions",
        "x-subcategory": "extensions",
        "x-permissions": [
          "User.FullAccess"
        ],
        "summary": "Update speed dial 100",
        "description": "Update speed dial 100.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of user.\n"
            },
            "description": "The unique ID of the user."
          },
          {
            "name": "dial_id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of speed dial.\n"
            },
            "description": "The unique ID of the speed dial."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "code": {
                    "type": "string",
                    "minLength": 2,
                    "maxLength": 2,
                    "description": "The speed dial 100 dialing code.   \nAvailable code range from `00` to `99`.\n"
                  },
                  "phone_number": {
                    "type": "string",
                    "description": "The phone number that you want to call.\n"
                  },
                  "description": {
                    "type": "string",
                    "maximum": 1024,
                    "description": "The description of speed dial.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "code": null,
                    "phone_number": null,
                    "description": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/users/{id}/speed_dial_100/{dial_id}/destroy": {
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "usersDeleteSpeedDial100",
        "x-category": "extensions",
        "x-subcategory": "extensions",
        "x-permissions": [
          "User.FullAccess"
        ],
        "summary": "Delete speed dial 100",
        "description": "Remove speed dial 100 by ID.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of user.\n"
            },
            "description": "The unique ID of the user."
          },
          {
            "name": "dial_id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of speed dial.\n"
            },
            "description": "The unique ID of the speed dial."
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/extension_numbers/{extension_number}": {
      "get": {
        "tags": [
          "Extension"
        ],
        "operationId": "getExtensionNumber",
        "x-category": "call-features",
        "x-subcategory": "extensions",
        "x-permissions": [],
        "summary": "Get extension number",
        "description": "Get details by extension number.\n",
        "parameters": [
          {
            "name": "extension_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 to check.\n"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of the Ext.\n"
                    },
                    "extension_number": {
                      "allOf": [
                        {
                          "type": "string",
                          "minLength": 3,
                          "maxLength": 64,
                          "pattern": "[0-9]{3,64}",
                          "description": "The extension number.\n"
                        }
                      ],
                      "description": "The extension number of the Ext.\n"
                    },
                    "name": {
                      "type": "string",
                      "description": "The name of this Ext.\n"
                    },
                    "type": {
                      "type": "string",
                      "enum": [
                        "EXTENSION",
                        "RING_GROUP",
                        "CALL_QUEUE",
                        "CONFERENCE_ROOM",
                        "VIRTUAL_RECEPTIONIST"
                      ],
                      "description": "User agent client includes:\n- `EXTENSION`: type of extension type.\n- `RING_GROUP`: type of ring group.\n- `CALL_QUEUE`: type of call queue.\n- `CONFERENCE_ROOM`: type of conference room.\n- `VIRTUAL_RECEPTIONIST`: type of virtual receptionist.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "id": null,
                      "extension_number": null,
                      "name": null,
                      "type": "EXTENSION"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          }
        }
      }
    },
    "/groups": {
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "createUserGroup",
        "x-category": "extensions",
        "x-subcategory": "extensions",
        "x-permissions": [
          "User.FullAccess"
        ],
        "summary": "Create an user group",
        "description": "Create a new user group.\n",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64,
                    "description": "The name of user group.\n"
                  },
                  "outbound_caller_ids": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "provider_id": {
                          "allOf": [
                            {
                              "allOf": [
                                {
                                  "type": "string",
                                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                  "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"
                  },
                  "description": {
                    "type": "string",
                    "maxLength": 1024,
                    "description": "The description of user group.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "name": null,
                    "outbound_caller_ids": null,
                    "description": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created user group",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of user group.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "The ID of created resource",
                    "value": {
                      "id": "xxxxxxxx"
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "get": {
        "tags": [
          "User"
        ],
        "operationId": "listUserGroups",
        "x-category": "extensions",
        "x-subcategory": "extensions",
        "x-permissions": [
          "User.ViewOnly"
        ],
        "summary": "List user groups",
        "description": "Get a collection of user groups.\n",
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Use the `filter` query parameter to retrieve just a subset of a collection.\n"
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "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",
            "required": false,
            "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",
            "required": false,
            "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",
            "required": false,
            "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,
                      "example": 100,
                      "description": "Total number of resource.\n"
                    },
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "description": "The unique ID of user group.\n"
                          },
                          "name": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 64,
                            "description": "The name of user group.\n"
                          },
                          "description": {
                            "type": "string",
                            "maxLength": 1024,
                            "description": "The description of user group.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": null,
                          "name": null,
                          "description": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/groups/{id}": {
      "get": {
        "tags": [
          "User"
        ],
        "operationId": "showUserGroup",
        "x-category": "extensions",
        "x-subcategory": "extensions",
        "x-permissions": [
          "User.ViewOnly"
        ],
        "summary": "Retrieve an user group",
        "description": "Retrieves the properties of an user group.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of user group.\n"
            },
            "description": "The unique ID of the user group."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of user group.\n"
                    },
                    "name": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64,
                      "description": "The name of user group.\n"
                    },
                    "outbound_caller_ids": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "provider_id": {
                            "allOf": [
                              {
                                "allOf": [
                                  {
                                    "type": "string",
                                    "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                    "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"
                    },
                    "description": {
                      "type": "string",
                      "maxLength": 1024,
                      "description": "The description of user group.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "id": null,
                      "name": null,
                      "outbound_caller_ids": null,
                      "description": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "updateUserGroup",
        "x-category": "extensions",
        "x-subcategory": "extensions",
        "x-permissions": [
          "User.FullAccess"
        ],
        "summary": "Update an user group.",
        "description": "Update an user group\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of user group.\n"
            },
            "description": "The unique ID of the user group."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64,
                    "description": "The name of user group.\n"
                  },
                  "outbound_caller_ids": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "provider_id": {
                          "allOf": [
                            {
                              "allOf": [
                                {
                                  "type": "string",
                                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                  "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"
                  },
                  "description": {
                    "type": "string",
                    "maxLength": 1024,
                    "description": "The description of user group.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "name": null,
                    "outbound_caller_ids": null,
                    "description": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/groups/{id}/destroy": {
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "deleteUserGroup",
        "x-category": "extensions",
        "x-subcategory": "extensions",
        "x-permissions": [
          "User.FullAccess"
        ],
        "summary": "Delete an user group",
        "description": "Delete a certain user group.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of user group.\n"
            },
            "description": "The unique ID of the user group."
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Invalid user number supplied"
          },
          "404": {
            "description": "User not found"
          }
        }
      }
    },
    "/groups/{id}/members": {
      "get": {
        "tags": [
          "User"
        ],
        "operationId": "listUserGroupMembers",
        "x-category": "extensions",
        "x-subcategory": "extensions",
        "x-permissions": [
          "User.ViewOnly"
        ],
        "summary": "List user group members",
        "description": "Retrieve a collection of user group members.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of user group.\n"
            },
            "description": "The unique ID of the user group."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "description": "The unique ID of user.\n"
                          },
                          "name": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 64,
                            "description": "The user's account name.   \nOnly letters, numbers, and the following special characters can be added: underscore, dash, single quote, and period (_, -, ', and .).   \nUsername cannot start or end with period (.).   \n`admin`, `system`, `administrator`, and `root` are reserved names for system admin only with case ignored.\n"
                          },
                          "display_name": {
                            "type": "string",
                            "maxLength": 1024,
                            "description": "The display name of user.\n"
                          },
                          "extension_number": {
                            "type": "string",
                            "minLength": 3,
                            "maxLength": 64,
                            "pattern": "[0-9]{3,64}",
                            "description": "The extension number.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "items": [
                        {
                          "id": null,
                          "name": null,
                          "display_name": null,
                          "extension_number": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/groups/{id}/members/{extension_number}": {
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "createUserGroupMember",
        "x-category": "extensions",
        "x-subcategory": "extensions",
        "x-permissions": [
          "User.FullAccess"
        ],
        "summary": "Add user group member",
        "description": "Add user member into group.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of user group.\n"
            },
            "description": "The unique ID of the user group."
          },
          {
            "name": "extension_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 member."
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "get": {
        "tags": [
          "User"
        ],
        "operationId": "getUserGroupMember",
        "x-category": "extensions",
        "x-subcategory": "extensions",
        "x-permissions": [
          "User.ViewOnly"
        ],
        "summary": "Check user group member",
        "description": "Check if extension is in user group.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of user group.\n"
            },
            "description": "The unique ID of the user group.\n"
          },
          {
            "name": "extension_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 member.\n"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of user.\n"
                    },
                    "name": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64,
                      "description": "The user's account name.   \nOnly letters, numbers, and the following special characters can be added: underscore, dash, single quote, and period (_, -, ', and .).   \nUsername cannot start or end with period (.).   \n`admin`, `system`, `administrator`, and `root` are reserved names for system admin only with case ignored.\n"
                    },
                    "display_name": {
                      "type": "string",
                      "maxLength": 1024,
                      "description": "The display name of user.\n"
                    },
                    "extension_number": {
                      "type": "string",
                      "minLength": 3,
                      "maxLength": 64,
                      "pattern": "[0-9]{3,64}",
                      "description": "The extension number.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "id": null,
                      "name": null,
                      "display_name": null,
                      "extension_number": null
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          }
        }
      }
    },
    "/groups/{id}/members/{extension_number}/destroy": {
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "deleteUserGroupMember",
        "x-category": "extensions",
        "x-subcategory": "extensions",
        "x-permissions": [
          "User.FullAccess"
        ],
        "summary": "Delete group member",
        "description": "Delete an user group member.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of user group.\n"
            },
            "description": "The unique ID of the group."
          },
          {
            "name": "extension_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 group member."
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/voicemails": {
      "get": {
        "tags": [
          "Voicemail"
        ],
        "operationId": "listVoicemails",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [],
        "summary": "List voicemails",
        "description": "Retrieve a collection of voicemails.\n",
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Use the `filter` query parameter to retrieve just a subset of a collection.\n"
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "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",
            "required": false,
            "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",
            "required": false,
            "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",
            "required": false,
            "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,
                      "example": 100,
                      "description": "Total number of resource.\n"
                    },
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "description": "The unique ID of voicemail.\n"
                          },
                          "sender": {
                            "type": "string",
                            "description": "The sender number of the voicemail.\n"
                          },
                          "created_at": {
                            "allOf": [
                              {
                                "type": "string",
                                "format": "date_time",
                                "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                                "example": "2017-07-21T17:32:28Z"
                              }
                            ],
                            "description": "The creation time of voicemail.\n"
                          },
                          "duration": {
                            "type": "integer",
                            "format": "int32",
                            "description": "The playback time (in seconds).\n"
                          },
                          "status": {
                            "type": "string",
                            "enum": [
                              "READ",
                              "UNREAD"
                            ],
                            "description": "Status of the voicemail includes:\n- `READ`: read mail\n- `UNREAD`: unread mail\n"
                          },
                          "file_name": {
                            "type": "string",
                            "description": "The name of the file.\n"
                          },
                          "file_size": {
                            "type": "integer",
                            "format": "int64",
                            "minimum": 0,
                            "example": 0,
                            "description": "The file size in bytes.\n"
                          },
                          "file_url": {
                            "type": "string",
                            "readOnly": true,
                            "example": "/api/blobs/WexWdABcd5D4PDgzTKV3gAAAEu00WcK",
                            "description": "The relative path to file url for file downloading.\n"
                          },
                          "transcription_status": {
                            "type": "string",
                            "description": "AI transcription status.\n- TranscriptionNotStarted\n- TranscriptionQuotaLimited\n- TranscriptionRunning\n- TranscriptionFailed\n- TranscriptionSucceeded\n- AnalyzeRunning\n- AnalyzeFailed\n- AnalyzeSucceeded\n- TranscriptionUploadFailed\n- TranscriptionOtherFailed\n",
                            "enum": [
                              "TRANSCRIPTION_NOTSTARTED",
                              "TRANSCRIPTION_QUOTALIMITED",
                              "TRANSCRIPTION_RUNNING",
                              "TRANSCRIPTION_FAILED",
                              "TRANSCRIPTION_SUCCEEDED",
                              "ANALYZE_RUNNING",
                              "ANALYZE_FAILED",
                              "ANALYZE_SUCCEEDED",
                              "TRANSCRIPTION_UPLOAD_FAILED",
                              "TRANSCRIPTION_OTHER_FAILED"
                            ]
                          },
                          "transcription_status_desc": {
                            "type": "string",
                            "description": "AI transcription status description."
                          },
                          "transcription_sentiment": {
                            "type": "string",
                            "description": "AI transcription sentiment.\n- SentimentPositive\n- SentimentNeutral\n- SentimentNegative\n",
                            "enum": [
                              "SENTIMENT_POSITIVE",
                              "SENTIMENT_NEUTRAL",
                              "SENTIMENT_NEGATIVE"
                            ]
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "Example of voicemail transcription list",
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": "1004948204782882816",
                          "sender": "test55 [ 0005 ]",
                          "created_at": "2025-08-05T03:05:23.055292Z",
                          "status": "UNREAD",
                          "duration": 3,
                          "file_name": "a18b846a-2979-4ce8-bbf0-5d45fe4e2dfa.wav",
                          "file_size": 236,
                          "file_url": "/api/blobs/1A5uEsvFUWqMfIp0l_PkzAAAgFoRS_IN",
                          "transcription_status": "TRANSCRIPTION_QUOTALIMITED",
                          "transcription_status_desc": "description of status",
                          "transcription_sentiment": "SENTIMENT_NEUTRAL"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/voicemails/{id}": {
      "get": {
        "tags": [
          "Voicemail"
        ],
        "operationId": "showVoicemail",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [],
        "summary": "Retrieve a voicemail",
        "description": "Retrieve voicemail information.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of voicemail.\n"
            },
            "description": "The unique ID of voicemail."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of voicemail.\n"
                    },
                    "sender": {
                      "type": "string",
                      "description": "The sender number of the voicemail.\n"
                    },
                    "created_at": {
                      "allOf": [
                        {
                          "type": "string",
                          "format": "date_time",
                          "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                          "example": "2017-07-21T17:32:28Z"
                        }
                      ],
                      "description": "The creation time of voicemail.\n"
                    },
                    "duration": {
                      "type": "integer",
                      "format": "int32",
                      "description": "The playback time (in seconds).\n"
                    },
                    "status": {
                      "type": "string",
                      "enum": [
                        "READ",
                        "UNREAD"
                      ],
                      "description": "Status of the voicemail includes:\n- `READ`: read mail\n- `UNREAD`: unread mail\n"
                    },
                    "file_name": {
                      "type": "string",
                      "description": "The name of the file.\n"
                    },
                    "file_size": {
                      "type": "integer",
                      "format": "int64",
                      "minimum": 0,
                      "example": 0,
                      "description": "The file size in bytes.\n"
                    },
                    "file_url": {
                      "type": "string",
                      "readOnly": true,
                      "example": "/api/blobs/WexWdABcd5D4PDgzTKV3gAAAEu00WcK",
                      "description": "The relative path to file url for file downloading.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "id": null,
                      "sender": null,
                      "created_at": null,
                      "duration": null,
                      "status": null,
                      "file_name": null,
                      "file_size": null,
                      "file_url": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/voicemails/{id}/set_read": {
      "post": {
        "tags": [
          "Voicemail"
        ],
        "operationId": "setVoicemailRead",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [],
        "summary": "Update voicemail status to read",
        "description": "Update voicemail status to read\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of voicemail.\n"
            },
            "description": "The unique ID of voicemail."
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Invalid voicemail ID supplied"
          }
        }
      }
    },
    "/voicemails/{id}/set_unread": {
      "post": {
        "tags": [
          "Voicemail"
        ],
        "operationId": "setVoicemailUnRead",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [],
        "summary": "Update voicemail status to unread",
        "description": "Update voicemail status to unread\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of voicemail.\n"
            },
            "description": "The unique ID of voicemail."
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Invalid voicemail ID supplied"
          }
        }
      }
    },
    "/voicemails/{id}/destroy": {
      "post": {
        "tags": [
          "Voicemail"
        ],
        "operationId": "deleteVoicemail",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [],
        "summary": "Delete a voicemail",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of voicemail.\n"
            },
            "description": "The unique ID of the voicemail."
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Invalid voicemail ID supplied"
          },
          "404": {
            "description": "User not found"
          }
        }
      }
    },
    "/recordings": {
      "get": {
        "tags": [
          "Recording"
        ],
        "operationId": "listRecordings",
        "x-category": "call-logs",
        "x-subcategory": "recordings",
        "x-permissions": [
          "CompanyCallRecording.ViewOnly"
        ],
        "summary": "List call recordings",
        "description": "Retrieve a collection of call recordings.\n",
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Use the `filter` query parameter to retrieve just a subset of a collection.\n"
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "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",
            "required": false,
            "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",
            "required": false,
            "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",
            "required": false,
            "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,
                      "example": 100,
                      "description": "Total number of resource.\n"
                    },
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "readOnly": true,
                            "description": "The unique ID of call recording.\n"
                          },
                          "caller": {
                            "type": "string",
                            "description": "Caller who started the call.\n"
                          },
                          "callee": {
                            "type": "string",
                            "description": "Callee who answered the call.\n"
                          },
                          "started_at": {
                            "allOf": [
                              {
                                "type": "string",
                                "format": "date_time",
                                "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                                "example": "2017-07-21T17:32:28Z"
                              }
                            ],
                            "description": "Time on which the call is answered.\n"
                          },
                          "ended_at": {
                            "allOf": [
                              {
                                "type": "string",
                                "format": "date_time",
                                "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                                "example": "2017-07-21T17:32:28Z"
                              }
                            ],
                            "description": "Time on which the call is ended.\n"
                          },
                          "status": {
                            "type": "integer",
                            "description": "AI transcription status.\n- 0 = NotTranscribed\n- 1 = TranscriptionNotStarted\n- 2 = TranscriptionQuotaLimited\n- 3 = TranscriptionRunning\n- 4 = TranscriptionFailed\n- 5 = TranscriptionSucceeded\n- 6 = AnalyzeRunning\n- 7 = AnalyzeFailed\n- 8 = AnalyzeSucceeded\n- 9 = TranscriptionUploadFailed\n- 10 = TranscriptionOtherFailed\n",
                            "enum": [
                              0,
                              1,
                              2,
                              3,
                              4,
                              5,
                              6,
                              7,
                              8,
                              9,
                              10
                            ]
                          },
                          "status_description": {
                            "type": "string",
                            "description": "AI transcription status description.\n"
                          },
                          "sentiment": {
                            "type": "integer",
                            "description": "AI transcription sentiment.\n- 1 = SentimentPositive\n- 2 = SentimentNeutral\n- 3 = SentimentNegative\n",
                            "enum": [
                              1,
                              2,
                              3
                            ]
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "Example of recordings transcription list",
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": "1003558995476090880",
                          "caller": "001",
                          "callee": "3000",
                          "started_at": "2025-08-01T07:05:09.869Z",
                          "ended_at": "2025-08-01T07:05:18.841Z",
                          "status": "TRANSCRIPTION_NOTSTARTED",
                          "status_description": "test",
                          "sentiment": "SENTIMENT_NEUTRAL"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/recordings/{id}": {
      "get": {
        "tags": [
          "Recording"
        ],
        "operationId": "showRecording",
        "x-category": "call-logs",
        "x-subcategory": "recordings",
        "x-permissions": [
          "CompanyCallRecording.ViewOnly"
        ],
        "summary": "Retrieve a call recording",
        "description": "Get details of a call recording.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "readOnly": true,
              "description": "The unique ID of call recording.\n"
            },
            "description": "The unique ID of the call recording."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "caller": {
                            "type": "string",
                            "description": "Caller who started the call.\n"
                          },
                          "callee": {
                            "type": "string",
                            "description": "Callee who answered the call.\n"
                          },
                          "started_at": {
                            "allOf": [
                              {
                                "type": "string",
                                "format": "date_time",
                                "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                                "example": "2017-07-21T17:32:28Z"
                              }
                            ],
                            "description": "Time on which the call is answered.\n"
                          },
                          "ended_at": {
                            "allOf": [
                              {
                                "type": "string",
                                "format": "date_time",
                                "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                                "example": "2017-07-21T17:32:28Z"
                              }
                            ],
                            "description": "Time on which the call is ended.\n"
                          },
                          "duration": {
                            "type": "integer",
                            "format": "int32",
                            "description": "The playback time (in seconds).\n"
                          },
                          "file_name": {
                            "type": "string",
                            "description": "The name of the file.\n"
                          },
                          "file_size": {
                            "type": "integer",
                            "format": "int64",
                            "minimum": 0,
                            "example": 0,
                            "description": "The file size in bytes.\n"
                          },
                          "file_url": {
                            "type": "string",
                            "readOnly": true,
                            "example": "/api/blobs/WexWdABcd5D4PDgzTKV3gAAAEu00WcK",
                            "description": "The relative path to file url for file downloading.\n"
                          },
                          "status": {
                            "type": "string",
                            "description": "AI transcription status.\n- TranscriptionNotStarted\n- TranscriptionQuotaLimited\n- TranscriptionRunning\n- TranscriptionFailed\n- TranscriptionSucceeded\n- AnalyzeRunning\n- AnalyzeFailed\n- AnalyzeSucceeded\n- TranscriptionUploadFailed\n- TranscriptionOtherFailed\n",
                            "enum": [
                              "TRANSCRIPTION_NOTSTARTED",
                              "TRANSCRIPTION_QUOTALIMITED",
                              "TRANSCRIPTION_RUNNING",
                              "TRANSCRIPTION_FAILED",
                              "TRANSCRIPTION_SUCCEEDED",
                              "ANALYZE_RUNNING",
                              "ANALYZE_FAILED",
                              "ANALYZE_SUCCEEDED",
                              "TRANSCRIPTION_UPLOAD_FAILED",
                              "TRANSCRIPTION_OTHER_FAILED"
                            ]
                          },
                          "status_description": {
                            "type": "string",
                            "description": "AI transcription status description."
                          },
                          "sentiment": {
                            "type": "string",
                            "description": "AI transcription sentiment.\n- SentimentPositive\n- SentimentNeutral\n- SentimentNegative\n",
                            "enum": [
                              "SENTIMENT_POSITIVE",
                              "SENTIMENT_NEUTRAL",
                              "SENTIMENT_NEGATIVE"
                            ]
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "Example of a recording transcription detail",
                    "value": {
                      "items": [
                        {
                          "caller": "0001",
                          "callee": "777",
                          "started_at": "2025-09-10T07:10:31.738Z",
                          "ended_at": "2025-09-10T07:10:42.462Z",
                          "duration": 10,
                          "file_name": "1018033599082921984_1018055849907589120_0001_777_09102025_151031.wav",
                          "file_size": 171916,
                          "file_url": "/api/blobs/xEjN7-6Y1yutkcJE8sPqGwAAwMlz3CAO",
                          "status": "ANALYZE_SUCCEEDED",
                          "status_description": "",
                          "sentiment": "SENTIMENT_NEUTRAL"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/recordings/{id}/destroy": {
      "post": {
        "tags": [
          "Recording"
        ],
        "operationId": "deleteRecording",
        "x-category": "call-logs",
        "x-subcategory": "recordings",
        "x-permissions": [
          "CompanyCallRecording.FullAccess"
        ],
        "summary": "Delete call recording",
        "description": "Delete a call recording\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "readOnly": true,
              "description": "The unique ID of call recording.\n"
            },
            "description": "The unique ID of the recording."
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/transcription": {
      "post": {
        "tags": [
          "AI Transcription"
        ],
        "operationId": "createTranscription",
        "x-category": "call-logs",
        "x-subcategory": "recordings",
        "x-permissions": [
          "CompanyCallRecording.FullAccess"
        ],
        "summary": "Create AI Transcription",
        "description": "Creates an AI transcription record.  \nThe source is identified by the `res_id` and `item_type` provided in the request body.  \nThis endpoint can be called multiple times. If a previous transcription attempt has failed (status indicates failure),  \ncalling this endpoint again will retry the transcription process.  \nThe response may contain multiple IDs because a single call can include multiple recording files.\n",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "res_id": {
                    "type": "string",
                    "description": "ID from a `/voicemails` or `/recordings` item used to create the transcription."
                  },
                  "item_type": {
                    "type": "string",
                    "description": "Type of the source item. Allowed values are `CALL_RECORD` or `VOICE_MAIL`.",
                    "enum": [
                      "CALL_RECORD",
                      "VOICE_MAIL"
                    ]
                  }
                },
                "required": [
                  "res_id",
                  "item_type"
                ]
              },
              "example": {
                "res_id": "1017757975109963776",
                "item_type": "CALL_RECORD_ITEM"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successfully created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ids": {
                      "type": "array",
                      "items": {
                        "type": "integer"
                      },
                      "description": "List of created transcription IDs."
                    }
                  }
                },
                "example": {
                  "ids": [
                    "1017758181150949376"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid parameters"
          },
          "500": {
            "description": "Internal server error"
          }
        }
      }
    },
    "/transcription/{id}": {
      "get": {
        "tags": [
          "AI Transcription"
        ],
        "operationId": "getTranscriptions",
        "x-category": "call-logs",
        "x-subcategory": "recordings",
        "x-permissions": [
          "CompanyCallRecording.ViewOnly"
        ],
        "summary": "Get AI Transcription Details",
        "description": "Retrieve all AI transcription records associated with a specific resource ID (`id`).  \nThe `id` comes from the `id` field of an item in either the `/recordings` or `/voicemails` list.  \nA single resource may have multiple transcription or analysis results, so the response is returned as an array of transcription detail objects.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "The resource ID from `/recordings` or `/voicemails` to retrieve transcription records for.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Transcription details retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string",
                        "readOnly": true,
                        "description": "The unique ID of the transcription record."
                      },
                      "tenant_id": {
                        "type": "string",
                        "description": "The tenant ID associated with the transcription record."
                      },
                      "item_id": {
                        "type": "string",
                        "description": "The item ID of the original recording."
                      },
                      "file_id": {
                        "type": "string",
                        "description": "The file ID associated with the transcription."
                      },
                      "type": {
                        "type": "string",
                        "description": "Type of the source item. Allowed values are `CALL_RECORD` or `VOICE_MAIL`.",
                        "enum": [
                          "CALL_RECORD",
                          "VOICE_MAIL"
                        ]
                      },
                      "transcription_id": {
                        "type": "string",
                        "description": "The unique ID of the transcription."
                      },
                      "analyze_id": {
                        "type": "string",
                        "description": "The unique ID of the analysis result."
                      },
                      "status": {
                        "type": "string",
                        "description": "AI transcription status.\n- TranscriptionNotStarted\n- TranscriptionQuotaLimited\n- TranscriptionRunning\n- TranscriptionFailed\n- TranscriptionSucceeded\n- AnalyzeRunning\n- AnalyzeFailed\n- AnalyzeSucceeded\n- TranscriptionUploadFailed\n- TranscriptionOtherFailed\n",
                        "enum": [
                          "TRANSCRIPTION_NOTSTARTED",
                          "TRANSCRIPTION_QUOTALIMITED",
                          "TRANSCRIPTION_RUNNING",
                          "TRANSCRIPTION_FAILED",
                          "TRANSCRIPTION_SUCCEEDED",
                          "ANALYZE_RUNNING",
                          "ANALYZE_FAILED",
                          "ANALYZE_SUCCEEDED",
                          "TRANSCRIPTION_UPLOAD_FAILED",
                          "TRANSCRIPTION_OTHER_FAILED"
                        ]
                      },
                      "status_description": {
                        "type": "string",
                        "description": "AI transcription status description."
                      },
                      "transcription_display": {
                        "type": "string",
                        "description": "Display version of the AI transcription in JSON format."
                      },
                      "intelligent_summary": {
                        "type": "string",
                        "description": "AI-generated summary of the transcription."
                      },
                      "sentiment": {
                        "type": "string",
                        "description": "AI transcription sentiment.\n- SentimentPositive\n- SentimentNeutral\n- SentimentNegative\n",
                        "enum": [
                          "SENTIMENT_POSITIVE",
                          "SENTIMENT_NEUTRAL",
                          "SENTIMENT_NEGATIVE"
                        ]
                      },
                      "created_at": {
                        "type": "string",
                        "format": "date-time",
                        "description": "Time at which the transcription record was created."
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "value": [
                      {
                        "id": "1015828562055266304",
                        "tenant_id": "1015826085515886592",
                        "item_id": "1015826629533896704",
                        "file_id": "1015826629588418560",
                        "session_id": "1015826576371093504",
                        "type": "CALL_RECORD_ITEM",
                        "transcription_id": "c40f915e-1fd0-4488-9afa-ad82c456449e",
                        "analyze_id": "4968fe37-490f-4e03-b337-562ea5c02e5d",
                        "status": "ANALYZE_SUCCEEDED",
                        "status_description": "",
                        "transcription_display": "{\n  \"transcript\": \"Welcome to the voicemail service. Please enter your password then press #.\",\n  \"audio_segments\": [\n    {\n      \"transcript\": \"Welcome to the voicemail service.\",\n      \"start_time\": 0.52,\n      \"end_time\": 2.44,\n      \"speaker\": \"spk_0\"\n    },\n    {\n      \"transcript\": \"Please enter your password then press #.\",\n      \"start_time\": 3.16,\n      \"end_time\": 5.56,\n      \"speaker\": \"spk_0\"\n    }\n  ]\n}\n",
                        "intelligent_summary": "{\n  \"analyze\": [\n    \"Welcome to the voicemail service.\",\n    \"Please enter your password then press #.\"\n  ]\n}\n",
                        "sentiment": 2,
                        "created_at": "2025-09-04T11:40:02.376779Z",
                        "caller": "0001",
                        "callee": "777",
                        "file_url": "/api/blobs/R1AW1C0XTpzJ5Bdh1jz4mQAAAALw8BgO"
                      }
                    ]
                  }
                }
              }
            }
          },
          "404": {
            "description": "Transcription not found"
          }
        }
      },
      "post": {
        "tags": [
          "AI Transcription"
        ],
        "summary": "Update AI Transcription",
        "description": "Update transcription information for a specific transcription record.  \nThe `id` parameter refers to the primary key of the transcription.\n",
        "operationId": "updateTranscription",
        "x-category": "extensions",
        "x-subcategory": "personal",
        "x-permissions": [
          "CompanyCallRecording.FullAccess"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "The primary key ID of the transcription record to update.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "transcription_display": {
                    "type": "string",
                    "description": "Transcription display content (JSON string)."
                  },
                  "intelligent_summary": {
                    "type": "string",
                    "description": "Intelligent summary content."
                  },
                  "sentiment": {
                    "type": "string",
                    "description": "AI transcription sentiment.\n- SentimentPositive\n- SentimentNeutral\n- SentimentNegative\n",
                    "enum": [
                      "SENTIMENT_POSITIVE",
                      "SENTIMENT_NEUTRAL",
                      "SENTIMENT_NEGATIVE"
                    ]
                  }
                }
              },
              "examples": {
                "default": {
                  "value": {
                    "transcription_display": "{\n  \"transcript\": \"Thanks for calling. If you know the extension of the person you would like to reach, you may dial it at anytime.\",\n  \"audio_segments\": [\n    {\n      \"transcript\": \"Thanks for calling.\",\n      \"start_time\": 0.04,\n      \"end_time\": 1.04,\n      \"speaker\": \"spk_0\"\n    },\n    {\n      \"transcript\": \"If you know the extension of the person you would like to reach, you may dial it at anytime.\",\n      \"start_time\": 1.24,\n      \"end_time\": 5.48,\n      \"speaker\": \"spk_0\"\n    }\n  ]\n}\n",
                    "intelligent_summary": "AnalyzeText Result : - {\"transcript\":\"Thanks for calling. - If you know the extension of the person you would like to reach, you may dial it at anytime.\", \"audio_segments\":[\n  {\"transcript\":\"Thanks for calling.\",\"start_time\":0.04,\"end_time\":1.04,\"speaker\":\"spk_0\"},\n  {\"transcript\":\"If you know the extension of the person you would like to reach, you may dial it at anytime.\",\"start_time\":1.24,\"end_time\":5.48,\"speaker\":\"spk_0\"}\n]}\n",
                    "sentiment": "SENTIMENT_POSITIVE"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Transcription updated successfully"
          }
        }
      }
    },
    "/call_queue_servers": {
      "post": {
        "tags": [
          "Call Queue"
        ],
        "operationId": "createCallQueueServer",
        "x-category": "call-features",
        "x-subcategory": "call-queues",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Create a call queue server",
        "description": "Create a call queue server.  \nPlease note that: at least one of ipv4 or ipv6 must be specified.\n",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64,
                    "description": "The name of call queue server.\n"
                  },
                  "enabled": {
                    "type": "boolean",
                    "default": true,
                    "description": "The activate status or deactivated status.\n"
                  },
                  "ipv4": {
                    "type": "string",
                    "description": "Host IPV4 address.\n"
                  },
                  "ipv6": {
                    "type": "string",
                    "description": "Host IPV6 address.\n"
                  }
                },
                "required": [
                  "name"
                ]
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "name": null,
                    "enabled": null,
                    "ipv4": null,
                    "ipv6": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of call queue server.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "The ID of created resource",
                    "value": {
                      "id": "xxxxxxxx"
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "get": {
        "tags": [
          "Call Queue"
        ],
        "operationId": "listCallQueueServers",
        "x-category": "call-features",
        "x-subcategory": "call-queues",
        "x-permissions": [
          "PhoneSystem.ViewOnly"
        ],
        "summary": "List call queue servers",
        "description": "List call queue servers.\n",
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Use the `filter` query parameter to retrieve just a subset of a collection.\n"
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "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",
            "required": false,
            "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",
            "required": false,
            "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",
            "required": false,
            "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,
                      "example": 100,
                      "description": "Total number of resource.\n"
                    },
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "description": "The unique ID of call queue server.\n"
                          },
                          "name": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 64,
                            "description": "The name of call queue server.\n"
                          },
                          "enabled": {
                            "type": "boolean",
                            "default": true,
                            "description": "The activate status or deactivated status.\n"
                          },
                          "type": {
                            "type": "string",
                            "enum": [
                              "INTERNAL",
                              "EXTERNAL"
                            ],
                            "readOnly": true,
                            "description": "Every PortSIP PBX has a built-in call queue server marked as `INTERNAL`;   \nNewly added call queue servers will be marked as \"EXTERNAL\".\n"
                          },
                          "ipv4": {
                            "type": "string",
                            "description": "Host IPV4 address.\n"
                          },
                          "ipv6": {
                            "type": "string",
                            "description": "Host IPV6 address.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": null,
                          "name": null,
                          "enabled": null,
                          "type": null,
                          "ipv4": null,
                          "ipv6": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/call_queue_servers/{id}": {
      "get": {
        "tags": [
          "Call Queue"
        ],
        "operationId": "showCallQueueServer",
        "x-category": "system-management",
        "x-subcategory": "call-queue-servers",
        "x-permissions": [
          "PhoneSystem.ViewOnly"
        ],
        "summary": "Retrieve a call queue server",
        "description": "Retrieve a call queue server.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of call queue server.\n"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of call queue server.\n"
                    },
                    "name": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64,
                      "description": "The name of call queue server.\n"
                    },
                    "enabled": {
                      "type": "boolean",
                      "default": true,
                      "description": "The activate status or deactivated status.\n"
                    },
                    "ipv4": {
                      "type": "string",
                      "description": "Host IPV4 address.\n"
                    },
                    "ipv6": {
                      "type": "string",
                      "description": "Host IPV6 address.\n"
                    },
                    "type": {
                      "type": "string",
                      "enum": [
                        "INTERNAL",
                        "EXTERNAL"
                      ],
                      "readOnly": true,
                      "description": "Every PortSIP PBX has a built-in call queue server marked as `INTERNAL`;   \nNewly added call queue servers will be marked as \"EXTERNAL\".\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "id": null,
                      "name": null,
                      "enabled": null,
                      "ipv4": null,
                      "ipv6": null,
                      "type": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "post": {
        "tags": [
          "Call Queue"
        ],
        "operationId": "updateCallQueueServer",
        "x-category": "system-management",
        "x-subcategory": "call-queue-servers",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Update a call queue server",
        "description": "Update a call queue server.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of call queue server.\n"
            },
            "description": "The unique ID of the call queue server."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "enabled": {
                    "type": "boolean",
                    "default": true,
                    "description": "The activate status or deactivated status.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "enabled": null
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/call_queue_servers/{id}/status": {
      "get": {
        "tags": [
          "Call Queue"
        ],
        "operationId": "getCallQueueServerStatus",
        "x-category": "system-management",
        "x-subcategory": "call-queue-servers",
        "x-permissions": [
          "PhoneSystem.ViewOnly"
        ],
        "summary": "Query call queue server status",
        "description": "Retrieve a call queue server's status.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of call queue server.\n"
            },
            "description": "The unique ID of the call queue server."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "readOnly": true,
                  "properties": {
                    "cpu_usage": {
                      "type": "integer",
                      "description": "CPU usage.\n"
                    },
                    "memory_usage": {
                      "type": "integer",
                      "description": "Memory usage.\n"
                    },
                    "status": {
                      "type": "string",
                      "enum": [
                        "ONLINE",
                        "OFFLINE"
                      ],
                      "description": "Call queue's status:   \n- `ONLINE`: The call queue is online.\n- `OFFLINE`: The call queue is offline.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "cpu_usage": null,
                      "memory_usage": null,
                      "status": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/call_queue_servers/{id}/destroy": {
      "post": {
        "tags": [
          "Call Queue"
        ],
        "operationId": "deleteCallQueueServer",
        "x-category": "system-management",
        "x-subcategory": "call-queue-servers",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Delete a call queue server",
        "description": "Delete a call queue server\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of call queue server.\n"
            },
            "description": "The unique ID of the call queue server."
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Invalid server id supplied"
          },
          "404": {
            "description": "Server not found"
          }
        }
      }
    },
    "/call_queues": {
      "post": {
        "tags": [
          "Call Queue"
        ],
        "operationId": "createQueue",
        "x-category": "call-features",
        "x-subcategory": "call-queues",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Create a call queue",
        "description": "Add a new call queue.\n",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64,
                    "description": "The name of call queue.\n"
                  },
                  "extension_number": {
                    "allOf": [
                      {
                        "type": "string",
                        "minLength": 3,
                        "maxLength": 64,
                        "pattern": "[0-9]{3,64}",
                        "description": "The extension number.\n"
                      }
                    ],
                    "description": "The extension number of call queue.\n"
                  },
                  "polling_strategy": {
                    "type": "string",
                    "enum": [
                      "RING_SIMULTANEOUSLY",
                      "PRIORITIZED_HUNT",
                      "CYCLIC_HUNT",
                      "LEAST_WORKED_HUNT",
                      "SKILL_BASED_ROUTING_PRIORITIZED_HUNT",
                      "SKILL_BASED_ROUTING_CYCLIC_HUNT",
                      "SKILL_BASED_ROUTING_LEAST_WORKED_HUNT"
                    ],
                    "default": "RING_SIMULTANEOUSLY",
                    "description": "Polling strategy:   \nCan be either:   \n- `RING_SIMULTANEOUSLY`: Ring all available agents of the queue simultaneously.\n- `PRIORITIZED_HUNT`: Ring each available agent of the queue serially in the configured order.\n- `CYCLIC_HUNT`: Ring each available agent of the queue serially, \n    ring the agent that hasn't been rang from a call from this queue in the longest amount of time first.\n- `LEAST_WORKED_HUNT`: Ring each available agent of the queue serially, \n    ring the agent that hasn't answered a call from this queue in the longest amount of time first.\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 agent of the queue 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 agent of the queue serially,   \n    ring the agent that hasn't been rang from a call from this queue 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 agent of the queue serially,   \n    ring the agent that hasn't answered a call from this queue in the longest amount of time first.\n"
                  },
                  "ring_time": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 1,
                    "maximum": 65535,
                    "default": 20,
                    "description": "Duration that each extension will ring, in seconds.\n"
                  },
                  "max_callers": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 0,
                    "description": "The maximum number of callers allowed in queue.\n"
                  },
                  "moh_prompt_file_id": {
                    "allOf": [
                      {
                        "type": "string",
                        "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                        "description": "The unique ID of the resource.\n"
                      }
                    ],
                    "description": "The unique ID of the file.\n"
                  },
                  "intro_type": {
                    "type": "string",
                    "enum": [
                      "DISABLE",
                      "NORMAL",
                      "FULL"
                    ],
                    "default": "DISABLE",
                    "description": "Introductory tone:\n- `DISABLE`: disable introductory tone\n- `NORMAL`: play normal introductory tone.\n- `FULL`: play full introductory tone.\n"
                  },
                  "intro_prompt_file_id": {
                    "allOf": [
                      {
                        "type": "string",
                        "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                        "description": "The unique ID of the resource.\n"
                      }
                    ],
                    "description": "The unique ID of the file.\n"
                  },
                  "max_waiting_time": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 15,
                    "maximum": 65535,
                    "default": 300,
                    "description": "The maximum time limit for waiting in the queue, in seconds. \nAfter this time interval, the call will be handled as pre-configured.\n"
                  },
                  "wait_when_no_agents_online": {
                    "type": "boolean",
                    "default": false,
                    "description": "Queue will waiting when no agent online.\n"
                  },
                  "inform_position": {
                    "type": "string",
                    "enum": [
                      "DISABLE",
                      "PERIODICALLY",
                      "ON_CONNECTED"
                    ],
                    "default": "DISABLE",
                    "description": "Queue will announce the actual position of the caller who's currently waiting in the queue.  \nCallback mode can be either:  \n- `DISABLE`: Disable informing waiting position.\n- `PERIODICALLY`: Inform waiting position periodically.\n- `ON_CONNECTED`: Inform waiting position once caller connected and then play periodically.\n"
                  },
                  "inform_position_interval": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 10,
                    "maximum": 1800,
                    "default": 10,
                    "description": "Time interval for repeating announcement of the waiting position, in seconds.   \nThis parameter will be available only if `inform_position` is `PERIODICALLY` or `ON_CONNECTED`.\n"
                  },
                  "agent_auto_ready": {
                    "type": "boolean",
                    "default": true,
                    "description": "Automatically set agent status to `Ready` \nafter logging in to a queue or completing a call (ACD call or non AC call).\n"
                  },
                  "agent_auto_not_ready_after_non_acd_call": {
                    "type": "boolean",
                    "default": true,
                    "description": "Automatically set agent status to `Not Ready` after completing a non-ACD call.   \nThis option will be ignored if `agent_auto_ready` is enabled.\n"
                  },
                  "sla_time": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 0,
                    "maximum": 65536,
                    "default": 0,
                    "description": "The SLA time of call queue in seconds.\n"
                  },
                  "language": {
                    "type": "string",
                    "example": "en-US",
                    "description": "BCP 47 Language Tags (The Internet Best Current Practices (BCP) for language tags).\nA language tag is composed of a sequence of one or more subtags such as language, region, variant and script subtags.\nWhen a language tag is comprised of more than one subtag, the subtag values are separated by the \"-\" character.\nYou will most commonly find language tags written with 2 subtags - language and region. For example: en-US.\n"
                  },
                  "no_answer_forward_rule": {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "enum": [
                          "FORWARD_TO_NUMBER",
                          "FORWARD_TO_VOICEMAIL",
                          "HANGUP"
                        ],
                        "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`:\n- `FORWARD_TO_VOICEMAIL`:\n- `HANGUP`: finish call\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",
                          "HANGUP"
                        ],
                        "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`:\n- `FORWARD_TO_VOICEMAIL`:\n- `HANGUP`: finish call\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"
                      }
                    }
                  },
                  "enable_callback": {
                    "type": "boolean",
                    "default": false,
                    "description": "Enable callback feature or not.\n"
                  },
                  "callback_mode": {
                    "type": "string",
                    "enum": [
                      "ACTIVE",
                      "TIMEOUT"
                    ],
                    "default": "ACTIVE",
                    "description": "Callback mode includes:\n- `ACTIVE`: Triggered on user request (Press 3).\n- `TIMEOUT`: Offered to caller after timeout.\n"
                  },
                  "callback_timeout": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 0,
                    "default": 600,
                    "description": "Offered to caller after timeout in seconds.\n"
                  },
                  "callback_outbound_prefix": {
                    "type": "string",
                    "description": "Callback outbound prefix.\n"
                  },
                  "outbound_caller_ids": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "provider_id": {
                          "allOf": [
                            {
                              "allOf": [
                                {
                                  "type": "string",
                                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                  "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"
                  },
                  "enable_sticky_routing": {
                    "type": "boolean",
                    "default": true,
                    "description": "When a customer calls the queue, \nif the customer has communicated with an agent before and the agent is currently in the ready state, \nthen this agent will have priority to answer the call.\n"
                  },
                  "sticky_routing_duration": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 1,
                    "maximum": 365,
                    "default": 30,
                    "description": "The duration of sticky routing in days.\n"
                  },
                  "enable_paid": {
                    "type": "boolean",
                    "default": false,
                    "description": "Whether to add call queue information into `P-Asserted-Identity` header.\n"
                  },
                  "enable_prid": {
                    "type": "boolean",
                    "default": false,
                    "description": "Whether to add call queue information into `Remote-Party-ID` header.\n"
                  },
                  "enable_night_mode": {
                    "type": "boolean",
                    "default": false,
                    "description": "Whether to enable night mode.\n"
                  },
                  "extension_number_as_to_header": {
                    "type": "boolean",
                    "default": false,
                    "description": "Whether to user extension number as invite `To` header.\n"
                  },
                  "play_periodic_music": {
                    "type": "boolean",
                    "default": false,
                    "description": "Whether playing periodic announcement.\n"
                  },
                  "play_periodic_music_interval": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 10,
                    "maximum": 300,
                    "default": 30,
                    "description": "Time interval for playing periodic announcement, in seconds.\n"
                  },
                  "enable_wrap_up": {
                    "type": "boolean",
                    "default": false,
                    "description": "Whether to enable Wrap-Up.\n"
                  },
                  "wrap_up_time": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 20,
                    "maximum": 3600,
                    "default": 60,
                    "description": "The Wrap-Up time, in seconds.\n"
                  },
                  "enable_exit_forward_rule": {
                    "type": "boolean",
                    "default": false,
                    "description": "Whether to enable queue exit option.\n"
                  },
                  "exit_forward_rule": {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "enum": [
                          "FORWARD_TO_NUMBER",
                          "FORWARD_TO_VOICEMAIL",
                          "HANGUP"
                        ],
                        "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`:\n- `FORWARD_TO_VOICEMAIL`:\n- `HANGUP`: finish call\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"
                      }
                    }
                  }
                },
                "required": [
                  "name",
                  "extension_number",
                  "polling_strategy"
                ]
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "name": null,
                    "extension_number": null,
                    "polling_strategy": null,
                    "ring_time": null,
                    "max_callers": null,
                    "moh_prompt_file_id": null,
                    "intro_type": null,
                    "intro_prompt_file_id": null,
                    "max_waiting_time": null,
                    "wait_when_no_agents_online": null,
                    "inform_position": null,
                    "inform_position_interval": null,
                    "agent_auto_ready": null,
                    "agent_auto_not_ready_after_non_acd_call": null,
                    "sla_time": null,
                    "language": null,
                    "no_answer_forward_rule": null,
                    "night_mode_forward_rule": null,
                    "enable_callback": null,
                    "callback_mode": null,
                    "callback_timeout": null,
                    "callback_outbound_prefix": null,
                    "outbound_caller_ids": null,
                    "enable_sticky_routing": null,
                    "sticky_routing_duration": null,
                    "enable_paid": null,
                    "enable_prid": null,
                    "enable_night_mode": null,
                    "extension_number_as_to_header": null,
                    "play_periodic_music": null,
                    "play_periodic_music_interval": null,
                    "enable_wrap_up": null,
                    "wrap_up_time": null,
                    "enable_exit_forward_rule": null,
                    "exit_forward_rule": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created call queue",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of call queue.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "The ID of created resource",
                    "value": {
                      "id": "xxxxxxxx"
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "get": {
        "tags": [
          "Call Queue"
        ],
        "operationId": "listQueues",
        "x-category": "call-features",
        "x-subcategory": "call-queues",
        "x-permissions": [
          "PhoneSystem.ViewOnly"
        ],
        "summary": "List call queues",
        "description": "Retrieve a collection of call queues\n",
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Use the `filter` query parameter to retrieve just a subset of a collection.\n"
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "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",
            "required": false,
            "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",
            "required": false,
            "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",
            "required": false,
            "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,
                      "example": 100,
                      "description": "Total number of resource.\n"
                    },
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "description": "The unique ID of call queue.\n"
                          },
                          "name": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 64,
                            "description": "The name of call queue.\n"
                          },
                          "extension_number": {
                            "allOf": [
                              {
                                "type": "string",
                                "minLength": 3,
                                "maxLength": 64,
                                "pattern": "[0-9]{3,64}",
                                "description": "The extension number.\n"
                              }
                            ],
                            "description": "The extension number of call queue.\n"
                          },
                          "polling_strategy": {
                            "type": "string",
                            "enum": [
                              "RING_SIMULTANEOUSLY",
                              "PRIORITIZED_HUNT",
                              "CYCLIC_HUNT",
                              "LEAST_WORKED_HUNT",
                              "SKILL_BASED_ROUTING_PRIORITIZED_HUNT",
                              "SKILL_BASED_ROUTING_CYCLIC_HUNT",
                              "SKILL_BASED_ROUTING_LEAST_WORKED_HUNT"
                            ],
                            "default": "RING_SIMULTANEOUSLY",
                            "description": "Polling strategy:   \nCan be either:   \n- `RING_SIMULTANEOUSLY`: Ring all available agents of the queue simultaneously.\n- `PRIORITIZED_HUNT`: Ring each available agent of the queue serially in the configured order.\n- `CYCLIC_HUNT`: Ring each available agent of the queue serially, \n    ring the agent that hasn't been rang from a call from this queue in the longest amount of time first.\n- `LEAST_WORKED_HUNT`: Ring each available agent of the queue serially, \n    ring the agent that hasn't answered a call from this queue in the longest amount of time first.\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 agent of the queue 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 agent of the queue serially,   \n    ring the agent that hasn't been rang from a call from this queue 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 agent of the queue serially,   \n    ring the agent that hasn't answered a call from this queue in the longest amount of time first.\n"
                          },
                          "ring_time": {
                            "type": "integer",
                            "format": "int32",
                            "minimum": 1,
                            "maximum": 65535,
                            "default": 20,
                            "description": "Duration that each extension will ring, in seconds.\n"
                          },
                          "max_callers": {
                            "type": "integer",
                            "format": "int32",
                            "minimum": 0,
                            "description": "The maximum number of callers allowed in queue.\n"
                          },
                          "moh_prompt_file_name": {
                            "type": "string",
                            "description": "The name of the file.\n"
                          },
                          "moh_prompt_file_size": {
                            "type": "integer",
                            "format": "int64",
                            "minimum": 0,
                            "example": 0,
                            "description": "The file size in bytes.\n"
                          },
                          "moh_prompt_file_url": {
                            "type": "string",
                            "readOnly": true,
                            "example": "/api/blobs/WexWdABcd5D4PDgzTKV3gAAAEu00WcK",
                            "description": "The relative path to file url for file downloading.\n"
                          },
                          "intro_type": {
                            "type": "string",
                            "enum": [
                              "DISABLE",
                              "NORMAL",
                              "FULL"
                            ],
                            "default": "DISABLE",
                            "description": "Introductory tone:\n- `DISABLE`: disable introductory tone\n- `NORMAL`: play normal introductory tone.\n- `FULL`: play full introductory tone.\n"
                          },
                          "intro_prompt_file_name": {
                            "type": "string",
                            "description": "The name of the file.\n"
                          },
                          "intro_prompt_file_size": {
                            "type": "integer",
                            "format": "int64",
                            "minimum": 0,
                            "example": 0,
                            "description": "The file size in bytes.\n"
                          },
                          "intro_prompt_file_url": {
                            "type": "string",
                            "readOnly": true,
                            "example": "/api/blobs/WexWdABcd5D4PDgzTKV3gAAAEu00WcK",
                            "description": "The relative path to file url for file downloading.\n"
                          },
                          "max_waiting_time": {
                            "type": "integer",
                            "format": "int32",
                            "minimum": 15,
                            "maximum": 65535,
                            "default": 300,
                            "description": "The maximum time limit for waiting in the queue, in seconds. \nAfter this time interval, the call will be handled as pre-configured.\n"
                          },
                          "wait_when_no_agents_online": {
                            "type": "boolean",
                            "default": false,
                            "description": "Queue will waiting when no agent online.\n"
                          },
                          "inform_position": {
                            "type": "string",
                            "enum": [
                              "DISABLE",
                              "PERIODICALLY",
                              "ON_CONNECTED"
                            ],
                            "default": "DISABLE",
                            "description": "Queue will announce the actual position of the caller who's currently waiting in the queue.  \nCallback mode can be either:  \n- `DISABLE`: Disable informing waiting position.\n- `PERIODICALLY`: Inform waiting position periodically.\n- `ON_CONNECTED`: Inform waiting position once caller connected and then play periodically.\n"
                          },
                          "inform_position_interval": {
                            "type": "integer",
                            "format": "int32",
                            "minimum": 10,
                            "maximum": 1800,
                            "default": 10,
                            "description": "Time interval for repeating announcement of the waiting position, in seconds.   \nThis parameter will be available only if `inform_position` is `PERIODICALLY` or `ON_CONNECTED`.\n"
                          },
                          "agent_auto_ready": {
                            "type": "boolean",
                            "default": true,
                            "description": "Automatically set agent status to `Ready` \nafter logging in to a queue or completing a call (ACD call or non AC call).\n"
                          },
                          "agent_auto_not_ready_after_non_acd_call": {
                            "type": "boolean",
                            "default": true,
                            "description": "Automatically set agent status to `Not Ready` after completing a non-ACD call.   \nThis option will be ignored if `agent_auto_ready` is enabled.\n"
                          },
                          "sla_time": {
                            "type": "integer",
                            "format": "int32",
                            "minimum": 0,
                            "maximum": 65536,
                            "default": 0,
                            "description": "The SLA time of call queue in seconds.\n"
                          },
                          "language": {
                            "type": "string",
                            "example": "en-US",
                            "description": "BCP 47 Language Tags (The Internet Best Current Practices (BCP) for language tags).\nA language tag is composed of a sequence of one or more subtags such as language, region, variant and script subtags.\nWhen a language tag is comprised of more than one subtag, the subtag values are separated by the \"-\" character.\nYou will most commonly find language tags written with 2 subtags - language and region. For example: en-US.\n"
                          },
                          "no_answer_forward_rule": {
                            "type": "object",
                            "properties": {
                              "action": {
                                "type": "string",
                                "enum": [
                                  "FORWARD_TO_NUMBER",
                                  "FORWARD_TO_VOICEMAIL",
                                  "HANGUP"
                                ],
                                "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`:\n- `FORWARD_TO_VOICEMAIL`:\n- `HANGUP`: finish call\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",
                                  "HANGUP"
                                ],
                                "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`:\n- `FORWARD_TO_VOICEMAIL`:\n- `HANGUP`: finish call\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"
                              }
                            }
                          },
                          "enable_callback": {
                            "type": "boolean",
                            "default": false,
                            "description": "Enable callback feature or not.\n"
                          },
                          "callback_mode": {
                            "type": "string",
                            "enum": [
                              "ACTIVE",
                              "TIMEOUT"
                            ],
                            "default": "ACTIVE",
                            "description": "Callback mode includes:\n- `ACTIVE`: Triggered on user request (Press 3).\n- `TIMEOUT`: Offered to caller after timeout.\n"
                          },
                          "callback_timeout": {
                            "type": "integer",
                            "format": "int32",
                            "minimum": 0,
                            "default": 600,
                            "description": "Offered to caller after timeout in seconds.\n"
                          },
                          "callback_outbound_prefix": {
                            "type": "string",
                            "description": "Callback outbound prefix.\n"
                          },
                          "enable_sticky_routing": {
                            "type": "boolean",
                            "default": true,
                            "description": "When a customer calls the queue, \nif the customer has communicated with an agent before and the agent is currently in the ready state, \nthen this agent will have priority to answer the call.\n"
                          },
                          "sticky_routing_duration": {
                            "type": "integer",
                            "format": "int32",
                            "minimum": 1,
                            "maximum": 365,
                            "default": 30,
                            "description": "The duration of sticky routing in days.\n"
                          },
                          "enable_paid": {
                            "type": "boolean",
                            "default": false,
                            "description": "Whether to add call queue information into `P-Asserted-Identity` header.\n"
                          },
                          "enable_prid": {
                            "type": "boolean",
                            "default": false,
                            "description": "Whether to add call queue information into `Remote-Party-ID` header.\n"
                          },
                          "enable_night_mode": {
                            "type": "boolean",
                            "default": false,
                            "description": "Whether to enable night mode.\n"
                          },
                          "extension_number_as_to_header": {
                            "type": "boolean",
                            "default": false,
                            "description": "Whether to user extension number as invite `To` header.\n"
                          },
                          "play_periodic_music": {
                            "type": "boolean",
                            "default": false,
                            "description": "Whether playing periodic announcement.\n"
                          },
                          "play_periodic_music_interval": {
                            "type": "integer",
                            "format": "int32",
                            "minimum": 10,
                            "maximum": 300,
                            "default": 30,
                            "description": "Time interval for playing periodic announcement, in seconds.\n"
                          },
                          "enable_wrap_up": {
                            "type": "boolean",
                            "default": false,
                            "description": "Whether to enable Wrap-Up.\n"
                          },
                          "wrap_up_time": {
                            "type": "integer",
                            "format": "int32",
                            "minimum": 20,
                            "maximum": 3600,
                            "default": 60,
                            "description": "The Wrap-Up time, in seconds.\n"
                          },
                          "enable_exit_forward_rule": {
                            "type": "boolean",
                            "default": false,
                            "description": "Whether to enable queue exit option.\n"
                          },
                          "exit_forward_rule": {
                            "type": "object",
                            "properties": {
                              "action": {
                                "type": "string",
                                "enum": [
                                  "FORWARD_TO_NUMBER",
                                  "FORWARD_TO_VOICEMAIL",
                                  "HANGUP"
                                ],
                                "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`:\n- `FORWARD_TO_VOICEMAIL`:\n- `HANGUP`: finish call\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"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": null,
                          "name": null,
                          "extension_number": null,
                          "polling_strategy": null,
                          "ring_time": null,
                          "max_callers": null,
                          "moh_prompt_file_name": null,
                          "moh_prompt_file_size": null,
                          "moh_prompt_file_url": null,
                          "intro_type": null,
                          "intro_prompt_file_name": null,
                          "intro_prompt_file_size": null,
                          "intro_prompt_file_url": null,
                          "max_waiting_time": null,
                          "wait_when_no_agents_online": null,
                          "inform_position": null,
                          "inform_position_interval": null,
                          "agent_auto_ready": null,
                          "agent_auto_not_ready_after_non_acd_call": null,
                          "sla_time": null,
                          "language": null,
                          "no_answer_forward_rule": null,
                          "night_mode_forward_rule": null,
                          "enable_callback": null,
                          "callback_mode": null,
                          "callback_timeout": null,
                          "callback_outbound_prefix": null,
                          "enable_sticky_routing": null,
                          "sticky_routing_duration": null,
                          "enable_paid": null,
                          "enable_prid": null,
                          "enable_night_mode": null,
                          "extension_number_as_to_header": null,
                          "play_periodic_music": null,
                          "play_periodic_music_interval": null,
                          "enable_wrap_up": null,
                          "wrap_up_time": null,
                          "enable_exit_forward_rule": null,
                          "exit_forward_rule": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/call_queues/{id}/agents/status/get_many": {
      "post": {
        "tags": [
          "Call Queue"
        ],
        "operationId": "bulkGetCallQueueAgentsStatus",
        "x-category": "call-features",
        "x-subcategory": "call-queues",
        "x-permissions": [
          "PhoneSystem.ViewOnly"
        ],
        "summary": "Bulk retrieve call queue agents status",
        "description": "Bulk retrieve call queue agents status.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of call queue.\n"
            },
            "description": "The unique ID of the call queue."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "items": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 3,
                      "maxLength": 64,
                      "pattern": "[0-9]{3,64}",
                      "description": "The extension number.\n"
                    },
                    "description": "The extension number of the agent."
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "items": [
                      "101",
                      "102"
                    ]
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "enum": [
                          "READY",
                          "NOT_READY",
                          "QUEUE_CALL",
                          "OTHER_CALL",
                          "WRAP_UP",
                          "BREAK",
                          "LUNCH",
                          "LOGGED_OUT",
                          "OFFLINE"
                        ],
                        "readOnly": true,
                        "description": "Current status of agent: \n- `READY`:  \n- `NOT_READY`:  \n- `QUEUE_CALL`:  \n- `OTHER_CALL`:  \n- `WRAP_UP`:  \n- `BREAK`:  \n- `LUNCH`:  \n- `TRANSFER`:   \n- `CONSULT_TRANSFER`:   \n- `ON_HOLD`:   \n- `LOGGED_OUT`:  \n- `OFFLINE`:\n"
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "items": [
                        "101",
                        "102"
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/call_queues/{id}": {
      "get": {
        "tags": [
          "Call Queue"
        ],
        "operationId": "showQueue",
        "x-category": "call-features",
        "x-subcategory": "call-queues",
        "x-permissions": [
          "PhoneSystem.ViewOnly"
        ],
        "summary": "Retrieve a call queue",
        "description": "Retrieve call queue\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of call queue.\n"
            },
            "description": "The unique ID of the call queue."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of call queue.\n"
                    },
                    "name": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64,
                      "description": "The name of call queue.\n"
                    },
                    "extension_number": {
                      "allOf": [
                        {
                          "type": "string",
                          "minLength": 3,
                          "maxLength": 64,
                          "pattern": "[0-9]{3,64}",
                          "description": "The extension number.\n"
                        }
                      ],
                      "description": "The extension number of call queue.\n"
                    },
                    "polling_strategy": {
                      "type": "string",
                      "enum": [
                        "RING_SIMULTANEOUSLY",
                        "PRIORITIZED_HUNT",
                        "CYCLIC_HUNT",
                        "LEAST_WORKED_HUNT",
                        "SKILL_BASED_ROUTING_PRIORITIZED_HUNT",
                        "SKILL_BASED_ROUTING_CYCLIC_HUNT",
                        "SKILL_BASED_ROUTING_LEAST_WORKED_HUNT"
                      ],
                      "default": "RING_SIMULTANEOUSLY",
                      "description": "Polling strategy:   \nCan be either:   \n- `RING_SIMULTANEOUSLY`: Ring all available agents of the queue simultaneously.\n- `PRIORITIZED_HUNT`: Ring each available agent of the queue serially in the configured order.\n- `CYCLIC_HUNT`: Ring each available agent of the queue serially, \n    ring the agent that hasn't been rang from a call from this queue in the longest amount of time first.\n- `LEAST_WORKED_HUNT`: Ring each available agent of the queue serially, \n    ring the agent that hasn't answered a call from this queue in the longest amount of time first.\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 agent of the queue 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 agent of the queue serially,   \n    ring the agent that hasn't been rang from a call from this queue 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 agent of the queue serially,   \n    ring the agent that hasn't answered a call from this queue in the longest amount of time first.\n"
                    },
                    "ring_time": {
                      "type": "integer",
                      "format": "int32",
                      "minimum": 1,
                      "maximum": 65535,
                      "default": 20,
                      "description": "Duration that each extension will ring, in seconds.\n"
                    },
                    "max_callers": {
                      "type": "integer",
                      "format": "int32",
                      "minimum": 0,
                      "description": "The maximum number of callers allowed in queue.\n"
                    },
                    "moh_prompt_file_name": {
                      "type": "string",
                      "description": "The name of the file.\n"
                    },
                    "moh_prompt_file_size": {
                      "type": "integer",
                      "format": "int64",
                      "minimum": 0,
                      "example": 0,
                      "description": "The file size in bytes.\n"
                    },
                    "moh_prompt_file_url": {
                      "type": "string",
                      "readOnly": true,
                      "example": "/api/blobs/WexWdABcd5D4PDgzTKV3gAAAEu00WcK",
                      "description": "The relative path to file url for file downloading.\n"
                    },
                    "intro_type": {
                      "type": "string",
                      "enum": [
                        "DISABLE",
                        "NORMAL",
                        "FULL"
                      ],
                      "default": "DISABLE",
                      "description": "Introductory tone:\n- `DISABLE`: disable introductory tone\n- `NORMAL`: play normal introductory tone.\n- `FULL`: play full introductory tone.\n"
                    },
                    "intro_prompt_file_name": {
                      "type": "string",
                      "description": "The name of the file.\n"
                    },
                    "intro_prompt_file_size": {
                      "type": "integer",
                      "format": "int64",
                      "minimum": 0,
                      "example": 0,
                      "description": "The file size in bytes.\n"
                    },
                    "intro_prompt_file_url": {
                      "type": "string",
                      "readOnly": true,
                      "example": "/api/blobs/WexWdABcd5D4PDgzTKV3gAAAEu00WcK",
                      "description": "The relative path to file url for file downloading.\n"
                    },
                    "max_waiting_time": {
                      "type": "integer",
                      "format": "int32",
                      "minimum": 15,
                      "maximum": 65535,
                      "default": 300,
                      "description": "The maximum time limit for waiting in the queue, in seconds. \nAfter this time interval, the call will be handled as pre-configured.\n"
                    },
                    "wait_when_no_agents_online": {
                      "type": "boolean",
                      "default": false,
                      "description": "Queue will waiting when no agent online.\n"
                    },
                    "inform_position": {
                      "type": "string",
                      "enum": [
                        "DISABLE",
                        "PERIODICALLY",
                        "ON_CONNECTED"
                      ],
                      "default": "DISABLE",
                      "description": "Queue will announce the actual position of the caller who's currently waiting in the queue.  \nCallback mode can be either:  \n- `DISABLE`: Disable informing waiting position.\n- `PERIODICALLY`: Inform waiting position periodically.\n- `ON_CONNECTED`: Inform waiting position once caller connected and then play periodically.\n"
                    },
                    "inform_position_interval": {
                      "type": "integer",
                      "format": "int32",
                      "minimum": 10,
                      "maximum": 1800,
                      "default": 10,
                      "description": "Time interval for repeating announcement of the waiting position, in seconds.   \nThis parameter will be available only if `inform_position` is `PERIODICALLY` or `ON_CONNECTED`.\n"
                    },
                    "agent_auto_ready": {
                      "type": "boolean",
                      "default": true,
                      "description": "Automatically set agent status to `Ready` \nafter logging in to a queue or completing a call (ACD call or non AC call).\n"
                    },
                    "agent_auto_not_ready_after_non_acd_call": {
                      "type": "boolean",
                      "default": true,
                      "description": "Automatically set agent status to `Not Ready` after completing a non-ACD call.   \nThis option will be ignored if `agent_auto_ready` is enabled.\n"
                    },
                    "sla_time": {
                      "type": "integer",
                      "format": "int32",
                      "minimum": 0,
                      "maximum": 65536,
                      "default": 0,
                      "description": "The SLA time of call queue in seconds.\n"
                    },
                    "language": {
                      "type": "string",
                      "example": "en-US",
                      "description": "BCP 47 Language Tags (The Internet Best Current Practices (BCP) for language tags).\nA language tag is composed of a sequence of one or more subtags such as language, region, variant and script subtags.\nWhen a language tag is comprised of more than one subtag, the subtag values are separated by the \"-\" character.\nYou will most commonly find language tags written with 2 subtags - language and region. For example: en-US.\n"
                    },
                    "no_answer_forward_rule": {
                      "type": "object",
                      "properties": {
                        "action": {
                          "type": "string",
                          "enum": [
                            "FORWARD_TO_NUMBER",
                            "FORWARD_TO_VOICEMAIL",
                            "HANGUP"
                          ],
                          "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`:\n- `FORWARD_TO_VOICEMAIL`:\n- `HANGUP`: finish call\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",
                            "HANGUP"
                          ],
                          "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`:\n- `FORWARD_TO_VOICEMAIL`:\n- `HANGUP`: finish call\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"
                        }
                      }
                    },
                    "enable_callback": {
                      "type": "boolean",
                      "default": false,
                      "description": "Enable callback feature or not.\n"
                    },
                    "callback_mode": {
                      "type": "string",
                      "enum": [
                        "ACTIVE",
                        "TIMEOUT"
                      ],
                      "default": "ACTIVE",
                      "description": "Callback mode includes:\n- `ACTIVE`: Triggered on user request (Press 3).\n- `TIMEOUT`: Offered to caller after timeout.\n"
                    },
                    "callback_timeout": {
                      "type": "integer",
                      "format": "int32",
                      "minimum": 0,
                      "default": 600,
                      "description": "Offered to caller after timeout in seconds.\n"
                    },
                    "callback_outbound_prefix": {
                      "type": "string",
                      "description": "Callback outbound prefix.\n"
                    },
                    "outbound_caller_ids": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "provider_id": {
                            "allOf": [
                              {
                                "allOf": [
                                  {
                                    "type": "string",
                                    "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                    "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"
                    },
                    "enable_sticky_routing": {
                      "type": "boolean",
                      "default": true,
                      "description": "When a customer calls the queue, \nif the customer has communicated with an agent before and the agent is currently in the ready state, \nthen this agent will have priority to answer the call.\n"
                    },
                    "sticky_routing_duration": {
                      "type": "integer",
                      "format": "int32",
                      "minimum": 1,
                      "maximum": 365,
                      "default": 30,
                      "description": "The duration of sticky routing in days.\n"
                    },
                    "enable_paid": {
                      "type": "boolean",
                      "default": false,
                      "description": "Whether to add call queue information into `P-Asserted-Identity` header.\n"
                    },
                    "enable_prid": {
                      "type": "boolean",
                      "default": false,
                      "description": "Whether to add call queue information into `Remote-Party-ID` header.\n"
                    },
                    "enable_night_mode": {
                      "type": "boolean",
                      "default": false,
                      "description": "Whether to enable night mode.\n"
                    },
                    "extension_number_as_to_header": {
                      "type": "boolean",
                      "default": false,
                      "description": "Whether to user extension number as invite `To` header.\n"
                    },
                    "play_periodic_music": {
                      "type": "boolean",
                      "default": false,
                      "description": "Whether playing periodic announcement.\n"
                    },
                    "play_periodic_music_interval": {
                      "type": "integer",
                      "format": "int32",
                      "minimum": 10,
                      "maximum": 300,
                      "default": 30,
                      "description": "Time interval for playing periodic announcement, in seconds.\n"
                    },
                    "enable_wrap_up": {
                      "type": "boolean",
                      "default": false,
                      "description": "Whether to enable Wrap-Up.\n"
                    },
                    "wrap_up_time": {
                      "type": "integer",
                      "format": "int32",
                      "minimum": 20,
                      "maximum": 3600,
                      "default": 60,
                      "description": "The Wrap-Up time, in seconds.\n"
                    },
                    "enable_exit_forward_rule": {
                      "type": "boolean",
                      "default": false,
                      "description": "Whether to enable queue exit option.\n"
                    },
                    "exit_forward_rule": {
                      "type": "object",
                      "properties": {
                        "action": {
                          "type": "string",
                          "enum": [
                            "FORWARD_TO_NUMBER",
                            "FORWARD_TO_VOICEMAIL",
                            "HANGUP"
                          ],
                          "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`:\n- `FORWARD_TO_VOICEMAIL`:\n- `HANGUP`: finish call\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"
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "id": null,
                      "name": null,
                      "extension_number": null,
                      "polling_strategy": null,
                      "ring_time": null,
                      "max_callers": null,
                      "moh_prompt_file_name": null,
                      "moh_prompt_file_size": null,
                      "moh_prompt_file_url": null,
                      "intro_type": null,
                      "intro_prompt_file_name": null,
                      "intro_prompt_file_size": null,
                      "intro_prompt_file_url": null,
                      "max_waiting_time": null,
                      "wait_when_no_agents_online": null,
                      "inform_position": null,
                      "inform_position_interval": null,
                      "agent_auto_ready": null,
                      "agent_auto_not_ready_after_non_acd_call": null,
                      "sla_time": null,
                      "language": null,
                      "no_answer_forward_rule": null,
                      "night_mode_forward_rule": null,
                      "enable_callback": null,
                      "callback_mode": null,
                      "callback_timeout": null,
                      "callback_outbound_prefix": null,
                      "outbound_caller_ids": null,
                      "enable_sticky_routing": null,
                      "sticky_routing_duration": null,
                      "enable_paid": null,
                      "enable_prid": null,
                      "enable_night_mode": null,
                      "extension_number_as_to_header": null,
                      "play_periodic_music": null,
                      "play_periodic_music_interval": null,
                      "enable_wrap_up": null,
                      "wrap_up_time": null,
                      "enable_exit_forward_rule": null,
                      "exit_forward_rule": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "post": {
        "tags": [
          "Call Queue"
        ],
        "operationId": "updateQueue",
        "x-category": "call-features",
        "x-subcategory": "call-queues",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Update a call queue",
        "description": "Update call queue properties by it's unique ID.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of call queue.\n"
            },
            "description": "The unique ID of the call queue."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64,
                    "description": "The name of call queue.\n"
                  },
                  "polling_strategy": {
                    "type": "string",
                    "enum": [
                      "RING_SIMULTANEOUSLY",
                      "PRIORITIZED_HUNT",
                      "CYCLIC_HUNT",
                      "LEAST_WORKED_HUNT",
                      "SKILL_BASED_ROUTING_PRIORITIZED_HUNT",
                      "SKILL_BASED_ROUTING_CYCLIC_HUNT",
                      "SKILL_BASED_ROUTING_LEAST_WORKED_HUNT"
                    ],
                    "default": "RING_SIMULTANEOUSLY",
                    "description": "Polling strategy:   \nCan be either:   \n- `RING_SIMULTANEOUSLY`: Ring all available agents of the queue simultaneously.\n- `PRIORITIZED_HUNT`: Ring each available agent of the queue serially in the configured order.\n- `CYCLIC_HUNT`: Ring each available agent of the queue serially, \n    ring the agent that hasn't been rang from a call from this queue in the longest amount of time first.\n- `LEAST_WORKED_HUNT`: Ring each available agent of the queue serially, \n    ring the agent that hasn't answered a call from this queue in the longest amount of time first.\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 agent of the queue 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 agent of the queue serially,   \n    ring the agent that hasn't been rang from a call from this queue 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 agent of the queue serially,   \n    ring the agent that hasn't answered a call from this queue in the longest amount of time first.\n"
                  },
                  "ring_time": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 1,
                    "maximum": 65535,
                    "default": 20,
                    "description": "Duration that each extension will ring, in seconds.\n"
                  },
                  "max_callers": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 0,
                    "description": "The maximum number of callers allowed in queue.\n"
                  },
                  "moh_prompt_file_id": {
                    "allOf": [
                      {
                        "type": "string",
                        "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                        "description": "The unique ID of the resource.\n"
                      }
                    ],
                    "description": "The unique ID of the file.\n"
                  },
                  "intro_type": {
                    "type": "string",
                    "enum": [
                      "DISABLE",
                      "NORMAL",
                      "FULL"
                    ],
                    "default": "DISABLE",
                    "description": "Introductory tone:\n- `DISABLE`: disable introductory tone\n- `NORMAL`: play normal introductory tone.\n- `FULL`: play full introductory tone.\n"
                  },
                  "intro_prompt_file_id": {
                    "allOf": [
                      {
                        "type": "string",
                        "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                        "description": "The unique ID of the resource.\n"
                      }
                    ],
                    "description": "The unique ID of the file.\n"
                  },
                  "max_waiting_time": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 15,
                    "maximum": 65535,
                    "default": 300,
                    "description": "The maximum time limit for waiting in the queue, in seconds. \nAfter this time interval, the call will be handled as pre-configured.\n"
                  },
                  "wait_when_no_agents_online": {
                    "type": "boolean",
                    "default": false,
                    "description": "Queue will waiting when no agent online.\n"
                  },
                  "inform_position": {
                    "type": "string",
                    "enum": [
                      "DISABLE",
                      "PERIODICALLY",
                      "ON_CONNECTED"
                    ],
                    "default": "DISABLE",
                    "description": "Queue will announce the actual position of the caller who's currently waiting in the queue.  \nCallback mode can be either:  \n- `DISABLE`: Disable informing waiting position.\n- `PERIODICALLY`: Inform waiting position periodically.\n- `ON_CONNECTED`: Inform waiting position once caller connected and then play periodically.\n"
                  },
                  "inform_position_interval": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 10,
                    "maximum": 1800,
                    "default": 10,
                    "description": "Time interval for repeating announcement of the waiting position, in seconds.   \nThis parameter will be available only if `inform_position` is `PERIODICALLY` or `ON_CONNECTED`.\n"
                  },
                  "agent_auto_ready": {
                    "type": "boolean",
                    "default": true,
                    "description": "Automatically set agent status to `Ready` \nafter logging in to a queue or completing a call (ACD call or non AC call).\n"
                  },
                  "agent_auto_not_ready_after_non_acd_call": {
                    "type": "boolean",
                    "default": true,
                    "description": "Automatically set agent status to `Not Ready` after completing a non-ACD call.   \nThis option will be ignored if `agent_auto_ready` is enabled.\n"
                  },
                  "sla_time": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 0,
                    "maximum": 65536,
                    "default": 0,
                    "description": "The SLA time of call queue in seconds.\n"
                  },
                  "language": {
                    "type": "string",
                    "example": "en-US",
                    "description": "BCP 47 Language Tags (The Internet Best Current Practices (BCP) for language tags).\nA language tag is composed of a sequence of one or more subtags such as language, region, variant and script subtags.\nWhen a language tag is comprised of more than one subtag, the subtag values are separated by the \"-\" character.\nYou will most commonly find language tags written with 2 subtags - language and region. For example: en-US.\n"
                  },
                  "no_answer_forward_rule": {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "enum": [
                          "FORWARD_TO_NUMBER",
                          "FORWARD_TO_VOICEMAIL",
                          "HANGUP"
                        ],
                        "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`:\n- `FORWARD_TO_VOICEMAIL`:\n- `HANGUP`: finish call\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",
                          "HANGUP"
                        ],
                        "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`:\n- `FORWARD_TO_VOICEMAIL`:\n- `HANGUP`: finish call\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"
                      }
                    }
                  },
                  "enable_callback": {
                    "type": "boolean",
                    "default": false,
                    "description": "Enable callback feature or not.\n"
                  },
                  "callback_mode": {
                    "type": "string",
                    "enum": [
                      "ACTIVE",
                      "TIMEOUT"
                    ],
                    "default": "ACTIVE",
                    "description": "Callback mode includes:\n- `ACTIVE`: Triggered on user request (Press 3).\n- `TIMEOUT`: Offered to caller after timeout.\n"
                  },
                  "callback_timeout": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 0,
                    "default": 600,
                    "description": "Offered to caller after timeout in seconds.\n"
                  },
                  "callback_outbound_prefix": {
                    "type": "string",
                    "description": "Callback outbound prefix.\n"
                  },
                  "outbound_caller_ids": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "provider_id": {
                          "allOf": [
                            {
                              "allOf": [
                                {
                                  "type": "string",
                                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                  "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"
                  },
                  "enable_sticky_routing": {
                    "type": "boolean",
                    "default": true,
                    "description": "When a customer calls the queue, \nif the customer has communicated with an agent before and the agent is currently in the ready state, \nthen this agent will have priority to answer the call.\n"
                  },
                  "sticky_routing_duration": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 1,
                    "maximum": 365,
                    "default": 30,
                    "description": "The duration of sticky routing in days.\n"
                  },
                  "enable_paid": {
                    "type": "boolean",
                    "default": false,
                    "description": "Whether to add call queue information into `P-Asserted-Identity` header.\n"
                  },
                  "enable_prid": {
                    "type": "boolean",
                    "default": false,
                    "description": "Whether to add call queue information into `Remote-Party-ID` header.\n"
                  },
                  "enable_night_mode": {
                    "type": "boolean",
                    "default": false,
                    "description": "Whether to enable night mode.\n"
                  },
                  "extension_number_as_to_header": {
                    "type": "boolean",
                    "default": false,
                    "description": "Whether to user extension number as invite `To` header.\n"
                  },
                  "play_periodic_music": {
                    "type": "boolean",
                    "default": false,
                    "description": "Whether playing periodic announcement.\n"
                  },
                  "play_periodic_music_interval": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 10,
                    "maximum": 300,
                    "default": 30,
                    "description": "Time interval for playing periodic announcement, in seconds.\n"
                  },
                  "enable_wrap_up": {
                    "type": "boolean",
                    "default": false,
                    "description": "Whether to enable Wrap-Up.\n"
                  },
                  "wrap_up_time": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 20,
                    "maximum": 3600,
                    "default": 60,
                    "description": "The Wrap-Up time, in seconds.\n"
                  },
                  "enable_exit_forward_rule": {
                    "type": "boolean",
                    "default": false,
                    "description": "Whether to enable queue exit option.\n"
                  },
                  "exit_forward_rule": {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "enum": [
                          "FORWARD_TO_NUMBER",
                          "FORWARD_TO_VOICEMAIL",
                          "HANGUP"
                        ],
                        "description": "Forward action includes:\n- `FORWARD_TO_NUMBER`:\n- `FORWARD_TO_VOICEMAIL`:\n- `HANGUP`: finish call\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"
                      }
                    }
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "name": null,
                    "polling_strategy": null,
                    "ring_time": null,
                    "max_callers": null,
                    "moh_prompt_file_id": null,
                    "intro_type": null,
                    "intro_prompt_file_id": null,
                    "max_waiting_time": null,
                    "wait_when_no_agents_online": null,
                    "inform_position": null,
                    "inform_position_interval": null,
                    "agent_auto_ready": null,
                    "agent_auto_not_ready_after_non_acd_call": null,
                    "sla_time": null,
                    "language": null,
                    "no_answer_forward_rule": null,
                    "night_mode_forward_rule": null,
                    "enable_callback": null,
                    "callback_mode": null,
                    "callback_timeout": null,
                    "callback_outbound_prefix": null,
                    "outbound_caller_ids": null,
                    "enable_sticky_routing": null,
                    "sticky_routing_duration": null,
                    "enable_paid": null,
                    "enable_prid": null,
                    "enable_night_mode": null,
                    "extension_number_as_to_header": null,
                    "play_periodic_music": null,
                    "play_periodic_music_interval": null,
                    "enable_wrap_up": null,
                    "wrap_up_time": null,
                    "enable_exit_forward_rule": null,
                    "exit_forward_rule": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/call_queues/{id}/status": {
      "get": {
        "tags": [
          "Call Queue"
        ],
        "operationId": "getQueueStatus",
        "x-category": "call-features",
        "x-subcategory": "call-queues",
        "x-permissions": [
          "PhoneSystem.ViewOnly"
        ],
        "summary": "Query call queue's status",
        "description": "Query call queue's status by it's unique ID.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of call queue.\n"
            },
            "description": "The unique ID of the call queue."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "enum": [
                        "ONLINE",
                        "OFFLINE"
                      ],
                      "example": "ONLINE",
                      "description": "Status of queue:\n- `ONLINE`:\n- `OFFLINE`:\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "status": "ONLINE"
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/call_queues/{id}/destroy": {
      "post": {
        "tags": [
          "Call Queue"
        ],
        "operationId": "deleteQueue",
        "x-category": "call-features",
        "x-subcategory": "call-queues",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Delete a call queue",
        "description": "Destroy call queue\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of call queue.\n"
            },
            "description": "The unique ID of the call queue."
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Invalid call queue ID supplied"
          },
          "404": {
            "description": "User not found"
          }
        }
      }
    },
    "/call_queues/{id}/waiting": {
      "get": {
        "tags": [
          "Call Queue"
        ],
        "operationId": "getQueueWaitingList",
        "x-category": "call-features",
        "x-subcategory": "call-queues",
        "x-permissions": [
          "PhoneSystem.ViewOnly"
        ],
        "summary": "List caller sequence of a call queue",
        "description": "Retrieve a collection of call queue's waiting sequence\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of call queue.\n"
            },
            "description": "The unique ID of the call queue."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "session_id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "description": "The unique ID of session in call queue.\n"
                          },
                          "extension_number": {
                            "type": "string",
                            "minLength": 3,
                            "maxLength": 64,
                            "pattern": "[0-9]{3,64}",
                            "description": "The extension number.\n"
                          },
                          "display_name": {
                            "type": "string",
                            "description": "The display name of caller.\n"
                          },
                          "waiting_time": {
                            "type": "integer",
                            "format": "uint32",
                            "description": "The waiting time (seconds) of caller in the queue.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "items": [
                        {
                          "session_id": null,
                          "extension_number": null,
                          "display_name": null,
                          "waiting_time": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/call_queues/{id}/waiting/{session_id}/pickup": {
      "post": {
        "tags": [
          "Call Queue"
        ],
        "operationId": "pickupQueueWaiting",
        "x-category": "call-features",
        "x-subcategory": "call-queues",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Answer specified call",
        "description": "Call queue Answer specified call\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of call queue.\n"
            },
            "description": "The unique ID of the call queue."
          },
          {
            "name": "session_id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of session in call queue.\n"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/call_queues/{id}/agents": {
      "get": {
        "tags": [
          "Call Queue"
        ],
        "operationId": "listQueueAgents",
        "x-category": "call-features",
        "x-subcategory": "call-queues",
        "x-permissions": [
          "PhoneSystem.ViewOnly"
        ],
        "summary": "List call queue agents",
        "description": "Retrieve a collection of call queue agents.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of call queue.\n"
            },
            "description": "The unique ID of the call queue."
          }
        ],
        "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"
                              }
                            ],
                            "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 queue.   \nOnly valid when `polling_strategy` is skill based.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "items": [
                        {
                          "extension_number": null,
                          "display_name": null,
                          "skill_level": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "post": {
        "tags": [
          "Call Queue"
        ],
        "operationId": "updateQueueAgentList",
        "x-category": "call-features",
        "x-subcategory": "call-queues",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Update call queue agent list",
        "description": "Update call queue agent list.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of call queue.\n"
            },
            "description": "The unique ID of call queue."
          }
        ],
        "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"
                        },
                        "skill_level": {
                          "type": "integer",
                          "format": "int32",
                          "minimum": 1,
                          "maximum": 100,
                          "default": 1,
                          "description": "The skill level of agent in queue.   \nOnly valid when `polling_strategy` is skill based.\n"
                        }
                      }
                    },
                    "description": "Collection of agents.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "items": [
                      {
                        "extension_number": null,
                        "skill_level": null
                      }
                    ]
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/call_queues/{id}/agents/{agent_number}": {
      "get": {
        "tags": [
          "Call Queue"
        ],
        "operationId": "showQueueAgent",
        "x-category": "call-features",
        "x-subcategory": "call-queues",
        "x-permissions": [
          "PhoneSystem.ViewOnly"
        ],
        "summary": "Retrieve call queue agent",
        "description": "Retrieve information of call queue agent.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of call queue.\n"
            },
            "description": "The unique ID of the call queue."
          },
          {
            "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"
                        }
                      ],
                      "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 queue.   \nOnly valid when `polling_strategy` is skill based.\n"
                    },
                    "status": {
                      "type": "string",
                      "enum": [
                        "READY",
                        "NOT_READY",
                        "QUEUE_CALL",
                        "OTHER_CALL",
                        "WRAP_UP",
                        "BREAK",
                        "LUNCH",
                        "LOGGED_OUT",
                        "OFFLINE"
                      ],
                      "readOnly": true,
                      "description": "Current status of agent: \n- `READY`:  \n- `NOT_READY`:  \n- `QUEUE_CALL`:  \n- `OTHER_CALL`:  \n- `WRAP_UP`:  \n- `BREAK`:  \n- `LUNCH`:  \n- `TRANSFER`:   \n- `CONSULT_TRANSFER`:   \n- `ON_HOLD`:   \n- `LOGGED_OUT`:  \n- `OFFLINE`:\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "extension_number": null,
                      "display_name": null,
                      "skill_level": null,
                      "status": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "post": {
        "tags": [
          "Call Queue"
        ],
        "operationId": "setQueueAgentStatus",
        "x-category": "call-features",
        "x-subcategory": "call-queues",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Set call queue agent status",
        "description": "Set call queue agent status.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of call queue.\n"
            },
            "description": "The unique ID of call queue."
          },
          {
            "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."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "status": {
                    "type": "string",
                    "enum": [
                      "READY",
                      "NOT_READY",
                      "WRAP_UP",
                      "LOGGED_IN",
                      "LOGGED_OUT"
                    ],
                    "example": "READY",
                    "description": "Change call queue agent status to one of the following: \n- `READY`:  \n- `NOT_READY`:  \n- `WRAP_UP`:  \n- `LOGGED_IN`:   \n- `LOGGED_OUT`:\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "status": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/exclusive_numbers": {
      "post": {
        "tags": [
          "CTI"
        ],
        "operationId": "createExclusiveNumber",
        "x-category": "contact-center",
        "x-subcategory": "dedicated-numbers",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Create exclusive number",
        "description": "Add a new exclusive number\n",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "number": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64,
                    "description": "The telephone number.\n"
                  },
                  "enabled": {
                    "type": "boolean",
                    "default": true,
                    "description": "Enable the exclusive number or not.\n"
                  },
                  "description": {
                    "type": "string",
                    "maxLength": 1024,
                    "description": "Exclusive number's description.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "number": null,
                    "enabled": null,
                    "description": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                      "description": "The unique ID of the resource.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "The ID of created resource",
                    "value": {
                      "id": "xxxxxxxx"
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "get": {
        "tags": [
          "CTI"
        ],
        "operationId": "listExclusiveNumbers",
        "x-category": "contact-center",
        "x-subcategory": "dedicated-numbers",
        "x-permissions": [
          "PhoneSystem.ViewOnly"
        ],
        "summary": "List exclusive numbers",
        "description": "Get a collection of exclusive numbers\n",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "count": {
                      "type": "integer",
                      "format": "int64",
                      "minimum": 0,
                      "example": 100,
                      "description": "Total number of resource.\n"
                    },
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "description": "The unique ID of exclusive number.\n"
                          },
                          "number": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 64,
                            "description": "The telephone number.\n"
                          },
                          "created_at": {
                            "allOf": [
                              {
                                "type": "string",
                                "format": "date_time",
                                "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                                "example": "2017-07-21T17:32:28Z"
                              }
                            ],
                            "description": "Exclusive number created at this time.\n"
                          },
                          "enabled": {
                            "type": "boolean",
                            "default": true,
                            "description": "Enable the exclusive number or not.\n"
                          },
                          "description": {
                            "type": "string",
                            "maxLength": 1024,
                            "description": "Exclusive number's description.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": null,
                          "number": null,
                          "created_at": null,
                          "enabled": null,
                          "description": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/exclusive_numbers/{id}": {
      "get": {
        "tags": [
          "CTI"
        ],
        "operationId": "showExclusiveNumber",
        "x-category": "contact-center",
        "x-subcategory": "dedicated-numbers",
        "x-permissions": [
          "PhoneSystem.ViewOnly"
        ],
        "summary": "Retrieve a exclusive number",
        "description": "Get details of a exclusive number\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of exclusive number.\n"
            },
            "description": "The unique ID of the exclusive number."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of exclusive number.\n"
                    },
                    "number": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64,
                      "description": "The telephone number.\n"
                    },
                    "created_at": {
                      "allOf": [
                        {
                          "type": "string",
                          "format": "date_time",
                          "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                          "example": "2017-07-21T17:32:28Z"
                        }
                      ],
                      "description": "Exclusive number created at this time.\n"
                    },
                    "enabled": {
                      "type": "boolean",
                      "default": true,
                      "description": "Enable the exclusive number or not.\n"
                    },
                    "description": {
                      "type": "string",
                      "maxLength": 1024,
                      "description": "Exclusive number's description.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "id": null,
                      "number": null,
                      "created_at": null,
                      "enabled": null,
                      "description": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "post": {
        "tags": [
          "CTI"
        ],
        "operationId": "updateExclusiveNumber",
        "x-category": "contact-center",
        "x-subcategory": "dedicated-numbers",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Update exclusive number",
        "description": "Update properties of a exclusive number.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of exclusive number.\n"
            },
            "description": "The unique ID of the exclusive number."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "number": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64,
                    "description": "The telephone number.\n"
                  },
                  "enabled": {
                    "type": "boolean",
                    "default": true,
                    "description": "Enable the exclusive number or not.\n"
                  },
                  "description": {
                    "type": "string",
                    "maxLength": 1024,
                    "description": "Exclusive number's description.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "number": null,
                    "enabled": null,
                    "description": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/exclusive_numbers/{id}/destroy": {
      "post": {
        "tags": [
          "CTI"
        ],
        "operationId": "deleteExclusiveNumber",
        "x-category": "contact-center",
        "x-subcategory": "dedicated-numbers",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Delete exclusive number",
        "description": "Destroy a exclusive number by it's unique ID.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of exclusive number.\n"
            },
            "description": "The unique ID of the call queue exclusive number."
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/exclusive_numbers/{id}/call_queues": {
      "get": {
        "tags": [
          "CTI"
        ],
        "operationId": "listExclusiveNumberCallQueues",
        "x-category": "contact-center",
        "x-subcategory": "dedicated-numbers",
        "x-permissions": [
          "PhoneSystem.ViewOnly"
        ],
        "summary": "List call queues of exclusive number",
        "description": "Get a collection of call queues where exclusive number is located.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of exclusive number.\n"
            },
            "description": "The unique ID the exclusive number."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "description": "The unique ID of call queue.\n"
                          },
                          "name": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 64,
                            "description": "The name of call queue.\n"
                          },
                          "extension_number": {
                            "type": "string",
                            "minLength": 3,
                            "maxLength": 64,
                            "pattern": "[0-9]{3,64}",
                            "description": "The extension number.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "items": [
                        {
                          "id": null,
                          "name": null,
                          "extension_number": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/exclusive_numbers/{id}/call_queues/{queue_id}/agents": {
      "post": {
        "tags": [
          "CTI"
        ],
        "operationId": "setAgentsForExclusiveNumber",
        "x-category": "contact-center",
        "x-subcategory": "dedicated-numbers",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Set agents for exclusive number",
        "description": "Set agents for exclusive number.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of exclusive number.\n"
            },
            "description": "The unique ID the exclusive number."
          },
          {
            "name": "queue_id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of call queue.\n"
            },
            "description": "The unique ID the call queue."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "items": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 3,
                      "maxLength": 64,
                      "pattern": "[0-9]{3,64}",
                      "description": "The extension number.\n"
                    },
                    "description": "A collection of call queue agent extension numbers.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "items": [
                      "101",
                      "102"
                    ]
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "get": {
        "tags": [
          "CTI"
        ],
        "operationId": "listAgentsOfExclusiveNumberInQueue",
        "x-category": "contact-center",
        "x-subcategory": "dedicated-numbers",
        "x-permissions": [
          "PhoneSystem.ViewOnly"
        ],
        "summary": "List agents in call queue for exclusive number",
        "description": "Get a collection of agent extension numbers in call queue for exclusive number.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of exclusive number.\n"
            },
            "description": "The unique ID the exclusive number."
          },
          {
            "name": "queue_id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of call queue.\n"
            },
            "description": "The unique ID the call queue."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "description": "The unique ID of user.\n"
                          },
                          "name": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 64,
                            "description": "The user's account name.   \nOnly letters, numbers, and the following special characters can be added: underscore, dash, single quote, and period (_, -, ', and .).   \nUsername cannot start or end with period (.).   \n`admin`, `system`, `administrator`, and `root` are reserved names for system admin only with case ignored.\n"
                          },
                          "display_name": {
                            "type": "string",
                            "maxLength": 1024,
                            "description": "The display name of user.\n"
                          },
                          "extension_number": {
                            "type": "string",
                            "minLength": 3,
                            "maxLength": 64,
                            "pattern": "[0-9]{3,64}",
                            "description": "The extension number.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "items": [
                        {
                          "id": null,
                          "name": null,
                          "display_name": null,
                          "extension_number": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/exclusive_numbers/{id}/call_queues/{queue_id}/destroy": {
      "post": {
        "tags": [
          "CTI"
        ],
        "operationId": "removeAllAgentsOfQueueForExclusiveNumber",
        "x-category": "contact-center",
        "x-subcategory": "dedicated-numbers",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Remove all agents of call queue for exclusive number",
        "description": "Remove all agents of call queue for exclusive number.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of exclusive number.\n"
            },
            "description": "The unique ID the exclusive number."
          },
          {
            "name": "queue_id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of call queue.\n"
            },
            "description": "The unique ID the call queue."
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/exclusive_numbers/export": {
      "get": {
        "tags": [
          "CTI"
        ],
        "operationId": "exportExclusiveNumbers",
        "x-category": "contact-center",
        "x-subcategory": "dedicated-numbers",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Export exclusive numbers",
        "description": "Export a collection of number blacklists to file.\n",
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "Content-Disposition": {
                "schema": {
                  "type": "string"
                },
                "description": "the format is `attachment; filename=\"example\"`"
              }
            },
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/vip_numbers": {
      "post": {
        "tags": [
          "CTI"
        ],
        "operationId": "CreateVipNumber",
        "x-category": "contact-center",
        "x-subcategory": "vip-numbers",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Add VIP number",
        "description": "Create a new VIP number.\n",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "number": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64,
                    "pattern": "[0-9+]{1,64}",
                    "description": "The VIP number, a string value contains a valid telephone number.\n"
                  },
                  "longitude": {
                    "type": "string",
                    "description": "VIP number's longitude.\n"
                  },
                  "latitude": {
                    "type": "string",
                    "description": "VIP number's latitude.\n"
                  },
                  "address": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The address.\n"
                  },
                  "expire_at": {
                    "allOf": [
                      {
                        "type": "string",
                        "format": "date_time",
                        "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                        "example": "2017-07-21T17:32:28Z"
                      }
                    ],
                    "description": "VIP number's expire time.\n"
                  },
                  "enabled": {
                    "type": "boolean",
                    "description": "Enable the VIP number or not.\n"
                  },
                  "description": {
                    "type": "string",
                    "maxLength": 1024,
                    "description": "VIP number's description.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "number": null,
                    "longitude": null,
                    "latitude": null,
                    "address": null,
                    "expire_at": null,
                    "enabled": null,
                    "description": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of VIP number.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "The ID of created resource",
                    "value": {
                      "id": "xxxxxxxx"
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "get": {
        "tags": [
          "CTI"
        ],
        "operationId": "listVipNumbers",
        "x-category": "contact-center",
        "x-subcategory": "vip-numbers",
        "x-permissions": [
          "PhoneSystem.ViewOnly"
        ],
        "summary": "List VIP numbers",
        "description": "Get a collection of VIP numbers.\n",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "count": {
                      "type": "integer",
                      "format": "int64",
                      "minimum": 0,
                      "example": 100,
                      "description": "Total number of resource.\n"
                    },
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "description": "The unique ID of VIP number.\n"
                          },
                          "number": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 64,
                            "pattern": "[0-9+]{1,64}",
                            "description": "The VIP number, a string value contains a valid telephone number.\n"
                          },
                          "longitude": {
                            "type": "string",
                            "description": "VIP number's longitude.\n"
                          },
                          "latitude": {
                            "type": "string",
                            "description": "VIP number's latitude.\n"
                          },
                          "address": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The address.\n"
                          },
                          "created_at": {
                            "allOf": [
                              {
                                "type": "string",
                                "format": "date_time",
                                "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                                "example": "2017-07-21T17:32:28Z"
                              }
                            ],
                            "description": "Exclusive number created at this time.\n"
                          },
                          "updated_at": {
                            "allOf": [
                              {
                                "type": "string",
                                "format": "date_time",
                                "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                                "example": "2017-07-21T17:32:28Z"
                              }
                            ],
                            "description": "VIP number's modified time.\n"
                          },
                          "expire_at": {
                            "allOf": [
                              {
                                "type": "string",
                                "format": "date_time",
                                "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                                "example": "2017-07-21T17:32:28Z"
                              }
                            ],
                            "description": "VIP number's expire time.\n"
                          },
                          "enabled": {
                            "type": "boolean",
                            "description": "Enable the VIP number or not.\n"
                          },
                          "description": {
                            "type": "string",
                            "maxLength": 1024,
                            "description": "VIP number's description.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": null,
                          "number": null,
                          "longitude": null,
                          "latitude": null,
                          "address": null,
                          "created_at": null,
                          "updated_at": null,
                          "expire_at": null,
                          "enabled": null,
                          "description": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/vip_numbers/{id}": {
      "get": {
        "tags": [
          "CTI"
        ],
        "operationId": "showVipNumber",
        "x-category": "contact-center",
        "x-subcategory": "vip-numbers",
        "x-permissions": [
          "PhoneSystem.ViewOnly"
        ],
        "summary": "Retrieve VIP number",
        "description": "Get details of the VIP number.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of VIP number.\n"
            },
            "description": "The unique ID of the VIP number."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of VIP number.\n"
                    },
                    "number": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64,
                      "pattern": "[0-9+]{1,64}",
                      "description": "The VIP number, a string value contains a valid telephone number.\n"
                    },
                    "longitude": {
                      "type": "string",
                      "description": "VIP number's longitude.\n"
                    },
                    "latitude": {
                      "type": "string",
                      "description": "VIP number's latitude.\n"
                    },
                    "address": {
                      "type": "string",
                      "maxLength": 128,
                      "description": "The address.\n"
                    },
                    "created_at": {
                      "allOf": [
                        {
                          "type": "string",
                          "format": "date_time",
                          "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                          "example": "2017-07-21T17:32:28Z"
                        }
                      ],
                      "description": "Exclusive number created at this time.\n"
                    },
                    "updated_at": {
                      "allOf": [
                        {
                          "type": "string",
                          "format": "date_time",
                          "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                          "example": "2017-07-21T17:32:28Z"
                        }
                      ],
                      "description": "VIP number's modified time.\n"
                    },
                    "expire_at": {
                      "allOf": [
                        {
                          "type": "string",
                          "format": "date_time",
                          "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                          "example": "2017-07-21T17:32:28Z"
                        }
                      ],
                      "description": "VIP number's expire time.\n"
                    },
                    "enabled": {
                      "type": "boolean",
                      "description": "Enable the VIP number or not.\n"
                    },
                    "description": {
                      "type": "string",
                      "maxLength": 1024,
                      "description": "VIP number's description.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "id": null,
                      "number": null,
                      "longitude": null,
                      "latitude": null,
                      "address": null,
                      "created_at": null,
                      "updated_at": null,
                      "expire_at": null,
                      "enabled": null,
                      "description": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "post": {
        "tags": [
          "CTI"
        ],
        "operationId": "updateVipNumber",
        "x-category": "contact-center",
        "x-subcategory": "vip-numbers",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Update VIP number",
        "description": "Update a VIP number.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of VIP number.\n"
            },
            "description": "The unique ID of the VIP number."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "number": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64,
                    "pattern": "[0-9+]{1,64}",
                    "description": "The VIP number, a string value contains a valid telephone number.\n"
                  },
                  "longitude": {
                    "type": "string",
                    "description": "VIP number's longitude.\n"
                  },
                  "latitude": {
                    "type": "string",
                    "description": "VIP number's latitude.\n"
                  },
                  "address": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The address.\n"
                  },
                  "expire_at": {
                    "allOf": [
                      {
                        "type": "string",
                        "format": "date_time",
                        "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                        "example": "2017-07-21T17:32:28Z"
                      }
                    ],
                    "description": "VIP number's expire time.\n"
                  },
                  "enabled": {
                    "type": "boolean",
                    "description": "Enable the VIP number or not.\n"
                  },
                  "description": {
                    "type": "string",
                    "maxLength": 1024,
                    "description": "VIP number's description.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "number": null,
                    "longitude": null,
                    "latitude": null,
                    "address": null,
                    "expire_at": null,
                    "enabled": null,
                    "description": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/vip_numbers/{id}/destroy": {
      "post": {
        "tags": [
          "CTI"
        ],
        "operationId": "deleteVipNumber",
        "x-category": "contact-center",
        "x-subcategory": "vip-numbers",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Delete VIP number",
        "description": "Destroy a VIP number by it's unique ID.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of VIP number.\n"
            },
            "description": "The unique ID of the VIP number."
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/vip_numbers/export": {
      "get": {
        "tags": [
          "CTI"
        ],
        "operationId": "exportVipNumbers",
        "x-category": "contact-center",
        "x-subcategory": "vip-numbers",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Export VIP numbers",
        "description": "Export a collection of VIP numbers to file.\n",
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "Content-Disposition": {
                "schema": {
                  "type": "string"
                },
                "description": "the format is `attachment; filename=\"example\"`"
              }
            },
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/call_queue_blacklisted_numbers": {
      "post": {
        "tags": [
          "CTI"
        ],
        "operationId": "createQueueBlacklistedNumber",
        "x-category": "call-features",
        "x-subcategory": "call-queues",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Add a call queue blacklisted number",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "number": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64,
                    "pattern": "[0-9+]{1,64}",
                    "description": "The blacklisted number, a string value contains a valid telephone number or extension number.\n"
                  },
                  "level": {
                    "type": "string",
                    "enum": [
                      "FIRST",
                      "SECOND"
                    ],
                    "description": "Blacklisted number's level:\n- `FIRST`: A first level blacklisted number.\n- `SECOND`: A second level blacklisted number.\n"
                  },
                  "longitude": {
                    "type": "string",
                    "description": "Blacklisted number's longitude.\n"
                  },
                  "latitude": {
                    "type": "string",
                    "description": "Blacklisted number's latitude.\n"
                  },
                  "address": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The address.\n"
                  },
                  "expire_at": {
                    "allOf": [
                      {
                        "type": "string",
                        "format": "date_time",
                        "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                        "example": "2017-07-21T17:32:28Z"
                      }
                    ],
                    "description": "Blacklisted number's expire time.\n"
                  },
                  "trigger_times": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 0,
                    "description": "Blacklisted number have been triggered for this times.\n"
                  },
                  "enabled": {
                    "type": "boolean",
                    "default": true,
                    "description": "Enable the blacklisted number or not.\n"
                  },
                  "description": {
                    "type": "string",
                    "minLength": 0,
                    "maxLength": 1024,
                    "description": "Blacklisted number's description.\n"
                  }
                },
                "required": [
                  "number",
                  "level"
                ]
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "number": null,
                    "level": null,
                    "longitude": null,
                    "latitude": null,
                    "address": null,
                    "expire_at": null,
                    "trigger_times": null,
                    "enabled": null,
                    "description": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                      "description": "The unique ID of the resource.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "The ID of created resource",
                    "value": {
                      "id": "xxxxxxxx"
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "get": {
        "tags": [
          "CTI"
        ],
        "operationId": "listQueueBlacklistedNumbers",
        "x-category": "call-features",
        "x-subcategory": "call-queues",
        "x-permissions": [
          "PhoneSystem.ViewOnly"
        ],
        "summary": "List call queue blacklisted numbers",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "description": "The unique ID of blacklisted number.\n"
                          },
                          "number": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 64,
                            "pattern": "[0-9+]{1,64}",
                            "description": "The blacklisted number, a string value contains a valid telephone number or extension number.\n"
                          },
                          "level": {
                            "type": "string",
                            "enum": [
                              "FIRST",
                              "SECOND"
                            ],
                            "description": "Blacklisted number's level:\n- `FIRST`: A first level blacklisted number.\n- `SECOND`: A second level blacklisted number.\n"
                          },
                          "longitude": {
                            "type": "string",
                            "description": "Blacklisted number's longitude.\n"
                          },
                          "latitude": {
                            "type": "string",
                            "description": "Blacklisted number's latitude.\n"
                          },
                          "address": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The address.\n"
                          },
                          "created_at": {
                            "allOf": [
                              {
                                "type": "string",
                                "format": "date_time",
                                "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                                "example": "2017-07-21T17:32:28Z"
                              }
                            ],
                            "description": "The creation time of blacklisted number.\n"
                          },
                          "updated_at": {
                            "allOf": [
                              {
                                "type": "string",
                                "format": "date_time",
                                "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                                "example": "2017-07-21T17:32:28Z"
                              }
                            ],
                            "description": "Blacklisted number's modified time.\n"
                          },
                          "expire_at": {
                            "allOf": [
                              {
                                "type": "string",
                                "format": "date_time",
                                "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                                "example": "2017-07-21T17:32:28Z"
                              }
                            ],
                            "description": "Blacklisted number's expire time.\n"
                          },
                          "trigger_times": {
                            "type": "integer",
                            "format": "int32",
                            "minimum": 0,
                            "description": "Blacklisted number have been triggered for this times.\n"
                          },
                          "enabled": {
                            "type": "boolean",
                            "default": true,
                            "description": "Enable the blacklisted number or not.\n"
                          },
                          "description": {
                            "type": "string",
                            "minLength": 0,
                            "maxLength": 1024,
                            "description": "Blacklisted number's description.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "items": [
                        {
                          "id": null,
                          "number": null,
                          "level": null,
                          "longitude": null,
                          "latitude": null,
                          "address": null,
                          "created_at": null,
                          "updated_at": null,
                          "expire_at": null,
                          "trigger_times": null,
                          "enabled": null,
                          "description": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/call_queue_blacklisted_numbers/{id}": {
      "get": {
        "tags": [
          "CTI"
        ],
        "operationId": "showQueueBlacklistedNumber",
        "x-category": "call-features",
        "x-subcategory": "call-queues",
        "x-permissions": [
          "PhoneSystem.ViewOnly"
        ],
        "summary": "Retrieve a call queue blacklisted number",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of blacklisted number.\n"
            },
            "description": "The unique ID of the blacklisted number."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of blacklisted number.\n"
                    },
                    "number": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64,
                      "pattern": "[0-9+]{1,64}",
                      "description": "The blacklisted number, a string value contains a valid telephone number or extension number.\n"
                    },
                    "level": {
                      "type": "string",
                      "enum": [
                        "FIRST",
                        "SECOND"
                      ],
                      "description": "Blacklisted number's level:\n- `FIRST`: A first level blacklisted number.\n- `SECOND`: A second level blacklisted number.\n"
                    },
                    "longitude": {
                      "type": "string",
                      "description": "Blacklisted number's longitude.\n"
                    },
                    "latitude": {
                      "type": "string",
                      "description": "Blacklisted number's latitude.\n"
                    },
                    "address": {
                      "type": "string",
                      "maxLength": 128,
                      "description": "The address.\n"
                    },
                    "created_at": {
                      "allOf": [
                        {
                          "type": "string",
                          "format": "date_time",
                          "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                          "example": "2017-07-21T17:32:28Z"
                        }
                      ],
                      "description": "The creation time of blacklisted number.\n"
                    },
                    "updated_at": {
                      "allOf": [
                        {
                          "type": "string",
                          "format": "date_time",
                          "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                          "example": "2017-07-21T17:32:28Z"
                        }
                      ],
                      "description": "Blacklisted number's modified time.\n"
                    },
                    "expire_at": {
                      "allOf": [
                        {
                          "type": "string",
                          "format": "date_time",
                          "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                          "example": "2017-07-21T17:32:28Z"
                        }
                      ],
                      "description": "Blacklisted number's expire time.\n"
                    },
                    "trigger_times": {
                      "type": "integer",
                      "format": "int32",
                      "minimum": 0,
                      "description": "Blacklisted number have been triggered for this times.\n"
                    },
                    "enabled": {
                      "type": "boolean",
                      "default": true,
                      "description": "Enable the blacklisted number or not.\n"
                    },
                    "description": {
                      "type": "string",
                      "minLength": 0,
                      "maxLength": 1024,
                      "description": "Blacklisted number's description.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "id": null,
                      "number": null,
                      "level": null,
                      "longitude": null,
                      "latitude": null,
                      "address": null,
                      "created_at": null,
                      "updated_at": null,
                      "expire_at": null,
                      "trigger_times": null,
                      "enabled": null,
                      "description": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "post": {
        "tags": [
          "CTI"
        ],
        "operationId": "updateQueueBlacklistedNumber",
        "x-category": "call-features",
        "x-subcategory": "call-queues",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Update a call queue blacklisted number",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of blacklisted number.\n"
            },
            "description": "The unique ID of the call queue blacklisted number."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "number": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64,
                    "pattern": "[0-9+]{1,64}",
                    "description": "The blacklisted number, a string value contains a valid telephone number or extension number.\n"
                  },
                  "level": {
                    "type": "string",
                    "enum": [
                      "FIRST",
                      "SECOND"
                    ],
                    "description": "Blacklisted number's level:\n- `FIRST`: A first level blacklisted number.\n- `SECOND`: A second level blacklisted number.\n"
                  },
                  "longitude": {
                    "type": "string",
                    "description": "Blacklisted number's longitude.\n"
                  },
                  "latitude": {
                    "type": "string",
                    "description": "Blacklisted number's latitude.\n"
                  },
                  "address": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The address.\n"
                  },
                  "expire_at": {
                    "allOf": [
                      {
                        "type": "string",
                        "format": "date_time",
                        "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                        "example": "2017-07-21T17:32:28Z"
                      }
                    ],
                    "description": "Blacklisted number's expire time.\n"
                  },
                  "trigger_times": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 0,
                    "description": "Blacklisted number have been triggered for this times.\n"
                  },
                  "enabled": {
                    "type": "boolean",
                    "default": true,
                    "description": "Enable the blacklisted number or not.\n"
                  },
                  "description": {
                    "type": "string",
                    "minLength": 0,
                    "maxLength": 1024,
                    "description": "Blacklisted number's description.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "number": null,
                    "level": null,
                    "longitude": null,
                    "latitude": null,
                    "address": null,
                    "expire_at": null,
                    "trigger_times": null,
                    "enabled": null,
                    "description": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/call_queue_blacklisted_numbers/{id}/destroy": {
      "post": {
        "tags": [
          "CTI"
        ],
        "operationId": "deleteQueueBlacklistedNumber",
        "x-category": "call-features",
        "x-subcategory": "call-queues",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Delete a call queue blacklisted number",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of blacklisted number.\n"
            },
            "description": "The unique ID of the call queue blacklisted number."
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Invalid item ID"
          },
          "404": {
            "description": "User not found"
          }
        }
      }
    },
    "/call_queue_blacklisted_numbers/export": {
      "get": {
        "tags": [
          "CTI"
        ],
        "operationId": "exportQueueBlacklistedNumbers",
        "x-category": "call-features",
        "x-subcategory": "call-queues",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Export queue blacklisted numbers",
        "description": "Export a collection of queue blacklisted numbers to file.\n",
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "Content-Disposition": {
                "schema": {
                  "type": "string"
                },
                "description": "the format is `attachment; filename=\"example\"`"
              }
            },
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/call_queue_blacklist_prompts": {
      "get": {
        "tags": [
          "CTI"
        ],
        "operationId": "getCallQueueBlacklistPrompts",
        "x-category": "call-features",
        "x-subcategory": "call-queues",
        "x-permissions": [
          "PhoneSystem.ViewOnly"
        ],
        "summary": "Retrieve call queue blacklist prompts configurations",
        "description": "Retrieve call queue blacklist prompts configurations.\n",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "enable_level1": {
                      "type": "boolean",
                      "default": false,
                      "description": "Whether to enable the the level 1 blacklist.\n"
                    },
                    "level1_prompt_file_name": {
                      "type": "string",
                      "description": "The name of the file.\n"
                    },
                    "level1_prompt_file_size": {
                      "type": "integer",
                      "format": "int64",
                      "minimum": 0,
                      "example": 0,
                      "description": "The file size in bytes.\n"
                    },
                    "level1_prompt_file_url": {
                      "type": "string",
                      "readOnly": true,
                      "example": "/api/blobs/WexWdABcd5D4PDgzTKV3gAAAEu00WcK",
                      "description": "The relative path to file url for file downloading.\n"
                    },
                    "enable_level2": {
                      "type": "boolean",
                      "default": false,
                      "description": "Whether to enable the the level 2 blacklist.\n"
                    },
                    "level2_prompt_file_name": {
                      "type": "string",
                      "description": "The name of the file.\n"
                    },
                    "level2_prompt_file_size": {
                      "type": "integer",
                      "format": "int64",
                      "minimum": 0,
                      "example": 0,
                      "description": "The file size in bytes.\n"
                    },
                    "level2_prompt_file_url": {
                      "type": "string",
                      "readOnly": true,
                      "example": "/api/blobs/WexWdABcd5D4PDgzTKV3gAAAEu00WcK",
                      "description": "The relative path to file url for file downloading.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "enable_level1": null,
                      "level1_prompt_file_name": null,
                      "level1_prompt_file_size": null,
                      "level1_prompt_file_url": null,
                      "enable_level2": null,
                      "level2_prompt_file_name": null,
                      "level2_prompt_file_size": null,
                      "level2_prompt_file_url": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "post": {
        "tags": [
          "CTI"
        ],
        "operationId": "updateCallQueueBlacklistPrompts",
        "x-category": "call-features",
        "x-subcategory": "call-queues",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Update call queue blacklist prompts configurations",
        "description": "Update call queue blacklist prompts configurations.\n",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "enable_level1": {
                    "type": "boolean",
                    "default": false,
                    "description": "Whether to enable the the level 1 blacklist.\n"
                  },
                  "level1_prompt_file_id": {
                    "allOf": [
                      {
                        "type": "string",
                        "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                        "description": "The unique ID of the resource.\n"
                      }
                    ],
                    "description": "The unique ID of the file.\n"
                  },
                  "enable_level2": {
                    "type": "boolean",
                    "default": false,
                    "description": "Whether to enable the the level 2 blacklist.\n"
                  },
                  "level2_prompt_file_id": {
                    "allOf": [
                      {
                        "type": "string",
                        "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                        "description": "The unique ID of the resource.\n"
                      }
                    ],
                    "description": "The unique ID of the file.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "enable_level1": null,
                    "level1_prompt_file_id": null,
                    "enable_level2": null,
                    "level2_prompt_file_id": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/sessions": {
      "post": {
        "tags": [
          "Call Session"
        ],
        "operationId": "createCallSession",
        "x-category": "call-features",
        "x-subcategory": "call-sessions",
        "x-permissions": [],
        "summary": "Create call session",
        "description": "Create call session\n",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "caller": {
                    "type": "string",
                    "maxLength": 256,
                    "description": "The caller number of the call.\n"
                  },
                  "caller_display_name": {
                    "type": "string",
                    "maxLength": 1024,
                    "description": "The caller display name of the call.\n"
                  },
                  "callee": {
                    "type": "string",
                    "maxLength": 256,
                    "description": "The callee number of the call.\n"
                  },
                  "send_sdp": {
                    "type": "boolean",
                    "description": "Whether to send sdp packets.\n"
                  },
                  "trunk": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64,
                    "description": "The name of the trunk.\n"
                  },
                  "rewrite_from": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 16,
                    "description": "When call through the trunk specified by `trunk`,  \nchange the user part in the `FROM` header to specified value.\n"
                  },
                  "rewrite_pai": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 16,
                    "description": "When call through the trunk specified by `trunk`,  \nchange the user part in the `P-Asserted-Identity` header to specified value.\n"
                  },
                  "rewrite_rpi": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 16,
                    "description": "When call through the trunk specified by `trunk`,  \nchange the user part in the `Remote-Party-ID` header to specified value.\n"
                  },
                  "user_data": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The user context of the call.\n"
                  },
                  "target": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The target address.\n"
                  },
                  "target_instance_id": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The target instance ID.\n"
                  },
                  "target_extension_number": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The target extension number.\n"
                  },
                  "additional_header": {
                    "type": "string",
                    "enum": [
                      "ANSWER_MODE",
                      "CALL_INFO",
                      "ALERT_INFO_AUTO_ANSWER_DELAY0",
                      "ALERT_INFO_AUTO_ANSWER",
                      "ALERT_INFO_INTERCOM"
                    ],
                    "description": "Specifies whether to add an additional SIP header (RFC 5373) to the INVITE SIP message. The possible values are:\n- `ANSWER_MODE`: Adds the `Answer-Mode` header to the INVITE SIP message.\n- `CALL_INFO`: Adds the `Call-Info` header with `answer-after=0` to the INVITE SIP message.\n- `ALERT_INFO_AUTO_ANSWER_DELAY0`:  Adds the `Alert-Info` header with `info=alert-autoanswer;delay=0` to the INVITE SIP message. \n- `ALERT_INFO_AUTO_ANSWER`: Adds the `Alert-Info` header with `info=Auto Answer` to the INVITE SIP message. \n- `ALERT_INFO_INTERCOM`:  Adds the `Alert-Info` header with `info=intercom` to the INVITE SIP message. \n"
                  },
                  "header_direction": {
                    "type": "string",
                    "enum": [
                      "CALLER",
                      "CALLEE",
                      "ALL"
                    ],
                    "description": "Specifies which party of the call should receive the `additional_header`, if the `additional_header` is not specified, this parameter will be ignored. The possible values are: \n- `CALLER`: Adds the specified header in `additional_header` to the INVITE SIP message sent to the caller.\n- `CALLEE`: Adds the specified header in `additional_header` to the INVITE SIP message sent to the callee.\n- `ALL`: Adds the specified header in `additional_header` to the INVITE SIP messages sent to both the caller and callee.\n"
                  }
                },
                "required": [
                  "caller",
                  "callee",
                  "send_sdp"
                ]
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "caller": null,
                    "caller_display_name": null,
                    "callee": null,
                    "send_sdp": null,
                    "trunk": null,
                    "rewrite_from": null,
                    "rewrite_pai": null,
                    "rewrite_rpi": null,
                    "user_data": null,
                    "target": null,
                    "target_instance_id": null,
                    "target_extension_number": null,
                    "additional_header": null,
                    "header_direction": null
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of session.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "The ID of created resource",
                    "value": {
                      "id": "xxxxxxxx"
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "get": {
        "tags": [
          "Call Session"
        ],
        "operationId": "listCallSessions",
        "x-category": "call-features",
        "x-subcategory": "call-sessions",
        "x-permissions": [],
        "summary": "List current active call sessions.",
        "description": "Get a collection of current active call sessions.\n",
        "responses": {
          "201": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "count": {
                      "type": "integer",
                      "format": "int64",
                      "minimum": 0,
                      "example": 100,
                      "description": "Total number of resource.\n"
                    },
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "description": "The unique ID of session.\n"
                          },
                          "calls": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "caller": {
                                  "type": "string",
                                  "maxLength": 256,
                                  "description": "The caller number of the call.\n"
                                },
                                "caller_display_name": {
                                  "type": "string",
                                  "maxLength": 1024,
                                  "description": "The caller display name of the call.\n"
                                },
                                "callee": {
                                  "type": "string",
                                  "maxLength": 256,
                                  "description": "The callee number of the call.\n"
                                },
                                "trunk": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 64,
                                  "description": "The name of the trunk.\n"
                                },
                                "started_at": {
                                  "allOf": [
                                    {
                                      "type": "string",
                                      "format": "date_time",
                                      "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                                      "example": "2017-07-21T17:32:28Z"
                                    }
                                  ],
                                  "description": "The start time of the call session.\n"
                                },
                                "talking_time": {
                                  "type": "integer",
                                  "format": "uint32",
                                  "description": "The duration of the call session in seconds.\n"
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": null,
                          "calls": [
                            {
                              "caller": null,
                              "caller_display_name": null,
                              "callee": null,
                              "trunk": null,
                              "started_at": null,
                              "talking_time": null
                            }
                          ]
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/sessions/directly": {
      "get": {
        "tags": [
          "Call Session"
        ],
        "operationId": "createCallSessionDirectly",
        "x-category": "call-features",
        "x-subcategory": "call-sessions",
        "x-permissions": [],
        "summary": "Create call session directly",
        "description": "Create call session directly.\n",
        "security": [],
        "parameters": [
          {
            "name": "extension_number",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 3,
              "maxLength": 64,
              "pattern": "[0-9]{3,64}",
              "description": "The extension number.\n"
            }
          },
          {
            "name": "password",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The extension password.\n"
            }
          },
          {
            "name": "domain",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 280,
              "description": "The SIP domain of tenant.  \nIt is usually a fully qualified domain name (FQDN).\nIf there is no FQDN, you can also use the IP address of the PBX server as the SIP domain.\nThe SIP domain name is only used for SIP message authentication and does not require analysis.\n"
            }
          },
          {
            "name": "caller",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "maxLength": 256,
              "description": "The caller number of the call.\n"
            }
          },
          {
            "name": "caller_display_name",
            "in": "query",
            "schema": {
              "type": "string",
              "maxLength": 1024,
              "description": "The caller display name of the call.\n"
            }
          },
          {
            "name": "callee",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "maxLength": 256,
              "description": "The callee number of the call.\n"
            }
          },
          {
            "name": "send_sdp",
            "in": "query",
            "required": true,
            "schema": {
              "type": "boolean",
              "description": "Whether to send sdp packets.\n"
            }
          },
          {
            "name": "trunk",
            "in": "query",
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 64,
              "description": "The name of the trunk.\n"
            }
          },
          {
            "name": "rewrite_from",
            "in": "query",
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 16,
              "description": "When call through the trunk specified by `trunk`,  \nchange the user part in the `FROM` header to specified value.\n"
            }
          },
          {
            "name": "rewrite_pai",
            "in": "query",
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 16,
              "description": "When call through the trunk specified by `trunk`,  \nchange the user part in the `P-Asserted-Identity` header to specified value.\n"
            }
          },
          {
            "name": "rewrite_rpi",
            "in": "query",
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 16,
              "description": "When call through the trunk specified by `trunk`,  \nchange the user part in the `Remote-Party-ID` header to specified value.\n"
            }
          },
          {
            "name": "user_data",
            "in": "query",
            "schema": {
              "type": "string",
              "maxLength": 128,
              "description": "The user context of the call.\n"
            }
          },
          {
            "name": "target",
            "in": "query",
            "schema": {
              "type": "string",
              "maxLength": 128,
              "description": "The target address.\n"
            }
          },
          {
            "name": "target_instance_id",
            "in": "query",
            "schema": {
              "type": "string",
              "maxLength": 128,
              "description": "The target instance ID.\n"
            }
          },
          {
            "name": "target_extension_number",
            "in": "query",
            "schema": {
              "type": "string",
              "maxLength": 128,
              "description": "The target extension number.\n"
            }
          },
          {
            "name": "additional_header",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "ANSWER_MODE",
                "CALL_INFO",
                "ALERT_INFO_AUTO_ANSWER_DELAY0",
                "ALERT_INFO_AUTO_ANSWER",
                "ALERT_INFO_INTERCOM"
              ],
              "description": "Specifies whether to add an additional SIP header (RFC 5373) to the INVITE SIP message. The possible values are:\n- `ANSWER_MODE`: Adds the `Answer-Mode` header to the INVITE SIP message.\n- `CALL_INFO`: Adds the `Call-Info` header with `answer-after=0` to the INVITE SIP message.\n- `ALERT_INFO_AUTO_ANSWER_DELAY0`:  Adds the `Alert-Info` header with `info=alert-autoanswer;delay=0` to the INVITE SIP message. \n- `ALERT_INFO_AUTO_ANSWER`: Adds the `Alert-Info` header with `info=Auto Answer` to the INVITE SIP message. \n- `ALERT_INFO_INTERCOM`:  Adds the `Alert-Info` header with `info=intercom` to the INVITE SIP message. \n"
            }
          },
          {
            "name": "header_direction",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "CALLER",
                "CALLEE",
                "ALL"
              ],
              "description": "Specifies which party of the call should receive the `additional_header`, if the `additional_header` is not specified, this parameter will be ignored. The possible values are: \n- `CALLER`: Adds the specified header in `additional_header` to the INVITE SIP message sent to the caller.\n- `CALLEE`: Adds the specified header in `additional_header` to the INVITE SIP message sent to the callee.\n- `ALL`: Adds the specified header in `additional_header` to the INVITE SIP messages sent to both the caller and callee.\n"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of session.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "The ID of created resource",
                    "value": {
                      "id": "xxxxxxxx"
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/sessions/{id}": {
      "get": {
        "tags": [
          "Call Session"
        ],
        "operationId": "getCallSessionById",
        "x-category": "call-features",
        "x-subcategory": "call-sessions",
        "x-permissions": [],
        "summary": "Retrieve call session by ID.",
        "description": "Retrieve details of call sessions by it's ID.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of session.\n"
            },
            "description": "The unique ID of call session."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of session.\n"
                    },
                    "calls": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "caller": {
                            "type": "string",
                            "maxLength": 256,
                            "description": "The caller number of the call.\n"
                          },
                          "caller_display_name": {
                            "type": "string",
                            "maxLength": 1024,
                            "description": "The caller display name of the call.\n"
                          },
                          "callee": {
                            "type": "string",
                            "maxLength": 256,
                            "description": "The callee number of the call.\n"
                          },
                          "trunk": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 64,
                            "description": "The name of the trunk.\n"
                          },
                          "started_at": {
                            "allOf": [
                              {
                                "type": "string",
                                "format": "date_time",
                                "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                                "example": "2017-07-21T17:32:28Z"
                              }
                            ],
                            "description": "The start time of the call session.\n"
                          },
                          "talking_time": {
                            "type": "integer",
                            "format": "uint32",
                            "description": "The duration of the call session in seconds.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "id": null,
                      "calls": [
                        {
                          "caller": null,
                          "caller_display_name": null,
                          "callee": null,
                          "trunk": null,
                          "started_at": null,
                          "talking_time": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/sessions/{id}/hold": {
      "post": {
        "tags": [
          "Call Session"
        ],
        "operationId": "holdCall",
        "x-category": "call-features",
        "x-subcategory": "call-sessions",
        "x-permissions": [],
        "summary": "Hold call session",
        "description": "Hold call session by it's session ID.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of session.\n"
            },
            "description": "The unique ID of call session."
          }
        ],
        "requestBody": {
          "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 to hold the session.\n"
                  }
                },
                "required": [
                  "extension_number"
                ]
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "extension_number": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Ok"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/sessions/{id}/unhold": {
      "post": {
        "tags": [
          "Call Session"
        ],
        "operationId": "unholdCall",
        "x-category": "call-features",
        "x-subcategory": "call-sessions",
        "x-permissions": [],
        "summary": "Unhold call session",
        "description": "Un-hold call session by it's session ID.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of session.\n"
            },
            "description": "The unique ID of call session."
          }
        ],
        "requestBody": {
          "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 to unhold the session.\n"
                  }
                },
                "required": [
                  "extension_number"
                ]
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "extension_number": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/sessions/{id}/refer": {
      "post": {
        "tags": [
          "Call Session"
        ],
        "operationId": "referCallSession",
        "x-category": "call-features",
        "x-subcategory": "call-sessions",
        "x-permissions": [],
        "summary": "Refer a call session",
        "description": "Refer a call session by it's session ID.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of session.\n"
            },
            "description": "The unique ID of call session."
          }
        ],
        "requestBody": {
          "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 to refer the session.\n"
                  },
                  "refer_to": {
                    "type": "string",
                    "description": "The refer target, usually a number.\n"
                  }
                },
                "required": [
                  "extension_number",
                  "refer_to"
                ]
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "extension_number": null,
                    "refer_to": null
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Ok"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/sessions/{id}/attended_refer": {
      "post": {
        "tags": [
          "Call Session"
        ],
        "operationId": "attendReferCall",
        "x-category": "call-features",
        "x-subcategory": "call-sessions",
        "x-permissions": [],
        "summary": "Attend refer a call session.",
        "description": "Attend refer a call session by it's session ID.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of session.\n"
            },
            "description": "The unique ID of call session."
          }
        ],
        "requestBody": {
          "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 to attend refer the session.\n"
                  },
                  "refer_to_1": {
                    "type": "string",
                    "description": "The refer target, usually a number.\n"
                  },
                  "session_1": {
                    "allOf": [
                      {
                        "allOf": [
                          {
                            "type": "string",
                            "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                            "description": "The unique ID of the resource.\n"
                          }
                        ],
                        "description": "The unique ID of session.\n"
                      }
                    ],
                    "description": "The unique ID of the session specified by `refer_to_1`, this session ID is not mandatory.\n"
                  },
                  "refer_to_2": {
                    "type": "string",
                    "description": "The refer target, usually a number.\n"
                  },
                  "session_2": {
                    "allOf": [
                      {
                        "allOf": [
                          {
                            "type": "string",
                            "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                            "description": "The unique ID of the resource.\n"
                          }
                        ],
                        "description": "The unique ID of session.\n"
                      }
                    ],
                    "description": "The unique ID of the session specified by `refer_to_2`, this session ID is not mandatory.\n"
                  }
                },
                "required": [
                  "extension_number",
                  "refer_to_1",
                  "refer_to_2"
                ]
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "extension_number": null,
                    "refer_to_1": null,
                    "session_1": null,
                    "refer_to_2": null,
                    "session_2": null
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Ok"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/sessions/{id}/destroy": {
      "post": {
        "tags": [
          "Call Session"
        ],
        "operationId": "deleteCallSession",
        "x-category": "call-features",
        "x-subcategory": "call-sessions",
        "x-permissions": [],
        "summary": "Destroy call session",
        "description": "Destroy call session by it's session ID.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of session.\n"
            },
            "description": "The unique ID of call session."
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Invalid call session id supplied"
          },
          "404": {
            "description": "Not found"
          }
        }
      }
    },
    "/conference_rooms": {
      "post": {
        "tags": [
          "Conference"
        ],
        "operationId": "createConferenceRoom",
        "x-category": "call-features",
        "x-subcategory": "conference",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Create a conference room",
        "description": "Create a conference room\n",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "extension_number": {
                    "type": "string",
                    "minLength": 3,
                    "maxLength": 64,
                    "pattern": "[0-9]{3,64}",
                    "description": "The extension number.\n"
                  },
                  "mode": {
                    "type": "string",
                    "enum": [
                      "AUDIO",
                      "VIDEO"
                    ],
                    "description": "The conference room mode.  \nCan be either:  \n- `AUDIO`: audio conference room.\n- `VIDEO`: video conference room.\n"
                  },
                  "control": {
                    "type": "string",
                    "enum": [
                      "FREE",
                      "MASTER"
                    ],
                    "default": "FREE",
                    "description": "The conference control type.  \nCan be either:  \n- `FREE`: the free mode.  \n- `MASTER`: the master mode.\n"
                  },
                  "height": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 144,
                    "maximum": 1920,
                    "default": 720,
                    "description": "The height for video conference room.  \nOnly valid in `VIDEO` mode.\n"
                  },
                  "width": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 144,
                    "maximum": 1920,
                    "default": 1280,
                    "description": "The width for video conference room.  \nOnly valid in `VIDEO` mode.\n"
                  },
                  "bitrate": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 128,
                    "maximum": 10240,
                    "default": 1024,
                    "description": "The transmission rate for video conference room.  \nOnly valid in `VIDEO` mode.\n"
                  },
                  "framerate": {
                    "type": "integer",
                    "minimum": 5,
                    "maximum": 30,
                    "default": 15,
                    "description": "The framerate for video conference room.  \nOnly valid in `VIDEO` mode.\n"
                  },
                  "layout": {
                    "type": "string",
                    "enum": [
                      "LAYOUT0",
                      "LAYOUT1",
                      "LAYOUT2",
                      "LAYOUT3",
                      "LAYOUT4",
                      "LAYOUT6",
                      "LAYOUT9"
                    ],
                    "default": "LAYOUT0",
                    "description": "The number of grids allowed for video conference room.  \nOnly valid in `VIDEO` mode.  \nCan be either:  \n- LAYOUT0:\n- LAYOUT1:\n- LAYOUT2:\n- LAYOUT3:\n- LAYOUT4:\n- LAYOUT6:\n- LAYOUT9:\n"
                  },
                  "subject": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64,
                    "description": "The subject of conference room.\n"
                  },
                  "language": {
                    "type": "string",
                    "example": "en-US",
                    "description": "BCP 47 Language Tags (The Internet Best Current Practices (BCP) for language tags).\nA language tag is composed of a sequence of one or more subtags such as language, region, variant and script subtags.\nWhen a language tag is comprised of more than one subtag, the subtag values are separated by the \"-\" character.\nYou will most commonly find language tags written with 2 subtags - language and region. For example: en-US.\n"
                  },
                  "capacity": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 1,
                    "maximum": 200,
                    "default": 9,
                    "description": "The maximum number of participants allowed in the room.\n"
                  },
                  "admin_pin": {
                    "type": "string",
                    "minLength": 3,
                    "maxLength": 6,
                    "description": "The PIN for admin of the conference room. Only numeric sequences are allowed.\n"
                  },
                  "room_pin": {
                    "type": "string",
                    "minLength": 3,
                    "maxLength": 6,
                    "description": "The PIN for the conference room. Only numeric sequences are allowed.\n"
                  },
                  "enable_recording": {
                    "type": "boolean",
                    "default": false,
                    "description": "Whether to enable recording when created.\n"
                  },
                  "enable_prompt": {
                    "type": "boolean",
                    "default": true,
                    "description": "Whether to enable voice menu.\n"
                  },
                  "timezone": {
                    "type": "string",
                    "description": "The IANA Time Zone names, such as \"Asia/Shanghai\".\n"
                  },
                  "scheduled_start_at": {
                    "allOf": [
                      {
                        "type": "string",
                        "format": "date_time",
                        "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                        "example": "2017-07-21T17:32:28Z"
                      }
                    ],
                    "description": "The scheduled start time of meeting.\n"
                  },
                  "scheduled_end_at": {
                    "allOf": [
                      {
                        "type": "string",
                        "format": "date_time",
                        "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                        "example": "2017-07-21T17:32:28Z"
                      }
                    ],
                    "description": "The scheduled end time of meeting.\n"
                  },
                  "numbers": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "Dial from landline/mobile phone to this number.\n"
                  },
                  "internal_invitees": {
                    "type": "array",
                    "items": {
                      "allOf": [
                        {
                          "allOf": [
                            {
                              "type": "string",
                              "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                              "description": "The unique ID of the resource.\n"
                            }
                          ],
                          "description": "The unique ID of user.\n"
                        }
                      ],
                      "description": "A collection of extension's ID for sending invitation emails.\n"
                    }
                  },
                  "external_invitees": {
                    "type": "string",
                    "description": "The invitees to send invitation emails to.\n"
                  },
                  "outbound_caller_ids": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "provider_id": {
                          "allOf": [
                            {
                              "allOf": [
                                {
                                  "type": "string",
                                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                  "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"
                  },
                  "custom_options": {
                    "type": "string",
                    "description": "Some custom configuration options serialized as json string\n"
                  }
                },
                "required": [
                  "mode",
                  "extension_number",
                  "subject",
                  "capacity"
                ]
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "extension_number": null,
                    "mode": null,
                    "control": null,
                    "height": null,
                    "width": null,
                    "bitrate": null,
                    "framerate": null,
                    "layout": null,
                    "subject": null,
                    "language": null,
                    "capacity": null,
                    "admin_pin": null,
                    "room_pin": null,
                    "enable_recording": null,
                    "enable_prompt": null,
                    "timezone": null,
                    "scheduled_start_at": null,
                    "scheduled_end_at": null,
                    "numbers": null,
                    "internal_invitees": null,
                    "external_invitees": null,
                    "outbound_caller_ids": null,
                    "custom_options": null
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of conference room.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "The ID of created resource",
                    "value": {
                      "id": "xxxxxxxx"
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "get": {
        "tags": [
          "Conference"
        ],
        "operationId": "listConferenceRooms",
        "x-category": "call-features",
        "x-subcategory": "conference",
        "x-permissions": [
          "PhoneSystem.ViewOnly"
        ],
        "summary": "List conference rooms",
        "description": "Retrieve a collection of conference rooms\n",
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Use the `filter` query parameter to retrieve just a subset of a collection.\n"
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "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",
            "required": false,
            "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",
            "required": false,
            "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",
            "required": false,
            "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,
                      "example": 100,
                      "description": "Total number of resource.\n"
                    },
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "description": "The unique ID of conference room.\n"
                          },
                          "extension_number": {
                            "type": "string",
                            "minLength": 3,
                            "maxLength": 64,
                            "pattern": "[0-9]{3,64}",
                            "description": "The extension number.\n"
                          },
                          "mode": {
                            "type": "string",
                            "enum": [
                              "AUDIO",
                              "VIDEO"
                            ],
                            "description": "The conference room mode.  \nCan be either:  \n- `AUDIO`: audio conference room.\n- `VIDEO`: video conference room.\n"
                          },
                          "control": {
                            "type": "string",
                            "enum": [
                              "FREE",
                              "MASTER"
                            ],
                            "default": "FREE",
                            "description": "The conference control type.  \nCan be either:  \n- `FREE`: the free mode.  \n- `MASTER`: the master mode.\n"
                          },
                          "height": {
                            "type": "integer",
                            "format": "int32",
                            "minimum": 144,
                            "maximum": 1920,
                            "default": 720,
                            "description": "The height for video conference room.  \nOnly valid in `VIDEO` mode.\n"
                          },
                          "width": {
                            "type": "integer",
                            "format": "int32",
                            "minimum": 144,
                            "maximum": 1920,
                            "default": 1280,
                            "description": "The width for video conference room.  \nOnly valid in `VIDEO` mode.\n"
                          },
                          "bitrate": {
                            "type": "integer",
                            "format": "int32",
                            "minimum": 128,
                            "maximum": 10240,
                            "default": 1024,
                            "description": "The transmission rate for video conference room.  \nOnly valid in `VIDEO` mode.\n"
                          },
                          "framerate": {
                            "type": "integer",
                            "minimum": 5,
                            "maximum": 30,
                            "default": 15,
                            "description": "The framerate for video conference room.  \nOnly valid in `VIDEO` mode.\n"
                          },
                          "layout": {
                            "type": "string",
                            "enum": [
                              "LAYOUT0",
                              "LAYOUT1",
                              "LAYOUT2",
                              "LAYOUT3",
                              "LAYOUT4",
                              "LAYOUT6",
                              "LAYOUT9"
                            ],
                            "default": "LAYOUT0",
                            "description": "The number of grids allowed for video conference room.  \nOnly valid in `VIDEO` mode.  \nCan be either:  \n- LAYOUT0:\n- LAYOUT1:\n- LAYOUT2:\n- LAYOUT3:\n- LAYOUT4:\n- LAYOUT6:\n- LAYOUT9:\n"
                          },
                          "subject": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 64,
                            "description": "The subject of conference room.\n"
                          },
                          "language": {
                            "type": "string",
                            "example": "en-US",
                            "description": "BCP 47 Language Tags (The Internet Best Current Practices (BCP) for language tags).\nA language tag is composed of a sequence of one or more subtags such as language, region, variant and script subtags.\nWhen a language tag is comprised of more than one subtag, the subtag values are separated by the \"-\" character.\nYou will most commonly find language tags written with 2 subtags - language and region. For example: en-US.\n"
                          },
                          "capacity": {
                            "type": "integer",
                            "format": "int32",
                            "minimum": 1,
                            "maximum": 200,
                            "default": 9,
                            "description": "The maximum number of participants allowed in the room.\n"
                          },
                          "admin_pin": {
                            "type": "string",
                            "minLength": 3,
                            "maxLength": 6,
                            "description": "The PIN for admin of the conference room. Only numeric sequences are allowed.\n"
                          },
                          "room_pin": {
                            "type": "string",
                            "minLength": 3,
                            "maxLength": 6,
                            "description": "The PIN for the conference room. Only numeric sequences are allowed.\n"
                          },
                          "enable_recording": {
                            "type": "boolean",
                            "default": false,
                            "description": "Whether to enable recording when created.\n"
                          },
                          "enable_prompt": {
                            "type": "boolean",
                            "default": true,
                            "description": "Whether to enable voice menu.\n"
                          },
                          "timezone": {
                            "type": "string",
                            "description": "The IANA Time Zone names, such as \"Asia/Shanghai\".\n"
                          },
                          "created_at": {
                            "allOf": [
                              {
                                "type": "string",
                                "format": "date_time",
                                "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                                "example": "2017-07-21T17:32:28Z"
                              }
                            ],
                            "description": "The creation time of conference room.\n"
                          },
                          "scheduled_start_at": {
                            "allOf": [
                              {
                                "type": "string",
                                "format": "date_time",
                                "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                                "example": "2017-07-21T17:32:28Z"
                              }
                            ],
                            "description": "The scheduled start time of meeting.\n"
                          },
                          "scheduled_end_at": {
                            "allOf": [
                              {
                                "type": "string",
                                "format": "date_time",
                                "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                                "example": "2017-07-21T17:32:28Z"
                              }
                            ],
                            "description": "The scheduled end time of meeting.\n"
                          },
                          "numbers": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "Dial from landline/mobile phone to this number.\n"
                          },
                          "internal_invitees": {
                            "type": "array",
                            "items": {
                              "allOf": [
                                {
                                  "allOf": [
                                    {
                                      "type": "string",
                                      "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                      "description": "The unique ID of the resource.\n"
                                    }
                                  ],
                                  "description": "The unique ID of user.\n"
                                }
                              ],
                              "description": "A collection of extension's ID for sending invitation emails.\n"
                            }
                          },
                          "external_invitees": {
                            "type": "string",
                            "description": "The invitees to send invitation emails to.\n"
                          },
                          "custom_options": {
                            "type": "string",
                            "description": "Some custom configuration options serialized as json string\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "count": null,
                      "items": [
                        {
                          "id": null,
                          "extension_number": null,
                          "mode": null,
                          "control": null,
                          "height": null,
                          "width": null,
                          "bitrate": null,
                          "framerate": null,
                          "layout": null,
                          "subject": null,
                          "language": null,
                          "capacity": null,
                          "admin_pin": null,
                          "room_pin": null,
                          "enable_recording": null,
                          "enable_prompt": null,
                          "timezone": null,
                          "created_at": null,
                          "scheduled_start_at": null,
                          "scheduled_end_at": null,
                          "numbers": null,
                          "internal_invitees": null,
                          "external_invitees": null,
                          "custom_options": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/conference_rooms/{id}": {
      "get": {
        "tags": [
          "Conference"
        ],
        "operationId": "getConferenceRoom",
        "x-category": "call-features",
        "x-subcategory": "conference",
        "x-permissions": [
          "PhoneSystem.ViewOnly"
        ],
        "summary": "Retrieve a conference room",
        "description": "Retrieve a conference room.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of conference room.\n"
            },
            "description": "The unique ID of the conference room."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of conference room.\n"
                    },
                    "extension_number": {
                      "type": "string",
                      "minLength": 3,
                      "maxLength": 64,
                      "pattern": "[0-9]{3,64}",
                      "description": "The extension number.\n"
                    },
                    "mode": {
                      "type": "string",
                      "enum": [
                        "AUDIO",
                        "VIDEO"
                      ],
                      "description": "The conference room mode.  \nCan be either:  \n- `AUDIO`: audio conference room.\n- `VIDEO`: video conference room.\n"
                    },
                    "control": {
                      "type": "string",
                      "enum": [
                        "FREE",
                        "MASTER"
                      ],
                      "default": "FREE",
                      "description": "The conference control type.  \nCan be either:  \n- `FREE`: the free mode.  \n- `MASTER`: the master mode.\n"
                    },
                    "height": {
                      "type": "integer",
                      "format": "int32",
                      "minimum": 144,
                      "maximum": 1920,
                      "default": 720,
                      "description": "The height for video conference room.  \nOnly valid in `VIDEO` mode.\n"
                    },
                    "width": {
                      "type": "integer",
                      "format": "int32",
                      "minimum": 144,
                      "maximum": 1920,
                      "default": 1280,
                      "description": "The width for video conference room.  \nOnly valid in `VIDEO` mode.\n"
                    },
                    "bitrate": {
                      "type": "integer",
                      "format": "int32",
                      "minimum": 128,
                      "maximum": 10240,
                      "default": 1024,
                      "description": "The transmission rate for video conference room.  \nOnly valid in `VIDEO` mode.\n"
                    },
                    "framerate": {
                      "type": "integer",
                      "minimum": 5,
                      "maximum": 30,
                      "default": 15,
                      "description": "The framerate for video conference room.  \nOnly valid in `VIDEO` mode.\n"
                    },
                    "layout": {
                      "type": "string",
                      "enum": [
                        "LAYOUT0",
                        "LAYOUT1",
                        "LAYOUT2",
                        "LAYOUT3",
                        "LAYOUT4",
                        "LAYOUT6",
                        "LAYOUT9"
                      ],
                      "default": "LAYOUT0",
                      "description": "The number of grids allowed for video conference room.  \nOnly valid in `VIDEO` mode.  \nCan be either:  \n- LAYOUT0:\n- LAYOUT1:\n- LAYOUT2:\n- LAYOUT3:\n- LAYOUT4:\n- LAYOUT6:\n- LAYOUT9:\n"
                    },
                    "subject": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64,
                      "description": "The subject of conference room.\n"
                    },
                    "language": {
                      "type": "string",
                      "example": "en-US",
                      "description": "BCP 47 Language Tags (The Internet Best Current Practices (BCP) for language tags).\nA language tag is composed of a sequence of one or more subtags such as language, region, variant and script subtags.\nWhen a language tag is comprised of more than one subtag, the subtag values are separated by the \"-\" character.\nYou will most commonly find language tags written with 2 subtags - language and region. For example: en-US.\n"
                    },
                    "capacity": {
                      "type": "integer",
                      "format": "int32",
                      "minimum": 1,
                      "maximum": 200,
                      "default": 9,
                      "description": "The maximum number of participants allowed in the room.\n"
                    },
                    "admin_pin": {
                      "type": "string",
                      "minLength": 3,
                      "maxLength": 6,
                      "description": "The PIN for admin of the conference room. Only numeric sequences are allowed.\n"
                    },
                    "room_pin": {
                      "type": "string",
                      "minLength": 3,
                      "maxLength": 6,
                      "description": "The PIN for the conference room. Only numeric sequences are allowed.\n"
                    },
                    "enable_recording": {
                      "type": "boolean",
                      "default": false,
                      "description": "Whether to enable recording when created.\n"
                    },
                    "enable_prompt": {
                      "type": "boolean",
                      "default": true,
                      "description": "Whether to enable voice menu.\n"
                    },
                    "timezone": {
                      "type": "string",
                      "description": "The IANA Time Zone names, such as \"Asia/Shanghai\".\n"
                    },
                    "created_at": {
                      "allOf": [
                        {
                          "type": "string",
                          "format": "date_time",
                          "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                          "example": "2017-07-21T17:32:28Z"
                        }
                      ],
                      "description": "The creation time of conference room.\n"
                    },
                    "scheduled_start_at": {
                      "allOf": [
                        {
                          "type": "string",
                          "format": "date_time",
                          "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                          "example": "2017-07-21T17:32:28Z"
                        }
                      ],
                      "description": "The scheduled start time of meeting.\n"
                    },
                    "scheduled_end_at": {
                      "allOf": [
                        {
                          "type": "string",
                          "format": "date_time",
                          "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                          "example": "2017-07-21T17:32:28Z"
                        }
                      ],
                      "description": "The scheduled end time of meeting.\n"
                    },
                    "numbers": {
                      "type": "string",
                      "maxLength": 128,
                      "description": "Dial from landline/mobile phone to this number.\n"
                    },
                    "internal_invitees": {
                      "type": "array",
                      "items": {
                        "allOf": [
                          {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "description": "The unique ID of user.\n"
                          }
                        ],
                        "description": "A collection of extension's ID for sending invitation emails.\n"
                      }
                    },
                    "external_invitees": {
                      "type": "string",
                      "description": "The invitees to send invitation emails to.\n"
                    },
                    "domain": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 280,
                      "description": "The SIP domain of tenant.  \nIt is usually a fully qualified domain name (FQDN).\nIf there is no FQDN, you can also use the IP address of the PBX server as the SIP domain.\nThe SIP domain name is only used for SIP message authentication and does not require analysis.\n"
                    },
                    "sbc_host": {
                      "type": "string",
                      "description": "The SBC domain.\n"
                    },
                    "sbc_port": {
                      "allOf": [
                        {
                          "type": "integer",
                          "format": "int32",
                          "minimum": 0,
                          "maximum": 65535,
                          "example": 80,
                          "description": "A port number is a 16-bit unsigned integer, thus ranging from 0 to 65535.\nFor TCP, port number 0 is reserved and cannot be used, while for UDP, the source port is optional and a value of zero means no port\n"
                        }
                      ],
                      "default": 8883,
                      "description": "The SBC web port fot https.\n"
                    },
                    "token": {
                      "type": "string",
                      "description": "Access token to be passed as a header\n",
                      "example": "4DFCF1D4C30B4D798ECE3AE43769F008."
                    },
                    "outbound_caller_ids": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "provider_id": {
                            "allOf": [
                              {
                                "allOf": [
                                  {
                                    "type": "string",
                                    "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                    "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"
                    },
                    "custom_options": {
                      "type": "string",
                      "description": "Some custom configuration options serialized as json string\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "id": null,
                      "extension_number": null,
                      "mode": null,
                      "control": null,
                      "height": null,
                      "width": null,
                      "bitrate": null,
                      "framerate": null,
                      "layout": null,
                      "subject": null,
                      "language": null,
                      "capacity": null,
                      "admin_pin": null,
                      "room_pin": null,
                      "enable_recording": null,
                      "enable_prompt": null,
                      "timezone": null,
                      "created_at": null,
                      "scheduled_start_at": null,
                      "scheduled_end_at": null,
                      "numbers": null,
                      "internal_invitees": null,
                      "external_invitees": null,
                      "domain": null,
                      "sbc_host": null,
                      "sbc_port": null,
                      "token": null,
                      "outbound_caller_ids": null,
                      "custom_options": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "post": {
        "tags": [
          "Conference"
        ],
        "operationId": "updateConferenceRoom",
        "x-category": "call-features",
        "x-subcategory": "conference",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Update a conference room",
        "description": "Update a conference room\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of conference room.\n"
            },
            "description": "The unique ID of the conference room."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "control": {
                    "type": "string",
                    "enum": [
                      "FREE",
                      "MASTER"
                    ],
                    "default": "FREE",
                    "description": "The conference control type.  \nCan be either:  \n- `FREE`: the free mode.  \n- `MASTER`: the master mode.\n"
                  },
                  "height": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 144,
                    "maximum": 1920,
                    "default": 720,
                    "description": "The height for video conference room.  \nOnly valid in `VIDEO` mode.\n"
                  },
                  "width": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 144,
                    "maximum": 1920,
                    "default": 1280,
                    "description": "The width for video conference room.  \nOnly valid in `VIDEO` mode.\n"
                  },
                  "bitrate": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 128,
                    "maximum": 10240,
                    "default": 1024,
                    "description": "The transmission rate for video conference room.  \nOnly valid in `VIDEO` mode.\n"
                  },
                  "framerate": {
                    "type": "integer",
                    "minimum": 5,
                    "maximum": 30,
                    "default": 15,
                    "description": "The framerate for video conference room.  \nOnly valid in `VIDEO` mode.\n"
                  },
                  "layout": {
                    "type": "string",
                    "enum": [
                      "LAYOUT0",
                      "LAYOUT1",
                      "LAYOUT2",
                      "LAYOUT3",
                      "LAYOUT4",
                      "LAYOUT6",
                      "LAYOUT9"
                    ],
                    "default": "LAYOUT0",
                    "description": "The number of grids allowed for video conference room.  \nOnly valid in `VIDEO` mode.  \nCan be either:  \n- LAYOUT0:\n- LAYOUT1:\n- LAYOUT2:\n- LAYOUT3:\n- LAYOUT4:\n- LAYOUT6:\n- LAYOUT9:\n"
                  },
                  "subject": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64,
                    "description": "The subject of conference room.\n"
                  },
                  "language": {
                    "type": "string",
                    "example": "en-US",
                    "description": "BCP 47 Language Tags (The Internet Best Current Practices (BCP) for language tags).\nA language tag is composed of a sequence of one or more subtags such as language, region, variant and script subtags.\nWhen a language tag is comprised of more than one subtag, the subtag values are separated by the \"-\" character.\nYou will most commonly find language tags written with 2 subtags - language and region. For example: en-US.\n"
                  },
                  "capacity": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 1,
                    "maximum": 200,
                    "default": 9,
                    "description": "The maximum number of participants allowed in the room.\n"
                  },
                  "admin_pin": {
                    "type": "string",
                    "minLength": 3,
                    "maxLength": 6,
                    "description": "The PIN for admin of the conference room. Only numeric sequences are allowed.\n"
                  },
                  "room_pin": {
                    "type": "string",
                    "minLength": 3,
                    "maxLength": 6,
                    "description": "The PIN for the conference room. Only numeric sequences are allowed.\n"
                  },
                  "enable_prompt": {
                    "type": "boolean",
                    "default": true,
                    "description": "Whether to enable voice menu.\n"
                  },
                  "timezone": {
                    "type": "string",
                    "description": "The IANA Time Zone names, such as \"Asia/Shanghai\".\n"
                  },
                  "scheduled_start_at": {
                    "allOf": [
                      {
                        "type": "string",
                        "format": "date_time",
                        "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                        "example": "2017-07-21T17:32:28Z"
                      }
                    ],
                    "description": "The scheduled start time of meeting.\n"
                  },
                  "scheduled_end_at": {
                    "allOf": [
                      {
                        "type": "string",
                        "format": "date_time",
                        "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                        "example": "2017-07-21T17:32:28Z"
                      }
                    ],
                    "description": "The scheduled end time of meeting.\n"
                  },
                  "numbers": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "Dial from landline/mobile phone to this number.\n"
                  },
                  "internal_invitees": {
                    "type": "array",
                    "items": {
                      "allOf": [
                        {
                          "allOf": [
                            {
                              "type": "string",
                              "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                              "description": "The unique ID of the resource.\n"
                            }
                          ],
                          "description": "The unique ID of user.\n"
                        }
                      ],
                      "description": "A collection of extension's ID for sending invitation emails.\n"
                    }
                  },
                  "external_invitees": {
                    "type": "string",
                    "description": "The invitees to send invitation emails to.\n"
                  },
                  "outbound_caller_ids": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "provider_id": {
                          "allOf": [
                            {
                              "allOf": [
                                {
                                  "type": "string",
                                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                  "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"
                  },
                  "custom_options": {
                    "type": "string",
                    "description": "Some custom configuration options serialized as json string\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "control": null,
                    "height": null,
                    "width": null,
                    "bitrate": null,
                    "framerate": null,
                    "layout": null,
                    "subject": null,
                    "language": null,
                    "capacity": null,
                    "admin_pin": null,
                    "room_pin": null,
                    "enable_prompt": null,
                    "timezone": null,
                    "scheduled_start_at": null,
                    "scheduled_end_at": null,
                    "numbers": null,
                    "internal_invitees": null,
                    "external_invitees": null,
                    "outbound_caller_ids": null,
                    "custom_options": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/conference_rooms/{id}/destroy": {
      "post": {
        "tags": [
          "Conference"
        ],
        "operationId": "deleteConferenceRoom",
        "x-category": "call-features",
        "x-subcategory": "conference",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Delete a conference room",
        "description": "Destroy a conference room\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of conference room.\n"
            },
            "description": "The unique ID of the conference room."
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Invalid username supplied"
          },
          "404": {
            "description": "Not found"
          }
        }
      }
    },
    "/conference_rooms/{id}/status": {
      "get": {
        "tags": [
          "Conference"
        ],
        "operationId": "getConferenceRoomStatus",
        "x-category": "call-features",
        "x-subcategory": "conference",
        "x-permissions": [
          "PhoneSystem.ViewOnly"
        ],
        "summary": "Query conference room's status",
        "description": "Query conference room's status by it's unique ID.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of conference room.\n"
            },
            "description": "The unique ID of the conference room."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "enum": [
                        "ONLINE",
                        "OFFLINE",
                        "ON_CALL"
                      ],
                      "description": "The conference room status.\nCan be either:  \n- `ONLINE`:\n- `OFFLINE`:\n- `ON_CALL`:\n"
                    },
                    "locked": {
                      "type": "boolean",
                      "description": "Whether the conference room was locked.\n"
                    },
                    "muted": {
                      "type": "boolean",
                      "description": "Whether the conference room was muted.\n"
                    },
                    "recording": {
                      "type": "boolean",
                      "description": "Whether the conference room is recording.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "status": null,
                      "locked": null,
                      "muted": null,
                      "recording": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/conference_rooms/{id}/mute": {
      "post": {
        "tags": [
          "Conference"
        ],
        "operationId": "muteConferenceRoom",
        "x-category": "call-features",
        "x-subcategory": "conference",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Mute conference room",
        "description": "Mute conference room.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of conference room.\n"
            },
            "description": "The unique ID of the conference room."
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/conference_rooms/{id}/unmute": {
      "post": {
        "tags": [
          "Conference"
        ],
        "operationId": "unmuteConferenceRoom",
        "x-category": "call-features",
        "x-subcategory": "conference",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Unmute conference room",
        "description": "Unmute conference room by it's unique ID.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of conference room.\n"
            },
            "description": "The unique ID of the conference room."
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/conference_rooms/{id}/lock": {
      "post": {
        "tags": [
          "Conference"
        ],
        "operationId": "lockConferenceRoom",
        "x-category": "call-features",
        "x-subcategory": "conference",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Lock conference room",
        "description": "Lock conference room by it's unique ID.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of conference room.\n"
            },
            "description": "The unique ID of the conference room."
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/conference_rooms/{id}/unlock": {
      "post": {
        "tags": [
          "Conference"
        ],
        "operationId": "unlockConferenceRoom",
        "x-category": "call-features",
        "x-subcategory": "conference",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Unlock conference room",
        "description": "Unlock conference room by it's unique ID.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of conference room.\n"
            },
            "description": "The unique ID of the conference room."
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/conference_rooms/{id}/start_recording": {
      "post": {
        "tags": [
          "Conference"
        ],
        "operationId": "startRecordingInConferenceRoom",
        "x-category": "call-features",
        "x-subcategory": "conference",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Start recording in conference room",
        "description": "Start recording in conference room.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of conference room.\n"
            },
            "description": "The unique ID of the conference room."
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/conference_rooms/{id}/stop_recording": {
      "post": {
        "tags": [
          "Conference"
        ],
        "operationId": "stopRecordingInConferenceRoom",
        "x-category": "call-features",
        "x-subcategory": "conference",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Stop recording in conference room",
        "description": "Stop recording in conference room.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of conference room.\n"
            },
            "description": "The unique ID of the conference room."
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/conference_rooms/{id}/participants": {
      "get": {
        "tags": [
          "Conference"
        ],
        "operationId": "listConferenceRoomParticipants",
        "x-category": "call-features",
        "x-subcategory": "conference",
        "x-permissions": [
          "PhoneSystem.ViewOnly"
        ],
        "summary": "List room participants",
        "description": "Retrieve a collection of conference room participants.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of conference room.\n"
            },
            "description": "The unique ID of conference room."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "description": "The unique ID of conference room participant.\n"
                          },
                          "display_name": {
                            "type": "string",
                            "example": "\"example\"<sip:100@example.com>",
                            "description": "The display name of conference room participant.\n"
                          },
                          "muted": {
                            "type": "boolean",
                            "description": "Whether the participant is muted.\n"
                          },
                          "chairman": {
                            "type": "boolean",
                            "description": "Indicates whether the user is chairman of the conference room.\n"
                          },
                          "position": {
                            "type": "integer",
                            "format": "int32",
                            "minimum": -1,
                            "maximum": 8,
                            "description": "The position of room member.  \nThe member will not be displayed when *-1* is specified.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "items": [
                        {
                          "id": null,
                          "display_name": null,
                          "muted": null,
                          "chairman": null,
                          "position": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/conference_rooms/{id}/participants/layout": {
      "post": {
        "tags": [
          "Conference"
        ],
        "operationId": "updateConferenceRoomParticipantsLayout",
        "x-category": "call-features",
        "x-subcategory": "conference",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Update conference room participant layout",
        "description": "Update conference room participants layout based on room layout.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of conference room.\n"
            },
            "description": "The unique ID of the conference room."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "items": {
                    "type": "array",
                    "items": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of conference room participant.\n"
                    },
                    "description": "A collection of participant's id.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "items": [
                      "xxxxxxxx",
                      "yyyyyyyy"
                    ]
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/conference_rooms/{id}/participants/{participant_id}": {
      "get": {
        "tags": [
          "Conference"
        ],
        "operationId": "getConferenceRoomParticipant",
        "x-category": "call-features",
        "x-subcategory": "conference",
        "x-permissions": [
          "PhoneSystem.ViewOnly"
        ],
        "summary": "Get room participant details",
        "description": "Get room participant details.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of conference room.\n"
            },
            "description": "The unique ID of conference room."
          },
          {
            "name": "participant_id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of conference room participant.\n"
            },
            "description": "The id of the participant."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of conference room participant.\n"
                    },
                    "display_name": {
                      "type": "string",
                      "example": "\"example\"<sip:100@example.com>",
                      "description": "The display name of conference room participant.\n"
                    },
                    "muted": {
                      "type": "boolean",
                      "description": "Whether the participant is muted.\n"
                    },
                    "chairman": {
                      "type": "boolean",
                      "description": "Indicates whether the user is chairman of the conference room.\n"
                    },
                    "position": {
                      "type": "integer",
                      "format": "int32",
                      "minimum": -1,
                      "maximum": 8,
                      "description": "The position of room member.  \nThe member will not be displayed when *-1* is specified.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "id": null,
                      "display_name": null,
                      "muted": null,
                      "chairman": null,
                      "position": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/conference_rooms/{id}/participants/invite": {
      "post": {
        "tags": [
          "Conference"
        ],
        "operationId": "inviteConferenceRoomParticipant",
        "x-category": "call-features",
        "x-subcategory": "conference",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Invite as room participant",
        "description": "Invite an user as conference room participant.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of conference room.\n"
            },
            "description": "The unique ID of the conference room."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "number": {
                    "type": "string",
                    "description": "The number of invited participant.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "number": "111-222-33333"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/conference_rooms/{id}/participants/{participant_id}/mute": {
      "post": {
        "tags": [
          "Conference"
        ],
        "operationId": "muteConferenceRoomParticipant",
        "x-category": "call-features",
        "x-subcategory": "conference",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Mute room participant",
        "description": "Mute conference room participant.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of conference room.\n"
            },
            "description": "The unique ID of the conference room."
          },
          {
            "name": "participant_id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of conference room participant.\n"
            },
            "description": "The id of the participant."
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/conference_rooms/{id}/participants/{participant_id}/unmute": {
      "post": {
        "tags": [
          "Conference"
        ],
        "operationId": "unmuteConferenceRoomParticipant",
        "x-category": "call-features",
        "x-subcategory": "conference",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Unmute room participant",
        "description": "Unmute conference room participant.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of conference room.\n"
            },
            "description": "The unique ID of the conference room."
          },
          {
            "name": "participant_id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of conference room participant.\n"
            },
            "description": "The id of the participant."
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/conference_rooms/{id}/participants/{participant_id}/chairman": {
      "post": {
        "tags": [
          "Conference"
        ],
        "operationId": "transferConferenceRoomOwnership",
        "x-category": "call-features",
        "x-subcategory": "conference",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Transfer room ownership",
        "description": "Transfer room ownership to another participant.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of conference room.\n"
            },
            "description": "The unique ID of room."
          },
          {
            "name": "participant_id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of conference room participant.\n"
            },
            "description": "The id of the participant."
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/conference_rooms/{id}/participants/{participant_id}/position": {
      "post": {
        "tags": [
          "Conference"
        ],
        "operationId": "setConferenceRoomParticipantPosition",
        "x-category": "call-features",
        "x-subcategory": "conference",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Set conference room participant position",
        "description": "Set conference room participant position.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of conference room.\n"
            },
            "description": "The unique ID of the conference room."
          },
          {
            "name": "participant_id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of conference room participant.\n"
            },
            "description": "The id of the participant."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "position": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": -1,
                    "maximum": 8,
                    "description": "The position of room member.  \nThe member will not be displayed when *-1* is specified.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "position": 1
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/conference_rooms/{id}/participants/{participant_id}/destroy": {
      "post": {
        "tags": [
          "Conference"
        ],
        "operationId": "kickOutConferenceRoomParticipant",
        "x-category": "call-features",
        "x-subcategory": "conference",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Kick out room participant",
        "description": "Kick out conference room participant.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of conference room.\n"
            },
            "description": "The unique ID of the conference room."
          },
          {
            "name": "participant_id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of conference room participant.\n"
            },
            "description": "The id of the participant."
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/conference_rooms/{id}/recordings": {
      "get": {
        "tags": [
          "Conference"
        ],
        "operationId": "listConferenceRecordings",
        "x-category": "call-features",
        "x-subcategory": "conference",
        "x-permissions": [
          "PhoneSystem.ViewOnly"
        ],
        "summary": "List conference recordings",
        "description": "Retrieve a collection of conference room's recordings.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of conference room.\n"
            },
            "description": "The unique ID of the conference room."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "count": {
                      "type": "integer",
                      "format": "int64",
                      "minimum": 0,
                      "example": 100,
                      "description": "Total number of resource.\n"
                    },
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "description": "The unique ID of conference recording.\n"
                          },
                          "answered_at": {
                            "allOf": [
                              {
                                "type": "string",
                                "format": "date_time",
                                "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                                "example": "2017-07-21T17:32:28Z"
                              }
                            ],
                            "description": "Time on which the call is answered.\n"
                          },
                          "ended_at": {
                            "allOf": [
                              {
                                "type": "string",
                                "format": "date_time",
                                "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                                "example": "2017-07-21T17:32:28Z"
                              }
                            ],
                            "description": "Time on which the call is ended.\n"
                          },
                          "duration": {
                            "type": "integer",
                            "format": "int32",
                            "description": "The playback time (in seconds).\n"
                          },
                          "file_name": {
                            "type": "string",
                            "description": "The name of the file.\n"
                          },
                          "file_size": {
                            "type": "integer",
                            "format": "int64",
                            "minimum": 0,
                            "example": 0,
                            "description": "The file size in bytes.\n"
                          },
                          "file_url": {
                            "type": "string",
                            "readOnly": true,
                            "example": "/api/blobs/WexWdABcd5D4PDgzTKV3gAAAEu00WcK",
                            "description": "The relative path to file url for file downloading.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "count": null,
                      "items": [
                        {
                          "id": null,
                          "answered_at": null,
                          "ended_at": null,
                          "duration": null,
                          "file_name": null,
                          "file_size": null,
                          "file_url": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/conference_rooms/{id}/recordings/{recording_id}/destroy": {
      "post": {
        "tags": [
          "Conference"
        ],
        "operationId": "deleteConferenceRecording",
        "x-category": "call-features",
        "x-subcategory": "conference",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Delete a conference record",
        "description": "Delete a conference recording of conference room.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of conference room.\n"
            },
            "description": "The unique ID of the conference room."
          },
          {
            "name": "recording_id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of conference recording.\n"
            },
            "description": "The unique ID of the conference room recording."
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/conference_rooms/{id}/recordings/{recording_id}/set_read": {
      "post": {
        "tags": [
          "Conference"
        ],
        "operationId": "setConferenceRecordingRead",
        "x-category": "call-features",
        "x-subcategory": "conference",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Update conference recording status to read",
        "description": "Update conference recording status to read\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of conference room.\n"
            },
            "description": "The unique ID of the conference room."
          },
          {
            "name": "recording_id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of conference recording.\n"
            },
            "description": "The unique ID of the conference room recording."
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/conference_rooms/{id}/recordings/{recording_id}/set_unread": {
      "post": {
        "tags": [
          "Conference"
        ],
        "operationId": "setConferenceRecordingUnRead",
        "x-category": "call-features",
        "x-subcategory": "conference",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Update conference recording status to read",
        "description": "Update conference recording status to read\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of conference room.\n"
            },
            "description": "The unique ID of the conference room."
          },
          {
            "name": "recording_id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of conference recording.\n"
            },
            "description": "The unique ID of the conference room recording."
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/contacts": {
      "post": {
        "tags": [
          "Contact"
        ],
        "operationId": "createContact",
        "x-category": "contacts",
        "x-subcategory": "contacts",
        "x-permissions": [
          "CompanyContact.FullAccess"
        ],
        "summary": "Add a new contact",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64,
                    "description": "The name of contact.\n"
                  },
                  "email": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The email of contact.\n"
                  },
                  "company": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The company name of contact.\n"
                  },
                  "title": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The title of contact.\n"
                  },
                  "business": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The business phone number of contact.\n"
                  },
                  "business2": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The secondary business phone number of contact.\n"
                  },
                  "mobile_phone": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The mobile phone number of contact.\n"
                  },
                  "mobile_phone2": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The secondary mobile phone number of contact.\n"
                  },
                  "home_phone": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The home phone number of contact.\n"
                  },
                  "home_phone2": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The secondary home phone number of contact.\n"
                  },
                  "other": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The other phone number of contact.\n"
                  },
                  "business_fax": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The business fax of contact.\n"
                  },
                  "home_fax": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The home fax of contact.\n"
                  },
                  "address": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The address.\n"
                  },
                  "notes": {
                    "type": "string",
                    "maxLength": 1024,
                    "description": "The notes of contact.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "name": null,
                    "email": null,
                    "company": null,
                    "title": null,
                    "business": null,
                    "business2": null,
                    "mobile_phone": null,
                    "mobile_phone2": null,
                    "home_phone": null,
                    "home_phone2": null,
                    "other": null,
                    "business_fax": null,
                    "home_fax": null,
                    "address": null,
                    "notes": null
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created contact",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of contact.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "The ID of created resource",
                    "value": {
                      "id": "xxxxxxxx"
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "get": {
        "tags": [
          "Contact"
        ],
        "operationId": "listContacts",
        "x-category": "contacts",
        "x-subcategory": "contacts",
        "x-permissions": [
          "CompanyContact.ViewOnly"
        ],
        "summary": "List contact",
        "description": "Retrieve a collection of contacts.\n",
        "parameters": [
          {
            "name": "skip",
            "in": "query",
            "required": false,
            "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",
            "required": false,
            "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,
                      "example": 100,
                      "description": "Total number of resource.\n"
                    },
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "description": "The unique ID of contact.\n"
                          },
                          "name": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 64,
                            "description": "The name of contact.\n"
                          },
                          "email": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The email of contact.\n"
                          },
                          "company": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The company name of contact.\n"
                          },
                          "title": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The title of contact.\n"
                          },
                          "business": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The business phone number of contact.\n"
                          },
                          "business2": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The secondary business phone number of contact.\n"
                          },
                          "mobile_phone": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The mobile phone number of contact.\n"
                          },
                          "mobile_phone2": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The secondary mobile phone number of contact.\n"
                          },
                          "home_phone": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The home phone number of contact.\n"
                          },
                          "home_phone2": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The secondary home phone number of contact.\n"
                          },
                          "other": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The other phone number of contact.\n"
                          },
                          "business_fax": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The business fax of contact.\n"
                          },
                          "home_fax": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The home fax of contact.\n"
                          },
                          "address": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The address.\n"
                          },
                          "notes": {
                            "type": "string",
                            "maxLength": 1024,
                            "description": "The notes of contact.\n"
                          },
                          "sync_type": {
                            "type": "string",
                            "enum": [
                              "Microsoft 365"
                            ],
                            "description": "The synchronization method.   \nCan be either:   \n- `Microsoft 365`: Sync from Microsoft 365.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": null,
                          "name": null,
                          "email": null,
                          "company": null,
                          "title": null,
                          "business": null,
                          "business2": null,
                          "mobile_phone": null,
                          "mobile_phone2": null,
                          "home_phone": null,
                          "home_phone2": null,
                          "other": null,
                          "business_fax": null,
                          "home_fax": null,
                          "address": null,
                          "notes": null,
                          "sync_type": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/contacts/{id}": {
      "get": {
        "tags": [
          "Contact"
        ],
        "operationId": "showContact",
        "x-category": "contacts",
        "x-subcategory": "contacts",
        "x-permissions": [
          "CompanyContact.ViewOnly"
        ],
        "summary": "Retrieve contact",
        "description": "Retrieves details of a contact.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of contact.\n"
            },
            "description": "The unique ID of the contact."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of contact.\n"
                    },
                    "name": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64,
                      "description": "The name of contact.\n"
                    },
                    "email": {
                      "type": "string",
                      "maxLength": 128,
                      "description": "The email of contact.\n"
                    },
                    "company": {
                      "type": "string",
                      "maxLength": 128,
                      "description": "The company name of contact.\n"
                    },
                    "title": {
                      "type": "string",
                      "maxLength": 128,
                      "description": "The title of contact.\n"
                    },
                    "business": {
                      "type": "string",
                      "maxLength": 128,
                      "description": "The business phone number of contact.\n"
                    },
                    "business2": {
                      "type": "string",
                      "maxLength": 128,
                      "description": "The secondary business phone number of contact.\n"
                    },
                    "mobile_phone": {
                      "type": "string",
                      "maxLength": 128,
                      "description": "The mobile phone number of contact.\n"
                    },
                    "mobile_phone2": {
                      "type": "string",
                      "maxLength": 128,
                      "description": "The secondary mobile phone number of contact.\n"
                    },
                    "home_phone": {
                      "type": "string",
                      "maxLength": 128,
                      "description": "The home phone number of contact.\n"
                    },
                    "home_phone2": {
                      "type": "string",
                      "maxLength": 128,
                      "description": "The secondary home phone number of contact.\n"
                    },
                    "other": {
                      "type": "string",
                      "maxLength": 128,
                      "description": "The other phone number of contact.\n"
                    },
                    "business_fax": {
                      "type": "string",
                      "maxLength": 128,
                      "description": "The business fax of contact.\n"
                    },
                    "home_fax": {
                      "type": "string",
                      "maxLength": 128,
                      "description": "The home fax of contact.\n"
                    },
                    "address": {
                      "type": "string",
                      "maxLength": 128,
                      "description": "The address.\n"
                    },
                    "notes": {
                      "type": "string",
                      "maxLength": 1024,
                      "description": "The notes of contact.\n"
                    },
                    "sync_type": {
                      "type": "string",
                      "enum": [
                        "Microsoft 365"
                      ],
                      "description": "The synchronization method.   \nCan be either:   \n- `Microsoft 365`: Sync from Microsoft 365.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "id": null,
                      "name": null,
                      "email": null,
                      "company": null,
                      "title": null,
                      "business": null,
                      "business2": null,
                      "mobile_phone": null,
                      "mobile_phone2": null,
                      "home_phone": null,
                      "home_phone2": null,
                      "other": null,
                      "business_fax": null,
                      "home_fax": null,
                      "address": null,
                      "notes": null,
                      "sync_type": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "post": {
        "tags": [
          "Contact"
        ],
        "operationId": "updateContact",
        "x-category": "contacts",
        "x-subcategory": "contacts",
        "x-permissions": [
          "CompanyContact.FullAccess"
        ],
        "summary": "Update a contact",
        "description": "Update an contact.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of contact.\n"
            },
            "description": "The unique ID of the contact."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64,
                    "description": "The name of contact.\n"
                  },
                  "email": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The email of contact.\n"
                  },
                  "company": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The company name of contact.\n"
                  },
                  "title": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The title of contact.\n"
                  },
                  "business": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The business phone number of contact.\n"
                  },
                  "business2": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The secondary business phone number of contact.\n"
                  },
                  "mobile_phone": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The mobile phone number of contact.\n"
                  },
                  "mobile_phone2": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The secondary mobile phone number of contact.\n"
                  },
                  "home_phone": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The home phone number of contact.\n"
                  },
                  "home_phone2": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The secondary home phone number of contact.\n"
                  },
                  "other": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The other phone number of contact.\n"
                  },
                  "business_fax": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The business fax of contact.\n"
                  },
                  "home_fax": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The home fax of contact.\n"
                  },
                  "address": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The address.\n"
                  },
                  "notes": {
                    "type": "string",
                    "maxLength": 1024,
                    "description": "The notes of contact.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "name": null,
                    "email": null,
                    "company": null,
                    "title": null,
                    "business": null,
                    "business2": null,
                    "mobile_phone": null,
                    "mobile_phone2": null,
                    "home_phone": null,
                    "home_phone2": null,
                    "other": null,
                    "business_fax": null,
                    "home_fax": null,
                    "address": null,
                    "notes": null
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/contacts/{id}/destroy": {
      "post": {
        "tags": [
          "Contact"
        ],
        "operationId": "deleteContact",
        "x-category": "contacts",
        "x-subcategory": "contacts",
        "x-permissions": [
          "CompanyContact.ViewOnly"
        ],
        "summary": "Delete a contact",
        "description": "Delete a certain contact by it's unique id.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of contact.\n"
            },
            "description": "The unique ID of the contact."
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/contacts/export": {
      "get": {
        "tags": [
          "Contact"
        ],
        "operationId": "exportContacts",
        "x-category": "contacts",
        "x-subcategory": "contacts",
        "x-permissions": [
          "CompanyContact.FullAccess"
        ],
        "summary": "Export contacts",
        "description": "Export a collection of contacts to file.\n",
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "Content-Disposition": {
                "schema": {
                  "type": "string"
                },
                "description": "the format is `attachment; filename=\"example\"`"
              }
            },
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/emergency_numbers": {
      "post": {
        "tags": [
          "Emergency Number"
        ],
        "operationId": "addEmergencyNumber",
        "x-category": "call-control",
        "x-subcategory": "emergency-calling",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Add emergency number.",
        "description": "Add a new emergency number.\n",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "number_prefix": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64,
                    "description": "The emergency number prefix.\n"
                  },
                  "description": {
                    "type": "string",
                    "maxLength": 1024,
                    "description": "The emergency number description.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "number_prefix": null,
                    "description": null
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of emergency number.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "The ID of created resource",
                    "value": {
                      "id": "xxxxxxxx"
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "get": {
        "tags": [
          "Emergency Number"
        ],
        "operationId": "listEmergencyNumbers",
        "x-category": "call-control",
        "x-subcategory": "emergency-calling",
        "x-permissions": [
          "PhoneSystem.ViewOnly"
        ],
        "summary": "List emergency numbers",
        "description": "Get a collection of emergency numbers.\n",
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Use the `filter` query parameter to retrieve just a subset of a collection.\n"
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "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",
            "required": false,
            "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",
            "required": false,
            "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",
            "required": false,
            "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,
                      "example": 100,
                      "description": "Total number of resource.\n"
                    },
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "description": "The unique ID of emergency number.\n"
                          },
                          "number_prefix": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 64,
                            "description": "The emergency number prefix.\n"
                          },
                          "description": {
                            "type": "string",
                            "maxLength": 1024,
                            "description": "The emergency number description.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": null,
                          "number_prefix": null,
                          "description": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/emergency_numbers/{id}": {
      "get": {
        "tags": [
          "Emergency Number"
        ],
        "operationId": "showEmergencyNumber",
        "x-category": "call-control",
        "x-subcategory": "emergency-calling",
        "x-permissions": [
          "PhoneSystem.ViewOnly"
        ],
        "summary": "Retrieve emergency number",
        "description": "Get detail information of emergency number.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of emergency number.\n"
            },
            "description": "The unique ID of the emergency number."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of emergency number.\n"
                    },
                    "number_prefix": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64,
                      "description": "The emergency number prefix.\n"
                    },
                    "description": {
                      "type": "string",
                      "maxLength": 1024,
                      "description": "The emergency number description.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "id": null,
                      "number_prefix": null,
                      "description": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "post": {
        "tags": [
          "Emergency Number"
        ],
        "operationId": "updateEmergencyNumber",
        "x-category": "call-control",
        "x-subcategory": "emergency-calling",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Update emergency number",
        "description": "Update a emergency number.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of emergency number.\n"
            },
            "description": "The unique ID of the emergency number."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "number_prefix": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64,
                    "description": "The emergency number prefix.\n"
                  },
                  "description": {
                    "type": "string",
                    "maxLength": 1024,
                    "description": "The emergency number description.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "number_prefix": null,
                    "description": null
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/emergency_numbers/{id}/destroy": {
      "post": {
        "tags": [
          "Emergency Number"
        ],
        "operationId": "deleteEmergencyNumber",
        "x-category": "call-control",
        "x-subcategory": "emergency-calling",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Delete emergency number",
        "description": "Delete emergency number\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
              "description": "The unique ID of the resource.\n"
            },
            "description": "The unique ID of the emergency number."
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/files": {
      "get": {
        "tags": [
          "File"
        ],
        "operationId": "listFiles",
        "x-category": "files",
        "x-subcategory": "files",
        "x-permissions": [],
        "summary": "List files",
        "description": "Get a collection of files.\n",
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Use the `filter` query parameter to retrieve just a subset of a collection.\n"
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "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",
            "required": false,
            "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",
            "required": false,
            "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",
            "required": false,
            "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,
                      "example": 100,
                      "description": "Total number of resource.\n"
                    },
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "description": "The unique ID of the file.\n"
                          },
                          "name": {
                            "type": "string",
                            "description": "The name of the file.\n"
                          },
                          "size": {
                            "type": "integer",
                            "format": "int64",
                            "minimum": 0,
                            "example": 0,
                            "description": "The file size in bytes.\n"
                          },
                          "media_type": {
                            "type": "string",
                            "description": "The file formats and format contents transmitted on the Internet.\n",
                            "example": "audio/vnd.wave"
                          },
                          "created_at": {
                            "allOf": [
                              {
                                "type": "string",
                                "format": "date_time",
                                "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                                "example": "2017-07-21T17:32:28Z"
                              }
                            ],
                            "description": "The creation time of the file.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": null,
                          "name": null,
                          "size": null,
                          "media_type": null,
                          "created_at": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/files/{id}": {
      "get": {
        "tags": [
          "File"
        ],
        "operationId": "retrieveFileInfo",
        "x-category": "files",
        "x-subcategory": "files",
        "x-permissions": [],
        "summary": "Retrieve file",
        "description": "Get file details by it's unique ID.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of the file.\n"
            },
            "description": "The unique ID of the file."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of the file.\n"
                    },
                    "name": {
                      "type": "string",
                      "description": "The name of the file.\n"
                    },
                    "size": {
                      "type": "integer",
                      "format": "int64",
                      "minimum": 0,
                      "example": 0,
                      "description": "The file size in bytes.\n"
                    },
                    "media_type": {
                      "type": "string",
                      "description": "The file formats and format contents transmitted on the Internet.\n",
                      "example": "audio/vnd.wave"
                    },
                    "created_at": {
                      "allOf": [
                        {
                          "type": "string",
                          "format": "date_time",
                          "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                          "example": "2017-07-21T17:32:28Z"
                        }
                      ],
                      "description": "The creation time of the file.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "id": null,
                      "name": null,
                      "size": null,
                      "media_type": null,
                      "created_at": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/files/{id}/destroy": {
      "post": {
        "tags": [
          "File"
        ],
        "operationId": "deleteFile",
        "x-category": "files",
        "x-subcategory": "files",
        "x-permissions": [],
        "summary": "Delete a file",
        "description": "Delete a certain file.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of the file.\n"
            },
            "description": "The unique ID of the file."
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Invalid file id supplied"
          },
          "404": {
            "description": "User not found"
          }
        }
      }
    },
    "/blobs/uploads": {
      "post": {
        "tags": [
          "Blobs"
        ],
        "operationId": "initBlobUpload",
        "x-category": "files",
        "x-subcategory": "files",
        "x-permissions": [],
        "summary": "Initiate file upload",
        "description": "Initiate a file upload. This endpoint can be used to create resumable uploads.\n",
        "parameters": [
          {
            "name": "filename",
            "in": "query",
            "schema": {
              "type": "string",
              "description": "The name of the file.\n"
            },
            "description": "The file name of uploaded file.\n"
          },
          {
            "name": "temporary",
            "in": "query",
            "schema": {
              "type": "boolean",
              "description": "When uploading temporary files, set the parameter to `true`.\n"
            },
            "description": "When uploading temporary files, set the parameter to `true`.\n"
          }
        ],
        "responses": {
          "202": {
            "description": "Accepted",
            "headers": {
              "PortSIP-Upload-ID": {
                "schema": {
                  "type": "string"
                },
                "description": "The UUID of file upload.\n"
              },
              "PortSIP-Upload-Token": {
                "schema": {
                  "type": "string"
                },
                "description": "The upload token of file upload.\n"
              },
              "Content-Length": {
                "schema": {
                  "type": "integer"
                },
                "description": "The length of content.\n"
              },
              "Range": {
                "schema": {
                  "type": "string"
                },
                "description": "The content range of file uploaded.\n"
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/blobs/uploads/{id}/append": {
      "post": {
        "tags": [
          "Blobs"
        ],
        "operationId": "appendBlobUpload",
        "x-category": "files",
        "x-subcategory": "files",
        "x-permissions": [],
        "summary": "Upload a chunk of data for the specified upload.",
        "description": "Upload a stream of data to upload without completing the upload.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "example": "52e51422-573d-4fc9-b5c6-4a30058f5d71",
              "description": "The universally unique identifier (UUID).\n"
            },
            "description": "The keyed UUID of the file upload."
          },
          {
            "name": "PortSIP-Upload-Token",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The upload token of file upload.\n"
          }
        ],
        "requestBody": {
          "content": {
            "application/octet-stream": {
              "schema": {
                "type": "string",
                "format": "binary"
              }
            }
          }
        },
        "responses": {
          "203": {
            "description": "Accepted",
            "headers": {
              "PortSIP-Upload-ID": {
                "schema": {
                  "type": "string"
                },
                "description": "The UUID of file upload.\n"
              },
              "PortSIP-Upload-Token": {
                "schema": {
                  "type": "string"
                },
                "description": "The upload token of file upload.\n"
              },
              "Content-Length": {
                "schema": {
                  "type": "integer"
                },
                "description": "The length of content.\n"
              },
              "Range": {
                "schema": {
                  "type": "string"
                },
                "description": "The content range of file uploaded.\n"
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/blobs/uploads/{id}/complete": {
      "post": {
        "tags": [
          "Blobs"
        ],
        "operationId": "completeBlobUpload",
        "x-category": "files",
        "x-subcategory": "files",
        "x-permissions": [],
        "summary": "Complete file upload",
        "description": "Complete the upload specified by unique ID, providing all the data in the body, if necessary.\nA request without a body will just complete the upload with previously uploaded content.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "example": "52e51422-573d-4fc9-b5c6-4a30058f5d71",
              "description": "The universally unique identifier (UUID).\n"
            },
            "description": "The keyed UUID of the file upload."
          },
          {
            "name": "PortSIP-Upload-Token",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The upload token of file upload.\n"
          },
          {
            "name": "digest",
            "in": "query",
            "schema": {
              "type": "string",
              "example": "84d89877f0d4041efb6bf91a16f0248f2fd573e6af05c19f96bedb9f882f7882",
              "description": "The Content Digests.\nA digest is a serialized hash result, consisting of a algorithm and hex portion.\nOnly sha256 based digest accepted.\n"
            },
            "description": "The digest of the file upload content."
          }
        ],
        "requestBody": {
          "content": {
            "application/octet-stream": {
              "schema": {
                "type": "string",
                "format": "binary"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of the file.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "The ID of created resource",
                    "value": {
                      "id": "xxxxxxxx"
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/blobs/uploads/{id}/status": {
      "get": {
        "tags": [
          "Blobs"
        ],
        "operationId": "getBlobUploadStatus",
        "x-category": "files",
        "x-subcategory": "files",
        "x-permissions": [],
        "summary": "Get file upload status",
        "description": "Retrieve status of upload identified by the unique ID.\nThe primary purpose of this endpoint is to resolve the current status of a resumable upload.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "example": "52e51422-573d-4fc9-b5c6-4a30058f5d71",
              "description": "The universally unique identifier (UUID).\n"
            },
            "description": "The keyed UUID of the file upload."
          }
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "headers": {
              "PortSIP-Upload-ID": {
                "schema": {
                  "type": "string"
                },
                "description": "The UUID of file upload.\n"
              },
              "PortSIP-Upload-Token": {
                "schema": {
                  "type": "string"
                },
                "description": "The upload token of file upload.\n"
              },
              "Content-Length": {
                "schema": {
                  "type": "integer"
                },
                "description": "The length of content.\n"
              },
              "Range": {
                "schema": {
                  "type": "string"
                },
                "description": "The content range of file uploaded.\n"
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/blobs/uploads/{id}/destroy": {
      "post": {
        "tags": [
          "Blobs"
        ],
        "operationId": "deleteBlobUpload",
        "x-category": "files",
        "x-subcategory": "files",
        "x-permissions": [],
        "summary": "Delete file upload",
        "description": "Cancel outstanding upload processes, releasing associated resources.\nIf this is not called, the unfinished uploads will eventually timeout.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "example": "52e51422-573d-4fc9-b5c6-4a30058f5d71",
              "description": "The universally unique identifier (UUID).\n"
            },
            "description": "The keyed UUID of the file upload."
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/blobs/{digest}": {
      "get": {
        "tags": [
          "Blobs"
        ],
        "operationId": "downloadBlobs",
        "x-category": "files",
        "x-subcategory": "files",
        "x-permissions": [],
        "summary": "Download file blobs",
        "description": "Download file from server by it's digest.\n",
        "security": [],
        "parameters": [
          {
            "name": "digest",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "example": "84d89877f0d4041efb6bf91a16f0248f2fd573e6af05c19f96bedb9f882f7882",
              "description": "The Content Digests.\nA digest is a serialized hash result, consisting of a algorithm and hex portion.\nOnly sha256 based digest accepted.\n"
            },
            "description": "The digest of the file blob."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "Content-Disposition": {
                "schema": {
                  "type": "string"
                },
                "description": "the format is `attachment; filename=\"example\"`"
              }
            },
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/inbound_rules": {
      "post": {
        "tags": [
          "Inbound Rule"
        ],
        "operationId": "createInboundRule",
        "x-category": "call-control",
        "x-subcategory": "inbound-rules",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Create an inbound rule",
        "description": "Add a new inbound rule.\nPlease make sure you have at least one provider created before creating a new inbound rule.\n",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64,
                    "description": "Inbound rule name.\n"
                  },
                  "enabled": {
                    "type": "boolean",
                    "default": true,
                    "description": "Enabled or not.\n"
                  },
                  "usage": {
                    "type": "string",
                    "enum": [
                      "BOTH",
                      "SIP",
                      "MESSAGE"
                    ],
                    "default": "BOTH",
                    "description": "The inbound rule usage, can be either:  \n- `BOTH`: Applies to both messages and calls.\n- `SIP`: Applies to calls only.\n- `MESSAGE`: Applies to messages only.\n"
                  },
                  "cid_number_mask": {
                    "type": "string",
                    "description": "The CID number Mask for inbound rule.  \nYou can add the number in it's entirety, identifying a single caller,   \nor use the * as a wildcard. For example 0044********** will identify a\nUK Caller and 004420******** will identify a caller from London.   \nNote: the * digits must matched number actually digits. If the number is 3 digits, then should use ***\nThe CID number mask also allow set a number range, for example: 00442012345670-00442012345680.\n"
                  },
                  "did_numbers": {
                    "type": "string",
                    "minLength": 1,
                    "description": "A single DID/DDI number or a hyphen-separated range of DID/DDI numbers.\n"
                  },
                  "office_hours_forward_rule": {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "enum": [
                          "FORWARD_TO_NUMBER",
                          "FORWARD_TO_VOICEMAIL",
                          "HANGUP"
                        ],
                        "description": "Forward action can be either:  \n- `FORWARD_TO_NUMBER`:\n- `FORWARD_TO_VOICEMAIL`:\n- `HANGUP`: finish call\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"
                      }
                    }
                  },
                  "non_office_hours_forward_rule": {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "enum": [
                          "FORWARD_TO_NUMBER",
                          "FORWARD_TO_VOICEMAIL",
                          "HANGUP"
                        ],
                        "description": "Forward action can be either:  \n- `FORWARD_TO_NUMBER`:\n- `FORWARD_TO_VOICEMAIL`:\n- `HANGUP`: finish call\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"
                      }
                    }
                  },
                  "holiday_forward_rule": {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "enum": [
                          "FORWARD_TO_NUMBER",
                          "FORWARD_TO_VOICEMAIL",
                          "HANGUP"
                        ],
                        "description": "Forward action can be either:  \n- `FORWARD_TO_NUMBER`:\n- `FORWARD_TO_VOICEMAIL`:\n- `HANGUP`: finish call\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"
                      }
                    }
                  },
                  "office_hours": {
                    "allOf": [
                      {
                        "type": "object",
                        "properties": {
                          "mode": {
                            "type": "string",
                            "enum": [
                              "GLOBAL",
                              "CUSTOM"
                            ],
                            "example": "CUSTOM",
                            "description": "The office hours mode can be either:  \n- `GLOBAL`: Use global office hours.\n- `CUSTOM`: Use specific office hours.\n"
                          }
                        }
                      },
                      {
                        "type": "object",
                        "properties": {
                          "monday": {
                            "type": "object",
                            "properties": {
                              "enabled": {
                                "type": "boolean",
                                "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                              },
                              "ranges": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "from": {
                                      "type": "string",
                                      "example": "09:00",
                                      "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                    },
                                    "to": {
                                      "type": "string",
                                      "example": "17:00",
                                      "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                    }
                                  }
                                },
                                "description": "Multiple start and end time periods make up the working time.\n"
                              }
                            }
                          },
                          "tuesday": {
                            "type": "object",
                            "properties": {
                              "enabled": {
                                "type": "boolean",
                                "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                              },
                              "ranges": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "from": {
                                      "type": "string",
                                      "example": "09:00",
                                      "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                    },
                                    "to": {
                                      "type": "string",
                                      "example": "17:00",
                                      "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                    }
                                  }
                                },
                                "description": "Multiple start and end time periods make up the working time.\n"
                              }
                            }
                          },
                          "wednesday": {
                            "type": "object",
                            "properties": {
                              "enabled": {
                                "type": "boolean",
                                "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                              },
                              "ranges": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "from": {
                                      "type": "string",
                                      "example": "09:00",
                                      "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                    },
                                    "to": {
                                      "type": "string",
                                      "example": "17:00",
                                      "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                    }
                                  }
                                },
                                "description": "Multiple start and end time periods make up the working time.\n"
                              }
                            }
                          },
                          "thursday": {
                            "type": "object",
                            "properties": {
                              "enabled": {
                                "type": "boolean",
                                "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                              },
                              "ranges": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "from": {
                                      "type": "string",
                                      "example": "09:00",
                                      "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                    },
                                    "to": {
                                      "type": "string",
                                      "example": "17:00",
                                      "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                    }
                                  }
                                },
                                "description": "Multiple start and end time periods make up the working time.\n"
                              }
                            }
                          },
                          "friday": {
                            "type": "object",
                            "properties": {
                              "enabled": {
                                "type": "boolean",
                                "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                              },
                              "ranges": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "from": {
                                      "type": "string",
                                      "example": "09:00",
                                      "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                    },
                                    "to": {
                                      "type": "string",
                                      "example": "17:00",
                                      "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                    }
                                  }
                                },
                                "description": "Multiple start and end time periods make up the working time.\n"
                              }
                            }
                          },
                          "saturday": {
                            "type": "object",
                            "properties": {
                              "enabled": {
                                "type": "boolean",
                                "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                              },
                              "ranges": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "from": {
                                      "type": "string",
                                      "example": "09:00",
                                      "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                    },
                                    "to": {
                                      "type": "string",
                                      "example": "17:00",
                                      "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                    }
                                  }
                                },
                                "description": "Multiple start and end time periods make up the working time.\n"
                              }
                            }
                          },
                          "sunday": {
                            "type": "object",
                            "properties": {
                              "enabled": {
                                "type": "boolean",
                                "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                              },
                              "ranges": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "from": {
                                      "type": "string",
                                      "example": "09:00",
                                      "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                    },
                                    "to": {
                                      "type": "string",
                                      "example": "17:00",
                                      "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                    }
                                  }
                                },
                                "description": "Multiple start and end time periods make up the working time.\n"
                              }
                            }
                          }
                        }
                      }
                    ]
                  },
                  "holidays": {
                    "type": "array",
                    "items": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "readOnly": true,
                      "description": "The unique ID of holiday.\n"
                    },
                    "description": "A collection of ID of tenant's holiday.\n"
                  },
                  "provider_id": {
                    "allOf": [
                      {
                        "type": "string",
                        "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                        "description": "The unique ID of the resource.\n"
                      }
                    ],
                    "description": "The unique ID of trunk.\n"
                  },
                  "enable_advanced_routing": {
                    "type": "boolean",
                    "default": false,
                    "description": "Whether to enable advanced routing.\n"
                  },
                  "advanced_routing": {
                    "type": "string",
                    "description": "Advanced routing rules.\n"
                  },
                  "play_recording_disclaimer": {
                    "type": "boolean",
                    "default": false,
                    "description": "Whether to play recording disclaimer to inbound calls.\n"
                  }
                },
                "required": [
                  "name",
                  "did_numbers",
                  "provider_id"
                ]
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "name": null,
                    "enabled": null,
                    "usage": null,
                    "cid_number_mask": null,
                    "did_numbers": null,
                    "office_hours_forward_rule": null,
                    "non_office_hours_forward_rule": null,
                    "holiday_forward_rule": null,
                    "office_hours": null,
                    "holidays": null,
                    "provider_id": null,
                    "enable_advanced_routing": null,
                    "advanced_routing": null,
                    "play_recording_disclaimer": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of inbound rule.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "The ID of created resource",
                    "value": {
                      "id": "xxxxxxxx"
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "get": {
        "tags": [
          "Inbound Rule"
        ],
        "operationId": "listInboundRules",
        "x-category": "call-control",
        "x-subcategory": "inbound-rules",
        "x-permissions": [
          "PhoneSystem.ViewOnly"
        ],
        "summary": "List inbound rules",
        "description": "Retrieve a collection of inbound rules\n",
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Use the `filter` query parameter to retrieve just a subset of a collection.\n"
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "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",
            "required": false,
            "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",
            "required": false,
            "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",
            "required": false,
            "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,
                      "example": 100,
                      "description": "Total number of resource.\n"
                    },
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "description": "The unique ID of inbound rule.\n"
                          },
                          "name": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 64,
                            "description": "Inbound rule name.\n"
                          },
                          "enabled": {
                            "type": "boolean",
                            "default": true,
                            "description": "Enabled or not.\n"
                          },
                          "usage": {
                            "type": "string",
                            "enum": [
                              "BOTH",
                              "SIP",
                              "MESSAGE"
                            ],
                            "default": "BOTH",
                            "description": "The inbound rule usage, can be either:  \n- `BOTH`: Applies to both messages and calls.\n- `SIP`: Applies to calls only.\n- `MESSAGE`: Applies to messages only.\n"
                          },
                          "cid_number_mask": {
                            "type": "string",
                            "description": "The CID number Mask for inbound rule.  \nYou can add the number in it's entirety, identifying a single caller,   \nor use the * as a wildcard. For example 0044********** will identify a\nUK Caller and 004420******** will identify a caller from London.   \nNote: the * digits must matched number actually digits. If the number is 3 digits, then should use ***\nThe CID number mask also allow set a number range, for example: 00442012345670-00442012345680.\n"
                          },
                          "did_numbers": {
                            "type": "string",
                            "minLength": 1,
                            "description": "A single DID/DDI number or a hyphen-separated range of DID/DDI numbers.\n"
                          },
                          "office_hours_forward_rule": {
                            "type": "object",
                            "properties": {
                              "action": {
                                "type": "string",
                                "enum": [
                                  "FORWARD_TO_NUMBER",
                                  "FORWARD_TO_VOICEMAIL",
                                  "HANGUP"
                                ],
                                "description": "Forward action can be either:  \n- `FORWARD_TO_NUMBER`:\n- `FORWARD_TO_VOICEMAIL`:\n- `HANGUP`: finish call\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"
                              }
                            }
                          },
                          "non_office_hours_forward_rule": {
                            "type": "object",
                            "properties": {
                              "action": {
                                "type": "string",
                                "enum": [
                                  "FORWARD_TO_NUMBER",
                                  "FORWARD_TO_VOICEMAIL",
                                  "HANGUP"
                                ],
                                "description": "Forward action can be either:  \n- `FORWARD_TO_NUMBER`:\n- `FORWARD_TO_VOICEMAIL`:\n- `HANGUP`: finish call\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"
                              }
                            }
                          },
                          "holiday_forward_rule": {
                            "type": "object",
                            "properties": {
                              "action": {
                                "type": "string",
                                "enum": [
                                  "FORWARD_TO_NUMBER",
                                  "FORWARD_TO_VOICEMAIL",
                                  "HANGUP"
                                ],
                                "description": "Forward action can be either:  \n- `FORWARD_TO_NUMBER`:\n- `FORWARD_TO_VOICEMAIL`:\n- `HANGUP`: finish call\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"
                              }
                            }
                          },
                          "office_hours": {
                            "allOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "mode": {
                                    "type": "string",
                                    "enum": [
                                      "GLOBAL",
                                      "CUSTOM"
                                    ],
                                    "example": "CUSTOM",
                                    "description": "The office hours mode can be either:  \n- `GLOBAL`: Use global office hours.\n- `CUSTOM`: Use specific office hours.\n"
                                  }
                                }
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "monday": {
                                    "type": "object",
                                    "properties": {
                                      "enabled": {
                                        "type": "boolean",
                                        "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                      },
                                      "ranges": {
                                        "type": "array",
                                        "items": {
                                          "type": "object",
                                          "properties": {
                                            "from": {
                                              "type": "string",
                                              "example": "09:00",
                                              "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                            },
                                            "to": {
                                              "type": "string",
                                              "example": "17:00",
                                              "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                            }
                                          }
                                        },
                                        "description": "Multiple start and end time periods make up the working time.\n"
                                      }
                                    }
                                  },
                                  "tuesday": {
                                    "type": "object",
                                    "properties": {
                                      "enabled": {
                                        "type": "boolean",
                                        "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                      },
                                      "ranges": {
                                        "type": "array",
                                        "items": {
                                          "type": "object",
                                          "properties": {
                                            "from": {
                                              "type": "string",
                                              "example": "09:00",
                                              "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                            },
                                            "to": {
                                              "type": "string",
                                              "example": "17:00",
                                              "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                            }
                                          }
                                        },
                                        "description": "Multiple start and end time periods make up the working time.\n"
                                      }
                                    }
                                  },
                                  "wednesday": {
                                    "type": "object",
                                    "properties": {
                                      "enabled": {
                                        "type": "boolean",
                                        "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                      },
                                      "ranges": {
                                        "type": "array",
                                        "items": {
                                          "type": "object",
                                          "properties": {
                                            "from": {
                                              "type": "string",
                                              "example": "09:00",
                                              "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                            },
                                            "to": {
                                              "type": "string",
                                              "example": "17:00",
                                              "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                            }
                                          }
                                        },
                                        "description": "Multiple start and end time periods make up the working time.\n"
                                      }
                                    }
                                  },
                                  "thursday": {
                                    "type": "object",
                                    "properties": {
                                      "enabled": {
                                        "type": "boolean",
                                        "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                      },
                                      "ranges": {
                                        "type": "array",
                                        "items": {
                                          "type": "object",
                                          "properties": {
                                            "from": {
                                              "type": "string",
                                              "example": "09:00",
                                              "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                            },
                                            "to": {
                                              "type": "string",
                                              "example": "17:00",
                                              "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                            }
                                          }
                                        },
                                        "description": "Multiple start and end time periods make up the working time.\n"
                                      }
                                    }
                                  },
                                  "friday": {
                                    "type": "object",
                                    "properties": {
                                      "enabled": {
                                        "type": "boolean",
                                        "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                      },
                                      "ranges": {
                                        "type": "array",
                                        "items": {
                                          "type": "object",
                                          "properties": {
                                            "from": {
                                              "type": "string",
                                              "example": "09:00",
                                              "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                            },
                                            "to": {
                                              "type": "string",
                                              "example": "17:00",
                                              "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                            }
                                          }
                                        },
                                        "description": "Multiple start and end time periods make up the working time.\n"
                                      }
                                    }
                                  },
                                  "saturday": {
                                    "type": "object",
                                    "properties": {
                                      "enabled": {
                                        "type": "boolean",
                                        "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                      },
                                      "ranges": {
                                        "type": "array",
                                        "items": {
                                          "type": "object",
                                          "properties": {
                                            "from": {
                                              "type": "string",
                                              "example": "09:00",
                                              "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                            },
                                            "to": {
                                              "type": "string",
                                              "example": "17:00",
                                              "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                            }
                                          }
                                        },
                                        "description": "Multiple start and end time periods make up the working time.\n"
                                      }
                                    }
                                  },
                                  "sunday": {
                                    "type": "object",
                                    "properties": {
                                      "enabled": {
                                        "type": "boolean",
                                        "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                      },
                                      "ranges": {
                                        "type": "array",
                                        "items": {
                                          "type": "object",
                                          "properties": {
                                            "from": {
                                              "type": "string",
                                              "example": "09:00",
                                              "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                            },
                                            "to": {
                                              "type": "string",
                                              "example": "17:00",
                                              "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                            }
                                          }
                                        },
                                        "description": "Multiple start and end time periods make up the working time.\n"
                                      }
                                    }
                                  }
                                }
                              }
                            ]
                          },
                          "holidays": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "id": {
                                  "allOf": [
                                    {
                                      "type": "string",
                                      "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                      "description": "The unique ID of the resource.\n"
                                    }
                                  ],
                                  "readOnly": true,
                                  "description": "The unique ID of holiday.\n"
                                },
                                "name": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 64,
                                  "description": "The name of the holiday.\n"
                                },
                                "every_year": {
                                  "type": "boolean",
                                  "description": "Does the holiday take effect every year.\n"
                                },
                                "consecutive": {
                                  "type": "boolean",
                                  "description": "Whether the holiday consists of consecutive days.\n"
                                },
                                "year_start": {
                                  "type": "integer",
                                  "description": "The start year of holiday.\n"
                                },
                                "year_end": {
                                  "type": "integer",
                                  "description": "The end year of holiday.\n"
                                },
                                "month_start": {
                                  "type": "integer",
                                  "description": "The start month of holiday.\n"
                                },
                                "month_end": {
                                  "type": "integer",
                                  "description": "The end month of holiday.\n"
                                },
                                "day_start": {
                                  "type": "integer",
                                  "description": "The start day of holiday.\n"
                                },
                                "day_end": {
                                  "type": "integer",
                                  "description": "The end day of holiday.\n"
                                },
                                "hour_start": {
                                  "type": "integer",
                                  "description": "The start hour of holiday.\n"
                                },
                                "hour_end": {
                                  "type": "integer",
                                  "description": "The end hour of holiday.\n"
                                },
                                "minute_start": {
                                  "type": "integer",
                                  "description": "The start minute of holiday.\n"
                                },
                                "minute_end": {
                                  "type": "integer",
                                  "description": "The end minute of holiday.\n"
                                }
                              }
                            },
                            "description": "A collection of tenant's holiday.\n"
                          },
                          "provider_id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "description": "The unique ID of trunk.\n"
                          },
                          "enable_advanced_routing": {
                            "type": "boolean",
                            "default": false,
                            "description": "Whether to enable advanced routing.\n"
                          },
                          "advanced_routing": {
                            "type": "string",
                            "description": "Advanced routing rules.\n"
                          },
                          "play_recording_disclaimer": {
                            "type": "boolean",
                            "default": false,
                            "description": "Whether to play recording disclaimer to inbound calls.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": null,
                          "name": null,
                          "enabled": null,
                          "usage": null,
                          "cid_number_mask": null,
                          "did_numbers": null,
                          "office_hours_forward_rule": null,
                          "non_office_hours_forward_rule": null,
                          "holiday_forward_rule": null,
                          "office_hours": null,
                          "holidays": null,
                          "provider_id": null,
                          "enable_advanced_routing": null,
                          "advanced_routing": null,
                          "play_recording_disclaimer": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/inbound_rules/{id}": {
      "get": {
        "tags": [
          "Inbound Rule"
        ],
        "operationId": "retrieveInboundRule",
        "x-category": "call-control",
        "x-subcategory": "inbound-rules",
        "x-permissions": [
          "PhoneSystem.ViewOnly"
        ],
        "summary": "Retrieve an inbound rule",
        "description": "Retrieve an inbound rule.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of inbound rule.\n"
            },
            "description": "The unique ID of the inbound rule."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of inbound rule.\n"
                    },
                    "name": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64,
                      "description": "Inbound rule name.\n"
                    },
                    "enabled": {
                      "type": "boolean",
                      "default": true,
                      "description": "Enabled or not.\n"
                    },
                    "usage": {
                      "type": "string",
                      "enum": [
                        "BOTH",
                        "SIP",
                        "MESSAGE"
                      ],
                      "default": "BOTH",
                      "description": "The inbound rule usage, can be either:  \n- `BOTH`: Applies to both messages and calls.\n- `SIP`: Applies to calls only.\n- `MESSAGE`: Applies to messages only.\n"
                    },
                    "cid_number_mask": {
                      "type": "string",
                      "description": "The CID number Mask for inbound rule.  \nYou can add the number in it's entirety, identifying a single caller,   \nor use the * as a wildcard. For example 0044********** will identify a\nUK Caller and 004420******** will identify a caller from London.   \nNote: the * digits must matched number actually digits. If the number is 3 digits, then should use ***\nThe CID number mask also allow set a number range, for example: 00442012345670-00442012345680.\n"
                    },
                    "did_numbers": {
                      "type": "string",
                      "minLength": 1,
                      "description": "A single DID/DDI number or a hyphen-separated range of DID/DDI numbers.\n"
                    },
                    "office_hours_forward_rule": {
                      "type": "object",
                      "properties": {
                        "action": {
                          "type": "string",
                          "enum": [
                            "FORWARD_TO_NUMBER",
                            "FORWARD_TO_VOICEMAIL",
                            "HANGUP"
                          ],
                          "description": "Forward action can be either:  \n- `FORWARD_TO_NUMBER`:\n- `FORWARD_TO_VOICEMAIL`:\n- `HANGUP`: finish call\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"
                        }
                      }
                    },
                    "non_office_hours_forward_rule": {
                      "type": "object",
                      "properties": {
                        "action": {
                          "type": "string",
                          "enum": [
                            "FORWARD_TO_NUMBER",
                            "FORWARD_TO_VOICEMAIL",
                            "HANGUP"
                          ],
                          "description": "Forward action can be either:  \n- `FORWARD_TO_NUMBER`:\n- `FORWARD_TO_VOICEMAIL`:\n- `HANGUP`: finish call\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"
                        }
                      }
                    },
                    "holiday_forward_rule": {
                      "type": "object",
                      "properties": {
                        "action": {
                          "type": "string",
                          "enum": [
                            "FORWARD_TO_NUMBER",
                            "FORWARD_TO_VOICEMAIL",
                            "HANGUP"
                          ],
                          "description": "Forward action can be either:  \n- `FORWARD_TO_NUMBER`:\n- `FORWARD_TO_VOICEMAIL`:\n- `HANGUP`: finish call\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"
                        }
                      }
                    },
                    "office_hours": {
                      "allOf": [
                        {
                          "type": "object",
                          "properties": {
                            "mode": {
                              "type": "string",
                              "enum": [
                                "GLOBAL",
                                "CUSTOM"
                              ],
                              "example": "CUSTOM",
                              "description": "The office hours mode can be either:  \n- `GLOBAL`: Use global office hours.\n- `CUSTOM`: Use specific office hours.\n"
                            }
                          }
                        },
                        {
                          "type": "object",
                          "properties": {
                            "monday": {
                              "type": "object",
                              "properties": {
                                "enabled": {
                                  "type": "boolean",
                                  "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                },
                                "ranges": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "from": {
                                        "type": "string",
                                        "example": "09:00",
                                        "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                      },
                                      "to": {
                                        "type": "string",
                                        "example": "17:00",
                                        "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                      }
                                    }
                                  },
                                  "description": "Multiple start and end time periods make up the working time.\n"
                                }
                              }
                            },
                            "tuesday": {
                              "type": "object",
                              "properties": {
                                "enabled": {
                                  "type": "boolean",
                                  "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                },
                                "ranges": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "from": {
                                        "type": "string",
                                        "example": "09:00",
                                        "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                      },
                                      "to": {
                                        "type": "string",
                                        "example": "17:00",
                                        "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                      }
                                    }
                                  },
                                  "description": "Multiple start and end time periods make up the working time.\n"
                                }
                              }
                            },
                            "wednesday": {
                              "type": "object",
                              "properties": {
                                "enabled": {
                                  "type": "boolean",
                                  "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                },
                                "ranges": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "from": {
                                        "type": "string",
                                        "example": "09:00",
                                        "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                      },
                                      "to": {
                                        "type": "string",
                                        "example": "17:00",
                                        "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                      }
                                    }
                                  },
                                  "description": "Multiple start and end time periods make up the working time.\n"
                                }
                              }
                            },
                            "thursday": {
                              "type": "object",
                              "properties": {
                                "enabled": {
                                  "type": "boolean",
                                  "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                },
                                "ranges": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "from": {
                                        "type": "string",
                                        "example": "09:00",
                                        "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                      },
                                      "to": {
                                        "type": "string",
                                        "example": "17:00",
                                        "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                      }
                                    }
                                  },
                                  "description": "Multiple start and end time periods make up the working time.\n"
                                }
                              }
                            },
                            "friday": {
                              "type": "object",
                              "properties": {
                                "enabled": {
                                  "type": "boolean",
                                  "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                },
                                "ranges": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "from": {
                                        "type": "string",
                                        "example": "09:00",
                                        "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                      },
                                      "to": {
                                        "type": "string",
                                        "example": "17:00",
                                        "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                      }
                                    }
                                  },
                                  "description": "Multiple start and end time periods make up the working time.\n"
                                }
                              }
                            },
                            "saturday": {
                              "type": "object",
                              "properties": {
                                "enabled": {
                                  "type": "boolean",
                                  "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                },
                                "ranges": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "from": {
                                        "type": "string",
                                        "example": "09:00",
                                        "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                      },
                                      "to": {
                                        "type": "string",
                                        "example": "17:00",
                                        "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                      }
                                    }
                                  },
                                  "description": "Multiple start and end time periods make up the working time.\n"
                                }
                              }
                            },
                            "sunday": {
                              "type": "object",
                              "properties": {
                                "enabled": {
                                  "type": "boolean",
                                  "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                },
                                "ranges": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "from": {
                                        "type": "string",
                                        "example": "09:00",
                                        "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                      },
                                      "to": {
                                        "type": "string",
                                        "example": "17:00",
                                        "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                      }
                                    }
                                  },
                                  "description": "Multiple start and end time periods make up the working time.\n"
                                }
                              }
                            }
                          }
                        }
                      ]
                    },
                    "holidays": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "readOnly": true,
                            "description": "The unique ID of holiday.\n"
                          },
                          "name": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 64,
                            "description": "The name of the holiday.\n"
                          },
                          "every_year": {
                            "type": "boolean",
                            "description": "Does the holiday take effect every year.\n"
                          },
                          "consecutive": {
                            "type": "boolean",
                            "description": "Whether the holiday consists of consecutive days.\n"
                          },
                          "year_start": {
                            "type": "integer",
                            "description": "The start year of holiday.\n"
                          },
                          "year_end": {
                            "type": "integer",
                            "description": "The end year of holiday.\n"
                          },
                          "month_start": {
                            "type": "integer",
                            "description": "The start month of holiday.\n"
                          },
                          "month_end": {
                            "type": "integer",
                            "description": "The end month of holiday.\n"
                          },
                          "day_start": {
                            "type": "integer",
                            "description": "The start day of holiday.\n"
                          },
                          "day_end": {
                            "type": "integer",
                            "description": "The end day of holiday.\n"
                          },
                          "hour_start": {
                            "type": "integer",
                            "description": "The start hour of holiday.\n"
                          },
                          "hour_end": {
                            "type": "integer",
                            "description": "The end hour of holiday.\n"
                          },
                          "minute_start": {
                            "type": "integer",
                            "description": "The start minute of holiday.\n"
                          },
                          "minute_end": {
                            "type": "integer",
                            "description": "The end minute of holiday.\n"
                          }
                        }
                      },
                      "description": "A collection of tenant's holiday.\n"
                    },
                    "provider_id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of trunk.\n"
                    },
                    "enable_advanced_routing": {
                      "type": "boolean",
                      "default": false,
                      "description": "Whether to enable advanced routing.\n"
                    },
                    "advanced_routing": {
                      "type": "string",
                      "description": "Advanced routing rules.\n"
                    },
                    "play_recording_disclaimer": {
                      "type": "boolean",
                      "default": false,
                      "description": "Whether to play recording disclaimer to inbound calls.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "id": null,
                      "name": null,
                      "enabled": null,
                      "usage": null,
                      "cid_number_mask": null,
                      "did_numbers": null,
                      "office_hours_forward_rule": null,
                      "non_office_hours_forward_rule": null,
                      "holiday_forward_rule": null,
                      "office_hours": null,
                      "holidays": null,
                      "provider_id": null,
                      "enable_advanced_routing": null,
                      "advanced_routing": null,
                      "play_recording_disclaimer": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "post": {
        "tags": [
          "Inbound Rule"
        ],
        "operationId": "updateInboundRule",
        "x-category": "call-control",
        "x-subcategory": "inbound-rules",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Update an inbound rule",
        "description": "Update an inbound rule.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of inbound rule.\n"
            },
            "description": "The unique ID of the inbound rule."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64,
                    "description": "Inbound rule name.\n"
                  },
                  "enabled": {
                    "type": "boolean",
                    "default": true,
                    "description": "Enabled or not.\n"
                  },
                  "usage": {
                    "type": "string",
                    "enum": [
                      "BOTH",
                      "SIP",
                      "MESSAGE"
                    ],
                    "default": "BOTH",
                    "description": "The inbound rule usage, can be either:  \n- `BOTH`: Applies to both messages and calls.\n- `SIP`: Applies to calls only.\n- `MESSAGE`: Applies to messages only.\n"
                  },
                  "cid_number_mask": {
                    "type": "string",
                    "description": "The CID number Mask for inbound rule.  \nYou can add the number in it's entirety, identifying a single caller,   \nor use the * as a wildcard. For example 0044********** will identify a\nUK Caller and 004420******** will identify a caller from London.   \nNote: the * digits must matched number actually digits. If the number is 3 digits, then should use ***\nThe CID number mask also allow set a number range, for example: 00442012345670-00442012345680.\n"
                  },
                  "did_numbers": {
                    "type": "string",
                    "minLength": 1,
                    "description": "A single DID/DDI number or a hyphen-separated range of DID/DDI numbers.\n"
                  },
                  "office_hours_forward_rule": {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "enum": [
                          "FORWARD_TO_NUMBER",
                          "FORWARD_TO_VOICEMAIL",
                          "HANGUP"
                        ],
                        "description": "Forward action can be either:  \n- `FORWARD_TO_NUMBER`:\n- `FORWARD_TO_VOICEMAIL`:\n- `HANGUP`: finish call\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"
                      }
                    }
                  },
                  "non_office_hours_forward_rule": {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "enum": [
                          "FORWARD_TO_NUMBER",
                          "FORWARD_TO_VOICEMAIL",
                          "HANGUP"
                        ],
                        "description": "Forward action can be either:  \n- `FORWARD_TO_NUMBER`:\n- `FORWARD_TO_VOICEMAIL`:\n- `HANGUP`: finish call\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"
                      }
                    }
                  },
                  "holiday_forward_rule": {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "enum": [
                          "FORWARD_TO_NUMBER",
                          "FORWARD_TO_VOICEMAIL",
                          "HANGUP"
                        ],
                        "description": "Forward action can be either:  \n- `FORWARD_TO_NUMBER`:\n- `FORWARD_TO_VOICEMAIL`:\n- `HANGUP`: finish call\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"
                      }
                    }
                  },
                  "office_hours": {
                    "allOf": [
                      {
                        "type": "object",
                        "properties": {
                          "mode": {
                            "type": "string",
                            "enum": [
                              "GLOBAL",
                              "CUSTOM"
                            ],
                            "example": "CUSTOM",
                            "description": "The office hours mode can be either:  \n- `GLOBAL`: Use global office hours.\n- `CUSTOM`: Use specific office hours.\n"
                          }
                        }
                      },
                      {
                        "type": "object",
                        "properties": {
                          "monday": {
                            "type": "object",
                            "properties": {
                              "enabled": {
                                "type": "boolean",
                                "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                              },
                              "ranges": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "from": {
                                      "type": "string",
                                      "example": "09:00",
                                      "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                    },
                                    "to": {
                                      "type": "string",
                                      "example": "17:00",
                                      "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                    }
                                  }
                                },
                                "description": "Multiple start and end time periods make up the working time.\n"
                              }
                            }
                          },
                          "tuesday": {
                            "type": "object",
                            "properties": {
                              "enabled": {
                                "type": "boolean",
                                "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                              },
                              "ranges": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "from": {
                                      "type": "string",
                                      "example": "09:00",
                                      "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                    },
                                    "to": {
                                      "type": "string",
                                      "example": "17:00",
                                      "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                    }
                                  }
                                },
                                "description": "Multiple start and end time periods make up the working time.\n"
                              }
                            }
                          },
                          "wednesday": {
                            "type": "object",
                            "properties": {
                              "enabled": {
                                "type": "boolean",
                                "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                              },
                              "ranges": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "from": {
                                      "type": "string",
                                      "example": "09:00",
                                      "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                    },
                                    "to": {
                                      "type": "string",
                                      "example": "17:00",
                                      "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                    }
                                  }
                                },
                                "description": "Multiple start and end time periods make up the working time.\n"
                              }
                            }
                          },
                          "thursday": {
                            "type": "object",
                            "properties": {
                              "enabled": {
                                "type": "boolean",
                                "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                              },
                              "ranges": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "from": {
                                      "type": "string",
                                      "example": "09:00",
                                      "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                    },
                                    "to": {
                                      "type": "string",
                                      "example": "17:00",
                                      "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                    }
                                  }
                                },
                                "description": "Multiple start and end time periods make up the working time.\n"
                              }
                            }
                          },
                          "friday": {
                            "type": "object",
                            "properties": {
                              "enabled": {
                                "type": "boolean",
                                "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                              },
                              "ranges": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "from": {
                                      "type": "string",
                                      "example": "09:00",
                                      "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                    },
                                    "to": {
                                      "type": "string",
                                      "example": "17:00",
                                      "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                    }
                                  }
                                },
                                "description": "Multiple start and end time periods make up the working time.\n"
                              }
                            }
                          },
                          "saturday": {
                            "type": "object",
                            "properties": {
                              "enabled": {
                                "type": "boolean",
                                "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                              },
                              "ranges": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "from": {
                                      "type": "string",
                                      "example": "09:00",
                                      "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                    },
                                    "to": {
                                      "type": "string",
                                      "example": "17:00",
                                      "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                    }
                                  }
                                },
                                "description": "Multiple start and end time periods make up the working time.\n"
                              }
                            }
                          },
                          "sunday": {
                            "type": "object",
                            "properties": {
                              "enabled": {
                                "type": "boolean",
                                "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                              },
                              "ranges": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "from": {
                                      "type": "string",
                                      "example": "09:00",
                                      "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                    },
                                    "to": {
                                      "type": "string",
                                      "example": "17:00",
                                      "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                    }
                                  }
                                },
                                "description": "Multiple start and end time periods make up the working time.\n"
                              }
                            }
                          }
                        }
                      }
                    ]
                  },
                  "holidays": {
                    "type": "array",
                    "items": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "readOnly": true,
                      "description": "The unique ID of holiday.\n"
                    },
                    "description": "A collection of ID of tenant's holiday.\n"
                  },
                  "provider_id": {
                    "allOf": [
                      {
                        "type": "string",
                        "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                        "description": "The unique ID of the resource.\n"
                      }
                    ],
                    "description": "The unique ID of trunk.\n"
                  },
                  "enable_advanced_routing": {
                    "type": "boolean",
                    "default": false,
                    "description": "Whether to enable advanced routing.\n"
                  },
                  "advanced_routing": {
                    "type": "string",
                    "description": "Advanced routing rules.\n"
                  },
                  "play_recording_disclaimer": {
                    "type": "boolean",
                    "default": false,
                    "description": "Whether to play recording disclaimer to inbound calls.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "name": null,
                    "enabled": null,
                    "usage": null,
                    "cid_number_mask": null,
                    "did_numbers": null,
                    "office_hours_forward_rule": null,
                    "non_office_hours_forward_rule": null,
                    "holiday_forward_rule": null,
                    "office_hours": null,
                    "holidays": null,
                    "provider_id": null,
                    "enable_advanced_routing": null,
                    "advanced_routing": null,
                    "play_recording_disclaimer": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/inbound_rules/{id}/destroy": {
      "post": {
        "tags": [
          "Inbound Rule"
        ],
        "operationId": "deleteInboundRule",
        "x-category": "call-control",
        "x-subcategory": "inbound-rules",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Delete an inbound rule",
        "description": "Destroy an inbound rule.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of inbound rule.\n"
            },
            "description": "The unique ID of the inbound rule."
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Invalid inbound rule ID supplied"
          }
        }
      }
    },
    "/inbound_rules/export": {
      "get": {
        "tags": [
          "Inbound Rule"
        ],
        "operationId": "exportInboundRules",
        "x-category": "call-control",
        "x-subcategory": "inbound-rules",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Export inbound rules",
        "description": "Export a collection of inbound rules to file.\n",
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "Content-Disposition": {
                "schema": {
                  "type": "string"
                },
                "description": "the format is `attachment; filename=\"example\"`"
              }
            },
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/moh_server": {
      "get": {
        "tags": [
          "MOH"
        ],
        "operationId": "showMohServer",
        "x-category": "tenants",
        "x-subcategory": "tenants",
        "x-permissions": [
          "PhoneSystem.ViewOnly"
        ],
        "summary": "Retrieve moh server",
        "description": "Retrieve moh server information.\n",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "enabled": {
                      "type": "boolean",
                      "description": "Enable MOH service or not.\n"
                    },
                    "play_type": {
                      "type": "string",
                      "enum": [
                        "DEFAULT_MUSIC",
                        "RANDOM_MUSIC_PER_CALL",
                        "RANDOM_MUSIC_PER_DAY"
                      ],
                      "description": "Set MOH personalized music by these modes:\n- `DEFAULT_MUSIC`:\n- `RANDOM_MUSIC_PER_CALL`:\n- `RANDOM_MUSIC_PER_DAY`:\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "enabled": null,
                      "play_type": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "post": {
        "tags": [
          "MOH"
        ],
        "operationId": "updateMohServer",
        "x-category": "tenants",
        "x-subcategory": "tenants",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Update moh server",
        "description": "Update moh server\n",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "enabled": {
                    "type": "boolean",
                    "description": "Enable MOH service or not.\n"
                  },
                  "play_type": {
                    "type": "string",
                    "enum": [
                      "DEFAULT_MUSIC",
                      "RANDOM_MUSIC_PER_CALL",
                      "RANDOM_MUSIC_PER_DAY"
                    ],
                    "description": "Set MOH personalized music by these modes:\n- `DEFAULT_MUSIC`:\n- `RANDOM_MUSIC_PER_CALL`:\n- `RANDOM_MUSIC_PER_DAY`:\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "enabled": null,
                    "play_type": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/moh_server/musics": {
      "post": {
        "tags": [
          "MOH"
        ],
        "operationId": "createMohMusic",
        "x-category": "tenants",
        "x-subcategory": "tenants",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Create a MOH music",
        "description": "Create a MOH music.\n",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "file_id": {
                    "allOf": [
                      {
                        "type": "string",
                        "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                        "description": "The unique ID of the resource.\n"
                      }
                    ],
                    "description": "The unique ID of the file.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "file_id": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created MOH music",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of MOH music.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "The ID of created resource",
                    "value": {
                      "id": "xxxxxxxx"
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "get": {
        "tags": [
          "MOH"
        ],
        "operationId": "listMohMusics",
        "x-category": "tenants",
        "x-subcategory": "tenants",
        "x-permissions": [
          "PhoneSystem.ViewOnly"
        ],
        "summary": "List moh musics",
        "description": "Retrieve a collection of moh musics.\n",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "description": "The unique ID of MOH music.\n"
                          },
                          "file_name": {
                            "type": "string",
                            "description": "The name of the file.\n"
                          },
                          "file_size": {
                            "type": "integer",
                            "format": "int64",
                            "minimum": 0,
                            "example": 0,
                            "description": "The file size in bytes.\n"
                          },
                          "file_url": {
                            "type": "string",
                            "readOnly": true,
                            "example": "/api/blobs/WexWdABcd5D4PDgzTKV3gAAAEu00WcK",
                            "description": "The relative path to file url for file downloading.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "items": [
                        {
                          "id": null,
                          "file_name": null,
                          "file_size": null,
                          "file_url": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/moh_server/musics/{id}": {
      "get": {
        "tags": [
          "MOH"
        ],
        "operationId": "showMohMusic",
        "x-category": "tenants",
        "x-subcategory": "tenants",
        "x-permissions": [
          "PhoneSystem.ViewOnly"
        ],
        "summary": "Retrieve a moh music",
        "description": "Retrieve a moh music.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of MOH music.\n"
            },
            "description": "The unique ID of the music."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of MOH music.\n"
                    },
                    "file_name": {
                      "type": "string",
                      "description": "The name of the file.\n"
                    },
                    "file_size": {
                      "type": "integer",
                      "format": "int64",
                      "minimum": 0,
                      "example": 0,
                      "description": "The file size in bytes.\n"
                    },
                    "file_url": {
                      "type": "string",
                      "readOnly": true,
                      "example": "/api/blobs/WexWdABcd5D4PDgzTKV3gAAAEu00WcK",
                      "description": "The relative path to file url for file downloading.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "id": null,
                      "file_name": null,
                      "file_size": null,
                      "file_url": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/moh_server/musics/{id}/destroy": {
      "post": {
        "tags": [
          "MOH"
        ],
        "operationId": "deleteMohMusic",
        "x-category": "tenants",
        "x-subcategory": "tenants",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Delete a MOH music",
        "description": "Delete a MOH music\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of MOH music.\n"
            },
            "description": "The unique ID of the music."
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/monitor": {
      "get": {
        "tags": [
          "CTI"
        ],
        "operationId": "showMonitorServer",
        "x-category": "contact-center",
        "x-subcategory": "monitor",
        "x-permissions": [
          "PhoneSystem.ViewOnly"
        ],
        "summary": "Retrieve monitor server",
        "description": "Retrieve monitor server information.\n",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "enabled": {
                      "type": "boolean",
                      "description": "Enable monitor server or not.\n"
                    },
                    "extension_number": {
                      "allOf": [
                        {
                          "type": "string",
                          "minLength": 3,
                          "maxLength": 64,
                          "pattern": "[0-9]{3,64}",
                          "description": "The extension number.\n"
                        }
                      ],
                      "description": "The extension number of monitor server.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "enabled": null,
                      "extension_number": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "post": {
        "tags": [
          "CTI"
        ],
        "operationId": "updateMonitorServer",
        "x-category": "contact-center",
        "x-subcategory": "monitor",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Update monitor server",
        "description": "Update monitor server\n",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "enabled": {
                    "type": "boolean",
                    "description": "Enable monitor server or not.\n"
                  },
                  "extension_number": {
                    "allOf": [
                      {
                        "type": "string",
                        "minLength": 3,
                        "maxLength": 64,
                        "pattern": "[0-9]{3,64}",
                        "description": "The extension number.\n"
                      }
                    ],
                    "description": "The extension number of monitor server.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "enabled": null,
                    "extension_number": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/monitor_groups": {
      "post": {
        "tags": [
          "CTI"
        ],
        "operationId": "createMonitorGroup",
        "x-category": "contact-center",
        "x-subcategory": "monitor",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Create a monitor group",
        "description": "Create a new monitor group.\n",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64,
                    "description": "Name of monitor group\n"
                  },
                  "enabled": {
                    "type": "boolean",
                    "description": "Enable monitor group or not.\n"
                  },
                  "description": {
                    "type": "string",
                    "maxLength": 1024,
                    "description": "Description for monitor group\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "name": null,
                    "enabled": null,
                    "description": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created monitor group",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of monitor group.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "The ID of created resource",
                    "value": {
                      "id": "xxxxxxxx"
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "get": {
        "tags": [
          "CTI"
        ],
        "operationId": "listMonitorGroups",
        "x-category": "contact-center",
        "x-subcategory": "monitor",
        "x-permissions": [
          "PhoneSystem.ViewOnly"
        ],
        "summary": "List monitor groups",
        "description": "List monitor groups\n",
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Use the `filter` query parameter to retrieve just a subset of a collection.\n"
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "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",
            "required": false,
            "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",
            "required": false,
            "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",
            "required": false,
            "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,
                      "example": 100,
                      "description": "Total number of resource.\n"
                    },
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "description": "The unique ID of monitor group.\n"
                          },
                          "name": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 64,
                            "description": "Name of monitor group\n"
                          },
                          "enabled": {
                            "type": "boolean",
                            "description": "Enable monitor group or not.\n"
                          },
                          "description": {
                            "type": "string",
                            "maxLength": 1024,
                            "description": "Description for monitor group\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": null,
                          "name": null,
                          "enabled": null,
                          "description": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/monitor_groups/{id}": {
      "get": {
        "tags": [
          "CTI"
        ],
        "operationId": "showMonitorGroup",
        "x-category": "contact-center",
        "x-subcategory": "monitor",
        "x-permissions": [
          "PhoneSystem.ViewOnly"
        ],
        "summary": "Retrieve a monitor group",
        "description": "Retrieves details of a monitor group.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of monitor group.\n"
            },
            "description": "The unique ID of the monitor group."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of monitor group.\n"
                    },
                    "name": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64,
                      "description": "Name of monitor group\n"
                    },
                    "enabled": {
                      "type": "boolean",
                      "description": "Enable monitor group or not.\n"
                    },
                    "description": {
                      "type": "string",
                      "maxLength": 1024,
                      "description": "Description for monitor group\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "id": null,
                      "name": null,
                      "enabled": null,
                      "description": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "post": {
        "tags": [
          "CTI"
        ],
        "operationId": "updateMonitorGroup",
        "x-category": "contact-center",
        "x-subcategory": "monitor",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Update an monitor group.",
        "description": "Update an monitor group\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of monitor group.\n"
            },
            "description": "The unique ID of the monitor group."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64,
                    "description": "Name of monitor group\n"
                  },
                  "enabled": {
                    "type": "boolean",
                    "description": "Enable monitor group or not.\n"
                  },
                  "description": {
                    "type": "string",
                    "maxLength": 1024,
                    "description": "Description for monitor group\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "name": null,
                    "enabled": null,
                    "description": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/monitor_groups/{id}/destroy": {
      "post": {
        "tags": [
          "CTI"
        ],
        "operationId": "deleteMonitorGroup",
        "x-category": "contact-center",
        "x-subcategory": "monitor",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Delete an monitor group",
        "description": "Delete a monitor group.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of monitor group.\n"
            },
            "description": "The unique ID of the monitor group."
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/monitor_groups/{id}/members": {
      "get": {
        "tags": [
          "CTI"
        ],
        "operationId": "listMonitorGroupMembers",
        "x-category": "contact-center",
        "x-subcategory": "monitor",
        "x-permissions": [
          "PhoneSystem.ViewOnly"
        ],
        "summary": "List monitor group members",
        "description": "Retrieve a collection of monitor group members.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of monitor group.\n"
            },
            "description": "The unique ID of the monitor group."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "description": "The unique ID of user.\n"
                          },
                          "name": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 64,
                            "description": "The user's account name.   \nOnly letters, numbers, and the following special characters can be added: underscore, dash, single quote, and period (_, -, ', and .).   \nUsername cannot start or end with period (.).   \n`admin`, `system`, `administrator`, and `root` are reserved names for system admin only with case ignored.\n"
                          },
                          "display_name": {
                            "type": "string",
                            "maxLength": 1024,
                            "description": "The display name of user.\n"
                          },
                          "extension_number": {
                            "type": "string",
                            "minLength": 3,
                            "maxLength": 64,
                            "pattern": "[0-9]{3,64}",
                            "description": "The extension number.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "items": [
                        {
                          "id": null,
                          "name": null,
                          "display_name": null,
                          "extension_number": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/monitor_groups/{id}/members/{extension_number}": {
      "post": {
        "tags": [
          "CTI"
        ],
        "operationId": "createMonitorGroupMember",
        "x-category": "contact-center",
        "x-subcategory": "monitor",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Add monitor group member",
        "description": "Add user member into monitor group.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of monitor group.\n"
            },
            "description": "The unique ID of the monitor group."
          },
          {
            "name": "extension_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 member."
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/monitor_groups/{id}/members/{extension_number}/destroy": {
      "post": {
        "tags": [
          "CTI"
        ],
        "operationId": "deleteMonitorGroupMember",
        "x-category": "contact-center",
        "x-subcategory": "monitor",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Delete monitor group member",
        "description": "Delete an monitor group member.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of monitor group.\n"
            },
            "description": "The unique ID of the group."
          },
          {
            "name": "extension_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 group member."
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/monitor_groups/{id}/managers": {
      "get": {
        "tags": [
          "CTI"
        ],
        "operationId": "listMonitorGroupManagers",
        "x-category": "contact-center",
        "x-subcategory": "monitor",
        "x-permissions": [
          "PhoneSystem.ViewOnly"
        ],
        "summary": "List monitor group manager",
        "description": "Retrieve a collection of monitor group managers.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of monitor group.\n"
            },
            "description": "The unique ID of the monitor group."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "description": "The unique ID of user.\n"
                          },
                          "name": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 64,
                            "description": "The user's account name.   \nOnly letters, numbers, and the following special characters can be added: underscore, dash, single quote, and period (_, -, ', and .).   \nUsername cannot start or end with period (.).   \n`admin`, `system`, `administrator`, and `root` are reserved names for system admin only with case ignored.\n"
                          },
                          "display_name": {
                            "type": "string",
                            "maxLength": 1024,
                            "description": "The display name of user.\n"
                          },
                          "extension_number": {
                            "type": "string",
                            "minLength": 3,
                            "maxLength": 64,
                            "pattern": "[0-9]{3,64}",
                            "description": "The extension number.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "items": [
                        {
                          "id": null,
                          "name": null,
                          "display_name": null,
                          "extension_number": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/monitor_groups/{id}/managers/{extension_number}": {
      "post": {
        "tags": [
          "CTI"
        ],
        "operationId": "createMonitorGroupManager",
        "x-category": "contact-center",
        "x-subcategory": "monitor",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Add monitor group manager",
        "description": "Add user into monitor group manager list.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of monitor group.\n"
            },
            "description": "The unique ID of the monitor group."
          },
          {
            "name": "extension_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 member."
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/monitor_groups/{id}/managers/{extension_number}/destroy": {
      "post": {
        "tags": [
          "CTI"
        ],
        "operationId": "deleteMonitorGroupManager",
        "x-category": "contact-center",
        "x-subcategory": "monitor",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Delete monitor group manager",
        "description": "Delete an manager from monitor group manager list.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of monitor group.\n"
            },
            "description": "The unique ID of the group."
          },
          {
            "name": "extension_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 group manager."
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/call_park": {
      "get": {
        "tags": [
          "Call Park"
        ],
        "operationId": "showCallParkServer",
        "x-category": "call-features",
        "x-subcategory": "call-parking",
        "x-permissions": [
          "PhoneSystem.ViewOnly"
        ],
        "summary": "Retrieve call park server",
        "description": "Retrieve call park server information.\n",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "enabled": {
                      "type": "boolean",
                      "description": "Enable call park server or not.\n"
                    },
                    "extension_number": {
                      "allOf": [
                        {
                          "type": "string",
                          "minLength": 3,
                          "maxLength": 64,
                          "pattern": "[0-9]{3,64}",
                          "description": "The extension number.\n"
                        }
                      ],
                      "description": "Extension number used by call park server.\n"
                    },
                    "recall_to": {
                      "type": "string",
                      "enum": [
                        "USER_ONLY",
                        "USER_FIRST_THEN_RING_GROUP",
                        "RING_GROUP_ONLY"
                      ],
                      "description": "Select how the park server forwards the call\nwhen the parked call is not picked up in the **Recall Time**.\nThe forwarding destination can be an extension or a ring group.\nCan be either:\n- `USER_ONLY`: \n- `USER_FIRST_THEN_RING_GROUP`: \n- `RING_GROUP_ONLY`:\n\nWhen set to `USER_FIRST_THEN_RING_GROUP` or `RING_GROUP_ONLY`, `ring_group_id` must also be specified.\n"
                    },
                    "recall_time": {
                      "type": "integer",
                      "format": "int32",
                      "minimum": 60,
                      "maximum": 900,
                      "default": 300,
                      "description": "Set how long the call can be parked on the park server, in seconds.\nAfter this time, the park server needs to forward the call to the preset extension or ring group according to the settings.\nThe default value is 300 seconds, the minimum value is 60 seconds, and the maximum value is 900 seconds.\n"
                    },
                    "recall_ring_group_time": {
                      "type": "integer",
                      "format": "int32",
                      "minimum": 60,
                      "maximum": 900,
                      "default": 300,
                      "description": "Set how long the call can be parked on the park server, in seconds.\nIf the call is not picked up after this time,\nthe park server needs to forward the call to the preset ring group according to the settings.\nThe default value is 300 seconds, the minimum value is 60 seconds, and the maximum value is 90 seconds.\n"
                    },
                    "ring_group_id": {
                      "allOf": [
                        {
                          "allOf": [
                            {
                              "type": "string",
                              "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                              "description": "The unique ID of the resource.\n"
                            }
                          ],
                          "description": "The unique ID of ring group.\n"
                        }
                      ],
                      "description": "The unique ID of ring group.\nSelect a Ring Group as the Recall destination. \nOnly valid when the value of `recall_to` is `USER_FIRST_THEN_RING_GROUP` or `RING_GROUP_ONLY`.\n"
                    },
                    "prompt_file_name": {
                      "type": "string",
                      "description": "The name of the file.\n"
                    },
                    "prompt_file_size": {
                      "type": "integer",
                      "format": "int64",
                      "minimum": 0,
                      "example": 0,
                      "description": "The file size in bytes.\n"
                    },
                    "prompt_file_url": {
                      "type": "string",
                      "readOnly": true,
                      "example": "/api/blobs/WexWdABcd5D4PDgzTKV3gAAAEu00WcK",
                      "description": "The relative path to file url for file downloading.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "enabled": null,
                      "extension_number": null,
                      "recall_to": null,
                      "recall_time": null,
                      "recall_ring_group_time": null,
                      "ring_group_id": null,
                      "prompt_file_name": null,
                      "prompt_file_size": null,
                      "prompt_file_url": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "post": {
        "tags": [
          "Call Park"
        ],
        "operationId": "updateCallParkServer",
        "x-category": "call-features",
        "x-subcategory": "call-parking",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Update call park server",
        "description": "Update call park server\n",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "enabled": {
                    "type": "boolean",
                    "description": "Enable call park server or not.\n"
                  },
                  "extension_number": {
                    "allOf": [
                      {
                        "type": "string",
                        "minLength": 3,
                        "maxLength": 64,
                        "pattern": "[0-9]{3,64}",
                        "description": "The extension number.\n"
                      }
                    ],
                    "description": "Extension number used by call park server.\n"
                  },
                  "recall_to": {
                    "type": "string",
                    "enum": [
                      "USER_ONLY",
                      "USER_FIRST_THEN_RING_GROUP",
                      "RING_GROUP_ONLY"
                    ],
                    "description": "Select how the park server forwards the call\nwhen the parked call is not picked up in the **Recall Time**.\nThe forwarding destination can be an extension or a ring group.\nCan be either:\n- `USER_ONLY`: \n- `USER_FIRST_THEN_RING_GROUP`: \n- `RING_GROUP_ONLY`:\n\nWhen set to `USER_FIRST_THEN_RING_GROUP` or `RING_GROUP_ONLY`, `ring_group_id` must also be specified.\n"
                  },
                  "recall_time": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 60,
                    "maximum": 900,
                    "default": 300,
                    "description": "Set how long the call can be parked on the park server, in seconds.\nAfter this time, the park server needs to forward the call to the preset extension or ring group according to the settings.\nThe default value is 300 seconds, the minimum value is 60 seconds, and the maximum value is 900 seconds.\n"
                  },
                  "recall_ring_group_time": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 60,
                    "maximum": 900,
                    "default": 300,
                    "description": "Set how long the call can be parked on the park server, in seconds.\nIf the call is not picked up after this time,\nthe park server needs to forward the call to the preset ring group according to the settings.\nThe default value is 300 seconds, the minimum value is 60 seconds, and the maximum value is 90 seconds.\n"
                  },
                  "ring_group_id": {
                    "allOf": [
                      {
                        "allOf": [
                          {
                            "type": "string",
                            "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                            "description": "The unique ID of the resource.\n"
                          }
                        ],
                        "description": "The unique ID of ring group.\n"
                      }
                    ],
                    "description": "The unique ID of ring group.\nSelect a Ring Group as the Recall destination. \nOnly valid when the value of `recall_to` is `USER_FIRST_THEN_RING_GROUP` or `RING_GROUP_ONLY`.\n"
                  },
                  "prompt_file_id": {
                    "allOf": [
                      {
                        "type": "string",
                        "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                        "description": "The unique ID of the resource.\n"
                      }
                    ],
                    "description": "The unique ID of the file.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "enabled": null,
                    "extension_number": null,
                    "recall_to": null,
                    "recall_time": null,
                    "recall_ring_group_time": null,
                    "ring_group_id": null,
                    "prompt_file_id": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/call_park_groups": {
      "post": {
        "tags": [
          "Call Park"
        ],
        "operationId": "createCallParkGroup",
        "x-category": "call-features",
        "x-subcategory": "call-parking",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Create a call park group",
        "description": "Create a new call park group.\n",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64,
                    "description": "The name of call park group\n"
                  },
                  "recall_to": {
                    "type": "string",
                    "enum": [
                      "USER_ONLY",
                      "USER_FIRST_THEN_RING_GROUP",
                      "RING_GROUP_ONLY"
                    ],
                    "description": "Select how the park server forwards the call\nwhen the parked call is not picked up in the **Recall Time**.\nThe forwarding destination can be an extension or a ring group.\nCan be either:\n- `USER_ONLY`: \n- `USER_FIRST_THEN_RING_GROUP`: \n- `RING_GROUP_ONLY`:\n\nWhen set to `USER_FIRST_THEN_RING_GROUP` or `RING_GROUP_ONLY`, `ring_group_id` must also be specified.\n"
                  },
                  "ring_group_id": {
                    "allOf": [
                      {
                        "allOf": [
                          {
                            "type": "string",
                            "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                            "description": "The unique ID of the resource.\n"
                          }
                        ],
                        "description": "The unique ID of ring group.\n"
                      }
                    ],
                    "description": "The unique ID of ring group.\nSelect a Ring Group as the Recall destination. \nOnly valid when the value of `recall_to` is `USER_FIRST_THEN_RING_GROUP` or `RING_GROUP_ONLY`.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "name": null,
                    "recall_to": null,
                    "ring_group_id": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created call park group",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of call park group.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "The ID of created resource",
                    "value": {
                      "id": "xxxxxxxx"
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "get": {
        "tags": [
          "Call Park"
        ],
        "operationId": "listCallParkGroups",
        "x-category": "call-features",
        "x-subcategory": "call-parking",
        "x-permissions": [
          "PhoneSystem.ViewOnly"
        ],
        "summary": "List call park groups",
        "description": "List call park groups\n",
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Use the `filter` query parameter to retrieve just a subset of a collection.\n"
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "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",
            "required": false,
            "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",
            "required": false,
            "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",
            "required": false,
            "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,
                      "example": 100,
                      "description": "Total number of resource.\n"
                    },
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "description": "The unique ID of call park group.\n"
                          },
                          "name": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 64,
                            "description": "The name of call park group\n"
                          },
                          "recall_to": {
                            "type": "string",
                            "enum": [
                              "USER_ONLY",
                              "USER_FIRST_THEN_RING_GROUP",
                              "RING_GROUP_ONLY"
                            ],
                            "description": "Select how the park server forwards the call\nwhen the parked call is not picked up in the **Recall Time**.\nThe forwarding destination can be an extension or a ring group.\nCan be either:\n- `USER_ONLY`: \n- `USER_FIRST_THEN_RING_GROUP`: \n- `RING_GROUP_ONLY`:\n\nWhen set to `USER_FIRST_THEN_RING_GROUP` or `RING_GROUP_ONLY`, `ring_group_id` must also be specified.\n"
                          },
                          "ring_group_id": {
                            "allOf": [
                              {
                                "allOf": [
                                  {
                                    "type": "string",
                                    "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                    "description": "The unique ID of the resource.\n"
                                  }
                                ],
                                "description": "The unique ID of ring group.\n"
                              }
                            ],
                            "description": "The unique ID of ring group.\nSelect a Ring Group as the Recall destination. \nOnly valid when the value of `recall_to` is `USER_FIRST_THEN_RING_GROUP` or `RING_GROUP_ONLY`.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": null,
                          "name": null,
                          "recall_to": null,
                          "ring_group_id": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/call_park_groups/{id}": {
      "get": {
        "tags": [
          "Call Park"
        ],
        "operationId": "showCallParkGroup",
        "x-category": "call-features",
        "x-subcategory": "call-parking",
        "x-permissions": [
          "PhoneSystem.ViewOnly"
        ],
        "summary": "Retrieve a call park group",
        "description": "Retrieves details of a call park group.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of call park group.\n"
            },
            "description": "The unique ID of the call park group.\n"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of call park group.\n"
                    },
                    "name": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64,
                      "description": "The name of call park group\n"
                    },
                    "recall_to": {
                      "type": "string",
                      "enum": [
                        "USER_ONLY",
                        "USER_FIRST_THEN_RING_GROUP",
                        "RING_GROUP_ONLY"
                      ],
                      "description": "Select how the park server forwards the call\nwhen the parked call is not picked up in the **Recall Time**.\nThe forwarding destination can be an extension or a ring group.\nCan be either:\n- `USER_ONLY`: \n- `USER_FIRST_THEN_RING_GROUP`: \n- `RING_GROUP_ONLY`:\n\nWhen set to `USER_FIRST_THEN_RING_GROUP` or `RING_GROUP_ONLY`, `ring_group_id` must also be specified.\n"
                    },
                    "ring_group_id": {
                      "allOf": [
                        {
                          "allOf": [
                            {
                              "type": "string",
                              "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                              "description": "The unique ID of the resource.\n"
                            }
                          ],
                          "description": "The unique ID of ring group.\n"
                        }
                      ],
                      "description": "The unique ID of ring group.\nSelect a Ring Group as the Recall destination. \nOnly valid when the value of `recall_to` is `USER_FIRST_THEN_RING_GROUP` or `RING_GROUP_ONLY`.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "id": null,
                      "name": null,
                      "recall_to": null,
                      "ring_group_id": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "post": {
        "tags": [
          "Call Park"
        ],
        "operationId": "updateCallParkGroup",
        "x-category": "call-features",
        "x-subcategory": "call-parking",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Update an call park group.",
        "description": "Update an call park group.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of call park group.\n"
            },
            "description": "The unique ID of the call park group.\n"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64,
                    "description": "The name of call park group\n"
                  },
                  "recall_to": {
                    "type": "string",
                    "enum": [
                      "USER_ONLY",
                      "USER_FIRST_THEN_RING_GROUP",
                      "RING_GROUP_ONLY"
                    ],
                    "description": "Select how the park server forwards the call\nwhen the parked call is not picked up in the **Recall Time**.\nThe forwarding destination can be an extension or a ring group.\nCan be either:\n- `USER_ONLY`: \n- `USER_FIRST_THEN_RING_GROUP`: \n- `RING_GROUP_ONLY`:\n\nWhen set to `USER_FIRST_THEN_RING_GROUP` or `RING_GROUP_ONLY`, `ring_group_id` must also be specified.\n"
                  },
                  "ring_group_id": {
                    "allOf": [
                      {
                        "allOf": [
                          {
                            "type": "string",
                            "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                            "description": "The unique ID of the resource.\n"
                          }
                        ],
                        "description": "The unique ID of ring group.\n"
                      }
                    ],
                    "description": "The unique ID of ring group.\nSelect a Ring Group as the Recall destination. \nOnly valid when the value of `recall_to` is `USER_FIRST_THEN_RING_GROUP` or `RING_GROUP_ONLY`.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "name": null,
                    "recall_to": null,
                    "ring_group_id": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Updated call park group"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/call_park_groups/{id}/destroy": {
      "post": {
        "tags": [
          "Call Park"
        ],
        "operationId": "deleteCallParkGroup",
        "x-category": "call-features",
        "x-subcategory": "call-parking",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Delete a call park group",
        "description": "Delete a call park group.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of call park group.\n"
            },
            "description": "The unique ID of the call park group."
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/call_park_groups/{id}/members": {
      "get": {
        "tags": [
          "Call Park"
        ],
        "operationId": "listCallParkGroupMembers",
        "x-category": "call-features",
        "x-subcategory": "call-parking",
        "x-permissions": [
          "PhoneSystem.ViewOnly"
        ],
        "summary": "List call park group members",
        "description": "Retrieve a collection of call park group members.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of call park group.\n"
            },
            "description": "The unique ID of the call park group."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "description": "The unique ID of user.\n"
                          },
                          "name": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 64,
                            "description": "The user's account name.   \nOnly letters, numbers, and the following special characters can be added: underscore, dash, single quote, and period (_, -, ', and .).   \nUsername cannot start or end with period (.).   \n`admin`, `system`, `administrator`, and `root` are reserved names for system admin only with case ignored.\n"
                          },
                          "display_name": {
                            "type": "string",
                            "maxLength": 1024,
                            "description": "The display name of user.\n"
                          },
                          "extension_number": {
                            "type": "string",
                            "minLength": 3,
                            "maxLength": 64,
                            "pattern": "[0-9]{3,64}",
                            "description": "The extension number.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "items": [
                        {
                          "id": null,
                          "name": null,
                          "display_name": null,
                          "extension_number": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/call_park_groups/{id}/members/{extension_number}": {
      "post": {
        "tags": [
          "Call Park"
        ],
        "operationId": "createCallParkGroupMember",
        "x-category": "call-features",
        "x-subcategory": "call-parking",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Add call park group member",
        "description": "Add user member into call park group.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of call park group.\n"
            },
            "description": "The unique ID of the call park group.\n"
          },
          {
            "name": "extension_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 member."
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/call_park_groups/{id}/members/{extension_number}/destroy": {
      "post": {
        "tags": [
          "Call Park"
        ],
        "operationId": "deleteCallParkGroupMember",
        "x-category": "call-features",
        "x-subcategory": "call-parking",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Delete call park group member",
        "description": "Delete a call park group member.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of call park group.\n"
            },
            "description": "The unique ID of the call park group."
          },
          {
            "name": "extension_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 group member."
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/call_pickup_groups": {
      "post": {
        "tags": [
          "Call Pickup"
        ],
        "operationId": "createCallPickupGroup",
        "x-category": "call-features",
        "x-subcategory": "call-pickup",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Create a call pickup group",
        "description": "Create a new call pickup group.\n",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64,
                    "description": "The name of call park group\n"
                  },
                  "description": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 1024,
                    "description": "The description of call park group.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "name": null,
                    "description": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created call pickup group",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of call pick group.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "The ID of created resource",
                    "value": {
                      "id": "xxxxxxxx"
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "get": {
        "tags": [
          "Call Pickup"
        ],
        "operationId": "listCallPickupGroups",
        "x-category": "call-features",
        "x-subcategory": "call-pickup",
        "x-permissions": [
          "PhoneSystem.ViewOnly"
        ],
        "summary": "List call pickup groups",
        "description": "List call pickup groups\n",
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Use the `filter` query parameter to retrieve just a subset of a collection.\n"
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "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",
            "required": false,
            "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",
            "required": false,
            "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",
            "required": false,
            "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,
                      "example": 100,
                      "description": "Total number of resource.\n"
                    },
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "description": "The unique ID of call pick group.\n"
                          },
                          "name": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 64,
                            "description": "The name of call park group\n"
                          },
                          "description": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 1024,
                            "description": "The description of call park group.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": null,
                          "name": null,
                          "description": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/call_pickup_groups/{id}": {
      "get": {
        "tags": [
          "Call Pickup"
        ],
        "operationId": "showCallPickupGroup",
        "x-category": "call-features",
        "x-subcategory": "call-pickup",
        "x-permissions": [
          "PhoneSystem.ViewOnly"
        ],
        "summary": "Retrieve a call pickup group",
        "description": "Retrieves details of a call pickup group.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of call park group.\n"
            },
            "description": "The unique ID of the call pickup group.\n"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of call pick group.\n"
                    },
                    "name": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64,
                      "description": "The name of call park group\n"
                    },
                    "description": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 1024,
                      "description": "The description of call park group.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "id": null,
                      "name": null,
                      "description": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "post": {
        "tags": [
          "Call Pickup"
        ],
        "operationId": "updateCallPickupGroup",
        "x-category": "call-features",
        "x-subcategory": "call-pickup",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Update an call pickup group.",
        "description": "Update an call pickup group.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of call pick group.\n"
            },
            "description": "The unique ID of the call pickup group.\n"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64,
                    "description": "The name of call park group\n"
                  },
                  "description": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 1024,
                    "description": "The description of call park group.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "name": null,
                    "description": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Updated call pickup group"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/call_pickup_groups/{id}/destroy": {
      "post": {
        "tags": [
          "Call Pickup"
        ],
        "operationId": "deleteCallPickupGroup",
        "x-category": "call-features",
        "x-subcategory": "call-pickup",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Delete a call pickup group",
        "description": "Delete a call pickup group.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of call pick group.\n"
            },
            "description": "The unique ID of the call pickup group.\n"
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/call_pickup_groups/{id}/members": {
      "get": {
        "tags": [
          "Call Pickup"
        ],
        "operationId": "listCallPickupGroupMembers",
        "x-category": "call-features",
        "x-subcategory": "call-pickup",
        "x-permissions": [
          "PhoneSystem.ViewOnly"
        ],
        "summary": "List call pickup group members",
        "description": "Retrieve a collection of call pickup group members.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of call pick group.\n"
            },
            "description": "The unique ID of the call pickup group."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "description": "The unique ID of user.\n"
                          },
                          "name": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 64,
                            "description": "The user's account name.   \nOnly letters, numbers, and the following special characters can be added: underscore, dash, single quote, and period (_, -, ', and .).   \nUsername cannot start or end with period (.).   \n`admin`, `system`, `administrator`, and `root` are reserved names for system admin only with case ignored.\n"
                          },
                          "display_name": {
                            "type": "string",
                            "maxLength": 1024,
                            "description": "The display name of user.\n"
                          },
                          "extension_number": {
                            "type": "string",
                            "minLength": 3,
                            "maxLength": 64,
                            "pattern": "[0-9]{3,64}",
                            "description": "The extension number.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "items": [
                        {
                          "id": null,
                          "name": null,
                          "display_name": null,
                          "extension_number": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "post": {
        "tags": [
          "Call Pickup"
        ],
        "operationId": "updateCallPickupGroupMemberList",
        "x-category": "call-features",
        "x-subcategory": "call-pickup",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Update call pickup group member list",
        "description": "Update call pickup group member list.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of call pick group.\n"
            },
            "description": "The unique ID of call pickup group."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "items": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 3,
                      "maxLength": 64,
                      "pattern": "[0-9]{3,64}",
                      "description": "The extension number.\n"
                    },
                    "description": "Collection of member's extension number."
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "items": [
                      "xxx",
                      "yyy"
                    ]
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/call_pickup_groups/{id}/members/{extension_number}": {
      "get": {
        "tags": [
          "Call Pickup"
        ],
        "operationId": "getCallPickupGroupMember",
        "x-category": "call-features",
        "x-subcategory": "call-pickup",
        "x-permissions": [
          "PhoneSystem.ViewOnly"
        ],
        "summary": "Check call pickup group member",
        "description": "Check if extension is in call pickup group.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of call pick group.\n"
            },
            "description": "The unique ID of the call pickup group.\n"
          },
          {
            "name": "extension_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 member.\n"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of user.\n"
                    },
                    "name": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64,
                      "description": "The user's account name.   \nOnly letters, numbers, and the following special characters can be added: underscore, dash, single quote, and period (_, -, ', and .).   \nUsername cannot start or end with period (.).   \n`admin`, `system`, `administrator`, and `root` are reserved names for system admin only with case ignored.\n"
                    },
                    "display_name": {
                      "type": "string",
                      "maxLength": 1024,
                      "description": "The display name of user.\n"
                    },
                    "extension_number": {
                      "type": "string",
                      "minLength": 3,
                      "maxLength": 64,
                      "pattern": "[0-9]{3,64}",
                      "description": "The extension number.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "id": null,
                      "name": null,
                      "display_name": null,
                      "extension_number": null
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          }
        }
      }
    },
    "/voicemail": {
      "get": {
        "tags": [
          "Tenant"
        ],
        "operationId": "showVoicemailServer",
        "x-category": "call-features",
        "x-subcategory": "voicemails",
        "x-permissions": [
          "PhoneSystem.ViewOnly"
        ],
        "summary": "Retrieve voicemail server",
        "description": "Retrieve voicemail server information.\n",
        "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 voicemail server."
                    },
                    "retain_days": {
                      "type": "integer",
                      "format": "int32",
                      "minimum": 0,
                      "default": 30,
                      "description": "Duration the voicemail will be kept before auto deleted, in days.\n"
                    },
                    "min_seconds": {
                      "type": "integer",
                      "format": "int32",
                      "minimum": 0,
                      "default": 1,
                      "description": "The minimum length of a voicemail, in seconds.\nAny callings shorter than this value will not be saved as voicemail.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "extension_number": null,
                      "retain_days": null,
                      "min_seconds": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "post": {
        "tags": [
          "Tenant"
        ],
        "operationId": "updateVoicemailServer",
        "x-category": "call-features",
        "x-subcategory": "voicemails",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Update voicemail server",
        "description": "Update voicemail server\n",
        "requestBody": {
          "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 voicemail server."
                  },
                  "retain_days": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 0,
                    "default": 30,
                    "description": "Duration the voicemail will be kept before auto deleted, in days.\n"
                  },
                  "min_seconds": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 0,
                    "default": 1,
                    "description": "The minimum length of a voicemail, in seconds.\nAny callings shorter than this value will not be saved as voicemail.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "extension_number": null,
                    "retain_days": null,
                    "min_seconds": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/acb": {
      "get": {
        "tags": [
          "Automatic Callback"
        ],
        "operationId": "getAutomaticCallbackSettings",
        "x-category": "call-features",
        "x-subcategory": "callback",
        "x-permissions": [
          "PhoneSystem.ViewOnly"
        ],
        "summary": "Retrieve automatic callback settings",
        "description": "Retrieve automatic callback settings.\n",
        "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 automatic callback service.\n"
                    },
                    "language": {
                      "type": "string",
                      "example": "en-US",
                      "description": "BCP 47 Language Tags (The Internet Best Current Practices (BCP) for language tags).\nA language tag is composed of a sequence of one or more subtags such as language, region, variant and script subtags.\nWhen a language tag is comprised of more than one subtag, the subtag values are separated by the \"-\" character.\nYou will most commonly find language tags written with 2 subtags - language and region. For example: en-US.\n"
                    },
                    "retry_interval": {
                      "type": "integer",
                      "format": "int32",
                      "minimum": 0,
                      "default": 5,
                      "description": "Retry originator minutes.\nThe amount of time to wait before re-trying a busy automatic callback originator.\n"
                    },
                    "retry_total_time": {
                      "type": "integer",
                      "format": "int32",
                      "minimum": 0,
                      "default": 30,
                      "description": "Monitor Minutes.\nThe amount of time to camp-out on the busy line, waiting for it to become idle.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "An example for get automatic callback configurations",
                    "value": {
                      "extension_number": null,
                      "language": null,
                      "retry_interval": null,
                      "retry_total_time": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "post": {
        "tags": [
          "Automatic Callback"
        ],
        "operationId": "updateAutomaticCallbackSettings",
        "x-category": "call-features",
        "x-subcategory": "callback",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Update automatic callback settings",
        "description": "Update automatic callback settings\n",
        "requestBody": {
          "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 automatic callback service.\n"
                  },
                  "language": {
                    "type": "string",
                    "example": "en-US",
                    "description": "BCP 47 Language Tags (The Internet Best Current Practices (BCP) for language tags).\nA language tag is composed of a sequence of one or more subtags such as language, region, variant and script subtags.\nWhen a language tag is comprised of more than one subtag, the subtag values are separated by the \"-\" character.\nYou will most commonly find language tags written with 2 subtags - language and region. For example: en-US.\n"
                  },
                  "retry_interval": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 0,
                    "default": 5,
                    "description": "Retry originator minutes.\nThe amount of time to wait before re-trying a busy automatic callback originator.\n"
                  },
                  "retry_total_time": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 0,
                    "default": 30,
                    "description": "Monitor Minutes.\nThe amount of time to camp-out on the busy line, waiting for it to become idle.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": "An example for update automatic callback configurations",
                  "value": {
                    "extension_number": null,
                    "language": null,
                    "retry_interval": null,
                    "retry_total_time": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/outbound_rules": {
      "post": {
        "tags": [
          "Outbound Rule"
        ],
        "operationId": "createOutboundRule",
        "x-category": "call-control",
        "x-subcategory": "outbound-rules",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Create a outbound rule",
        "description": "Add a new outbound rule.\n",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64,
                    "description": "The name of outbound rule.\n"
                  },
                  "number_prefix": {
                    "type": "string",
                    "maxLength": 64,
                    "description": "Prefix of callee ID. Calls started with this prefix will be applied this outbound rule.\n"
                  },
                  "number_length": {
                    "type": "string",
                    "maxLength": 64,
                    "description": "The length of number prefix.  \nA semicolon-separated list of integer.  \nFor example by specifying \"1;2\", calls with a caller ID of 1 or 2 digits will be applied this rule.\n"
                  },
                  "number_mask": {
                    "type": "string",
                    "description": "Extension who starts the call. A semicolon-separated list of extensions allowed.\nFor example by specifying \"101-110;199\", extensions from 101 to 110 and 199 will be applied this rule.\n"
                  },
                  "enabled": {
                    "type": "boolean",
                    "default": true,
                    "description": "Whether to enable outbound rule.\n"
                  },
                  "priority": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 0,
                    "default": 1000,
                    "description": "The priority of outbound rule.\n"
                  },
                  "office_hours": {
                    "allOf": [
                      {
                        "type": "object",
                        "properties": {
                          "mode": {
                            "type": "string",
                            "enum": [
                              "GLOBAL",
                              "CUSTOM"
                            ],
                            "example": "CUSTOM",
                            "description": "The office hours mode can be either:  \n- `GLOBAL`: Use global office hours.\n- `CUSTOM`: Use specific office hours.\n"
                          }
                        }
                      },
                      {
                        "type": "object",
                        "properties": {
                          "monday": {
                            "type": "object",
                            "properties": {
                              "enabled": {
                                "type": "boolean",
                                "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                              },
                              "ranges": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "from": {
                                      "type": "string",
                                      "example": "09:00",
                                      "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                    },
                                    "to": {
                                      "type": "string",
                                      "example": "17:00",
                                      "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                    }
                                  }
                                },
                                "description": "Multiple start and end time periods make up the working time.\n"
                              }
                            }
                          },
                          "tuesday": {
                            "type": "object",
                            "properties": {
                              "enabled": {
                                "type": "boolean",
                                "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                              },
                              "ranges": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "from": {
                                      "type": "string",
                                      "example": "09:00",
                                      "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                    },
                                    "to": {
                                      "type": "string",
                                      "example": "17:00",
                                      "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                    }
                                  }
                                },
                                "description": "Multiple start and end time periods make up the working time.\n"
                              }
                            }
                          },
                          "wednesday": {
                            "type": "object",
                            "properties": {
                              "enabled": {
                                "type": "boolean",
                                "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                              },
                              "ranges": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "from": {
                                      "type": "string",
                                      "example": "09:00",
                                      "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                    },
                                    "to": {
                                      "type": "string",
                                      "example": "17:00",
                                      "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                    }
                                  }
                                },
                                "description": "Multiple start and end time periods make up the working time.\n"
                              }
                            }
                          },
                          "thursday": {
                            "type": "object",
                            "properties": {
                              "enabled": {
                                "type": "boolean",
                                "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                              },
                              "ranges": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "from": {
                                      "type": "string",
                                      "example": "09:00",
                                      "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                    },
                                    "to": {
                                      "type": "string",
                                      "example": "17:00",
                                      "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                    }
                                  }
                                },
                                "description": "Multiple start and end time periods make up the working time.\n"
                              }
                            }
                          },
                          "friday": {
                            "type": "object",
                            "properties": {
                              "enabled": {
                                "type": "boolean",
                                "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                              },
                              "ranges": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "from": {
                                      "type": "string",
                                      "example": "09:00",
                                      "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                    },
                                    "to": {
                                      "type": "string",
                                      "example": "17:00",
                                      "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                    }
                                  }
                                },
                                "description": "Multiple start and end time periods make up the working time.\n"
                              }
                            }
                          },
                          "saturday": {
                            "type": "object",
                            "properties": {
                              "enabled": {
                                "type": "boolean",
                                "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                              },
                              "ranges": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "from": {
                                      "type": "string",
                                      "example": "09:00",
                                      "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                    },
                                    "to": {
                                      "type": "string",
                                      "example": "17:00",
                                      "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                    }
                                  }
                                },
                                "description": "Multiple start and end time periods make up the working time.\n"
                              }
                            }
                          },
                          "sunday": {
                            "type": "object",
                            "properties": {
                              "enabled": {
                                "type": "boolean",
                                "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                              },
                              "ranges": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "from": {
                                      "type": "string",
                                      "example": "09:00",
                                      "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                    },
                                    "to": {
                                      "type": "string",
                                      "example": "17:00",
                                      "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                    }
                                  }
                                },
                                "description": "Multiple start and end time periods make up the working time.\n"
                              }
                            }
                          }
                        }
                      }
                    ]
                  },
                  "usage": {
                    "type": "string",
                    "enum": [
                      "BOTH",
                      "SIP",
                      "MESSAGE"
                    ],
                    "default": "SIP",
                    "description": "The inbound rule usage, can be either:  \n- `BOTH`: Applies to both messages and calls.\n- `SIP`: Applies to voice only.\n- `MESSAGE`: Applies to messages only.\n"
                  },
                  "holidays": {
                    "type": "array",
                    "items": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "readOnly": true,
                      "description": "The unique ID of holiday.\n"
                    },
                    "description": "A collection ID of tenant's holidays.\n"
                  },
                  "routing_strategy": {
                    "type": "string",
                    "enum": [
                      "PRIORITIZED",
                      "RANDOMLY"
                    ],
                    "default": "PRIORITIZED",
                    "description": "Routing strategy:   \nCan be either:  \n- `PRIORITIZED`: Selected according to the priority order of the route list.\n- `RANDOMLY`: Randomly select one of the route list.\n"
                  },
                  "routes": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "enabled": {
                          "type": "boolean",
                          "description": "Enable this route or not.\n"
                        },
                        "provider_id": {
                          "allOf": [
                            {
                              "allOf": [
                                {
                                  "type": "string",
                                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                  "description": "The unique ID of the resource.\n"
                                }
                              ],
                              "description": "The unique ID of trunk.\n"
                            }
                          ],
                          "description": "The unique ID of provider.\n"
                        },
                        "strip_digits": {
                          "type": "integer",
                          "format": "int32",
                          "minimum": 0,
                          "default": 0,
                          "description": "Digits for striping number. Values: 0-9. \nFor example if it is set to 2, the first two digits for caller ID of calling from route_provider_1 will be removed.\n"
                        },
                        "prepend": {
                          "type": "string",
                          "description": "Prefix number. If it is set to \"0086\", call ID for calling from\nroute_provider_1 will be prefixed with \"0086\".\n"
                        },
                        "outbound_caller_id": {
                          "allOf": [
                            {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 64,
                              "description": "Outbound caller id.\n"
                            }
                          ],
                          "description": "The outbound caller ID within the trunk's DID/DDI pool scope.\n"
                        }
                      }
                    }
                  }
                },
                "required": [
                  "name"
                ]
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "name": null,
                    "number_prefix": null,
                    "number_length": null,
                    "number_mask": null,
                    "enabled": null,
                    "priority": null,
                    "office_hours": null,
                    "holidays": null,
                    "routing_strategy": null,
                    "routes": null,
                    "usage": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created outbound rule",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of outbound rule.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "The ID of created resource",
                    "value": {
                      "id": "xxxxxxxx"
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "get": {
        "tags": [
          "Outbound Rule"
        ],
        "operationId": "listOutboundRules",
        "x-category": "call-control",
        "x-subcategory": "outbound-rules",
        "x-permissions": [
          "PhoneSystem.ViewOnly"
        ],
        "summary": "List outbound rules",
        "description": "Retrieve a collection of outbound rules.\n",
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Use the `filter` query parameter to retrieve just a subset of a collection.\n"
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "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",
            "required": false,
            "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",
            "required": false,
            "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",
            "required": false,
            "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,
                      "example": 100,
                      "description": "Total number of resource.\n"
                    },
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "description": "The unique ID of outbound rule.\n"
                          },
                          "name": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 64,
                            "description": "The name of outbound rule.\n"
                          },
                          "number_prefix": {
                            "type": "string",
                            "maxLength": 64,
                            "description": "Prefix of callee ID. Calls started with this prefix will be applied this outbound rule.\n"
                          },
                          "number_length": {
                            "type": "string",
                            "maxLength": 64,
                            "description": "The length of number prefix.  \nA semicolon-separated list of integer.  \nFor example by specifying \"1;2\", calls with a caller ID of 1 or 2 digits will be applied this rule.\n"
                          },
                          "number_mask": {
                            "type": "string",
                            "description": "Extension who starts the call. A semicolon-separated list of extensions allowed.\nFor example by specifying \"101-110;199\", extensions from 101 to 110 and 199 will be applied this rule.\n"
                          },
                          "enabled": {
                            "type": "boolean",
                            "default": true,
                            "description": "Whether to enable outbound rule.\n"
                          },
                          "priority": {
                            "type": "integer",
                            "format": "int32",
                            "minimum": 0,
                            "default": 1000,
                            "description": "The priority of outbound rule.\n"
                          },
                          "office_hours": {
                            "allOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "mode": {
                                    "type": "string",
                                    "enum": [
                                      "GLOBAL",
                                      "CUSTOM"
                                    ],
                                    "example": "CUSTOM",
                                    "description": "The office hours mode can be either:  \n- `GLOBAL`: Use global office hours.\n- `CUSTOM`: Use specific office hours.\n"
                                  }
                                }
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "monday": {
                                    "type": "object",
                                    "properties": {
                                      "enabled": {
                                        "type": "boolean",
                                        "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                      },
                                      "ranges": {
                                        "type": "array",
                                        "items": {
                                          "type": "object",
                                          "properties": {
                                            "from": {
                                              "type": "string",
                                              "example": "09:00",
                                              "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                            },
                                            "to": {
                                              "type": "string",
                                              "example": "17:00",
                                              "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                            }
                                          }
                                        },
                                        "description": "Multiple start and end time periods make up the working time.\n"
                                      }
                                    }
                                  },
                                  "tuesday": {
                                    "type": "object",
                                    "properties": {
                                      "enabled": {
                                        "type": "boolean",
                                        "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                      },
                                      "ranges": {
                                        "type": "array",
                                        "items": {
                                          "type": "object",
                                          "properties": {
                                            "from": {
                                              "type": "string",
                                              "example": "09:00",
                                              "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                            },
                                            "to": {
                                              "type": "string",
                                              "example": "17:00",
                                              "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                            }
                                          }
                                        },
                                        "description": "Multiple start and end time periods make up the working time.\n"
                                      }
                                    }
                                  },
                                  "wednesday": {
                                    "type": "object",
                                    "properties": {
                                      "enabled": {
                                        "type": "boolean",
                                        "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                      },
                                      "ranges": {
                                        "type": "array",
                                        "items": {
                                          "type": "object",
                                          "properties": {
                                            "from": {
                                              "type": "string",
                                              "example": "09:00",
                                              "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                            },
                                            "to": {
                                              "type": "string",
                                              "example": "17:00",
                                              "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                            }
                                          }
                                        },
                                        "description": "Multiple start and end time periods make up the working time.\n"
                                      }
                                    }
                                  },
                                  "thursday": {
                                    "type": "object",
                                    "properties": {
                                      "enabled": {
                                        "type": "boolean",
                                        "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                      },
                                      "ranges": {
                                        "type": "array",
                                        "items": {
                                          "type": "object",
                                          "properties": {
                                            "from": {
                                              "type": "string",
                                              "example": "09:00",
                                              "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                            },
                                            "to": {
                                              "type": "string",
                                              "example": "17:00",
                                              "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                            }
                                          }
                                        },
                                        "description": "Multiple start and end time periods make up the working time.\n"
                                      }
                                    }
                                  },
                                  "friday": {
                                    "type": "object",
                                    "properties": {
                                      "enabled": {
                                        "type": "boolean",
                                        "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                      },
                                      "ranges": {
                                        "type": "array",
                                        "items": {
                                          "type": "object",
                                          "properties": {
                                            "from": {
                                              "type": "string",
                                              "example": "09:00",
                                              "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                            },
                                            "to": {
                                              "type": "string",
                                              "example": "17:00",
                                              "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                            }
                                          }
                                        },
                                        "description": "Multiple start and end time periods make up the working time.\n"
                                      }
                                    }
                                  },
                                  "saturday": {
                                    "type": "object",
                                    "properties": {
                                      "enabled": {
                                        "type": "boolean",
                                        "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                      },
                                      "ranges": {
                                        "type": "array",
                                        "items": {
                                          "type": "object",
                                          "properties": {
                                            "from": {
                                              "type": "string",
                                              "example": "09:00",
                                              "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                            },
                                            "to": {
                                              "type": "string",
                                              "example": "17:00",
                                              "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                            }
                                          }
                                        },
                                        "description": "Multiple start and end time periods make up the working time.\n"
                                      }
                                    }
                                  },
                                  "sunday": {
                                    "type": "object",
                                    "properties": {
                                      "enabled": {
                                        "type": "boolean",
                                        "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                      },
                                      "ranges": {
                                        "type": "array",
                                        "items": {
                                          "type": "object",
                                          "properties": {
                                            "from": {
                                              "type": "string",
                                              "example": "09:00",
                                              "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                            },
                                            "to": {
                                              "type": "string",
                                              "example": "17:00",
                                              "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                            }
                                          }
                                        },
                                        "description": "Multiple start and end time periods make up the working time.\n"
                                      }
                                    }
                                  }
                                }
                              }
                            ]
                          },
                          "holidays": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "id": {
                                  "allOf": [
                                    {
                                      "type": "string",
                                      "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                      "description": "The unique ID of the resource.\n"
                                    }
                                  ],
                                  "readOnly": true,
                                  "description": "The unique ID of holiday.\n"
                                },
                                "name": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 64,
                                  "description": "The name of the holiday.\n"
                                },
                                "every_year": {
                                  "type": "boolean",
                                  "description": "Does the holiday take effect every year.\n"
                                },
                                "consecutive": {
                                  "type": "boolean",
                                  "description": "Whether the holiday consists of consecutive days.\n"
                                },
                                "year_start": {
                                  "type": "integer",
                                  "description": "The start year of holiday.\n"
                                },
                                "year_end": {
                                  "type": "integer",
                                  "description": "The end year of holiday.\n"
                                },
                                "month_start": {
                                  "type": "integer",
                                  "description": "The start month of holiday.\n"
                                },
                                "month_end": {
                                  "type": "integer",
                                  "description": "The end month of holiday.\n"
                                },
                                "day_start": {
                                  "type": "integer",
                                  "description": "The start day of holiday.\n"
                                },
                                "day_end": {
                                  "type": "integer",
                                  "description": "The end day of holiday.\n"
                                },
                                "hour_start": {
                                  "type": "integer",
                                  "description": "The start hour of holiday.\n"
                                },
                                "hour_end": {
                                  "type": "integer",
                                  "description": "The end hour of holiday.\n"
                                },
                                "minute_start": {
                                  "type": "integer",
                                  "description": "The start minute of holiday.\n"
                                },
                                "minute_end": {
                                  "type": "integer",
                                  "description": "The end minute of holiday.\n"
                                }
                              }
                            },
                            "description": "A collection of tenant's holidays.\n"
                          },
                          "routing_strategy": {
                            "type": "string",
                            "enum": [
                              "PRIORITIZED",
                              "RANDOMLY"
                            ],
                            "default": "PRIORITIZED",
                            "description": "Routing strategy:   \nCan be either:  \n- `PRIORITIZED`: Selected according to the priority order of the route list.\n- `RANDOMLY`: Randomly select one of the route list.\n"
                          },
                          "usage": {
                            "type": "string",
                            "enum": [
                              "BOTH",
                              "SIP",
                              "MESSAGE"
                            ],
                            "default": "SIP",
                            "description": "The inbound rule usage, can be either:  \n- `BOTH`: Applies to both messages and calls.\n- `SIP`: Applies to voice only.\n- `MESSAGE`: Applies to messages only.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": null,
                          "name": null,
                          "number_prefix": null,
                          "number_length": null,
                          "number_mask": null,
                          "enabled": null,
                          "priority": null,
                          "office_hours": null,
                          "holidays": null,
                          "routing_strategy": null,
                          "usage": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/outbound_rules/{id}": {
      "get": {
        "tags": [
          "Outbound Rule"
        ],
        "operationId": "retrieveOutboundRule",
        "x-category": "call-control",
        "x-subcategory": "outbound-rules",
        "x-permissions": [
          "PhoneSystem.ViewOnly"
        ],
        "summary": "Retrieve a outbound rule",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of outbound rule.\n"
            },
            "description": "The unique ID of the outbound rule."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of outbound rule.\n"
                    },
                    "name": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64,
                      "description": "The name of outbound rule.\n"
                    },
                    "number_prefix": {
                      "type": "string",
                      "maxLength": 64,
                      "description": "Prefix of callee ID. Calls started with this prefix will be applied this outbound rule.\n"
                    },
                    "number_length": {
                      "type": "string",
                      "maxLength": 64,
                      "description": "The length of number prefix.  \nA semicolon-separated list of integer.  \nFor example by specifying \"1;2\", calls with a caller ID of 1 or 2 digits will be applied this rule.\n"
                    },
                    "number_mask": {
                      "type": "string",
                      "description": "Extension who starts the call. A semicolon-separated list of extensions allowed.\nFor example by specifying \"101-110;199\", extensions from 101 to 110 and 199 will be applied this rule.\n"
                    },
                    "enabled": {
                      "type": "boolean",
                      "default": true,
                      "description": "Whether to enable outbound rule.\n"
                    },
                    "priority": {
                      "type": "integer",
                      "format": "int32",
                      "minimum": 0,
                      "default": 1000,
                      "description": "The priority of outbound rule.\n"
                    },
                    "office_hours": {
                      "allOf": [
                        {
                          "type": "object",
                          "properties": {
                            "mode": {
                              "type": "string",
                              "enum": [
                                "GLOBAL",
                                "CUSTOM"
                              ],
                              "example": "CUSTOM",
                              "description": "The office hours mode can be either:  \n- `GLOBAL`: Use global office hours.\n- `CUSTOM`: Use specific office hours.\n"
                            }
                          }
                        },
                        {
                          "type": "object",
                          "properties": {
                            "monday": {
                              "type": "object",
                              "properties": {
                                "enabled": {
                                  "type": "boolean",
                                  "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                },
                                "ranges": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "from": {
                                        "type": "string",
                                        "example": "09:00",
                                        "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                      },
                                      "to": {
                                        "type": "string",
                                        "example": "17:00",
                                        "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                      }
                                    }
                                  },
                                  "description": "Multiple start and end time periods make up the working time.\n"
                                }
                              }
                            },
                            "tuesday": {
                              "type": "object",
                              "properties": {
                                "enabled": {
                                  "type": "boolean",
                                  "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                },
                                "ranges": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "from": {
                                        "type": "string",
                                        "example": "09:00",
                                        "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                      },
                                      "to": {
                                        "type": "string",
                                        "example": "17:00",
                                        "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                      }
                                    }
                                  },
                                  "description": "Multiple start and end time periods make up the working time.\n"
                                }
                              }
                            },
                            "wednesday": {
                              "type": "object",
                              "properties": {
                                "enabled": {
                                  "type": "boolean",
                                  "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                },
                                "ranges": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "from": {
                                        "type": "string",
                                        "example": "09:00",
                                        "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                      },
                                      "to": {
                                        "type": "string",
                                        "example": "17:00",
                                        "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                      }
                                    }
                                  },
                                  "description": "Multiple start and end time periods make up the working time.\n"
                                }
                              }
                            },
                            "thursday": {
                              "type": "object",
                              "properties": {
                                "enabled": {
                                  "type": "boolean",
                                  "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                },
                                "ranges": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "from": {
                                        "type": "string",
                                        "example": "09:00",
                                        "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                      },
                                      "to": {
                                        "type": "string",
                                        "example": "17:00",
                                        "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                      }
                                    }
                                  },
                                  "description": "Multiple start and end time periods make up the working time.\n"
                                }
                              }
                            },
                            "friday": {
                              "type": "object",
                              "properties": {
                                "enabled": {
                                  "type": "boolean",
                                  "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                },
                                "ranges": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "from": {
                                        "type": "string",
                                        "example": "09:00",
                                        "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                      },
                                      "to": {
                                        "type": "string",
                                        "example": "17:00",
                                        "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                      }
                                    }
                                  },
                                  "description": "Multiple start and end time periods make up the working time.\n"
                                }
                              }
                            },
                            "saturday": {
                              "type": "object",
                              "properties": {
                                "enabled": {
                                  "type": "boolean",
                                  "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                },
                                "ranges": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "from": {
                                        "type": "string",
                                        "example": "09:00",
                                        "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                      },
                                      "to": {
                                        "type": "string",
                                        "example": "17:00",
                                        "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                      }
                                    }
                                  },
                                  "description": "Multiple start and end time periods make up the working time.\n"
                                }
                              }
                            },
                            "sunday": {
                              "type": "object",
                              "properties": {
                                "enabled": {
                                  "type": "boolean",
                                  "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                },
                                "ranges": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "from": {
                                        "type": "string",
                                        "example": "09:00",
                                        "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                      },
                                      "to": {
                                        "type": "string",
                                        "example": "17:00",
                                        "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                      }
                                    }
                                  },
                                  "description": "Multiple start and end time periods make up the working time.\n"
                                }
                              }
                            }
                          }
                        }
                      ]
                    },
                    "holidays": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "readOnly": true,
                            "description": "The unique ID of holiday.\n"
                          },
                          "name": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 64,
                            "description": "The name of the holiday.\n"
                          },
                          "every_year": {
                            "type": "boolean",
                            "description": "Does the holiday take effect every year.\n"
                          },
                          "consecutive": {
                            "type": "boolean",
                            "description": "Whether the holiday consists of consecutive days.\n"
                          },
                          "year_start": {
                            "type": "integer",
                            "description": "The start year of holiday.\n"
                          },
                          "year_end": {
                            "type": "integer",
                            "description": "The end year of holiday.\n"
                          },
                          "month_start": {
                            "type": "integer",
                            "description": "The start month of holiday.\n"
                          },
                          "month_end": {
                            "type": "integer",
                            "description": "The end month of holiday.\n"
                          },
                          "day_start": {
                            "type": "integer",
                            "description": "The start day of holiday.\n"
                          },
                          "day_end": {
                            "type": "integer",
                            "description": "The end day of holiday.\n"
                          },
                          "hour_start": {
                            "type": "integer",
                            "description": "The start hour of holiday.\n"
                          },
                          "hour_end": {
                            "type": "integer",
                            "description": "The end hour of holiday.\n"
                          },
                          "minute_start": {
                            "type": "integer",
                            "description": "The start minute of holiday.\n"
                          },
                          "minute_end": {
                            "type": "integer",
                            "description": "The end minute of holiday.\n"
                          }
                        }
                      },
                      "description": "A collection of tenant's holidays.\n"
                    },
                    "routing_strategy": {
                      "type": "string",
                      "enum": [
                        "PRIORITIZED",
                        "RANDOMLY"
                      ],
                      "default": "PRIORITIZED",
                      "description": "Routing strategy:   \nCan be either:  \n- `PRIORITIZED`: Selected according to the priority order of the route list.\n- `RANDOMLY`: Randomly select one of the route list.\n"
                    },
                    "routes": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "enabled": {
                            "type": "boolean",
                            "description": "Enable this route or not.\n"
                          },
                          "provider_id": {
                            "allOf": [
                              {
                                "allOf": [
                                  {
                                    "type": "string",
                                    "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                    "description": "The unique ID of the resource.\n"
                                  }
                                ],
                                "description": "The unique ID of trunk.\n"
                              }
                            ],
                            "description": "The unique ID of provider.\n"
                          },
                          "strip_digits": {
                            "type": "integer",
                            "format": "int32",
                            "minimum": 0,
                            "default": 0,
                            "description": "Digits for striping number. Values: 0-9. \nFor example if it is set to 2, the first two digits for caller ID of calling from route_provider_1 will be removed.\n"
                          },
                          "prepend": {
                            "type": "string",
                            "description": "Prefix number. If it is set to \"0086\", call ID for calling from\nroute_provider_1 will be prefixed with \"0086\".\n"
                          },
                          "outbound_caller_id": {
                            "allOf": [
                              {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 64,
                                "description": "Outbound caller id.\n"
                              }
                            ],
                            "description": "The outbound caller ID within the trunk's DID/DDI pool scope.\n"
                          }
                        }
                      }
                    },
                    "usage": {
                      "type": "string",
                      "enum": [
                        "BOTH",
                        "SIP",
                        "MESSAGE"
                      ],
                      "default": "SIP",
                      "description": "The inbound rule usage, can be either:  \n- `BOTH`: Applies to both messages and calls.\n- `SIP`: Applies to voice only.\n- `MESSAGE`: Applies to messages only.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "id": null,
                      "name": null,
                      "number_prefix": null,
                      "number_length": null,
                      "number_mask": null,
                      "enabled": null,
                      "priority": null,
                      "office_hours": null,
                      "holidays": null,
                      "routing_strategy": null,
                      "routes": null,
                      "usage": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "post": {
        "tags": [
          "Outbound Rule"
        ],
        "operationId": "updateOutboundRule",
        "x-category": "call-control",
        "x-subcategory": "outbound-rules",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Update a outbound rule",
        "description": "Update properties of outbound rule by it's unique ID.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of outbound rule.\n"
            },
            "description": "The unique ID of the outbound rule."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64,
                    "description": "The name of outbound rule.\n"
                  },
                  "number_prefix": {
                    "type": "string",
                    "maxLength": 64,
                    "description": "Prefix of callee ID. Calls started with this prefix will be applied this outbound rule.\n"
                  },
                  "number_length": {
                    "type": "string",
                    "maxLength": 64,
                    "description": "The length of number prefix.  \nA semicolon-separated list of integer.  \nFor example by specifying \"1;2\", calls with a caller ID of 1 or 2 digits will be applied this rule.\n"
                  },
                  "number_mask": {
                    "type": "string",
                    "description": "Extension who starts the call. A semicolon-separated list of extensions allowed.\nFor example by specifying \"101-110;199\", extensions from 101 to 110 and 199 will be applied this rule.\n"
                  },
                  "enabled": {
                    "type": "boolean",
                    "default": true,
                    "description": "Whether to enable outbound rule.\n"
                  },
                  "priority": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 0,
                    "default": 1000,
                    "description": "The priority of outbound rule.\n"
                  },
                  "office_hours": {
                    "allOf": [
                      {
                        "type": "object",
                        "properties": {
                          "mode": {
                            "type": "string",
                            "enum": [
                              "GLOBAL",
                              "CUSTOM"
                            ],
                            "example": "CUSTOM",
                            "description": "The office hours mode can be either:  \n- `GLOBAL`: Use global office hours.\n- `CUSTOM`: Use specific office hours.\n"
                          }
                        }
                      },
                      {
                        "type": "object",
                        "properties": {
                          "monday": {
                            "type": "object",
                            "properties": {
                              "enabled": {
                                "type": "boolean",
                                "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                              },
                              "ranges": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "from": {
                                      "type": "string",
                                      "example": "09:00",
                                      "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                    },
                                    "to": {
                                      "type": "string",
                                      "example": "17:00",
                                      "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                    }
                                  }
                                },
                                "description": "Multiple start and end time periods make up the working time.\n"
                              }
                            }
                          },
                          "tuesday": {
                            "type": "object",
                            "properties": {
                              "enabled": {
                                "type": "boolean",
                                "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                              },
                              "ranges": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "from": {
                                      "type": "string",
                                      "example": "09:00",
                                      "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                    },
                                    "to": {
                                      "type": "string",
                                      "example": "17:00",
                                      "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                    }
                                  }
                                },
                                "description": "Multiple start and end time periods make up the working time.\n"
                              }
                            }
                          },
                          "wednesday": {
                            "type": "object",
                            "properties": {
                              "enabled": {
                                "type": "boolean",
                                "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                              },
                              "ranges": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "from": {
                                      "type": "string",
                                      "example": "09:00",
                                      "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                    },
                                    "to": {
                                      "type": "string",
                                      "example": "17:00",
                                      "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                    }
                                  }
                                },
                                "description": "Multiple start and end time periods make up the working time.\n"
                              }
                            }
                          },
                          "thursday": {
                            "type": "object",
                            "properties": {
                              "enabled": {
                                "type": "boolean",
                                "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                              },
                              "ranges": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "from": {
                                      "type": "string",
                                      "example": "09:00",
                                      "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                    },
                                    "to": {
                                      "type": "string",
                                      "example": "17:00",
                                      "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                    }
                                  }
                                },
                                "description": "Multiple start and end time periods make up the working time.\n"
                              }
                            }
                          },
                          "friday": {
                            "type": "object",
                            "properties": {
                              "enabled": {
                                "type": "boolean",
                                "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                              },
                              "ranges": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "from": {
                                      "type": "string",
                                      "example": "09:00",
                                      "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                    },
                                    "to": {
                                      "type": "string",
                                      "example": "17:00",
                                      "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                    }
                                  }
                                },
                                "description": "Multiple start and end time periods make up the working time.\n"
                              }
                            }
                          },
                          "saturday": {
                            "type": "object",
                            "properties": {
                              "enabled": {
                                "type": "boolean",
                                "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                              },
                              "ranges": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "from": {
                                      "type": "string",
                                      "example": "09:00",
                                      "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                    },
                                    "to": {
                                      "type": "string",
                                      "example": "17:00",
                                      "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                    }
                                  }
                                },
                                "description": "Multiple start and end time periods make up the working time.\n"
                              }
                            }
                          },
                          "sunday": {
                            "type": "object",
                            "properties": {
                              "enabled": {
                                "type": "boolean",
                                "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                              },
                              "ranges": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "from": {
                                      "type": "string",
                                      "example": "09:00",
                                      "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                    },
                                    "to": {
                                      "type": "string",
                                      "example": "17:00",
                                      "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                    }
                                  }
                                },
                                "description": "Multiple start and end time periods make up the working time.\n"
                              }
                            }
                          }
                        }
                      }
                    ]
                  },
                  "holidays": {
                    "type": "array",
                    "items": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "readOnly": true,
                      "description": "The unique ID of holiday.\n"
                    },
                    "description": "A collection ID of tenant's holidays.\n"
                  },
                  "routing_strategy": {
                    "type": "string",
                    "enum": [
                      "PRIORITIZED",
                      "RANDOMLY"
                    ],
                    "default": "PRIORITIZED",
                    "description": "Routing strategy:   \nCan be either:  \n- `PRIORITIZED`: Selected according to the priority order of the route list.\n- `RANDOMLY`: Randomly select one of the route list.\n"
                  },
                  "routes": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "enabled": {
                          "type": "boolean",
                          "description": "Enable this route or not.\n"
                        },
                        "provider_id": {
                          "allOf": [
                            {
                              "allOf": [
                                {
                                  "type": "string",
                                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                  "description": "The unique ID of the resource.\n"
                                }
                              ],
                              "description": "The unique ID of trunk.\n"
                            }
                          ],
                          "description": "The unique ID of provider.\n"
                        },
                        "strip_digits": {
                          "type": "integer",
                          "format": "int32",
                          "minimum": 0,
                          "default": 0,
                          "description": "Digits for striping number. Values: 0-9. \nFor example if it is set to 2, the first two digits for caller ID of calling from route_provider_1 will be removed.\n"
                        },
                        "prepend": {
                          "type": "string",
                          "description": "Prefix number. If it is set to \"0086\", call ID for calling from\nroute_provider_1 will be prefixed with \"0086\".\n"
                        },
                        "outbound_caller_id": {
                          "allOf": [
                            {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 64,
                              "description": "Outbound caller id.\n"
                            }
                          ],
                          "description": "The outbound caller ID within the trunk's DID/DDI pool scope.\n"
                        }
                      }
                    }
                  },
                  "usage": {
                    "type": "string",
                    "enum": [
                      "BOTH",
                      "SIP",
                      "MESSAGE"
                    ],
                    "default": "SIP",
                    "description": "The inbound rule usage, can be either:  \n- `BOTH`: Applies to both messages and calls.\n- `SIP`: Applies to voice only.\n- `MESSAGE`: Applies to messages only.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "name": null,
                    "number_prefix": null,
                    "number_length": null,
                    "number_mask": null,
                    "enabled": null,
                    "priority": null,
                    "office_hours": null,
                    "holidays": null,
                    "routing_strategy": null,
                    "routes": null,
                    "usage": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/outbound_rules/{id}/destroy": {
      "post": {
        "tags": [
          "Outbound Rule"
        ],
        "operationId": "deleteOutboundRule",
        "x-category": "call-control",
        "x-subcategory": "outbound-rules",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Delete a outbound rule",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of outbound rule.\n"
            },
            "description": "The unique ID of the outbound rule."
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/outbound_rules/export": {
      "get": {
        "tags": [
          "Outbound Rule"
        ],
        "operationId": "exportOutboundRules",
        "x-category": "call-control",
        "x-subcategory": "outbound-rules",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Export outbound rules",
        "description": "Export a collection of outbound rules to file.\n",
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "Content-Disposition": {
                "schema": {
                  "type": "string"
                },
                "description": "the format is `attachment; filename=\"example\"`"
              }
            },
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/outbound_rules/{id}/applied_groups": {
      "get": {
        "tags": [
          "Outbound Rule"
        ],
        "operationId": "listOutboundRuleAppliedGroups",
        "x-category": "call-control",
        "x-subcategory": "outbound-rules",
        "x-permissions": [
          "PhoneSystem.ViewOnly"
        ],
        "summary": "List applied groups of outbound rule",
        "description": "Retrieve a collection of user groups applied to outbound rule.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of outbound rule.\n"
            },
            "description": "The unique ID of the outbound rule."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "description": "The unique ID of user group.\n"
                          },
                          "name": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 64,
                            "description": "The name of user group.\n"
                          },
                          "description": {
                            "type": "string",
                            "maxLength": 1024,
                            "description": "The description of user group.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "items": [
                        {
                          "id": null,
                          "name": null,
                          "description": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/outbound_rules/{id}/applied_groups/{group_id}": {
      "post": {
        "tags": [
          "Outbound Rule"
        ],
        "operationId": "applyGroupToOutboundRule",
        "x-category": "call-control",
        "x-subcategory": "outbound-rules",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Apply group to outbound rule",
        "description": "Apply a group to outbound rule.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of outbound rule.\n"
            },
            "description": "The unique ID of the outbound rule."
          },
          {
            "name": "group_id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of user group.\n"
            },
            "description": "The unique ID of the group."
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "get": {
        "tags": [
          "Outbound Rule"
        ],
        "operationId": "checkIfGroupAppliedOutboundRule",
        "x-category": "call-control",
        "x-subcategory": "outbound-rules",
        "x-permissions": [
          "PhoneSystem.ViewOnly"
        ],
        "summary": "Check if a group has outbound rule applied",
        "description": "Check if a group has outbound rule applied.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of outbound rule.\n"
            },
            "description": "The unique ID of the outbound rule."
          },
          {
            "name": "group_id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of user group.\n"
            },
            "description": "The unique ID of the group."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of user group.\n"
                    },
                    "name": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64,
                      "description": "The name of user group.\n"
                    },
                    "description": {
                      "type": "string",
                      "maxLength": 1024,
                      "description": "The description of user group.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "items": [
                        {
                          "id": null,
                          "name": null,
                          "description": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          }
        }
      }
    },
    "/outbound_rules/{id}/applied_groups/{group_id}/destroy": {
      "post": {
        "tags": [
          "Outbound Rule"
        ],
        "operationId": "cancelUserGroupAppliedOutboundRule",
        "x-category": "call-control",
        "x-subcategory": "outbound-rules",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Cancel group applied outbound rule",
        "description": "Cancel group applied outbound rule.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of outbound rule.\n"
            },
            "description": "The unique ID of the outbound rule."
          },
          {
            "name": "group_id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of user group.\n"
            },
            "description": "The unique ID of the group."
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/phone_models": {
      "get": {
        "tags": [
          "Auto Provisioning"
        ],
        "operationId": "listPhoneModels",
        "x-category": "auto-provisioning",
        "x-subcategory": "phones",
        "x-permissions": [
          "PhoneSystem.ViewOnly"
        ],
        "summary": "List phone models",
        "description": "List IP phones models.\n",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "filename": {
                            "type": "string",
                            "description": "Template XML file name for phone provisioning.\n"
                          },
                          "model": {
                            "type": "string",
                            "description": "The name of IP phone model.\n"
                          },
                          "display_name": {
                            "type": "string",
                            "description": "The display name of the phone model.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "items": [
                        {
                          "filename": null,
                          "model": null,
                          "display_name": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/phone_models/{filename}": {
      "get": {
        "tags": [
          "Auto Provisioning"
        ],
        "operationId": "showFirmwareTemplateProfile",
        "x-category": "auto-provisioning",
        "x-subcategory": "phones",
        "x-permissions": [
          "PhoneSystem.ViewOnly"
        ],
        "summary": "Retrieve profile of firmware template",
        "description": "Retrieve phone template profile by it's filename.\n",
        "parameters": [
          {
            "name": "filename",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Template XML file name for phone provisioning.\n"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "filename": {
                      "type": "string",
                      "description": "Template XML file name for phone provisioning.\n"
                    },
                    "languages": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "enum": [
                          "ENGLISH",
                          "CHINESE",
                          "DUTCH",
                          "FRENCH",
                          "GERMAN",
                          "GREEK",
                          "ITALIAN",
                          "JAPANESE",
                          "POLISH",
                          "RUSSIAN",
                          "SPANISH",
                          "SWEDISH",
                          "UKRAINIAN",
                          "BULGARIAN"
                        ],
                        "description": "Language for strings displayed on Phone Display LCD.\nSupported languages include ENGLISH, CHINESE, DUTCH, FRENCH, GERMAN,\nGREEK, ITALIAN, JAPANESE, POLISH, RUSSIAN, SPANISH, SWEDISH, UKRAINIAN, and BULGARIAN.\n"
                      },
                      "description": "A collection of language tags.\n"
                    },
                    "ringtones": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "description": "The ringtone of phone.\n"
                      },
                      "description": "A collection of ringtones.\n"
                    },
                    "queue_ringtones": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "description": "The queue ringtone of phone for queue calls or ring group calls.\n"
                      },
                      "description": "A collection of queue ringtones.\n"
                    },
                    "external_ringtone": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "description": "The ringtone of phone for external calls.\n"
                      },
                      "description": "A collection of external ringtones.\n"
                    },
                    "date_formats": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "description": "The date format of phone.\n"
                      },
                      "description": "A collection of date formats.\n"
                    },
                    "time_formats": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "description": "The time format of phone.\n"
                      },
                      "description": "A collection of time formats.\n"
                    },
                    "powerleds": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "description": "The power led of phone.\n"
                      },
                      "description": "A collection of time power leds.\n"
                    },
                    "backlights": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "description": "The backlight of phone.\n"
                      },
                      "description": "A collection of time backlights.\n"
                    },
                    "screensavers": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "description": "The screensaver of phone.\n"
                      },
                      "description": "A collection of screensavers.\n"
                    },
                    "time_zones": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "description": "The timezone of phone.\n"
                      },
                      "description": "A collection of time zones.\n"
                    },
                    "codecs": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "description": "The list of currently enabled codec formats.\n"
                    },
                    "enable_lldp": {
                      "type": "boolean",
                      "default": false,
                      "description": "Enable or disable Link Layer Discovery Protocol."
                    },
                    "enable_vlan_wan_port": {
                      "type": "boolean",
                      "default": false,
                      "description": "Enable or disable VLAN for WAN Port.\n"
                    },
                    "wan_port_id": {
                      "type": "integer",
                      "minimum": 1,
                      "maximum": 4094,
                      "description": "VLAN ID for WAN PORT.\n"
                    },
                    "wan_port_priority": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 7,
                      "description": "VLAN priority for WAN Port.\n"
                    },
                    "enable_vlan_pc_port": {
                      "type": "boolean",
                      "default": false,
                      "description": "Enable or disable VLAN for PC Port.\n"
                    },
                    "pc_port_id": {
                      "type": "integer",
                      "minimum": 1,
                      "maximum": 4094,
                      "description": "VLAN ID for PC PORT.\n"
                    },
                    "pc_port_priority": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 7,
                      "description": "VLAN priority for PC Port.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "filename": null,
                      "languages": null,
                      "ringtones": null,
                      "queue_ringtones": null,
                      "external_ringtone": null,
                      "date_formats": null,
                      "time_formats": null,
                      "powerleds": null,
                      "backlights": null,
                      "screensavers": null,
                      "time_zones": null,
                      "codecs": null,
                      "enable_lldp": null,
                      "enable_vlan_wan_port": null,
                      "wan_port_id": null,
                      "wan_port_priority": null,
                      "enable_vlan_pc_port": null,
                      "pc_port_id": null,
                      "pc_port_priority": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/phones": {
      "get": {
        "tags": [
          "Auto Provisioning"
        ],
        "operationId": "listPhones",
        "x-category": "auto-provisioning",
        "x-subcategory": "phones",
        "x-permissions": [
          "PhoneSystem.ViewOnly"
        ],
        "summary": "List IP phones",
        "description": "List IP phones\n",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "extension_number": {
                            "type": "string",
                            "minLength": 3,
                            "maxLength": 64,
                            "pattern": "[0-9]{3,64}",
                            "description": "The extension number.\n"
                          },
                          "vendor": {
                            "type": "string",
                            "description": "The phone vendor of IP phone.\n"
                          },
                          "model": {
                            "type": "string",
                            "description": "The name of IP phone model.\n"
                          },
                          "fwver": {
                            "type": "string",
                            "description": "The firmware version of IP phone.\n"
                          },
                          "name": {
                            "type": "string",
                            "maxLength": 1024,
                            "description": "The display name of user.\n"
                          },
                          "password": {
                            "type": "string",
                            "description": "Password for accessing the Web interface of phone.\nThe username remains default because most phone manufacturers do not\nallow modification of the user name. This is supported for some phone model, such as \"Snom 300\".\n"
                          },
                          "vm_pin": {
                            "type": "string",
                            "description": "The voicemail PIN of the phone.\n"
                          },
                          "ip": {
                            "type": "string",
                            "description": "IP address.\n"
                          },
                          "mac": {
                            "allOf": [
                              {
                                "type": "string",
                                "description": "MAC address.\n"
                              }
                            ],
                            "description": "MAC address of this IP phone.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "items": [
                        {
                          "extension_number": null,
                          "vendor": null,
                          "model": null,
                          "fwver": null,
                          "name": null,
                          "password": null,
                          "vm_pin": null,
                          "ip": null,
                          "mac": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/phones/reprovision": {
      "post": {
        "tags": [
          "Auto Provisioning"
        ],
        "operationId": "reprovisionAllPhones",
        "x-category": "auto-provisioning",
        "x-subcategory": "phones",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Reprovision all phones",
        "description": "Re-provision all phones.\n",
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/phones/{mac}": {
      "get": {
        "tags": [
          "Auto Provisioning"
        ],
        "operationId": "getPhoneDetails",
        "x-category": "auto-provisioning",
        "x-subcategory": "phones",
        "x-permissions": [
          "PhoneSystem.ViewOnly"
        ],
        "summary": "Retrieve Phone's detailed information.",
        "description": "Retrieve phone's detailed information.\n",
        "parameters": [
          {
            "name": "mac",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "MAC address.\n"
            },
            "description": "The MAC address of the IP phone."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "extension_number": {
                      "type": "string",
                      "minLength": 3,
                      "maxLength": 64,
                      "pattern": "[0-9]{3,64}",
                      "description": "The extension number.\n"
                    },
                    "vendor": {
                      "type": "string",
                      "description": "The phone vendor of IP phone.\n"
                    },
                    "model": {
                      "type": "string",
                      "description": "The name of IP phone model.\n"
                    },
                    "fwver": {
                      "type": "string",
                      "description": "The firmware version of IP phone.\n"
                    },
                    "name": {
                      "type": "string",
                      "maxLength": 1024,
                      "description": "The display name of user.\n"
                    },
                    "password": {
                      "type": "string",
                      "description": "Password for accessing the Web interface of phone.\nThe username remains default because most phone manufacturers do not\nallow modification of the user name. This is supported for some phone model, such as \"Snom 300\".\n"
                    },
                    "vm_pin": {
                      "type": "string",
                      "description": "The voicemail PIN of the phone.\n"
                    },
                    "ip": {
                      "type": "string",
                      "description": "IP address.\n"
                    },
                    "mac": {
                      "allOf": [
                        {
                          "type": "string",
                          "description": "MAC address.\n"
                        }
                      ],
                      "description": "MAC address of this IP phone.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "extension_number": null,
                      "vendor": null,
                      "model": null,
                      "fwver": null,
                      "name": null,
                      "password": null,
                      "vm_pin": null,
                      "ip": null,
                      "mac": null
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          }
        }
      }
    },
    "/phones/{mac}/assignee": {
      "get": {
        "tags": [
          "Auto Provisioning"
        ],
        "operationId": "getPhoneAssignee",
        "x-category": "auto-provisioning",
        "x-subcategory": "phones",
        "x-permissions": [
          "PhoneSystem.ViewOnly"
        ],
        "summary": "Check phone's assignee",
        "description": "Check phone's assignee by MAC.\n",
        "parameters": [
          {
            "name": "mac",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "MAC address.\n"
            },
            "description": "The MAC address of the IP phone."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "mac": {
                      "allOf": [
                        {
                          "type": "string",
                          "description": "MAC address.\n"
                        }
                      ],
                      "description": "MAC address of this IP phone.\n"
                    },
                    "extension_number": {
                      "type": "string",
                      "minLength": 3,
                      "maxLength": 64,
                      "pattern": "[0-9]{3,64}",
                      "description": "The extension number.\n"
                    },
                    "vendor": {
                      "type": "string",
                      "description": "The phone vendor of IP phone.\n"
                    },
                    "model": {
                      "type": "string",
                      "description": "The name of IP phone model.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "mac": null,
                      "extension_number": null,
                      "vendor": null,
                      "model": null
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          }
        }
      }
    },
    "/phones/{mac}/reprovision": {
      "post": {
        "tags": [
          "Auto Provisioning"
        ],
        "operationId": "reprovisionPhone",
        "x-category": "auto-provisioning",
        "x-subcategory": "phones",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Reprovision a phone",
        "description": "Re-provision a phone by it's MAC address.\n",
        "parameters": [
          {
            "name": "mac",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "MAC address.\n"
            },
            "description": "The MAC address of the IP phone."
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/phones/{mac}/reboot": {
      "post": {
        "tags": [
          "Auto Provisioning"
        ],
        "operationId": "rebootPhone",
        "x-category": "auto-provisioning",
        "x-subcategory": "phones",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Reboot Phone",
        "description": "Reboot Phone\n",
        "parameters": [
          {
            "name": "mac",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "MAC address.\n"
            },
            "description": "The MAC address of the IP phone."
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/phones/{mac}/reject": {
      "post": {
        "tags": [
          "Auto Provisioning"
        ],
        "operationId": "rejectPhone",
        "x-category": "auto-provisioning",
        "x-subcategory": "phones",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Reject a phone",
        "description": "Reject a phone from auto provisioning.\n",
        "parameters": [
          {
            "name": "mac",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "MAC address.\n"
            },
            "description": "The MAC address of the IP phone."
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Invalid mac address."
          }
        }
      }
    },
    "/dect_phone_models": {
      "get": {
        "tags": [
          "Auto Provisioning"
        ],
        "operationId": "listDectPhoneModels",
        "x-category": "auto-provisioning",
        "x-subcategory": "dect-phones",
        "x-permissions": [
          "PhoneSystem.ViewOnly"
        ],
        "summary": "List DECT phone models",
        "description": "List DECT phone models.\n",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "filename": {
                            "type": "string",
                            "description": "Template XML file name for phone provisioning.\n"
                          },
                          "model": {
                            "type": "string",
                            "description": "The name of IP phone model.\n"
                          },
                          "lines": {
                            "type": "integer",
                            "readOnly": true,
                            "description": "The max lines of DECT phone.\n"
                          },
                          "display_name": {
                            "type": "string",
                            "description": "The display name of the phone model.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "items": [
                        {
                          "filename": null,
                          "model": null,
                          "lines": null,
                          "display_name": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/dect_phone_models/{name}": {
      "get": {
        "tags": [
          "Auto Provisioning"
        ],
        "operationId": "retrieveDectPhoneModel",
        "x-category": "auto-provisioning",
        "x-subcategory": "dect-phones",
        "x-permissions": [
          "PhoneSystem.ViewOnly"
        ],
        "summary": "Retrieve details of DECT phone model",
        "description": "Retrieve details of DECT phone model.\n",
        "parameters": [
          {
            "name": "name",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Template XML file name for phone provisioning.\n"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "template": {
                      "type": "string",
                      "description": "Template XML file name for phone provisioning.\n"
                    },
                    "languages": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "enum": [
                          "ENGLISH",
                          "CHINESE",
                          "DUTCH",
                          "FRENCH",
                          "GERMAN",
                          "GREEK",
                          "ITALIAN",
                          "JAPANESE",
                          "POLISH",
                          "RUSSIAN",
                          "SPANISH",
                          "SWEDISH",
                          "UKRAINIAN",
                          "BULGARIAN"
                        ],
                        "description": "Language for strings displayed on Phone Display LCD.\nSupported languages include ENGLISH, CHINESE, DUTCH, FRENCH, GERMAN,\nGREEK, ITALIAN, JAPANESE, POLISH, RUSSIAN, SPANISH, SWEDISH, UKRAINIAN, and BULGARIAN.\n"
                      },
                      "description": "A collection of language tags.\n"
                    },
                    "tones": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "description": "The ringtone of phone.\n"
                      },
                      "description": "A collection of ringtones.\n"
                    },
                    "time_zones": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "description": "The timezone of phone.\n"
                      },
                      "description": "A collection of time zones.\n"
                    },
                    "codecs": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "description": "The list of currently enabled codec formats.\n"
                    },
                    "lines": {
                      "type": "integer",
                      "readOnly": true,
                      "description": "The max lines of DECT phone.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "template": null,
                      "languages": null,
                      "tones": null,
                      "time_zones": null,
                      "codecs": null,
                      "lines": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/dect_phones": {
      "post": {
        "tags": [
          "Auto Provisioning"
        ],
        "operationId": "createDectPhone",
        "x-category": "auto-provisioning",
        "x-subcategory": "dect-phones",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Create a DECT phone",
        "description": "Create a DECT phone.\n",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64,
                    "description": "The name of DECT phone.\n"
                  },
                  "mac": {
                    "allOf": [
                      {
                        "type": "string",
                        "description": "MAC address.\n"
                      }
                    ],
                    "description": "MAC address of this IP phone.\n"
                  },
                  "template": {
                    "type": "string",
                    "description": "Template XML file name for phone provisioning.\n"
                  },
                  "vendor": {
                    "type": "string",
                    "description": "The phone vendor of IP phone.\n"
                  },
                  "model": {
                    "type": "string",
                    "description": "The name of IP phone model.\n"
                  },
                  "password": {
                    "type": "string",
                    "description": "Password for accessing the Web interface of phone.\nThe username remains default because most phone manufacturers do not\nallow modification of the user name. This is supported for some phone model, such as \"Snom 300\".\n"
                  },
                  "user_password": {
                    "type": "string",
                    "description": "The user password.\n"
                  },
                  "engineer_password": {
                    "type": "string",
                    "description": "The engineer password.\n"
                  },
                  "timezone": {
                    "type": "string",
                    "description": "The timezone of phone.\n"
                  },
                  "region": {
                    "type": "string",
                    "description": "The country or region name of phone.\n"
                  },
                  "language": {
                    "type": "string",
                    "enum": [
                      "ENGLISH",
                      "CHINESE",
                      "DUTCH",
                      "FRENCH",
                      "GERMAN",
                      "GREEK",
                      "ITALIAN",
                      "JAPANESE",
                      "POLISH",
                      "RUSSIAN",
                      "SPANISH",
                      "SWEDISH",
                      "UKRAINIAN",
                      "BULGARIAN"
                    ],
                    "description": "Language for strings displayed on Phone Display LCD.\nSupported languages include ENGLISH, CHINESE, DUTCH, FRENCH, GERMAN,\nGREEK, ITALIAN, JAPANESE, POLISH, RUSSIAN, SPANISH, SWEDISH, UKRAINIAN, and BULGARIAN.\n"
                  },
                  "handset_language": {
                    "type": "string",
                    "enum": [
                      "ENGLISH",
                      "CHINESE",
                      "DUTCH",
                      "FRENCH",
                      "GERMAN",
                      "GREEK",
                      "ITALIAN",
                      "JAPANESE",
                      "POLISH",
                      "RUSSIAN",
                      "SPANISH",
                      "SWEDISH",
                      "UKRAINIAN",
                      "BULGARIAN"
                    ],
                    "description": "The handset language.\n"
                  },
                  "tone": {
                    "type": "string",
                    "description": "The tone set of DECT phone.\n"
                  },
                  "rps": {
                    "type": "boolean",
                    "description": "Send to RPS or not.\n"
                  },
                  "https": {
                    "type": "boolean",
                    "description": "Whether to use https\n"
                  },
                  "codecs": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "description": "The list of currently enabled codec formats.\n"
                  },
                  "interface": {
                    "type": "string",
                    "enum": [
                      "WEB_DOMAIN",
                      "PUBLIC_IPV4",
                      "PUBLIC_IPV6",
                      "PRIVATE_IPV4",
                      "PRIVATE_IPV6",
                      "SBC_DOMAIN"
                    ],
                    "description": "The interface type for QR code or auto provisioning.   \nCan be neither:  \n- `WEB_DOMAIN`:\n- `PUBLIC_IPV4`:\n- `PUBLIC_IPV6`:\n- `PRIVATE_IPV4`:\n- `PRIVATE_IPV6`:\n- `SBC_DOMAIN`:\n"
                  },
                  "preferred_transport": {
                    "type": "string",
                    "enum": [
                      "UDP",
                      "TCP",
                      "TLS"
                    ],
                    "description": "The transport protocol:  \nCan be either:  \n- `UDP`:\n- `TCP`:\n- `TLS`:\n"
                  }
                },
                "required": [
                  "name",
                  "mac",
                  "template",
                  "vendor",
                  "model",
                  "password",
                  "timezone",
                  "language",
                  "tone",
                  "codecs",
                  "interface",
                  "preferred_transport"
                ]
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "name": null,
                    "mac": null,
                    "template": null,
                    "vendor": null,
                    "model": null,
                    "password": null,
                    "user_password": null,
                    "engineer_password": null,
                    "timezone": null,
                    "region": null,
                    "language": null,
                    "handset_language": null,
                    "tone": null,
                    "rps": null,
                    "https": null,
                    "codecs": null,
                    "interface": null,
                    "preferred_transport": null
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of DECT phone.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "The ID of created resource",
                    "value": {
                      "id": "xxxxxxxx"
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "get": {
        "tags": [
          "Auto Provisioning"
        ],
        "operationId": "listDectPhones",
        "x-category": "auto-provisioning",
        "x-subcategory": "dect-phones",
        "x-permissions": [
          "PhoneSystem.ViewOnly"
        ],
        "summary": "List DECT phones",
        "description": "List DECT phones\n",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "description": "The unique ID of DECT phone.\n"
                          },
                          "name": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 64,
                            "description": "The name of DECT phone.\n"
                          },
                          "mac": {
                            "allOf": [
                              {
                                "type": "string",
                                "description": "MAC address.\n"
                              }
                            ],
                            "description": "MAC address of this IP phone.\n"
                          },
                          "template": {
                            "type": "string",
                            "description": "Template XML file name for phone provisioning.\n"
                          },
                          "vendor": {
                            "type": "string",
                            "description": "The phone vendor of IP phone.\n"
                          },
                          "model": {
                            "type": "string",
                            "description": "The name of IP phone model.\n"
                          },
                          "password": {
                            "type": "string",
                            "description": "Password for accessing the Web interface of phone.\nThe username remains default because most phone manufacturers do not\nallow modification of the user name. This is supported for some phone model, such as \"Snom 300\".\n"
                          },
                          "user_password": {
                            "type": "string",
                            "description": "The user password.\n"
                          },
                          "engineer_password": {
                            "type": "string",
                            "description": "The engineer password.\n"
                          },
                          "timezone": {
                            "type": "string",
                            "description": "The timezone of phone.\n"
                          },
                          "region": {
                            "type": "string",
                            "description": "The country or region name of phone.\n"
                          },
                          "language": {
                            "type": "string",
                            "enum": [
                              "ENGLISH",
                              "CHINESE",
                              "DUTCH",
                              "FRENCH",
                              "GERMAN",
                              "GREEK",
                              "ITALIAN",
                              "JAPANESE",
                              "POLISH",
                              "RUSSIAN",
                              "SPANISH",
                              "SWEDISH",
                              "UKRAINIAN",
                              "BULGARIAN"
                            ],
                            "description": "Language for strings displayed on Phone Display LCD.\nSupported languages include ENGLISH, CHINESE, DUTCH, FRENCH, GERMAN,\nGREEK, ITALIAN, JAPANESE, POLISH, RUSSIAN, SPANISH, SWEDISH, UKRAINIAN, and BULGARIAN.\n"
                          },
                          "handset_language": {
                            "type": "string",
                            "enum": [
                              "ENGLISH",
                              "CHINESE",
                              "DUTCH",
                              "FRENCH",
                              "GERMAN",
                              "GREEK",
                              "ITALIAN",
                              "JAPANESE",
                              "POLISH",
                              "RUSSIAN",
                              "SPANISH",
                              "SWEDISH",
                              "UKRAINIAN",
                              "BULGARIAN"
                            ],
                            "description": "The handset language.\n"
                          },
                          "tone": {
                            "type": "string",
                            "description": "The tone set of DECT phone.\n"
                          },
                          "rps": {
                            "type": "boolean",
                            "description": "Send to RPS or not.\n"
                          },
                          "https": {
                            "type": "boolean",
                            "description": "Whether to use https\n"
                          },
                          "codecs": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "The list of currently enabled codec formats.\n"
                          },
                          "lines": {
                            "type": "integer",
                            "readOnly": true,
                            "description": "The max lines of DECT phone.\n"
                          },
                          "interface": {
                            "type": "string",
                            "enum": [
                              "WEB_DOMAIN",
                              "PUBLIC_IPV4",
                              "PUBLIC_IPV6",
                              "PRIVATE_IPV4",
                              "PRIVATE_IPV6",
                              "SBC_DOMAIN"
                            ],
                            "description": "The interface type for QR code or auto provisioning.   \nCan be neither:  \n- `WEB_DOMAIN`:\n- `PUBLIC_IPV4`:\n- `PUBLIC_IPV6`:\n- `PRIVATE_IPV4`:\n- `PRIVATE_IPV6`:\n- `SBC_DOMAIN`:\n"
                          },
                          "preferred_transport": {
                            "type": "string",
                            "enum": [
                              "UDP",
                              "TCP",
                              "TLS"
                            ],
                            "description": "The transport protocol:  \nCan be either:  \n- `UDP`:\n- `TCP`:\n- `TLS`:\n"
                          },
                          "url": {
                            "type": "string",
                            "description": "Auto provision server URL.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "items": [
                        {
                          "id": null,
                          "name": null,
                          "mac": null,
                          "template": null,
                          "vendor": null,
                          "model": null,
                          "password": null,
                          "user_password": null,
                          "engineer_password": null,
                          "timezone": null,
                          "region": null,
                          "language": null,
                          "handset_language": null,
                          "tone": null,
                          "rps": null,
                          "https": null,
                          "codecs": null,
                          "lines": null,
                          "interface": null,
                          "preferred_transport": null,
                          "url": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/dect_phones/{id}": {
      "get": {
        "tags": [
          "Auto Provisioning"
        ],
        "operationId": "getDectPhoneDetails",
        "x-category": "auto-provisioning",
        "x-subcategory": "dect-phones",
        "x-permissions": [
          "PhoneSystem.ViewOnly"
        ],
        "summary": "Retrieve DECT Phone's detailed information.",
        "description": "Retrieve DECT phone's detailed information.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of DECT phone.\n"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of DECT phone.\n"
                    },
                    "name": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64,
                      "description": "The name of DECT phone.\n"
                    },
                    "mac": {
                      "allOf": [
                        {
                          "type": "string",
                          "description": "MAC address.\n"
                        }
                      ],
                      "description": "MAC address of this IP phone.\n"
                    },
                    "template": {
                      "type": "string",
                      "description": "Template XML file name for phone provisioning.\n"
                    },
                    "vendor": {
                      "type": "string",
                      "description": "The phone vendor of IP phone.\n"
                    },
                    "model": {
                      "type": "string",
                      "description": "The name of IP phone model.\n"
                    },
                    "password": {
                      "type": "string",
                      "description": "Password for accessing the Web interface of phone.\nThe username remains default because most phone manufacturers do not\nallow modification of the user name. This is supported for some phone model, such as \"Snom 300\".\n"
                    },
                    "user_password": {
                      "type": "string",
                      "description": "The user password.\n"
                    },
                    "engineer_password": {
                      "type": "string",
                      "description": "The engineer password.\n"
                    },
                    "timezone": {
                      "type": "string",
                      "description": "The timezone of phone.\n"
                    },
                    "region": {
                      "type": "string",
                      "description": "The country or region name of phone.\n"
                    },
                    "language": {
                      "type": "string",
                      "enum": [
                        "ENGLISH",
                        "CHINESE",
                        "DUTCH",
                        "FRENCH",
                        "GERMAN",
                        "GREEK",
                        "ITALIAN",
                        "JAPANESE",
                        "POLISH",
                        "RUSSIAN",
                        "SPANISH",
                        "SWEDISH",
                        "UKRAINIAN",
                        "BULGARIAN"
                      ],
                      "description": "Language for strings displayed on Phone Display LCD.\nSupported languages include ENGLISH, CHINESE, DUTCH, FRENCH, GERMAN,\nGREEK, ITALIAN, JAPANESE, POLISH, RUSSIAN, SPANISH, SWEDISH, UKRAINIAN, and BULGARIAN.\n"
                    },
                    "handset_language": {
                      "type": "string",
                      "enum": [
                        "ENGLISH",
                        "CHINESE",
                        "DUTCH",
                        "FRENCH",
                        "GERMAN",
                        "GREEK",
                        "ITALIAN",
                        "JAPANESE",
                        "POLISH",
                        "RUSSIAN",
                        "SPANISH",
                        "SWEDISH",
                        "UKRAINIAN",
                        "BULGARIAN"
                      ],
                      "description": "The handset language.\n"
                    },
                    "tone": {
                      "type": "string",
                      "description": "The tone set of DECT phone.\n"
                    },
                    "rps": {
                      "type": "boolean",
                      "description": "Send to RPS or not.\n"
                    },
                    "https": {
                      "type": "boolean",
                      "description": "Whether to use https\n"
                    },
                    "codecs": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "description": "The list of currently enabled codec formats.\n"
                    },
                    "lines": {
                      "type": "integer",
                      "readOnly": true,
                      "description": "The max lines of DECT phone.\n"
                    },
                    "interface": {
                      "type": "string",
                      "enum": [
                        "WEB_DOMAIN",
                        "PUBLIC_IPV4",
                        "PUBLIC_IPV6",
                        "PRIVATE_IPV4",
                        "PRIVATE_IPV6",
                        "SBC_DOMAIN"
                      ],
                      "description": "The interface type for QR code or auto provisioning.   \nCan be neither:  \n- `WEB_DOMAIN`:\n- `PUBLIC_IPV4`:\n- `PUBLIC_IPV6`:\n- `PRIVATE_IPV4`:\n- `PRIVATE_IPV6`:\n- `SBC_DOMAIN`:\n"
                    },
                    "preferred_transport": {
                      "type": "string",
                      "enum": [
                        "UDP",
                        "TCP",
                        "TLS"
                      ],
                      "description": "The transport protocol:  \nCan be either:  \n- `UDP`:\n- `TCP`:\n- `TLS`:\n"
                    },
                    "url": {
                      "type": "string",
                      "description": "Auto provision server URL.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "id": null,
                      "name": null,
                      "mac": null,
                      "template": null,
                      "vendor": null,
                      "model": null,
                      "password": null,
                      "user_password": null,
                      "engineer_password": null,
                      "timezone": null,
                      "region": null,
                      "language": null,
                      "handset_language": null,
                      "tone": null,
                      "rps": null,
                      "https": null,
                      "codecs": null,
                      "lines": null,
                      "interface": null,
                      "preferred_transport": null,
                      "url": null
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          }
        }
      },
      "post": {
        "tags": [
          "Auto Provisioning"
        ],
        "operationId": "updateDectPhone",
        "x-category": "auto-provisioning",
        "x-subcategory": "dect-phones",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Update DECT phone",
        "description": "Update a DECT phone.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of DECT phone.\n"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64,
                    "description": "The name of DECT phone.\n"
                  },
                  "password": {
                    "type": "string",
                    "description": "Password for accessing the Web interface of phone.\nThe username remains default because most phone manufacturers do not\nallow modification of the user name. This is supported for some phone model, such as \"Snom 300\".\n"
                  },
                  "user_password": {
                    "type": "string",
                    "description": "The user password.\n"
                  },
                  "engineer_password": {
                    "type": "string",
                    "description": "The engineer password.\n"
                  },
                  "timezone": {
                    "type": "string",
                    "description": "The timezone of phone.\n"
                  },
                  "region": {
                    "type": "string",
                    "description": "The country or region name of phone.\n"
                  },
                  "language": {
                    "type": "string",
                    "enum": [
                      "ENGLISH",
                      "CHINESE",
                      "DUTCH",
                      "FRENCH",
                      "GERMAN",
                      "GREEK",
                      "ITALIAN",
                      "JAPANESE",
                      "POLISH",
                      "RUSSIAN",
                      "SPANISH",
                      "SWEDISH",
                      "UKRAINIAN",
                      "BULGARIAN"
                    ],
                    "description": "Language for strings displayed on Phone Display LCD.\nSupported languages include ENGLISH, CHINESE, DUTCH, FRENCH, GERMAN,\nGREEK, ITALIAN, JAPANESE, POLISH, RUSSIAN, SPANISH, SWEDISH, UKRAINIAN, and BULGARIAN.\n"
                  },
                  "handset_language": {
                    "type": "string",
                    "enum": [
                      "ENGLISH",
                      "CHINESE",
                      "DUTCH",
                      "FRENCH",
                      "GERMAN",
                      "GREEK",
                      "ITALIAN",
                      "JAPANESE",
                      "POLISH",
                      "RUSSIAN",
                      "SPANISH",
                      "SWEDISH",
                      "UKRAINIAN",
                      "BULGARIAN"
                    ],
                    "description": "The handset language.\n"
                  },
                  "tone": {
                    "type": "string",
                    "description": "The tone set of DECT phone.\n"
                  },
                  "rps": {
                    "type": "boolean",
                    "description": "Send to RPS or not.\n"
                  },
                  "https": {
                    "type": "boolean",
                    "description": "Whether to use https\n"
                  },
                  "codecs": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "description": "The list of currently enabled codec formats.\n"
                  },
                  "interface": {
                    "type": "string",
                    "enum": [
                      "WEB_DOMAIN",
                      "PUBLIC_IPV4",
                      "PUBLIC_IPV6",
                      "PRIVATE_IPV4",
                      "PRIVATE_IPV6",
                      "SBC_DOMAIN"
                    ],
                    "description": "The interface type for QR code or auto provisioning.   \nCan be neither:  \n- `WEB_DOMAIN`:\n- `PUBLIC_IPV4`:\n- `PUBLIC_IPV6`:\n- `PRIVATE_IPV4`:\n- `PRIVATE_IPV6`:\n- `SBC_DOMAIN`:\n"
                  },
                  "preferred_transport": {
                    "type": "string",
                    "enum": [
                      "UDP",
                      "TCP",
                      "TLS"
                    ],
                    "description": "The transport protocol:  \nCan be either:  \n- `UDP`:\n- `TCP`:\n- `TLS`:\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "name": null,
                    "password": null,
                    "user_password": null,
                    "engineer_password": null,
                    "timezone": null,
                    "region": null,
                    "language": null,
                    "handset_language": null,
                    "tone": null,
                    "rps": null,
                    "https": null,
                    "codecs": null,
                    "interface": null,
                    "preferred_transport": null
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/dect_phones/{id}/destroy": {
      "post": {
        "tags": [
          "Auto Provisioning"
        ],
        "operationId": "DeleteDectPhone",
        "x-category": "auto-provisioning",
        "x-subcategory": "dect-phones",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Delete a DECT phone",
        "description": "Delete a DECT phone by it's ID.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of DECT phone.\n"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/dect_phones/{id}/members": {
      "get": {
        "tags": [
          "Auto Provisioning"
        ],
        "operationId": "listDectPhoneMembers",
        "x-category": "auto-provisioning",
        "x-subcategory": "dect-phones",
        "x-permissions": [
          "PhoneSystem.ViewOnly"
        ],
        "summary": "List DECT phone members",
        "description": "Retrieve a collection of DECT phone members.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of DECT phone.\n"
            },
            "description": "The unique ID of the DECT phone."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "readOnly": true,
                            "description": "The unique ID of extension.\n"
                          },
                          "extension_number": {
                            "allOf": [
                              {
                                "type": "string",
                                "minLength": 3,
                                "maxLength": 64,
                                "pattern": "[0-9]{3,64}",
                                "description": "The extension number.\n"
                              }
                            ],
                            "description": "The extension number of extension.\n"
                          },
                          "display_name": {
                            "allOf": [
                              {
                                "type": "string",
                                "maxLength": 1024,
                                "description": "The display name of user.\n"
                              }
                            ],
                            "readOnly": true,
                            "description": "The display name of extension.\n"
                          },
                          "ipui": {
                            "type": "string",
                            "description": "The International Portable User Identity.\n"
                          },
                          "handset_index": {
                            "type": "string",
                            "description": "The handset index.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "items": [
                        {
                          "id": null,
                          "extension_number": null,
                          "display_name": null,
                          "ipui": null,
                          "handset_index": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "post": {
        "tags": [
          "Auto Provisioning"
        ],
        "operationId": "updateDectPhoneMemberList",
        "x-category": "auto-provisioning",
        "x-subcategory": "dect-phones",
        "x-permissions": [
          "PhoneSystem.ViewOnly"
        ],
        "summary": "Update DECT phone member list",
        "description": "Update DECT phone member list.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of DECT phone.\n"
            },
            "description": "The unique ID of DECT phone."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "items": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "allOf": [
                            {
                              "type": "string",
                              "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                              "description": "The unique ID of the resource.\n"
                            }
                          ],
                          "readOnly": true,
                          "description": "The unique ID of extension.\n"
                        },
                        "extension_number": {
                          "allOf": [
                            {
                              "type": "string",
                              "minLength": 3,
                              "maxLength": 64,
                              "pattern": "[0-9]{3,64}",
                              "description": "The extension number.\n"
                            }
                          ],
                          "description": "The extension number of extension.\n"
                        },
                        "display_name": {
                          "allOf": [
                            {
                              "type": "string",
                              "maxLength": 1024,
                              "description": "The display name of user.\n"
                            }
                          ],
                          "readOnly": true,
                          "description": "The display name of extension.\n"
                        },
                        "ipui": {
                          "type": "string",
                          "description": "The International Portable User Identity.\n"
                        },
                        "handset_index": {
                          "type": "string",
                          "description": "The handset index.\n"
                        }
                      }
                    },
                    "description": "Collection of extension members.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "items": [
                      {
                        "extension_number": null,
                        "ipui": null,
                        "handset_index": null
                      }
                    ]
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/dect_phones/{id}/members/{extension_number}": {
      "get": {
        "tags": [
          "Auto Provisioning"
        ],
        "operationId": "getDectPhoneMember",
        "x-category": "auto-provisioning",
        "x-subcategory": "dect-phones",
        "x-permissions": [
          "PhoneSystem.ViewOnly"
        ],
        "summary": "Check DECT phone member",
        "description": "Check if extension is in DECT phone member list.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of DECT phone.\n"
            },
            "description": "The unique ID of the DECT phone.\n"
          },
          {
            "name": "extension_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 member.\n"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "readOnly": true,
                      "description": "The unique ID of extension.\n"
                    },
                    "extension_number": {
                      "allOf": [
                        {
                          "type": "string",
                          "minLength": 3,
                          "maxLength": 64,
                          "pattern": "[0-9]{3,64}",
                          "description": "The extension number.\n"
                        }
                      ],
                      "description": "The extension number of extension.\n"
                    },
                    "display_name": {
                      "allOf": [
                        {
                          "type": "string",
                          "maxLength": 1024,
                          "description": "The display name of user.\n"
                        }
                      ],
                      "readOnly": true,
                      "description": "The display name of extension.\n"
                    },
                    "ipui": {
                      "type": "string",
                      "description": "The International Portable User Identity.\n"
                    },
                    "handset_index": {
                      "type": "string",
                      "description": "The handset index.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "id": null,
                      "extension_number": null,
                      "display_name": null,
                      "ipui": null,
                      "handset_index": null
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          }
        }
      }
    },
    "/providers": {
      "post": {
        "tags": [
          "Trunk"
        ],
        "operationId": "createProvider",
        "x-category": "trunks",
        "x-subcategory": "trunks",
        "x-permissions": [
          "Trunk.FullAccess"
        ],
        "summary": "Create a provider",
        "description": "Add a new provider into system.\n",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64,
                    "description": "The name of the trunk.\n"
                  },
                  "enabled": {
                    "type": "boolean",
                    "default": true,
                    "description": "Whether to enable the provider.\n"
                  },
                  "brand": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64,
                    "description": "The brand of trunk.\n"
                  },
                  "auth_mode": {
                    "type": "string",
                    "enum": [
                      "IP_AUTH",
                      "REGISTER_AUTH",
                      "ACCEPT_REGISTER",
                      "TEAMS",
                      "WHATS_APP"
                    ],
                    "description": "Authentication mode:  \nCan be either:  \n- `IP_AUTH`:   \n- `REGISTER_AUTH`:   \n- `ACCEPT_REGISTER`:   \n- `TEAMS`:   \n- `WHATS_APP`:\n"
                  },
                  "transport": {
                    "type": "string",
                    "enum": [
                      "UDP",
                      "TCP",
                      "TLS"
                    ],
                    "description": "The trunk transport protocol:  \nCan be either:  \n- `UDP`:\n- `TCP`:\n- `TLS`:\n"
                  },
                  "hostname": {
                    "allOf": [
                      {
                        "type": "string",
                        "description": "Server hostname or IP address\n"
                      }
                    ],
                    "description": "The hostname of trunk.\n"
                  },
                  "port": {
                    "allOf": [
                      {
                        "type": "integer",
                        "format": "int32",
                        "minimum": 0,
                        "maximum": 65535,
                        "example": 80,
                        "description": "A port number is a 16-bit unsigned integer, thus ranging from 0 to 65535.\nFor TCP, port number 0 is reserved and cannot be used, while for UDP, the source port is optional and a value of zero means no port\n"
                      }
                    ],
                    "description": "The port of trunk.\n"
                  },
                  "auth_id": {
                    "type": "string",
                    "maxLength": 64,
                    "description": "Authentication ID, i.e. SIP username.\n"
                  },
                  "username": {
                    "type": "string",
                    "maxLength": 64,
                    "description": "Authentication username.\n"
                  },
                  "password": {
                    "type": "string",
                    "description": "Password for authentication.\n"
                  },
                  "registration": {
                    "type": "boolean",
                    "default": true,
                    "description": "Whether registration is required.\n"
                  },
                  "register_interval": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 0,
                    "default": 600,
                    "description": "Interval for registry refreshment, in seconds.\n"
                  },
                  "outbound_server": {
                    "type": "string",
                    "description": "The outbound server hostname of the trunk.\n"
                  },
                  "outbound_server_port": {
                    "allOf": [
                      {
                        "type": "integer",
                        "format": "int32",
                        "minimum": 0,
                        "maximum": 65535,
                        "example": 80,
                        "description": "A port number is a 16-bit unsigned integer, thus ranging from 0 to 65535.\nFor TCP, port number 0 is reserved and cannot be used, while for UDP, the source port is optional and a value of zero means no port\n"
                      }
                    ],
                    "description": "The outbound server port of the trunk.\n"
                  },
                  "inlan": {
                    "type": "boolean",
                    "default": false,
                    "description": "Whether the trunk under LAN or not.\n"
                  },
                  "single_via_header": {
                    "type": "boolean",
                    "default": true,
                    "description": "Whether this trunk is only accept single Via SIP header or not.\n"
                  },
                  "rewrite_via_ip": {
                    "type": "boolean",
                    "default": true,
                    "description": "Rewrite the host IP of Via header by public IP when sending the request to trunk.\n"
                  },
                  "verify_port": {
                    "type": "boolean",
                    "default": true,
                    "description": "Verify the port when receiving SIP messages from trunk\n"
                  },
                  "keep_alive": {
                    "type": "boolean",
                    "default": true,
                    "description": "Send `OPTIONS` message for keep alive.\n"
                  },
                  "concurrency": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 0,
                    "description": "The max number of concurrent calls.\n"
                  },
                  "keep_alive_interval": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 0,
                    "default": 360,
                    "description": "Keep alive message sending interval (seconds).\n"
                  },
                  "additional_ips": {
                    "type": "string",
                    "description": "The additional IP addresses of provider.   \nA semicolon-separated list of IP addresses in CIDR format.   \nFor example: 192.0.2.0/24;192.0.2.0/32 as defined in RFC 4632 and RFC 4291.\n"
                  },
                  "adjust_sdp_direction": {
                    "type": "boolean",
                    "default": false,
                    "description": "Adjust the SDP direction for call hold.\n"
                  },
                  "remove_srtp_info": {
                    "type": "boolean",
                    "default": true,
                    "description": "Remove crypto line in the SDP.\n"
                  },
                  "remove_plus_prefix": {
                    "type": "boolean",
                    "default": true,
                    "description": "Remove the \"+\" prefix from the called number on outbound calls.\n"
                  },
                  "stir_shaken_signature_required": {
                    "type": "boolean",
                    "default": false,
                    "description": "Whether to enable STIR/SHAKEN signature.\n"
                  },
                  "tel_uri_scheme_for_request_line": {
                    "type": "boolean",
                    "default": false,
                    "description": "Whether to Use the Tel URI scheme for the Request Line.\n"
                  },
                  "tel_uri_scheme_for_to_header": {
                    "type": "boolean",
                    "default": false,
                    "description": "Whether to Use the Tel URI scheme for the To header.\n"
                  },
                  "did_numbers": {
                    "type": "string",
                    "description": "The semicolon-separated list of DID/DDI pool number range or DID/DDI number.\nAssign a DID/DDI pool number range or DID/DDI number to the tenant.\nFor example: 3000;12000-18000.\nThe DID/DDI pool number range should not overlap with other tenant DID/DDI pool number ranges and numbers.\n"
                  },
                  "inbound_parameters": {
                    "type": "object",
                    "properties": {
                      "caller_num": {
                        "type": "string",
                        "enum": [
                          "REQUEST_LINE_URI_USER_PART",
                          "CONTACT_USER_PART",
                          "TO_DISPLAY_NAME",
                          "TO_USER_PART",
                          "FROM_DISPLAY_NAME",
                          "FROM_USER_PART",
                          "REMOTE_PARTY_ID_CALLED_PARTY_DISPLAY_NAME",
                          "REMOTE_PARTY_ID_CALLED_PARTY_USER_PART",
                          "REMOTE_PARTY_ID_CALLING_PARTY_DISPLAY_NAME",
                          "REMOTE_PARTY_ID_CALLING_PARTY_USER_PART",
                          "P_ASSERTED_IDENTITY_DISPLAY_NAME",
                          "P_ASSERTED_IDENTITY_USER_PART",
                          "P_PREFERRED_IDENTIFY_DISPLAY_NAME",
                          "P_PREFERRED_IDENTIFY_USER_PART",
                          "P_CALLED_PARTY_ID_DISPLAY_NAME",
                          "P_CALLED_PARTY_ID_USER_PART",
                          "DEFAULT"
                        ],
                        "description": "Inbound parameters:\n- `REQUEST_LINE_URI_USER_PART`:\n- `CONTACT_USER_PART`:\n- `TO_DISPLAY_NAME`:\n- `TO_USER_PART`:\n- `FROM_DISPLAY_NAME`:\n- `FROM_USER_PART`:\n- `REMOTE_PARTY_ID_CALLED_PARTY_DISPLAY_NAME`:\n- `REMOTE_PARTY_ID_CALLED_PARTY_USER_PART`:\n- `REMOTE_PARTY_ID_CALLING_PARTY_DISPLAY_NAME`:\n- `REMOTE_PARTY_ID_CALLING_PARTY_USER_PART`:\n- `P_ASSERTED_IDENTITY_DISPLAY_NAME`:\n- `P_ASSERTED_IDENTITY_USER_PART`:\n- `P_PREFERRED_IDENTIFY_DISPLAY_NAME`:\n- `P_PREFERRED_IDENTIFY_USER_PART`:\n- `P_CALLED_PARTY_ID_DISPLAY_NAME`:\n- `P_CALLED_PARTY_ID_USER_PART`:\n- `DEFAULT`:\n"
                      },
                      "caller_display_name": {
                        "type": "string",
                        "enum": [
                          "REQUEST_LINE_URI_USER_PART",
                          "CONTACT_USER_PART",
                          "TO_DISPLAY_NAME",
                          "TO_USER_PART",
                          "FROM_DISPLAY_NAME",
                          "FROM_USER_PART",
                          "REMOTE_PARTY_ID_CALLED_PARTY_DISPLAY_NAME",
                          "REMOTE_PARTY_ID_CALLED_PARTY_USER_PART",
                          "REMOTE_PARTY_ID_CALLING_PARTY_DISPLAY_NAME",
                          "REMOTE_PARTY_ID_CALLING_PARTY_USER_PART",
                          "P_ASSERTED_IDENTITY_DISPLAY_NAME",
                          "P_ASSERTED_IDENTITY_USER_PART",
                          "P_PREFERRED_IDENTIFY_DISPLAY_NAME",
                          "P_PREFERRED_IDENTIFY_USER_PART",
                          "P_CALLED_PARTY_ID_DISPLAY_NAME",
                          "P_CALLED_PARTY_ID_USER_PART",
                          "DEFAULT"
                        ],
                        "description": "Inbound parameters:\n- `REQUEST_LINE_URI_USER_PART`:\n- `CONTACT_USER_PART`:\n- `TO_DISPLAY_NAME`:\n- `TO_USER_PART`:\n- `FROM_DISPLAY_NAME`:\n- `FROM_USER_PART`:\n- `REMOTE_PARTY_ID_CALLED_PARTY_DISPLAY_NAME`:\n- `REMOTE_PARTY_ID_CALLED_PARTY_USER_PART`:\n- `REMOTE_PARTY_ID_CALLING_PARTY_DISPLAY_NAME`:\n- `REMOTE_PARTY_ID_CALLING_PARTY_USER_PART`:\n- `P_ASSERTED_IDENTITY_DISPLAY_NAME`:\n- `P_ASSERTED_IDENTITY_USER_PART`:\n- `P_PREFERRED_IDENTIFY_DISPLAY_NAME`:\n- `P_PREFERRED_IDENTIFY_USER_PART`:\n- `P_CALLED_PARTY_ID_DISPLAY_NAME`:\n- `P_CALLED_PARTY_ID_USER_PART`:\n- `DEFAULT`:\n"
                      },
                      "called_num": {
                        "type": "string",
                        "enum": [
                          "REQUEST_LINE_URI_USER_PART",
                          "CONTACT_USER_PART",
                          "TO_DISPLAY_NAME",
                          "TO_USER_PART",
                          "FROM_DISPLAY_NAME",
                          "FROM_USER_PART",
                          "REMOTE_PARTY_ID_CALLED_PARTY_DISPLAY_NAME",
                          "REMOTE_PARTY_ID_CALLED_PARTY_USER_PART",
                          "REMOTE_PARTY_ID_CALLING_PARTY_DISPLAY_NAME",
                          "REMOTE_PARTY_ID_CALLING_PARTY_USER_PART",
                          "P_ASSERTED_IDENTITY_DISPLAY_NAME",
                          "P_ASSERTED_IDENTITY_USER_PART",
                          "P_PREFERRED_IDENTIFY_DISPLAY_NAME",
                          "P_PREFERRED_IDENTIFY_USER_PART",
                          "P_CALLED_PARTY_ID_DISPLAY_NAME",
                          "P_CALLED_PARTY_ID_USER_PART",
                          "DEFAULT"
                        ],
                        "description": "Inbound parameters:\n- `REQUEST_LINE_URI_USER_PART`:\n- `CONTACT_USER_PART`:\n- `TO_DISPLAY_NAME`:\n- `TO_USER_PART`:\n- `FROM_DISPLAY_NAME`:\n- `FROM_USER_PART`:\n- `REMOTE_PARTY_ID_CALLED_PARTY_DISPLAY_NAME`:\n- `REMOTE_PARTY_ID_CALLED_PARTY_USER_PART`:\n- `REMOTE_PARTY_ID_CALLING_PARTY_DISPLAY_NAME`:\n- `REMOTE_PARTY_ID_CALLING_PARTY_USER_PART`:\n- `P_ASSERTED_IDENTITY_DISPLAY_NAME`:\n- `P_ASSERTED_IDENTITY_USER_PART`:\n- `P_PREFERRED_IDENTIFY_DISPLAY_NAME`:\n- `P_PREFERRED_IDENTIFY_USER_PART`:\n- `P_CALLED_PARTY_ID_DISPLAY_NAME`:\n- `P_CALLED_PARTY_ID_USER_PART`:\n- `DEFAULT`:\n"
                      },
                      "privacy_types_supported": {
                        "type": "string",
                        "enum": [
                          "DEFAULT",
                          "NONE",
                          "ID",
                          "USER",
                          "HEADER",
                          "SESSION"
                        ],
                        "description": "Inbound parameters:\n- `DEFAULT`: leave default value.\n- `NONE`: No privacy required.\n- `ID`: id\n- `USER`: user\n- `HEADER`: header\n- `SESSION`: Media anonymization\n"
                      },
                      "enable_stir_shaken_validation": {
                        "type": "boolean",
                        "default": false,
                        "description": "Enable STIR/SHAKEN validation or not.\n"
                      },
                      "pai_header_parameter_name": {
                        "type": "string",
                        "default": "verstat",
                        "description": "The parameter name of PAI header.\n"
                      },
                      "drop_calls_with_verification_status": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        },
                        "description": "A collection of  verification status.   \nAllowed values: `No-TN-Validation`, `TN-Validation-Failed`, `TN-Validation-Passed-B`, `TN-Validation-Passed-C`, `TN-Validation-Failed-A`, `TN-Validation-Failed-B`, `TN-Validation-Failed-C`.\n"
                      },
                      "pass_api_header_to_uad": {
                        "type": "boolean",
                        "default": false,
                        "description": "Enable STIR/SHAKEN validation or not.\n"
                      }
                    }
                  },
                  "outbound_parameters": {
                    "type": "object",
                    "properties": {
                      "request_line_uri_user_part": {
                        "type": "object",
                        "properties": {
                          "value": {
                            "type": "string",
                            "enum": [
                              "AUTH_ID",
                              "CALLER_NUM",
                              "CALLED_NUM",
                              "CALLER_DISPLAY_NAME",
                              "OUTBOUND_CALLER_ID",
                              "ORIGINATOR_CALLER_ID",
                              "OUTBOUND_CALLER_ID_AND_ORIGINATOR_CALLER_ID",
                              "ANONYMOUS",
                              "DEFAULT",
                              "CUSTOM"
                            ],
                            "description": "Inbound parameters:\n- `AUTH_ID`:\n- `CALLER_NUM`:\n- `CALLED_NUM`:\n- `CALLER_DISPLAY_NAME`:\n- `OUTBOUND_CALLER_ID`:\n- `ORIGINATOR_CALLER_ID`:\n- `OUTBOUND_CALLER_ID_AND_ORIGINATOR_CALLER_ID`:\n- `ANONYMOUS`:\n- `DEFAULT`: leave default value.\n- `CUSTOM`:\n"
                          },
                          "custom_value": {
                            "type": "string",
                            "description": "Custom value for the field.\n"
                          }
                        }
                      },
                      "request_line_uri_host_part": {
                        "type": "object",
                        "properties": {
                          "value": {
                            "type": "string",
                            "enum": [
                              "TRUNK_HOST_PORT",
                              "OUT_HOST_PORT",
                              "CONTACT_URI",
                              "SIP_DOMAIN",
                              "DEFAULT",
                              "CUSTOM"
                            ],
                            "description": "Inbound parameters variable:\n- `TRUNK_HOST_PORT`:\n- `OUT_HOST_PORT`:\n- `CONTACT_URI`:\n- `SIP_DOMAIN`:\n- `DEFAULT`: leave default value.\n- `CUSTOM`:\n"
                          },
                          "custom_value": {
                            "type": "string",
                            "description": "Custom value for the field.\n"
                          }
                        }
                      },
                      "contact_user_part": {
                        "type": "object",
                        "properties": {
                          "value": {
                            "type": "string",
                            "enum": [
                              "AUTH_ID",
                              "CALLER_NUM",
                              "CALLED_NUM",
                              "CALLER_DISPLAY_NAME",
                              "OUTBOUND_CALLER_ID",
                              "ORIGINATOR_CALLER_ID",
                              "OUTBOUND_CALLER_ID_AND_ORIGINATOR_CALLER_ID",
                              "ANONYMOUS",
                              "DEFAULT",
                              "CUSTOM"
                            ],
                            "description": "Inbound parameters:\n- `AUTH_ID`:\n- `CALLER_NUM`:\n- `CALLED_NUM`:\n- `CALLER_DISPLAY_NAME`:\n- `OUTBOUND_CALLER_ID`:\n- `ORIGINATOR_CALLER_ID`:\n- `OUTBOUND_CALLER_ID_AND_ORIGINATOR_CALLER_ID`:\n- `ANONYMOUS`:\n- `DEFAULT`: leave default value.\n- `CUSTOM`:\n"
                          },
                          "custom_value": {
                            "type": "string",
                            "description": "Custom value for the field.\n"
                          }
                        }
                      },
                      "contact_host_part": {
                        "type": "object",
                        "properties": {
                          "value": {
                            "type": "string",
                            "enum": [
                              "TRUNK_HOST_PORT",
                              "OUT_HOST_PORT",
                              "CONTACT_URI",
                              "SIP_DOMAIN",
                              "DEFAULT",
                              "CUSTOM"
                            ],
                            "description": "Inbound parameters variable:\n- `TRUNK_HOST_PORT`:\n- `OUT_HOST_PORT`:\n- `CONTACT_URI`:\n- `SIP_DOMAIN`:\n- `DEFAULT`: leave default value.\n- `CUSTOM`:\n"
                          },
                          "custom_value": {
                            "type": "string",
                            "description": "Custom value for the field.\n"
                          }
                        }
                      },
                      "to_display_name": {
                        "type": "object",
                        "properties": {
                          "value": {
                            "type": "string",
                            "enum": [
                              "AUTH_ID",
                              "CALLER_NUM",
                              "CALLED_NUM",
                              "CALLER_DISPLAY_NAME",
                              "OUTBOUND_CALLER_ID",
                              "ORIGINATOR_CALLER_ID",
                              "OUTBOUND_CALLER_ID_AND_ORIGINATOR_CALLER_ID",
                              "ANONYMOUS",
                              "DEFAULT",
                              "CUSTOM"
                            ],
                            "description": "Inbound parameters:\n- `AUTH_ID`:\n- `CALLER_NUM`:\n- `CALLED_NUM`:\n- `CALLER_DISPLAY_NAME`:\n- `OUTBOUND_CALLER_ID`:\n- `ORIGINATOR_CALLER_ID`:\n- `OUTBOUND_CALLER_ID_AND_ORIGINATOR_CALLER_ID`:\n- `ANONYMOUS`:\n- `DEFAULT`: leave default value.\n- `CUSTOM`:\n"
                          },
                          "custom_value": {
                            "type": "string",
                            "description": "Custom value for the field.\n"
                          }
                        }
                      },
                      "to_user_part": {
                        "type": "object",
                        "properties": {
                          "value": {
                            "type": "string",
                            "enum": [
                              "AUTH_ID",
                              "CALLER_NUM",
                              "CALLED_NUM",
                              "CALLER_DISPLAY_NAME",
                              "OUTBOUND_CALLER_ID",
                              "ORIGINATOR_CALLER_ID",
                              "OUTBOUND_CALLER_ID_AND_ORIGINATOR_CALLER_ID",
                              "ANONYMOUS",
                              "DEFAULT",
                              "CUSTOM"
                            ],
                            "description": "Inbound parameters:\n- `AUTH_ID`:\n- `CALLER_NUM`:\n- `CALLED_NUM`:\n- `CALLER_DISPLAY_NAME`:\n- `OUTBOUND_CALLER_ID`:\n- `ORIGINATOR_CALLER_ID`:\n- `OUTBOUND_CALLER_ID_AND_ORIGINATOR_CALLER_ID`:\n- `ANONYMOUS`:\n- `DEFAULT`: leave default value.\n- `CUSTOM`:\n"
                          },
                          "custom_value": {
                            "type": "string",
                            "description": "Custom value for the field.\n"
                          }
                        }
                      },
                      "to_host_part": {
                        "type": "object",
                        "properties": {
                          "value": {
                            "type": "string",
                            "enum": [
                              "TRUNK_HOST_PORT",
                              "OUT_HOST_PORT",
                              "CONTACT_URI",
                              "SIP_DOMAIN",
                              "DEFAULT",
                              "CUSTOM"
                            ],
                            "description": "Inbound parameters variable:\n- `TRUNK_HOST_PORT`:\n- `OUT_HOST_PORT`:\n- `CONTACT_URI`:\n- `SIP_DOMAIN`:\n- `DEFAULT`: leave default value.\n- `CUSTOM`:\n"
                          },
                          "custom_value": {
                            "type": "string",
                            "description": "Custom value for the field.\n"
                          }
                        }
                      },
                      "from_display_name": {
                        "type": "object",
                        "properties": {
                          "value": {
                            "type": "string",
                            "enum": [
                              "AUTH_ID",
                              "CALLER_NUM",
                              "CALLED_NUM",
                              "CALLER_DISPLAY_NAME",
                              "OUTBOUND_CALLER_ID",
                              "ORIGINATOR_CALLER_ID",
                              "OUTBOUND_CALLER_ID_AND_ORIGINATOR_CALLER_ID",
                              "ANONYMOUS",
                              "DEFAULT",
                              "CUSTOM"
                            ],
                            "description": "Inbound parameters:\n- `AUTH_ID`:\n- `CALLER_NUM`:\n- `CALLED_NUM`:\n- `CALLER_DISPLAY_NAME`:\n- `OUTBOUND_CALLER_ID`:\n- `ORIGINATOR_CALLER_ID`:\n- `OUTBOUND_CALLER_ID_AND_ORIGINATOR_CALLER_ID`:\n- `ANONYMOUS`:\n- `DEFAULT`: leave default value.\n- `CUSTOM`:\n"
                          },
                          "custom_value": {
                            "type": "string",
                            "description": "Custom value for the field.\n"
                          }
                        }
                      },
                      "from_user_part": {
                        "type": "object",
                        "properties": {
                          "value": {
                            "type": "string",
                            "enum": [
                              "AUTH_ID",
                              "CALLER_NUM",
                              "CALLED_NUM",
                              "CALLER_DISPLAY_NAME",
                              "OUTBOUND_CALLER_ID",
                              "ORIGINATOR_CALLER_ID",
                              "OUTBOUND_CALLER_ID_AND_ORIGINATOR_CALLER_ID",
                              "ANONYMOUS",
                              "DEFAULT",
                              "CUSTOM"
                            ],
                            "description": "Inbound parameters:\n- `AUTH_ID`:\n- `CALLER_NUM`:\n- `CALLED_NUM`:\n- `CALLER_DISPLAY_NAME`:\n- `OUTBOUND_CALLER_ID`:\n- `ORIGINATOR_CALLER_ID`:\n- `OUTBOUND_CALLER_ID_AND_ORIGINATOR_CALLER_ID`:\n- `ANONYMOUS`:\n- `DEFAULT`: leave default value.\n- `CUSTOM`:\n"
                          },
                          "custom_value": {
                            "type": "string",
                            "description": "Custom value for the field.\n"
                          }
                        }
                      },
                      "from_host_part": {
                        "type": "object",
                        "properties": {
                          "value": {
                            "type": "string",
                            "enum": [
                              "TRUNK_HOST_PORT",
                              "OUT_HOST_PORT",
                              "CONTACT_URI",
                              "SIP_DOMAIN",
                              "DEFAULT",
                              "CUSTOM"
                            ],
                            "description": "Inbound parameters variable:\n- `TRUNK_HOST_PORT`:\n- `OUT_HOST_PORT`:\n- `CONTACT_URI`:\n- `SIP_DOMAIN`:\n- `DEFAULT`: leave default value.\n- `CUSTOM`:\n"
                          },
                          "custom_value": {
                            "type": "string",
                            "description": "Custom value for the field.\n"
                          }
                        }
                      },
                      "remote_party_id_called_party_display_name": {
                        "type": "object",
                        "properties": {
                          "value": {
                            "type": "string",
                            "enum": [
                              "AUTH_ID",
                              "CALLER_NUM",
                              "CALLED_NUM",
                              "CALLER_DISPLAY_NAME",
                              "OUTBOUND_CALLER_ID",
                              "ORIGINATOR_CALLER_ID",
                              "OUTBOUND_CALLER_ID_AND_ORIGINATOR_CALLER_ID",
                              "ANONYMOUS",
                              "DEFAULT",
                              "CUSTOM"
                            ],
                            "description": "Inbound parameters:\n- `AUTH_ID`:\n- `CALLER_NUM`:\n- `CALLED_NUM`:\n- `CALLER_DISPLAY_NAME`:\n- `OUTBOUND_CALLER_ID`:\n- `ORIGINATOR_CALLER_ID`:\n- `OUTBOUND_CALLER_ID_AND_ORIGINATOR_CALLER_ID`:\n- `ANONYMOUS`:\n- `DEFAULT`: leave default value.\n- `CUSTOM`:\n"
                          },
                          "custom_value": {
                            "type": "string",
                            "description": "Custom value for the field.\n"
                          }
                        }
                      },
                      "remote_party_id_called_party_user_part": {
                        "type": "object",
                        "properties": {
                          "value": {
                            "type": "string",
                            "enum": [
                              "AUTH_ID",
                              "CALLER_NUM",
                              "CALLED_NUM",
                              "CALLER_DISPLAY_NAME",
                              "OUTBOUND_CALLER_ID",
                              "ORIGINATOR_CALLER_ID",
                              "OUTBOUND_CALLER_ID_AND_ORIGINATOR_CALLER_ID",
                              "ANONYMOUS",
                              "DEFAULT",
                              "CUSTOM"
                            ],
                            "description": "Inbound parameters:\n- `AUTH_ID`:\n- `CALLER_NUM`:\n- `CALLED_NUM`:\n- `CALLER_DISPLAY_NAME`:\n- `OUTBOUND_CALLER_ID`:\n- `ORIGINATOR_CALLER_ID`:\n- `OUTBOUND_CALLER_ID_AND_ORIGINATOR_CALLER_ID`:\n- `ANONYMOUS`:\n- `DEFAULT`: leave default value.\n- `CUSTOM`:\n"
                          },
                          "custom_value": {
                            "type": "string",
                            "description": "Custom value for the field.\n"
                          }
                        }
                      },
                      "remote_party_id_called_party_host_part": {
                        "type": "object",
                        "properties": {
                          "value": {
                            "type": "string",
                            "enum": [
                              "TRUNK_HOST_PORT",
                              "OUT_HOST_PORT",
                              "CONTACT_URI",
                              "SIP_DOMAIN",
                              "DEFAULT",
                              "CUSTOM"
                            ],
                            "description": "Inbound parameters variable:\n- `TRUNK_HOST_PORT`:\n- `OUT_HOST_PORT`:\n- `CONTACT_URI`:\n- `SIP_DOMAIN`:\n- `DEFAULT`: leave default value.\n- `CUSTOM`:\n"
                          },
                          "custom_value": {
                            "type": "string",
                            "description": "Custom value for the field.\n"
                          }
                        }
                      },
                      "remote_party_id_calling_party_display_name": {
                        "type": "object",
                        "properties": {
                          "value": {
                            "type": "string",
                            "enum": [
                              "AUTH_ID",
                              "CALLER_NUM",
                              "CALLED_NUM",
                              "CALLER_DISPLAY_NAME",
                              "OUTBOUND_CALLER_ID",
                              "ORIGINATOR_CALLER_ID",
                              "OUTBOUND_CALLER_ID_AND_ORIGINATOR_CALLER_ID",
                              "ANONYMOUS",
                              "DEFAULT",
                              "CUSTOM"
                            ],
                            "description": "Inbound parameters:\n- `AUTH_ID`:\n- `CALLER_NUM`:\n- `CALLED_NUM`:\n- `CALLER_DISPLAY_NAME`:\n- `OUTBOUND_CALLER_ID`:\n- `ORIGINATOR_CALLER_ID`:\n- `OUTBOUND_CALLER_ID_AND_ORIGINATOR_CALLER_ID`:\n- `ANONYMOUS`:\n- `DEFAULT`: leave default value.\n- `CUSTOM`:\n"
                          },
                          "custom_value": {
                            "type": "string",
                            "description": "Custom value for the field.\n"
                          }
                        }
                      },
                      "remote_party_id_calling_party_user_part": {
                        "type": "object",
                        "properties": {
                          "value": {
                            "type": "string",
                            "enum": [
                              "AUTH_ID",
                              "CALLER_NUM",
                              "CALLED_NUM",
                              "CALLER_DISPLAY_NAME",
                              "OUTBOUND_CALLER_ID",
                              "ORIGINATOR_CALLER_ID",
                              "OUTBOUND_CALLER_ID_AND_ORIGINATOR_CALLER_ID",
                              "ANONYMOUS",
                              "DEFAULT",
                              "CUSTOM"
                            ],
                            "description": "Inbound parameters:\n- `AUTH_ID`:\n- `CALLER_NUM`:\n- `CALLED_NUM`:\n- `CALLER_DISPLAY_NAME`:\n- `OUTBOUND_CALLER_ID`:\n- `ORIGINATOR_CALLER_ID`:\n- `OUTBOUND_CALLER_ID_AND_ORIGINATOR_CALLER_ID`:\n- `ANONYMOUS`:\n- `DEFAULT`: leave default value.\n- `CUSTOM`:\n"
                          },
                          "custom_value": {
                            "type": "string",
                            "description": "Custom value for the field.\n"
                          }
                        }
                      },
                      "remote_party_id_calling_party_host_part": {
                        "type": "object",
                        "properties": {
                          "value": {
                            "type": "string",
                            "enum": [
                              "TRUNK_HOST_PORT",
                              "OUT_HOST_PORT",
                              "CONTACT_URI",
                              "SIP_DOMAIN",
                              "DEFAULT",
                              "CUSTOM"
                            ],
                            "description": "Inbound parameters variable:\n- `TRUNK_HOST_PORT`:\n- `OUT_HOST_PORT`:\n- `CONTACT_URI`:\n- `SIP_DOMAIN`:\n- `DEFAULT`: leave default value.\n- `CUSTOM`:\n"
                          },
                          "custom_value": {
                            "type": "string",
                            "description": "Custom value for the field.\n"
                          }
                        }
                      },
                      "p_asserted_identity_display_name": {
                        "type": "object",
                        "properties": {
                          "value": {
                            "type": "string",
                            "enum": [
                              "AUTH_ID",
                              "CALLER_NUM",
                              "CALLED_NUM",
                              "CALLER_DISPLAY_NAME",
                              "OUTBOUND_CALLER_ID",
                              "ORIGINATOR_CALLER_ID",
                              "OUTBOUND_CALLER_ID_AND_ORIGINATOR_CALLER_ID",
                              "ANONYMOUS",
                              "DEFAULT",
                              "CUSTOM"
                            ],
                            "description": "Inbound parameters:\n- `AUTH_ID`:\n- `CALLER_NUM`:\n- `CALLED_NUM`:\n- `CALLER_DISPLAY_NAME`:\n- `OUTBOUND_CALLER_ID`:\n- `ORIGINATOR_CALLER_ID`:\n- `OUTBOUND_CALLER_ID_AND_ORIGINATOR_CALLER_ID`:\n- `ANONYMOUS`:\n- `DEFAULT`: leave default value.\n- `CUSTOM`:\n"
                          },
                          "custom_value": {
                            "type": "string",
                            "description": "Custom value for the field.\n"
                          }
                        }
                      },
                      "p_asserted_identity_user_part": {
                        "type": "object",
                        "properties": {
                          "value": {
                            "type": "string",
                            "enum": [
                              "AUTH_ID",
                              "CALLER_NUM",
                              "CALLED_NUM",
                              "CALLER_DISPLAY_NAME",
                              "OUTBOUND_CALLER_ID",
                              "ORIGINATOR_CALLER_ID",
                              "OUTBOUND_CALLER_ID_AND_ORIGINATOR_CALLER_ID",
                              "ANONYMOUS",
                              "DEFAULT",
                              "CUSTOM"
                            ],
                            "description": "Inbound parameters:\n- `AUTH_ID`:\n- `CALLER_NUM`:\n- `CALLED_NUM`:\n- `CALLER_DISPLAY_NAME`:\n- `OUTBOUND_CALLER_ID`:\n- `ORIGINATOR_CALLER_ID`:\n- `OUTBOUND_CALLER_ID_AND_ORIGINATOR_CALLER_ID`:\n- `ANONYMOUS`:\n- `DEFAULT`: leave default value.\n- `CUSTOM`:\n"
                          },
                          "custom_value": {
                            "type": "string",
                            "description": "Custom value for the field.\n"
                          }
                        }
                      },
                      "p_asserted_identity_host_part": {
                        "type": "object",
                        "properties": {
                          "value": {
                            "type": "string",
                            "enum": [
                              "TRUNK_HOST_PORT",
                              "OUT_HOST_PORT",
                              "CONTACT_URI",
                              "SIP_DOMAIN",
                              "DEFAULT",
                              "CUSTOM"
                            ],
                            "description": "Inbound parameters variable:\n- `TRUNK_HOST_PORT`:\n- `OUT_HOST_PORT`:\n- `CONTACT_URI`:\n- `SIP_DOMAIN`:\n- `DEFAULT`: leave default value.\n- `CUSTOM`:\n"
                          },
                          "custom_value": {
                            "type": "string",
                            "description": "Custom value for the field.\n"
                          }
                        }
                      },
                      "p_preferred_identify_display_name": {
                        "type": "object",
                        "properties": {
                          "value": {
                            "type": "string",
                            "enum": [
                              "AUTH_ID",
                              "CALLER_NUM",
                              "CALLED_NUM",
                              "CALLER_DISPLAY_NAME",
                              "OUTBOUND_CALLER_ID",
                              "ORIGINATOR_CALLER_ID",
                              "OUTBOUND_CALLER_ID_AND_ORIGINATOR_CALLER_ID",
                              "ANONYMOUS",
                              "DEFAULT",
                              "CUSTOM"
                            ],
                            "description": "Inbound parameters:\n- `AUTH_ID`:\n- `CALLER_NUM`:\n- `CALLED_NUM`:\n- `CALLER_DISPLAY_NAME`:\n- `OUTBOUND_CALLER_ID`:\n- `ORIGINATOR_CALLER_ID`:\n- `OUTBOUND_CALLER_ID_AND_ORIGINATOR_CALLER_ID`:\n- `ANONYMOUS`:\n- `DEFAULT`: leave default value.\n- `CUSTOM`:\n"
                          },
                          "custom_value": {
                            "type": "string",
                            "description": "Custom value for the field.\n"
                          }
                        }
                      },
                      "p_preferred_identify_user_part": {
                        "type": "object",
                        "properties": {
                          "value": {
                            "type": "string",
                            "enum": [
                              "AUTH_ID",
                              "CALLER_NUM",
                              "CALLED_NUM",
                              "CALLER_DISPLAY_NAME",
                              "OUTBOUND_CALLER_ID",
                              "ORIGINATOR_CALLER_ID",
                              "OUTBOUND_CALLER_ID_AND_ORIGINATOR_CALLER_ID",
                              "ANONYMOUS",
                              "DEFAULT",
                              "CUSTOM"
                            ],
                            "description": "Inbound parameters:\n- `AUTH_ID`:\n- `CALLER_NUM`:\n- `CALLED_NUM`:\n- `CALLER_DISPLAY_NAME`:\n- `OUTBOUND_CALLER_ID`:\n- `ORIGINATOR_CALLER_ID`:\n- `OUTBOUND_CALLER_ID_AND_ORIGINATOR_CALLER_ID`:\n- `ANONYMOUS`:\n- `DEFAULT`: leave default value.\n- `CUSTOM`:\n"
                          },
                          "custom_value": {
                            "type": "string",
                            "description": "Custom value for the field.\n"
                          }
                        }
                      },
                      "p_preferred_identify_host_part": {
                        "type": "object",
                        "properties": {
                          "value": {
                            "type": "string",
                            "enum": [
                              "TRUNK_HOST_PORT",
                              "OUT_HOST_PORT",
                              "CONTACT_URI",
                              "SIP_DOMAIN",
                              "DEFAULT",
                              "CUSTOM"
                            ],
                            "description": "Inbound parameters variable:\n- `TRUNK_HOST_PORT`:\n- `OUT_HOST_PORT`:\n- `CONTACT_URI`:\n- `SIP_DOMAIN`:\n- `DEFAULT`: leave default value.\n- `CUSTOM`:\n"
                          },
                          "custom_value": {
                            "type": "string",
                            "description": "Custom value for the field.\n"
                          }
                        }
                      },
                      "p_called_party_id_display_name": {
                        "type": "object",
                        "properties": {
                          "value": {
                            "type": "string",
                            "enum": [
                              "AUTH_ID",
                              "CALLER_NUM",
                              "CALLED_NUM",
                              "CALLER_DISPLAY_NAME",
                              "OUTBOUND_CALLER_ID",
                              "ORIGINATOR_CALLER_ID",
                              "OUTBOUND_CALLER_ID_AND_ORIGINATOR_CALLER_ID",
                              "ANONYMOUS",
                              "DEFAULT",
                              "CUSTOM"
                            ],
                            "description": "Inbound parameters:\n- `AUTH_ID`:\n- `CALLER_NUM`:\n- `CALLED_NUM`:\n- `CALLER_DISPLAY_NAME`:\n- `OUTBOUND_CALLER_ID`:\n- `ORIGINATOR_CALLER_ID`:\n- `OUTBOUND_CALLER_ID_AND_ORIGINATOR_CALLER_ID`:\n- `ANONYMOUS`:\n- `DEFAULT`: leave default value.\n- `CUSTOM`:\n"
                          },
                          "custom_value": {
                            "type": "string",
                            "description": "Custom value for the field.\n"
                          }
                        }
                      },
                      "p_called_party_id_user_part": {
                        "type": "object",
                        "properties": {
                          "value": {
                            "type": "string",
                            "enum": [
                              "AUTH_ID",
                              "CALLER_NUM",
                              "CALLED_NUM",
                              "CALLER_DISPLAY_NAME",
                              "OUTBOUND_CALLER_ID",
                              "ORIGINATOR_CALLER_ID",
                              "OUTBOUND_CALLER_ID_AND_ORIGINATOR_CALLER_ID",
                              "ANONYMOUS",
                              "DEFAULT",
                              "CUSTOM"
                            ],
                            "description": "Inbound parameters:\n- `AUTH_ID`:\n- `CALLER_NUM`:\n- `CALLED_NUM`:\n- `CALLER_DISPLAY_NAME`:\n- `OUTBOUND_CALLER_ID`:\n- `ORIGINATOR_CALLER_ID`:\n- `OUTBOUND_CALLER_ID_AND_ORIGINATOR_CALLER_ID`:\n- `ANONYMOUS`:\n- `DEFAULT`: leave default value.\n- `CUSTOM`:\n"
                          },
                          "custom_value": {
                            "type": "string",
                            "description": "Custom value for the field.\n"
                          }
                        }
                      },
                      "p_called_party_id_host_part": {
                        "type": "object",
                        "properties": {
                          "value": {
                            "type": "string",
                            "enum": [
                              "TRUNK_HOST_PORT",
                              "OUT_HOST_PORT",
                              "CONTACT_URI",
                              "SIP_DOMAIN",
                              "DEFAULT",
                              "CUSTOM"
                            ],
                            "description": "Inbound parameters variable:\n- `TRUNK_HOST_PORT`:\n- `OUT_HOST_PORT`:\n- `CONTACT_URI`:\n- `SIP_DOMAIN`:\n- `DEFAULT`: leave default value.\n- `CUSTOM`:\n"
                          },
                          "custom_value": {
                            "type": "string",
                            "description": "Custom value for the field.\n"
                          }
                        }
                      },
                      "privacy_types_supported": {
                        "type": "string",
                        "enum": [
                          "DEFAULT",
                          "NONE",
                          "ID",
                          "USER",
                          "HEADER",
                          "SESSION"
                        ],
                        "description": "Inbound parameters:\n- `DEFAULT`: leave default value.\n- `NONE`: No privacy required.\n- `ID`: id\n- `USER`: user\n- `HEADER`: header\n- `SESSION`: Media anonymization\n"
                      }
                    }
                  }
                },
                "required": [
                  "name",
                  "transport",
                  "hostname",
                  "port",
                  "outbound_server",
                  "outbound_server_port",
                  "concurrency"
                ]
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "name": null,
                    "enabled": null,
                    "brand": null,
                    "auth_mode": null,
                    "transport": null,
                    "hostname": null,
                    "port": null,
                    "auth_id": null,
                    "username": null,
                    "password": null,
                    "registration": null,
                    "register_interval": null,
                    "outbound_server": null,
                    "outbound_server_port": null,
                    "inlan": null,
                    "single_via_header": null,
                    "rewrite_via_ip": null,
                    "verify_port": null,
                    "keep_alive": null,
                    "concurrency": null,
                    "keep_alive_interval": null,
                    "additional_ips": null,
                    "adjust_sdp_direction": null,
                    "remove_srtp_info": true,
                    "remove_plus_prefix": false,
                    "stir_shaken_signature_required": null,
                    "tel_uri_scheme_for_request_line": null,
                    "tel_uri_scheme_for_to_header": null,
                    "did_numbers": null,
                    "inbound_parameters": null,
                    "outbound_parameters": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of trunk.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "The ID of created resource",
                    "value": {
                      "id": "xxxxxxxx"
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "get": {
        "tags": [
          "Trunk"
        ],
        "operationId": "listProviders",
        "x-category": "trunks",
        "x-subcategory": "trunks",
        "x-permissions": [
          "Trunk.ViewOnly"
        ],
        "summary": "List providers",
        "description": "Retrieve a collection of providers\n",
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Use the `filter` query parameter to retrieve just a subset of a collection.\n"
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "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",
            "required": false,
            "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",
            "required": false,
            "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",
            "required": false,
            "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,
                      "example": 100,
                      "description": "Total number of resource.\n"
                    },
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "description": "The unique ID of trunk.\n"
                          },
                          "name": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 64,
                            "description": "The name of the trunk.\n"
                          },
                          "enabled": {
                            "type": "boolean",
                            "default": true,
                            "description": "Whether to enable the provider.\n"
                          },
                          "brand": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 64,
                            "description": "The brand of trunk.\n"
                          },
                          "hostname": {
                            "allOf": [
                              {
                                "type": "string",
                                "description": "Server hostname or IP address\n"
                              }
                            ],
                            "description": "The hostname of trunk.\n"
                          },
                          "port": {
                            "allOf": [
                              {
                                "type": "integer",
                                "format": "int32",
                                "minimum": 0,
                                "maximum": 65535,
                                "example": 80,
                                "description": "A port number is a 16-bit unsigned integer, thus ranging from 0 to 65535.\nFor TCP, port number 0 is reserved and cannot be used, while for UDP, the source port is optional and a value of zero means no port\n"
                              }
                            ],
                            "description": "The port of trunk.\n"
                          },
                          "did_numbers": {
                            "type": "string",
                            "description": "The semicolon-separated list of DID/DDI pool number range or DID/DDI number.\nAssign a DID/DDI pool number range or DID/DDI number to the tenant.\nFor example: 3000;12000-18000.\nThe DID/DDI pool number range should not overlap with other tenant DID/DDI pool number ranges and numbers.\n"
                          },
                          "shared": {
                            "type": "boolean",
                            "description": "The flag of whether the trunk is shared.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": null,
                          "name": null,
                          "enabled": null,
                          "brand": null,
                          "hostname": null,
                          "port": null,
                          "did_numbers": null,
                          "shared": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/providers/{id}": {
      "get": {
        "tags": [
          "Trunk"
        ],
        "operationId": "getProvider",
        "x-category": "trunks",
        "x-subcategory": "trunks",
        "x-permissions": [
          "Trunk.ViewOnly"
        ],
        "summary": "Retrieve a provider",
        "description": "Get details of a provider by it's unique ID.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of trunk.\n"
            },
            "description": "The unique ID of the provider."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of trunk.\n"
                    },
                    "name": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64,
                      "description": "The name of the trunk.\n"
                    },
                    "enabled": {
                      "type": "boolean",
                      "default": true,
                      "description": "Whether to enable the provider.\n"
                    },
                    "brand": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64,
                      "description": "The brand of trunk.\n"
                    },
                    "auth_mode": {
                      "type": "string",
                      "enum": [
                        "IP_AUTH",
                        "REGISTER_AUTH",
                        "ACCEPT_REGISTER",
                        "TEAMS",
                        "WHATS_APP"
                      ],
                      "description": "Authentication mode:  \nCan be either:  \n- `IP_AUTH`:   \n- `REGISTER_AUTH`:   \n- `ACCEPT_REGISTER`:   \n- `TEAMS`:   \n- `WHATS_APP`:\n"
                    },
                    "transport": {
                      "type": "string",
                      "enum": [
                        "UDP",
                        "TCP",
                        "TLS"
                      ],
                      "description": "The trunk transport protocol:  \nCan be either:  \n- `UDP`:\n- `TCP`:\n- `TLS`:\n"
                    },
                    "hostname": {
                      "allOf": [
                        {
                          "type": "string",
                          "description": "Server hostname or IP address\n"
                        }
                      ],
                      "description": "The hostname of trunk.\n"
                    },
                    "port": {
                      "allOf": [
                        {
                          "type": "integer",
                          "format": "int32",
                          "minimum": 0,
                          "maximum": 65535,
                          "example": 80,
                          "description": "A port number is a 16-bit unsigned integer, thus ranging from 0 to 65535.\nFor TCP, port number 0 is reserved and cannot be used, while for UDP, the source port is optional and a value of zero means no port\n"
                        }
                      ],
                      "description": "The port of trunk.\n"
                    },
                    "auth_id": {
                      "type": "string",
                      "maxLength": 64,
                      "description": "Authentication ID, i.e. SIP username.\n"
                    },
                    "username": {
                      "type": "string",
                      "maxLength": 64,
                      "description": "Authentication username.\n"
                    },
                    "registration": {
                      "type": "boolean",
                      "default": true,
                      "description": "Whether registration is required.\n"
                    },
                    "register_interval": {
                      "type": "integer",
                      "format": "int32",
                      "minimum": 0,
                      "default": 600,
                      "description": "Interval for registry refreshment, in seconds.\n"
                    },
                    "outbound_server": {
                      "type": "string",
                      "description": "The outbound server hostname of the trunk.\n"
                    },
                    "outbound_server_port": {
                      "allOf": [
                        {
                          "type": "integer",
                          "format": "int32",
                          "minimum": 0,
                          "maximum": 65535,
                          "example": 80,
                          "description": "A port number is a 16-bit unsigned integer, thus ranging from 0 to 65535.\nFor TCP, port number 0 is reserved and cannot be used, while for UDP, the source port is optional and a value of zero means no port\n"
                        }
                      ],
                      "description": "The outbound server port of the trunk.\n"
                    },
                    "inlan": {
                      "type": "boolean",
                      "default": false,
                      "description": "Whether the trunk under LAN or not.\n"
                    },
                    "single_via_header": {
                      "type": "boolean",
                      "default": true,
                      "description": "Whether this trunk is only accept single Via SIP header or not.\n"
                    },
                    "rewrite_via_ip": {
                      "type": "boolean",
                      "default": true,
                      "description": "Rewrite the host IP of Via header by public IP when sending the request to trunk.\n"
                    },
                    "verify_port": {
                      "type": "boolean",
                      "default": true,
                      "description": "Verify the port when receiving SIP messages from trunk\n"
                    },
                    "keep_alive": {
                      "type": "boolean",
                      "default": true,
                      "description": "Send `OPTIONS` message for keep alive.\n"
                    },
                    "keep_alive_interval": {
                      "type": "integer",
                      "format": "int32",
                      "minimum": 0,
                      "default": 360,
                      "description": "Keep alive message sending interval (seconds).\n"
                    },
                    "concurrency": {
                      "type": "integer",
                      "format": "int32",
                      "minimum": 0,
                      "description": "The max number of concurrent calls.\n"
                    },
                    "additional_ips": {
                      "type": "string",
                      "description": "The additional IP addresses of provider.   \nA semicolon-separated list of IP addresses in CIDR format.   \nFor example: 192.0.2.0/24;192.0.2.0/32 as defined in RFC 4632 and RFC 4291.\n"
                    },
                    "adjust_sdp_direction": {
                      "type": "boolean",
                      "default": false,
                      "description": "Adjust the SDP direction for call hold.\n"
                    },
                    "remove_srtp_info": {
                      "type": "boolean",
                      "default": true,
                      "description": "Remove crypto line in the SDP.\n"
                    },
                    "remove_plus_prefix": {
                      "type": "boolean",
                      "default": true,
                      "description": "Remove the \"+\" prefix from the called number on outbound calls.\n"
                    },
                    "stir_shaken_signature_required": {
                      "type": "boolean",
                      "default": false,
                      "description": "Whether to enable STIR/SHAKEN signature.\n"
                    },
                    "tel_uri_scheme_for_request_line": {
                      "type": "boolean",
                      "default": false,
                      "description": "Whether to Use the Tel URI scheme for the Request Line.\n"
                    },
                    "tel_uri_scheme_for_to_header": {
                      "type": "boolean",
                      "default": false,
                      "description": "Whether to Use the Tel URI scheme for the To header.\n"
                    },
                    "did_numbers": {
                      "type": "string",
                      "description": "The semicolon-separated list of DID/DDI pool number range or DID/DDI number.\nAssign a DID/DDI pool number range or DID/DDI number to the tenant.\nFor example: 3000;12000-18000.\nThe DID/DDI pool number range should not overlap with other tenant DID/DDI pool number ranges and numbers.\n"
                    },
                    "inbound_parameters": {
                      "type": "object",
                      "properties": {
                        "caller_num": {
                          "type": "string",
                          "enum": [
                            "REQUEST_LINE_URI_USER_PART",
                            "CONTACT_USER_PART",
                            "TO_DISPLAY_NAME",
                            "TO_USER_PART",
                            "FROM_DISPLAY_NAME",
                            "FROM_USER_PART",
                            "REMOTE_PARTY_ID_CALLED_PARTY_DISPLAY_NAME",
                            "REMOTE_PARTY_ID_CALLED_PARTY_USER_PART",
                            "REMOTE_PARTY_ID_CALLING_PARTY_DISPLAY_NAME",
                            "REMOTE_PARTY_ID_CALLING_PARTY_USER_PART",
                            "P_ASSERTED_IDENTITY_DISPLAY_NAME",
                            "P_ASSERTED_IDENTITY_USER_PART",
                            "P_PREFERRED_IDENTIFY_DISPLAY_NAME",
                            "P_PREFERRED_IDENTIFY_USER_PART",
                            "P_CALLED_PARTY_ID_DISPLAY_NAME",
                            "P_CALLED_PARTY_ID_USER_PART",
                            "DEFAULT"
                          ],
                          "description": "Inbound parameters:\n- `REQUEST_LINE_URI_USER_PART`:\n- `CONTACT_USER_PART`:\n- `TO_DISPLAY_NAME`:\n- `TO_USER_PART`:\n- `FROM_DISPLAY_NAME`:\n- `FROM_USER_PART`:\n- `REMOTE_PARTY_ID_CALLED_PARTY_DISPLAY_NAME`:\n- `REMOTE_PARTY_ID_CALLED_PARTY_USER_PART`:\n- `REMOTE_PARTY_ID_CALLING_PARTY_DISPLAY_NAME`:\n- `REMOTE_PARTY_ID_CALLING_PARTY_USER_PART`:\n- `P_ASSERTED_IDENTITY_DISPLAY_NAME`:\n- `P_ASSERTED_IDENTITY_USER_PART`:\n- `P_PREFERRED_IDENTIFY_DISPLAY_NAME`:\n- `P_PREFERRED_IDENTIFY_USER_PART`:\n- `P_CALLED_PARTY_ID_DISPLAY_NAME`:\n- `P_CALLED_PARTY_ID_USER_PART`:\n- `DEFAULT`:\n"
                        },
                        "caller_display_name": {
                          "type": "string",
                          "enum": [
                            "REQUEST_LINE_URI_USER_PART",
                            "CONTACT_USER_PART",
                            "TO_DISPLAY_NAME",
                            "TO_USER_PART",
                            "FROM_DISPLAY_NAME",
                            "FROM_USER_PART",
                            "REMOTE_PARTY_ID_CALLED_PARTY_DISPLAY_NAME",
                            "REMOTE_PARTY_ID_CALLED_PARTY_USER_PART",
                            "REMOTE_PARTY_ID_CALLING_PARTY_DISPLAY_NAME",
                            "REMOTE_PARTY_ID_CALLING_PARTY_USER_PART",
                            "P_ASSERTED_IDENTITY_DISPLAY_NAME",
                            "P_ASSERTED_IDENTITY_USER_PART",
                            "P_PREFERRED_IDENTIFY_DISPLAY_NAME",
                            "P_PREFERRED_IDENTIFY_USER_PART",
                            "P_CALLED_PARTY_ID_DISPLAY_NAME",
                            "P_CALLED_PARTY_ID_USER_PART",
                            "DEFAULT"
                          ],
                          "description": "Inbound parameters:\n- `REQUEST_LINE_URI_USER_PART`:\n- `CONTACT_USER_PART`:\n- `TO_DISPLAY_NAME`:\n- `TO_USER_PART`:\n- `FROM_DISPLAY_NAME`:\n- `FROM_USER_PART`:\n- `REMOTE_PARTY_ID_CALLED_PARTY_DISPLAY_NAME`:\n- `REMOTE_PARTY_ID_CALLED_PARTY_USER_PART`:\n- `REMOTE_PARTY_ID_CALLING_PARTY_DISPLAY_NAME`:\n- `REMOTE_PARTY_ID_CALLING_PARTY_USER_PART`:\n- `P_ASSERTED_IDENTITY_DISPLAY_NAME`:\n- `P_ASSERTED_IDENTITY_USER_PART`:\n- `P_PREFERRED_IDENTIFY_DISPLAY_NAME`:\n- `P_PREFERRED_IDENTIFY_USER_PART`:\n- `P_CALLED_PARTY_ID_DISPLAY_NAME`:\n- `P_CALLED_PARTY_ID_USER_PART`:\n- `DEFAULT`:\n"
                        },
                        "called_num": {
                          "type": "string",
                          "enum": [
                            "REQUEST_LINE_URI_USER_PART",
                            "CONTACT_USER_PART",
                            "TO_DISPLAY_NAME",
                            "TO_USER_PART",
                            "FROM_DISPLAY_NAME",
                            "FROM_USER_PART",
                            "REMOTE_PARTY_ID_CALLED_PARTY_DISPLAY_NAME",
                            "REMOTE_PARTY_ID_CALLED_PARTY_USER_PART",
                            "REMOTE_PARTY_ID_CALLING_PARTY_DISPLAY_NAME",
                            "REMOTE_PARTY_ID_CALLING_PARTY_USER_PART",
                            "P_ASSERTED_IDENTITY_DISPLAY_NAME",
                            "P_ASSERTED_IDENTITY_USER_PART",
                            "P_PREFERRED_IDENTIFY_DISPLAY_NAME",
                            "P_PREFERRED_IDENTIFY_USER_PART",
                            "P_CALLED_PARTY_ID_DISPLAY_NAME",
                            "P_CALLED_PARTY_ID_USER_PART",
                            "DEFAULT"
                          ],
                          "description": "Inbound parameters:\n- `REQUEST_LINE_URI_USER_PART`:\n- `CONTACT_USER_PART`:\n- `TO_DISPLAY_NAME`:\n- `TO_USER_PART`:\n- `FROM_DISPLAY_NAME`:\n- `FROM_USER_PART`:\n- `REMOTE_PARTY_ID_CALLED_PARTY_DISPLAY_NAME`:\n- `REMOTE_PARTY_ID_CALLED_PARTY_USER_PART`:\n- `REMOTE_PARTY_ID_CALLING_PARTY_DISPLAY_NAME`:\n- `REMOTE_PARTY_ID_CALLING_PARTY_USER_PART`:\n- `P_ASSERTED_IDENTITY_DISPLAY_NAME`:\n- `P_ASSERTED_IDENTITY_USER_PART`:\n- `P_PREFERRED_IDENTIFY_DISPLAY_NAME`:\n- `P_PREFERRED_IDENTIFY_USER_PART`:\n- `P_CALLED_PARTY_ID_DISPLAY_NAME`:\n- `P_CALLED_PARTY_ID_USER_PART`:\n- `DEFAULT`:\n"
                        },
                        "privacy_types_supported": {
                          "type": "string",
                          "enum": [
                            "DEFAULT",
                            "NONE",
                            "ID",
                            "USER",
                            "HEADER",
                            "SESSION"
                          ],
                          "description": "Inbound parameters:\n- `DEFAULT`: leave default value.\n- `NONE`: No privacy required.\n- `ID`: id\n- `USER`: user\n- `HEADER`: header\n- `SESSION`: Media anonymization\n"
                        },
                        "enable_stir_shaken_validation": {
                          "type": "boolean",
                          "default": false,
                          "description": "Enable STIR/SHAKEN validation or not.\n"
                        },
                        "pai_header_parameter_name": {
                          "type": "string",
                          "default": "verstat",
                          "description": "The parameter name of PAI header.\n"
                        },
                        "drop_calls_with_verification_status": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "A collection of  verification status.   \nAllowed values: `No-TN-Validation`, `TN-Validation-Failed`, `TN-Validation-Passed-B`, `TN-Validation-Passed-C`, `TN-Validation-Failed-A`, `TN-Validation-Failed-B`, `TN-Validation-Failed-C`.\n"
                        },
                        "pass_api_header_to_uad": {
                          "type": "boolean",
                          "default": false,
                          "description": "Enable STIR/SHAKEN validation or not.\n"
                        }
                      }
                    },
                    "outbound_parameters": {
                      "type": "object",
                      "properties": {
                        "request_line_uri_user_part": {
                          "type": "object",
                          "properties": {
                            "value": {
                              "type": "string",
                              "enum": [
                                "AUTH_ID",
                                "CALLER_NUM",
                                "CALLED_NUM",
                                "CALLER_DISPLAY_NAME",
                                "OUTBOUND_CALLER_ID",
                                "ORIGINATOR_CALLER_ID",
                                "OUTBOUND_CALLER_ID_AND_ORIGINATOR_CALLER_ID",
                                "ANONYMOUS",
                                "DEFAULT",
                                "CUSTOM"
                              ],
                              "description": "Inbound parameters:\n- `AUTH_ID`:\n- `CALLER_NUM`:\n- `CALLED_NUM`:\n- `CALLER_DISPLAY_NAME`:\n- `OUTBOUND_CALLER_ID`:\n- `ORIGINATOR_CALLER_ID`:\n- `OUTBOUND_CALLER_ID_AND_ORIGINATOR_CALLER_ID`:\n- `ANONYMOUS`:\n- `DEFAULT`: leave default value.\n- `CUSTOM`:\n"
                            },
                            "custom_value": {
                              "type": "string",
                              "description": "Custom value for the field.\n"
                            }
                          }
                        },
                        "request_line_uri_host_part": {
                          "type": "object",
                          "properties": {
                            "value": {
                              "type": "string",
                              "enum": [
                                "TRUNK_HOST_PORT",
                                "OUT_HOST_PORT",
                                "CONTACT_URI",
                                "SIP_DOMAIN",
                                "DEFAULT",
                                "CUSTOM"
                              ],
                              "description": "Inbound parameters variable:\n- `TRUNK_HOST_PORT`:\n- `OUT_HOST_PORT`:\n- `CONTACT_URI`:\n- `SIP_DOMAIN`:\n- `DEFAULT`: leave default value.\n- `CUSTOM`:\n"
                            },
                            "custom_value": {
                              "type": "string",
                              "description": "Custom value for the field.\n"
                            }
                          }
                        },
                        "contact_user_part": {
                          "type": "object",
                          "properties": {
                            "value": {
                              "type": "string",
                              "enum": [
                                "AUTH_ID",
                                "CALLER_NUM",
                                "CALLED_NUM",
                                "CALLER_DISPLAY_NAME",
                                "OUTBOUND_CALLER_ID",
                                "ORIGINATOR_CALLER_ID",
                                "OUTBOUND_CALLER_ID_AND_ORIGINATOR_CALLER_ID",
                                "ANONYMOUS",
                                "DEFAULT",
                                "CUSTOM"
                              ],
                              "description": "Inbound parameters:\n- `AUTH_ID`:\n- `CALLER_NUM`:\n- `CALLED_NUM`:\n- `CALLER_DISPLAY_NAME`:\n- `OUTBOUND_CALLER_ID`:\n- `ORIGINATOR_CALLER_ID`:\n- `OUTBOUND_CALLER_ID_AND_ORIGINATOR_CALLER_ID`:\n- `ANONYMOUS`:\n- `DEFAULT`: leave default value.\n- `CUSTOM`:\n"
                            },
                            "custom_value": {
                              "type": "string",
                              "description": "Custom value for the field.\n"
                            }
                          }
                        },
                        "contact_host_part": {
                          "type": "object",
                          "properties": {
                            "value": {
                              "type": "string",
                              "enum": [
                                "TRUNK_HOST_PORT",
                                "OUT_HOST_PORT",
                                "CONTACT_URI",
                                "SIP_DOMAIN",
                                "DEFAULT",
                                "CUSTOM"
                              ],
                              "description": "Inbound parameters variable:\n- `TRUNK_HOST_PORT`:\n- `OUT_HOST_PORT`:\n- `CONTACT_URI`:\n- `SIP_DOMAIN`:\n- `DEFAULT`: leave default value.\n- `CUSTOM`:\n"
                            },
                            "custom_value": {
                              "type": "string",
                              "description": "Custom value for the field.\n"
                            }
                          }
                        },
                        "to_display_name": {
                          "type": "object",
                          "properties": {
                            "value": {
                              "type": "string",
                              "enum": [
                                "AUTH_ID",
                                "CALLER_NUM",
                                "CALLED_NUM",
                                "CALLER_DISPLAY_NAME",
                                "OUTBOUND_CALLER_ID",
                                "ORIGINATOR_CALLER_ID",
                                "OUTBOUND_CALLER_ID_AND_ORIGINATOR_CALLER_ID",
                                "ANONYMOUS",
                                "DEFAULT",
                                "CUSTOM"
                              ],
                              "description": "Inbound parameters:\n- `AUTH_ID`:\n- `CALLER_NUM`:\n- `CALLED_NUM`:\n- `CALLER_DISPLAY_NAME`:\n- `OUTBOUND_CALLER_ID`:\n- `ORIGINATOR_CALLER_ID`:\n- `OUTBOUND_CALLER_ID_AND_ORIGINATOR_CALLER_ID`:\n- `ANONYMOUS`:\n- `DEFAULT`: leave default value.\n- `CUSTOM`:\n"
                            },
                            "custom_value": {
                              "type": "string",
                              "description": "Custom value for the field.\n"
                            }
                          }
                        },
                        "to_user_part": {
                          "type": "object",
                          "properties": {
                            "value": {
                              "type": "string",
                              "enum": [
                                "AUTH_ID",
                                "CALLER_NUM",
                                "CALLED_NUM",
                                "CALLER_DISPLAY_NAME",
                                "OUTBOUND_CALLER_ID",
                                "ORIGINATOR_CALLER_ID",
                                "OUTBOUND_CALLER_ID_AND_ORIGINATOR_CALLER_ID",
                                "ANONYMOUS",
                                "DEFAULT",
                                "CUSTOM"
                              ],
                              "description": "Inbound parameters:\n- `AUTH_ID`:\n- `CALLER_NUM`:\n- `CALLED_NUM`:\n- `CALLER_DISPLAY_NAME`:\n- `OUTBOUND_CALLER_ID`:\n- `ORIGINATOR_CALLER_ID`:\n- `OUTBOUND_CALLER_ID_AND_ORIGINATOR_CALLER_ID`:\n- `ANONYMOUS`:\n- `DEFAULT`: leave default value.\n- `CUSTOM`:\n"
                            },
                            "custom_value": {
                              "type": "string",
                              "description": "Custom value for the field.\n"
                            }
                          }
                        },
                        "to_host_part": {
                          "type": "object",
                          "properties": {
                            "value": {
                              "type": "string",
                              "enum": [
                                "TRUNK_HOST_PORT",
                                "OUT_HOST_PORT",
                                "CONTACT_URI",
                                "SIP_DOMAIN",
                                "DEFAULT",
                                "CUSTOM"
                              ],
                              "description": "Inbound parameters variable:\n- `TRUNK_HOST_PORT`:\n- `OUT_HOST_PORT`:\n- `CONTACT_URI`:\n- `SIP_DOMAIN`:\n- `DEFAULT`: leave default value.\n- `CUSTOM`:\n"
                            },
                            "custom_value": {
                              "type": "string",
                              "description": "Custom value for the field.\n"
                            }
                          }
                        },
                        "from_display_name": {
                          "type": "object",
                          "properties": {
                            "value": {
                              "type": "string",
                              "enum": [
                                "AUTH_ID",
                                "CALLER_NUM",
                                "CALLED_NUM",
                                "CALLER_DISPLAY_NAME",
                                "OUTBOUND_CALLER_ID",
                                "ORIGINATOR_CALLER_ID",
                                "OUTBOUND_CALLER_ID_AND_ORIGINATOR_CALLER_ID",
                                "ANONYMOUS",
                                "DEFAULT",
                                "CUSTOM"
                              ],
                              "description": "Inbound parameters:\n- `AUTH_ID`:\n- `CALLER_NUM`:\n- `CALLED_NUM`:\n- `CALLER_DISPLAY_NAME`:\n- `OUTBOUND_CALLER_ID`:\n- `ORIGINATOR_CALLER_ID`:\n- `OUTBOUND_CALLER_ID_AND_ORIGINATOR_CALLER_ID`:\n- `ANONYMOUS`:\n- `DEFAULT`: leave default value.\n- `CUSTOM`:\n"
                            },
                            "custom_value": {
                              "type": "string",
                              "description": "Custom value for the field.\n"
                            }
                          }
                        },
                        "from_user_part": {
                          "type": "object",
                          "properties": {
                            "value": {
                              "type": "string",
                              "enum": [
                                "AUTH_ID",
                                "CALLER_NUM",
                                "CALLED_NUM",
                                "CALLER_DISPLAY_NAME",
                                "OUTBOUND_CALLER_ID",
                                "ORIGINATOR_CALLER_ID",
                                "OUTBOUND_CALLER_ID_AND_ORIGINATOR_CALLER_ID",
                                "ANONYMOUS",
                                "DEFAULT",
                                "CUSTOM"
                              ],
                              "description": "Inbound parameters:\n- `AUTH_ID`:\n- `CALLER_NUM`:\n- `CALLED_NUM`:\n- `CALLER_DISPLAY_NAME`:\n- `OUTBOUND_CALLER_ID`:\n- `ORIGINATOR_CALLER_ID`:\n- `OUTBOUND_CALLER_ID_AND_ORIGINATOR_CALLER_ID`:\n- `ANONYMOUS`:\n- `DEFAULT`: leave default value.\n- `CUSTOM`:\n"
                            },
                            "custom_value": {
                              "type": "string",
                              "description": "Custom value for the field.\n"
                            }
                          }
                        },
                        "from_host_part": {
                          "type": "object",
                          "properties": {
                            "value": {
                              "type": "string",
                              "enum": [
                                "TRUNK_HOST_PORT",
                                "OUT_HOST_PORT",
                                "CONTACT_URI",
                                "SIP_DOMAIN",
                                "DEFAULT",
                                "CUSTOM"
                              ],
                              "description": "Inbound parameters variable:\n- `TRUNK_HOST_PORT`:\n- `OUT_HOST_PORT`:\n- `CONTACT_URI`:\n- `SIP_DOMAIN`:\n- `DEFAULT`: leave default value.\n- `CUSTOM`:\n"
                            },
                            "custom_value": {
                              "type": "string",
                              "description": "Custom value for the field.\n"
                            }
                          }
                        },
                        "remote_party_id_called_party_display_name": {
                          "type": "object",
                          "properties": {
                            "value": {
                              "type": "string",
                              "enum": [
                                "AUTH_ID",
                                "CALLER_NUM",
                                "CALLED_NUM",
                                "CALLER_DISPLAY_NAME",
                                "OUTBOUND_CALLER_ID",
                                "ORIGINATOR_CALLER_ID",
                                "OUTBOUND_CALLER_ID_AND_ORIGINATOR_CALLER_ID",
                                "ANONYMOUS",
                                "DEFAULT",
                                "CUSTOM"
                              ],
                              "description": "Inbound parameters:\n- `AUTH_ID`:\n- `CALLER_NUM`:\n- `CALLED_NUM`:\n- `CALLER_DISPLAY_NAME`:\n- `OUTBOUND_CALLER_ID`:\n- `ORIGINATOR_CALLER_ID`:\n- `OUTBOUND_CALLER_ID_AND_ORIGINATOR_CALLER_ID`:\n- `ANONYMOUS`:\n- `DEFAULT`: leave default value.\n- `CUSTOM`:\n"
                            },
                            "custom_value": {
                              "type": "string",
                              "description": "Custom value for the field.\n"
                            }
                          }
                        },
                        "remote_party_id_called_party_user_part": {
                          "type": "object",
                          "properties": {
                            "value": {
                              "type": "string",
                              "enum": [
                                "AUTH_ID",
                                "CALLER_NUM",
                                "CALLED_NUM",
                                "CALLER_DISPLAY_NAME",
                                "OUTBOUND_CALLER_ID",
                                "ORIGINATOR_CALLER_ID",
                                "OUTBOUND_CALLER_ID_AND_ORIGINATOR_CALLER_ID",
                                "ANONYMOUS",
                                "DEFAULT",
                                "CUSTOM"
                              ],
                              "description": "Inbound parameters:\n- `AUTH_ID`:\n- `CALLER_NUM`:\n- `CALLED_NUM`:\n- `CALLER_DISPLAY_NAME`:\n- `OUTBOUND_CALLER_ID`:\n- `ORIGINATOR_CALLER_ID`:\n- `OUTBOUND_CALLER_ID_AND_ORIGINATOR_CALLER_ID`:\n- `ANONYMOUS`:\n- `DEFAULT`: leave default value.\n- `CUSTOM`:\n"
                            },
                            "custom_value": {
                              "type": "string",
                              "description": "Custom value for the field.\n"
                            }
                          }
                        },
                        "remote_party_id_called_party_host_part": {
                          "type": "object",
                          "properties": {
                            "value": {
                              "type": "string",
                              "enum": [
                                "TRUNK_HOST_PORT",
                                "OUT_HOST_PORT",
                                "CONTACT_URI",
                                "SIP_DOMAIN",
                                "DEFAULT",
                                "CUSTOM"
                              ],
                              "description": "Inbound parameters variable:\n- `TRUNK_HOST_PORT`:\n- `OUT_HOST_PORT`:\n- `CONTACT_URI`:\n- `SIP_DOMAIN`:\n- `DEFAULT`: leave default value.\n- `CUSTOM`:\n"
                            },
                            "custom_value": {
                              "type": "string",
                              "description": "Custom value for the field.\n"
                            }
                          }
                        },
                        "remote_party_id_calling_party_display_name": {
                          "type": "object",
                          "properties": {
                            "value": {
                              "type": "string",
                              "enum": [
                                "AUTH_ID",
                                "CALLER_NUM",
                                "CALLED_NUM",
                                "CALLER_DISPLAY_NAME",
                                "OUTBOUND_CALLER_ID",
                                "ORIGINATOR_CALLER_ID",
                                "OUTBOUND_CALLER_ID_AND_ORIGINATOR_CALLER_ID",
                                "ANONYMOUS",
                                "DEFAULT",
                                "CUSTOM"
                              ],
                              "description": "Inbound parameters:\n- `AUTH_ID`:\n- `CALLER_NUM`:\n- `CALLED_NUM`:\n- `CALLER_DISPLAY_NAME`:\n- `OUTBOUND_CALLER_ID`:\n- `ORIGINATOR_CALLER_ID`:\n- `OUTBOUND_CALLER_ID_AND_ORIGINATOR_CALLER_ID`:\n- `ANONYMOUS`:\n- `DEFAULT`: leave default value.\n- `CUSTOM`:\n"
                            },
                            "custom_value": {
                              "type": "string",
                              "description": "Custom value for the field.\n"
                            }
                          }
                        },
                        "remote_party_id_calling_party_user_part": {
                          "type": "object",
                          "properties": {
                            "value": {
                              "type": "string",
                              "enum": [
                                "AUTH_ID",
                                "CALLER_NUM",
                                "CALLED_NUM",
                                "CALLER_DISPLAY_NAME",
                                "OUTBOUND_CALLER_ID",
                                "ORIGINATOR_CALLER_ID",
                                "OUTBOUND_CALLER_ID_AND_ORIGINATOR_CALLER_ID",
                                "ANONYMOUS",
                                "DEFAULT",
                                "CUSTOM"
                              ],
                              "description": "Inbound parameters:\n- `AUTH_ID`:\n- `CALLER_NUM`:\n- `CALLED_NUM`:\n- `CALLER_DISPLAY_NAME`:\n- `OUTBOUND_CALLER_ID`:\n- `ORIGINATOR_CALLER_ID`:\n- `OUTBOUND_CALLER_ID_AND_ORIGINATOR_CALLER_ID`:\n- `ANONYMOUS`:\n- `DEFAULT`: leave default value.\n- `CUSTOM`:\n"
                            },
                            "custom_value": {
                              "type": "string",
                              "description": "Custom value for the field.\n"
                            }
                          }
                        },
                        "remote_party_id_calling_party_host_part": {
                          "type": "object",
                          "properties": {
                            "value": {
                              "type": "string",
                              "enum": [
                                "TRUNK_HOST_PORT",
                                "OUT_HOST_PORT",
                                "CONTACT_URI",
                                "SIP_DOMAIN",
                                "DEFAULT",
                                "CUSTOM"
                              ],
                              "description": "Inbound parameters variable:\n- `TRUNK_HOST_PORT`:\n- `OUT_HOST_PORT`:\n- `CONTACT_URI`:\n- `SIP_DOMAIN`:\n- `DEFAULT`: leave default value.\n- `CUSTOM`:\n"
                            },
                            "custom_value": {
                              "type": "string",
                              "description": "Custom value for the field.\n"
                            }
                          }
                        },
                        "p_asserted_identity_display_name": {
                          "type": "object",
                          "properties": {
                            "value": {
                              "type": "string",
                              "enum": [
                                "AUTH_ID",
                                "CALLER_NUM",
                                "CALLED_NUM",
                                "CALLER_DISPLAY_NAME",
                                "OUTBOUND_CALLER_ID",
                                "ORIGINATOR_CALLER_ID",
                                "OUTBOUND_CALLER_ID_AND_ORIGINATOR_CALLER_ID",
                                "ANONYMOUS",
                                "DEFAULT",
                                "CUSTOM"
                              ],
                              "description": "Inbound parameters:\n- `AUTH_ID`:\n- `CALLER_NUM`:\n- `CALLED_NUM`:\n- `CALLER_DISPLAY_NAME`:\n- `OUTBOUND_CALLER_ID`:\n- `ORIGINATOR_CALLER_ID`:\n- `OUTBOUND_CALLER_ID_AND_ORIGINATOR_CALLER_ID`:\n- `ANONYMOUS`:\n- `DEFAULT`: leave default value.\n- `CUSTOM`:\n"
                            },
                            "custom_value": {
                              "type": "string",
                              "description": "Custom value for the field.\n"
                            }
                          }
                        },
                        "p_asserted_identity_user_part": {
                          "type": "object",
                          "properties": {
                            "value": {
                              "type": "string",
                              "enum": [
                                "AUTH_ID",
                                "CALLER_NUM",
                                "CALLED_NUM",
                                "CALLER_DISPLAY_NAME",
                                "OUTBOUND_CALLER_ID",
                                "ORIGINATOR_CALLER_ID",
                                "OUTBOUND_CALLER_ID_AND_ORIGINATOR_CALLER_ID",
                                "ANONYMOUS",
                                "DEFAULT",
                                "CUSTOM"
                              ],
                              "description": "Inbound parameters:\n- `AUTH_ID`:\n- `CALLER_NUM`:\n- `CALLED_NUM`:\n- `CALLER_DISPLAY_NAME`:\n- `OUTBOUND_CALLER_ID`:\n- `ORIGINATOR_CALLER_ID`:\n- `OUTBOUND_CALLER_ID_AND_ORIGINATOR_CALLER_ID`:\n- `ANONYMOUS`:\n- `DEFAULT`: leave default value.\n- `CUSTOM`:\n"
                            },
                            "custom_value": {
                              "type": "string",
                              "description": "Custom value for the field.\n"
                            }
                          }
                        },
                        "p_asserted_identity_host_part": {
                          "type": "object",
                          "properties": {
                            "value": {
                              "type": "string",
                              "enum": [
                                "TRUNK_HOST_PORT",
                                "OUT_HOST_PORT",
                                "CONTACT_URI",
                                "SIP_DOMAIN",
                                "DEFAULT",
                                "CUSTOM"
                              ],
                              "description": "Inbound parameters variable:\n- `TRUNK_HOST_PORT`:\n- `OUT_HOST_PORT`:\n- `CONTACT_URI`:\n- `SIP_DOMAIN`:\n- `DEFAULT`: leave default value.\n- `CUSTOM`:\n"
                            },
                            "custom_value": {
                              "type": "string",
                              "description": "Custom value for the field.\n"
                            }
                          }
                        },
                        "p_preferred_identify_display_name": {
                          "type": "object",
                          "properties": {
                            "value": {
                              "type": "string",
                              "enum": [
                                "AUTH_ID",
                                "CALLER_NUM",
                                "CALLED_NUM",
                                "CALLER_DISPLAY_NAME",
                                "OUTBOUND_CALLER_ID",
                                "ORIGINATOR_CALLER_ID",
                                "OUTBOUND_CALLER_ID_AND_ORIGINATOR_CALLER_ID",
                                "ANONYMOUS",
                                "DEFAULT",
                                "CUSTOM"
                              ],
                              "description": "Inbound parameters:\n- `AUTH_ID`:\n- `CALLER_NUM`:\n- `CALLED_NUM`:\n- `CALLER_DISPLAY_NAME`:\n- `OUTBOUND_CALLER_ID`:\n- `ORIGINATOR_CALLER_ID`:\n- `OUTBOUND_CALLER_ID_AND_ORIGINATOR_CALLER_ID`:\n- `ANONYMOUS`:\n- `DEFAULT`: leave default value.\n- `CUSTOM`:\n"
                            },
                            "custom_value": {
                              "type": "string",
                              "description": "Custom value for the field.\n"
                            }
                          }
                        },
                        "p_preferred_identify_user_part": {
                          "type": "object",
                          "properties": {
                            "value": {
                              "type": "string",
                              "enum": [
                                "AUTH_ID",
                                "CALLER_NUM",
                                "CALLED_NUM",
                                "CALLER_DISPLAY_NAME",
                                "OUTBOUND_CALLER_ID",
                                "ORIGINATOR_CALLER_ID",
                                "OUTBOUND_CALLER_ID_AND_ORIGINATOR_CALLER_ID",
                                "ANONYMOUS",
                                "DEFAULT",
                                "CUSTOM"
                              ],
                              "description": "Inbound parameters:\n- `AUTH_ID`:\n- `CALLER_NUM`:\n- `CALLED_NUM`:\n- `CALLER_DISPLAY_NAME`:\n- `OUTBOUND_CALLER_ID`:\n- `ORIGINATOR_CALLER_ID`:\n- `OUTBOUND_CALLER_ID_AND_ORIGINATOR_CALLER_ID`:\n- `ANONYMOUS`:\n- `DEFAULT`: leave default value.\n- `CUSTOM`:\n"
                            },
                            "custom_value": {
                              "type": "string",
                              "description": "Custom value for the field.\n"
                            }
                          }
                        },
                        "p_preferred_identify_host_part": {
                          "type": "object",
                          "properties": {
                            "value": {
                              "type": "string",
                              "enum": [
                                "TRUNK_HOST_PORT",
                                "OUT_HOST_PORT",
                                "CONTACT_URI",
                                "SIP_DOMAIN",
                                "DEFAULT",
                                "CUSTOM"
                              ],
                              "description": "Inbound parameters variable:\n- `TRUNK_HOST_PORT`:\n- `OUT_HOST_PORT`:\n- `CONTACT_URI`:\n- `SIP_DOMAIN`:\n- `DEFAULT`: leave default value.\n- `CUSTOM`:\n"
                            },
                            "custom_value": {
                              "type": "string",
                              "description": "Custom value for the field.\n"
                            }
                          }
                        },
                        "p_called_party_id_display_name": {
                          "type": "object",
                          "properties": {
                            "value": {
                              "type": "string",
                              "enum": [
                                "AUTH_ID",
                                "CALLER_NUM",
                                "CALLED_NUM",
                                "CALLER_DISPLAY_NAME",
                                "OUTBOUND_CALLER_ID",
                                "ORIGINATOR_CALLER_ID",
                                "OUTBOUND_CALLER_ID_AND_ORIGINATOR_CALLER_ID",
                                "ANONYMOUS",
                                "DEFAULT",
                                "CUSTOM"
                              ],
                              "description": "Inbound parameters:\n- `AUTH_ID`:\n- `CALLER_NUM`:\n- `CALLED_NUM`:\n- `CALLER_DISPLAY_NAME`:\n- `OUTBOUND_CALLER_ID`:\n- `ORIGINATOR_CALLER_ID`:\n- `OUTBOUND_CALLER_ID_AND_ORIGINATOR_CALLER_ID`:\n- `ANONYMOUS`:\n- `DEFAULT`: leave default value.\n- `CUSTOM`:\n"
                            },
                            "custom_value": {
                              "type": "string",
                              "description": "Custom value for the field.\n"
                            }
                          }
                        },
                        "p_called_party_id_user_part": {
                          "type": "object",
                          "properties": {
                            "value": {
                              "type": "string",
                              "enum": [
                                "AUTH_ID",
                                "CALLER_NUM",
                                "CALLED_NUM",
                                "CALLER_DISPLAY_NAME",
                                "OUTBOUND_CALLER_ID",
                                "ORIGINATOR_CALLER_ID",
                                "OUTBOUND_CALLER_ID_AND_ORIGINATOR_CALLER_ID",
                                "ANONYMOUS",
                                "DEFAULT",
                                "CUSTOM"
                              ],
                              "description": "Inbound parameters:\n- `AUTH_ID`:\n- `CALLER_NUM`:\n- `CALLED_NUM`:\n- `CALLER_DISPLAY_NAME`:\n- `OUTBOUND_CALLER_ID`:\n- `ORIGINATOR_CALLER_ID`:\n- `OUTBOUND_CALLER_ID_AND_ORIGINATOR_CALLER_ID`:\n- `ANONYMOUS`:\n- `DEFAULT`: leave default value.\n- `CUSTOM`:\n"
                            },
                            "custom_value": {
                              "type": "string",
                              "description": "Custom value for the field.\n"
                            }
                          }
                        },
                        "p_called_party_id_host_part": {
                          "type": "object",
                          "properties": {
                            "value": {
                              "type": "string",
                              "enum": [
                                "TRUNK_HOST_PORT",
                                "OUT_HOST_PORT",
                                "CONTACT_URI",
                                "SIP_DOMAIN",
                                "DEFAULT",
                                "CUSTOM"
                              ],
                              "description": "Inbound parameters variable:\n- `TRUNK_HOST_PORT`:\n- `OUT_HOST_PORT`:\n- `CONTACT_URI`:\n- `SIP_DOMAIN`:\n- `DEFAULT`: leave default value.\n- `CUSTOM`:\n"
                            },
                            "custom_value": {
                              "type": "string",
                              "description": "Custom value for the field.\n"
                            }
                          }
                        },
                        "privacy_types_supported": {
                          "type": "string",
                          "enum": [
                            "DEFAULT",
                            "NONE",
                            "ID",
                            "USER",
                            "HEADER",
                            "SESSION"
                          ],
                          "description": "Inbound parameters:\n- `DEFAULT`: leave default value.\n- `NONE`: No privacy required.\n- `ID`: id\n- `USER`: user\n- `HEADER`: header\n- `SESSION`: Media anonymization\n"
                        }
                      }
                    },
                    "shared": {
                      "type": "boolean",
                      "description": "The flag of whether the trunk is shared.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "id": null,
                      "name": null,
                      "enabled": null,
                      "brand": null,
                      "auth_mode": null,
                      "transport": null,
                      "hostname": null,
                      "port": null,
                      "auth_id": null,
                      "username": null,
                      "registration": null,
                      "register_interval": null,
                      "outbound_server": null,
                      "outbound_server_port": null,
                      "inlan": null,
                      "single_via_header": null,
                      "rewrite_via_ip": null,
                      "verify_port": null,
                      "keep_alive": null,
                      "keep_alive_interval": null,
                      "concurrency": null,
                      "additional_ips": null,
                      "adjust_sdp_direction": null,
                      "remove_srtp_info": true,
                      "remove_plus_prefix": false,
                      "stir_shaken_signature_required": null,
                      "tel_uri_scheme_for_request_line": null,
                      "tel_uri_scheme_for_to_header": null,
                      "did_numbers": null,
                      "inbound_parameters": null,
                      "outbound_parameters": null,
                      "shared": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "post": {
        "tags": [
          "Trunk"
        ],
        "operationId": "updateProvider",
        "x-category": "trunks",
        "x-subcategory": "trunks",
        "x-permissions": [
          "Trunk.FullAccess"
        ],
        "summary": "Update provider",
        "description": "Update properties of provider by it's unique ID.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of trunk.\n"
            },
            "description": "The unique ID of the provider."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64,
                    "description": "The name of the trunk.\n"
                  },
                  "enabled": {
                    "type": "boolean",
                    "default": true,
                    "description": "Whether to enable the provider.\n"
                  },
                  "transport": {
                    "type": "string",
                    "enum": [
                      "UDP",
                      "TCP",
                      "TLS"
                    ],
                    "description": "The trunk transport protocol:  \nCan be either:  \n- `UDP`:\n- `TCP`:\n- `TLS`:\n"
                  },
                  "hostname": {
                    "allOf": [
                      {
                        "type": "string",
                        "description": "Server hostname or IP address\n"
                      }
                    ],
                    "description": "The hostname of trunk.\n"
                  },
                  "port": {
                    "allOf": [
                      {
                        "type": "integer",
                        "format": "int32",
                        "minimum": 0,
                        "maximum": 65535,
                        "example": 80,
                        "description": "A port number is a 16-bit unsigned integer, thus ranging from 0 to 65535.\nFor TCP, port number 0 is reserved and cannot be used, while for UDP, the source port is optional and a value of zero means no port\n"
                      }
                    ],
                    "description": "The port of trunk.\n"
                  },
                  "auth_id": {
                    "type": "string",
                    "maxLength": 64,
                    "description": "Authentication ID, i.e. SIP username.\n"
                  },
                  "username": {
                    "type": "string",
                    "maxLength": 64,
                    "description": "Authentication username.\n"
                  },
                  "password": {
                    "type": "string",
                    "description": "Password for authentication.\n"
                  },
                  "registration": {
                    "type": "boolean",
                    "default": true,
                    "description": "Whether registration is required.\n"
                  },
                  "register_interval": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 0,
                    "default": 600,
                    "description": "Interval for registry refreshment, in seconds.\n"
                  },
                  "outbound_server": {
                    "type": "string",
                    "description": "The outbound server hostname of the trunk.\n"
                  },
                  "outbound_server_port": {
                    "allOf": [
                      {
                        "type": "integer",
                        "format": "int32",
                        "minimum": 0,
                        "maximum": 65535,
                        "example": 80,
                        "description": "A port number is a 16-bit unsigned integer, thus ranging from 0 to 65535.\nFor TCP, port number 0 is reserved and cannot be used, while for UDP, the source port is optional and a value of zero means no port\n"
                      }
                    ],
                    "description": "The outbound server port of the trunk.\n"
                  },
                  "inlan": {
                    "type": "boolean",
                    "default": false,
                    "description": "Whether the trunk under LAN or not.\n"
                  },
                  "single_via_header": {
                    "type": "boolean",
                    "default": true,
                    "description": "Whether this trunk is only accept single Via SIP header or not.\n"
                  },
                  "rewrite_via_ip": {
                    "type": "boolean",
                    "default": true,
                    "description": "Rewrite the host IP of Via header by public IP when sending the request to trunk.\n"
                  },
                  "verify_port": {
                    "type": "boolean",
                    "default": true,
                    "description": "Verify the port when receiving SIP messages from trunk\n"
                  },
                  "keep_alive": {
                    "type": "boolean",
                    "default": true,
                    "description": "Send `OPTIONS` message for keep alive.\n"
                  },
                  "keep_alive_interval": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 0,
                    "default": 360,
                    "description": "Keep alive message sending interval (seconds).\n"
                  },
                  "concurrency": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 0,
                    "description": "The max number of concurrent calls.\n"
                  },
                  "additional_ips": {
                    "type": "string",
                    "description": "The additional IP addresses of provider.   \nA semicolon-separated list of IP addresses in CIDR format.   \nFor example: 192.0.2.0/24;192.0.2.0/32 as defined in RFC 4632 and RFC 4291.\n"
                  },
                  "adjust_sdp_direction": {
                    "type": "boolean",
                    "default": false,
                    "description": "Adjust the SDP direction for call hold.\n"
                  },
                  "remove_srtp_info": {
                    "type": "boolean",
                    "default": true,
                    "description": "Remove crypto line in the SDP.\n"
                  },
                  "remove_plus_prefix": {
                    "type": "boolean",
                    "default": true,
                    "description": "Remove the \"+\" prefix from the called number on outbound calls.\n"
                  },
                  "stir_shaken_signature_required": {
                    "type": "boolean",
                    "default": false,
                    "description": "Whether to enable STIR/SHAKEN signature.\n"
                  },
                  "tel_uri_scheme_for_request_line": {
                    "type": "boolean",
                    "default": false,
                    "description": "Whether to Use the Tel URI scheme for the Request Line.\n"
                  },
                  "tel_uri_scheme_for_to_header": {
                    "type": "boolean",
                    "default": false,
                    "description": "Whether to Use the Tel URI scheme for the To header.\n"
                  },
                  "did_numbers": {
                    "type": "string",
                    "description": "The semicolon-separated list of DID/DDI pool number range or DID/DDI number.\nAssign a DID/DDI pool number range or DID/DDI number to the tenant.\nFor example: 3000;12000-18000.\nThe DID/DDI pool number range should not overlap with other tenant DID/DDI pool number ranges and numbers.\n"
                  },
                  "inbound_parameters": {
                    "type": "object",
                    "properties": {
                      "caller_num": {
                        "type": "string",
                        "enum": [
                          "REQUEST_LINE_URI_USER_PART",
                          "CONTACT_USER_PART",
                          "TO_DISPLAY_NAME",
                          "TO_USER_PART",
                          "FROM_DISPLAY_NAME",
                          "FROM_USER_PART",
                          "REMOTE_PARTY_ID_CALLED_PARTY_DISPLAY_NAME",
                          "REMOTE_PARTY_ID_CALLED_PARTY_USER_PART",
                          "REMOTE_PARTY_ID_CALLING_PARTY_DISPLAY_NAME",
                          "REMOTE_PARTY_ID_CALLING_PARTY_USER_PART",
                          "P_ASSERTED_IDENTITY_DISPLAY_NAME",
                          "P_ASSERTED_IDENTITY_USER_PART",
                          "P_PREFERRED_IDENTIFY_DISPLAY_NAME",
                          "P_PREFERRED_IDENTIFY_USER_PART",
                          "P_CALLED_PARTY_ID_DISPLAY_NAME",
                          "P_CALLED_PARTY_ID_USER_PART",
                          "DEFAULT"
                        ],
                        "description": "Inbound parameters:\n- `REQUEST_LINE_URI_USER_PART`:\n- `CONTACT_USER_PART`:\n- `TO_DISPLAY_NAME`:\n- `TO_USER_PART`:\n- `FROM_DISPLAY_NAME`:\n- `FROM_USER_PART`:\n- `REMOTE_PARTY_ID_CALLED_PARTY_DISPLAY_NAME`:\n- `REMOTE_PARTY_ID_CALLED_PARTY_USER_PART`:\n- `REMOTE_PARTY_ID_CALLING_PARTY_DISPLAY_NAME`:\n- `REMOTE_PARTY_ID_CALLING_PARTY_USER_PART`:\n- `P_ASSERTED_IDENTITY_DISPLAY_NAME`:\n- `P_ASSERTED_IDENTITY_USER_PART`:\n- `P_PREFERRED_IDENTIFY_DISPLAY_NAME`:\n- `P_PREFERRED_IDENTIFY_USER_PART`:\n- `P_CALLED_PARTY_ID_DISPLAY_NAME`:\n- `P_CALLED_PARTY_ID_USER_PART`:\n- `DEFAULT`:\n"
                      },
                      "caller_display_name": {
                        "type": "string",
                        "enum": [
                          "REQUEST_LINE_URI_USER_PART",
                          "CONTACT_USER_PART",
                          "TO_DISPLAY_NAME",
                          "TO_USER_PART",
                          "FROM_DISPLAY_NAME",
                          "FROM_USER_PART",
                          "REMOTE_PARTY_ID_CALLED_PARTY_DISPLAY_NAME",
                          "REMOTE_PARTY_ID_CALLED_PARTY_USER_PART",
                          "REMOTE_PARTY_ID_CALLING_PARTY_DISPLAY_NAME",
                          "REMOTE_PARTY_ID_CALLING_PARTY_USER_PART",
                          "P_ASSERTED_IDENTITY_DISPLAY_NAME",
                          "P_ASSERTED_IDENTITY_USER_PART",
                          "P_PREFERRED_IDENTIFY_DISPLAY_NAME",
                          "P_PREFERRED_IDENTIFY_USER_PART",
                          "P_CALLED_PARTY_ID_DISPLAY_NAME",
                          "P_CALLED_PARTY_ID_USER_PART",
                          "DEFAULT"
                        ],
                        "description": "Inbound parameters:\n- `REQUEST_LINE_URI_USER_PART`:\n- `CONTACT_USER_PART`:\n- `TO_DISPLAY_NAME`:\n- `TO_USER_PART`:\n- `FROM_DISPLAY_NAME`:\n- `FROM_USER_PART`:\n- `REMOTE_PARTY_ID_CALLED_PARTY_DISPLAY_NAME`:\n- `REMOTE_PARTY_ID_CALLED_PARTY_USER_PART`:\n- `REMOTE_PARTY_ID_CALLING_PARTY_DISPLAY_NAME`:\n- `REMOTE_PARTY_ID_CALLING_PARTY_USER_PART`:\n- `P_ASSERTED_IDENTITY_DISPLAY_NAME`:\n- `P_ASSERTED_IDENTITY_USER_PART`:\n- `P_PREFERRED_IDENTIFY_DISPLAY_NAME`:\n- `P_PREFERRED_IDENTIFY_USER_PART`:\n- `P_CALLED_PARTY_ID_DISPLAY_NAME`:\n- `P_CALLED_PARTY_ID_USER_PART`:\n- `DEFAULT`:\n"
                      },
                      "called_num": {
                        "type": "string",
                        "enum": [
                          "REQUEST_LINE_URI_USER_PART",
                          "CONTACT_USER_PART",
                          "TO_DISPLAY_NAME",
                          "TO_USER_PART",
                          "FROM_DISPLAY_NAME",
                          "FROM_USER_PART",
                          "REMOTE_PARTY_ID_CALLED_PARTY_DISPLAY_NAME",
                          "REMOTE_PARTY_ID_CALLED_PARTY_USER_PART",
                          "REMOTE_PARTY_ID_CALLING_PARTY_DISPLAY_NAME",
                          "REMOTE_PARTY_ID_CALLING_PARTY_USER_PART",
                          "P_ASSERTED_IDENTITY_DISPLAY_NAME",
                          "P_ASSERTED_IDENTITY_USER_PART",
                          "P_PREFERRED_IDENTIFY_DISPLAY_NAME",
                          "P_PREFERRED_IDENTIFY_USER_PART",
                          "P_CALLED_PARTY_ID_DISPLAY_NAME",
                          "P_CALLED_PARTY_ID_USER_PART",
                          "DEFAULT"
                        ],
                        "description": "Inbound parameters:\n- `REQUEST_LINE_URI_USER_PART`:\n- `CONTACT_USER_PART`:\n- `TO_DISPLAY_NAME`:\n- `TO_USER_PART`:\n- `FROM_DISPLAY_NAME`:\n- `FROM_USER_PART`:\n- `REMOTE_PARTY_ID_CALLED_PARTY_DISPLAY_NAME`:\n- `REMOTE_PARTY_ID_CALLED_PARTY_USER_PART`:\n- `REMOTE_PARTY_ID_CALLING_PARTY_DISPLAY_NAME`:\n- `REMOTE_PARTY_ID_CALLING_PARTY_USER_PART`:\n- `P_ASSERTED_IDENTITY_DISPLAY_NAME`:\n- `P_ASSERTED_IDENTITY_USER_PART`:\n- `P_PREFERRED_IDENTIFY_DISPLAY_NAME`:\n- `P_PREFERRED_IDENTIFY_USER_PART`:\n- `P_CALLED_PARTY_ID_DISPLAY_NAME`:\n- `P_CALLED_PARTY_ID_USER_PART`:\n- `DEFAULT`:\n"
                      },
                      "privacy_types_supported": {
                        "type": "string",
                        "enum": [
                          "DEFAULT",
                          "NONE",
                          "ID",
                          "USER",
                          "HEADER",
                          "SESSION"
                        ],
                        "description": "Inbound parameters:\n- `DEFAULT`: leave default value.\n- `NONE`: No privacy required.\n- `ID`: id\n- `USER`: user\n- `HEADER`: header\n- `SESSION`: Media anonymization\n"
                      },
                      "enable_stir_shaken_validation": {
                        "type": "boolean",
                        "default": false,
                        "description": "Enable STIR/SHAKEN validation or not.\n"
                      },
                      "pai_header_parameter_name": {
                        "type": "string",
                        "default": "verstat",
                        "description": "The parameter name of PAI header.\n"
                      },
                      "drop_calls_with_verification_status": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        },
                        "description": "A collection of  verification status.   \nAllowed values: `No-TN-Validation`, `TN-Validation-Failed`, `TN-Validation-Passed-B`, `TN-Validation-Passed-C`, `TN-Validation-Failed-A`, `TN-Validation-Failed-B`, `TN-Validation-Failed-C`.\n"
                      },
                      "pass_api_header_to_uad": {
                        "type": "boolean",
                        "default": false,
                        "description": "Enable STIR/SHAKEN validation or not.\n"
                      }
                    }
                  },
                  "outbound_parameters": {
                    "type": "object",
                    "properties": {
                      "request_line_uri_user_part": {
                        "type": "object",
                        "properties": {
                          "value": {
                            "type": "string",
                            "enum": [
                              "AUTH_ID",
                              "CALLER_NUM",
                              "CALLED_NUM",
                              "CALLER_DISPLAY_NAME",
                              "OUTBOUND_CALLER_ID",
                              "ORIGINATOR_CALLER_ID",
                              "OUTBOUND_CALLER_ID_AND_ORIGINATOR_CALLER_ID",
                              "ANONYMOUS",
                              "DEFAULT",
                              "CUSTOM"
                            ],
                            "description": "Inbound parameters:\n- `AUTH_ID`:\n- `CALLER_NUM`:\n- `CALLED_NUM`:\n- `CALLER_DISPLAY_NAME`:\n- `OUTBOUND_CALLER_ID`:\n- `ORIGINATOR_CALLER_ID`:\n- `OUTBOUND_CALLER_ID_AND_ORIGINATOR_CALLER_ID`:\n- `ANONYMOUS`:\n- `DEFAULT`: leave default value.\n- `CUSTOM`:\n"
                          },
                          "custom_value": {
                            "type": "string",
                            "description": "Custom value for the field.\n"
                          }
                        }
                      },
                      "request_line_uri_host_part": {
                        "type": "object",
                        "properties": {
                          "value": {
                            "type": "string",
                            "enum": [
                              "TRUNK_HOST_PORT",
                              "OUT_HOST_PORT",
                              "CONTACT_URI",
                              "SIP_DOMAIN",
                              "DEFAULT",
                              "CUSTOM"
                            ],
                            "description": "Inbound parameters variable:\n- `TRUNK_HOST_PORT`:\n- `OUT_HOST_PORT`:\n- `CONTACT_URI`:\n- `SIP_DOMAIN`:\n- `DEFAULT`: leave default value.\n- `CUSTOM`:\n"
                          },
                          "custom_value": {
                            "type": "string",
                            "description": "Custom value for the field.\n"
                          }
                        }
                      },
                      "contact_user_part": {
                        "type": "object",
                        "properties": {
                          "value": {
                            "type": "string",
                            "enum": [
                              "AUTH_ID",
                              "CALLER_NUM",
                              "CALLED_NUM",
                              "CALLER_DISPLAY_NAME",
                              "OUTBOUND_CALLER_ID",
                              "ORIGINATOR_CALLER_ID",
                              "OUTBOUND_CALLER_ID_AND_ORIGINATOR_CALLER_ID",
                              "ANONYMOUS",
                              "DEFAULT",
                              "CUSTOM"
                            ],
                            "description": "Inbound parameters:\n- `AUTH_ID`:\n- `CALLER_NUM`:\n- `CALLED_NUM`:\n- `CALLER_DISPLAY_NAME`:\n- `OUTBOUND_CALLER_ID`:\n- `ORIGINATOR_CALLER_ID`:\n- `OUTBOUND_CALLER_ID_AND_ORIGINATOR_CALLER_ID`:\n- `ANONYMOUS`:\n- `DEFAULT`: leave default value.\n- `CUSTOM`:\n"
                          },
                          "custom_value": {
                            "type": "string",
                            "description": "Custom value for the field.\n"
                          }
                        }
                      },
                      "contact_host_part": {
                        "type": "object",
                        "properties": {
                          "value": {
                            "type": "string",
                            "enum": [
                              "TRUNK_HOST_PORT",
                              "OUT_HOST_PORT",
                              "CONTACT_URI",
                              "SIP_DOMAIN",
                              "DEFAULT",
                              "CUSTOM"
                            ],
                            "description": "Inbound parameters variable:\n- `TRUNK_HOST_PORT`:\n- `OUT_HOST_PORT`:\n- `CONTACT_URI`:\n- `SIP_DOMAIN`:\n- `DEFAULT`: leave default value.\n- `CUSTOM`:\n"
                          },
                          "custom_value": {
                            "type": "string",
                            "description": "Custom value for the field.\n"
                          }
                        }
                      },
                      "to_display_name": {
                        "type": "object",
                        "properties": {
                          "value": {
                            "type": "string",
                            "enum": [
                              "AUTH_ID",
                              "CALLER_NUM",
                              "CALLED_NUM",
                              "CALLER_DISPLAY_NAME",
                              "OUTBOUND_CALLER_ID",
                              "ORIGINATOR_CALLER_ID",
                              "OUTBOUND_CALLER_ID_AND_ORIGINATOR_CALLER_ID",
                              "ANONYMOUS",
                              "DEFAULT",
                              "CUSTOM"
                            ],
                            "description": "Inbound parameters:\n- `AUTH_ID`:\n- `CALLER_NUM`:\n- `CALLED_NUM`:\n- `CALLER_DISPLAY_NAME`:\n- `OUTBOUND_CALLER_ID`:\n- `ORIGINATOR_CALLER_ID`:\n- `OUTBOUND_CALLER_ID_AND_ORIGINATOR_CALLER_ID`:\n- `ANONYMOUS`:\n- `DEFAULT`: leave default value.\n- `CUSTOM`:\n"
                          },
                          "custom_value": {
                            "type": "string",
                            "description": "Custom value for the field.\n"
                          }
                        }
                      },
                      "to_user_part": {
                        "type": "object",
                        "properties": {
                          "value": {
                            "type": "string",
                            "enum": [
                              "AUTH_ID",
                              "CALLER_NUM",
                              "CALLED_NUM",
                              "CALLER_DISPLAY_NAME",
                              "OUTBOUND_CALLER_ID",
                              "ORIGINATOR_CALLER_ID",
                              "OUTBOUND_CALLER_ID_AND_ORIGINATOR_CALLER_ID",
                              "ANONYMOUS",
                              "DEFAULT",
                              "CUSTOM"
                            ],
                            "description": "Inbound parameters:\n- `AUTH_ID`:\n- `CALLER_NUM`:\n- `CALLED_NUM`:\n- `CALLER_DISPLAY_NAME`:\n- `OUTBOUND_CALLER_ID`:\n- `ORIGINATOR_CALLER_ID`:\n- `OUTBOUND_CALLER_ID_AND_ORIGINATOR_CALLER_ID`:\n- `ANONYMOUS`:\n- `DEFAULT`: leave default value.\n- `CUSTOM`:\n"
                          },
                          "custom_value": {
                            "type": "string",
                            "description": "Custom value for the field.\n"
                          }
                        }
                      },
                      "to_host_part": {
                        "type": "object",
                        "properties": {
                          "value": {
                            "type": "string",
                            "enum": [
                              "TRUNK_HOST_PORT",
                              "OUT_HOST_PORT",
                              "CONTACT_URI",
                              "SIP_DOMAIN",
                              "DEFAULT",
                              "CUSTOM"
                            ],
                            "description": "Inbound parameters variable:\n- `TRUNK_HOST_PORT`:\n- `OUT_HOST_PORT`:\n- `CONTACT_URI`:\n- `SIP_DOMAIN`:\n- `DEFAULT`: leave default value.\n- `CUSTOM`:\n"
                          },
                          "custom_value": {
                            "type": "string",
                            "description": "Custom value for the field.\n"
                          }
                        }
                      },
                      "from_display_name": {
                        "type": "object",
                        "properties": {
                          "value": {
                            "type": "string",
                            "enum": [
                              "AUTH_ID",
                              "CALLER_NUM",
                              "CALLED_NUM",
                              "CALLER_DISPLAY_NAME",
                              "OUTBOUND_CALLER_ID",
                              "ORIGINATOR_CALLER_ID",
                              "OUTBOUND_CALLER_ID_AND_ORIGINATOR_CALLER_ID",
                              "ANONYMOUS",
                              "DEFAULT",
                              "CUSTOM"
                            ],
                            "description": "Inbound parameters:\n- `AUTH_ID`:\n- `CALLER_NUM`:\n- `CALLED_NUM`:\n- `CALLER_DISPLAY_NAME`:\n- `OUTBOUND_CALLER_ID`:\n- `ORIGINATOR_CALLER_ID`:\n- `OUTBOUND_CALLER_ID_AND_ORIGINATOR_CALLER_ID`:\n- `ANONYMOUS`:\n- `DEFAULT`: leave default value.\n- `CUSTOM`:\n"
                          },
                          "custom_value": {
                            "type": "string",
                            "description": "Custom value for the field.\n"
                          }
                        }
                      },
                      "from_user_part": {
                        "type": "object",
                        "properties": {
                          "value": {
                            "type": "string",
                            "enum": [
                              "AUTH_ID",
                              "CALLER_NUM",
                              "CALLED_NUM",
                              "CALLER_DISPLAY_NAME",
                              "OUTBOUND_CALLER_ID",
                              "ORIGINATOR_CALLER_ID",
                              "OUTBOUND_CALLER_ID_AND_ORIGINATOR_CALLER_ID",
                              "ANONYMOUS",
                              "DEFAULT",
                              "CUSTOM"
                            ],
                            "description": "Inbound parameters:\n- `AUTH_ID`:\n- `CALLER_NUM`:\n- `CALLED_NUM`:\n- `CALLER_DISPLAY_NAME`:\n- `OUTBOUND_CALLER_ID`:\n- `ORIGINATOR_CALLER_ID`:\n- `OUTBOUND_CALLER_ID_AND_ORIGINATOR_CALLER_ID`:\n- `ANONYMOUS`:\n- `DEFAULT`: leave default value.\n- `CUSTOM`:\n"
                          },
                          "custom_value": {
                            "type": "string",
                            "description": "Custom value for the field.\n"
                          }
                        }
                      },
                      "from_host_part": {
                        "type": "object",
                        "properties": {
                          "value": {
                            "type": "string",
                            "enum": [
                              "TRUNK_HOST_PORT",
                              "OUT_HOST_PORT",
                              "CONTACT_URI",
                              "SIP_DOMAIN",
                              "DEFAULT",
                              "CUSTOM"
                            ],
                            "description": "Inbound parameters variable:\n- `TRUNK_HOST_PORT`:\n- `OUT_HOST_PORT`:\n- `CONTACT_URI`:\n- `SIP_DOMAIN`:\n- `DEFAULT`: leave default value.\n- `CUSTOM`:\n"
                          },
                          "custom_value": {
                            "type": "string",
                            "description": "Custom value for the field.\n"
                          }
                        }
                      },
                      "remote_party_id_called_party_display_name": {
                        "type": "object",
                        "properties": {
                          "value": {
                            "type": "string",
                            "enum": [
                              "AUTH_ID",
                              "CALLER_NUM",
                              "CALLED_NUM",
                              "CALLER_DISPLAY_NAME",
                              "OUTBOUND_CALLER_ID",
                              "ORIGINATOR_CALLER_ID",
                              "OUTBOUND_CALLER_ID_AND_ORIGINATOR_CALLER_ID",
                              "ANONYMOUS",
                              "DEFAULT",
                              "CUSTOM"
                            ],
                            "description": "Inbound parameters:\n- `AUTH_ID`:\n- `CALLER_NUM`:\n- `CALLED_NUM`:\n- `CALLER_DISPLAY_NAME`:\n- `OUTBOUND_CALLER_ID`:\n- `ORIGINATOR_CALLER_ID`:\n- `OUTBOUND_CALLER_ID_AND_ORIGINATOR_CALLER_ID`:\n- `ANONYMOUS`:\n- `DEFAULT`: leave default value.\n- `CUSTOM`:\n"
                          },
                          "custom_value": {
                            "type": "string",
                            "description": "Custom value for the field.\n"
                          }
                        }
                      },
                      "remote_party_id_called_party_user_part": {
                        "type": "object",
                        "properties": {
                          "value": {
                            "type": "string",
                            "enum": [
                              "AUTH_ID",
                              "CALLER_NUM",
                              "CALLED_NUM",
                              "CALLER_DISPLAY_NAME",
                              "OUTBOUND_CALLER_ID",
                              "ORIGINATOR_CALLER_ID",
                              "OUTBOUND_CALLER_ID_AND_ORIGINATOR_CALLER_ID",
                              "ANONYMOUS",
                              "DEFAULT",
                              "CUSTOM"
                            ],
                            "description": "Inbound parameters:\n- `AUTH_ID`:\n- `CALLER_NUM`:\n- `CALLED_NUM`:\n- `CALLER_DISPLAY_NAME`:\n- `OUTBOUND_CALLER_ID`:\n- `ORIGINATOR_CALLER_ID`:\n- `OUTBOUND_CALLER_ID_AND_ORIGINATOR_CALLER_ID`:\n- `ANONYMOUS`:\n- `DEFAULT`: leave default value.\n- `CUSTOM`:\n"
                          },
                          "custom_value": {
                            "type": "string",
                            "description": "Custom value for the field.\n"
                          }
                        }
                      },
                      "remote_party_id_called_party_host_part": {
                        "type": "object",
                        "properties": {
                          "value": {
                            "type": "string",
                            "enum": [
                              "TRUNK_HOST_PORT",
                              "OUT_HOST_PORT",
                              "CONTACT_URI",
                              "SIP_DOMAIN",
                              "DEFAULT",
                              "CUSTOM"
                            ],
                            "description": "Inbound parameters variable:\n- `TRUNK_HOST_PORT`:\n- `OUT_HOST_PORT`:\n- `CONTACT_URI`:\n- `SIP_DOMAIN`:\n- `DEFAULT`: leave default value.\n- `CUSTOM`:\n"
                          },
                          "custom_value": {
                            "type": "string",
                            "description": "Custom value for the field.\n"
                          }
                        }
                      },
                      "remote_party_id_calling_party_display_name": {
                        "type": "object",
                        "properties": {
                          "value": {
                            "type": "string",
                            "enum": [
                              "AUTH_ID",
                              "CALLER_NUM",
                              "CALLED_NUM",
                              "CALLER_DISPLAY_NAME",
                              "OUTBOUND_CALLER_ID",
                              "ORIGINATOR_CALLER_ID",
                              "OUTBOUND_CALLER_ID_AND_ORIGINATOR_CALLER_ID",
                              "ANONYMOUS",
                              "DEFAULT",
                              "CUSTOM"
                            ],
                            "description": "Inbound parameters:\n- `AUTH_ID`:\n- `CALLER_NUM`:\n- `CALLED_NUM`:\n- `CALLER_DISPLAY_NAME`:\n- `OUTBOUND_CALLER_ID`:\n- `ORIGINATOR_CALLER_ID`:\n- `OUTBOUND_CALLER_ID_AND_ORIGINATOR_CALLER_ID`:\n- `ANONYMOUS`:\n- `DEFAULT`: leave default value.\n- `CUSTOM`:\n"
                          },
                          "custom_value": {
                            "type": "string",
                            "description": "Custom value for the field.\n"
                          }
                        }
                      },
                      "remote_party_id_calling_party_user_part": {
                        "type": "object",
                        "properties": {
                          "value": {
                            "type": "string",
                            "enum": [
                              "AUTH_ID",
                              "CALLER_NUM",
                              "CALLED_NUM",
                              "CALLER_DISPLAY_NAME",
                              "OUTBOUND_CALLER_ID",
                              "ORIGINATOR_CALLER_ID",
                              "OUTBOUND_CALLER_ID_AND_ORIGINATOR_CALLER_ID",
                              "ANONYMOUS",
                              "DEFAULT",
                              "CUSTOM"
                            ],
                            "description": "Inbound parameters:\n- `AUTH_ID`:\n- `CALLER_NUM`:\n- `CALLED_NUM`:\n- `CALLER_DISPLAY_NAME`:\n- `OUTBOUND_CALLER_ID`:\n- `ORIGINATOR_CALLER_ID`:\n- `OUTBOUND_CALLER_ID_AND_ORIGINATOR_CALLER_ID`:\n- `ANONYMOUS`:\n- `DEFAULT`: leave default value.\n- `CUSTOM`:\n"
                          },
                          "custom_value": {
                            "type": "string",
                            "description": "Custom value for the field.\n"
                          }
                        }
                      },
                      "remote_party_id_calling_party_host_part": {
                        "type": "object",
                        "properties": {
                          "value": {
                            "type": "string",
                            "enum": [
                              "TRUNK_HOST_PORT",
                              "OUT_HOST_PORT",
                              "CONTACT_URI",
                              "SIP_DOMAIN",
                              "DEFAULT",
                              "CUSTOM"
                            ],
                            "description": "Inbound parameters variable:\n- `TRUNK_HOST_PORT`:\n- `OUT_HOST_PORT`:\n- `CONTACT_URI`:\n- `SIP_DOMAIN`:\n- `DEFAULT`: leave default value.\n- `CUSTOM`:\n"
                          },
                          "custom_value": {
                            "type": "string",
                            "description": "Custom value for the field.\n"
                          }
                        }
                      },
                      "p_asserted_identity_display_name": {
                        "type": "object",
                        "properties": {
                          "value": {
                            "type": "string",
                            "enum": [
                              "AUTH_ID",
                              "CALLER_NUM",
                              "CALLED_NUM",
                              "CALLER_DISPLAY_NAME",
                              "OUTBOUND_CALLER_ID",
                              "ORIGINATOR_CALLER_ID",
                              "OUTBOUND_CALLER_ID_AND_ORIGINATOR_CALLER_ID",
                              "ANONYMOUS",
                              "DEFAULT",
                              "CUSTOM"
                            ],
                            "description": "Inbound parameters:\n- `AUTH_ID`:\n- `CALLER_NUM`:\n- `CALLED_NUM`:\n- `CALLER_DISPLAY_NAME`:\n- `OUTBOUND_CALLER_ID`:\n- `ORIGINATOR_CALLER_ID`:\n- `OUTBOUND_CALLER_ID_AND_ORIGINATOR_CALLER_ID`:\n- `ANONYMOUS`:\n- `DEFAULT`: leave default value.\n- `CUSTOM`:\n"
                          },
                          "custom_value": {
                            "type": "string",
                            "description": "Custom value for the field.\n"
                          }
                        }
                      },
                      "p_asserted_identity_user_part": {
                        "type": "object",
                        "properties": {
                          "value": {
                            "type": "string",
                            "enum": [
                              "AUTH_ID",
                              "CALLER_NUM",
                              "CALLED_NUM",
                              "CALLER_DISPLAY_NAME",
                              "OUTBOUND_CALLER_ID",
                              "ORIGINATOR_CALLER_ID",
                              "OUTBOUND_CALLER_ID_AND_ORIGINATOR_CALLER_ID",
                              "ANONYMOUS",
                              "DEFAULT",
                              "CUSTOM"
                            ],
                            "description": "Inbound parameters:\n- `AUTH_ID`:\n- `CALLER_NUM`:\n- `CALLED_NUM`:\n- `CALLER_DISPLAY_NAME`:\n- `OUTBOUND_CALLER_ID`:\n- `ORIGINATOR_CALLER_ID`:\n- `OUTBOUND_CALLER_ID_AND_ORIGINATOR_CALLER_ID`:\n- `ANONYMOUS`:\n- `DEFAULT`: leave default value.\n- `CUSTOM`:\n"
                          },
                          "custom_value": {
                            "type": "string",
                            "description": "Custom value for the field.\n"
                          }
                        }
                      },
                      "p_asserted_identity_host_part": {
                        "type": "object",
                        "properties": {
                          "value": {
                            "type": "string",
                            "enum": [
                              "TRUNK_HOST_PORT",
                              "OUT_HOST_PORT",
                              "CONTACT_URI",
                              "SIP_DOMAIN",
                              "DEFAULT",
                              "CUSTOM"
                            ],
                            "description": "Inbound parameters variable:\n- `TRUNK_HOST_PORT`:\n- `OUT_HOST_PORT`:\n- `CONTACT_URI`:\n- `SIP_DOMAIN`:\n- `DEFAULT`: leave default value.\n- `CUSTOM`:\n"
                          },
                          "custom_value": {
                            "type": "string",
                            "description": "Custom value for the field.\n"
                          }
                        }
                      },
                      "p_preferred_identify_display_name": {
                        "type": "object",
                        "properties": {
                          "value": {
                            "type": "string",
                            "enum": [
                              "AUTH_ID",
                              "CALLER_NUM",
                              "CALLED_NUM",
                              "CALLER_DISPLAY_NAME",
                              "OUTBOUND_CALLER_ID",
                              "ORIGINATOR_CALLER_ID",
                              "OUTBOUND_CALLER_ID_AND_ORIGINATOR_CALLER_ID",
                              "ANONYMOUS",
                              "DEFAULT",
                              "CUSTOM"
                            ],
                            "description": "Inbound parameters:\n- `AUTH_ID`:\n- `CALLER_NUM`:\n- `CALLED_NUM`:\n- `CALLER_DISPLAY_NAME`:\n- `OUTBOUND_CALLER_ID`:\n- `ORIGINATOR_CALLER_ID`:\n- `OUTBOUND_CALLER_ID_AND_ORIGINATOR_CALLER_ID`:\n- `ANONYMOUS`:\n- `DEFAULT`: leave default value.\n- `CUSTOM`:\n"
                          },
                          "custom_value": {
                            "type": "string",
                            "description": "Custom value for the field.\n"
                          }
                        }
                      },
                      "p_preferred_identify_user_part": {
                        "type": "object",
                        "properties": {
                          "value": {
                            "type": "string",
                            "enum": [
                              "AUTH_ID",
                              "CALLER_NUM",
                              "CALLED_NUM",
                              "CALLER_DISPLAY_NAME",
                              "OUTBOUND_CALLER_ID",
                              "ORIGINATOR_CALLER_ID",
                              "OUTBOUND_CALLER_ID_AND_ORIGINATOR_CALLER_ID",
                              "ANONYMOUS",
                              "DEFAULT",
                              "CUSTOM"
                            ],
                            "description": "Inbound parameters:\n- `AUTH_ID`:\n- `CALLER_NUM`:\n- `CALLED_NUM`:\n- `CALLER_DISPLAY_NAME`:\n- `OUTBOUND_CALLER_ID`:\n- `ORIGINATOR_CALLER_ID`:\n- `OUTBOUND_CALLER_ID_AND_ORIGINATOR_CALLER_ID`:\n- `ANONYMOUS`:\n- `DEFAULT`: leave default value.\n- `CUSTOM`:\n"
                          },
                          "custom_value": {
                            "type": "string",
                            "description": "Custom value for the field.\n"
                          }
                        }
                      },
                      "p_preferred_identify_host_part": {
                        "type": "object",
                        "properties": {
                          "value": {
                            "type": "string",
                            "enum": [
                              "TRUNK_HOST_PORT",
                              "OUT_HOST_PORT",
                              "CONTACT_URI",
                              "SIP_DOMAIN",
                              "DEFAULT",
                              "CUSTOM"
                            ],
                            "description": "Inbound parameters variable:\n- `TRUNK_HOST_PORT`:\n- `OUT_HOST_PORT`:\n- `CONTACT_URI`:\n- `SIP_DOMAIN`:\n- `DEFAULT`: leave default value.\n- `CUSTOM`:\n"
                          },
                          "custom_value": {
                            "type": "string",
                            "description": "Custom value for the field.\n"
                          }
                        }
                      },
                      "p_called_party_id_display_name": {
                        "type": "object",
                        "properties": {
                          "value": {
                            "type": "string",
                            "enum": [
                              "AUTH_ID",
                              "CALLER_NUM",
                              "CALLED_NUM",
                              "CALLER_DISPLAY_NAME",
                              "OUTBOUND_CALLER_ID",
                              "ORIGINATOR_CALLER_ID",
                              "OUTBOUND_CALLER_ID_AND_ORIGINATOR_CALLER_ID",
                              "ANONYMOUS",
                              "DEFAULT",
                              "CUSTOM"
                            ],
                            "description": "Inbound parameters:\n- `AUTH_ID`:\n- `CALLER_NUM`:\n- `CALLED_NUM`:\n- `CALLER_DISPLAY_NAME`:\n- `OUTBOUND_CALLER_ID`:\n- `ORIGINATOR_CALLER_ID`:\n- `OUTBOUND_CALLER_ID_AND_ORIGINATOR_CALLER_ID`:\n- `ANONYMOUS`:\n- `DEFAULT`: leave default value.\n- `CUSTOM`:\n"
                          },
                          "custom_value": {
                            "type": "string",
                            "description": "Custom value for the field.\n"
                          }
                        }
                      },
                      "p_called_party_id_user_part": {
                        "type": "object",
                        "properties": {
                          "value": {
                            "type": "string",
                            "enum": [
                              "AUTH_ID",
                              "CALLER_NUM",
                              "CALLED_NUM",
                              "CALLER_DISPLAY_NAME",
                              "OUTBOUND_CALLER_ID",
                              "ORIGINATOR_CALLER_ID",
                              "OUTBOUND_CALLER_ID_AND_ORIGINATOR_CALLER_ID",
                              "ANONYMOUS",
                              "DEFAULT",
                              "CUSTOM"
                            ],
                            "description": "Inbound parameters:\n- `AUTH_ID`:\n- `CALLER_NUM`:\n- `CALLED_NUM`:\n- `CALLER_DISPLAY_NAME`:\n- `OUTBOUND_CALLER_ID`:\n- `ORIGINATOR_CALLER_ID`:\n- `OUTBOUND_CALLER_ID_AND_ORIGINATOR_CALLER_ID`:\n- `ANONYMOUS`:\n- `DEFAULT`: leave default value.\n- `CUSTOM`:\n"
                          },
                          "custom_value": {
                            "type": "string",
                            "description": "Custom value for the field.\n"
                          }
                        }
                      },
                      "p_called_party_id_host_part": {
                        "type": "object",
                        "properties": {
                          "value": {
                            "type": "string",
                            "enum": [
                              "TRUNK_HOST_PORT",
                              "OUT_HOST_PORT",
                              "CONTACT_URI",
                              "SIP_DOMAIN",
                              "DEFAULT",
                              "CUSTOM"
                            ],
                            "description": "Inbound parameters variable:\n- `TRUNK_HOST_PORT`:\n- `OUT_HOST_PORT`:\n- `CONTACT_URI`:\n- `SIP_DOMAIN`:\n- `DEFAULT`: leave default value.\n- `CUSTOM`:\n"
                          },
                          "custom_value": {
                            "type": "string",
                            "description": "Custom value for the field.\n"
                          }
                        }
                      },
                      "privacy_types_supported": {
                        "type": "string",
                        "enum": [
                          "DEFAULT",
                          "NONE",
                          "ID",
                          "USER",
                          "HEADER",
                          "SESSION"
                        ],
                        "description": "Inbound parameters:\n- `DEFAULT`: leave default value.\n- `NONE`: No privacy required.\n- `ID`: id\n- `USER`: user\n- `HEADER`: header\n- `SESSION`: Media anonymization\n"
                      }
                    }
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "name": null,
                    "enabled": null,
                    "transport": null,
                    "hostname": null,
                    "port": null,
                    "auth_id": null,
                    "username": null,
                    "password": null,
                    "registration": null,
                    "register_interval": null,
                    "outbound_server": null,
                    "outbound_server_port": null,
                    "inlan": null,
                    "single_via_header": null,
                    "rewrite_via_ip": null,
                    "verify_port": null,
                    "keep_alive": null,
                    "keep_alive_interval": null,
                    "concurrency": null,
                    "additional_ips": null,
                    "adjust_sdp_direction": null,
                    "remove_srtp_info": true,
                    "remove_plus_prefix": false,
                    "stir_shaken_signature_required": null,
                    "tel_uri_scheme_for_request_line": null,
                    "tel_uri_scheme_for_to_header": null,
                    "did_numbers": null,
                    "inbound_parameters": null,
                    "outbound_parameters": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/providers/{id}/status": {
      "get": {
        "tags": [
          "Trunk"
        ],
        "operationId": "getProviderStatus",
        "x-category": "trunks",
        "x-subcategory": "trunks",
        "x-permissions": [
          "Trunk.ViewOnly"
        ],
        "summary": "Query provider status",
        "description": "Get status of provider by it's unique ID.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of trunk.\n"
            },
            "description": "The unique ID of the provider."
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "enum": [
                        "ONLINE",
                        "OFFLINE"
                      ],
                      "readOnly": true,
                      "description": "Trunk status includes:   \n- `ONLINE`:   \n- `OFFLINE`:\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "status": "ONLINE"
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/providers/{id}/destroy": {
      "post": {
        "tags": [
          "Trunk"
        ],
        "operationId": "deleteProvider",
        "x-category": "trunks",
        "x-subcategory": "trunks",
        "x-permissions": [
          "Trunk.FullAccess"
        ],
        "summary": "Delete a provider",
        "description": "Destroy provider by it's unique ID.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of trunk.\n"
            },
            "description": "The unique ID of the provider."
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Invalid provider ID supplied."
          }
        }
      }
    },
    "/providers/export": {
      "get": {
        "tags": [
          "Trunk"
        ],
        "operationId": "exportProviders",
        "x-category": "trunks",
        "x-subcategory": "trunks",
        "x-permissions": [
          "Trunk.FullAccess"
        ],
        "summary": "Export providers",
        "description": "Export a collection of providers to file.\n",
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "Content-Disposition": {
                "schema": {
                  "type": "string"
                },
                "description": "the format is `attachment; filename=\"example\"`"
              }
            },
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/providers/{id}/assignees": {
      "get": {
        "tags": [
          "Administration"
        ],
        "operationId": "listProviderAssignees",
        "x-category": "trunks",
        "x-subcategory": "trunks",
        "x-permissions": [
          "Trunk.ViewOnly"
        ],
        "summary": "List provider assignees",
        "description": "Get a collection of assignees of provider.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of trunk.\n"
            },
            "description": "The unique ID of the provider."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "tenant_id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "description": "The unique ID of tenant.\n"
                          },
                          "did_numbers": {
                            "type": "string",
                            "description": "The semicolon-separated list of DID/DDI pool number range or DID/DDI number.\nAssign a DID/DDI pool number range or DID/DDI number to the tenant.\nFor example: 3000;12000-18000.\nThe DID/DDI pool number range should not overlap with other tenant DID/DDI pool number ranges and numbers.\n"
                          },
                          "concurrency": {
                            "type": "integer",
                            "format": "int32",
                            "minimum": 0,
                            "description": "The max number of concurrent calls.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "items": [
                        {
                          "tenant_id": null,
                          "did_numbers": null,
                          "concurrency": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/providers/{id}/assignees/{tenant_id}": {
      "post": {
        "tags": [
          "Administration"
        ],
        "operationId": "assignProvider",
        "x-category": "trunks",
        "x-subcategory": "trunks",
        "x-permissions": [
          "Trunk.FullAccess"
        ],
        "summary": "Assign provider",
        "description": "Assign provider to tenant.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of trunk.\n"
            },
            "description": "The unique ID of the provider."
          },
          {
            "name": "tenant_id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of tenant.\n"
            },
            "description": "The unique ID of the tenant."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "did_numbers": {
                    "type": "string",
                    "description": "The semicolon-separated list of DID/DDI pool number range or DID/DDI number.\nAssign a DID/DDI pool number range or DID/DDI number to the tenant.\nFor example: 3000;12000-18000.\nThe DID/DDI pool number range should not overlap with other tenant DID/DDI pool number ranges and numbers.\n"
                  },
                  "concurrency": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 0,
                    "description": "The max number of concurrent calls.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "did_numbers": null,
                    "concurrency": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "get": {
        "tags": [
          "Administration"
        ],
        "operationId": "checkProviderAssignee",
        "x-category": "trunks",
        "x-subcategory": "trunks",
        "x-permissions": [
          "Trunk.ViewOnly"
        ],
        "summary": "Check provider assignee",
        "description": "Check if a provider is assigned to the tenant.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of trunk.\n"
            },
            "description": "The unique ID of the provider."
          },
          {
            "name": "tenant_id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of tenant.\n"
            },
            "description": "The unique ID of the tenant."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "did_numbers": {
                      "type": "string",
                      "description": "The semicolon-separated list of DID/DDI pool number range or DID/DDI number.\nAssign a DID/DDI pool number range or DID/DDI number to the tenant.\nFor example: 3000;12000-18000.\nThe DID/DDI pool number range should not overlap with other tenant DID/DDI pool number ranges and numbers.\n"
                    },
                    "concurrency": {
                      "type": "integer",
                      "format": "int32",
                      "minimum": 0,
                      "description": "The max number of concurrent calls.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "did_numbers": null,
                      "concurrency": null
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          }
        }
      }
    },
    "/providers/{id}/assignees/{tenant_id}/destroy": {
      "post": {
        "tags": [
          "Administration"
        ],
        "operationId": "destroyProviderAssignee",
        "x-category": "trunks",
        "x-subcategory": "trunks",
        "x-permissions": [
          "Trunk.FullAccess"
        ],
        "summary": "Destroy a provider assignee",
        "description": "Unassign provider from tenant.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of trunk.\n"
            },
            "description": "The unique ID of the provider."
          },
          {
            "name": "tenant_id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of tenant.\n"
            },
            "description": "The unique ID of the tenant."
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/ring_groups": {
      "post": {
        "tags": [
          "Ring Group"
        ],
        "operationId": "createRingGroup",
        "x-category": "call-features",
        "x-subcategory": "ring-groups",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "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"
                  },
                  "enable_night_mode": {
                    "type": "boolean",
                    "default": false,
                    "description": "Whether to enable night mode.\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",
                                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                  "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"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "name": null,
                    "extension_number": null,
                    "ring_time": null,
                    "ring_strategy": null,
                    "skip_busy_member": null,
                    "enable_paid": null,
                    "enable_prid": null,
                    "enable_night_mode": null,
                    "extension_number_as_to_header": null,
                    "no_answer_forward_rule": null,
                    "night_mode_forward_rule": null,
                    "outbound_caller_ids": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Created ring group",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of ring group.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "The ID of created resource",
                    "value": {
                      "id": "xxxxxxxx"
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "get": {
        "tags": [
          "Ring Group"
        ],
        "operationId": "listRingGroups",
        "x-category": "call-features",
        "x-subcategory": "ring-groups",
        "x-permissions": [
          "PhoneSystem.ViewOnly"
        ],
        "summary": "List ring groups.",
        "description": "Retrieve a collection of ring groups.\n",
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Use the `filter` query parameter to retrieve just a subset of a collection.\n"
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "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",
            "required": false,
            "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",
            "required": false,
            "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",
            "required": false,
            "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,
                      "example": 100,
                      "description": "Total number of resource.\n"
                    },
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "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"
                          },
                          "enable_night_mode": {
                            "type": "boolean",
                            "default": false,
                            "description": "Whether to enable night mode.\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"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": null,
                          "name": null,
                          "extension_number": null,
                          "ring_time": null,
                          "ring_strategy": null,
                          "skip_busy_member": null,
                          "enable_paid": null,
                          "enable_prid": null,
                          "enable_night_mode": null,
                          "extension_number_as_to_header": null,
                          "no_answer_forward_rule": null,
                          "night_mode_forward_rule": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/ring_groups/{id}": {
      "get": {
        "tags": [
          "Ring Group"
        ],
        "operationId": "showRingGroup",
        "x-category": "call-features",
        "x-subcategory": "ring-groups",
        "x-permissions": [
          "PhoneSystem.ViewOnly"
        ],
        "summary": "Retrieve a ring group",
        "description": "Retrieve ring group by ID.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "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",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "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"
                    },
                    "enable_night_mode": {
                      "type": "boolean",
                      "default": false,
                      "description": "Whether to enable night mode.\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",
                                    "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                    "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"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "id": null,
                      "name": null,
                      "extension_number": null,
                      "ring_time": null,
                      "ring_strategy": null,
                      "skip_busy_member": null,
                      "enable_paid": null,
                      "enable_prid": null,
                      "enable_night_mode": null,
                      "extension_number_as_to_header": null,
                      "no_answer_forward_rule": null,
                      "night_mode_forward_rule": null,
                      "outbound_caller_ids": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "post": {
        "tags": [
          "Ring Group"
        ],
        "operationId": "updateRingGroup",
        "x-category": "call-features",
        "x-subcategory": "ring-groups",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Update a ring group",
        "description": "Update a ring group\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "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"
                  },
                  "enable_night_mode": {
                    "type": "boolean",
                    "default": false,
                    "description": "Whether to enable night mode.\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",
                                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                  "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"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "name": null,
                    "ring_time": null,
                    "ring_strategy": null,
                    "skip_busy_member": null,
                    "enable_paid": null,
                    "enable_prid": null,
                    "enable_night_mode": null,
                    "extension_number_as_to_header": null,
                    "no_answer_forward_rule": null,
                    "night_mode_forward_rule": null,
                    "outbound_caller_ids": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/ring_groups/{id}/agents": {
      "get": {
        "tags": [
          "Ring Group"
        ],
        "operationId": "listRingGroupAgents",
        "x-category": "call-features",
        "x-subcategory": "ring-groups",
        "x-permissions": [
          "PhoneSystem.ViewOnly"
        ],
        "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",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "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"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "items": [
                        {
                          "extension_number": null,
                          "display_name": null,
                          "skill_level": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "post": {
        "tags": [
          "Ring Group"
        ],
        "operationId": "updateRingGroupMemberList",
        "x-category": "call-features",
        "x-subcategory": "ring-groups",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Update ring group member list",
        "description": "Update ring group member list.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "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"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "items": [
                      {
                        "extension_number": null,
                        "skill_level": null
                      }
                    ]
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/ring_groups/{id}/agents/{agent_number}": {
      "get": {
        "tags": [
          "Ring Group"
        ],
        "operationId": "retrieveRingGroupAgent",
        "x-category": "call-features",
        "x-subcategory": "ring-groups",
        "x-permissions": [
          "PhoneSystem.ViewOnly"
        ],
        "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",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "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"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "extension_number": null,
                      "display_name": null,
                      "skill_level": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/ring_groups/{id}/destroy": {
      "post": {
        "tags": [
          "Ring Group"
        ],
        "operationId": "deleteRingGroup",
        "x-category": "call-features",
        "x-subcategory": "ring-groups",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Destroy a ring group",
        "description": "Destroy a ring group\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "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."
          }
        }
      }
    },
    "/shared_voicemails": {
      "post": {
        "tags": [
          "Shared Voicemail"
        ],
        "operationId": "createSharedVoicemail",
        "x-category": "call-features",
        "x-subcategory": "shared-voicemails",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Create a shared voicemail",
        "description": "Add a new shared voicemail.\n",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64,
                    "description": "The name of shared voicemail.\n"
                  },
                  "extension_number": {
                    "type": "string",
                    "minLength": 3,
                    "maxLength": 64,
                    "pattern": "[0-9]{3,64}",
                    "description": "The extension number.\n"
                  },
                  "prompt": {
                    "allOf": [
                      {
                        "type": "string",
                        "example": "en-US",
                        "description": "BCP 47 Language Tags (The Internet Best Current Practices (BCP) for language tags).\nA language tag is composed of a sequence of one or more subtags such as language, region, variant and script subtags.\nWhen a language tag is comprised of more than one subtag, the subtag values are separated by the \"-\" character.\nYou will most commonly find language tags written with 2 subtags - language and region. For example: en-US.\n"
                      }
                    ],
                    "description": "The prompt set name of shared voicemail.\n"
                  },
                  "enable_pin": {
                    "type": "boolean",
                    "default": true,
                    "description": "Whether the PIN is required to access shared voicemail.\n"
                  },
                  "pin": {
                    "type": "string",
                    "description": "The PIN number for accessing.\n"
                  },
                  "enable_email_notify": {
                    "type": "boolean",
                    "default": false,
                    "description": "Enable email notify or not.\n"
                  },
                  "recipients": {
                    "type": "string",
                    "description": "Comma-separated list of email address that should receive notifications.   \nAllow up to 15 email addresses.\n"
                  },
                  "play_datetime": {
                    "type": "string",
                    "enum": [
                      "DISABLE",
                      "12_HOUR_CLOCK",
                      "24_HOUR_CLOCK"
                    ],
                    "description": "Announces Date and Time of Message.\n- `DISABLE`: Do not read;\n- `12_HOUR_CLOCK`: Read in 12-hour clock;\n- `24_HOUR_CLOCK`: Read in 24-hour clock.\n"
                  }
                },
                "required": [
                  "name",
                  "extension_number",
                  "pin"
                ]
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "name": null,
                    "extension_number": null,
                    "prompt": null,
                    "enable_pin": null,
                    "pin": null,
                    "enable_email_notify": null,
                    "recipients": null,
                    "play_datetime": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of shared voicemail.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "The ID of created resource",
                    "value": {
                      "id": "xxxxxxxx"
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "get": {
        "tags": [
          "Shared Voicemail"
        ],
        "operationId": "listSharedVoicemails",
        "x-category": "call-features",
        "x-subcategory": "shared-voicemails",
        "x-permissions": [
          "PhoneSystem.ViewOnly"
        ],
        "summary": "List shared voicemails.",
        "description": "Retrieve a collection of shared voicemails.\n",
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Use the `filter` query parameter to retrieve just a subset of a collection.\n"
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "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",
            "required": false,
            "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",
            "required": false,
            "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",
            "required": false,
            "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,
                      "example": 100,
                      "description": "Total number of resource.\n"
                    },
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "description": "The unique ID of shared voicemail.\n"
                          },
                          "name": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 64,
                            "description": "The name of shared voicemail.\n"
                          },
                          "extension_number": {
                            "type": "string",
                            "minLength": 3,
                            "maxLength": 64,
                            "pattern": "[0-9]{3,64}",
                            "description": "The extension number.\n"
                          },
                          "prompt": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "en-US",
                                "description": "BCP 47 Language Tags (The Internet Best Current Practices (BCP) for language tags).\nA language tag is composed of a sequence of one or more subtags such as language, region, variant and script subtags.\nWhen a language tag is comprised of more than one subtag, the subtag values are separated by the \"-\" character.\nYou will most commonly find language tags written with 2 subtags - language and region. For example: en-US.\n"
                              }
                            ],
                            "description": "The prompt set name of shared voicemail.\n"
                          },
                          "enable_pin": {
                            "type": "boolean",
                            "default": true,
                            "description": "Whether the PIN is required to access shared voicemail.\n"
                          },
                          "pin": {
                            "type": "string",
                            "description": "The PIN number for accessing.\n"
                          },
                          "enable_email_notify": {
                            "type": "boolean",
                            "default": false,
                            "description": "Enable email notify or not.\n"
                          },
                          "recipients": {
                            "type": "string",
                            "description": "Comma-separated list of email address that should receive notifications.   \nAllow up to 15 email addresses.\n"
                          },
                          "play_datetime": {
                            "type": "string",
                            "enum": [
                              "DISABLE",
                              "12_HOUR_CLOCK",
                              "24_HOUR_CLOCK"
                            ],
                            "description": "Announces Date and Time of Message.\n- `DISABLE`: Do not read;\n- `12_HOUR_CLOCK`: Read in 12-hour clock;\n- `24_HOUR_CLOCK`: Read in 24-hour clock.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": null,
                          "name": null,
                          "extension_number": null,
                          "prompt": null,
                          "enable_pin": null,
                          "pin": null,
                          "enable_email_notify": null,
                          "recipients": null,
                          "play_datetime": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/shared_voicemails/{id}": {
      "get": {
        "tags": [
          "Shared Voicemail"
        ],
        "operationId": "retrieveSharedVoicemail",
        "x-category": "call-features",
        "x-subcategory": "shared-voicemails",
        "x-permissions": [
          "PhoneSystem.ViewOnly"
        ],
        "summary": "Retrieve a shared voicemail",
        "description": "Retrieve shared voicemail by ID.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of shared voicemail.\n"
            },
            "description": "The unique ID of the shared voicemail."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of shared voicemail.\n"
                    },
                    "name": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64,
                      "description": "The name of shared voicemail.\n"
                    },
                    "extension_number": {
                      "type": "string",
                      "minLength": 3,
                      "maxLength": 64,
                      "pattern": "[0-9]{3,64}",
                      "description": "The extension number.\n"
                    },
                    "prompt": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "en-US",
                          "description": "BCP 47 Language Tags (The Internet Best Current Practices (BCP) for language tags).\nA language tag is composed of a sequence of one or more subtags such as language, region, variant and script subtags.\nWhen a language tag is comprised of more than one subtag, the subtag values are separated by the \"-\" character.\nYou will most commonly find language tags written with 2 subtags - language and region. For example: en-US.\n"
                        }
                      ],
                      "description": "The prompt set name of shared voicemail.\n"
                    },
                    "enable_pin": {
                      "type": "boolean",
                      "default": true,
                      "description": "Whether the PIN is required to access shared voicemail.\n"
                    },
                    "pin": {
                      "type": "string",
                      "description": "The PIN number for accessing.\n"
                    },
                    "enable_email_notify": {
                      "type": "boolean",
                      "default": false,
                      "description": "Enable email notify or not.\n"
                    },
                    "recipients": {
                      "type": "string",
                      "description": "Comma-separated list of email address that should receive notifications.   \nAllow up to 15 email addresses.\n"
                    },
                    "play_datetime": {
                      "type": "string",
                      "enum": [
                        "DISABLE",
                        "12_HOUR_CLOCK",
                        "24_HOUR_CLOCK"
                      ],
                      "description": "Announces Date and Time of Message.\n- `DISABLE`: Do not read;\n- `12_HOUR_CLOCK`: Read in 12-hour clock;\n- `24_HOUR_CLOCK`: Read in 24-hour clock.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "id": null,
                      "name": null,
                      "extension_number": null,
                      "prompt": null,
                      "enable_pin": null,
                      "pin": null,
                      "enable_email_notify": null,
                      "recipients": null,
                      "play_datetime": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "post": {
        "tags": [
          "Shared Voicemail"
        ],
        "operationId": "updateSharedVoicemail",
        "x-category": "call-features",
        "x-subcategory": "shared-voicemails",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Update a shared voicemail",
        "description": "Update a shared voicemail\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of shared voicemail.\n"
            },
            "description": "The unique ID of the shared voicemail."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64,
                    "description": "The name of shared voicemail.\n"
                  },
                  "prompt": {
                    "allOf": [
                      {
                        "type": "string",
                        "example": "en-US",
                        "description": "BCP 47 Language Tags (The Internet Best Current Practices (BCP) for language tags).\nA language tag is composed of a sequence of one or more subtags such as language, region, variant and script subtags.\nWhen a language tag is comprised of more than one subtag, the subtag values are separated by the \"-\" character.\nYou will most commonly find language tags written with 2 subtags - language and region. For example: en-US.\n"
                      }
                    ],
                    "description": "The prompt set name of shared voicemail.\n"
                  },
                  "enable_pin": {
                    "type": "boolean",
                    "default": true,
                    "description": "Whether the PIN is required to access shared voicemail.\n"
                  },
                  "pin": {
                    "type": "string",
                    "description": "The PIN number for accessing.\n"
                  },
                  "enable_email_notify": {
                    "type": "boolean",
                    "default": false,
                    "description": "Enable email notify or not.\n"
                  },
                  "recipients": {
                    "type": "string",
                    "description": "Comma-separated list of email address that should receive notifications.   \nAllow up to 15 email addresses.\n"
                  },
                  "play_datetime": {
                    "type": "string",
                    "enum": [
                      "DISABLE",
                      "12_HOUR_CLOCK",
                      "24_HOUR_CLOCK"
                    ],
                    "description": "Announces Date and Time of Message.\n- `DISABLE`: Do not read;\n- `12_HOUR_CLOCK`: Read in 12-hour clock;\n- `24_HOUR_CLOCK`: Read in 24-hour clock.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "name": null,
                    "prompt": null,
                    "enable_pin": null,
                    "pin": null,
                    "enable_email_notify": null,
                    "recipients": null,
                    "play_datetime": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/shared_voicemails/{id}/destroy": {
      "post": {
        "tags": [
          "Shared Voicemail"
        ],
        "operationId": "deleteSharedVoicemail",
        "x-category": "call-features",
        "x-subcategory": "shared-voicemails",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Destroy a shared voicemail",
        "description": "Destroy a shared voicemail\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of shared voicemail.\n"
            },
            "description": "The unique ID of the shared voicemail."
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Invalid ring group ID supplied."
          }
        }
      }
    },
    "/shared_voicemails/{id}/voicemails": {
      "get": {
        "tags": [
          "Shared Voicemail"
        ],
        "operationId": "listSharedVoicemailMails",
        "x-category": "call-features",
        "x-subcategory": "shared-voicemails",
        "x-permissions": [
          "PhoneSystem.ViewOnly"
        ],
        "summary": "List shared voicemail mails",
        "description": "Retrieve a collection of shared voicemail mails.\n",
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Use the `filter` query parameter to retrieve just a subset of a collection.\n"
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "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",
            "required": false,
            "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",
            "required": false,
            "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",
            "required": false,
            "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"
          },
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of shared voicemail.\n"
            },
            "description": "The unique ID of the shared voicemail."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "count": {
                      "type": "integer",
                      "format": "int64",
                      "minimum": 0,
                      "example": 100,
                      "description": "Total number of resource.\n"
                    },
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "description": "The unique ID of voicemail.\n"
                          },
                          "sender": {
                            "type": "string",
                            "description": "The sender number of the voicemail.\n"
                          },
                          "created_at": {
                            "allOf": [
                              {
                                "type": "string",
                                "format": "date_time",
                                "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                                "example": "2017-07-21T17:32:28Z"
                              }
                            ],
                            "description": "The creation time of voicemail.\n"
                          },
                          "duration": {
                            "type": "integer",
                            "format": "int32",
                            "description": "The playback time (in seconds).\n"
                          },
                          "status": {
                            "type": "string",
                            "enum": [
                              "READ",
                              "UNREAD"
                            ],
                            "description": "Status of the voicemail includes:\n- `READ`: read mail\n- `UNREAD`: unread mail\n"
                          },
                          "file_name": {
                            "type": "string",
                            "description": "The name of the file.\n"
                          },
                          "file_size": {
                            "type": "integer",
                            "format": "int64",
                            "minimum": 0,
                            "example": 0,
                            "description": "The file size in bytes.\n"
                          },
                          "file_url": {
                            "type": "string",
                            "readOnly": true,
                            "example": "/api/blobs/WexWdABcd5D4PDgzTKV3gAAAEu00WcK",
                            "description": "The relative path to file url for file downloading.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": null,
                          "sender": null,
                          "created_at": null,
                          "duration": null,
                          "status": null,
                          "file_name": null,
                          "file_size": null,
                          "file_url": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/shared_voicemails/{id}/voicemails/{mail_id}": {
      "get": {
        "tags": [
          "Shared Voicemail"
        ],
        "operationId": "retrieveSharedVoicemailMail",
        "x-category": "call-features",
        "x-subcategory": "shared-voicemails",
        "x-permissions": [
          "PhoneSystem.ViewOnly"
        ],
        "summary": "Retrieve a shared voicemail mail",
        "description": "Retrieve shared voicemail mail details.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of shared voicemail.\n"
            },
            "description": "The unique ID of the shared voicemail."
          },
          {
            "name": "mail_id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of voicemail.\n"
            },
            "description": "The unique ID of voicemail."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of voicemail.\n"
                    },
                    "sender": {
                      "type": "string",
                      "description": "The sender number of the voicemail.\n"
                    },
                    "created_at": {
                      "allOf": [
                        {
                          "type": "string",
                          "format": "date_time",
                          "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                          "example": "2017-07-21T17:32:28Z"
                        }
                      ],
                      "description": "The creation time of voicemail.\n"
                    },
                    "duration": {
                      "type": "integer",
                      "format": "int32",
                      "description": "The playback time (in seconds).\n"
                    },
                    "status": {
                      "type": "string",
                      "enum": [
                        "READ",
                        "UNREAD"
                      ],
                      "description": "Status of the voicemail includes:\n- `READ`: read mail\n- `UNREAD`: unread mail\n"
                    },
                    "file_name": {
                      "type": "string",
                      "description": "The name of the file.\n"
                    },
                    "file_size": {
                      "type": "integer",
                      "format": "int64",
                      "minimum": 0,
                      "example": 0,
                      "description": "The file size in bytes.\n"
                    },
                    "file_url": {
                      "type": "string",
                      "readOnly": true,
                      "example": "/api/blobs/WexWdABcd5D4PDgzTKV3gAAAEu00WcK",
                      "description": "The relative path to file url for file downloading.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "id": null,
                      "sender": null,
                      "created_at": null,
                      "duration": null,
                      "status": null,
                      "file_name": null,
                      "file_size": null,
                      "file_url": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/shared_voicemails/{id}/voicemails/{mail_id}/set_read": {
      "post": {
        "tags": [
          "Shared Voicemail"
        ],
        "operationId": "setSharedVoicemailMailRead",
        "x-category": "call-features",
        "x-subcategory": "shared-voicemails",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Update shared voicemail mail status to read",
        "description": "Update shared voicemail mail status to read\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of shared voicemail.\n"
            },
            "description": "The unique ID of the shared voicemail."
          },
          {
            "name": "mail_id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of voicemail.\n"
            },
            "description": "The unique ID of voicemail."
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Invalid voicemail ID supplied"
          }
        }
      }
    },
    "/shared_voicemails/{id}/voicemails/{mail_id}/set_unread": {
      "post": {
        "tags": [
          "Shared Voicemail"
        ],
        "operationId": "setSharedVoicemailMailUnread",
        "x-category": "call-features",
        "x-subcategory": "shared-voicemails",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Update shared voicemail mail status to unread",
        "description": "Update shared voicemail mail status to unread\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of shared voicemail.\n"
            },
            "description": "The unique ID of the shared voicemail."
          },
          {
            "name": "mail_id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of voicemail.\n"
            },
            "description": "The unique ID of voicemail."
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Invalid voicemail ID supplied"
          }
        }
      }
    },
    "/shared_voicemails/{id}/voicemails/{mail_id}/destroy": {
      "post": {
        "tags": [
          "Shared Voicemail"
        ],
        "operationId": "deleteSharedVoicemailMail",
        "x-category": "call-features",
        "x-subcategory": "shared-voicemails",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Delete a shared voicemail mail",
        "description": "Remove a mail from shared voicemail.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of shared voicemail.\n"
            },
            "description": "The unique ID of the shared voicemail."
          },
          {
            "name": "mail_id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of voicemail.\n"
            },
            "description": "The unique ID of voicemail."
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Invalid voicemail ID supplied"
          },
          "404": {
            "description": "User not found"
          }
        }
      }
    },
    "/shared_voicemails/{id}/greetings": {
      "post": {
        "tags": [
          "Shared Voicemail"
        ],
        "operationId": "createGreetingForSharedVoicemail",
        "x-category": "call-features",
        "x-subcategory": "shared-voicemails",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Create voicemail greeting for shared voicemail",
        "description": "Create voicemail greeting for shared voicemail.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of shared voicemail.\n"
            },
            "description": "The unique ID of the shared voicemail."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "file_id": {
                    "allOf": [
                      {
                        "type": "string",
                        "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                        "description": "The unique ID of the resource.\n"
                      }
                    ],
                    "description": "The unique ID of the file.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "file_id": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of greeting.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "The ID of created resource",
                    "value": {
                      "id": "xxxxxxxx"
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "get": {
        "tags": [
          "Shared Voicemail"
        ],
        "operationId": "listSharedVoicemailGreetings",
        "x-category": "call-features",
        "x-subcategory": "shared-voicemails",
        "x-permissions": [
          "PhoneSystem.ViewOnly"
        ],
        "summary": "List shared voicemail greetings",
        "description": "Retrieves a collection of greetings of shared voicemail.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of shared voicemail.\n"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "description": "The unique ID of greeting.\n"
                          },
                          "enabled": {
                            "type": "boolean",
                            "description": "Whether the greeting is enabled or not.\n"
                          },
                          "file_name": {
                            "type": "string",
                            "description": "The name of the file.\n"
                          },
                          "file_size": {
                            "type": "integer",
                            "format": "int64",
                            "minimum": 0,
                            "example": 0,
                            "description": "The file size in bytes.\n"
                          },
                          "file_url": {
                            "type": "string",
                            "readOnly": true,
                            "example": "/api/blobs/WexWdABcd5D4PDgzTKV3gAAAEu00WcK",
                            "description": "The relative path to file url for file downloading.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "items": [
                        {
                          "id": null,
                          "enabled": null,
                          "file_name": null,
                          "file_size": null,
                          "file_url": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/shared_voicemails/{id}/greetings/{greeting_id}/enable": {
      "post": {
        "tags": [
          "Shared Voicemail"
        ],
        "operationId": "enableSharedVoicemailGreeting",
        "x-category": "call-features",
        "x-subcategory": "shared-voicemails",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Enable one of shared voicemail's greetings.",
        "description": "Set one of shared voicemail's greetings to activated state.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of shared voicemail.\n"
            }
          },
          {
            "name": "greeting_id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of greeting.\n"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "404": {
            "description": "User not found"
          }
        }
      }
    },
    "/shared_voicemails/{id}/greetings/{greeting_id}/disable": {
      "post": {
        "tags": [
          "Shared Voicemail"
        ],
        "operationId": "disableSharedVoicemailGreeting",
        "x-category": "call-features",
        "x-subcategory": "shared-voicemails",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Disable shared voicemail greeting",
        "description": "Disable shared voicemail greeting by it's unique ID.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of shared voicemail.\n"
            }
          },
          {
            "name": "greeting_id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of greeting.\n"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "404": {
            "description": "User not found"
          }
        }
      }
    },
    "/shared_voicemails/{id}/greetings/{greeting_id}/destroy": {
      "post": {
        "tags": [
          "Shared Voicemail"
        ],
        "operationId": "delSharedVoicemailGreeting",
        "x-category": "call-features",
        "x-subcategory": "shared-voicemails",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Delete shared voicemail greeting",
        "description": "Destroy a greeting from shared voicemail.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of shared voicemail.\n"
            }
          },
          {
            "name": "greeting_id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of greeting.\n"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/holidays": {
      "post": {
        "tags": [
          "Tenant"
        ],
        "operationId": "createHoliday",
        "x-category": "tenants",
        "x-subcategory": "tenants",
        "x-permissions": [
          "Company.FullAccess"
        ],
        "summary": "Create a new holiday",
        "description": "Create a new holiday\n",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64,
                    "description": "The name of the holiday.\n"
                  },
                  "region": {
                    "type": "string",
                    "description": "A valid country code based on iso3166-1 alpha-3 standard. see: https://www.iso.org/iso-3166-country-codes.html\n"
                  },
                  "consecutive": {
                    "type": "boolean",
                    "description": "Whether the holiday consists of consecutive days.\n"
                  },
                  "every_year": {
                    "type": "boolean",
                    "description": "Does the holiday take effect every year.\n"
                  },
                  "year_start": {
                    "type": "integer",
                    "description": "The start year of holiday.\n"
                  },
                  "year_end": {
                    "type": "integer",
                    "description": "The start year of holiday.\n"
                  },
                  "month_start": {
                    "type": "integer",
                    "description": "The start month of holiday.\n"
                  },
                  "month_end": {
                    "type": "integer",
                    "description": "The end month of holiday.\n"
                  },
                  "day_start": {
                    "type": "integer",
                    "description": "The start day of holiday.\n"
                  },
                  "day_end": {
                    "type": "integer",
                    "description": "The end day of holiday.\n"
                  },
                  "hour_start": {
                    "type": "integer",
                    "description": "The start hour of holiday.\n"
                  },
                  "hour_end": {
                    "type": "integer",
                    "description": "The end hour of holiday.\n"
                  },
                  "minute_start": {
                    "type": "integer",
                    "description": "The start minute of holiday.\n"
                  },
                  "minute_end": {
                    "type": "integer",
                    "description": "The end minute of holiday.\n"
                  }
                },
                "required": [
                  "name",
                  "region",
                  "consecutive",
                  "every_year"
                ]
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "name": null,
                    "region": null,
                    "consecutive": null,
                    "every_year": null,
                    "year_start": null,
                    "year_end": null,
                    "month_start": null,
                    "month_end": null,
                    "day_start": null,
                    "day_end": null,
                    "hour_start": null,
                    "hour_end": null,
                    "minute_start": null,
                    "minute_end": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "readOnly": true,
                      "description": "The unique ID of holiday.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "The ID of created resource",
                    "value": {
                      "id": "xxxxxxxx"
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "get": {
        "tags": [
          "Tenant"
        ],
        "operationId": "listHolidays",
        "x-category": "tenants",
        "x-subcategory": "tenants",
        "x-permissions": [
          "Company.ViewOnly"
        ],
        "summary": "List holidays",
        "description": "Retrieve a collection of holiday entries.\n",
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Use the `filter` query parameter to retrieve just a subset of a collection.\n"
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "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",
            "required": false,
            "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",
            "required": false,
            "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",
            "required": false,
            "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,
                      "example": 100,
                      "description": "Total number of resource.\n"
                    },
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "readOnly": true,
                            "description": "The unique ID of holiday.\n"
                          },
                          "name": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 64,
                            "description": "The name of the holiday.\n"
                          },
                          "region": {
                            "type": "string",
                            "description": "A valid country code based on iso3166-1 alpha-3 standard. see: https://www.iso.org/iso-3166-country-codes.html\n"
                          },
                          "consecutive": {
                            "type": "boolean",
                            "description": "Whether the holiday consists of consecutive days.\n"
                          },
                          "every_year": {
                            "type": "boolean",
                            "description": "Does the holiday take effect every year.\n"
                          },
                          "year_start": {
                            "type": "integer",
                            "description": "The start year of holiday.\n"
                          },
                          "year_end": {
                            "type": "integer",
                            "description": "The start year of holiday.\n"
                          },
                          "month_start": {
                            "type": "integer",
                            "description": "The start month of holiday.\n"
                          },
                          "month_end": {
                            "type": "integer",
                            "description": "The end month of holiday.\n"
                          },
                          "day_start": {
                            "type": "integer",
                            "description": "The start day of holiday.\n"
                          },
                          "day_end": {
                            "type": "integer",
                            "description": "The end day of holiday.\n"
                          },
                          "hour_start": {
                            "type": "integer",
                            "description": "The start hour of holiday.\n"
                          },
                          "hour_end": {
                            "type": "integer",
                            "description": "The end hour of holiday.\n"
                          },
                          "minute_start": {
                            "type": "integer",
                            "description": "The start minute of holiday.\n"
                          },
                          "minute_end": {
                            "type": "integer",
                            "description": "The end minute of holiday.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": null,
                          "name": null,
                          "region": null,
                          "consecutive": null,
                          "every_year": null,
                          "year_start": null,
                          "year_end": null,
                          "month_start": null,
                          "month_end": null,
                          "day_start": null,
                          "day_end": null,
                          "hour_start": null,
                          "hour_end": null,
                          "minute_start": null,
                          "minute_end": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/holidays/{id}": {
      "get": {
        "tags": [
          "Tenant"
        ],
        "operationId": "showHoliday",
        "x-category": "tenants",
        "x-subcategory": "tenants",
        "x-permissions": [
          "Company.ViewOnly"
        ],
        "summary": "Retrieve a holiday",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "readOnly": true,
              "description": "The unique ID of holiday.\n"
            },
            "description": "The unique ID of the holiday."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "readOnly": true,
                      "description": "The unique ID of holiday.\n"
                    },
                    "name": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64,
                      "description": "The name of the holiday.\n"
                    },
                    "region": {
                      "type": "string",
                      "description": "A valid country code based on iso3166-1 alpha-3 standard. see: https://www.iso.org/iso-3166-country-codes.html\n"
                    },
                    "consecutive": {
                      "type": "boolean",
                      "description": "Whether the holiday consists of consecutive days.\n"
                    },
                    "every_year": {
                      "type": "boolean",
                      "description": "Does the holiday take effect every year.\n"
                    },
                    "year_start": {
                      "type": "integer",
                      "description": "The start year of holiday.\n"
                    },
                    "year_end": {
                      "type": "integer",
                      "description": "The start year of holiday.\n"
                    },
                    "month_start": {
                      "type": "integer",
                      "description": "The start month of holiday.\n"
                    },
                    "month_end": {
                      "type": "integer",
                      "description": "The end month of holiday.\n"
                    },
                    "day_start": {
                      "type": "integer",
                      "description": "The start day of holiday.\n"
                    },
                    "day_end": {
                      "type": "integer",
                      "description": "The end day of holiday.\n"
                    },
                    "hour_start": {
                      "type": "integer",
                      "description": "The start hour of holiday.\n"
                    },
                    "hour_end": {
                      "type": "integer",
                      "description": "The end hour of holiday.\n"
                    },
                    "minute_start": {
                      "type": "integer",
                      "description": "The start minute of holiday.\n"
                    },
                    "minute_end": {
                      "type": "integer",
                      "description": "The end minute of holiday.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "id": null,
                      "name": null,
                      "region": null,
                      "consecutive": null,
                      "every_year": null,
                      "year_start": null,
                      "year_end": null,
                      "month_start": null,
                      "month_end": null,
                      "day_start": null,
                      "day_end": null,
                      "hour_start": null,
                      "hour_end": null,
                      "minute_start": null,
                      "minute_end": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "post": {
        "tags": [
          "Tenant"
        ],
        "operationId": "updateHoliday",
        "x-category": "tenants",
        "x-subcategory": "tenants",
        "x-permissions": [
          "Company.FullAccess"
        ],
        "summary": "Update a holiday",
        "description": "Update a holiday that already exists.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "readOnly": true,
              "description": "The unique ID of holiday.\n"
            },
            "description": "The unique ID of the holiday."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64,
                    "description": "The name of the holiday.\n"
                  },
                  "region": {
                    "type": "string",
                    "description": "A valid country code based on iso3166-1 alpha-3 standard. see: https://www.iso.org/iso-3166-country-codes.html\n"
                  },
                  "consecutive": {
                    "type": "boolean",
                    "description": "Whether the holiday consists of consecutive days.\n"
                  },
                  "every_year": {
                    "type": "boolean",
                    "description": "Does the holiday take effect every year.\n"
                  },
                  "year_start": {
                    "type": "integer",
                    "description": "The start year of holiday.\n"
                  },
                  "year_end": {
                    "type": "integer",
                    "description": "The start year of holiday.\n"
                  },
                  "month_start": {
                    "type": "integer",
                    "description": "The start month of holiday.\n"
                  },
                  "month_end": {
                    "type": "integer",
                    "description": "The end month of holiday.\n"
                  },
                  "day_start": {
                    "type": "integer",
                    "description": "The start day of holiday.\n"
                  },
                  "day_end": {
                    "type": "integer",
                    "description": "The end day of holiday.\n"
                  },
                  "hour_start": {
                    "type": "integer",
                    "description": "The start hour of holiday.\n"
                  },
                  "hour_end": {
                    "type": "integer",
                    "description": "The end hour of holiday.\n"
                  },
                  "minute_start": {
                    "type": "integer",
                    "description": "The start minute of holiday.\n"
                  },
                  "minute_end": {
                    "type": "integer",
                    "description": "The end minute of holiday.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "name": null,
                    "region": null,
                    "consecutive": null,
                    "every_year": null,
                    "year_start": null,
                    "year_end": null,
                    "month_start": null,
                    "month_end": null,
                    "day_start": null,
                    "day_end": null,
                    "hour_start": null,
                    "hour_end": null,
                    "minute_start": null,
                    "minute_end": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/holidays/{id}/destroy": {
      "post": {
        "tags": [
          "Tenant"
        ],
        "operationId": "deleteHoliday",
        "x-category": "tenants",
        "x-subcategory": "tenants",
        "x-permissions": [
          "Company.FullAccess"
        ],
        "summary": "Destroy a holiday",
        "description": "Destroy a certain holiday entry.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "readOnly": true,
              "description": "The unique ID of holiday.\n"
            },
            "description": "The unique ID of the holiday."
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Invalid rule ID supplied."
          }
        }
      }
    },
    "/allowed_country_codes": {
      "get": {
        "tags": [
          "Security"
        ],
        "operationId": "listAllowedCodes",
        "x-category": "tenants",
        "x-subcategory": "security",
        "x-permissions": [
          "PhoneSystem.ViewOnly"
        ],
        "summary": "List allowed region or country codes",
        "description": "List allowed region or country codes.\n",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 32,
                        "description": "Country calling codes or country dial-in codes.\n"
                      },
                      "description": "A collection of allowed region or country codes.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "items": [
                        "xxx",
                        "yyy"
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "post": {
        "tags": [
          "Security"
        ],
        "operationId": "updateAllowedCode",
        "x-category": "tenants",
        "x-subcategory": "security",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Update allowed region or country codes.",
        "description": "Update allowed region or country codes.\n",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "items": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 32,
                      "description": "Country calling codes or country dial-in codes.\n"
                    },
                    "description": "A collection of allowed region or country codes.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "items": [
                      "xxx",
                      "yyy"
                    ]
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/disallowed_codes": {
      "post": {
        "tags": [
          "Security"
        ],
        "operationId": "createBlockCode",
        "x-category": "tenants",
        "x-subcategory": "security",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Create a block code",
        "description": "Create a block code.\n",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "number_prefix": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 16,
                    "description": "The number prefix of blocked code.  \nAn alphanumeric sequence beginning with an optional plus sign.\n"
                  },
                  "description": {
                    "type": "string",
                    "maxLength": 1024,
                    "description": "The description of blocked code.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "number_prefix": null,
                    "description": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                      "description": "The unique ID of the resource.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "The ID of created resource",
                    "value": {
                      "id": "xxxxxxxx"
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "get": {
        "tags": [
          "Security"
        ],
        "operationId": "listBlockCodes",
        "x-category": "tenants",
        "x-subcategory": "security",
        "x-permissions": [
          "PhoneSystem.ViewOnly"
        ],
        "summary": "List block codes",
        "description": "List block codes.\n",
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Use the `filter` query parameter to retrieve just a subset of a collection.\n"
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "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",
            "required": false,
            "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",
            "required": false,
            "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",
            "required": false,
            "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,
                      "example": 100,
                      "description": "Total number of resource.\n"
                    },
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "description": "The unique ID of blocked code.\n"
                          },
                          "number_prefix": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 16,
                            "description": "The number prefix of blocked code.  \nAn alphanumeric sequence beginning with an optional plus sign.\n"
                          },
                          "description": {
                            "type": "string",
                            "maxLength": 1024,
                            "description": "The description of blocked code.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": null,
                          "number_prefix": null,
                          "description": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/disallowed_codes/{id}": {
      "get": {
        "tags": [
          "Security"
        ],
        "operationId": "showBlockCode",
        "x-category": "tenants",
        "x-subcategory": "security",
        "x-permissions": [
          "PhoneSystem.ViewOnly"
        ],
        "summary": "Retrieve blocked code",
        "description": "Retrieve details of blocked code by it's unique ID.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
              "description": "The unique ID of the resource.\n"
            },
            "description": "The unique ID of the blocked code."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of blocked code.\n"
                    },
                    "number_prefix": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 16,
                      "description": "The number prefix of blocked code.  \nAn alphanumeric sequence beginning with an optional plus sign.\n"
                    },
                    "description": {
                      "type": "string",
                      "maxLength": 1024,
                      "description": "The description of blocked code.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "id": null,
                      "number_prefix": null,
                      "description": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "post": {
        "tags": [
          "Security"
        ],
        "operationId": "updateBlockCode",
        "x-category": "tenants",
        "x-subcategory": "security",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Update a blocked code",
        "description": "Update a blocked code by it's ID.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
              "description": "The unique ID of the resource.\n"
            },
            "description": "The unique ID of the code."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "allOf": [
                      {
                        "type": "string",
                        "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                        "description": "The unique ID of the resource.\n"
                      }
                    ],
                    "description": "The unique ID of blocked code.\n"
                  },
                  "number_prefix": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 16,
                    "description": "The number prefix of blocked code.  \nAn alphanumeric sequence beginning with an optional plus sign.\n"
                  },
                  "description": {
                    "type": "string",
                    "maxLength": 1024,
                    "description": "The description of blocked code.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "number_prefix": null,
                    "description": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/disallowed_codes/{id}/destroy": {
      "post": {
        "tags": [
          "Security"
        ],
        "operationId": "deleteBlockCode",
        "x-category": "tenants",
        "x-subcategory": "security",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Destroy disallowed codes",
        "description": "Destroy disallowed codes",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
              "description": "The unique ID of the resource.\n"
            },
            "description": "The unique ID of the code."
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Invalid entry ID supplied"
          },
          "404": {
            "description": "User not found"
          }
        }
      }
    },
    "/disallowed_codes/export": {
      "get": {
        "tags": [
          "Security"
        ],
        "operationId": "exportBlockedCodes",
        "x-category": "tenants",
        "x-subcategory": "security",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Export disallowed codes",
        "description": "Export a collection of disallowed codes to file.\n",
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "Content-Disposition": {
                "schema": {
                  "type": "string"
                },
                "description": "The format is `attachment; filename=\"example\"`\n"
              }
            },
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/blacklisted_numbers": {
      "post": {
        "tags": [
          "Security"
        ],
        "operationId": "createBlacklistedNumber",
        "x-category": "call-features",
        "x-subcategory": "blocklist",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Create new blacklisted number",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "number": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64,
                    "description": "An alphanumeric sequence beginning with an optional plus sign.\n"
                  },
                  "expire_at": {
                    "allOf": [
                      {
                        "type": "string",
                        "format": "date_time",
                        "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                        "example": "2017-07-21T17:32:28Z"
                      }
                    ],
                    "description": "Blacklisted number's expire time.\n"
                  },
                  "description": {
                    "type": "string",
                    "maxLength": 255,
                    "description": "Remarks for the blacklisted number.\n"
                  }
                },
                "required": [
                  "number"
                ]
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "number": null,
                    "expire_at": null,
                    "description": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of this blacklisted number.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "The ID of created resource",
                    "value": {
                      "id": "xxxxxxxx"
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "get": {
        "tags": [
          "Security"
        ],
        "operationId": "listBlacklistedNumbers",
        "x-category": "call-features",
        "x-subcategory": "blocklist",
        "x-permissions": [
          "PhoneSystem.ViewOnly"
        ],
        "summary": "List blacklisted numbers",
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Use the `filter` query parameter to retrieve just a subset of a collection.\n"
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "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",
            "required": false,
            "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",
            "required": false,
            "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",
            "required": false,
            "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,
                      "example": 100,
                      "description": "Total number of resource.\n"
                    },
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "description": "The unique ID of this blacklisted number.\n"
                          },
                          "number": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 64,
                            "description": "An alphanumeric sequence beginning with an optional plus sign.\n"
                          },
                          "expire_at": {
                            "allOf": [
                              {
                                "type": "string",
                                "format": "date_time",
                                "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                                "example": "2017-07-21T17:32:28Z"
                              }
                            ],
                            "description": "Blacklisted number's expire time.\n"
                          },
                          "created_at": {
                            "allOf": [
                              {
                                "type": "string",
                                "format": "date_time",
                                "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                                "example": "2017-07-21T17:32:28Z"
                              }
                            ],
                            "description": "Blacklisted number's creation time.\n"
                          },
                          "updated_at": {
                            "allOf": [
                              {
                                "type": "string",
                                "format": "date_time",
                                "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                                "example": "2017-07-21T17:32:28Z"
                              }
                            ],
                            "description": "Blacklisted number's last updated time.\n"
                          },
                          "description": {
                            "type": "string",
                            "maxLength": 255,
                            "description": "Remarks for the blacklisted number.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": null,
                          "number": null,
                          "expire_at": null,
                          "created_at": null,
                          "updated_at": null,
                          "description": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/blacklisted_numbers/{id}": {
      "get": {
        "tags": [
          "Security"
        ],
        "operationId": "showBlacklistedNumber",
        "x-category": "call-features",
        "x-subcategory": "blocklist",
        "x-permissions": [
          "PhoneSystem.ViewOnly"
        ],
        "summary": "Show blacklisted number",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of this blacklisted number.\n"
            },
            "description": "The unique ID of the blacklisted number."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of this blacklisted number.\n"
                    },
                    "number": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64,
                      "description": "An alphanumeric sequence beginning with an optional plus sign.\n"
                    },
                    "expire_at": {
                      "allOf": [
                        {
                          "type": "string",
                          "format": "date_time",
                          "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                          "example": "2017-07-21T17:32:28Z"
                        }
                      ],
                      "description": "Blacklisted number's expire time.\n"
                    },
                    "created_at": {
                      "allOf": [
                        {
                          "type": "string",
                          "format": "date_time",
                          "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                          "example": "2017-07-21T17:32:28Z"
                        }
                      ],
                      "description": "Blacklisted number's creation time.\n"
                    },
                    "updated_at": {
                      "allOf": [
                        {
                          "type": "string",
                          "format": "date_time",
                          "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                          "example": "2017-07-21T17:32:28Z"
                        }
                      ],
                      "description": "Blacklisted number's last updated time.\n"
                    },
                    "description": {
                      "type": "string",
                      "maxLength": 255,
                      "description": "Remarks for the blacklisted number.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "id": null,
                      "number": null,
                      "expire_at": null,
                      "created_at": null,
                      "updated_at": null,
                      "description": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "post": {
        "tags": [
          "Security"
        ],
        "operationId": "updateBlacklistedNumber",
        "x-category": "call-features",
        "x-subcategory": "blocklist",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Update blacklisted number",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of this blacklisted number.\n"
            },
            "description": "The unique ID of the blacklisted number."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "number": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64,
                    "description": "An alphanumeric sequence beginning with an optional plus sign.\n"
                  },
                  "expire_at": {
                    "allOf": [
                      {
                        "type": "string",
                        "format": "date_time",
                        "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                        "example": "2017-07-21T17:32:28Z"
                      }
                    ],
                    "description": "Blacklisted number's expire time.\n"
                  },
                  "description": {
                    "type": "string",
                    "maxLength": 255,
                    "description": "Remarks for the blacklisted number.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "number": null,
                    "expire_at": null,
                    "description": null
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/blacklisted_numbers/{id}/destroy": {
      "post": {
        "tags": [
          "Security"
        ],
        "operationId": "deleteBlacklistedNumber",
        "x-category": "call-features",
        "x-subcategory": "blocklist",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Destroy blacklisted number",
        "description": "Destroy blacklisted number\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of this blacklisted number.\n"
            },
            "description": "The unique ID of the blacklisted number."
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Invalid entry ID supplied"
          }
        }
      }
    },
    "/blacklisted_numbers/export": {
      "get": {
        "tags": [
          "Security"
        ],
        "operationId": "exportBlacklistedNumbers",
        "x-category": "call-features",
        "x-subcategory": "blocklist",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Export number blacklists",
        "description": "Export a collection of number blacklists to file.\n",
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "Content-Disposition": {
                "schema": {
                  "type": "string"
                },
                "description": "the format is `attachment; filename=\"example\"`"
              }
            },
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/call_rates": {
      "post": {
        "tags": [
          "Billing"
        ],
        "operationId": "createCallRate",
        "x-category": "billing",
        "x-subcategory": "billing",
        "x-permissions": [
          "Billing.FullAccess"
        ],
        "summary": "Create a call rate",
        "description": "Add a new call rate into system.\n",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "prefix": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64,
                    "description": "The call prefix of the rating.\n"
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "LOCAL",
                      "NATIONAL",
                      "INTERNATIONAL",
                      "MOBILE"
                    ],
                    "default": "LOCAL",
                    "description": "The type of the rating:  \nCan be either:  \n- `LOCAL`:  \n- `NATIONAL`:  \n- `INTERNATIONAL`:  \n- `MOBILE`:\n"
                  },
                  "free_seconds": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 0,
                    "description": "Free seconds of the rating.\n"
                  },
                  "grace_period": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 0,
                    "description": "Grace period of the rating.\n"
                  },
                  "interval_1": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 1,
                    "description": "The first interval of the rating.\n"
                  },
                  "interval_n": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 1,
                    "description": "The subsequent interval of the rating after the first one.\n"
                  },
                  "connect_fee": {
                    "type": "number",
                    "format": "double",
                    "minimum": 0,
                    "description": "Connect fee of the rating. Precision is five digits.\n"
                  },
                  "postcall_surcharge": {
                    "type": "number",
                    "format": "double",
                    "minimum": 0,
                    "description": "Postcall surcharge of the rating. Precision is five digits.\n"
                  },
                  "price_1": {
                    "type": "number",
                    "format": "double",
                    "minimum": 0,
                    "description": "The price of the first interval. Precision is five digits.\n"
                  },
                  "price_n": {
                    "type": "number",
                    "format": "double",
                    "minimum": 0,
                    "description": "The price of the subsequent interval after the first one. Precision is five digits.\n"
                  },
                  "description": {
                    "type": "string",
                    "maxLength": 1024,
                    "description": "The description text for this rule.\n"
                  }
                },
                "required": [
                  "prefix",
                  "type",
                  "free_seconds",
                  "grace_period",
                  "interval_1",
                  "interval_n",
                  "connect_fee",
                  "postcall_surcharge",
                  "price_1",
                  "price_n"
                ]
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "prefix": null,
                    "type": null,
                    "free_seconds": null,
                    "grace_period": null,
                    "interval_1": null,
                    "interval_n": null,
                    "connect_fee": null,
                    "postcall_surcharge": null,
                    "price_1": null,
                    "price_n": null,
                    "description": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of billing.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "The ID of created resource",
                    "value": {
                      "id": "xxxxxxxx"
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "get": {
        "tags": [
          "Billing"
        ],
        "operationId": "listCallRates",
        "x-category": "billing",
        "x-subcategory": "billing",
        "x-permissions": [
          "Billing.ViewOnly"
        ],
        "summary": "List call rates",
        "description": "Retrieve a collection of call rates\n",
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Use the `filter` query parameter to retrieve just a subset of a collection.\n"
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "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",
            "required": false,
            "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",
            "required": false,
            "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",
            "required": false,
            "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,
                      "example": 100,
                      "description": "Total number of resource.\n"
                    },
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "description": "The unique ID of billing.\n"
                          },
                          "prefix": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 64,
                            "description": "The call prefix of the rating.\n"
                          },
                          "type": {
                            "type": "string",
                            "enum": [
                              "LOCAL",
                              "NATIONAL",
                              "INTERNATIONAL",
                              "MOBILE"
                            ],
                            "default": "LOCAL",
                            "description": "The type of the rating:  \nCan be either:  \n- `LOCAL`:  \n- `NATIONAL`:  \n- `INTERNATIONAL`:  \n- `MOBILE`:\n"
                          },
                          "free_seconds": {
                            "type": "integer",
                            "format": "int32",
                            "minimum": 0,
                            "description": "Free seconds of the rating.\n"
                          },
                          "grace_period": {
                            "type": "integer",
                            "format": "int32",
                            "minimum": 0,
                            "description": "Grace period of the rating.\n"
                          },
                          "interval_1": {
                            "type": "integer",
                            "format": "int32",
                            "minimum": 1,
                            "description": "The first interval of the rating.\n"
                          },
                          "interval_n": {
                            "type": "integer",
                            "format": "int32",
                            "minimum": 1,
                            "description": "The subsequent interval of the rating after the first one.\n"
                          },
                          "postcall_surcharge": {
                            "type": "number",
                            "format": "double",
                            "minimum": 0,
                            "description": "Postcall surcharge of the rating. Precision is five digits.\n"
                          },
                          "price_1": {
                            "type": "number",
                            "format": "double",
                            "minimum": 0,
                            "description": "The price of the first interval. Precision is five digits.\n"
                          },
                          "price_n": {
                            "type": "number",
                            "format": "double",
                            "minimum": 0,
                            "description": "The price of the subsequent interval after the first one. Precision is five digits.\n"
                          },
                          "description": {
                            "type": "string",
                            "maxLength": 1024,
                            "description": "The description text for this rule.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": null,
                          "prefix": null,
                          "type": null,
                          "free_seconds": null,
                          "grace_period": null,
                          "interval_1": null,
                          "interval_n": null,
                          "postcall_surcharge": null,
                          "price_1": null,
                          "price_n": null,
                          "description": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/call_rates/{id}": {
      "get": {
        "tags": [
          "Billing"
        ],
        "operationId": "getCallRate",
        "x-category": "billing",
        "x-subcategory": "billing",
        "x-permissions": [
          "Billing.ViewOnly"
        ],
        "summary": "Retrieve a call rate",
        "description": "Retrieve call rate by it's unique ID.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of billing.\n"
            },
            "description": "The unique ID of the call rate."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of billing.\n"
                    },
                    "prefix": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64,
                      "description": "The call prefix of the rating.\n"
                    },
                    "type": {
                      "type": "string",
                      "enum": [
                        "LOCAL",
                        "NATIONAL",
                        "INTERNATIONAL",
                        "MOBILE"
                      ],
                      "default": "LOCAL",
                      "description": "The type of the rating:  \nCan be either:  \n- `LOCAL`:  \n- `NATIONAL`:  \n- `INTERNATIONAL`:  \n- `MOBILE`:\n"
                    },
                    "free_seconds": {
                      "type": "integer",
                      "format": "int32",
                      "minimum": 0,
                      "description": "Free seconds of the rating.\n"
                    },
                    "grace_period": {
                      "type": "integer",
                      "format": "int32",
                      "minimum": 0,
                      "description": "Grace period of the rating.\n"
                    },
                    "interval_1": {
                      "type": "integer",
                      "format": "int32",
                      "minimum": 1,
                      "description": "The first interval of the rating.\n"
                    },
                    "interval_n": {
                      "type": "integer",
                      "format": "int32",
                      "minimum": 1,
                      "description": "The subsequent interval of the rating after the first one.\n"
                    },
                    "connect_fee": {
                      "type": "number",
                      "format": "double",
                      "minimum": 0,
                      "description": "Connect fee of the rating. Precision is five digits.\n"
                    },
                    "postcall_surcharge": {
                      "type": "number",
                      "format": "double",
                      "minimum": 0,
                      "description": "Postcall surcharge of the rating. Precision is five digits.\n"
                    },
                    "price_1": {
                      "type": "number",
                      "format": "double",
                      "minimum": 0,
                      "description": "The price of the first interval. Precision is five digits.\n"
                    },
                    "price_n": {
                      "type": "number",
                      "format": "double",
                      "minimum": 0,
                      "description": "The price of the subsequent interval after the first one. Precision is five digits.\n"
                    },
                    "description": {
                      "type": "string",
                      "maxLength": 1024,
                      "description": "The description text for this rule.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "id": null,
                      "prefix": null,
                      "type": null,
                      "free_seconds": null,
                      "grace_period": null,
                      "interval_1": null,
                      "interval_n": null,
                      "connect_fee": null,
                      "postcall_surcharge": null,
                      "price_1": null,
                      "price_n": null,
                      "description": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "post": {
        "tags": [
          "Billing"
        ],
        "operationId": "updateCallRate",
        "x-category": "billing",
        "x-subcategory": "billing",
        "x-permissions": [
          "Billing.FullAccess"
        ],
        "summary": "Update a call rate",
        "description": "Update call rate.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of billing.\n"
            },
            "description": "The unique ID of the call rate."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "prefix": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64,
                    "description": "The call prefix of the rating.\n"
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "LOCAL",
                      "NATIONAL",
                      "INTERNATIONAL",
                      "MOBILE"
                    ],
                    "default": "LOCAL",
                    "description": "The type of the rating:  \nCan be either:  \n- `LOCAL`:  \n- `NATIONAL`:  \n- `INTERNATIONAL`:  \n- `MOBILE`:\n"
                  },
                  "free_seconds": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 0,
                    "description": "Free seconds of the rating.\n"
                  },
                  "grace_period": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 0,
                    "description": "Grace period of the rating.\n"
                  },
                  "interval_1": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 1,
                    "description": "The first interval of the rating.\n"
                  },
                  "interval_n": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 1,
                    "description": "The subsequent interval of the rating after the first one.\n"
                  },
                  "connect_fee": {
                    "type": "number",
                    "format": "double",
                    "minimum": 0,
                    "description": "Connect fee of the rating. Precision is five digits.\n"
                  },
                  "postcall_surcharge": {
                    "type": "number",
                    "format": "double",
                    "minimum": 0,
                    "description": "Postcall surcharge of the rating. Precision is five digits.\n"
                  },
                  "price_1": {
                    "type": "number",
                    "format": "double",
                    "minimum": 0,
                    "description": "The price of the first interval. Precision is five digits.\n"
                  },
                  "price_n": {
                    "type": "number",
                    "format": "double",
                    "minimum": 0,
                    "description": "The price of the subsequent interval after the first one. Precision is five digits.\n"
                  },
                  "description": {
                    "type": "string",
                    "maxLength": 1024,
                    "description": "The description text for this rule.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "prefix": null,
                    "type": null,
                    "free_seconds": null,
                    "grace_period": null,
                    "interval_1": null,
                    "interval_n": null,
                    "connect_fee": null,
                    "postcall_surcharge": null,
                    "price_1": null,
                    "price_n": null,
                    "description": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/call_rates/{id}/destroy": {
      "post": {
        "tags": [
          "Billing"
        ],
        "operationId": "deleteCallRate",
        "x-category": "billing",
        "x-subcategory": "billing",
        "x-permissions": [
          "Billing.FullAccess"
        ],
        "summary": "Delete a call rate",
        "description": "Destroy a call rate.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of billing.\n"
            },
            "description": "The unique ID of the call rate."
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/call_rates/export": {
      "get": {
        "tags": [
          "Billing"
        ],
        "operationId": "exportCallRates",
        "x-category": "billing",
        "x-subcategory": "billing",
        "x-permissions": [
          "Billing.FullAccess"
        ],
        "summary": "Export call rates",
        "description": "Export a collection of call rates to file.\n",
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "Content-Disposition": {
                "schema": {
                  "type": "string"
                },
                "description": "the format is `attachment; filename=\"example\"`"
              }
            },
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/ivr_servers": {
      "post": {
        "tags": [
          "Virtual Receptionist"
        ],
        "operationId": "createVrServer",
        "x-category": "system-management",
        "x-subcategory": "ivr-servers",
        "x-permissions": [
          "SystemSettings.FullAccess"
        ],
        "summary": "Create a virtual receptionist server",
        "description": "Create a virtual receptionist server.  \nPlease note that: at least one of ipv4 or ipv6 must be specified.\n",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64,
                    "description": "The name of virtual receptionist server.\n"
                  },
                  "enabled": {
                    "type": "boolean",
                    "default": true,
                    "description": "The activate status or deactivated status.\n"
                  },
                  "ipv4": {
                    "type": "string",
                    "description": "Host IPV4 address.\n"
                  },
                  "ipv6": {
                    "type": "string",
                    "description": "Host IPV6 address.\n"
                  }
                },
                "required": [
                  "name"
                ]
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "name": null,
                    "enabled": null,
                    "ipv4": null,
                    "ipv6": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of virtual receptionist server.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "The ID of created resource",
                    "value": {
                      "id": "xxxxxxxx"
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "get": {
        "tags": [
          "Virtual Receptionist"
        ],
        "operationId": "listVrServers",
        "x-category": "system-management",
        "x-subcategory": "ivr-servers",
        "x-permissions": [
          "SystemSettings.ViewOnly"
        ],
        "summary": "List virtual receptionist servers",
        "description": "List virtual receptionist servers.\n",
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Use the `filter` query parameter to retrieve just a subset of a collection.\n"
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "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",
            "required": false,
            "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",
            "required": false,
            "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",
            "required": false,
            "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,
                      "example": 100,
                      "description": "Total number of resource.\n"
                    },
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "description": "The unique ID of virtual receptionist server.\n"
                          },
                          "name": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 64,
                            "description": "The name of virtual receptionist server.\n"
                          },
                          "enabled": {
                            "type": "boolean",
                            "default": true,
                            "description": "The activate status or deactivated status.\n"
                          },
                          "type": {
                            "type": "string",
                            "enum": [
                              "INTERNAL",
                              "EXTERNAL"
                            ],
                            "readOnly": true,
                            "description": "Every PortSIP PBX has a built-in virtual receptionist server marked as `INTERNAL`;   \nNewly added virtual receptionist servers will be marked as \"EXTERNAL\".\n"
                          },
                          "ipv4": {
                            "type": "string",
                            "description": "Host IPV4 address.\n"
                          },
                          "ipv6": {
                            "type": "string",
                            "description": "Host IPV6 address.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": null,
                          "name": null,
                          "enabled": null,
                          "type": null,
                          "ipv4": null,
                          "ipv6": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/ivr_servers/{id}": {
      "get": {
        "tags": [
          "Virtual Receptionist"
        ],
        "operationId": "showIvrServer",
        "x-category": "system-management",
        "x-subcategory": "ivr-servers",
        "x-permissions": [
          "SystemSettings.ViewOnly"
        ],
        "summary": "Retrieve a virtual receptionist server",
        "description": "Retrieve a virtual receptionist server.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of virtual receptionist server.\n"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of virtual receptionist server.\n"
                    },
                    "name": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64,
                      "description": "The name of virtual receptionist server.\n"
                    },
                    "enabled": {
                      "type": "boolean",
                      "default": true,
                      "description": "The activate status or deactivated status.\n"
                    },
                    "ipv4": {
                      "type": "string",
                      "description": "Host IPV4 address.\n"
                    },
                    "ipv6": {
                      "type": "string",
                      "description": "Host IPV6 address.\n"
                    },
                    "type": {
                      "type": "string",
                      "enum": [
                        "INTERNAL",
                        "EXTERNAL"
                      ],
                      "readOnly": true,
                      "description": "Every PortSIP PBX has a built-in virtual receptionist server marked as `INTERNAL`;   \nNewly added virtual receptionist servers will be marked as \"EXTERNAL\".\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "id": null,
                      "name": null,
                      "enabled": null,
                      "ipv4": null,
                      "ipv6": null,
                      "type": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "post": {
        "tags": [
          "Virtual Receptionist"
        ],
        "operationId": "updateVrServer",
        "x-category": "system-management",
        "x-subcategory": "ivr-servers",
        "x-permissions": [
          "SystemSettings.FullAccess"
        ],
        "summary": "Update a virtual receptionist server",
        "description": "Update a virtual receptionist server.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of virtual receptionist server.\n"
            },
            "description": "The unique ID of the virtual receptionist server."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "enabled": {
                    "type": "boolean",
                    "default": true,
                    "description": "The activate status or deactivated status.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "enabled": true
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/ivr_servers/{id}/status": {
      "get": {
        "tags": [
          "Virtual Receptionist"
        ],
        "operationId": "getVrServerStatus",
        "x-category": "system-management",
        "x-subcategory": "ivr-servers",
        "x-permissions": [
          "SystemSettings.ViewOnly"
        ],
        "summary": "Query virtual receptionist server status",
        "description": "Retrieve a virtual receptionist server's status.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of virtual receptionist server.\n"
            },
            "description": "The unique ID of the virtual receptionist server."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "readOnly": true,
                  "properties": {
                    "cpu_usage": {
                      "type": "integer",
                      "description": "CPU usage.\n"
                    },
                    "memory_usage": {
                      "type": "integer",
                      "description": "Memory usage.\n"
                    },
                    "status": {
                      "type": "string",
                      "enum": [
                        "ONLINE",
                        "OFFLINE"
                      ],
                      "description": "Call queue's status:   \n- `ONLINE`: The virtual receptionist server is online.\n- `OFFLINE`: The virtual receptionist server is offline.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "cpu_usage": null,
                      "memory_usage": null,
                      "status": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/ivr_servers/{id}/destroy": {
      "post": {
        "tags": [
          "Virtual Receptionist"
        ],
        "operationId": "deleteVrServer",
        "x-category": "system-management",
        "x-subcategory": "ivr-servers",
        "x-permissions": [
          "SystemSettings.FullAccess"
        ],
        "summary": "Delete a virtual receptionist server",
        "description": "Delete a virtual receptionist server\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of virtual receptionist server.\n"
            },
            "description": "The unique ID of the virtual receptionist server."
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Invalid server id supplied"
          },
          "404": {
            "description": "Server not found"
          }
        }
      }
    },
    "/ivrs": {
      "post": {
        "tags": [
          "Virtual Receptionist"
        ],
        "operationId": "createVr",
        "x-category": "call-features",
        "x-subcategory": "ivrs",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Create a virtual receptionist.",
        "description": "Add a new virtual receptionist into system.\n",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64,
                    "description": "The name of virtual receptionist.\n"
                  },
                  "extension_number": {
                    "type": "string",
                    "minLength": 3,
                    "maxLength": 64,
                    "pattern": "[0-9]{3,64}",
                    "description": "The extension number.\n"
                  },
                  "language": {
                    "type": "string",
                    "example": "en-US",
                    "description": "BCP 47 Language Tags (The Internet Best Current Practices (BCP) for language tags).\nA language tag is composed of a sequence of one or more subtags such as language, region, variant and script subtags.\nWhen a language tag is comprised of more than one subtag, the subtag values are separated by the \"-\" character.\nYou will most commonly find language tags written with 2 subtags - language and region. For example: en-US.\n"
                  },
                  "dtmf_interval": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 1,
                    "default": 2,
                    "description": "The time to wait for the next DTMF input.\n"
                  },
                  "prompt_file_id": {
                    "allOf": [
                      {
                        "type": "string",
                        "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                        "description": "The unique ID of the resource.\n"
                      }
                    ],
                    "description": "The unique ID of the file.\n"
                  },
                  "transfer_prompt_file_id": {
                    "allOf": [
                      {
                        "type": "string",
                        "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                        "description": "The unique ID of the resource.\n"
                      }
                    ],
                    "description": "The unique ID of the file.\n"
                  },
                  "enable_pin": {
                    "type": "boolean",
                    "default": true,
                    "description": "Whether the PIN is required for DISA.\n"
                  },
                  "pin": {
                    "type": "string",
                    "description": "The PIN number for accessing.\n"
                  },
                  "enable_night_mode": {
                    "type": "boolean",
                    "default": false,
                    "description": "Whether to enable night mode.\n"
                  },
                  "exclude_list": {
                    "type": "string",
                    "description": "The comma-separated list of extension numbers that cannot be dialed directly.\n"
                  },
                  "timeout_forward_rule": {
                    "type": "object",
                    "properties": {
                      "timeout": {
                        "type": "integer",
                        "default": 30,
                        "description": "Single call timeout\n"
                      },
                      "repeat_times": {
                        "type": "integer",
                        "format": "int32",
                        "minimum": 0,
                        "default": 3,
                        "description": "When timeout, the number of times to repeat the prompt tone\n"
                      },
                      "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"
                      }
                    }
                  },
                  "failure_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"
                      }
                    }
                  },
                  "custom_forward_rules": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "user_input": {
                          "type": "string",
                          "description": "User input.\n"
                        },
                        "office_hours": {
                          "allOf": [
                            {
                              "type": "object",
                              "properties": {
                                "mode": {
                                  "type": "string",
                                  "enum": [
                                    "GLOBAL",
                                    "CUSTOM"
                                  ],
                                  "example": "CUSTOM",
                                  "description": "The office hours mode can be either:  \n- `GLOBAL`: Use global office hours.\n- `CUSTOM`: Use specific office hours.\n"
                                }
                              }
                            },
                            {
                              "type": "object",
                              "properties": {
                                "monday": {
                                  "type": "object",
                                  "properties": {
                                    "enabled": {
                                      "type": "boolean",
                                      "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                    },
                                    "ranges": {
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "from": {
                                            "type": "string",
                                            "example": "09:00",
                                            "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                          },
                                          "to": {
                                            "type": "string",
                                            "example": "17:00",
                                            "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                          }
                                        }
                                      },
                                      "description": "Multiple start and end time periods make up the working time.\n"
                                    }
                                  }
                                },
                                "tuesday": {
                                  "type": "object",
                                  "properties": {
                                    "enabled": {
                                      "type": "boolean",
                                      "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                    },
                                    "ranges": {
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "from": {
                                            "type": "string",
                                            "example": "09:00",
                                            "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                          },
                                          "to": {
                                            "type": "string",
                                            "example": "17:00",
                                            "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                          }
                                        }
                                      },
                                      "description": "Multiple start and end time periods make up the working time.\n"
                                    }
                                  }
                                },
                                "wednesday": {
                                  "type": "object",
                                  "properties": {
                                    "enabled": {
                                      "type": "boolean",
                                      "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                    },
                                    "ranges": {
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "from": {
                                            "type": "string",
                                            "example": "09:00",
                                            "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                          },
                                          "to": {
                                            "type": "string",
                                            "example": "17:00",
                                            "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                          }
                                        }
                                      },
                                      "description": "Multiple start and end time periods make up the working time.\n"
                                    }
                                  }
                                },
                                "thursday": {
                                  "type": "object",
                                  "properties": {
                                    "enabled": {
                                      "type": "boolean",
                                      "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                    },
                                    "ranges": {
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "from": {
                                            "type": "string",
                                            "example": "09:00",
                                            "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                          },
                                          "to": {
                                            "type": "string",
                                            "example": "17:00",
                                            "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                          }
                                        }
                                      },
                                      "description": "Multiple start and end time periods make up the working time.\n"
                                    }
                                  }
                                },
                                "friday": {
                                  "type": "object",
                                  "properties": {
                                    "enabled": {
                                      "type": "boolean",
                                      "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                    },
                                    "ranges": {
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "from": {
                                            "type": "string",
                                            "example": "09:00",
                                            "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                          },
                                          "to": {
                                            "type": "string",
                                            "example": "17:00",
                                            "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                          }
                                        }
                                      },
                                      "description": "Multiple start and end time periods make up the working time.\n"
                                    }
                                  }
                                },
                                "saturday": {
                                  "type": "object",
                                  "properties": {
                                    "enabled": {
                                      "type": "boolean",
                                      "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                    },
                                    "ranges": {
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "from": {
                                            "type": "string",
                                            "example": "09:00",
                                            "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                          },
                                          "to": {
                                            "type": "string",
                                            "example": "17:00",
                                            "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                          }
                                        }
                                      },
                                      "description": "Multiple start and end time periods make up the working time.\n"
                                    }
                                  }
                                },
                                "sunday": {
                                  "type": "object",
                                  "properties": {
                                    "enabled": {
                                      "type": "boolean",
                                      "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                    },
                                    "ranges": {
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "from": {
                                            "type": "string",
                                            "example": "09:00",
                                            "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                          },
                                          "to": {
                                            "type": "string",
                                            "example": "17:00",
                                            "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                          }
                                        }
                                      },
                                      "description": "Multiple start and end time periods make up the working time.\n"
                                    }
                                  }
                                }
                              }
                            }
                          ]
                        },
                        "office_hours_forward_rule": {
                          "type": "object",
                          "properties": {
                            "action": {
                              "type": "string",
                              "enum": [
                                "FORWARD_TO_NUMBER",
                                "FORWARD_TO_VOICEMAIL",
                                "REPEAT",
                                "HANGUP",
                                "DISA"
                              ],
                              "description": "Forward rule actions for DTMF:   \nCan be either:   \n- `FORWARD_TO_NUMBER`:\n- `FORWARD_TO_VOICEMAIL`:\n- `REPEAT`:\n- `HANGUP`:\n- `DISA`:\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"
                            }
                          }
                        },
                        "non_office_hours_forward_rule": {
                          "type": "object",
                          "properties": {
                            "action": {
                              "type": "string",
                              "enum": [
                                "FORWARD_TO_NUMBER",
                                "FORWARD_TO_VOICEMAIL",
                                "REPEAT",
                                "HANGUP",
                                "DISA"
                              ],
                              "description": "Forward rule actions for DTMF:   \nCan be either:   \n- `FORWARD_TO_NUMBER`:\n- `FORWARD_TO_VOICEMAIL`:\n- `REPEAT`:\n- `HANGUP`:\n- `DISA`:\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"
                            }
                          }
                        },
                        "holidays": {
                          "type": "array",
                          "items": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "readOnly": true,
                            "description": "The unique ID of holiday.\n"
                          },
                          "description": "A collection of ID of tenant's holiday.\n"
                        },
                        "holiday_forward_rule": {
                          "type": "object",
                          "properties": {
                            "action": {
                              "type": "string",
                              "enum": [
                                "FORWARD_TO_NUMBER",
                                "FORWARD_TO_VOICEMAIL",
                                "REPEAT",
                                "HANGUP",
                                "DISA"
                              ],
                              "description": "Forward rule actions for DTMF:   \nCan be either:   \n- `FORWARD_TO_NUMBER`:\n- `FORWARD_TO_VOICEMAIL`:\n- `REPEAT`:\n- `HANGUP`:\n- `DISA`:\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",
                                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                  "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"
                  }
                },
                "required": [
                  "name",
                  "extension_number",
                  "pin"
                ]
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "name": null,
                    "extension_number": null,
                    "language": null,
                    "dtmf_interval": null,
                    "prompt_file_id": null,
                    "transfer_prompt_file_id": null,
                    "enable_pin": null,
                    "pin": null,
                    "enable_night_mode": null,
                    "exclude_list": null,
                    "timeout_forward_rule": null,
                    "failure_forward_rule": null,
                    "night_mode_forward_rule": null,
                    "custom_forward_rules": null,
                    "outbound_caller_ids": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of virtual receptionist.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "The ID of created resource",
                    "value": {
                      "id": "xxxxxxxx"
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "get": {
        "tags": [
          "Virtual Receptionist"
        ],
        "operationId": "listVrs",
        "x-category": "call-features",
        "x-subcategory": "ivrs",
        "x-permissions": [
          "PhoneSystem.ViewOnly"
        ],
        "summary": "Lists virtual receptionists",
        "description": "Retrieve a collection of virtual receptionists.\n",
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Use the `filter` query parameter to retrieve just a subset of a collection.\n"
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "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",
            "required": false,
            "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",
            "required": false,
            "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",
            "required": false,
            "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,
                      "example": 100,
                      "description": "Total number of resource.\n"
                    },
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "description": "The unique ID of virtual receptionist.\n"
                          },
                          "name": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 64,
                            "description": "The name of virtual receptionist.\n"
                          },
                          "extension_number": {
                            "type": "string",
                            "minLength": 3,
                            "maxLength": 64,
                            "pattern": "[0-9]{3,64}",
                            "description": "The extension number.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": null,
                          "name": null,
                          "extension_number": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/ivrs/{id}": {
      "get": {
        "tags": [
          "Virtual Receptionist"
        ],
        "operationId": "getIvr",
        "x-category": "call-features",
        "x-subcategory": "ivrs",
        "x-permissions": [
          "PhoneSystem.ViewOnly"
        ],
        "summary": "Retrieve a virtual receptionist",
        "description": "Retrieve virtual receptionists server by it's unique ID.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
              "description": "The unique ID of the resource.\n"
            },
            "description": "The unique ID of the virtual receptionist."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of virtual receptionist.\n"
                    },
                    "name": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64,
                      "description": "The name of virtual receptionist.\n"
                    },
                    "extension_number": {
                      "type": "string",
                      "minLength": 3,
                      "maxLength": 64,
                      "pattern": "[0-9]{3,64}",
                      "description": "The extension number.\n"
                    },
                    "language": {
                      "type": "string",
                      "example": "en-US",
                      "description": "BCP 47 Language Tags (The Internet Best Current Practices (BCP) for language tags).\nA language tag is composed of a sequence of one or more subtags such as language, region, variant and script subtags.\nWhen a language tag is comprised of more than one subtag, the subtag values are separated by the \"-\" character.\nYou will most commonly find language tags written with 2 subtags - language and region. For example: en-US.\n"
                    },
                    "dtmf_interval": {
                      "type": "integer",
                      "format": "int32",
                      "minimum": 1,
                      "default": 2,
                      "description": "The time to wait for the next DTMF input.\n"
                    },
                    "prompt_file_name": {
                      "type": "string",
                      "description": "The name of the file.\n"
                    },
                    "prompt_file_size": {
                      "type": "integer",
                      "format": "int64",
                      "minimum": 0,
                      "example": 0,
                      "description": "The file size in bytes.\n"
                    },
                    "prompt_file_url": {
                      "type": "string",
                      "readOnly": true,
                      "example": "/api/blobs/WexWdABcd5D4PDgzTKV3gAAAEu00WcK",
                      "description": "The relative path to file url for file downloading.\n"
                    },
                    "transfer_prompt_file_name": {
                      "type": "string",
                      "description": "The name of the file.\n"
                    },
                    "transfer_prompt_file_size": {
                      "type": "integer",
                      "format": "int64",
                      "minimum": 0,
                      "example": 0,
                      "description": "The file size in bytes.\n"
                    },
                    "transfer_prompt_file_url": {
                      "type": "string",
                      "readOnly": true,
                      "example": "/api/blobs/WexWdABcd5D4PDgzTKV3gAAAEu00WcK",
                      "description": "The relative path to file url for file downloading.\n"
                    },
                    "enable_pin": {
                      "type": "boolean",
                      "default": true,
                      "description": "Whether the PIN is required for DISA.\n"
                    },
                    "pin": {
                      "type": "string",
                      "description": "The PIN number for accessing.\n"
                    },
                    "enable_night_mode": {
                      "type": "boolean",
                      "default": false,
                      "description": "Whether to enable night mode.\n"
                    },
                    "exclude_list": {
                      "type": "string",
                      "description": "The comma-separated list of extension numbers that cannot be dialed directly.\n"
                    },
                    "timeout_forward_rule": {
                      "type": "object",
                      "properties": {
                        "timeout": {
                          "type": "integer",
                          "default": 30,
                          "description": "Single call timeout\n"
                        },
                        "repeat_times": {
                          "type": "integer",
                          "format": "int32",
                          "minimum": 0,
                          "default": 3,
                          "description": "When timeout, the number of times to repeat the prompt tone\n"
                        },
                        "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"
                        }
                      }
                    },
                    "failure_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"
                        }
                      }
                    },
                    "custom_forward_rules": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "user_input": {
                            "type": "string",
                            "description": "User input.\n"
                          },
                          "office_hours": {
                            "allOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "mode": {
                                    "type": "string",
                                    "enum": [
                                      "GLOBAL",
                                      "CUSTOM"
                                    ],
                                    "example": "CUSTOM",
                                    "description": "The office hours mode can be either:  \n- `GLOBAL`: Use global office hours.\n- `CUSTOM`: Use specific office hours.\n"
                                  }
                                }
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "monday": {
                                    "type": "object",
                                    "properties": {
                                      "enabled": {
                                        "type": "boolean",
                                        "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                      },
                                      "ranges": {
                                        "type": "array",
                                        "items": {
                                          "type": "object",
                                          "properties": {
                                            "from": {
                                              "type": "string",
                                              "example": "09:00",
                                              "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                            },
                                            "to": {
                                              "type": "string",
                                              "example": "17:00",
                                              "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                            }
                                          }
                                        },
                                        "description": "Multiple start and end time periods make up the working time.\n"
                                      }
                                    }
                                  },
                                  "tuesday": {
                                    "type": "object",
                                    "properties": {
                                      "enabled": {
                                        "type": "boolean",
                                        "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                      },
                                      "ranges": {
                                        "type": "array",
                                        "items": {
                                          "type": "object",
                                          "properties": {
                                            "from": {
                                              "type": "string",
                                              "example": "09:00",
                                              "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                            },
                                            "to": {
                                              "type": "string",
                                              "example": "17:00",
                                              "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                            }
                                          }
                                        },
                                        "description": "Multiple start and end time periods make up the working time.\n"
                                      }
                                    }
                                  },
                                  "wednesday": {
                                    "type": "object",
                                    "properties": {
                                      "enabled": {
                                        "type": "boolean",
                                        "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                      },
                                      "ranges": {
                                        "type": "array",
                                        "items": {
                                          "type": "object",
                                          "properties": {
                                            "from": {
                                              "type": "string",
                                              "example": "09:00",
                                              "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                            },
                                            "to": {
                                              "type": "string",
                                              "example": "17:00",
                                              "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                            }
                                          }
                                        },
                                        "description": "Multiple start and end time periods make up the working time.\n"
                                      }
                                    }
                                  },
                                  "thursday": {
                                    "type": "object",
                                    "properties": {
                                      "enabled": {
                                        "type": "boolean",
                                        "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                      },
                                      "ranges": {
                                        "type": "array",
                                        "items": {
                                          "type": "object",
                                          "properties": {
                                            "from": {
                                              "type": "string",
                                              "example": "09:00",
                                              "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                            },
                                            "to": {
                                              "type": "string",
                                              "example": "17:00",
                                              "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                            }
                                          }
                                        },
                                        "description": "Multiple start and end time periods make up the working time.\n"
                                      }
                                    }
                                  },
                                  "friday": {
                                    "type": "object",
                                    "properties": {
                                      "enabled": {
                                        "type": "boolean",
                                        "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                      },
                                      "ranges": {
                                        "type": "array",
                                        "items": {
                                          "type": "object",
                                          "properties": {
                                            "from": {
                                              "type": "string",
                                              "example": "09:00",
                                              "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                            },
                                            "to": {
                                              "type": "string",
                                              "example": "17:00",
                                              "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                            }
                                          }
                                        },
                                        "description": "Multiple start and end time periods make up the working time.\n"
                                      }
                                    }
                                  },
                                  "saturday": {
                                    "type": "object",
                                    "properties": {
                                      "enabled": {
                                        "type": "boolean",
                                        "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                      },
                                      "ranges": {
                                        "type": "array",
                                        "items": {
                                          "type": "object",
                                          "properties": {
                                            "from": {
                                              "type": "string",
                                              "example": "09:00",
                                              "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                            },
                                            "to": {
                                              "type": "string",
                                              "example": "17:00",
                                              "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                            }
                                          }
                                        },
                                        "description": "Multiple start and end time periods make up the working time.\n"
                                      }
                                    }
                                  },
                                  "sunday": {
                                    "type": "object",
                                    "properties": {
                                      "enabled": {
                                        "type": "boolean",
                                        "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                      },
                                      "ranges": {
                                        "type": "array",
                                        "items": {
                                          "type": "object",
                                          "properties": {
                                            "from": {
                                              "type": "string",
                                              "example": "09:00",
                                              "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                            },
                                            "to": {
                                              "type": "string",
                                              "example": "17:00",
                                              "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                            }
                                          }
                                        },
                                        "description": "Multiple start and end time periods make up the working time.\n"
                                      }
                                    }
                                  }
                                }
                              }
                            ]
                          },
                          "office_hours_forward_rule": {
                            "type": "object",
                            "properties": {
                              "action": {
                                "type": "string",
                                "enum": [
                                  "FORWARD_TO_NUMBER",
                                  "FORWARD_TO_VOICEMAIL",
                                  "REPEAT",
                                  "HANGUP",
                                  "DISA"
                                ],
                                "description": "Forward rule actions for DTMF:   \nCan be either:   \n- `FORWARD_TO_NUMBER`:\n- `FORWARD_TO_VOICEMAIL`:\n- `REPEAT`:\n- `HANGUP`:\n- `DISA`:\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"
                              }
                            }
                          },
                          "non_office_hours_forward_rule": {
                            "type": "object",
                            "properties": {
                              "action": {
                                "type": "string",
                                "enum": [
                                  "FORWARD_TO_NUMBER",
                                  "FORWARD_TO_VOICEMAIL",
                                  "REPEAT",
                                  "HANGUP",
                                  "DISA"
                                ],
                                "description": "Forward rule actions for DTMF:   \nCan be either:   \n- `FORWARD_TO_NUMBER`:\n- `FORWARD_TO_VOICEMAIL`:\n- `REPEAT`:\n- `HANGUP`:\n- `DISA`:\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"
                              }
                            }
                          },
                          "holidays": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "id": {
                                  "allOf": [
                                    {
                                      "type": "string",
                                      "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                      "description": "The unique ID of the resource.\n"
                                    }
                                  ],
                                  "readOnly": true,
                                  "description": "The unique ID of holiday.\n"
                                },
                                "name": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 64,
                                  "description": "The name of the holiday.\n"
                                },
                                "region": {
                                  "type": "string",
                                  "description": "A valid country code based on iso3166-1 alpha-3 standard. see: https://www.iso.org/iso-3166-country-codes.html\n"
                                },
                                "consecutive": {
                                  "type": "boolean",
                                  "description": "Whether the holiday consists of consecutive days.\n"
                                },
                                "every_year": {
                                  "type": "boolean",
                                  "description": "Does the holiday take effect every year.\n"
                                },
                                "year_start": {
                                  "type": "integer",
                                  "description": "The start year of holiday.\n"
                                },
                                "year_end": {
                                  "type": "integer",
                                  "description": "The end year of holiday.\n"
                                },
                                "month_start": {
                                  "type": "integer",
                                  "description": "The start month of holiday.\n"
                                },
                                "month_end": {
                                  "type": "integer",
                                  "description": "The end month of holiday.\n"
                                },
                                "day_start": {
                                  "type": "integer",
                                  "description": "The start day of holiday.\n"
                                },
                                "day_end": {
                                  "type": "integer",
                                  "description": "The end day of holiday.\n"
                                },
                                "hour_start": {
                                  "type": "integer",
                                  "description": "The start hour of holiday.\n"
                                },
                                "hour_end": {
                                  "type": "integer",
                                  "description": "The end hour of holiday.\n"
                                },
                                "minute_start": {
                                  "type": "integer",
                                  "description": "The start minute of holiday.\n"
                                },
                                "minute_end": {
                                  "type": "integer",
                                  "description": "The end minute of holiday.\n"
                                }
                              }
                            }
                          },
                          "holiday_forward_rule": {
                            "type": "object",
                            "properties": {
                              "action": {
                                "type": "string",
                                "enum": [
                                  "FORWARD_TO_NUMBER",
                                  "FORWARD_TO_VOICEMAIL",
                                  "REPEAT",
                                  "HANGUP",
                                  "DISA"
                                ],
                                "description": "Forward rule actions for DTMF:   \nCan be either:   \n- `FORWARD_TO_NUMBER`:\n- `FORWARD_TO_VOICEMAIL`:\n- `REPEAT`:\n- `HANGUP`:\n- `DISA`:\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",
                                    "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                    "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"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "id": null,
                      "name": null,
                      "extension_number": null,
                      "language": null,
                      "dtmf_interval": null,
                      "prompt_file_name": null,
                      "prompt_file_size": null,
                      "prompt_file_url": null,
                      "transfer_prompt_file_name": null,
                      "transfer_prompt_file_size": null,
                      "transfer_prompt_file_url": null,
                      "enable_pin": null,
                      "pin": null,
                      "enable_night_mode": null,
                      "exclude_list": null,
                      "timeout_forward_rule": null,
                      "failure_forward_rule": null,
                      "night_mode_forward_rule": null,
                      "custom_forward_rules": null,
                      "outbound_caller_ids": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "post": {
        "tags": [
          "Virtual Receptionist"
        ],
        "operationId": "updateVr",
        "x-category": "call-features",
        "x-subcategory": "ivrs",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Update a virtual receptionist",
        "description": "Update a virtual receptionist\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of virtual receptionist.\n"
            },
            "description": "The unique ID of the virtual receptionist."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64,
                    "description": "The name of virtual receptionist.\n"
                  },
                  "language": {
                    "type": "string",
                    "example": "en-US",
                    "description": "BCP 47 Language Tags (The Internet Best Current Practices (BCP) for language tags).\nA language tag is composed of a sequence of one or more subtags such as language, region, variant and script subtags.\nWhen a language tag is comprised of more than one subtag, the subtag values are separated by the \"-\" character.\nYou will most commonly find language tags written with 2 subtags - language and region. For example: en-US.\n"
                  },
                  "dtmf_interval": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 1,
                    "default": 2,
                    "description": "The time to wait for the next DTMF input.\n"
                  },
                  "prompt_file_id": {
                    "allOf": [
                      {
                        "type": "string",
                        "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                        "description": "The unique ID of the resource.\n"
                      }
                    ],
                    "description": "The unique ID of the file.\n"
                  },
                  "transfer_prompt_file_id": {
                    "allOf": [
                      {
                        "type": "string",
                        "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                        "description": "The unique ID of the resource.\n"
                      }
                    ],
                    "description": "The unique ID of the file.\n"
                  },
                  "enable_pin": {
                    "type": "boolean",
                    "default": true,
                    "description": "Whether the PIN is required for DISA.\n"
                  },
                  "pin": {
                    "type": "string",
                    "description": "The PIN number for accessing.\n"
                  },
                  "enable_night_mode": {
                    "type": "boolean",
                    "default": false,
                    "description": "Whether to enable night mode.\n"
                  },
                  "exclude_list": {
                    "type": "string",
                    "description": "The comma-separated list of extension numbers that cannot be dialed directly.\n"
                  },
                  "timeout_forward_rule": {
                    "type": "object",
                    "properties": {
                      "timeout": {
                        "type": "integer",
                        "default": 30,
                        "description": "Single call timeout\n"
                      },
                      "repeat_times": {
                        "type": "integer",
                        "format": "int32",
                        "minimum": 0,
                        "default": 3,
                        "description": "When timeout, the number of times to repeat the prompt tone\n"
                      },
                      "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"
                      }
                    }
                  },
                  "failure_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"
                      }
                    }
                  },
                  "custom_forward_rules": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "user_input": {
                          "type": "string",
                          "description": "User input.\n"
                        },
                        "office_hours": {
                          "allOf": [
                            {
                              "type": "object",
                              "properties": {
                                "mode": {
                                  "type": "string",
                                  "enum": [
                                    "GLOBAL",
                                    "CUSTOM"
                                  ],
                                  "example": "CUSTOM",
                                  "description": "The office hours mode can be either:  \n- `GLOBAL`: Use global office hours.\n- `CUSTOM`: Use specific office hours.\n"
                                }
                              }
                            },
                            {
                              "type": "object",
                              "properties": {
                                "monday": {
                                  "type": "object",
                                  "properties": {
                                    "enabled": {
                                      "type": "boolean",
                                      "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                    },
                                    "ranges": {
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "from": {
                                            "type": "string",
                                            "example": "09:00",
                                            "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                          },
                                          "to": {
                                            "type": "string",
                                            "example": "17:00",
                                            "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                          }
                                        }
                                      },
                                      "description": "Multiple start and end time periods make up the working time.\n"
                                    }
                                  }
                                },
                                "tuesday": {
                                  "type": "object",
                                  "properties": {
                                    "enabled": {
                                      "type": "boolean",
                                      "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                    },
                                    "ranges": {
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "from": {
                                            "type": "string",
                                            "example": "09:00",
                                            "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                          },
                                          "to": {
                                            "type": "string",
                                            "example": "17:00",
                                            "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                          }
                                        }
                                      },
                                      "description": "Multiple start and end time periods make up the working time.\n"
                                    }
                                  }
                                },
                                "wednesday": {
                                  "type": "object",
                                  "properties": {
                                    "enabled": {
                                      "type": "boolean",
                                      "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                    },
                                    "ranges": {
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "from": {
                                            "type": "string",
                                            "example": "09:00",
                                            "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                          },
                                          "to": {
                                            "type": "string",
                                            "example": "17:00",
                                            "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                          }
                                        }
                                      },
                                      "description": "Multiple start and end time periods make up the working time.\n"
                                    }
                                  }
                                },
                                "thursday": {
                                  "type": "object",
                                  "properties": {
                                    "enabled": {
                                      "type": "boolean",
                                      "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                    },
                                    "ranges": {
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "from": {
                                            "type": "string",
                                            "example": "09:00",
                                            "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                          },
                                          "to": {
                                            "type": "string",
                                            "example": "17:00",
                                            "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                          }
                                        }
                                      },
                                      "description": "Multiple start and end time periods make up the working time.\n"
                                    }
                                  }
                                },
                                "friday": {
                                  "type": "object",
                                  "properties": {
                                    "enabled": {
                                      "type": "boolean",
                                      "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                    },
                                    "ranges": {
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "from": {
                                            "type": "string",
                                            "example": "09:00",
                                            "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                          },
                                          "to": {
                                            "type": "string",
                                            "example": "17:00",
                                            "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                          }
                                        }
                                      },
                                      "description": "Multiple start and end time periods make up the working time.\n"
                                    }
                                  }
                                },
                                "saturday": {
                                  "type": "object",
                                  "properties": {
                                    "enabled": {
                                      "type": "boolean",
                                      "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                    },
                                    "ranges": {
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "from": {
                                            "type": "string",
                                            "example": "09:00",
                                            "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                          },
                                          "to": {
                                            "type": "string",
                                            "example": "17:00",
                                            "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                          }
                                        }
                                      },
                                      "description": "Multiple start and end time periods make up the working time.\n"
                                    }
                                  }
                                },
                                "sunday": {
                                  "type": "object",
                                  "properties": {
                                    "enabled": {
                                      "type": "boolean",
                                      "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                                    },
                                    "ranges": {
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "from": {
                                            "type": "string",
                                            "example": "09:00",
                                            "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                                          },
                                          "to": {
                                            "type": "string",
                                            "example": "17:00",
                                            "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                                          }
                                        }
                                      },
                                      "description": "Multiple start and end time periods make up the working time.\n"
                                    }
                                  }
                                }
                              }
                            }
                          ]
                        },
                        "office_hours_forward_rule": {
                          "type": "object",
                          "properties": {
                            "action": {
                              "type": "string",
                              "enum": [
                                "FORWARD_TO_NUMBER",
                                "FORWARD_TO_VOICEMAIL",
                                "REPEAT",
                                "HANGUP",
                                "DISA"
                              ],
                              "description": "Forward rule actions for DTMF:   \nCan be either:   \n- `FORWARD_TO_NUMBER`:\n- `FORWARD_TO_VOICEMAIL`:\n- `REPEAT`:\n- `HANGUP`:\n- `DISA`:\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"
                            }
                          }
                        },
                        "non_office_hours_forward_rule": {
                          "type": "object",
                          "properties": {
                            "action": {
                              "type": "string",
                              "enum": [
                                "FORWARD_TO_NUMBER",
                                "FORWARD_TO_VOICEMAIL",
                                "REPEAT",
                                "HANGUP",
                                "DISA"
                              ],
                              "description": "Forward rule actions for DTMF:   \nCan be either:   \n- `FORWARD_TO_NUMBER`:\n- `FORWARD_TO_VOICEMAIL`:\n- `REPEAT`:\n- `HANGUP`:\n- `DISA`:\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"
                            }
                          }
                        },
                        "holidays": {
                          "type": "array",
                          "items": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "readOnly": true,
                            "description": "The unique ID of holiday.\n"
                          },
                          "description": "A collection of ID of tenant's holiday.\n"
                        },
                        "holiday_forward_rule": {
                          "type": "object",
                          "properties": {
                            "action": {
                              "type": "string",
                              "enum": [
                                "FORWARD_TO_NUMBER",
                                "FORWARD_TO_VOICEMAIL",
                                "REPEAT",
                                "HANGUP",
                                "DISA"
                              ],
                              "description": "Forward rule actions for DTMF:   \nCan be either:   \n- `FORWARD_TO_NUMBER`:\n- `FORWARD_TO_VOICEMAIL`:\n- `REPEAT`:\n- `HANGUP`:\n- `DISA`:\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",
                                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                  "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"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "name": null,
                    "language": null,
                    "dtmf_interval": null,
                    "prompt_file_id": null,
                    "transfer_prompt_file_id": null,
                    "enable_pin": null,
                    "pin": null,
                    "enable_night_mode": null,
                    "exclude_list": null,
                    "timeout_forward_rule": null,
                    "failure_forward_rule": null,
                    "night_mode_forward_rule": null,
                    "custom_forward_rules": null,
                    "outbound_caller_ids": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/ivrs/{id}/status": {
      "get": {
        "tags": [
          "Virtual Receptionist"
        ],
        "operationId": "getVrStatus",
        "x-category": "call-features",
        "x-subcategory": "ivrs",
        "x-permissions": [
          "PhoneSystem.ViewOnly"
        ],
        "summary": "Query virtual receptionist's status",
        "description": "Query virtual receptionist' status by it's unique ID.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of virtual receptionist.\n"
            },
            "description": "The unique ID of the virtual receptionist."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "enum": [
                        "OFFLINE",
                        "ONLINE"
                      ],
                      "readOnly": true,
                      "description": "The status of this virtual receptionists.\n- `OFFLINE`:\n- `ONLINE`:\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "status": "ONLINE"
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/ivrs/{id}/destroy": {
      "post": {
        "tags": [
          "Virtual Receptionist"
        ],
        "operationId": "deleteVrs",
        "x-category": "call-features",
        "x-subcategory": "ivrs",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Delete a virtual receptionist",
        "description": "Destroy a virtual receptionist.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of virtual receptionist.\n"
            },
            "description": "The unique ID of the virtual receptionist."
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Invalid virtual receptionists ID supplied."
          }
        }
      }
    },
    "/ivrs/{id}/action_urls": {
      "post": {
        "tags": [
          "Virtual Receptionist"
        ],
        "operationId": "createActionUrl",
        "x-category": "call-features",
        "x-subcategory": "ivrs",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Create an action url",
        "description": "Create an action url for virtual receptionist.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of virtual receptionist.\n"
            },
            "description": "The unique ID of the virtual receptionist."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64,
                    "description": "The name of action url.\n"
                  },
                  "enabled": {
                    "type": "boolean",
                    "description": "Whether to enable or not.\n"
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "DTMF",
                      "CALLER"
                    ],
                    "description": "The action url type.  \nCan be either:  \n- `DTMF`:\n- `CALLER`\n"
                  },
                  "method": {
                    "type": "string",
                    "enum": [
                      "GET",
                      "POST"
                    ],
                    "description": "The action url request method.  \nCan be either:  \n- `GET`\n- `POST`:\n"
                  },
                  "headers": {
                    "type": "string",
                    "description": "The request headers of action url.\n"
                  },
                  "caller_mask": {
                    "type": "string",
                    "maxLength": 255,
                    "description": "The caller mask of action url.\n"
                  },
                  "dtmf_mask": {
                    "type": "string",
                    "maxLength": 255,
                    "description": "The DTMF mask of action url.  \nA semicolon-separated list of DTMF number or DTMF number range.  \nFor example: 1000;2000;3000-4000.\n"
                  },
                  "connection_timeout": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 0,
                    "default": 2,
                    "description": "The connection timeout in seconds.\n"
                  },
                  "request_timeout": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 0,
                    "default": 2,
                    "description": "The request timeout in seconds.\n"
                  },
                  "url": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 1024,
                    "description": "The request url for action url.\n"
                  },
                  "auth": {
                    "type": "string",
                    "enum": [
                      "DISABLE",
                      "BASIC",
                      "DIGEST",
                      "BEARER"
                    ],
                    "default": "DISABLE",
                    "description": "The authentication method of action URL:  \nCan be either:  \n- `DISABLE`: Disable authentication.\n- `BASIC`: Use basic authentication.\n- `DIGEST`: Use digest authentication.\n- `BEARER`: Use bearer authentication.\n"
                  },
                  "username": {
                    "type": "string",
                    "minLength": 6,
                    "maxLength": 64,
                    "pattern": "[a-z0-9]{6,64}",
                    "description": "The username for authentication, when auth is `BASIC` or `DIGEST`.\n"
                  },
                  "password": {
                    "type": "string",
                    "minLength": 6,
                    "maxLength": 64,
                    "pattern": "[a-z0-9]{6,64}",
                    "description": "The password for authentication, when auth is `BASIC` or `DIGEST`.\n"
                  },
                  "token": {
                    "type": "string",
                    "description": "The token for authentication, when auth is `BEARER`.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "name": null,
                    "enabled": null,
                    "type": null,
                    "method": null,
                    "headers": null,
                    "caller_mask": null,
                    "dtmf_mask": null,
                    "connection_timeout": null,
                    "request_timeout": null,
                    "url": null,
                    "auth": null,
                    "username": null,
                    "password": null,
                    "token": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of action url.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "The ID of created resource",
                    "value": {
                      "id": "xxxxxxxx"
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "get": {
        "tags": [
          "Virtual Receptionist"
        ],
        "operationId": "listActionUrls",
        "x-category": "call-features",
        "x-subcategory": "ivrs",
        "x-permissions": [
          "PhoneSystem.ViewOnly"
        ],
        "summary": "List action urls",
        "description": "Retrieves a list of action urls of virtual receptionist.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of virtual receptionist.\n"
            },
            "description": "The unique ID of the virtual receptionist."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "description": "The unique ID of action url.\n"
                          },
                          "name": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 64,
                            "description": "The name of action url.\n"
                          },
                          "enabled": {
                            "type": "boolean",
                            "description": "Whether to enable or not.\n"
                          },
                          "type": {
                            "type": "string",
                            "enum": [
                              "DTMF",
                              "CALLER"
                            ],
                            "description": "The action url type.  \nCan be either:  \n- `DTMF`:\n- `CALLER`\n"
                          },
                          "method": {
                            "type": "string",
                            "enum": [
                              "GET",
                              "POST"
                            ],
                            "description": "The action url request method.  \nCan be either:  \n- `GET`\n- `POST`:\n"
                          },
                          "headers": {
                            "type": "string",
                            "description": "The request headers of action url.\n"
                          },
                          "caller_mask": {
                            "type": "string",
                            "maxLength": 255,
                            "description": "The caller mask of action url.\n"
                          },
                          "dtmf_mask": {
                            "type": "string",
                            "maxLength": 255,
                            "description": "The DTMF mask of action url.  \nA semicolon-separated list of DTMF number or DTMF number range.  \nFor example: 1000;2000;3000-4000.\n"
                          },
                          "connection_timeout": {
                            "type": "integer",
                            "format": "int32",
                            "minimum": 0,
                            "default": 2,
                            "description": "The connection timeout in seconds.\n"
                          },
                          "request_timeout": {
                            "type": "integer",
                            "format": "int32",
                            "minimum": 0,
                            "default": 2,
                            "description": "The request timeout in seconds.\n"
                          },
                          "url": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 1024,
                            "description": "The request url for action url.\n"
                          },
                          "auth": {
                            "type": "string",
                            "enum": [
                              "DISABLE",
                              "BASIC",
                              "DIGEST",
                              "BEARER"
                            ],
                            "default": "DISABLE",
                            "description": "The authentication method of action URL:  \nCan be either:  \n- `DISABLE`: Disable authentication.\n- `BASIC`: Use basic authentication.\n- `DIGEST`: Use digest authentication.\n- `BEARER`: Use bearer authentication.\n"
                          },
                          "username": {
                            "type": "string",
                            "minLength": 6,
                            "maxLength": 64,
                            "pattern": "[a-z0-9]{6,64}",
                            "description": "The username for authentication, when auth is `BASIC` or `DIGEST`.\n"
                          },
                          "password": {
                            "type": "string",
                            "minLength": 6,
                            "maxLength": 64,
                            "pattern": "[a-z0-9]{6,64}",
                            "description": "The password for authentication, when auth is `BASIC` or `DIGEST`.\n"
                          },
                          "token": {
                            "type": "string",
                            "description": "The token for authentication, when auth is `BEARER`.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "id": null,
                      "name": null,
                      "enabled": null,
                      "type": null,
                      "method": null,
                      "headers": null,
                      "caller_mask": null,
                      "dtmf_mask": null,
                      "connection_timeout": null,
                      "request_timeout": null,
                      "url": null,
                      "auth": null,
                      "username": null,
                      "password": null,
                      "token": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/ivrs/{id}/action_urls/{url_id}": {
      "get": {
        "tags": [
          "Virtual Receptionist"
        ],
        "operationId": "showActionUrl",
        "x-category": "call-features",
        "x-subcategory": "ivrs",
        "x-permissions": [
          "PhoneSystem.ViewOnly"
        ],
        "summary": "Retrieve action url",
        "description": "Retrieve details of action url of virtual receptionist.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of virtual receptionist.\n"
            },
            "description": "The unique ID of the virtual receptionist."
          },
          {
            "name": "url_id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of action url.\n"
            },
            "description": "The unique ID of the action url."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of action url.\n"
                    },
                    "name": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64,
                      "description": "The name of action url.\n"
                    },
                    "enabled": {
                      "type": "boolean",
                      "description": "Whether to enable or not.\n"
                    },
                    "type": {
                      "type": "string",
                      "enum": [
                        "DTMF",
                        "CALLER"
                      ],
                      "description": "The action url type.  \nCan be either:  \n- `DTMF`:\n- `CALLER`\n"
                    },
                    "method": {
                      "type": "string",
                      "enum": [
                        "GET",
                        "POST"
                      ],
                      "description": "The action url request method.  \nCan be either:  \n- `GET`\n- `POST`:\n"
                    },
                    "headers": {
                      "type": "string",
                      "description": "The request headers of action url.\n"
                    },
                    "caller_mask": {
                      "type": "string",
                      "maxLength": 255,
                      "description": "The caller mask of action url.\n"
                    },
                    "dtmf_mask": {
                      "type": "string",
                      "maxLength": 255,
                      "description": "The DTMF mask of action url.  \nA semicolon-separated list of DTMF number or DTMF number range.  \nFor example: 1000;2000;3000-4000.\n"
                    },
                    "connection_timeout": {
                      "type": "integer",
                      "format": "int32",
                      "minimum": 0,
                      "default": 2,
                      "description": "The connection timeout in seconds.\n"
                    },
                    "request_timeout": {
                      "type": "integer",
                      "format": "int32",
                      "minimum": 0,
                      "default": 2,
                      "description": "The request timeout in seconds.\n"
                    },
                    "url": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 1024,
                      "description": "The request url for action url.\n"
                    },
                    "auth": {
                      "type": "string",
                      "enum": [
                        "DISABLE",
                        "BASIC",
                        "DIGEST",
                        "BEARER"
                      ],
                      "default": "DISABLE",
                      "description": "The authentication method of action URL:  \nCan be either:  \n- `DISABLE`: Disable authentication.\n- `BASIC`: Use basic authentication.\n- `DIGEST`: Use digest authentication.\n- `BEARER`: Use bearer authentication.\n"
                    },
                    "username": {
                      "type": "string",
                      "minLength": 6,
                      "maxLength": 64,
                      "pattern": "[a-z0-9]{6,64}",
                      "description": "The username for authentication, when auth is `BASIC` or `DIGEST`.\n"
                    },
                    "password": {
                      "type": "string",
                      "minLength": 6,
                      "maxLength": 64,
                      "pattern": "[a-z0-9]{6,64}",
                      "description": "The password for authentication, when auth is `BASIC` or `DIGEST`.\n"
                    },
                    "token": {
                      "type": "string",
                      "description": "The token for authentication, when auth is `BEARER`.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "id": null,
                      "name": null,
                      "enabled": null,
                      "type": null,
                      "method": null,
                      "headers": null,
                      "caller_mask": null,
                      "dtmf_mask": null,
                      "connection_timeout": null,
                      "request_timeout": null,
                      "url": null,
                      "auth": null,
                      "username": null,
                      "password": null,
                      "token": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "post": {
        "tags": [
          "Virtual Receptionist"
        ],
        "operationId": "updateActionUrl",
        "x-category": "call-features",
        "x-subcategory": "ivrs",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Update action url",
        "description": "Set action url of virtual receptionist.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of virtual receptionist.\n"
            },
            "description": "The unique ID of the virtual receptionist."
          },
          {
            "name": "url_id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of action url.\n"
            },
            "description": "The unique ID of the action url."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64,
                    "description": "The name of action url.\n"
                  },
                  "enabled": {
                    "type": "boolean",
                    "description": "Whether to enable or not.\n"
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "DTMF",
                      "CALLER"
                    ],
                    "description": "The action url type.  \nCan be either:  \n- `DTMF`:\n- `CALLER`\n"
                  },
                  "method": {
                    "type": "string",
                    "enum": [
                      "GET",
                      "POST"
                    ],
                    "description": "The action url request method.  \nCan be either:  \n- `GET`\n- `POST`:\n"
                  },
                  "headers": {
                    "type": "string",
                    "description": "The request headers of action url.\n"
                  },
                  "caller_mask": {
                    "type": "string",
                    "maxLength": 255,
                    "description": "The caller mask of action url.\n"
                  },
                  "dtmf_mask": {
                    "type": "string",
                    "maxLength": 255,
                    "description": "The DTMF mask of action url.  \nA semicolon-separated list of DTMF number or DTMF number range.  \nFor example: 1000;2000;3000-4000.\n"
                  },
                  "connection_timeout": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 0,
                    "default": 2,
                    "description": "The connection timeout in seconds.\n"
                  },
                  "request_timeout": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 0,
                    "default": 2,
                    "description": "The request timeout in seconds.\n"
                  },
                  "url": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 1024,
                    "description": "The request url for action url.\n"
                  },
                  "auth": {
                    "type": "string",
                    "enum": [
                      "DISABLE",
                      "BASIC",
                      "DIGEST",
                      "BEARER"
                    ],
                    "default": "DISABLE",
                    "description": "The authentication method of action URL:  \nCan be either:  \n- `DISABLE`: Disable authentication.\n- `BASIC`: Use basic authentication.\n- `DIGEST`: Use digest authentication.\n- `BEARER`: Use bearer authentication.\n"
                  },
                  "username": {
                    "type": "string",
                    "minLength": 6,
                    "maxLength": 64,
                    "pattern": "[a-z0-9]{6,64}",
                    "description": "The username for authentication, when auth is `BASIC` or `DIGEST`.\n"
                  },
                  "password": {
                    "type": "string",
                    "minLength": 6,
                    "maxLength": 64,
                    "pattern": "[a-z0-9]{6,64}",
                    "description": "The password for authentication, when auth is `BASIC` or `DIGEST`.\n"
                  },
                  "token": {
                    "type": "string",
                    "description": "The token for authentication, when auth is `BEARER`.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "name": null,
                    "enabled": null,
                    "type": null,
                    "method": null,
                    "headers": null,
                    "caller_mask": null,
                    "dtmf_mask": null,
                    "connection_timeout": null,
                    "request_timeout": null,
                    "url": null,
                    "auth": null,
                    "username": null,
                    "password": null,
                    "token": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/ivrs/{id}/action_urls/{url_id}/destroy": {
      "post": {
        "tags": [
          "Virtual Receptionist"
        ],
        "operationId": "deleteActionUrl",
        "x-category": "call-features",
        "x-subcategory": "ivrs",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Delete an action url",
        "description": "Destroy an action url from virtual receptionist.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of virtual receptionist.\n"
            },
            "description": "The unique ID of the virtual receptionist."
          },
          {
            "name": "url_id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of action url.\n"
            },
            "description": "The unique ID of the action url."
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/hotdesking": {
      "post": {
        "tags": [
          "Hot Desking"
        ],
        "operationId": "createHotDeskingDevice",
        "x-category": "call-features",
        "x-subcategory": "hot-desking",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Create a hot desking device.",
        "description": "Add a new hot desking into system.\n",
        "requestBody": {
          "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 hot desking.\n"
                  },
                  "extension_password": {
                    "allOf": [
                      {
                        "type": "string",
                        "description": "The extension password.\n"
                      }
                    ],
                    "description": "The extension password of hot desking.\n"
                  },
                  "display_name": {
                    "type": "string",
                    "maxLength": 1024,
                    "description": "The display name of hot desking.\n"
                  },
                  "mac": {
                    "allOf": [
                      {
                        "type": "string",
                        "description": "MAC address.\n"
                      }
                    ],
                    "description": "MAC address of this IP phone.\n"
                  },
                  "filename": {
                    "type": "string",
                    "description": "Template XML file name for phone provisioning.\n"
                  },
                  "vendor": {
                    "type": "string",
                    "description": "The phone vendor of IP phone.\n"
                  },
                  "model": {
                    "type": "string",
                    "description": "The name of IP phone model.\n"
                  },
                  "password": {
                    "type": "string",
                    "description": "Password for accessing the Web interface of phone.\nThe username remains default because most phone manufacturers do not\nallow modification of the user name. This is supported for some phone model, such as \"Snom 300\".\n"
                  },
                  "language": {
                    "type": "string",
                    "enum": [
                      "ENGLISH",
                      "CHINESE",
                      "DUTCH",
                      "FRENCH",
                      "GERMAN",
                      "GREEK",
                      "ITALIAN",
                      "JAPANESE",
                      "POLISH",
                      "RUSSIAN",
                      "SPANISH",
                      "SWEDISH",
                      "UKRAINIAN",
                      "BULGARIAN"
                    ],
                    "description": "Language for strings displayed on Phone Display LCD.\nSupported languages include ENGLISH, CHINESE, DUTCH, FRENCH, GERMAN,\nGREEK, ITALIAN, JAPANESE, POLISH, RUSSIAN, SPANISH, SWEDISH, UKRAINIAN, and BULGARIAN.\n"
                  },
                  "transfer": {
                    "type": "string",
                    "enum": [
                      "BLIND",
                      "ATTENDED",
                      "NEW_CALL"
                    ],
                    "default": "BLIND",
                    "description": "The transfer method for auto provision.  \nCan be either: \n- `BLIND`: After the IP phone is configured with the BLF of a certain key, during a call on the IP phone, press the key, and the phone will directly initiate a Blind transfer to the configured number.\n- `ATTENDED`: After the IP phone is configured with the BLF of a key, during a call on the IP phone, press the key, and the phone will directly initiate an Attended transfer to the configured number.\n- `NEW_CALL`: After the IP phone is configured with the BLF of a certain key, during a call on the IP phone, press the key, and the phone will initiate a new call to the configured number.\n"
                  },
                  "timezone": {
                    "type": "string",
                    "description": "The timezone of phone.\n"
                  },
                  "ringtone": {
                    "type": "string",
                    "description": "The ringtone of phone.\n"
                  },
                  "queue_ringtone": {
                    "type": "string",
                    "description": "The queue ringtone of phone for queue calls or ring group calls.\n"
                  },
                  "external_ringtone": {
                    "type": "string",
                    "description": "The ringtone of phone for external calls.\n"
                  },
                  "date_format": {
                    "type": "string",
                    "description": "The date format of phone.\n"
                  },
                  "time_format": {
                    "type": "string",
                    "description": "The time format of phone.\n"
                  },
                  "powerled": {
                    "type": "string",
                    "description": "The power led of phone.\n"
                  },
                  "backlight": {
                    "type": "string",
                    "description": "The backlight of phone.\n"
                  },
                  "screensaver": {
                    "type": "string",
                    "description": "The screensaver of phone.\n"
                  },
                  "rps": {
                    "type": "boolean",
                    "description": "Send to RPS or not.\n"
                  },
                  "https": {
                    "type": "boolean",
                    "description": "Whether to use https\n"
                  },
                  "codecs": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "description": "The list of currently enabled codec formats.\n"
                  },
                  "enable_lldp": {
                    "type": "boolean",
                    "default": false,
                    "description": "Enable or disable Link Layer Discovery Protocol."
                  },
                  "enable_vlan_wan_port": {
                    "type": "boolean",
                    "default": false,
                    "description": "Enable or disable VLAN for WAN Port.\n"
                  },
                  "wan_port_id": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 4094,
                    "description": "VLAN ID for WAN PORT.\n"
                  },
                  "wan_port_priority": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 7,
                    "description": "VLAN priority for WAN Port.\n"
                  },
                  "enable_vlan_pc_port": {
                    "type": "boolean",
                    "default": false,
                    "description": "Enable or disable VLAN for PC Port.\n"
                  },
                  "pc_port_id": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 4094,
                    "description": "VLAN ID for PC PORT.\n"
                  },
                  "pc_port_priority": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 7,
                    "description": "VLAN priority for PC Port.\n"
                  },
                  "interface": {
                    "type": "string",
                    "enum": [
                      "WEB_DOMAIN",
                      "PUBLIC_IPV4",
                      "PUBLIC_IPV6",
                      "PRIVATE_IPV4",
                      "PRIVATE_IPV6",
                      "SBC_DOMAIN"
                    ],
                    "description": "The interface type for QR code or auto provisioning.   \nCan be neither:  \n- `WEB_DOMAIN`:\n- `PUBLIC_IPV4`:\n- `PUBLIC_IPV6`:\n- `PRIVATE_IPV4`:\n- `PRIVATE_IPV6`:\n- `SBC_DOMAIN`:\n"
                  },
                  "preferred_transport": {
                    "type": "string",
                    "enum": [
                      "UDP",
                      "TCP",
                      "TLS"
                    ],
                    "description": "The transport protocol:  \nCan be either:  \n- `UDP`:\n- `TCP`:\n- `TLS`:\n"
                  },
                  "serial_number": {
                    "type": "string",
                    "description": "The serial number of phone.\n"
                  }
                },
                "required": [
                  "extension_number",
                  "extension_password",
                  "mac",
                  "filename",
                  "vendor",
                  "model",
                  "password",
                  "language",
                  "transfer",
                  "timezone",
                  "codecs",
                  "interface",
                  "preferred_transport"
                ]
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "extension_number": null,
                    "extension_password": null,
                    "display_name": null,
                    "mac": null,
                    "filename": null,
                    "vendor": null,
                    "model": null,
                    "password": null,
                    "language": null,
                    "transfer": null,
                    "timezone": null,
                    "ringtone": null,
                    "queue_ringtone": null,
                    "external_ringtone": null,
                    "date_format": null,
                    "time_format": null,
                    "powerled": null,
                    "backlight": null,
                    "screensaver": null,
                    "rps": null,
                    "https": null,
                    "codecs": null,
                    "enable_lldp": null,
                    "enable_vlan_wan_port": null,
                    "wan_port_id": null,
                    "wan_port_priority": null,
                    "enable_vlan_pc_port": null,
                    "pc_port_id": null,
                    "pc_port_priority": null,
                    "interface": null,
                    "preferred_transport": null,
                    "serial_number": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of hot desking.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "The ID of created resource",
                    "value": {
                      "id": "xxxxxxxx"
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "get": {
        "tags": [
          "Hot Desking"
        ],
        "operationId": "listHotDeskingDevices",
        "x-category": "call-features",
        "x-subcategory": "hot-desking",
        "x-permissions": [
          "PhoneSystem.ViewOnly"
        ],
        "summary": "Lists hot desking devices",
        "description": "Retrieve a collection of hot desking.\n",
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Use the `filter` query parameter to retrieve just a subset of a collection.\n"
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "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",
            "required": false,
            "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",
            "required": false,
            "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",
            "required": false,
            "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,
                      "example": 100,
                      "description": "Total number of resource.\n"
                    },
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "description": "The unique ID of hot desking.\n"
                          },
                          "model": {
                            "type": "string",
                            "description": "The name of IP phone model.\n"
                          },
                          "extension_number": {
                            "allOf": [
                              {
                                "type": "string",
                                "minLength": 3,
                                "maxLength": 64,
                                "pattern": "[0-9]{3,64}",
                                "description": "The extension number.\n"
                              }
                            ],
                            "description": "The extension number of hot desking.\n"
                          },
                          "current_extension_number": {
                            "allOf": [
                              {
                                "type": "string",
                                "minLength": 3,
                                "maxLength": 64,
                                "pattern": "[0-9]{3,64}",
                                "description": "The extension number.\n"
                              }
                            ],
                            "description": "The current extension number of hot desking.\n"
                          },
                          "display_name": {
                            "type": "string",
                            "maxLength": 1024,
                            "description": "The display name of hot desking.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": null,
                          "model": null,
                          "extension_number": null,
                          "current_extension_number": null,
                          "display_name": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/hotdesking/{id}": {
      "get": {
        "tags": [
          "Hot Desking"
        ],
        "operationId": "showHotDeskingDevice",
        "x-category": "call-features",
        "x-subcategory": "hot-desking",
        "x-permissions": [
          "PhoneSystem.ViewOnly"
        ],
        "summary": "Retrieve hot desking",
        "description": "Retrieve hot desking by it's unique ID.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of hot desking.\n"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of hot desking.\n"
                    },
                    "extension_number": {
                      "allOf": [
                        {
                          "type": "string",
                          "minLength": 3,
                          "maxLength": 64,
                          "pattern": "[0-9]{3,64}",
                          "description": "The extension number.\n"
                        }
                      ],
                      "description": "The extension number of hot desking.\n"
                    },
                    "current_extension_number": {
                      "allOf": [
                        {
                          "type": "string",
                          "minLength": 3,
                          "maxLength": 64,
                          "pattern": "[0-9]{3,64}",
                          "description": "The extension number.\n"
                        }
                      ],
                      "description": "The current extension number of hot desking.\n"
                    },
                    "display_name": {
                      "type": "string",
                      "maxLength": 1024,
                      "description": "The display name of hot desking.\n"
                    },
                    "mac": {
                      "allOf": [
                        {
                          "type": "string",
                          "description": "MAC address.\n"
                        }
                      ],
                      "description": "MAC address of this IP phone.\n"
                    },
                    "filename": {
                      "type": "string",
                      "description": "Template XML file name for phone provisioning.\n"
                    },
                    "vendor": {
                      "type": "string",
                      "description": "The phone vendor of IP phone.\n"
                    },
                    "model": {
                      "type": "string",
                      "description": "The name of IP phone model.\n"
                    },
                    "password": {
                      "type": "string",
                      "description": "Password for accessing the Web interface of phone.\nThe username remains default because most phone manufacturers do not\nallow modification of the user name. This is supported for some phone model, such as \"Snom 300\".\n"
                    },
                    "language": {
                      "type": "string",
                      "enum": [
                        "ENGLISH",
                        "CHINESE",
                        "DUTCH",
                        "FRENCH",
                        "GERMAN",
                        "GREEK",
                        "ITALIAN",
                        "JAPANESE",
                        "POLISH",
                        "RUSSIAN",
                        "SPANISH",
                        "SWEDISH",
                        "UKRAINIAN",
                        "BULGARIAN"
                      ],
                      "description": "Language for strings displayed on Phone Display LCD.\nSupported languages include ENGLISH, CHINESE, DUTCH, FRENCH, GERMAN,\nGREEK, ITALIAN, JAPANESE, POLISH, RUSSIAN, SPANISH, SWEDISH, UKRAINIAN, and BULGARIAN.\n"
                    },
                    "transfer": {
                      "type": "string",
                      "enum": [
                        "BLIND",
                        "ATTENDED",
                        "NEW_CALL"
                      ],
                      "default": "BLIND",
                      "description": "The transfer method for auto provision.  \nCan be either: \n- `BLIND`: After the IP phone is configured with the BLF of a certain key, during a call on the IP phone, press the key, and the phone will directly initiate a Blind transfer to the configured number.\n- `ATTENDED`: After the IP phone is configured with the BLF of a key, during a call on the IP phone, press the key, and the phone will directly initiate an Attended transfer to the configured number.\n- `NEW_CALL`: After the IP phone is configured with the BLF of a certain key, during a call on the IP phone, press the key, and the phone will initiate a new call to the configured number.\n"
                    },
                    "timezone": {
                      "type": "string",
                      "description": "The timezone of phone.\n"
                    },
                    "ringtone": {
                      "type": "string",
                      "description": "The ringtone of phone.\n"
                    },
                    "queue_ringtone": {
                      "type": "string",
                      "description": "The queue ringtone of phone for queue calls or ring group calls.\n"
                    },
                    "external_ringtone": {
                      "type": "string",
                      "description": "The ringtone of phone for external calls.\n"
                    },
                    "date_format": {
                      "type": "string",
                      "description": "The date format of phone.\n"
                    },
                    "time_format": {
                      "type": "string",
                      "description": "The time format of phone.\n"
                    },
                    "powerled": {
                      "type": "string",
                      "description": "The power led of phone.\n"
                    },
                    "backlight": {
                      "type": "string",
                      "description": "The backlight of phone.\n"
                    },
                    "screensaver": {
                      "type": "string",
                      "description": "The screensaver of phone.\n"
                    },
                    "rps": {
                      "type": "boolean",
                      "description": "Send to RPS or not.\n"
                    },
                    "https": {
                      "type": "boolean",
                      "description": "Whether to use https\n"
                    },
                    "codecs": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "description": "The list of currently enabled codec formats.\n"
                    },
                    "enable_lldp": {
                      "type": "boolean",
                      "default": false,
                      "description": "Enable or disable Link Layer Discovery Protocol."
                    },
                    "enable_vlan_wan_port": {
                      "type": "boolean",
                      "default": false,
                      "description": "Enable or disable VLAN for WAN Port.\n"
                    },
                    "wan_port_id": {
                      "type": "integer",
                      "minimum": 1,
                      "maximum": 4094,
                      "description": "VLAN ID for WAN PORT.\n"
                    },
                    "wan_port_priority": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 7,
                      "description": "VLAN priority for WAN Port.\n"
                    },
                    "enable_vlan_pc_port": {
                      "type": "boolean",
                      "default": false,
                      "description": "Enable or disable VLAN for PC Port.\n"
                    },
                    "pc_port_id": {
                      "type": "integer",
                      "minimum": 1,
                      "maximum": 4094,
                      "description": "VLAN ID for PC PORT.\n"
                    },
                    "pc_port_priority": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 7,
                      "description": "VLAN priority for PC Port.\n"
                    },
                    "interface": {
                      "type": "string",
                      "enum": [
                        "WEB_DOMAIN",
                        "PUBLIC_IPV4",
                        "PUBLIC_IPV6",
                        "PRIVATE_IPV4",
                        "PRIVATE_IPV6",
                        "SBC_DOMAIN"
                      ],
                      "description": "The interface type for QR code or auto provisioning.   \nCan be neither:  \n- `WEB_DOMAIN`:\n- `PUBLIC_IPV4`:\n- `PUBLIC_IPV6`:\n- `PRIVATE_IPV4`:\n- `PRIVATE_IPV6`:\n- `SBC_DOMAIN`:\n"
                    },
                    "preferred_transport": {
                      "type": "string",
                      "enum": [
                        "UDP",
                        "TCP",
                        "TLS"
                      ],
                      "description": "The transport protocol:  \nCan be either:  \n- `UDP`:\n- `TCP`:\n- `TLS`:\n"
                    },
                    "serial_number": {
                      "type": "string",
                      "description": "The serial number of phone.\n"
                    },
                    "url": {
                      "type": "string",
                      "description": "Auto provision server URL.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "id": null,
                      "extension_number": null,
                      "current_extension_number": null,
                      "display_name": null,
                      "mac": null,
                      "filename": null,
                      "vendor": null,
                      "model": null,
                      "password": null,
                      "language": null,
                      "transfer": null,
                      "timezone": null,
                      "ringtone": null,
                      "queue_ringtone": null,
                      "external_ringtone": null,
                      "date_format": null,
                      "time_format": null,
                      "powerled": null,
                      "backlight": null,
                      "screensaver": null,
                      "rps": null,
                      "https": null,
                      "codecs": null,
                      "enable_lldp": null,
                      "enable_vlan_wan_port": null,
                      "wan_port_id": null,
                      "wan_port_priority": null,
                      "enable_vlan_pc_port": null,
                      "pc_port_id": null,
                      "pc_port_priority": null,
                      "interface": null,
                      "preferred_transport": null,
                      "serial_number": null,
                      "url": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "post": {
        "tags": [
          "Hot Desking"
        ],
        "operationId": "updateHotDeskingDevice",
        "x-category": "call-features",
        "x-subcategory": "hot-desking",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Update hot desking",
        "description": "Update hot desking\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of hot desking.\n"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "display_name": {
                    "type": "string",
                    "maxLength": 1024,
                    "description": "The display name of hot desking.\n"
                  },
                  "password": {
                    "type": "string",
                    "description": "Password for accessing the Web interface of phone.\nThe username remains default because most phone manufacturers do not\nallow modification of the user name. This is supported for some phone model, such as \"Snom 300\".\n"
                  },
                  "language": {
                    "type": "string",
                    "enum": [
                      "ENGLISH",
                      "CHINESE",
                      "DUTCH",
                      "FRENCH",
                      "GERMAN",
                      "GREEK",
                      "ITALIAN",
                      "JAPANESE",
                      "POLISH",
                      "RUSSIAN",
                      "SPANISH",
                      "SWEDISH",
                      "UKRAINIAN",
                      "BULGARIAN"
                    ],
                    "description": "Language for strings displayed on Phone Display LCD.\nSupported languages include ENGLISH, CHINESE, DUTCH, FRENCH, GERMAN,\nGREEK, ITALIAN, JAPANESE, POLISH, RUSSIAN, SPANISH, SWEDISH, UKRAINIAN, and BULGARIAN.\n"
                  },
                  "transfer": {
                    "type": "string",
                    "enum": [
                      "BLIND",
                      "ATTENDED",
                      "NEW_CALL"
                    ],
                    "default": "BLIND",
                    "description": "The transfer method for auto provision.  \nCan be either: \n- `BLIND`: After the IP phone is configured with the BLF of a certain key, during a call on the IP phone, press the key, and the phone will directly initiate a Blind transfer to the configured number.\n- `ATTENDED`: After the IP phone is configured with the BLF of a key, during a call on the IP phone, press the key, and the phone will directly initiate an Attended transfer to the configured number.\n- `NEW_CALL`: After the IP phone is configured with the BLF of a certain key, during a call on the IP phone, press the key, and the phone will initiate a new call to the configured number.\n"
                  },
                  "timezone": {
                    "type": "string",
                    "description": "The timezone of phone.\n"
                  },
                  "ringtone": {
                    "type": "string",
                    "description": "The ringtone of phone.\n"
                  },
                  "queue_ringtone": {
                    "type": "string",
                    "description": "The queue ringtone of phone for queue calls or ring group calls.\n"
                  },
                  "external_ringtone": {
                    "type": "string",
                    "description": "The ringtone of phone for external calls.\n"
                  },
                  "date_format": {
                    "type": "string",
                    "description": "The date format of phone.\n"
                  },
                  "time_format": {
                    "type": "string",
                    "description": "The time format of phone.\n"
                  },
                  "powerled": {
                    "type": "string",
                    "description": "The power led of phone.\n"
                  },
                  "backlight": {
                    "type": "string",
                    "description": "The backlight of phone.\n"
                  },
                  "screensaver": {
                    "type": "string",
                    "description": "The screensaver of phone.\n"
                  },
                  "rps": {
                    "type": "boolean",
                    "description": "Send to RPS or not.\n"
                  },
                  "https": {
                    "type": "boolean",
                    "description": "Whether to use https\n"
                  },
                  "codecs": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "description": "The list of currently enabled codec formats.\n"
                  },
                  "enable_lldp": {
                    "type": "boolean",
                    "default": false,
                    "description": "Enable or disable Link Layer Discovery Protocol."
                  },
                  "enable_vlan_wan_port": {
                    "type": "boolean",
                    "default": false,
                    "description": "Enable or disable VLAN for WAN Port.\n"
                  },
                  "wan_port_id": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 4094,
                    "description": "VLAN ID for WAN PORT.\n"
                  },
                  "wan_port_priority": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 7,
                    "description": "VLAN priority for WAN Port.\n"
                  },
                  "enable_vlan_pc_port": {
                    "type": "boolean",
                    "default": false,
                    "description": "Enable or disable VLAN for PC Port.\n"
                  },
                  "pc_port_id": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 4094,
                    "description": "VLAN ID for PC PORT.\n"
                  },
                  "pc_port_priority": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 7,
                    "description": "VLAN priority for PC Port.\n"
                  },
                  "interface": {
                    "type": "string",
                    "enum": [
                      "WEB_DOMAIN",
                      "PUBLIC_IPV4",
                      "PUBLIC_IPV6",
                      "PRIVATE_IPV4",
                      "PRIVATE_IPV6",
                      "SBC_DOMAIN"
                    ],
                    "description": "The interface type for QR code or auto provisioning.   \nCan be neither:  \n- `WEB_DOMAIN`:\n- `PUBLIC_IPV4`:\n- `PUBLIC_IPV6`:\n- `PRIVATE_IPV4`:\n- `PRIVATE_IPV6`:\n- `SBC_DOMAIN`:\n"
                  },
                  "preferred_transport": {
                    "type": "string",
                    "enum": [
                      "UDP",
                      "TCP",
                      "TLS"
                    ],
                    "description": "The transport protocol:  \nCan be either:  \n- `UDP`:\n- `TCP`:\n- `TLS`:\n"
                  },
                  "serial_number": {
                    "type": "string",
                    "description": "The serial number of phone.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "display_name": null,
                    "password": null,
                    "language": null,
                    "transfer": null,
                    "timezone": null,
                    "ringtone": null,
                    "queue_ringtone": null,
                    "external_ringtone": null,
                    "date_format": null,
                    "time_format": null,
                    "powerled": null,
                    "backlight": null,
                    "screensaver": null,
                    "rps": null,
                    "https": null,
                    "codecs": null,
                    "enable_lldp": null,
                    "enable_vlan_wan_port": null,
                    "wan_port_id": null,
                    "wan_port_priority": null,
                    "enable_vlan_pc_port": null,
                    "pc_port_id": null,
                    "pc_port_priority": null,
                    "interface": null,
                    "preferred_transport": null,
                    "serial_number": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/hotdesking/{id}/status": {
      "get": {
        "tags": [
          "Hot Desking"
        ],
        "operationId": "getHotDeskingDeviceStatus",
        "x-category": "call-features",
        "x-subcategory": "hot-desking",
        "x-permissions": [
          "PhoneSystem.ViewOnly"
        ],
        "summary": "Query hot desking's status",
        "description": "Query hot desking'status by it's unique ID.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of hot desking.\n"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "enum": [
                        "OFFLINE",
                        "ONLINE"
                      ],
                      "readOnly": true,
                      "description": "The status of the hot desking device.\n- `OFFLINE`:\n- `ONLINE`:\n"
                    },
                    "current_extension_number": {
                      "allOf": [
                        {
                          "type": "string",
                          "minLength": 3,
                          "maxLength": 64,
                          "pattern": "[0-9]{3,64}",
                          "description": "The extension number.\n"
                        }
                      ],
                      "description": "The current extension number of hot desking.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "status": null,
                      "current_extension_number": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/hotdesking/{id}/logout": {
      "post": {
        "tags": [
          "Hot Desking"
        ],
        "operationId": "logoutHotDeskingDevice",
        "x-category": "call-features",
        "x-subcategory": "hot-desking",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Logout a hot desking",
        "description": "Logout hot desking.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of hot desking.\n"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/hotdesking/{id}/destroy": {
      "post": {
        "tags": [
          "Hot Desking"
        ],
        "operationId": "deleteHotDeskingDevice",
        "x-category": "call-features",
        "x-subcategory": "hot-desking",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Delete hot desking",
        "description": "Destroy hot desking.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of hot desking.\n"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/sms": {
      "post": {
        "tags": [
          "SMS/MMS"
        ],
        "operationId": "createSms",
        "x-category": "call-features",
        "x-subcategory": "sms",
        "x-permissions": [
          "Trunk.FullAccess"
        ],
        "summary": "Create SMS/MMS service",
        "description": "Create SMS/MMS service.\n",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64,
                    "description": "The name of SMS/MMS service.\n"
                  },
                  "enabled": {
                    "type": "boolean",
                    "default": true,
                    "description": "The flag for whether the SMS/MMS service is enabled.\n"
                  },
                  "provider_id": {
                    "allOf": [
                      {
                        "type": "string",
                        "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                        "description": "The unique ID of the resource.\n"
                      }
                    ],
                    "description": "The unique ID of trunk.\n"
                  },
                  "sender_id": {
                    "type": "string",
                    "description": "The sender ID of SMS/MMS service.\n"
                  },
                  "prepend_add": {
                    "type": "string",
                    "description": "Prepend “+” to outbound SMS recipient numbers.\n"
                  },
                  "credentials": {
                    "type": "string",
                    "description": "The credentials of SMS/MMS service.\n"
                  }
                },
                "required": [
                  "name",
                  "provider_id",
                  "credentials"
                ]
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "name": null,
                    "enabled": null,
                    "provider_id": null,
                    "sender_id": null,
                    "credentials": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of SMS/MMS service.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "The ID of created resource",
                    "value": {
                      "id": "xxxxxxxx"
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "get": {
        "tags": [
          "SMS/MMS"
        ],
        "operationId": "listSms",
        "x-category": "call-features",
        "x-subcategory": "sms",
        "x-permissions": [
          "Trunk.ViewOnly"
        ],
        "summary": "List SMS/MMS services.",
        "description": "Retrieve a collection of SMS/MMS services.\n",
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Use the `filter` query parameter to retrieve just a subset of a collection.\n"
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "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",
            "required": false,
            "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",
            "required": false,
            "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",
            "required": false,
            "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,
                      "example": 100,
                      "description": "Total number of resource.\n"
                    },
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "description": "The unique ID of SMS/MMS service.\n"
                          },
                          "name": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 64,
                            "description": "The name of SMS/MMS service.\n"
                          },
                          "enabled": {
                            "type": "boolean",
                            "default": true,
                            "description": "The flag for whether the SMS/MMS service is enabled.\n"
                          },
                          "sender_id": {
                            "type": "string",
                            "description": "The sender ID of SMS/MMS service.\n"
                          },
                          "provider_id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "description": "The unique ID of trunk.\n"
                          },
                          "prepend_add": {
                            "type": "string",
                            "description": "Prepend “+” to outbound SMS recipient numbers.\n"
                          },
                          "provider_name": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 64,
                            "description": "The name of the trunk.\n"
                          },
                          "provider_brand": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 64,
                            "description": "The brand of trunk.\n"
                          },
                          "provider_hostname": {
                            "allOf": [
                              {
                                "type": "string",
                                "description": "Server hostname or IP address\n"
                              }
                            ],
                            "description": "The hostname of trunk.\n"
                          },
                          "webhook": {
                            "type": "string",
                            "minLength": 1,
                            "description": "The `Universal Resource Locator` of some resource.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": null,
                          "name": null,
                          "enabled": null,
                          "sender_id": null,
                          "provider_id": null,
                          "provider_name": null,
                          "provider_brand": null,
                          "provider_hostname": null,
                          "webhook": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/sms/{id}": {
      "get": {
        "tags": [
          "SMS/MMS"
        ],
        "operationId": "getSms",
        "x-category": "call-features",
        "x-subcategory": "sms",
        "x-permissions": [
          "Trunk.ViewOnly"
        ],
        "summary": "Retrieve a SMS/MMS service",
        "description": "Retrieve a SMS/MMS service.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of SMS/MMS service.\n"
            },
            "description": "The unique ID of the SMS/MMS service."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of SMS/MMS service.\n"
                    },
                    "name": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64,
                      "description": "The name of SMS/MMS service.\n"
                    },
                    "enabled": {
                      "type": "boolean",
                      "default": true,
                      "description": "The flag for whether the SMS/MMS service is enabled.\n"
                    },
                    "sender_id": {
                      "type": "string",
                      "description": "The sender ID of SMS/MMS service.\n"
                    },
                    "provider_id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of trunk.\n"
                    },
                    "prepend_add": {
                      "type": "string",
                      "description": "Prepend “+” to outbound SMS recipient numbers.\n"
                    },
                    "provider_name": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64,
                      "description": "The name of the trunk.\n"
                    },
                    "provider_brand": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64,
                      "description": "The brand of trunk.\n"
                    },
                    "provider_hostname": {
                      "allOf": [
                        {
                          "type": "string",
                          "description": "Server hostname or IP address\n"
                        }
                      ],
                      "description": "The hostname of trunk.\n"
                    },
                    "webhook": {
                      "type": "string",
                      "minLength": 1,
                      "description": "The `Universal Resource Locator` of some resource.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "id": null,
                      "name": null,
                      "enabled": null,
                      "sender_id": null,
                      "provider_id": null,
                      "provider_name": null,
                      "provider_brand": null,
                      "provider_hostname": null,
                      "webhook": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "post": {
        "tags": [
          "SMS/MMS"
        ],
        "operationId": "updateSms",
        "x-category": "call-features",
        "x-subcategory": "sms",
        "x-permissions": [
          "Trunk.FullAccess"
        ],
        "summary": "Update the SMS/MMS service",
        "description": "Update the SMS/MMS service.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of SMS/MMS service.\n"
            },
            "description": "The unique ID of the SMS/MMS service."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64,
                    "description": "The name of SMS/MMS service.\n"
                  },
                  "enabled": {
                    "type": "boolean",
                    "default": true,
                    "description": "The flag for whether the SMS/MMS service is enabled.\n"
                  },
                  "sender_id": {
                    "type": "string",
                    "description": "The sender ID of SMS/MMS service.\n"
                  },
                  "prepend_add": {
                    "type": "string",
                    "description": "Prepend “+” to outbound SMS recipient numbers.\n"
                  },
                  "credentials": {
                    "type": "string",
                    "description": "The credentials of SMS/MMS service.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "name": null,
                    "enabled": null,
                    "sender_id": null,
                    "credentials": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/sms/{id}/destroy": {
      "post": {
        "tags": [
          "SMS/MMS"
        ],
        "operationId": "deleteSms",
        "x-category": "call-features",
        "x-subcategory": "sms",
        "x-permissions": [
          "Trunk.FullAccess"
        ],
        "summary": "Delete SMS/MMS service",
        "description": "Destroy a SMS/MMS service\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of SMS/MMS service.\n"
            },
            "description": "The unique ID of the SMS/MMS service."
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Error"
          }
        }
      }
    },
    "/whatsapp": {
      "post": {
        "tags": [
          "WhatsApp"
        ],
        "operationId": "createWhatsApp",
        "x-category": "call-features",
        "x-subcategory": "whatsapp",
        "x-permissions": [
          "Trunk.FullAccess"
        ],
        "summary": "Create WhatsApp service",
        "description": "Create WhatsApp service.\n",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64,
                    "description": "The name of WhatsApp service.\n"
                  },
                  "enabled": {
                    "type": "boolean",
                    "default": true,
                    "description": "The flag for whether the WhatsApp service is enabled.\n"
                  },
                  "provider_id": {
                    "allOf": [
                      {
                        "type": "string",
                        "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                        "description": "The unique ID of the resource.\n"
                      }
                    ],
                    "description": "The unique ID of trunk.\n"
                  },
                  "phone_number": {
                    "type": "string",
                    "description": "The phone number of WhatsApp service.\n"
                  },
                  "phone_number_id": {
                    "type": "string",
                    "description": "The phone number id of WhatsApp service.\n"
                  },
                  "token": {
                    "type": "string",
                    "description": "The token of WhatsApp service.\n"
                  }
                },
                "required": [
                  "name",
                  "provider_id",
                  "phone_number_id",
                  "token"
                ]
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "name": null,
                    "enabled": null,
                    "provider_id": null,
                    "phone_number": null,
                    "phone_number_id": null,
                    "token": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of WhatsApp service.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "The ID of created resource",
                    "value": {
                      "id": "xxxxxxxx"
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "get": {
        "tags": [
          "WhatsApp"
        ],
        "operationId": "listWhatsApp",
        "x-category": "call-features",
        "x-subcategory": "whatsapp",
        "x-permissions": [
          "Trunk.ViewOnly"
        ],
        "summary": "List WhatsApp services.",
        "description": "Retrieve a collection of WhatsApp services.\n",
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Use the `filter` query parameter to retrieve just a subset of a collection.\n"
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "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",
            "required": false,
            "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",
            "required": false,
            "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",
            "required": false,
            "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,
                      "example": 100,
                      "description": "Total number of resource.\n"
                    },
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "description": "The unique ID of WhatsApp service.\n"
                          },
                          "name": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 64,
                            "description": "The name of WhatsApp service.\n"
                          },
                          "enabled": {
                            "type": "boolean",
                            "default": true,
                            "description": "The flag for whether the WhatsApp service is enabled.\n"
                          },
                          "phone_number": {
                            "type": "string",
                            "description": "The phone number of WhatsApp service.\n"
                          },
                          "phone_number_id": {
                            "type": "string",
                            "description": "The phone number id of WhatsApp service.\n"
                          },
                          "provider_id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "description": "The unique ID of trunk.\n"
                          },
                          "provider_name": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 64,
                            "description": "The name of the trunk.\n"
                          },
                          "provider_brand": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 64,
                            "description": "The brand of trunk.\n"
                          },
                          "provider_hostname": {
                            "allOf": [
                              {
                                "type": "string",
                                "description": "Server hostname or IP address\n"
                              }
                            ],
                            "description": "The hostname of trunk.\n"
                          },
                          "webhook": {
                            "type": "string",
                            "minLength": 1,
                            "description": "The `Universal Resource Locator` of some resource.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": null,
                          "name": null,
                          "enabled": null,
                          "phone_number": null,
                          "phone_number_id": null,
                          "provider_id": null,
                          "provider_name": null,
                          "provider_brand": null,
                          "provider_hostname": null,
                          "webhook": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/whatsapp/{id}": {
      "get": {
        "tags": [
          "WhatsApp"
        ],
        "operationId": "getWhatsApp",
        "x-category": "call-features",
        "x-subcategory": "whatsapp",
        "x-permissions": [
          "Trunk.ViewOnly"
        ],
        "summary": "Retrieve a WhatsApp service",
        "description": "Retrieve a WhatsApp service.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of WhatsApp service.\n"
            },
            "description": "The unique ID of the WhatsApp service."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of WhatsApp service.\n"
                    },
                    "name": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64,
                      "description": "The name of WhatsApp service.\n"
                    },
                    "enabled": {
                      "type": "boolean",
                      "default": true,
                      "description": "The flag for whether the WhatsApp service is enabled.\n"
                    },
                    "phone_number": {
                      "type": "string",
                      "description": "The phone number of WhatsApp service.\n"
                    },
                    "phone_number_id": {
                      "type": "string",
                      "description": "The phone number id of WhatsApp service.\n"
                    },
                    "provider_id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of trunk.\n"
                    },
                    "provider_name": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64,
                      "description": "The name of the trunk.\n"
                    },
                    "provider_brand": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64,
                      "description": "The brand of trunk.\n"
                    },
                    "provider_hostname": {
                      "allOf": [
                        {
                          "type": "string",
                          "description": "Server hostname or IP address\n"
                        }
                      ],
                      "description": "The hostname of trunk.\n"
                    },
                    "webhook": {
                      "type": "string",
                      "minLength": 1,
                      "description": "The `Universal Resource Locator` of some resource.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "id": null,
                      "name": null,
                      "enabled": null,
                      "phone_number": null,
                      "phone_number_id": null,
                      "provider_id": null,
                      "provider_name": null,
                      "provider_brand": null,
                      "provider_hostname": null,
                      "webhook": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "post": {
        "tags": [
          "WhatsApp"
        ],
        "operationId": "updateWhatsApp",
        "x-category": "call-features",
        "x-subcategory": "whatsapp",
        "x-permissions": [
          "Trunk.FullAccess"
        ],
        "summary": "Update the WhatsApp service",
        "description": "Update the WhatsApp service.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of WhatsApp service.\n"
            },
            "description": "The unique ID of the WhatsApp service."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64,
                    "description": "The name of WhatsApp service.\n"
                  },
                  "enabled": {
                    "type": "boolean",
                    "default": true,
                    "description": "The flag for whether the WhatsApp service is enabled.\n"
                  },
                  "phone_number": {
                    "type": "string",
                    "description": "The phone number of WhatsApp service.\n"
                  },
                  "phone_number_id": {
                    "type": "string",
                    "description": "The phone number id of WhatsApp service.\n"
                  },
                  "token": {
                    "type": "string",
                    "description": "The token of WhatsApp service.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "name": null,
                    "enabled": null,
                    "phone_number": null,
                    "phone_number_id": null,
                    "token": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/whatsapp/{id}/destroy": {
      "post": {
        "tags": [
          "WhatsApp"
        ],
        "operationId": "deleteWhatsApp",
        "x-category": "call-features",
        "x-subcategory": "whatsapp",
        "x-permissions": [
          "Trunk.FullAccess"
        ],
        "summary": "Delete WhatsApp service",
        "description": "Destroy a WhatsApp service\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of WhatsApp service.\n"
            },
            "description": "The unique ID of the WhatsApp service."
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Error"
          }
        }
      }
    },
    "/cdrs": {
      "get": {
        "tags": [
          "CDR"
        ],
        "operationId": "listCDRs",
        "x-category": "call-logs",
        "x-subcategory": "cdr",
        "x-permissions": [
          "Analytics.ViewOnly"
        ],
        "summary": "List CDRs",
        "description": "Retrieve a collection of call detail records.\n",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "count": {
                      "type": "integer",
                      "format": "int64",
                      "minimum": 0,
                      "example": 100,
                      "description": "Total number of resource.\n"
                    },
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "description": "The unique ID of CDR.\n"
                          },
                          "caller": {
                            "type": "string",
                            "maxLength": 256,
                            "description": "The caller number of the call.\n"
                          },
                          "caller_domain": {
                            "type": "string",
                            "maxLength": 1024,
                            "description": "The caller domain of the call.\n"
                          },
                          "caller_display_name": {
                            "type": "string",
                            "maxLength": 1024,
                            "description": "The caller display name of the call.\n"
                          },
                          "callee": {
                            "type": "string",
                            "maxLength": 256,
                            "description": "The callee number of the call.\n"
                          },
                          "callee_domain": {
                            "type": "string",
                            "maxLength": 1024,
                            "description": "The callee domain of the call.\n"
                          },
                          "callee_display_name": {
                            "type": "string",
                            "maxLength": 1024,
                            "description": "The callee display name of the call.\n"
                          },
                          "started_at": {
                            "allOf": [
                              {
                                "type": "string",
                                "format": "date_time",
                                "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                                "example": "2017-07-21T17:32:28Z"
                              }
                            ],
                            "description": "The start time of the call.\n"
                          },
                          "rang_at": {
                            "allOf": [
                              {
                                "type": "string",
                                "format": "date_time",
                                "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                                "example": "2017-07-21T17:32:28Z"
                              }
                            ],
                            "description": "The ringing time of the call.\n"
                          },
                          "answered_at": {
                            "allOf": [
                              {
                                "type": "string",
                                "format": "date_time",
                                "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                                "example": "2017-07-21T17:32:28Z"
                              }
                            ],
                            "description": "The answer time of the call.\n"
                          },
                          "ended_at": {
                            "allOf": [
                              {
                                "type": "string",
                                "format": "date_time",
                                "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                                "example": "2017-07-21T17:32:28Z"
                              }
                            ],
                            "description": "The end time of the call.\n"
                          },
                          "call_id": {
                            "type": "string",
                            "description": "The call ID of CDR.\n"
                          },
                          "direction": {
                            "type": "string",
                            "enum": [
                              "INBOUND_CALL",
                              "OUTBOUND_CALL",
                              "EXTENSION_CALL",
                              "INBOUND_OUTBOUND_CALL"
                            ],
                            "description": "The direction of CDR:\n- `INBOUND_CALL`:\n- `OUTBOUND_CALL`:\n- `EXTENSION_CALL`:\n- `INBOUND_OUTBOUND_CALL`:\n"
                          },
                          "end_reason": {
                            "type": "string",
                            "enum": [
                              "CALLER_DISCONNECTED",
                              "CALLEE_DISCONNECTED",
                              "BLIND_TRANSFER_COMPLETED",
                              "CONSULT_TRANSFER_COMPLETED",
                              "REPLACED",
                              "REFERRED",
                              "REDIRECTED",
                              "CANCELLED"
                            ],
                            "description": "The ended reason of CDR:  \nCan be either:  \n- `CALLER_DISCONNECTED`:\n- `CALLEE_DISCONNECTED`:\n- `BLIND_TRANSFER_COMPLETED`:\n- `CONSULT_TRANSFER_COMPLETED`:\n- `REPLACED`:\n- `REFERRED`:\n- `REDIRECTED`:\n- `CANCELLED`:\n"
                          },
                          "reroute_reason": {
                            "type": "string",
                            "enum": [
                              "TRANSFER",
                              "OVERFLOW",
                              "CAPACITY_BLOCKED",
                              "QUEUE_EXIT",
                              "QUEUE_ABANDONED",
                              "REDIRECT",
                              "FORWARDING_UNCONDITIONAL",
                              "FORWARDING_BUSY",
                              "FORWARDING_NO_ANSWER",
                              "FORWARDING_NOT_REACHABLE",
                              "FORWARDING_EXCEPTION",
                              "FORWARDING_LUNCH",
                              "FORWARDING_BUSINESS_TRIP",
                              "FORWARDING_AWAY",
                              "FORWARDING_NIGHT_MODE",
                              "DISA"
                            ],
                            "description": "The reroute reason of CDR:  \nCan be either:  \n- `TRANSFER`:\n- `OVERFLOW`:\n- `CAPACITY_BLOCKED`:\n- `QUEUE_EXIT`:\n- `QUEUE_ABANDONED`:\n- `REDIRECT`:\n- `FORWARDING_UNCONDITIONAL`:\n- `FORWARDING_BUSY`:\n- `FORWARDING_NO_ANSWER`:\n- `FORWARDING_NOT_REACHABLE`:\n- `FORWARDING_EXCEPTION`:\n- `FORWARDING_LUNCH`:\n- `FORWARDING_BUSINESS_TRIP`:\n- `FORWARDING_AWAY`:\n- `FORWARDING_NIGHT_MODE`:\n- `DISA`:\n"
                          },
                          "status_code": {
                            "type": "integer",
                            "description": "The status code of CDR.\n"
                          },
                          "destination": {
                            "type": "string",
                            "description": "The destination number of CDR.\n"
                          },
                          "outbound_caller_id": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 64,
                            "description": "Outbound caller id.\n"
                          },
                          "did_cid": {
                            "type": "string",
                            "description": "The DID CID of CDR.\n"
                          },
                          "trunk": {
                            "type": "string",
                            "description": "The trunk name of CDR.\n"
                          },
                          "duration": {
                            "type": "integer",
                            "format": "int32",
                            "description": "The total talk time for a session (in seconds).\n"
                          },
                          "service_number": {
                            "type": "string",
                            "description": "The service number of the call.\n"
                          },
                          "user_data": {
                            "type": "string",
                            "description": "The additional custom user data of CDR.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": null,
                          "caller": null,
                          "caller_domain": null,
                          "caller_display_name": null,
                          "callee": null,
                          "callee_domain": null,
                          "callee_display_name": null,
                          "started_at": null,
                          "rang_at": null,
                          "answered_at": null,
                          "ended_at": null,
                          "call_id": null,
                          "direction": null,
                          "end_reason": null,
                          "reroute_reason": null,
                          "status_code": null,
                          "destination": null,
                          "outbound_caller_id": null,
                          "did_cid": null,
                          "trunk": null,
                          "duration": null,
                          "service_number": null,
                          "user_data": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/cdrs/{id}": {
      "get": {
        "tags": [
          "CDR"
        ],
        "operationId": "retrieveCDR",
        "x-category": "call-logs",
        "x-subcategory": "cdr",
        "x-permissions": [
          "Analytics.ViewOnly"
        ],
        "summary": "Retrieve CDR detailed information.",
        "description": "Retrieve details of CDR.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of CDR.\n"
            },
            "description": "The unique ID of the CDR."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "caller": {
                            "type": "string",
                            "maxLength": 256,
                            "description": "The caller number of the call.\n"
                          },
                          "caller_domain": {
                            "type": "string",
                            "maxLength": 1024,
                            "description": "The caller domain of the call.\n"
                          },
                          "caller_display_name": {
                            "type": "string",
                            "maxLength": 1024,
                            "description": "The caller display name of the call.\n"
                          },
                          "callee": {
                            "type": "string",
                            "maxLength": 256,
                            "description": "The callee number of the call.\n"
                          },
                          "callee_domain": {
                            "type": "string",
                            "maxLength": 1024,
                            "description": "The callee domain of the call.\n"
                          },
                          "callee_display_name": {
                            "type": "string",
                            "maxLength": 1024,
                            "description": "The callee display name of the call.\n"
                          },
                          "started_at": {
                            "allOf": [
                              {
                                "type": "string",
                                "format": "date_time",
                                "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                                "example": "2017-07-21T17:32:28Z"
                              }
                            ],
                            "description": "The start time of the call.\n"
                          },
                          "rang_at": {
                            "allOf": [
                              {
                                "type": "string",
                                "format": "date_time",
                                "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                                "example": "2017-07-21T17:32:28Z"
                              }
                            ],
                            "description": "The ringing time of the call.\n"
                          },
                          "answered_at": {
                            "allOf": [
                              {
                                "type": "string",
                                "format": "date_time",
                                "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                                "example": "2017-07-21T17:32:28Z"
                              }
                            ],
                            "description": "The answer time of the call.\n"
                          },
                          "ended_at": {
                            "allOf": [
                              {
                                "type": "string",
                                "format": "date_time",
                                "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                                "example": "2017-07-21T17:32:28Z"
                              }
                            ],
                            "description": "The end time of the call.\n"
                          },
                          "call_id": {
                            "type": "string",
                            "description": "The call ID of CDR.\n"
                          },
                          "direction": {
                            "type": "string",
                            "enum": [
                              "INBOUND_CALL",
                              "OUTBOUND_CALL",
                              "EXTENSION_CALL",
                              "INBOUND_OUTBOUND_CALL"
                            ],
                            "description": "The direction of CDR:\n- `INBOUND_CALL`:\n- `OUTBOUND_CALL`:\n- `EXTENSION_CALL`:\n- `INBOUND_OUTBOUND_CALL`:\n"
                          },
                          "end_reason": {
                            "type": "string",
                            "enum": [
                              "CALLER_DISCONNECTED",
                              "CALLEE_DISCONNECTED",
                              "BLIND_TRANSFER_COMPLETED",
                              "CONSULT_TRANSFER_COMPLETED",
                              "REPLACED",
                              "REFERRED",
                              "REDIRECTED",
                              "CANCELLED"
                            ],
                            "description": "The ended reason of CDR:  \nCan be either:  \n- `CALLER_DISCONNECTED`:\n- `CALLEE_DISCONNECTED`:\n- `BLIND_TRANSFER_COMPLETED`:\n- `CONSULT_TRANSFER_COMPLETED`:\n- `REPLACED`:\n- `REFERRED`:\n- `REDIRECTED`:\n- `CANCELLED`:\n"
                          },
                          "reroute_reason": {
                            "type": "string",
                            "enum": [
                              "TRANSFER",
                              "OVERFLOW",
                              "CAPACITY_BLOCKED",
                              "QUEUE_EXIT",
                              "QUEUE_ABANDONED",
                              "REDIRECT",
                              "FORWARDING_UNCONDITIONAL",
                              "FORWARDING_BUSY",
                              "FORWARDING_NO_ANSWER",
                              "FORWARDING_NOT_REACHABLE",
                              "FORWARDING_EXCEPTION",
                              "FORWARDING_LUNCH",
                              "FORWARDING_BUSINESS_TRIP",
                              "FORWARDING_AWAY",
                              "FORWARDING_NIGHT_MODE",
                              "DISA"
                            ],
                            "description": "The reroute reason of CDR:  \nCan be either:  \n- `TRANSFER`:\n- `OVERFLOW`:\n- `CAPACITY_BLOCKED`:\n- `QUEUE_EXIT`:\n- `QUEUE_ABANDONED`:\n- `REDIRECT`:\n- `FORWARDING_UNCONDITIONAL`:\n- `FORWARDING_BUSY`:\n- `FORWARDING_NO_ANSWER`:\n- `FORWARDING_NOT_REACHABLE`:\n- `FORWARDING_EXCEPTION`:\n- `FORWARDING_LUNCH`:\n- `FORWARDING_BUSINESS_TRIP`:\n- `FORWARDING_AWAY`:\n- `FORWARDING_NIGHT_MODE`:\n- `DISA`:\n"
                          },
                          "status_code": {
                            "type": "integer",
                            "description": "The status code of CDR.\n"
                          },
                          "destination": {
                            "type": "string",
                            "description": "The destination number of CDR.\n"
                          },
                          "outbound_caller_id": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 64,
                            "description": "Outbound caller id.\n"
                          },
                          "did_cid": {
                            "type": "string",
                            "description": "The DID CID of CDR.\n"
                          },
                          "trunk": {
                            "type": "string",
                            "description": "The trunk name of CDR.\n"
                          },
                          "duration": {
                            "type": "integer",
                            "format": "int32",
                            "description": "The total talk time for a session (in seconds).\n"
                          },
                          "cost": {
                            "type": "number",
                            "format": "double",
                            "description": "The cost for this call.\n"
                          },
                          "billed_account": {
                            "type": "string",
                            "description": "The account name for billing.\n"
                          },
                          "service_number": {
                            "type": "string",
                            "description": "The service number of the call.\n"
                          },
                          "user_data": {
                            "type": "string",
                            "description": "The additional custom user data of CDR.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "items": [
                        {
                          "caller": null,
                          "caller_domain": null,
                          "caller_display_name": null,
                          "callee": null,
                          "callee_domain": null,
                          "callee_display_name": null,
                          "started_at": null,
                          "rang_at": null,
                          "answered_at": null,
                          "ended_at": null,
                          "call_id": null,
                          "direction": null,
                          "end_reason": null,
                          "reroute_reason": null,
                          "status_code": null,
                          "destination": null,
                          "outbound_caller_id": null,
                          "did_cid": null,
                          "trunk": null,
                          "duration": null,
                          "cost": null,
                          "billed_account": null,
                          "service_number": null,
                          "user_data": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/calllogs": {
      "get": {
        "tags": [
          "CDR"
        ],
        "operationId": "listCallLogs",
        "x-category": "call-logs",
        "x-subcategory": "cdr",
        "x-permissions": [
          "Analytics.ViewOnly"
        ],
        "summary": "List call logs",
        "description": "Retrieve a collection of call logs.\n",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "count": {
                      "type": "integer",
                      "format": "int64",
                      "minimum": 0,
                      "example": 100,
                      "description": "Total number of resource.\n"
                    },
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "description": "The unique ID of CDR.\n"
                          },
                          "session_id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "description": "The session ID of call log.\n"
                          },
                          "caller": {
                            "type": "string",
                            "maxLength": 256,
                            "description": "The caller number of the call.\n"
                          },
                          "caller_domain": {
                            "type": "string",
                            "maxLength": 1024,
                            "description": "The caller domain of the call.\n"
                          },
                          "caller_display_name": {
                            "type": "string",
                            "maxLength": 1024,
                            "description": "The caller display name of the call.\n"
                          },
                          "callee": {
                            "type": "string",
                            "maxLength": 256,
                            "description": "The callee number of the call.\n"
                          },
                          "callee_domain": {
                            "type": "string",
                            "maxLength": 1024,
                            "description": "The callee domain of the call.\n"
                          },
                          "callee_display_name": {
                            "type": "string",
                            "maxLength": 1024,
                            "description": "The callee display name of the call.\n"
                          },
                          "started_at": {
                            "allOf": [
                              {
                                "type": "string",
                                "format": "date_time",
                                "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                                "example": "2017-07-21T17:32:28Z"
                              }
                            ],
                            "description": "The start time of the call.\n"
                          },
                          "rang_at": {
                            "allOf": [
                              {
                                "type": "string",
                                "format": "date_time",
                                "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                                "example": "2017-07-21T17:32:28Z"
                              }
                            ],
                            "description": "The ringing time of the call.\n"
                          },
                          "answered_at": {
                            "allOf": [
                              {
                                "type": "string",
                                "format": "date_time",
                                "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                                "example": "2017-07-21T17:32:28Z"
                              }
                            ],
                            "description": "The answer time of the call.\n"
                          },
                          "ended_at": {
                            "allOf": [
                              {
                                "type": "string",
                                "format": "date_time",
                                "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                                "example": "2017-07-21T17:32:28Z"
                              }
                            ],
                            "description": "The end time of the call.\n"
                          },
                          "call_id": {
                            "type": "string",
                            "description": "The call ID of CDR.\n"
                          },
                          "direction": {
                            "type": "string",
                            "enum": [
                              "INBOUND_CALL",
                              "OUTBOUND_CALL",
                              "EXTENSION_CALL",
                              "INBOUND_OUTBOUND_CALL"
                            ],
                            "description": "The direction of CDR:\n- `INBOUND_CALL`:\n- `OUTBOUND_CALL`:\n- `EXTENSION_CALL`:\n- `INBOUND_OUTBOUND_CALL`:\n"
                          },
                          "end_reason": {
                            "type": "string",
                            "enum": [
                              "CALLER_DISCONNECTED",
                              "CALLEE_DISCONNECTED",
                              "BLIND_TRANSFER_COMPLETED",
                              "CONSULT_TRANSFER_COMPLETED",
                              "REPLACED",
                              "REFERRED",
                              "REDIRECTED",
                              "CANCELLED"
                            ],
                            "description": "The ended reason of CDR:  \nCan be either:  \n- `CALLER_DISCONNECTED`:\n- `CALLEE_DISCONNECTED`:\n- `BLIND_TRANSFER_COMPLETED`:\n- `CONSULT_TRANSFER_COMPLETED`:\n- `REPLACED`:\n- `REFERRED`:\n- `REDIRECTED`:\n- `CANCELLED`:\n"
                          },
                          "reroute_reason": {
                            "type": "string",
                            "enum": [
                              "TRANSFER",
                              "OVERFLOW",
                              "CAPACITY_BLOCKED",
                              "QUEUE_EXIT",
                              "QUEUE_ABANDONED",
                              "REDIRECT",
                              "FORWARDING_UNCONDITIONAL",
                              "FORWARDING_BUSY",
                              "FORWARDING_NO_ANSWER",
                              "FORWARDING_NOT_REACHABLE",
                              "FORWARDING_EXCEPTION",
                              "FORWARDING_LUNCH",
                              "FORWARDING_BUSINESS_TRIP",
                              "FORWARDING_AWAY",
                              "FORWARDING_NIGHT_MODE",
                              "DISA"
                            ],
                            "description": "The reroute reason of CDR:  \nCan be either:  \n- `TRANSFER`:\n- `OVERFLOW`:\n- `CAPACITY_BLOCKED`:\n- `QUEUE_EXIT`:\n- `QUEUE_ABANDONED`:\n- `REDIRECT`:\n- `FORWARDING_UNCONDITIONAL`:\n- `FORWARDING_BUSY`:\n- `FORWARDING_NO_ANSWER`:\n- `FORWARDING_NOT_REACHABLE`:\n- `FORWARDING_EXCEPTION`:\n- `FORWARDING_LUNCH`:\n- `FORWARDING_BUSINESS_TRIP`:\n- `FORWARDING_AWAY`:\n- `FORWARDING_NIGHT_MODE`:\n- `DISA`:\n"
                          },
                          "status_code": {
                            "type": "integer",
                            "description": "The status code of CDR.\n"
                          },
                          "destination": {
                            "type": "string",
                            "description": "The destination number of CDR.\n"
                          },
                          "outbound_caller_id": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 64,
                            "description": "Outbound caller id.\n"
                          },
                          "did_cid": {
                            "type": "string",
                            "description": "The DID CID of CDR.\n"
                          },
                          "trunk": {
                            "type": "string",
                            "description": "The trunk name of CDR.\n"
                          },
                          "duration": {
                            "type": "integer",
                            "format": "int32",
                            "description": "The total talk time for a session (in seconds).\n"
                          },
                          "service_number": {
                            "type": "string",
                            "description": "The service number of the call.\n"
                          },
                          "user_data": {
                            "type": "string",
                            "description": "The additional custom user data of CDR.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": null,
                          "session_id": null,
                          "caller": null,
                          "caller_domain": null,
                          "caller_display_name": null,
                          "callee": null,
                          "callee_domain": null,
                          "callee_display_name": null,
                          "started_at": null,
                          "rang_at": null,
                          "answered_at": null,
                          "ended_at": null,
                          "call_id": null,
                          "direction": null,
                          "end_reason": null,
                          "reroute_reason": null,
                          "status_code": null,
                          "destination": null,
                          "outbound_caller_id": null,
                          "did_cid": null,
                          "trunk": null,
                          "duration": null,
                          "service_number": null,
                          "user_data": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/calllogs/{id}": {
      "get": {
        "tags": [
          "CDR"
        ],
        "operationId": "retrieveCallLog",
        "x-category": "call-logs",
        "x-subcategory": "cdr",
        "x-permissions": [
          "Analytics.ViewOnly"
        ],
        "summary": "Retrieve call log detailed information.",
        "description": "Retrieve details of call log.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of CDR.\n"
            },
            "description": "The unique ID of the CDR."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of CDR.\n"
                    },
                    "session_id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The session ID of call log.\n"
                    },
                    "caller": {
                      "type": "string",
                      "maxLength": 256,
                      "description": "The caller number of the call.\n"
                    },
                    "caller_domain": {
                      "type": "string",
                      "maxLength": 1024,
                      "description": "The caller domain of the call.\n"
                    },
                    "caller_display_name": {
                      "type": "string",
                      "maxLength": 1024,
                      "description": "The caller display name of the call.\n"
                    },
                    "callee": {
                      "type": "string",
                      "maxLength": 256,
                      "description": "The callee number of the call.\n"
                    },
                    "callee_domain": {
                      "type": "string",
                      "maxLength": 1024,
                      "description": "The callee domain of the call.\n"
                    },
                    "callee_display_name": {
                      "type": "string",
                      "maxLength": 1024,
                      "description": "The callee display name of the call.\n"
                    },
                    "started_at": {
                      "allOf": [
                        {
                          "type": "string",
                          "format": "date_time",
                          "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                          "example": "2017-07-21T17:32:28Z"
                        }
                      ],
                      "description": "The start time of the call.\n"
                    },
                    "rang_at": {
                      "allOf": [
                        {
                          "type": "string",
                          "format": "date_time",
                          "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                          "example": "2017-07-21T17:32:28Z"
                        }
                      ],
                      "description": "The ringing time of the call.\n"
                    },
                    "answered_at": {
                      "allOf": [
                        {
                          "type": "string",
                          "format": "date_time",
                          "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                          "example": "2017-07-21T17:32:28Z"
                        }
                      ],
                      "description": "The answer time of the call.\n"
                    },
                    "ended_at": {
                      "allOf": [
                        {
                          "type": "string",
                          "format": "date_time",
                          "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                          "example": "2017-07-21T17:32:28Z"
                        }
                      ],
                      "description": "The end time of the call.\n"
                    },
                    "call_id": {
                      "type": "string",
                      "description": "The call ID of CDR.\n"
                    },
                    "direction": {
                      "type": "string",
                      "enum": [
                        "INBOUND_CALL",
                        "OUTBOUND_CALL",
                        "EXTENSION_CALL",
                        "INBOUND_OUTBOUND_CALL"
                      ],
                      "description": "The direction of CDR:\n- `INBOUND_CALL`:\n- `OUTBOUND_CALL`:\n- `EXTENSION_CALL`:\n- `INBOUND_OUTBOUND_CALL`:\n"
                    },
                    "end_reason": {
                      "type": "string",
                      "enum": [
                        "CALLER_DISCONNECTED",
                        "CALLEE_DISCONNECTED",
                        "BLIND_TRANSFER_COMPLETED",
                        "CONSULT_TRANSFER_COMPLETED",
                        "REPLACED",
                        "REFERRED",
                        "REDIRECTED",
                        "CANCELLED"
                      ],
                      "description": "The ended reason of CDR:  \nCan be either:  \n- `CALLER_DISCONNECTED`:\n- `CALLEE_DISCONNECTED`:\n- `BLIND_TRANSFER_COMPLETED`:\n- `CONSULT_TRANSFER_COMPLETED`:\n- `REPLACED`:\n- `REFERRED`:\n- `REDIRECTED`:\n- `CANCELLED`:\n"
                    },
                    "reroute_reason": {
                      "type": "string",
                      "enum": [
                        "TRANSFER",
                        "OVERFLOW",
                        "CAPACITY_BLOCKED",
                        "QUEUE_EXIT",
                        "QUEUE_ABANDONED",
                        "REDIRECT",
                        "FORWARDING_UNCONDITIONAL",
                        "FORWARDING_BUSY",
                        "FORWARDING_NO_ANSWER",
                        "FORWARDING_NOT_REACHABLE",
                        "FORWARDING_EXCEPTION",
                        "FORWARDING_LUNCH",
                        "FORWARDING_BUSINESS_TRIP",
                        "FORWARDING_AWAY",
                        "FORWARDING_NIGHT_MODE",
                        "DISA"
                      ],
                      "description": "The reroute reason of CDR:  \nCan be either:  \n- `TRANSFER`:\n- `OVERFLOW`:\n- `CAPACITY_BLOCKED`:\n- `QUEUE_EXIT`:\n- `QUEUE_ABANDONED`:\n- `REDIRECT`:\n- `FORWARDING_UNCONDITIONAL`:\n- `FORWARDING_BUSY`:\n- `FORWARDING_NO_ANSWER`:\n- `FORWARDING_NOT_REACHABLE`:\n- `FORWARDING_EXCEPTION`:\n- `FORWARDING_LUNCH`:\n- `FORWARDING_BUSINESS_TRIP`:\n- `FORWARDING_AWAY`:\n- `FORWARDING_NIGHT_MODE`:\n- `DISA`:\n"
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "The status code of CDR.\n"
                    },
                    "destination": {
                      "type": "string",
                      "description": "The destination number of CDR.\n"
                    },
                    "outbound_caller_id": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64,
                      "description": "Outbound caller id.\n"
                    },
                    "did_cid": {
                      "type": "string",
                      "description": "The DID CID of CDR.\n"
                    },
                    "trunk": {
                      "type": "string",
                      "description": "The trunk name of CDR.\n"
                    },
                    "duration": {
                      "type": "integer",
                      "format": "int32",
                      "description": "The total talk time for a session (in seconds).\n"
                    },
                    "cost": {
                      "type": "number",
                      "format": "double",
                      "description": "The cost for this call.\n"
                    },
                    "billed_account": {
                      "type": "string",
                      "description": "The account name for billing.\n"
                    },
                    "service_number": {
                      "type": "string",
                      "description": "The service number of the call.\n"
                    },
                    "user_data": {
                      "type": "string",
                      "description": "The additional custom user data of CDR.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "id": "xxxxxxxxxxxxxxx",
                      "session_id": null,
                      "caller": null,
                      "caller_domain": null,
                      "caller_display_name": null,
                      "callee": null,
                      "callee_domain": null,
                      "callee_display_name": null,
                      "started_at": null,
                      "rang_at": null,
                      "answered_at": null,
                      "ended_at": null,
                      "call_id": null,
                      "direction": null,
                      "end_reason": null,
                      "reroute_reason": null,
                      "status_code": null,
                      "destination": null,
                      "outbound_caller_id": null,
                      "did_cid": null,
                      "trunk": null,
                      "duration": null,
                      "cost": null,
                      "billed_account": null,
                      "service_number": null,
                      "user_data": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/external_messages": {
      "get": {
        "tags": [
          "External Message"
        ],
        "operationId": "listExternalMessages",
        "x-category": "call-features",
        "x-subcategory": "external-messages",
        "x-permissions": [
          "Analytics.ViewOnly"
        ],
        "summary": "List external messages",
        "description": "Retrieve a collection of external messages.\n",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "count": {
                      "type": "integer",
                      "format": "int64",
                      "minimum": 0,
                      "example": 100,
                      "description": "Total number of resource.\n"
                    },
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "description": "The unique ID of external message.\n"
                          },
                          "config_id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "description": "The unique ID of external message.\n"
                          },
                          "sender": {
                            "type": "string",
                            "description": "The sender number of the message.\n"
                          },
                          "sender_name": {
                            "type": "string",
                            "description": "The sender name of the message.\n"
                          },
                          "receiver": {
                            "type": "string",
                            "description": "The receiver number of the message.\n"
                          },
                          "receiver_name": {
                            "type": "string",
                            "description": "The receiver name of the message.\n"
                          },
                          "channel_name": {
                            "type": "string",
                            "description": "The channel name of the message.\n"
                          },
                          "channel_number": {
                            "type": "string",
                            "description": "The channel number of the message.\n"
                          },
                          "brand": {
                            "type": "string",
                            "description": "The brand of the message.\n"
                          },
                          "did": {
                            "type": "string",
                            "description": "The did of the message.\n"
                          },
                          "msg_type": {
                            "type": "string",
                            "enum": [
                              "UNKNOWN",
                              "SMS",
                              "WHATSAPP"
                            ],
                            "description": "The type of message:  \nCan be either:  \n- `UNKNOWN`:   \n- `SMS`:   \n- `WHATSAPP`:\n"
                          },
                          "direction": {
                            "type": "string",
                            "enum": [
                              "IN",
                              "OUT"
                            ],
                            "description": "The direction of message:   \n- `IN`:   \n- `OUT`:\n"
                          },
                          "content": {
                            "type": "string",
                            "description": "The content of the message.\n"
                          },
                          "reason": {
                            "type": "string",
                            "description": "The reason of the message.\n"
                          },
                          "delivery": {
                            "type": "string",
                            "enum": [
                              "ERR",
                              "SENT",
                              "RECV",
                              "DELIVERED"
                            ],
                            "description": "The delivery status of message:  \nCan be either:  \n- `ERR`:\n- `SENT`:\n- `RECV`:\n- `DELIVERED`:   \n"
                          },
                          "provider_msg_id": {
                            "type": "string",
                            "description": "The provider message ID of the message.\n"
                          },
                          "created_at": {
                            "allOf": [
                              {
                                "type": "string",
                                "format": "date_time",
                                "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                                "example": "2017-07-21T17:32:28Z"
                              }
                            ],
                            "description": "The creation time of the message.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": null,
                          "config_id": null,
                          "sender": null,
                          "sender_name": null,
                          "receiver": null,
                          "receiver_name": null,
                          "channel_name": null,
                          "channel_number": null,
                          "brand": null,
                          "did": null,
                          "msg_type": null,
                          "direction": null,
                          "content": null,
                          "reason": null,
                          "delivery": null,
                          "provider_msg_id": null,
                          "created_at": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/external_messages/{id}": {
      "get": {
        "tags": [
          "External Message"
        ],
        "operationId": "retrieveExternalMessage",
        "x-category": "call-features",
        "x-subcategory": "external-messages",
        "x-permissions": [
          "Analytics.ViewOnly"
        ],
        "summary": "Retrieve external message detailed information.",
        "description": "Retrieve details of external message.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of external message.\n"
            },
            "description": "The unique ID of the external message."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of external message.\n"
                    },
                    "config_id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of external message.\n"
                    },
                    "sender": {
                      "type": "string",
                      "description": "The sender number of the message.\n"
                    },
                    "sender_name": {
                      "type": "string",
                      "description": "The sender name of the message.\n"
                    },
                    "receiver": {
                      "type": "string",
                      "description": "The receiver number of the message.\n"
                    },
                    "receiver_name": {
                      "type": "string",
                      "description": "The receiver name of the message.\n"
                    },
                    "channel_name": {
                      "type": "string",
                      "description": "The channel name of the message.\n"
                    },
                    "channel_number": {
                      "type": "string",
                      "description": "The channel number of the message.\n"
                    },
                    "brand": {
                      "type": "string",
                      "description": "The brand of the message.\n"
                    },
                    "did": {
                      "type": "string",
                      "description": "The did of the message.\n"
                    },
                    "msg_type": {
                      "type": "string",
                      "enum": [
                        "UNKNOWN",
                        "SMS",
                        "WHATSAPP"
                      ],
                      "description": "The type of message:  \nCan be either:  \n- `UNKNOWN`:   \n- `SMS`:   \n- `WHATSAPP`:\n"
                    },
                    "direction": {
                      "type": "string",
                      "enum": [
                        "IN",
                        "OUT"
                      ],
                      "description": "The direction of message:   \n- `IN`:   \n- `OUT`:\n"
                    },
                    "content": {
                      "type": "string",
                      "description": "The content of the message.\n"
                    },
                    "reason": {
                      "type": "string",
                      "description": "The reason of the message.\n"
                    },
                    "delivery": {
                      "type": "string",
                      "enum": [
                        "ERR",
                        "SENT",
                        "RECV",
                        "DELIVERED"
                      ],
                      "description": "The delivery status of message:  \nCan be either:  \n- `ERR`:\n- `SENT`:\n- `RECV`:\n- `DELIVERED`:   \n"
                    },
                    "provider_msg_id": {
                      "type": "string",
                      "description": "The provider message ID of the message.\n"
                    },
                    "created_at": {
                      "allOf": [
                        {
                          "type": "string",
                          "format": "date_time",
                          "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                          "example": "2017-07-21T17:32:28Z"
                        }
                      ],
                      "description": "The creation time of the message.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "id": null,
                      "config_id": null,
                      "sender": null,
                      "sender_name": null,
                      "receiver": null,
                      "receiver_name": null,
                      "channel_name": null,
                      "channel_number": null,
                      "brand": null,
                      "did": null,
                      "msg_type": null,
                      "direction": null,
                      "content": null,
                      "reason": null,
                      "delivery": null,
                      "provider_msg_id": null,
                      "created_at": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/call_reports": {
      "post": {
        "tags": [
          "CDR"
        ],
        "operationId": "createCallReport",
        "x-category": "call-logs",
        "x-subcategory": "cdr",
        "x-permissions": [
          "Analytics.FullAccess"
        ],
        "summary": "Create new call report",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "The name of call report.\n"
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "NORMAL",
                      "EXTENSION_GROUP_CALL_COST",
                      "QUEUE_PERFORMANCE",
                      "QUEUE_DETAILED_STATISTICS",
                      "QUEUE_ABANDONED_CALLS",
                      "QUEUE_SLA_STATISTICS",
                      "QUEUE_BREACHES_SLA_STATISTICS",
                      "QUEUE_CALLBACKS",
                      "QUEUE_FAILED_CALLBACKS",
                      "TEAM_QUEUE_GENERAL_STATISTICS",
                      "RING_GROUP_STATISTICS"
                    ],
                    "description": "The report types can be either:  \n- `NORMAL`:  \n- `EXTENSION_GROUP_CALL_COST`:  \n- `QUEUE_PERFORMANCE`:  \n- `QUEUE_DETAILED_STATISTICS`:  \n- `QUEUE_ABANDONED_CALLS`:  \n- `QUEUE_SLA_STATISTICS`:  \n- `QUEUE_BREACHES_SLA_STATISTICS`:  \n- `QUEUE_CALLBACKS`:  \n- `QUEUE_FAILED_CALLBACKS`:  \n- `TEAM_QUEUE_GENERAL_STATISTICS`:  \n- `RING_GROUP_STATISTICS`:\n"
                  },
                  "email": {
                    "allOf": [
                      {
                        "type": "string",
                        "maxLength": 128,
                        "description": "The email address.\n",
                        "example": "example@example.com"
                      }
                    ],
                    "description": "The email address to which the report file will be sent after the report is complete.\n"
                  },
                  "format": {
                    "type": "string",
                    "enum": [
                      "CSV",
                      "HTML"
                    ],
                    "description": "The report output files format can be either:  \n- `CSV`:  \n- `HTML`:\n"
                  },
                  "range": {
                    "type": "string",
                    "enum": [
                      "TODAY",
                      "YESTERDAY",
                      "LAST_WEEK",
                      "LAST_SEVEN_DAYS",
                      "LAST_MONTH",
                      "LAST_THIRTY_DAYS",
                      "CUSTOM"
                    ],
                    "description": "The report range can be either:  \n- `TODAY`: the day the report was generated.\n- `YESTERDAY`: yesterday of the day the report was generated.\n- `LAST_WEEK`: the last week of the day the report was generated.\n- `LAST_SEVEN_DAYS`: seven days before the day the report was generated.\n- `LAST_MONTH`: the last month of the day the report was generated.\n- `LAST_THIRTY_DAYS`: thirty days before the day the report was generated.\n- `CUSTOM`: custom date range.\n"
                  },
                  "started_at": {
                    "allOf": [
                      {
                        "type": "string",
                        "format": "date_time",
                        "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                        "example": "2017-07-21T17:32:28Z"
                      }
                    ],
                    "description": "Filter data after specified data time.  \nOnly valid when the `range` is specified as `CUSTOM`\n"
                  },
                  "ended_at": {
                    "allOf": [
                      {
                        "type": "string",
                        "format": "date_time",
                        "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                        "example": "2017-07-21T17:32:28Z"
                      }
                    ],
                    "description": "Filter data before specified data time.  \nOnly valid when the `range` is specified as `CUSTOM`\n"
                  },
                  "cron_expr": {
                    "type": "string",
                    "description": "The crontab expression <https://en.wikipedia.org/wiki/Cron>\n"
                  },
                  "filter": {
                    "oneOf": [
                      {
                        "type": "object",
                        "properties": {
                          "from": {
                            "type": "string",
                            "enum": [
                              "ANY",
                              "EXTENSION_OR_EXTENSION_RANGE",
                              "NUMBER",
                              "NUMBERS_START_WITH",
                              "NUMBERS_CONTAIN",
                              "INTERNAL_EXTENSIONS",
                              "EXTERNAL_NUMBERS"
                            ],
                            "description": "Filter calls with caller(s) number.  \nFilter can be either:  \n- `ANY`:  \n- `EXTENSION_OR_EXTENSION_RANGE`:  \n- `NUMBER`:  \n- `NUMBERS_START_WITH`:  \n- `NUMBERS_CONTAIN`:  \n- `INTERNAL_EXTENSIONS`:  \n- `EXTERNAL_NUMBERS`:\n"
                          },
                          "from_value": {
                            "type": "string",
                            "description": "This attribute must be specified, \nwhen the `from` is one of `EXTENSION_OR_EXTENSION_RANGE`, `NUMBER`, `NUMBERS_START_WITH`, `NUMBERS_CONTAIN`.\n"
                          },
                          "to": {
                            "type": "string",
                            "enum": [
                              "ANY",
                              "EXTENSION_OR_EXTENSION_RANGE",
                              "NUMBER",
                              "NUMBERS_START_WITH",
                              "NUMBERS_CONTAIN",
                              "INTERNAL_EXTENSIONS",
                              "EXTERNAL_NUMBERS"
                            ],
                            "description": "Filter calls with callee(s) number.  \nFilter can be either:  \n- `ANY`:  \n- `EXTENSION_OR_EXTENSION_RANGE`:  \n- `NUMBER`:  \n- `NUMBERS_START_WITH`:  \n- `NUMBERS_CONTAIN`:  \n- `INTERNAL_EXTENSIONS`:  \n- `EXTERNAL_NUMBERS`:\n"
                          },
                          "to_value": {
                            "type": "string",
                            "description": "This attribute must be specified \nwhen the `to` is either `EXTENSION_OR_EXTENSION_RANGE`, `NUMBER`, `NUMBERS_START_WITH`, `NUMBERS_CONTAIN`.\n"
                          },
                          "answer_state": {
                            "type": "string",
                            "enum": [
                              "ANY",
                              "ANSWERED",
                              "NOT_ANSWERED"
                            ],
                            "description": "Filter calls answered or not.  \nState can be either:  \n- `ANY`:  \n- `ANSWERED`:  \n- `NOT_ANSWERED`:\n"
                          },
                          "duration": {
                            "type": "string",
                            "enum": [
                              "ANY",
                              "RING_DURATION",
                              "TALK_DURATION"
                            ],
                            "description": "Filter calls duration range.  \nDuration can be either:  \n- `ANY`:  \n- `RING_DURATION`:  \n- `TALK_DURATION`:\n"
                          },
                          "duration_from": {
                            "type": "integer",
                            "format": "int32",
                            "minimum": 0,
                            "description": "Filter calls with duration greater than or equal to specified seconds.\n"
                          },
                          "duration_to": {
                            "type": "integer",
                            "format": "int32",
                            "minimum": 0,
                            "description": "Filter calls with duration less than or equal to specified seconds.\n"
                          }
                        }
                      },
                      {
                        "type": "object",
                        "properties": {
                          "extension": {
                            "type": "string",
                            "enum": [
                              "ANY",
                              "EXTENSION_OR_EXTENSION_RANGE"
                            ],
                            "description": "Filter calls with extension(s) number.  \nFilter can be either:  \n- `ANY`:  \n- `EXTENSION_OR_EXTENSION_RANGE`:\n"
                          },
                          "extension_value": {
                            "type": "string",
                            "description": "This attribute must be specified \nwhen the `extension` is `EXTENSION_OR_EXTENSION_RANGE`.\n"
                          },
                          "type": {
                            "type": "string",
                            "enum": [
                              "ANY",
                              "INTERNAL",
                              "EXTERNAL"
                            ],
                            "description": "Filter whether the call is an internal or external call.  \nFilter can be either:  \n- `ANY`:  \n- `INTERNAL`:  \n- `EXTERNAL`:\n"
                          }
                        }
                      },
                      {
                        "type": "object",
                        "properties": {
                          "type": {
                            "type": "string",
                            "enum": [
                              "ANY",
                              "LOCAL",
                              "NATIONAL",
                              "INTERNATIONAL",
                              "MOBILE"
                            ],
                            "description": "Filter calls with type.  \nFilter can be either:  \n- `ANY`:  \n- `LOCAL`:  \n- `NATIONAL`:  \n- `INTERNATIONAL`:  \n- `MOBILE`:\n"
                          },
                          "groups": {
                            "type": "array",
                            "items": {
                              "allOf": [
                                {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 64,
                                  "description": "The name of user group.\n"
                                }
                              ]
                            },
                            "description": "A collection of extension group names.\n"
                          }
                        }
                      },
                      {
                        "type": "object",
                        "properties": {
                          "enable_exclude_calls_dropped_before_seconds": {
                            "type": "boolean",
                            "description": "Exclude calls dropped before specified seconds or not.\n"
                          },
                          "exclude_calls_dropped_before_seconds": {
                            "type": "integer",
                            "format": "int32",
                            "minimum": 0,
                            "description": "Exclude calls dropped before specified seconds.\n"
                          },
                          "call_queues": {
                            "type": "array",
                            "items": {
                              "allOf": [
                                {
                                  "allOf": [
                                    {
                                      "type": "string",
                                      "minLength": 3,
                                      "maxLength": 64,
                                      "pattern": "[0-9]{3,64}",
                                      "description": "The extension number.\n"
                                    }
                                  ],
                                  "description": "The extension number of call queue.\n"
                                }
                              ]
                            },
                            "description": "A collection of call queue extension numbers.\n"
                          }
                        }
                      },
                      {
                        "type": "object",
                        "properties": {
                          "enable_exclude_calls_dropped_before_seconds": {
                            "type": "boolean",
                            "description": "Exclude calls dropped before specified seconds or not.\n"
                          },
                          "exclude_calls_dropped_before_seconds": {
                            "type": "integer",
                            "format": "int32",
                            "minimum": 0,
                            "description": "Exclude calls dropped before specified seconds.\n"
                          },
                          "call_queues": {
                            "type": "array",
                            "items": {
                              "allOf": [
                                {
                                  "allOf": [
                                    {
                                      "type": "string",
                                      "minLength": 3,
                                      "maxLength": 64,
                                      "pattern": "[0-9]{3,64}",
                                      "description": "The extension number.\n"
                                    }
                                  ],
                                  "description": "The extension number of call queue.\n"
                                }
                              ]
                            },
                            "description": "A collection of call queue extension numbers.\n"
                          }
                        }
                      },
                      {
                        "type": "object",
                        "properties": {
                          "enable_exclude_calls_dropped_before_seconds": {
                            "type": "boolean",
                            "description": "Exclude calls dropped before specified seconds or not.\n"
                          },
                          "exclude_calls_dropped_before_seconds": {
                            "type": "integer",
                            "format": "int32",
                            "minimum": 0,
                            "description": "Exclude calls dropped before specified seconds.\n"
                          },
                          "call_queues": {
                            "type": "array",
                            "items": {
                              "allOf": [
                                {
                                  "allOf": [
                                    {
                                      "type": "string",
                                      "minLength": 3,
                                      "maxLength": 64,
                                      "pattern": "[0-9]{3,64}",
                                      "description": "The extension number.\n"
                                    }
                                  ],
                                  "description": "The extension number of call queue.\n"
                                }
                              ]
                            },
                            "description": "A collection of call queue extension numbers.\n"
                          }
                        }
                      },
                      {
                        "type": "object",
                        "properties": {
                          "enable_exclude_calls_dropped_before_seconds": {
                            "type": "boolean",
                            "description": "Exclude calls dropped before specified seconds or not.\n"
                          },
                          "exclude_calls_dropped_before_seconds": {
                            "type": "integer",
                            "format": "int32",
                            "minimum": 0,
                            "description": "Exclude calls dropped before specified seconds.\n"
                          },
                          "call_queues": {
                            "type": "array",
                            "items": {
                              "allOf": [
                                {
                                  "allOf": [
                                    {
                                      "type": "string",
                                      "minLength": 3,
                                      "maxLength": 64,
                                      "pattern": "[0-9]{3,64}",
                                      "description": "The extension number.\n"
                                    }
                                  ],
                                  "description": "The extension number of call queue.\n"
                                }
                              ]
                            },
                            "description": "A collection of call queue extension numbers.\n"
                          }
                        }
                      },
                      {
                        "type": "object",
                        "properties": {
                          "enable_exclude_calls_dropped_before_seconds": {
                            "type": "boolean",
                            "description": "Exclude calls dropped before specified seconds or not.\n"
                          },
                          "exclude_calls_dropped_before_seconds": {
                            "type": "integer",
                            "format": "int32",
                            "minimum": 0,
                            "description": "Exclude calls dropped before specified seconds.\n"
                          },
                          "call_queues": {
                            "type": "array",
                            "items": {
                              "allOf": [
                                {
                                  "allOf": [
                                    {
                                      "type": "string",
                                      "minLength": 3,
                                      "maxLength": 64,
                                      "pattern": "[0-9]{3,64}",
                                      "description": "The extension number.\n"
                                    }
                                  ],
                                  "description": "The extension number of call queue.\n"
                                }
                              ]
                            },
                            "description": "A collection of call queue extension numbers.\n"
                          }
                        }
                      },
                      {
                        "type": "object",
                        "properties": {
                          "enable_exclude_calls_dropped_before_seconds": {
                            "type": "boolean",
                            "description": "Exclude calls dropped before specified seconds or not.\n"
                          },
                          "exclude_calls_dropped_before_seconds": {
                            "type": "integer",
                            "format": "int32",
                            "minimum": 0,
                            "description": "Exclude calls dropped before specified seconds.\n"
                          },
                          "call_queues": {
                            "type": "array",
                            "items": {
                              "allOf": [
                                {
                                  "allOf": [
                                    {
                                      "type": "string",
                                      "minLength": 3,
                                      "maxLength": 64,
                                      "pattern": "[0-9]{3,64}",
                                      "description": "The extension number.\n"
                                    }
                                  ],
                                  "description": "The extension number of call queue.\n"
                                }
                              ]
                            },
                            "description": "A collection of call queue extension numbers.\n"
                          }
                        }
                      },
                      {
                        "type": "object",
                        "properties": {
                          "call_queues": {
                            "type": "array",
                            "items": {
                              "allOf": [
                                {
                                  "allOf": [
                                    {
                                      "type": "string",
                                      "minLength": 3,
                                      "maxLength": 64,
                                      "pattern": "[0-9]{3,64}",
                                      "description": "The extension number.\n"
                                    }
                                  ],
                                  "description": "The extension number of call queue.\n"
                                }
                              ]
                            },
                            "description": "A collection of call queue extension numbers.\n"
                          }
                        }
                      },
                      {
                        "type": "object",
                        "properties": {
                          "enable_exclude_calls_dropped_before_seconds": {
                            "type": "boolean",
                            "description": "Exclude calls dropped before specified seconds or not.\n"
                          },
                          "exclude_calls_dropped_before_seconds": {
                            "type": "integer",
                            "format": "int32",
                            "minimum": 0,
                            "description": "Exclude calls dropped before specified seconds.\n"
                          },
                          "call_queues": {
                            "type": "array",
                            "items": {
                              "allOf": [
                                {
                                  "allOf": [
                                    {
                                      "type": "string",
                                      "minLength": 3,
                                      "maxLength": 64,
                                      "pattern": "[0-9]{3,64}",
                                      "description": "The extension number.\n"
                                    }
                                  ],
                                  "description": "The extension number of call queue.\n"
                                }
                              ]
                            },
                            "description": "A collection of call queue extension numbers.\n"
                          }
                        }
                      },
                      {
                        "type": "object",
                        "properties": {
                          "ring_groups": {
                            "type": "array",
                            "items": {
                              "allOf": [
                                {
                                  "type": "string",
                                  "minLength": 3,
                                  "maxLength": 64,
                                  "pattern": "[0-9]{3,64}",
                                  "description": "The extension number.\n"
                                }
                              ]
                            },
                            "description": "A collection of ring group extension numbers.\n"
                          }
                        }
                      }
                    ]
                  }
                },
                "required": [
                  "name",
                  "type",
                  "email",
                  "format",
                  "range",
                  "filter"
                ]
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "name": null,
                    "type": null,
                    "email": null,
                    "format": null,
                    "range": null,
                    "started_at": null,
                    "ended_at": null,
                    "cron_expr": null,
                    "filter": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of this call report.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "The ID of created resource",
                    "value": {
                      "id": "xxxxxxxx"
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "get": {
        "tags": [
          "CDR"
        ],
        "operationId": "listCallReports",
        "x-category": "call-logs",
        "x-subcategory": "cdr",
        "x-permissions": [
          "Analytics.ViewOnly"
        ],
        "summary": "List call reports",
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Use the `filter` query parameter to retrieve just a subset of a collection.\n"
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "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",
            "required": false,
            "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",
            "required": false,
            "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",
            "required": false,
            "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,
                      "example": 100,
                      "description": "Total number of resource.\n"
                    },
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "description": "The unique ID of this call report.\n"
                          },
                          "name": {
                            "type": "string",
                            "description": "The name of call report.\n"
                          },
                          "type": {
                            "type": "string",
                            "enum": [
                              "NORMAL",
                              "EXTENSION_GROUP_CALL_COST",
                              "QUEUE_PERFORMANCE",
                              "QUEUE_DETAILED_STATISTICS",
                              "QUEUE_ABANDONED_CALLS",
                              "QUEUE_SLA_STATISTICS",
                              "QUEUE_BREACHES_SLA_STATISTICS",
                              "QUEUE_CALLBACKS",
                              "QUEUE_FAILED_CALLBACKS",
                              "TEAM_QUEUE_GENERAL_STATISTICS",
                              "RING_GROUP_STATISTICS"
                            ],
                            "description": "The report types can be either:  \n- `NORMAL`:  \n- `EXTENSION_GROUP_CALL_COST`:  \n- `QUEUE_PERFORMANCE`:  \n- `QUEUE_DETAILED_STATISTICS`:  \n- `QUEUE_ABANDONED_CALLS`:  \n- `QUEUE_SLA_STATISTICS`:  \n- `QUEUE_BREACHES_SLA_STATISTICS`:  \n- `QUEUE_CALLBACKS`:  \n- `QUEUE_FAILED_CALLBACKS`:  \n- `TEAM_QUEUE_GENERAL_STATISTICS`:  \n- `RING_GROUP_STATISTICS`:\n"
                          },
                          "cron_expr": {
                            "type": "string",
                            "description": "The crontab expression <https://en.wikipedia.org/wiki/Cron>\n"
                          },
                          "status": {
                            "type": "string",
                            "enum": [
                              "RUNNING",
                              "SCHEDULED",
                              "ABORTED"
                            ],
                            "description": "The report status can be either:  \n- `RUNNING`:  \n- `SCHEDULED`:\n- `ABORTED`:\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": null,
                          "name": null,
                          "type": null,
                          "cron_expr": null,
                          "status": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/call_reports/{id}": {
      "get": {
        "tags": [
          "CDR"
        ],
        "operationId": "getCallReportDetails",
        "x-category": "call-logs",
        "x-subcategory": "cdr",
        "x-permissions": [
          "Analytics.ViewOnly"
        ],
        "summary": "Get call report details",
        "description": "Get details of call report by it's unique ID.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of this call report.\n"
            },
            "description": "The unique ID of the call report."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of this call report.\n"
                    },
                    "name": {
                      "type": "string",
                      "description": "The name of call report.\n"
                    },
                    "type": {
                      "type": "string",
                      "enum": [
                        "NORMAL",
                        "EXTENSION_GROUP_CALL_COST",
                        "QUEUE_PERFORMANCE",
                        "QUEUE_DETAILED_STATISTICS",
                        "QUEUE_ABANDONED_CALLS",
                        "QUEUE_SLA_STATISTICS",
                        "QUEUE_BREACHES_SLA_STATISTICS",
                        "QUEUE_CALLBACKS",
                        "QUEUE_FAILED_CALLBACKS",
                        "TEAM_QUEUE_GENERAL_STATISTICS",
                        "RING_GROUP_STATISTICS"
                      ],
                      "description": "The report types can be either:  \n- `NORMAL`:  \n- `EXTENSION_GROUP_CALL_COST`:  \n- `QUEUE_PERFORMANCE`:  \n- `QUEUE_DETAILED_STATISTICS`:  \n- `QUEUE_ABANDONED_CALLS`:  \n- `QUEUE_SLA_STATISTICS`:  \n- `QUEUE_BREACHES_SLA_STATISTICS`:  \n- `QUEUE_CALLBACKS`:  \n- `QUEUE_FAILED_CALLBACKS`:  \n- `TEAM_QUEUE_GENERAL_STATISTICS`:  \n- `RING_GROUP_STATISTICS`:\n"
                    },
                    "email": {
                      "allOf": [
                        {
                          "type": "string",
                          "maxLength": 128,
                          "description": "The email address.\n",
                          "example": "example@example.com"
                        }
                      ],
                      "description": "The email address to which the report file will be sent after the report is complete.\n"
                    },
                    "format": {
                      "type": "string",
                      "enum": [
                        "CSV",
                        "HTML"
                      ],
                      "description": "The report output files format can be either:  \n- `CSV`:  \n- `HTML`:\n"
                    },
                    "range": {
                      "type": "string",
                      "enum": [
                        "TODAY",
                        "YESTERDAY",
                        "LAST_WEEK",
                        "LAST_SEVEN_DAYS",
                        "LAST_MONTH",
                        "LAST_THIRTY_DAYS",
                        "CUSTOM"
                      ],
                      "description": "The report range can be either:  \n- `TODAY`: the day the report was generated.\n- `YESTERDAY`: yesterday of the day the report was generated.\n- `LAST_WEEK`: the last week of the day the report was generated.\n- `LAST_SEVEN_DAYS`: seven days before the day the report was generated.\n- `LAST_MONTH`: the last month of the day the report was generated.\n- `LAST_THIRTY_DAYS`: thirty days before the day the report was generated.\n- `CUSTOM`: custom date range.\n"
                    },
                    "started_at": {
                      "allOf": [
                        {
                          "type": "string",
                          "format": "date_time",
                          "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                          "example": "2017-07-21T17:32:28Z"
                        }
                      ],
                      "description": "Filter data after specified data time.  \nOnly valid when the `range` is specified as `CUSTOM`\n"
                    },
                    "ended_at": {
                      "allOf": [
                        {
                          "type": "string",
                          "format": "date_time",
                          "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                          "example": "2017-07-21T17:32:28Z"
                        }
                      ],
                      "description": "Filter data before specified data time.  \nOnly valid when the `range` is specified as `CUSTOM`\n"
                    },
                    "cron_expr": {
                      "type": "string",
                      "description": "The crontab expression <https://en.wikipedia.org/wiki/Cron>\n"
                    },
                    "filter": {
                      "oneOf": [
                        {
                          "type": "object",
                          "properties": {
                            "from": {
                              "type": "string",
                              "enum": [
                                "ANY",
                                "EXTENSION_OR_EXTENSION_RANGE",
                                "NUMBER",
                                "NUMBERS_START_WITH",
                                "NUMBERS_CONTAIN",
                                "INTERNAL_EXTENSIONS",
                                "EXTERNAL_NUMBERS"
                              ],
                              "description": "Filter calls with caller(s) number.  \nFilter can be either:  \n- `ANY`:  \n- `EXTENSION_OR_EXTENSION_RANGE`:  \n- `NUMBER`:  \n- `NUMBERS_START_WITH`:  \n- `NUMBERS_CONTAIN`:  \n- `INTERNAL_EXTENSIONS`:  \n- `EXTERNAL_NUMBERS`:\n"
                            },
                            "from_value": {
                              "type": "string",
                              "description": "This attribute must be specified, \nwhen the `from` is one of `EXTENSION_OR_EXTENSION_RANGE`, `NUMBER`, `NUMBERS_START_WITH`, `NUMBERS_CONTAIN`.\n"
                            },
                            "to": {
                              "type": "string",
                              "enum": [
                                "ANY",
                                "EXTENSION_OR_EXTENSION_RANGE",
                                "NUMBER",
                                "NUMBERS_START_WITH",
                                "NUMBERS_CONTAIN",
                                "INTERNAL_EXTENSIONS",
                                "EXTERNAL_NUMBERS"
                              ],
                              "description": "Filter calls with callee(s) number.  \nFilter can be either:  \n- `ANY`:  \n- `EXTENSION_OR_EXTENSION_RANGE`:  \n- `NUMBER`:  \n- `NUMBERS_START_WITH`:  \n- `NUMBERS_CONTAIN`:  \n- `INTERNAL_EXTENSIONS`:  \n- `EXTERNAL_NUMBERS`:\n"
                            },
                            "to_value": {
                              "type": "string",
                              "description": "This attribute must be specified \nwhen the `to` is either `EXTENSION_OR_EXTENSION_RANGE`, `NUMBER`, `NUMBERS_START_WITH`, `NUMBERS_CONTAIN`.\n"
                            },
                            "answer_state": {
                              "type": "string",
                              "enum": [
                                "ANY",
                                "ANSWERED",
                                "NOT_ANSWERED"
                              ],
                              "description": "Filter calls answered or not.  \nState can be either:  \n- `ANY`:  \n- `ANSWERED`:  \n- `NOT_ANSWERED`:\n"
                            },
                            "duration": {
                              "type": "string",
                              "enum": [
                                "ANY",
                                "RING_DURATION",
                                "TALK_DURATION"
                              ],
                              "description": "Filter calls duration range.  \nDuration can be either:  \n- `ANY`:  \n- `RING_DURATION`:  \n- `TALK_DURATION`:\n"
                            },
                            "duration_from": {
                              "type": "integer",
                              "format": "int32",
                              "minimum": 0,
                              "description": "Filter calls with duration greater than or equal to specified seconds.\n"
                            },
                            "duration_to": {
                              "type": "integer",
                              "format": "int32",
                              "minimum": 0,
                              "description": "Filter calls with duration less than or equal to specified seconds.\n"
                            }
                          }
                        },
                        {
                          "type": "object",
                          "properties": {
                            "extension": {
                              "type": "string",
                              "enum": [
                                "ANY",
                                "EXTENSION_OR_EXTENSION_RANGE"
                              ],
                              "description": "Filter calls with extension(s) number.  \nFilter can be either:  \n- `ANY`:  \n- `EXTENSION_OR_EXTENSION_RANGE`:\n"
                            },
                            "extension_value": {
                              "type": "string",
                              "description": "This attribute must be specified \nwhen the `extension` is `EXTENSION_OR_EXTENSION_RANGE`.\n"
                            },
                            "type": {
                              "type": "string",
                              "enum": [
                                "ANY",
                                "INTERNAL",
                                "EXTERNAL"
                              ],
                              "description": "Filter whether the call is an internal or external call.  \nFilter can be either:  \n- `ANY`:  \n- `INTERNAL`:  \n- `EXTERNAL`:\n"
                            }
                          }
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "type": "string",
                              "enum": [
                                "ANY",
                                "LOCAL",
                                "NATIONAL",
                                "INTERNATIONAL",
                                "MOBILE"
                              ],
                              "description": "Filter calls with type.  \nFilter can be either:  \n- `ANY`:  \n- `LOCAL`:  \n- `NATIONAL`:  \n- `INTERNATIONAL`:  \n- `MOBILE`:\n"
                            },
                            "groups": {
                              "type": "array",
                              "items": {
                                "allOf": [
                                  {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 64,
                                    "description": "The name of user group.\n"
                                  }
                                ]
                              },
                              "description": "A collection of extension group names.\n"
                            }
                          }
                        },
                        {
                          "type": "object",
                          "properties": {
                            "enable_exclude_calls_dropped_before_seconds": {
                              "type": "boolean",
                              "description": "Exclude calls dropped before specified seconds or not.\n"
                            },
                            "exclude_calls_dropped_before_seconds": {
                              "type": "integer",
                              "format": "int32",
                              "minimum": 0,
                              "description": "Exclude calls dropped before specified seconds.\n"
                            },
                            "call_queues": {
                              "type": "array",
                              "items": {
                                "allOf": [
                                  {
                                    "allOf": [
                                      {
                                        "type": "string",
                                        "minLength": 3,
                                        "maxLength": 64,
                                        "pattern": "[0-9]{3,64}",
                                        "description": "The extension number.\n"
                                      }
                                    ],
                                    "description": "The extension number of call queue.\n"
                                  }
                                ]
                              },
                              "description": "A collection of call queue extension numbers.\n"
                            }
                          }
                        },
                        {
                          "type": "object",
                          "properties": {
                            "enable_exclude_calls_dropped_before_seconds": {
                              "type": "boolean",
                              "description": "Exclude calls dropped before specified seconds or not.\n"
                            },
                            "exclude_calls_dropped_before_seconds": {
                              "type": "integer",
                              "format": "int32",
                              "minimum": 0,
                              "description": "Exclude calls dropped before specified seconds.\n"
                            },
                            "call_queues": {
                              "type": "array",
                              "items": {
                                "allOf": [
                                  {
                                    "allOf": [
                                      {
                                        "type": "string",
                                        "minLength": 3,
                                        "maxLength": 64,
                                        "pattern": "[0-9]{3,64}",
                                        "description": "The extension number.\n"
                                      }
                                    ],
                                    "description": "The extension number of call queue.\n"
                                  }
                                ]
                              },
                              "description": "A collection of call queue extension numbers.\n"
                            }
                          }
                        },
                        {
                          "type": "object",
                          "properties": {
                            "enable_exclude_calls_dropped_before_seconds": {
                              "type": "boolean",
                              "description": "Exclude calls dropped before specified seconds or not.\n"
                            },
                            "exclude_calls_dropped_before_seconds": {
                              "type": "integer",
                              "format": "int32",
                              "minimum": 0,
                              "description": "Exclude calls dropped before specified seconds.\n"
                            },
                            "call_queues": {
                              "type": "array",
                              "items": {
                                "allOf": [
                                  {
                                    "allOf": [
                                      {
                                        "type": "string",
                                        "minLength": 3,
                                        "maxLength": 64,
                                        "pattern": "[0-9]{3,64}",
                                        "description": "The extension number.\n"
                                      }
                                    ],
                                    "description": "The extension number of call queue.\n"
                                  }
                                ]
                              },
                              "description": "A collection of call queue extension numbers.\n"
                            }
                          }
                        },
                        {
                          "type": "object",
                          "properties": {
                            "enable_exclude_calls_dropped_before_seconds": {
                              "type": "boolean",
                              "description": "Exclude calls dropped before specified seconds or not.\n"
                            },
                            "exclude_calls_dropped_before_seconds": {
                              "type": "integer",
                              "format": "int32",
                              "minimum": 0,
                              "description": "Exclude calls dropped before specified seconds.\n"
                            },
                            "call_queues": {
                              "type": "array",
                              "items": {
                                "allOf": [
                                  {
                                    "allOf": [
                                      {
                                        "type": "string",
                                        "minLength": 3,
                                        "maxLength": 64,
                                        "pattern": "[0-9]{3,64}",
                                        "description": "The extension number.\n"
                                      }
                                    ],
                                    "description": "The extension number of call queue.\n"
                                  }
                                ]
                              },
                              "description": "A collection of call queue extension numbers.\n"
                            }
                          }
                        },
                        {
                          "type": "object",
                          "properties": {
                            "enable_exclude_calls_dropped_before_seconds": {
                              "type": "boolean",
                              "description": "Exclude calls dropped before specified seconds or not.\n"
                            },
                            "exclude_calls_dropped_before_seconds": {
                              "type": "integer",
                              "format": "int32",
                              "minimum": 0,
                              "description": "Exclude calls dropped before specified seconds.\n"
                            },
                            "call_queues": {
                              "type": "array",
                              "items": {
                                "allOf": [
                                  {
                                    "allOf": [
                                      {
                                        "type": "string",
                                        "minLength": 3,
                                        "maxLength": 64,
                                        "pattern": "[0-9]{3,64}",
                                        "description": "The extension number.\n"
                                      }
                                    ],
                                    "description": "The extension number of call queue.\n"
                                  }
                                ]
                              },
                              "description": "A collection of call queue extension numbers.\n"
                            }
                          }
                        },
                        {
                          "type": "object",
                          "properties": {
                            "enable_exclude_calls_dropped_before_seconds": {
                              "type": "boolean",
                              "description": "Exclude calls dropped before specified seconds or not.\n"
                            },
                            "exclude_calls_dropped_before_seconds": {
                              "type": "integer",
                              "format": "int32",
                              "minimum": 0,
                              "description": "Exclude calls dropped before specified seconds.\n"
                            },
                            "call_queues": {
                              "type": "array",
                              "items": {
                                "allOf": [
                                  {
                                    "allOf": [
                                      {
                                        "type": "string",
                                        "minLength": 3,
                                        "maxLength": 64,
                                        "pattern": "[0-9]{3,64}",
                                        "description": "The extension number.\n"
                                      }
                                    ],
                                    "description": "The extension number of call queue.\n"
                                  }
                                ]
                              },
                              "description": "A collection of call queue extension numbers.\n"
                            }
                          }
                        },
                        {
                          "type": "object",
                          "properties": {
                            "call_queues": {
                              "type": "array",
                              "items": {
                                "allOf": [
                                  {
                                    "allOf": [
                                      {
                                        "type": "string",
                                        "minLength": 3,
                                        "maxLength": 64,
                                        "pattern": "[0-9]{3,64}",
                                        "description": "The extension number.\n"
                                      }
                                    ],
                                    "description": "The extension number of call queue.\n"
                                  }
                                ]
                              },
                              "description": "A collection of call queue extension numbers.\n"
                            }
                          }
                        },
                        {
                          "type": "object",
                          "properties": {
                            "enable_exclude_calls_dropped_before_seconds": {
                              "type": "boolean",
                              "description": "Exclude calls dropped before specified seconds or not.\n"
                            },
                            "exclude_calls_dropped_before_seconds": {
                              "type": "integer",
                              "format": "int32",
                              "minimum": 0,
                              "description": "Exclude calls dropped before specified seconds.\n"
                            },
                            "call_queues": {
                              "type": "array",
                              "items": {
                                "allOf": [
                                  {
                                    "allOf": [
                                      {
                                        "type": "string",
                                        "minLength": 3,
                                        "maxLength": 64,
                                        "pattern": "[0-9]{3,64}",
                                        "description": "The extension number.\n"
                                      }
                                    ],
                                    "description": "The extension number of call queue.\n"
                                  }
                                ]
                              },
                              "description": "A collection of call queue extension numbers.\n"
                            }
                          }
                        },
                        {
                          "type": "object",
                          "properties": {
                            "ring_groups": {
                              "type": "array",
                              "items": {
                                "allOf": [
                                  {
                                    "type": "string",
                                    "minLength": 3,
                                    "maxLength": 64,
                                    "pattern": "[0-9]{3,64}",
                                    "description": "The extension number.\n"
                                  }
                                ]
                              },
                              "description": "A collection of ring group extension numbers.\n"
                            }
                          }
                        }
                      ]
                    },
                    "status": {
                      "type": "string",
                      "enum": [
                        "RUNNING",
                        "SCHEDULED",
                        "ABORTED"
                      ],
                      "description": "The report status can be either:  \n- `RUNNING`:  \n- `SCHEDULED`:\n- `ABORTED`:\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "id": null,
                      "name": null,
                      "type": null,
                      "email": null,
                      "format": null,
                      "range": null,
                      "started_at": null,
                      "ended_at": null,
                      "cron_expr": null,
                      "filter": null,
                      "status": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "post": {
        "tags": [
          "CDR"
        ],
        "operationId": "updateCallReport",
        "x-category": "call-logs",
        "x-subcategory": "cdr",
        "x-permissions": [
          "Analytics.FullAccess"
        ],
        "summary": "Update call report",
        "description": "Update call report properties.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of this call report.\n"
            },
            "description": "The unique ID of the call report."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "The name of call report.\n"
                  },
                  "email": {
                    "allOf": [
                      {
                        "type": "string",
                        "maxLength": 128,
                        "description": "The email address.\n",
                        "example": "example@example.com"
                      }
                    ],
                    "description": "The email address to which the report file will be sent after the report is complete.\n"
                  },
                  "format": {
                    "type": "string",
                    "enum": [
                      "CSV",
                      "HTML"
                    ],
                    "description": "The report output files format can be either:  \n- `CSV`:  \n- `HTML`:\n"
                  },
                  "range": {
                    "type": "string",
                    "enum": [
                      "TODAY",
                      "YESTERDAY",
                      "LAST_WEEK",
                      "LAST_SEVEN_DAYS",
                      "LAST_MONTH",
                      "LAST_THIRTY_DAYS",
                      "CUSTOM"
                    ],
                    "description": "The report range can be either:  \n- `TODAY`: the day the report was generated.\n- `YESTERDAY`: yesterday of the day the report was generated.\n- `LAST_WEEK`: the last week of the day the report was generated.\n- `LAST_SEVEN_DAYS`: seven days before the day the report was generated.\n- `LAST_MONTH`: the last month of the day the report was generated.\n- `LAST_THIRTY_DAYS`: thirty days before the day the report was generated.\n- `CUSTOM`: custom date range.\n"
                  },
                  "started_at": {
                    "allOf": [
                      {
                        "type": "string",
                        "format": "date_time",
                        "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                        "example": "2017-07-21T17:32:28Z"
                      }
                    ],
                    "description": "Filter data after specified data time.  \nOnly valid when the `range` is specified as `CUSTOM`\n"
                  },
                  "ended_at": {
                    "allOf": [
                      {
                        "type": "string",
                        "format": "date_time",
                        "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                        "example": "2017-07-21T17:32:28Z"
                      }
                    ],
                    "description": "Filter data before specified data time.  \nOnly valid when the `range` is specified as `CUSTOM`\n"
                  },
                  "cron_expr": {
                    "type": "string",
                    "description": "The crontab expression <https://en.wikipedia.org/wiki/Cron>\n"
                  },
                  "filter": {
                    "oneOf": [
                      {
                        "type": "object",
                        "properties": {
                          "from": {
                            "type": "string",
                            "enum": [
                              "ANY",
                              "EXTENSION_OR_EXTENSION_RANGE",
                              "NUMBER",
                              "NUMBERS_START_WITH",
                              "NUMBERS_CONTAIN",
                              "INTERNAL_EXTENSIONS",
                              "EXTERNAL_NUMBERS"
                            ],
                            "description": "Filter calls with caller(s) number.  \nFilter can be either:  \n- `ANY`:  \n- `EXTENSION_OR_EXTENSION_RANGE`:  \n- `NUMBER`:  \n- `NUMBERS_START_WITH`:  \n- `NUMBERS_CONTAIN`:  \n- `INTERNAL_EXTENSIONS`:  \n- `EXTERNAL_NUMBERS`:\n"
                          },
                          "from_value": {
                            "type": "string",
                            "description": "This attribute must be specified, \nwhen the `from` is one of `EXTENSION_OR_EXTENSION_RANGE`, `NUMBER`, `NUMBERS_START_WITH`, `NUMBERS_CONTAIN`.\n"
                          },
                          "to": {
                            "type": "string",
                            "enum": [
                              "ANY",
                              "EXTENSION_OR_EXTENSION_RANGE",
                              "NUMBER",
                              "NUMBERS_START_WITH",
                              "NUMBERS_CONTAIN",
                              "INTERNAL_EXTENSIONS",
                              "EXTERNAL_NUMBERS"
                            ],
                            "description": "Filter calls with callee(s) number.  \nFilter can be either:  \n- `ANY`:  \n- `EXTENSION_OR_EXTENSION_RANGE`:  \n- `NUMBER`:  \n- `NUMBERS_START_WITH`:  \n- `NUMBERS_CONTAIN`:  \n- `INTERNAL_EXTENSIONS`:  \n- `EXTERNAL_NUMBERS`:\n"
                          },
                          "to_value": {
                            "type": "string",
                            "description": "This attribute must be specified \nwhen the `to` is either `EXTENSION_OR_EXTENSION_RANGE`, `NUMBER`, `NUMBERS_START_WITH`, `NUMBERS_CONTAIN`.\n"
                          },
                          "answer_state": {
                            "type": "string",
                            "enum": [
                              "ANY",
                              "ANSWERED",
                              "NOT_ANSWERED"
                            ],
                            "description": "Filter calls answered or not.  \nState can be either:  \n- `ANY`:  \n- `ANSWERED`:  \n- `NOT_ANSWERED`:\n"
                          },
                          "duration": {
                            "type": "string",
                            "enum": [
                              "ANY",
                              "RING_DURATION",
                              "TALK_DURATION"
                            ],
                            "description": "Filter calls duration range.  \nDuration can be either:  \n- `ANY`:  \n- `RING_DURATION`:  \n- `TALK_DURATION`:\n"
                          },
                          "duration_from": {
                            "type": "integer",
                            "format": "int32",
                            "minimum": 0,
                            "description": "Filter calls with duration greater than or equal to specified seconds.\n"
                          },
                          "duration_to": {
                            "type": "integer",
                            "format": "int32",
                            "minimum": 0,
                            "description": "Filter calls with duration less than or equal to specified seconds.\n"
                          }
                        }
                      },
                      {
                        "type": "object",
                        "properties": {
                          "extension": {
                            "type": "string",
                            "enum": [
                              "ANY",
                              "EXTENSION_OR_EXTENSION_RANGE"
                            ],
                            "description": "Filter calls with extension(s) number.  \nFilter can be either:  \n- `ANY`:  \n- `EXTENSION_OR_EXTENSION_RANGE`:\n"
                          },
                          "extension_value": {
                            "type": "string",
                            "description": "This attribute must be specified \nwhen the `extension` is `EXTENSION_OR_EXTENSION_RANGE`.\n"
                          },
                          "type": {
                            "type": "string",
                            "enum": [
                              "ANY",
                              "INTERNAL",
                              "EXTERNAL"
                            ],
                            "description": "Filter whether the call is an internal or external call.  \nFilter can be either:  \n- `ANY`:  \n- `INTERNAL`:  \n- `EXTERNAL`:\n"
                          }
                        }
                      },
                      {
                        "type": "object",
                        "properties": {
                          "type": {
                            "type": "string",
                            "enum": [
                              "ANY",
                              "LOCAL",
                              "NATIONAL",
                              "INTERNATIONAL",
                              "MOBILE"
                            ],
                            "description": "Filter calls with type.  \nFilter can be either:  \n- `ANY`:  \n- `LOCAL`:  \n- `NATIONAL`:  \n- `INTERNATIONAL`:  \n- `MOBILE`:\n"
                          },
                          "groups": {
                            "type": "array",
                            "items": {
                              "allOf": [
                                {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 64,
                                  "description": "The name of user group.\n"
                                }
                              ]
                            },
                            "description": "A collection of extension group names.\n"
                          }
                        }
                      },
                      {
                        "type": "object",
                        "properties": {
                          "enable_exclude_calls_dropped_before_seconds": {
                            "type": "boolean",
                            "description": "Exclude calls dropped before specified seconds or not.\n"
                          },
                          "exclude_calls_dropped_before_seconds": {
                            "type": "integer",
                            "format": "int32",
                            "minimum": 0,
                            "description": "Exclude calls dropped before specified seconds.\n"
                          },
                          "call_queues": {
                            "type": "array",
                            "items": {
                              "allOf": [
                                {
                                  "allOf": [
                                    {
                                      "type": "string",
                                      "minLength": 3,
                                      "maxLength": 64,
                                      "pattern": "[0-9]{3,64}",
                                      "description": "The extension number.\n"
                                    }
                                  ],
                                  "description": "The extension number of call queue.\n"
                                }
                              ]
                            },
                            "description": "A collection of call queue extension numbers.\n"
                          }
                        }
                      },
                      {
                        "type": "object",
                        "properties": {
                          "enable_exclude_calls_dropped_before_seconds": {
                            "type": "boolean",
                            "description": "Exclude calls dropped before specified seconds or not.\n"
                          },
                          "exclude_calls_dropped_before_seconds": {
                            "type": "integer",
                            "format": "int32",
                            "minimum": 0,
                            "description": "Exclude calls dropped before specified seconds.\n"
                          },
                          "call_queues": {
                            "type": "array",
                            "items": {
                              "allOf": [
                                {
                                  "allOf": [
                                    {
                                      "type": "string",
                                      "minLength": 3,
                                      "maxLength": 64,
                                      "pattern": "[0-9]{3,64}",
                                      "description": "The extension number.\n"
                                    }
                                  ],
                                  "description": "The extension number of call queue.\n"
                                }
                              ]
                            },
                            "description": "A collection of call queue extension numbers.\n"
                          }
                        }
                      },
                      {
                        "type": "object",
                        "properties": {
                          "enable_exclude_calls_dropped_before_seconds": {
                            "type": "boolean",
                            "description": "Exclude calls dropped before specified seconds or not.\n"
                          },
                          "exclude_calls_dropped_before_seconds": {
                            "type": "integer",
                            "format": "int32",
                            "minimum": 0,
                            "description": "Exclude calls dropped before specified seconds.\n"
                          },
                          "call_queues": {
                            "type": "array",
                            "items": {
                              "allOf": [
                                {
                                  "allOf": [
                                    {
                                      "type": "string",
                                      "minLength": 3,
                                      "maxLength": 64,
                                      "pattern": "[0-9]{3,64}",
                                      "description": "The extension number.\n"
                                    }
                                  ],
                                  "description": "The extension number of call queue.\n"
                                }
                              ]
                            },
                            "description": "A collection of call queue extension numbers.\n"
                          }
                        }
                      },
                      {
                        "type": "object",
                        "properties": {
                          "enable_exclude_calls_dropped_before_seconds": {
                            "type": "boolean",
                            "description": "Exclude calls dropped before specified seconds or not.\n"
                          },
                          "exclude_calls_dropped_before_seconds": {
                            "type": "integer",
                            "format": "int32",
                            "minimum": 0,
                            "description": "Exclude calls dropped before specified seconds.\n"
                          },
                          "call_queues": {
                            "type": "array",
                            "items": {
                              "allOf": [
                                {
                                  "allOf": [
                                    {
                                      "type": "string",
                                      "minLength": 3,
                                      "maxLength": 64,
                                      "pattern": "[0-9]{3,64}",
                                      "description": "The extension number.\n"
                                    }
                                  ],
                                  "description": "The extension number of call queue.\n"
                                }
                              ]
                            },
                            "description": "A collection of call queue extension numbers.\n"
                          }
                        }
                      },
                      {
                        "type": "object",
                        "properties": {
                          "enable_exclude_calls_dropped_before_seconds": {
                            "type": "boolean",
                            "description": "Exclude calls dropped before specified seconds or not.\n"
                          },
                          "exclude_calls_dropped_before_seconds": {
                            "type": "integer",
                            "format": "int32",
                            "minimum": 0,
                            "description": "Exclude calls dropped before specified seconds.\n"
                          },
                          "call_queues": {
                            "type": "array",
                            "items": {
                              "allOf": [
                                {
                                  "allOf": [
                                    {
                                      "type": "string",
                                      "minLength": 3,
                                      "maxLength": 64,
                                      "pattern": "[0-9]{3,64}",
                                      "description": "The extension number.\n"
                                    }
                                  ],
                                  "description": "The extension number of call queue.\n"
                                }
                              ]
                            },
                            "description": "A collection of call queue extension numbers.\n"
                          }
                        }
                      },
                      {
                        "type": "object",
                        "properties": {
                          "enable_exclude_calls_dropped_before_seconds": {
                            "type": "boolean",
                            "description": "Exclude calls dropped before specified seconds or not.\n"
                          },
                          "exclude_calls_dropped_before_seconds": {
                            "type": "integer",
                            "format": "int32",
                            "minimum": 0,
                            "description": "Exclude calls dropped before specified seconds.\n"
                          },
                          "call_queues": {
                            "type": "array",
                            "items": {
                              "allOf": [
                                {
                                  "allOf": [
                                    {
                                      "type": "string",
                                      "minLength": 3,
                                      "maxLength": 64,
                                      "pattern": "[0-9]{3,64}",
                                      "description": "The extension number.\n"
                                    }
                                  ],
                                  "description": "The extension number of call queue.\n"
                                }
                              ]
                            },
                            "description": "A collection of call queue extension numbers.\n"
                          }
                        }
                      },
                      {
                        "type": "object",
                        "properties": {
                          "call_queues": {
                            "type": "array",
                            "items": {
                              "allOf": [
                                {
                                  "allOf": [
                                    {
                                      "type": "string",
                                      "minLength": 3,
                                      "maxLength": 64,
                                      "pattern": "[0-9]{3,64}",
                                      "description": "The extension number.\n"
                                    }
                                  ],
                                  "description": "The extension number of call queue.\n"
                                }
                              ]
                            },
                            "description": "A collection of call queue extension numbers.\n"
                          }
                        }
                      },
                      {
                        "type": "object",
                        "properties": {
                          "enable_exclude_calls_dropped_before_seconds": {
                            "type": "boolean",
                            "description": "Exclude calls dropped before specified seconds or not.\n"
                          },
                          "exclude_calls_dropped_before_seconds": {
                            "type": "integer",
                            "format": "int32",
                            "minimum": 0,
                            "description": "Exclude calls dropped before specified seconds.\n"
                          },
                          "call_queues": {
                            "type": "array",
                            "items": {
                              "allOf": [
                                {
                                  "allOf": [
                                    {
                                      "type": "string",
                                      "minLength": 3,
                                      "maxLength": 64,
                                      "pattern": "[0-9]{3,64}",
                                      "description": "The extension number.\n"
                                    }
                                  ],
                                  "description": "The extension number of call queue.\n"
                                }
                              ]
                            },
                            "description": "A collection of call queue extension numbers.\n"
                          }
                        }
                      },
                      {
                        "type": "object",
                        "properties": {
                          "ring_groups": {
                            "type": "array",
                            "items": {
                              "allOf": [
                                {
                                  "type": "string",
                                  "minLength": 3,
                                  "maxLength": 64,
                                  "pattern": "[0-9]{3,64}",
                                  "description": "The extension number.\n"
                                }
                              ]
                            },
                            "description": "A collection of ring group extension numbers.\n"
                          }
                        }
                      }
                    ]
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "name": null,
                    "email": null,
                    "format": null,
                    "range": null,
                    "started_at": null,
                    "ended_at": null,
                    "cron_expr": null,
                    "filter": null
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/call_reports/{id}/destroy": {
      "post": {
        "tags": [
          "CDR"
        ],
        "operationId": "deleteCallReport",
        "x-category": "call-logs",
        "x-subcategory": "cdr",
        "x-permissions": [
          "Analytics.FullAccess"
        ],
        "summary": "Destroy call report",
        "description": "Destroy call report by it's unique ID.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of this call report.\n"
            },
            "description": "The unique ID of the call report."
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Invalid entry ID supplied"
          }
        }
      }
    },
    "/completed_call_reports": {
      "get": {
        "tags": [
          "CDR"
        ],
        "operationId": "listCompletedCallReports",
        "x-category": "call-logs",
        "x-subcategory": "cdr",
        "x-permissions": [
          "Analytics.ViewOnly"
        ],
        "summary": "List completed call reports",
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Use the `filter` query parameter to retrieve just a subset of a collection.\n"
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "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",
            "required": false,
            "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",
            "required": false,
            "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",
            "required": false,
            "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,
                      "example": 100,
                      "description": "Total number of resource.\n"
                    },
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "description": "The unique ID of this call report.\n"
                          },
                          "name": {
                            "type": "string",
                            "description": "The name of call report.\n"
                          },
                          "type": {
                            "type": "string",
                            "enum": [
                              "NORMAL",
                              "EXTENSION_GROUP_CALL_COST",
                              "QUEUE_PERFORMANCE",
                              "QUEUE_DETAILED_STATISTICS",
                              "QUEUE_ABANDONED_CALLS",
                              "QUEUE_SLA_STATISTICS",
                              "QUEUE_BREACHES_SLA_STATISTICS",
                              "QUEUE_CALLBACKS",
                              "QUEUE_FAILED_CALLBACKS",
                              "TEAM_QUEUE_GENERAL_STATISTICS",
                              "RING_GROUP_STATISTICS"
                            ],
                            "description": "The report types can be either:  \n- `NORMAL`:  \n- `EXTENSION_GROUP_CALL_COST`:  \n- `QUEUE_PERFORMANCE`:  \n- `QUEUE_DETAILED_STATISTICS`:  \n- `QUEUE_ABANDONED_CALLS`:  \n- `QUEUE_SLA_STATISTICS`:  \n- `QUEUE_BREACHES_SLA_STATISTICS`:  \n- `QUEUE_CALLBACKS`:  \n- `QUEUE_FAILED_CALLBACKS`:  \n- `TEAM_QUEUE_GENERAL_STATISTICS`:  \n- `RING_GROUP_STATISTICS`:\n"
                          },
                          "format": {
                            "type": "string",
                            "enum": [
                              "CSV",
                              "HTML"
                            ],
                            "description": "The report output files format can be either:  \n- `CSV`:  \n- `HTML`:\n"
                          },
                          "completed_at": {
                            "allOf": [
                              {
                                "type": "string",
                                "format": "date_time",
                                "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                                "example": "2017-07-21T17:32:28Z"
                              }
                            ],
                            "description": "The completed time of call report.\n"
                          },
                          "file_name": {
                            "type": "string",
                            "description": "The name of the file.\n"
                          },
                          "file_size": {
                            "type": "integer",
                            "format": "int64",
                            "minimum": 0,
                            "example": 0,
                            "description": "The file size in bytes.\n"
                          },
                          "file_url": {
                            "type": "string",
                            "readOnly": true,
                            "example": "/api/blobs/WexWdABcd5D4PDgzTKV3gAAAEu00WcK",
                            "description": "The relative path to file url for file downloading.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": null,
                          "name": null,
                          "type": null,
                          "format": null,
                          "completed_at": null,
                          "file_name": null,
                          "file_size": null,
                          "file_url": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/completed_call_reports/{id}": {
      "get": {
        "tags": [
          "CDR"
        ],
        "operationId": "getCompletedCallReportDetails",
        "x-category": "call-logs",
        "x-subcategory": "cdr",
        "x-permissions": [
          "Analytics.ViewOnly"
        ],
        "summary": "Get completed call report details",
        "description": "Get details of completed call report by it's unique ID.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of this call report.\n"
            },
            "description": "The unique ID of the call report."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of this call report.\n"
                    },
                    "name": {
                      "type": "string",
                      "description": "The name of call report.\n"
                    },
                    "type": {
                      "type": "string",
                      "enum": [
                        "NORMAL",
                        "EXTENSION_GROUP_CALL_COST",
                        "QUEUE_PERFORMANCE",
                        "QUEUE_DETAILED_STATISTICS",
                        "QUEUE_ABANDONED_CALLS",
                        "QUEUE_SLA_STATISTICS",
                        "QUEUE_BREACHES_SLA_STATISTICS",
                        "QUEUE_CALLBACKS",
                        "QUEUE_FAILED_CALLBACKS",
                        "TEAM_QUEUE_GENERAL_STATISTICS",
                        "RING_GROUP_STATISTICS"
                      ],
                      "description": "The report types can be either:  \n- `NORMAL`:  \n- `EXTENSION_GROUP_CALL_COST`:  \n- `QUEUE_PERFORMANCE`:  \n- `QUEUE_DETAILED_STATISTICS`:  \n- `QUEUE_ABANDONED_CALLS`:  \n- `QUEUE_SLA_STATISTICS`:  \n- `QUEUE_BREACHES_SLA_STATISTICS`:  \n- `QUEUE_CALLBACKS`:  \n- `QUEUE_FAILED_CALLBACKS`:  \n- `TEAM_QUEUE_GENERAL_STATISTICS`:  \n- `RING_GROUP_STATISTICS`:\n"
                    },
                    "format": {
                      "type": "string",
                      "enum": [
                        "CSV",
                        "HTML"
                      ],
                      "description": "The report output files format can be either:  \n- `CSV`:  \n- `HTML`:\n"
                    },
                    "completed_at": {
                      "allOf": [
                        {
                          "type": "string",
                          "format": "date_time",
                          "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                          "example": "2017-07-21T17:32:28Z"
                        }
                      ],
                      "description": "The completed time of call report.\n"
                    },
                    "file_name": {
                      "type": "string",
                      "description": "The name of the file.\n"
                    },
                    "file_size": {
                      "type": "integer",
                      "format": "int64",
                      "minimum": 0,
                      "example": 0,
                      "description": "The file size in bytes.\n"
                    },
                    "file_url": {
                      "type": "string",
                      "readOnly": true,
                      "example": "/api/blobs/WexWdABcd5D4PDgzTKV3gAAAEu00WcK",
                      "description": "The relative path to file url for file downloading.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "id": null,
                      "name": null,
                      "type": null,
                      "format": null,
                      "completed_at": null,
                      "file_name": null,
                      "file_size": null,
                      "file_url": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/completed_call_reports/{id}/destroy": {
      "post": {
        "tags": [
          "CDR"
        ],
        "operationId": "deleteCompletedCallReport",
        "x-category": "call-logs",
        "x-subcategory": "cdr",
        "x-permissions": [
          "Analytics.FullAccess"
        ],
        "summary": "Destroy completed call report",
        "description": "Destroy completed call report by it's unique ID.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of this call report.\n"
            },
            "description": "The unique ID of the call report."
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Invalid entry ID supplied"
          }
        }
      }
    },
    "/feature_access_codes": {
      "get": {
        "tags": [
          "Feature Access Code"
        ],
        "operationId": "listFACs",
        "x-category": "tenants",
        "x-subcategory": "feature-codes",
        "x-permissions": [
          "PhoneSystem.ViewOnly"
        ],
        "summary": "List feature access codes",
        "description": "Returns a list of feature access codes.\n",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "code": {
                            "type": "string",
                            "minLength": 2,
                            "maxLength": 5,
                            "description": "A sequence of up to four digits beginning with an `*`.\n"
                          },
                          "feature": {
                            "type": "string",
                            "enum": [
                              "ACCESSING_SHARED_VOICEMAIL",
                              "ACCESSING_VOICEMAIL",
                              "ANONYMOUS_CALL_ACTIVATION",
                              "ANONYMOUS_CALL_DEACTIVATION",
                              "ANONYMOUS_CALL_REJECTION_ACTIVATION",
                              "ANONYMOUS_CALL_REJECTION_DEACTIVATION",
                              "AUTOMATIC_CALLBACK_ACTIVATION",
                              "AUTOMATIC_CALLBACK_DEACTIVATION",
                              "CALL_BRIDGE",
                              "CALL_FLIP",
                              "CALL_FORWARDING_ALWAYS_ACTIVATION",
                              "CALL_FORWARDING_ALWAYS_DEACTIVATION",
                              "CALL_FORWARDING_ALWAYS_TO_VOICEMAIL_ACTIVATION",
                              "CALL_FORWARDING_ALWAYS_TO_VOICEMAIL_DEACTIVATION",
                              "CALL_FORWARDING_BUSY_ACTIVATION",
                              "CALL_FORWARDING_BUSY_DEACTIVATION",
                              "CALL_FORWARDING_BUSY_TO_VOICEMAIL_ACTIVATION",
                              "CALL_FORWARDING_BUSY_TO_VOICEMAIL_DEACTIVATION",
                              "CALL_FORWARDING_NO_ANSWER_ACTIVATION",
                              "CALL_FORWARDING_NO_ANSWER_DEACTIVATION",
                              "CALL_FORWARDING_NO_ANSWER_TO_VOICEMAIL_ACTIVATION",
                              "CALL_FORWARDING_NO_ANSWER_TO_VOICEMAIL_DEACTIVATION",
                              "CALL_FORWARDING_NOT_REACHABLE_DURING_OFFICE_HOURS_ACTIVATION",
                              "CALL_FORWARDING_NOT_REACHABLE_DURING_OFFICE_HOURS_DEACTIVATION",
                              "CALL_FORWARDING_NOT_REACHABLE_OUTSIDE_OFFICE_HOURS_ACTIVATION",
                              "CALL_FORWARDING_NOT_REACHABLE_OUTSIDE_OFFICE_HOURS_DEACTIVATION",
                              "CALL_PARK",
                              "CALL_RECORDING_PAUSE",
                              "CALL_RECORDING_RESUME",
                              "CALL_RECORDING_START",
                              "CALL_RECORDING_STOP",
                              "CALL_RETRIEVE",
                              "CALL_TRANSFER",
                              "CALLER_ID_DELIVERY_BLOCKING_PER_CALL",
                              "CALLER_ID_DELIVERY_BLOCKING_PERSISTENT_ACTIVATION",
                              "CALLER_ID_DELIVERY_BLOCKING_PERSISTENT_DEACTIVATION",
                              "CALLER_ID_DELIVERY_PER_CALL",
                              "CHANGE_AGENT_STATE_TO_NOT_READY",
                              "CHANGE_AGENT_STATE_TO_READY",
                              "CLEAR_PUSH",
                              "DIRECT_VOICEMAIL_TRANSFER",
                              "DIRECTED_CALL_PICKUP",
                              "DO_NOT_DISTURB",
                              "DO_NOT_DISTURB_ACTIVATION",
                              "GROUP_CALL_PARK",
                              "GROUP_CALL_PICKUP",
                              "LAST_CALL_RETURN",
                              "LAST_NUMBER_REDIAL",
                              "LOG_AGENT_INTO_QUEUE",
                              "LOG_AGENT_OUT_OF_QUEUE",
                              "LOGIN_HOT_DESKING",
                              "LOGOUT_HOT_DESKING",
                              "NIGHT_MODE",
                              "PAGE_INTERCOM_ACTIVATION_PER_CALL",
                              "PER_ANONYMOUS_CALL_ACTIVATION",
                              "PER_ANONYMOUS_CALL_DEACTIVATION",
                              "PIN_BASED_CALLING",
                              "RESET_CALLS",
                              "SET_DEFAULT_CLI",
                              "SILENT_CALL_MONITORING",
                              "SPEED_DIAL_100",
                              "SPEED_DIAL_8"
                            ],
                            "description": "Feature access code's feature.  \n- `ACCESSING_SHARED_VOICEMAIL`:\n  Access Shared Voicemail from either a IP Phone or Soft phone App or any other SIP end point.\n  For example, dial *56 followed by the shared voicemail number.\n- `ACCESSING_VOICEMAIL`:\n  You can access your personal voicemail box using your own phone or another phone by dial *57.  \n  When you hear the audio prompt to enter your extension number and voicemail password (PIN) and press #.\n- `CALL_FORWARDING_ALWAYS_ACTIVATION`:\n  Redirects incoming phone calls to another number\n  such as a mobile phone or another user within your company.\n  After dialing the assigned code, dial the phone number to redirect calls to,\n  followed by the pound key (#).\n- `CALL_FORWARDING_ALWAYS_DEACTIVATION`:\n  Disables Call Forwarding Always.\n- `CALL_FORWARDING_ALWAYS_TO_VOICEMAIL_ACTIVATION`:\n  Sends all incoming calls to voicemail.\n- `CALL_FORWARDING_ALWAYS_TO_VOICEMAIL_DEACTIVATION`:\n  Deactivates the Call Forwarding Always to voicemail service.\n- `CHANGE_AGENT_STATE_TO_READY`:\n  Change Agent State To Ready.\n- `CHANGE_AGENT_STATE_TO_NOT_READY`:\n  Change agent state to Not Ready.\n- `CALL_FORWARDING_BUSY_ACTIVATION`:\n  Redirects incoming phone calls to another number,\n  such as a mobile phone or another user within your company,\n  but only when you are engaged in another call.\n  After dialing the assigned code, dial the phone number to redirect\n- `CALL_FORWARDING_BUSY_DEACTIVATION`:\n  Disables Call Forwarding Busy.\n- `CALL_FORWARDING_BUSY_TO_VOICEMAIL_ACTIVATION`:\n  Sends calls to voicemail only when you are already engaged in a call.\n- `CALL_FORWARDING_BUSY_TO_VOICEMAIL_DEACTIVATION`:\n  Deactivates the Call Forwarding Busy to Voicemail service.\n- `CALL_FORWARDING_NO_ANSWER_ACTIVATION`:\n  Redirects incoming phone calls to another number,\n  such as a mobile phone or another user,\n  when you do not answer your phone.\n  After dialing the assigned code,\n  dial the phone number to redirect calls to, followed by the pound key (#).\n- `CALL_FORWARDING_NO_ANSWER_DEACTIVATION`:\n  Disables Call Forwarding No Answer.\n- `CALL_FORWARDING_NO_ANSWER_TO_VOICEMAIL_ACTIVATION`:\n  Sends calls to voicemail when you do not answer your phone.\n- `CALL_FORWARDING_NO_ANSWER_TO_VOICEMAIL_DEACTIVATION`:\n  Deactivates the Call Forwarding No Answer to voicemail service.\n- `CALL_FORWARDING_NOT_REACHABLE_DURING_OFFICE_HOURS_ACTIVATION`:\n  Forwards all incoming calls to a different number when your device is not registered on the network during office hours.\n  After dialing the assigned code, dial the phone number to redirect calls to, followed by the pound key (#).\n- `CALL_FORWARDING_NOT_REACHABLE_DURING_OFFICE_HOURS_DEACTIVATION`:\n  Turns off the Call Forwarding Not Reachable Service for office hours.\n- `CALL_FORWARDING_NOT_REACHABLE_OUTSIDE_OFFICE_HOURS_ACTIVATION`\n  Forwards all incoming calls to a different number when your device is not registered on the network outside office hours.\n  After dialing the assigned code, dial the phone number to redirect calls to, followed by the pound key.\n- `CALL_FORWARDING_NOT_REACHABLE_OUTSIDE_OFFICE_HOURS_DEACTIVATION`\n  Turns off the Call Forwarding Not Reachable Service outside office hours.\n- `CALLER_ID_DELIVERY_BLOCKING_PER_CALL`:\n  Activates the Calling Line ID Delivery Blocking service on a per-call basis.\n- `CALLER_ID_DELIVERY_BLOCKING_PERSISTENT_ACTIVATION`:\n  Activates the Calling Line ID Delivery Blocking service on all calls.\n- `CALLER_ID_DELIVERY_BLOCKING_PERSISTENT_DEACTIVATION`:\n  Deactivates the Calling Line ID Delivery Blocking service.\n- `CALLER_ID_DELIVERY_PER_CALL`:\n  Displays your calling line ID for outbound calls on a per-call basis.\n  Before placing a call, dial the assigned code.\n- `CALL_PARK`:\n  Parks a call against your extension or another user's extension.\n  Once a call is parked, it can be retrieved from another phone by using the Call Retrieve Feature Access Code.\n  To park a call, dial *68 followed by the extension to park the call on, or # to park the call on your own extension.\n- `CALL_RECORDING_START`:\n  Starts a recording if a user has On Demand with User-Initiated Start or saves an entire recording in the On Demand mode.\n- `CALL_RECORDING_STOP`:\n  Stops a recording in the On Demand with User-Initiated Start.\n- `CALL_RECORDING_PAUSE`:\n  Pauses an active recording in the Always with Pause/Resume,\n  On Demand with User Initiated Start, or On Demand modes.\n- `CALL_RECORDING_RESUME`:\n  Resumes a paused recording in the Always with Pause/Resume,\n  On Demand with User Initiated Start, or On Demand modes.\n- `CALL_RETRIEVE`:\n  Used to retrieve a parked call.\n  Enter *88 followed by the extension that call is parked against.\n  If the call is parked against your own extension, press the # key.\n- `CALL_TRANSFER`:\n  To transfer a call, dial *54 (default) followed by the target number (extension or phone number).\n  For example, dialing *54123456# will transfer the call to number 123456, whether it's an extension or phone number.\n- `DIRECT_VOICEMAIL_TRANSFER`:\n  Transfers a call on hold directly to voicemail.\n  The call can be transferred to your voicemail mailbox or to any other voicemail mailbox in the group.\n  For example, to transfer a call to another user's voicemail,\n  press the transfer soft key, then enter *55 followed by the user's extension.\n- `DIRECTED_CALL_PICKUP`:\n  Answers calls ringing on another user's line.\n  Enter the assigned access code followed by the extension of the user whose call is to be picked up.\n- `DO_NOT_DISTURB_ACTIVATION`:\n  Activates the Do Not Disturb feature.\n  When Do Not Disturb is enabled, your phone does not ring and all calls go directly to voicemail.\n- `DO_NOT_DISTURB_DEACTIVATION`:\n  Disables the Do Not Disturb Feature.\n- `GROUP_CALL_PARK`:\n  Parks a call against the first available extension in a Park Group.\n  Once a call is parked, it can be retrieved from another phone by using the Call Retrieve Feature Access Code.\n  To park a call, dial *58 followed by #.\n- `GROUP_CALL_PICKUP`:\n  Enables you to pick up calls within an assigned call pickup group.\n  The call pickup group is determined by an administrator.\n  When you dial the call pickup code, the ringing phone in the group is answered.\n  If more than one phone is ringing, Call Pickup will answer the call that has been ringing the longest.\n- `LAST_CALL_RETURN`:\n  Dials the last number that called your phone.\n- `LAST_NUMBER_REDIAL`:\n  Redials the last number placed from your phone.\n- `ANONYMOUS_CALL_REJECTION_ACTIVATION`:\n  Allows user to reject incoming calls from caller who have blocked caller ID information.\n- `ANONYMOUS_CALL_REJECTION_DEACTIVATION`:\n  Allows user to reject incoming calls from caller who have blocked caller ID information.\n- `SPEED_DIAL_8`:\n  Allows the user to associate one-digit (2 through 9) speed dial codes with frequently called or hard to remember phone numbers.\n- `SPEED_DIAL_100`:\n  Allows the user to associate two-digit (00 through 1) speed dial codes with frequently called or hard to remember phone numbers.\n- `ANONYMOUS_CALL_ACTIVATION`:\n  Enables persistent make anonymous outbound call\n- `ANONYMOUS_CALL_DEACTIVATION`:\n  Disables persistent anonymous outbound call\n- `PER_ANONYMOUS_CALL_ACTIVATION`:\n  Activates the Anonymous call service on a per-call basis.\n- `PER_ANONYMOUS_CALL_DEACTIVATION`:\n  Disables the Anonymous call service on a per-call basis.\n- `CALL_BRIDGE`:\n  Allows a user with Shared Call Appearance, Anywhere, Executive, or Flexible Seating Guest service to join a bridge.\n- `AUTOMATIC_CALLBACK_ACTIVATION`:\n  Monitors a busy line and notifies the user as soon as the line becomes free.\n- `AUTOMATIC_CALLBACK_DEACTIVATION`:\n  Disables the Automatic Callback feature\n- `PAGE_INTERCOM_ACTIVATION_PER_CALL`:\n  Activates the Page/Intercom on a per-call basis\n- `LOG_AGENT_INTO_QUEUE`:\n  Log agent into queue\n- `LOG_AGENT_OUT_OF_QUEUE`:\n  Log agent out of queue\n- `LOGIN_HOT_DESKING`:\n  Hot Desking Login.\n- `LOGOUT_HOT_DESKING`:\n  Hot Desking Logout.\n- `SILENT_CALL_MONITORING`:\n  Silent call monitoring allows a supervisor to eavesdrop on a call conversation.  \n  For example, if 102 is on a call, other granted users can dial *63102 and listen on 102's call without being discovered.\n- `CALL_FLIP`:\n  Transfer calls from one device to another quickly and effortlessly with Call Flip.\n- `CLEAR_PUSH`:\n  Delete the user's push notification data.\n- `RESET_CALLS`:\n  Terminate the calls that are either received or made by the user.\n- `NIGHT_MODE`:\n   Toggles Night Mode on or off.\n- `PIN_BASED_CALLING`:\n   An extension can authenticate an outbound call to 123456 using a voicemail PIN.\n- `SET_DEFAULT_CLI`:\n   Set Default Outbound Caller ID for extension.\n"
                          },
                          "enabled": {
                            "type": "boolean",
                            "description": "Enable the feature access code or not.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "items": [
                        {
                          "code": null,
                          "feature": null,
                          "enabled": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "post": {
        "tags": [
          "Feature Access Code"
        ],
        "operationId": "updateFAC",
        "x-category": "tenants",
        "x-subcategory": "feature-codes",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Update feature access code",
        "description": "Update properties of a feature access code.\n",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "items": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string",
                          "minLength": 2,
                          "maxLength": 5,
                          "description": "A sequence of up to four digits beginning with an `*`.\n"
                        },
                        "feature": {
                          "type": "string",
                          "enum": [
                            "ACCESSING_SHARED_VOICEMAIL",
                            "ACCESSING_VOICEMAIL",
                            "ANONYMOUS_CALL_ACTIVATION",
                            "ANONYMOUS_CALL_DEACTIVATION",
                            "ANONYMOUS_CALL_REJECTION_ACTIVATION",
                            "ANONYMOUS_CALL_REJECTION_DEACTIVATION",
                            "AUTOMATIC_CALLBACK_ACTIVATION",
                            "AUTOMATIC_CALLBACK_DEACTIVATION",
                            "CALL_BRIDGE",
                            "CALL_FLIP",
                            "CALL_FORWARDING_ALWAYS_ACTIVATION",
                            "CALL_FORWARDING_ALWAYS_DEACTIVATION",
                            "CALL_FORWARDING_ALWAYS_TO_VOICEMAIL_ACTIVATION",
                            "CALL_FORWARDING_ALWAYS_TO_VOICEMAIL_DEACTIVATION",
                            "CALL_FORWARDING_BUSY_ACTIVATION",
                            "CALL_FORWARDING_BUSY_DEACTIVATION",
                            "CALL_FORWARDING_BUSY_TO_VOICEMAIL_ACTIVATION",
                            "CALL_FORWARDING_BUSY_TO_VOICEMAIL_DEACTIVATION",
                            "CALL_FORWARDING_NO_ANSWER_ACTIVATION",
                            "CALL_FORWARDING_NO_ANSWER_DEACTIVATION",
                            "CALL_FORWARDING_NO_ANSWER_TO_VOICEMAIL_ACTIVATION",
                            "CALL_FORWARDING_NO_ANSWER_TO_VOICEMAIL_DEACTIVATION",
                            "CALL_FORWARDING_NOT_REACHABLE_DURING_OFFICE_HOURS_ACTIVATION",
                            "CALL_FORWARDING_NOT_REACHABLE_DURING_OFFICE_HOURS_DEACTIVATION",
                            "CALL_FORWARDING_NOT_REACHABLE_OUTSIDE_OFFICE_HOURS_ACTIVATION",
                            "CALL_FORWARDING_NOT_REACHABLE_OUTSIDE_OFFICE_HOURS_DEACTIVATION",
                            "CALL_PARK",
                            "CALL_RECORDING_PAUSE",
                            "CALL_RECORDING_RESUME",
                            "CALL_RECORDING_START",
                            "CALL_RECORDING_STOP",
                            "CALL_RETRIEVE",
                            "CALL_TRANSFER",
                            "CALLER_ID_DELIVERY_BLOCKING_PER_CALL",
                            "CALLER_ID_DELIVERY_BLOCKING_PERSISTENT_ACTIVATION",
                            "CALLER_ID_DELIVERY_BLOCKING_PERSISTENT_DEACTIVATION",
                            "CALLER_ID_DELIVERY_PER_CALL",
                            "CHANGE_AGENT_STATE_TO_NOT_READY",
                            "CHANGE_AGENT_STATE_TO_READY",
                            "CLEAR_PUSH",
                            "DIRECT_VOICEMAIL_TRANSFER",
                            "DIRECTED_CALL_PICKUP",
                            "DO_NOT_DISTURB",
                            "DO_NOT_DISTURB_ACTIVATION",
                            "GROUP_CALL_PARK",
                            "GROUP_CALL_PICKUP",
                            "LAST_CALL_RETURN",
                            "LAST_NUMBER_REDIAL",
                            "LOG_AGENT_INTO_QUEUE",
                            "LOG_AGENT_OUT_OF_QUEUE",
                            "LOGIN_HOT_DESKING",
                            "LOGOUT_HOT_DESKING",
                            "NIGHT_MODE",
                            "PAGE_INTERCOM_ACTIVATION_PER_CALL",
                            "PER_ANONYMOUS_CALL_ACTIVATION",
                            "PER_ANONYMOUS_CALL_DEACTIVATION",
                            "PIN_BASED_CALLING",
                            "RESET_CALLS",
                            "SET_DEFAULT_CLI",
                            "SILENT_CALL_MONITORING",
                            "SPEED_DIAL_100",
                            "SPEED_DIAL_8"
                          ],
                          "description": "Feature access code's feature.  \n- `ACCESSING_SHARED_VOICEMAIL`:\n  Access Shared Voicemail from either a IP Phone or Soft phone App or any other SIP end point.\n  For example, dial *56 followed by the shared voicemail number.\n- `ACCESSING_VOICEMAIL`:\n  You can access your personal voicemail box using your own phone or another phone by dial *57.  \n  When you hear the audio prompt to enter your extension number and voicemail password (PIN) and press #.\n- `CALL_FORWARDING_ALWAYS_ACTIVATION`:\n  Redirects incoming phone calls to another number\n  such as a mobile phone or another user within your company.\n  After dialing the assigned code, dial the phone number to redirect calls to,\n  followed by the pound key (#).\n- `CALL_FORWARDING_ALWAYS_DEACTIVATION`:\n  Disables Call Forwarding Always.\n- `CALL_FORWARDING_ALWAYS_TO_VOICEMAIL_ACTIVATION`:\n  Sends all incoming calls to voicemail.\n- `CALL_FORWARDING_ALWAYS_TO_VOICEMAIL_DEACTIVATION`:\n  Deactivates the Call Forwarding Always to voicemail service.\n- `CHANGE_AGENT_STATE_TO_READY`:\n  Change Agent State To Ready.\n- `CHANGE_AGENT_STATE_TO_NOT_READY`:\n  Change agent state to Not Ready.\n- `CALL_FORWARDING_BUSY_ACTIVATION`:\n  Redirects incoming phone calls to another number,\n  such as a mobile phone or another user within your company,\n  but only when you are engaged in another call.\n  After dialing the assigned code, dial the phone number to redirect\n- `CALL_FORWARDING_BUSY_DEACTIVATION`:\n  Disables Call Forwarding Busy.\n- `CALL_FORWARDING_BUSY_TO_VOICEMAIL_ACTIVATION`:\n  Sends calls to voicemail only when you are already engaged in a call.\n- `CALL_FORWARDING_BUSY_TO_VOICEMAIL_DEACTIVATION`:\n  Deactivates the Call Forwarding Busy to Voicemail service.\n- `CALL_FORWARDING_NO_ANSWER_ACTIVATION`:\n  Redirects incoming phone calls to another number,\n  such as a mobile phone or another user,\n  when you do not answer your phone.\n  After dialing the assigned code,\n  dial the phone number to redirect calls to, followed by the pound key (#).\n- `CALL_FORWARDING_NO_ANSWER_DEACTIVATION`:\n  Disables Call Forwarding No Answer.\n- `CALL_FORWARDING_NO_ANSWER_TO_VOICEMAIL_ACTIVATION`:\n  Sends calls to voicemail when you do not answer your phone.\n- `CALL_FORWARDING_NO_ANSWER_TO_VOICEMAIL_DEACTIVATION`:\n  Deactivates the Call Forwarding No Answer to voicemail service.\n- `CALL_FORWARDING_NOT_REACHABLE_DURING_OFFICE_HOURS_ACTIVATION`:\n  Forwards all incoming calls to a different number when your device is not registered on the network during office hours.\n  After dialing the assigned code, dial the phone number to redirect calls to, followed by the pound key (#).\n- `CALL_FORWARDING_NOT_REACHABLE_DURING_OFFICE_HOURS_DEACTIVATION`:\n  Turns off the Call Forwarding Not Reachable Service for office hours.\n- `CALL_FORWARDING_NOT_REACHABLE_OUTSIDE_OFFICE_HOURS_ACTIVATION`\n  Forwards all incoming calls to a different number when your device is not registered on the network outside office hours.\n  After dialing the assigned code, dial the phone number to redirect calls to, followed by the pound key.\n- `CALL_FORWARDING_NOT_REACHABLE_OUTSIDE_OFFICE_HOURS_DEACTIVATION`\n  Turns off the Call Forwarding Not Reachable Service outside office hours.\n- `CALLER_ID_DELIVERY_BLOCKING_PER_CALL`:\n  Activates the Calling Line ID Delivery Blocking service on a per-call basis.\n- `CALLER_ID_DELIVERY_BLOCKING_PERSISTENT_ACTIVATION`:\n  Activates the Calling Line ID Delivery Blocking service on all calls.\n- `CALLER_ID_DELIVERY_BLOCKING_PERSISTENT_DEACTIVATION`:\n  Deactivates the Calling Line ID Delivery Blocking service.\n- `CALLER_ID_DELIVERY_PER_CALL`:\n  Displays your calling line ID for outbound calls on a per-call basis.\n  Before placing a call, dial the assigned code.\n- `CALL_PARK`:\n  Parks a call against your extension or another user's extension.\n  Once a call is parked, it can be retrieved from another phone by using the Call Retrieve Feature Access Code.\n  To park a call, dial *68 followed by the extension to park the call on, or # to park the call on your own extension.\n- `CALL_RECORDING_START`:\n  Starts a recording if a user has On Demand with User-Initiated Start or saves an entire recording in the On Demand mode.\n- `CALL_RECORDING_STOP`:\n  Stops a recording in the On Demand with User-Initiated Start.\n- `CALL_RECORDING_PAUSE`:\n  Pauses an active recording in the Always with Pause/Resume,\n  On Demand with User Initiated Start, or On Demand modes.\n- `CALL_RECORDING_RESUME`:\n  Resumes a paused recording in the Always with Pause/Resume,\n  On Demand with User Initiated Start, or On Demand modes.\n- `CALL_RETRIEVE`:\n  Used to retrieve a parked call.\n  Enter *88 followed by the extension that call is parked against.\n  If the call is parked against your own extension, press the # key.\n- `CALL_TRANSFER`:\n  To transfer a call, dial *54 (default) followed by the target number (extension or phone number).\n  For example, dialing *54123456# will transfer the call to number 123456, whether it's an extension or phone number.\n- `DIRECT_VOICEMAIL_TRANSFER`:\n  Transfers a call on hold directly to voicemail.\n  The call can be transferred to your voicemail mailbox or to any other voicemail mailbox in the group.\n  For example, to transfer a call to another user's voicemail,\n  press the transfer soft key, then enter *55 followed by the user's extension.\n- `DIRECTED_CALL_PICKUP`:\n  Answers calls ringing on another user's line.\n  Enter the assigned access code followed by the extension of the user whose call is to be picked up.\n- `DO_NOT_DISTURB_ACTIVATION`:\n  Activates the Do Not Disturb feature.\n  When Do Not Disturb is enabled, your phone does not ring and all calls go directly to voicemail.\n- `DO_NOT_DISTURB_DEACTIVATION`:\n  Disables the Do Not Disturb Feature.\n- `GROUP_CALL_PARK`:\n  Parks a call against the first available extension in a Park Group.\n  Once a call is parked, it can be retrieved from another phone by using the Call Retrieve Feature Access Code.\n  To park a call, dial *58 followed by #.\n- `GROUP_CALL_PICKUP`:\n  Enables you to pick up calls within an assigned call pickup group.\n  The call pickup group is determined by an administrator.\n  When you dial the call pickup code, the ringing phone in the group is answered.\n  If more than one phone is ringing, Call Pickup will answer the call that has been ringing the longest.\n- `LAST_CALL_RETURN`:\n  Dials the last number that called your phone.\n- `LAST_NUMBER_REDIAL`:\n  Redials the last number placed from your phone.\n- `ANONYMOUS_CALL_REJECTION_ACTIVATION`:\n  Allows user to reject incoming calls from caller who have blocked caller ID information.\n- `ANONYMOUS_CALL_REJECTION_DEACTIVATION`:\n  Allows user to reject incoming calls from caller who have blocked caller ID information.\n- `SPEED_DIAL_8`:\n  Allows the user to associate one-digit (2 through 9) speed dial codes with frequently called or hard to remember phone numbers.\n- `SPEED_DIAL_100`:\n  Allows the user to associate two-digit (00 through 1) speed dial codes with frequently called or hard to remember phone numbers.\n- `ANONYMOUS_CALL_ACTIVATION`:\n  Enables persistent make anonymous outbound call\n- `ANONYMOUS_CALL_DEACTIVATION`:\n  Disables persistent anonymous outbound call\n- `PER_ANONYMOUS_CALL_ACTIVATION`:\n  Activates the Anonymous call service on a per-call basis.\n- `PER_ANONYMOUS_CALL_DEACTIVATION`:\n  Disables the Anonymous call service on a per-call basis.\n- `CALL_BRIDGE`:\n  Allows a user with Shared Call Appearance, Anywhere, Executive, or Flexible Seating Guest service to join a bridge.\n- `AUTOMATIC_CALLBACK_ACTIVATION`:\n  Monitors a busy line and notifies the user as soon as the line becomes free.\n- `AUTOMATIC_CALLBACK_DEACTIVATION`:\n  Disables the Automatic Callback feature\n- `PAGE_INTERCOM_ACTIVATION_PER_CALL`:\n  Activates the Page/Intercom on a per-call basis\n- `LOG_AGENT_INTO_QUEUE`:\n  Log agent into queue\n- `LOG_AGENT_OUT_OF_QUEUE`:\n  Log agent out of queue\n- `LOGIN_HOT_DESKING`:\n  Hot Desking Login.\n- `LOGOUT_HOT_DESKING`:\n  Hot Desking Logout.\n- `SILENT_CALL_MONITORING`:\n  Silent call monitoring allows a supervisor to eavesdrop on a call conversation.  \n  For example, if 102 is on a call, other granted users can dial *63102 and listen on 102's call without being discovered.\n- `CALL_FLIP`:\n  Transfer calls from one device to another quickly and effortlessly with Call Flip.\n- `CLEAR_PUSH`:\n  Delete the user's push notification data.\n- `RESET_CALLS`:\n  Terminate the calls that are either received or made by the user.\n- `NIGHT_MODE`:\n   Toggles Night Mode on or off.\n- `PIN_BASED_CALLING`:\n   An extension can authenticate an outbound call to 123456 using a voicemail PIN.\n- `SET_DEFAULT_CLI`:\n   Set Default Outbound Caller ID for extension.\n"
                        },
                        "enabled": {
                          "type": "boolean",
                          "description": "Enable the feature access code or not.\n"
                        }
                      }
                    }
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "items": [
                      {
                        "code": null,
                        "feature": null,
                        "enabled": null
                      }
                    ]
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/default_email_templates": {
      "get": {
        "tags": [
          "Notification"
        ],
        "operationId": "listDefaultEmailTemplates",
        "x-category": "integrations",
        "x-subcategory": "email-notification",
        "x-permissions": [
          "Company.ViewOnly"
        ],
        "summary": "List default email templates",
        "description": "List all of default email templates\n",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "name": {
                            "type": "string",
                            "enum": [
                              "USER_CREATION",
                              "QUEUE_CALL_LOST",
                              "QUEUE_SLA",
                              "QUEUE_CALLBACK",
                              "QUEUE_CALLBACK_FAILED",
                              "VOICEMAIL_RECEIVED",
                              "CALL_REPORT_COMPLETED",
                              "DISK_LOW",
                              "EMERGENCY_CALL",
                              "LICENSE_LIMITED",
                              "RECHARGE",
                              "CONFERENCE_INVITATION",
                              "TRUNK_CONNECTED",
                              "TRUNK_DISCONNECTED"
                            ],
                            "description": "Name of the email template:   \nCan be either:   \n- `USER_CREATION`: user creation notification.\n- `QUEUE_CALL_LOST`: call queue call lost notification.\n- `QUEUE_SLA`: call queue sla time reached notification.\n- `QUEUE_CALLBACK`: call queue callback notification.\n- `QUEUE_CALLBACK_FAILED`: call queue callback failed notification.\n- `VOICEMAIL_RECEIVED`: received voicemail notification.\n- `CALL_REPORT_COMPLETED`: call report completed notification.\n- `DISK_LOW`: low disk notification.\n- `EMERGENCY_CALL`: emergency call notification.\n- `LICENSE_LIMITED`: license limited notification.\n- `RECHARGE`: recharge notification.\n- `CONFERENCE_INVITATION`: meeting invitation notification.\n- `TRUNK_CONNECTED`: trunk connected notification.\n- `TRUNK_DISCONNECTED`: trunk disconnected notification.\n"
                          },
                          "from": {
                            "type": "string",
                            "description": "Notification email from field.\n"
                          },
                          "subject": {
                            "type": "string",
                            "description": "Notification email subject field.\n"
                          },
                          "body": {
                            "type": "string",
                            "description": "Notification email body.\n"
                          }
                        }
                      },
                      "description": "A collection of default email templates.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "items": [
                        {
                          "name": null,
                          "from": null,
                          "subject": null,
                          "body": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/default_email_templates/{name}": {
      "get": {
        "tags": [
          "Notification"
        ],
        "operationId": "getDefaultEmailTemplateDetails",
        "x-category": "integrations",
        "x-subcategory": "email-notification",
        "x-permissions": [
          "Company.ViewOnly"
        ],
        "summary": "Retrieve default details of template",
        "description": "Get details of default template by name.\n",
        "parameters": [
          {
            "name": "name",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "enum": [
                "USER_CREATION",
                "QUEUE_CALL_LOST",
                "QUEUE_SLA",
                "QUEUE_CALLBACK",
                "QUEUE_CALLBACK_FAILED",
                "VOICEMAIL_RECEIVED",
                "CALL_REPORT_COMPLETED",
                "DISK_LOW",
                "EMERGENCY_CALL",
                "LICENSE_LIMITED",
                "RECHARGE",
                "CONFERENCE_INVITATION",
                "TRUNK_CONNECTED",
                "TRUNK_DISCONNECTED"
              ],
              "description": "Name of the email template:   \nCan be either:   \n- `USER_CREATION`: user creation notification.\n- `QUEUE_CALL_LOST`: call queue call lost notification.\n- `QUEUE_SLA`: call queue sla time reached notification.\n- `QUEUE_CALLBACK`: call queue callback notification.\n- `QUEUE_CALLBACK_FAILED`: call queue callback failed notification.\n- `VOICEMAIL_RECEIVED`: received voicemail notification.\n- `CALL_REPORT_COMPLETED`: call report completed notification.\n- `DISK_LOW`: low disk notification.\n- `EMERGENCY_CALL`: emergency call notification.\n- `LICENSE_LIMITED`: license limited notification.\n- `RECHARGE`: recharge notification.\n- `CONFERENCE_INVITATION`: meeting invitation notification.\n- `TRUNK_CONNECTED`: trunk connected notification.\n- `TRUNK_DISCONNECTED`: trunk disconnected notification.\n"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string",
                      "enum": [
                        "USER_CREATION",
                        "QUEUE_CALL_LOST",
                        "QUEUE_SLA",
                        "QUEUE_CALLBACK",
                        "QUEUE_CALLBACK_FAILED",
                        "VOICEMAIL_RECEIVED",
                        "CALL_REPORT_COMPLETED",
                        "DISK_LOW",
                        "EMERGENCY_CALL",
                        "LICENSE_LIMITED",
                        "RECHARGE",
                        "CONFERENCE_INVITATION",
                        "TRUNK_CONNECTED",
                        "TRUNK_DISCONNECTED"
                      ],
                      "description": "Name of the email template:   \nCan be either:   \n- `USER_CREATION`: user creation notification.\n- `QUEUE_CALL_LOST`: call queue call lost notification.\n- `QUEUE_SLA`: call queue sla time reached notification.\n- `QUEUE_CALLBACK`: call queue callback notification.\n- `QUEUE_CALLBACK_FAILED`: call queue callback failed notification.\n- `VOICEMAIL_RECEIVED`: received voicemail notification.\n- `CALL_REPORT_COMPLETED`: call report completed notification.\n- `DISK_LOW`: low disk notification.\n- `EMERGENCY_CALL`: emergency call notification.\n- `LICENSE_LIMITED`: license limited notification.\n- `RECHARGE`: recharge notification.\n- `CONFERENCE_INVITATION`: meeting invitation notification.\n- `TRUNK_CONNECTED`: trunk connected notification.\n- `TRUNK_DISCONNECTED`: trunk disconnected notification.\n"
                    },
                    "from": {
                      "type": "string",
                      "description": "Notification email from field.\n"
                    },
                    "subject": {
                      "type": "string",
                      "description": "Notification email subject field.\n"
                    },
                    "body": {
                      "type": "string",
                      "description": "Notification email body.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "name": null,
                      "from": null,
                      "subject": null,
                      "body": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/custom_email_templates": {
      "post": {
        "tags": [
          "Notification"
        ],
        "operationId": "createCustomEmailTemplate",
        "x-category": "tenants",
        "x-subcategory": "templates",
        "x-permissions": [
          "Company.FullAccess"
        ],
        "summary": "Add custom email template",
        "description": "Create custom email template.\n",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "enum": [
                      "USER_CREATION",
                      "QUEUE_CALL_LOST",
                      "QUEUE_SLA",
                      "QUEUE_CALLBACK",
                      "QUEUE_CALLBACK_FAILED",
                      "VOICEMAIL_RECEIVED",
                      "CALL_REPORT_COMPLETED",
                      "DISK_LOW",
                      "EMERGENCY_CALL",
                      "LICENSE_LIMITED",
                      "RECHARGE",
                      "CONFERENCE_INVITATION",
                      "TRUNK_CONNECTED",
                      "TRUNK_DISCONNECTED"
                    ],
                    "description": "Name of the email template:   \nCan be either:   \n- `USER_CREATION`: user creation notification.\n- `QUEUE_CALL_LOST`: call queue call lost notification.\n- `QUEUE_SLA`: call queue sla time reached notification.\n- `QUEUE_CALLBACK`: call queue callback notification.\n- `QUEUE_CALLBACK_FAILED`: call queue callback failed notification.\n- `VOICEMAIL_RECEIVED`: received voicemail notification.\n- `CALL_REPORT_COMPLETED`: call report completed notification.\n- `DISK_LOW`: low disk notification.\n- `EMERGENCY_CALL`: emergency call notification.\n- `LICENSE_LIMITED`: license limited notification.\n- `RECHARGE`: recharge notification.\n- `CONFERENCE_INVITATION`: meeting invitation notification.\n- `TRUNK_CONNECTED`: trunk connected notification.\n- `TRUNK_DISCONNECTED`: trunk disconnected notification.\n"
                  },
                  "from": {
                    "type": "string",
                    "description": "Notification email from field.\n"
                  },
                  "subject": {
                    "type": "string",
                    "description": "Notification email subject field.\n"
                  },
                  "body": {
                    "type": "string",
                    "description": "Notification email body.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "name": null,
                    "from": null,
                    "subject": null,
                    "body": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                      "description": "The unique ID of the resource.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "The ID of created resource",
                    "value": {
                      "id": "xxxxxxxx"
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "get": {
        "tags": [
          "Notification"
        ],
        "operationId": "listCustomEmailTemplates",
        "x-category": "tenants",
        "x-subcategory": "templates",
        "x-permissions": [
          "Company.ViewOnly"
        ],
        "summary": "List custom email templates",
        "description": "List all of custom email templates\n",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "name": {
                            "type": "string",
                            "enum": [
                              "USER_CREATION",
                              "QUEUE_CALL_LOST",
                              "QUEUE_SLA",
                              "QUEUE_CALLBACK",
                              "QUEUE_CALLBACK_FAILED",
                              "VOICEMAIL_RECEIVED",
                              "CALL_REPORT_COMPLETED",
                              "DISK_LOW",
                              "EMERGENCY_CALL",
                              "LICENSE_LIMITED",
                              "RECHARGE",
                              "CONFERENCE_INVITATION",
                              "TRUNK_CONNECTED",
                              "TRUNK_DISCONNECTED"
                            ],
                            "description": "Name of the email template:   \nCan be either:   \n- `USER_CREATION`: user creation notification.\n- `QUEUE_CALL_LOST`: call queue call lost notification.\n- `QUEUE_SLA`: call queue sla time reached notification.\n- `QUEUE_CALLBACK`: call queue callback notification.\n- `QUEUE_CALLBACK_FAILED`: call queue callback failed notification.\n- `VOICEMAIL_RECEIVED`: received voicemail notification.\n- `CALL_REPORT_COMPLETED`: call report completed notification.\n- `DISK_LOW`: low disk notification.\n- `EMERGENCY_CALL`: emergency call notification.\n- `LICENSE_LIMITED`: license limited notification.\n- `RECHARGE`: recharge notification.\n- `CONFERENCE_INVITATION`: meeting invitation notification.\n- `TRUNK_CONNECTED`: trunk connected notification.\n- `TRUNK_DISCONNECTED`: trunk disconnected notification.\n"
                          },
                          "from": {
                            "type": "string",
                            "description": "Notification email from field.\n"
                          },
                          "subject": {
                            "type": "string",
                            "description": "Notification email subject field.\n"
                          },
                          "body": {
                            "type": "string",
                            "description": "Notification email body.\n"
                          }
                        }
                      },
                      "description": "A collection of custom email templates.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "items": [
                        {
                          "name": null,
                          "from": null,
                          "subject": null,
                          "body": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/custom_email_templates/{name}": {
      "get": {
        "tags": [
          "Notification"
        ],
        "operationId": "getCustomEmailTemplateDetails",
        "x-category": "tenants",
        "x-subcategory": "templates",
        "x-permissions": [
          "Company.ViewOnly"
        ],
        "summary": "Retrieve custom details of template",
        "description": "Get details of custom template by name.\n",
        "parameters": [
          {
            "name": "name",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "enum": [
                "USER_CREATION",
                "QUEUE_CALL_LOST",
                "QUEUE_SLA",
                "QUEUE_CALLBACK",
                "QUEUE_CALLBACK_FAILED",
                "VOICEMAIL_RECEIVED",
                "CALL_REPORT_COMPLETED",
                "DISK_LOW",
                "EMERGENCY_CALL",
                "LICENSE_LIMITED",
                "RECHARGE",
                "CONFERENCE_INVITATION",
                "TRUNK_CONNECTED",
                "TRUNK_DISCONNECTED"
              ],
              "description": "Name of the email template:   \nCan be either:   \n- `USER_CREATION`: user creation notification.\n- `QUEUE_CALL_LOST`: call queue call lost notification.\n- `QUEUE_SLA`: call queue sla time reached notification.\n- `QUEUE_CALLBACK`: call queue callback notification.\n- `QUEUE_CALLBACK_FAILED`: call queue callback failed notification.\n- `VOICEMAIL_RECEIVED`: received voicemail notification.\n- `CALL_REPORT_COMPLETED`: call report completed notification.\n- `DISK_LOW`: low disk notification.\n- `EMERGENCY_CALL`: emergency call notification.\n- `LICENSE_LIMITED`: license limited notification.\n- `RECHARGE`: recharge notification.\n- `CONFERENCE_INVITATION`: meeting invitation notification.\n- `TRUNK_CONNECTED`: trunk connected notification.\n- `TRUNK_DISCONNECTED`: trunk disconnected notification.\n"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string",
                      "enum": [
                        "USER_CREATION",
                        "QUEUE_CALL_LOST",
                        "QUEUE_SLA",
                        "QUEUE_CALLBACK",
                        "QUEUE_CALLBACK_FAILED",
                        "VOICEMAIL_RECEIVED",
                        "CALL_REPORT_COMPLETED",
                        "DISK_LOW",
                        "EMERGENCY_CALL",
                        "LICENSE_LIMITED",
                        "RECHARGE",
                        "CONFERENCE_INVITATION",
                        "TRUNK_CONNECTED",
                        "TRUNK_DISCONNECTED"
                      ],
                      "description": "Name of the email template:   \nCan be either:   \n- `USER_CREATION`: user creation notification.\n- `QUEUE_CALL_LOST`: call queue call lost notification.\n- `QUEUE_SLA`: call queue sla time reached notification.\n- `QUEUE_CALLBACK`: call queue callback notification.\n- `QUEUE_CALLBACK_FAILED`: call queue callback failed notification.\n- `VOICEMAIL_RECEIVED`: received voicemail notification.\n- `CALL_REPORT_COMPLETED`: call report completed notification.\n- `DISK_LOW`: low disk notification.\n- `EMERGENCY_CALL`: emergency call notification.\n- `LICENSE_LIMITED`: license limited notification.\n- `RECHARGE`: recharge notification.\n- `CONFERENCE_INVITATION`: meeting invitation notification.\n- `TRUNK_CONNECTED`: trunk connected notification.\n- `TRUNK_DISCONNECTED`: trunk disconnected notification.\n"
                    },
                    "from": {
                      "type": "string",
                      "description": "Notification email from field.\n"
                    },
                    "subject": {
                      "type": "string",
                      "description": "Notification email subject field.\n"
                    },
                    "body": {
                      "type": "string",
                      "description": "Notification email body.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "name": null,
                      "from": null,
                      "subject": null,
                      "body": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "post": {
        "tags": [
          "Notification"
        ],
        "operationId": "updateCustomEmailTemplate",
        "x-category": "tenants",
        "x-subcategory": "templates",
        "x-permissions": [
          "Company.FullAccess"
        ],
        "summary": "Update custom email template",
        "description": "Update custom email template.\n",
        "parameters": [
          {
            "name": "name",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "enum": [
                "USER_CREATION",
                "QUEUE_CALL_LOST",
                "QUEUE_SLA",
                "QUEUE_CALLBACK",
                "QUEUE_CALLBACK_FAILED",
                "VOICEMAIL_RECEIVED",
                "CALL_REPORT_COMPLETED",
                "DISK_LOW",
                "EMERGENCY_CALL",
                "LICENSE_LIMITED",
                "RECHARGE",
                "CONFERENCE_INVITATION",
                "TRUNK_CONNECTED",
                "TRUNK_DISCONNECTED"
              ],
              "description": "Name of the email template:   \nCan be either:   \n- `USER_CREATION`: user creation notification.\n- `QUEUE_CALL_LOST`: call queue call lost notification.\n- `QUEUE_SLA`: call queue sla time reached notification.\n- `QUEUE_CALLBACK`: call queue callback notification.\n- `QUEUE_CALLBACK_FAILED`: call queue callback failed notification.\n- `VOICEMAIL_RECEIVED`: received voicemail notification.\n- `CALL_REPORT_COMPLETED`: call report completed notification.\n- `DISK_LOW`: low disk notification.\n- `EMERGENCY_CALL`: emergency call notification.\n- `LICENSE_LIMITED`: license limited notification.\n- `RECHARGE`: recharge notification.\n- `CONFERENCE_INVITATION`: meeting invitation notification.\n- `TRUNK_CONNECTED`: trunk connected notification.\n- `TRUNK_DISCONNECTED`: trunk disconnected notification.\n"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "from": {
                    "type": "string",
                    "description": "Notification email from field.\n"
                  },
                  "subject": {
                    "type": "string",
                    "description": "Notification email subject field.\n"
                  },
                  "body": {
                    "type": "string",
                    "description": "Notification email body.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "from": null,
                    "subject": null,
                    "body": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/audit_logs": {
      "get": {
        "tags": [
          "Troubleshooting"
        ],
        "operationId": "listAuditLogs",
        "x-category": "maintenance",
        "x-subcategory": "audit-log",
        "x-permissions": [
          "Features.AuditTrail"
        ],
        "summary": "List audit logs",
        "description": "Retrieve a collection of audit logs.\n",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "count": {
                      "type": "integer",
                      "format": "int64",
                      "minimum": 0,
                      "example": 100,
                      "description": "Total number of resource.\n"
                    },
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "description": "The unique ID of audit log.\n"
                          },
                          "created_at": {
                            "allOf": [
                              {
                                "type": "string",
                                "format": "date_time",
                                "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                                "example": "2017-07-21T17:32:28Z"
                              }
                            ],
                            "description": "The creation time of the audit log.\n"
                          },
                          "source": {
                            "type": "string",
                            "description": "The source of the audit log.\n"
                          },
                          "ip": {
                            "allOf": [
                              {
                                "type": "string",
                                "format": "date_time",
                                "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                                "example": "2017-07-21T17:32:28Z"
                              }
                            ],
                            "description": "The IP address of the audit log.\n"
                          },
                          "action": {
                            "type": "string",
                            "enum": [
                              "CREATE",
                              "UPDATE",
                              "DELETE",
                              "LOGIN",
                              "LOGOUT",
                              "RECHARGE"
                            ],
                            "description": "The audit log actions.   \nCan be either:  \n- `CREATE` created some resources.\n- `UPDATE` updated some resources.\n- `DELETE` deleted some resources.\n- `LOGIN` user logged in.\n- `LOGOUT` user logged out.\n- `RECHARGE` user account balance changed.\n"
                          },
                          "object_type": {
                            "type": "string",
                            "enum": [
                              "ALLOWED_COUNTRY_CODES",
                              "AUTOMATIC_CALLBACK",
                              "BILLING",
                              "BLACKLISTED_NUMBER",
                              "BLOCK_CODE",
                              "CALL_PARK_GROUP",
                              "CALL_PARK_SERVER",
                              "CALL_PICKUP_GROUP",
                              "CALL_QUEUE",
                              "CALL_QUEUE_BLACKLISTED_NUM",
                              "CALL_QUEUE_SERVER",
                              "CALL_RECORDING",
                              "CALL_REPORT",
                              "CONFERENCE_ROOM",
                              "CONFERENCE_SERVER",
                              "CONTACT",
                              "CONTACT_GROUP",
                              "CUSTOM_EMAIL_TEMPLATE",
                              "DEALER",
                              "EMERGENCY_NUMBER",
                              "EXCLUSIVE_NUMBER",
                              "FEATURE_ACCESS_CODE",
                              "HOLIDAY",
                              "HOT_DESKING",
                              "INBOUND_RULE",
                              "IP_BLACKLIST",
                              "IVR",
                              "IVR_SERVER",
                              "LOGIN",
                              "MEDIA_SERVER",
                              "MICROSOFT_365_INTEGRATION",
                              "MOBILE_PUSH",
                              "MOH",
                              "MONITOR_GROUP",
                              "MONITOR_SERVER",
                              "OUTBOUND_RULE",
                              "PHONE_TEMPLATE",
                              "PROVIDER",
                              "RATING",
                              "RING_GROUP",
                              "ROLE",
                              "SHARED_VOICEMAIL",
                              "SYSTEM",
                              "TENANT",
                              "TRANSPORT",
                              "USER",
                              "USER_GROUP",
                              "VIP_NUMBER",
                              "VOICEMAIL_SERVER"
                            ],
                            "description": "The audit log type.\n"
                          },
                          "user_name": {
                            "type": "string",
                            "description": "The user name of the audit log.\n"
                          },
                          "object_name": {
                            "type": "string",
                            "description": "The object name of the audit log.\n"
                          },
                          "old_state": {
                            "type": "string",
                            "description": "The old state of the audit log.\n"
                          },
                          "new_state": {
                            "type": "string",
                            "description": "The new state of the audit log.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "An example for list audit logs",
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": null,
                          "created_at": null,
                          "source": null,
                          "ip": null,
                          "action": null,
                          "object_type": null,
                          "user_name": null,
                          "object_name": null,
                          "old_state": null,
                          "new_state": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/event_logs": {
      "get": {
        "tags": [
          "Troubleshooting"
        ],
        "operationId": "listEventLogs",
        "x-category": "maintenance",
        "x-subcategory": "event-log",
        "x-permissions": [
          "Features.Events"
        ],
        "summary": "List event logs",
        "description": "Retrieve a collection of event logs.\n",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "count": {
                      "type": "integer",
                      "format": "int64",
                      "minimum": 0,
                      "example": 100,
                      "description": "Total number of resource.\n"
                    },
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "description": "The unique ID of event log.\n"
                          },
                          "created_at": {
                            "allOf": [
                              {
                                "type": "string",
                                "format": "date_time",
                                "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                                "example": "2017-07-21T17:32:28Z"
                              }
                            ],
                            "description": "The creation time of the event log.\n"
                          },
                          "level": {
                            "type": "string",
                            "enum": [
                              "DEBUG",
                              "INFO",
                              "WARN",
                              "ERROR"
                            ],
                            "description": "The level of event log:  \nCan be either:  \n- `DEBUG`:\n- `INFO`:\n- `WARN`:\n- `ERROR`:\n"
                          },
                          "source": {
                            "type": "string",
                            "description": "The source of event log\n"
                          },
                          "message": {
                            "type": "string",
                            "description": "The content of event log\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": null,
                          "created_at": null,
                          "level": null,
                          "source": null,
                          "message": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/ms365": {
      "get": {
        "tags": [
          "Integration"
        ],
        "operationId": "getTenantMicrosoft365ProvisioningDetails",
        "x-category": "integrations",
        "x-subcategory": "microsoft",
        "x-permissions": [
          "Integration.ViewOnly"
        ],
        "summary": "Retrieve tenant Microsoft 365 provisioning details",
        "description": "Retrieve details of tenant Microsoft 365 settings.\n",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "national_cloud": {
                      "type": "string",
                      "enum": [
                        "GLOBAL",
                        "CHINA"
                      ],
                      "default": "GLOBAL",
                      "description": "The Microsoft cloud services are available in several separate national clouds.   \nThese national cloud versions are physical and logical network-isolated instances of Microsoft enterprise cloud services   \nthat are confined within the geographic borders of specific countries and operated by local personnel.\nCan be either:   \n- `GLOBAL`: Azure global service.\n- `CHINA`: Azure China service.\n"
                    },
                    "directory_id": {
                      "type": "string",
                      "description": "The Directory ID (Tenant ID) of Microsoft identity platform.\n"
                    },
                    "application_id": {
                      "type": "string",
                      "description": "The Application (client) ID of Azure AD.\n"
                    },
                    "redirect_uri": {
                      "type": "string",
                      "readOnly": true,
                      "description": "Redirect URI. The URIs we will accept as destinations when returning authentication responses (tokens) after successfully authenticating or signing out users.   \nThe redirect URI you send in the request to the login server should match one listed here. Also referred to as reply URLs.\n"
                    },
                    "sbc_redirect_uri": {
                      "type": "string",
                      "readOnly": true,
                      "description": "Same as the `redirect_uri`, but via the sbc network topology.\n"
                    },
                    "sync_time": {
                      "type": "string",
                      "description": "The crontab expression <https://en.wikipedia.org/wiki/Cron>\n"
                    },
                    "users": {
                      "type": "object",
                      "properties": {
                        "enabled": {
                          "type": "boolean",
                          "default": false,
                          "description": "Whether to enable Microsoft 365 users with extensions synchronization.\n"
                        },
                        "sync_guest_users": {
                          "type": "boolean",
                          "default": false,
                          "description": "Whether to enable gust user synchronization.\n"
                        },
                        "sync_photo": {
                          "type": "boolean",
                          "default": false,
                          "description": "Whether to synchronize user photo.\n"
                        },
                        "starting_extension_number": {
                          "type": "string",
                          "minLength": 3,
                          "maxLength": 13,
                          "pattern": "[0-9]{3,13}",
                          "description": "The starting extension number for synchronized users.   \nLeft padding with zeros is not allowed.\n"
                        },
                        "selected_users": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "description": "The `Principal Name` of Microsoft 365 user.\n"
                          },
                          "description": "A collection of Microsoft 365 user's ID.\n"
                        },
                        "sync_type": {
                          "type": "string",
                          "enum": [
                            "ALL",
                            "INCLUDE",
                            "EXCLUDE"
                          ],
                          "default": "ALL",
                          "description": "The synchronization policy:   \nCan be either:   \n- `ALL`: All users will be synced.\n- `INCLUDE`: All users except selected users will be synced.\n- `EXCLUDE`: All selected users will be synced.\n"
                        }
                      }
                    },
                    "sign_in_as_administrator": {
                      "type": "object",
                      "properties": {
                        "enabled": {
                          "type": "boolean",
                          "default": false,
                          "description": "Whether to enable Microsoft 365 users with extensions synchronization.\n"
                        },
                        "selected_users": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "description": "The `Principal Name` of Microsoft 365 user.\n"
                          },
                          "description": "A collection of Microsoft 365 user's ID.\n"
                        }
                      }
                    },
                    "sign_in_as_standard_user": {
                      "type": "object",
                      "properties": {
                        "enabled": {
                          "type": "boolean",
                          "default": false,
                          "description": "Whether to enable Microsoft 365 users with extensions synchronization.\n"
                        },
                        "selected_users": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "description": "The `Principal Name` of Microsoft 365 user.\n"
                          },
                          "description": "A collection of Microsoft 365 user's ID.\n"
                        },
                        "sync_type": {
                          "type": "string",
                          "enum": [
                            "ALL",
                            "INCLUDE",
                            "EXCLUDE"
                          ],
                          "default": "ALL",
                          "description": "The synchronization policy:   \nCan be either:   \n- `ALL`: All users will be synced.\n- `INCLUDE`: All users except selected users will be synced.\n- `EXCLUDE`: All selected users will be synced.\n"
                        }
                      }
                    },
                    "personal_contacts": {
                      "type": "object",
                      "properties": {
                        "enabled": {
                          "type": "boolean",
                          "default": false,
                          "description": "Whether to enable user personal contacts synchronization.\n"
                        },
                        "selected_users": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "description": "The `Principal Name` of Microsoft 365 user.\n"
                          },
                          "description": "A collection of Microsoft 365 user's ID.\n"
                        },
                        "sync_type": {
                          "type": "string",
                          "enum": [
                            "ALL",
                            "INCLUDE",
                            "EXCLUDE"
                          ],
                          "default": "ALL",
                          "description": "The synchronization policy:   \nCan be either:   \n- `ALL`: All users will be synced.\n- `INCLUDE`: All users except selected users will be synced.\n- `EXCLUDE`: All selected users will be synced.\n"
                        }
                      }
                    },
                    "shared_mailbox": {
                      "type": "object",
                      "properties": {
                        "enabled": {
                          "type": "boolean",
                          "default": false,
                          "description": "Whether to enable Microsoft 365 users with extensions synchronization.\n"
                        },
                        "selected_users": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "description": "The `Principal Name` of Microsoft 365 user.\n"
                          },
                          "description": "A collection of Microsoft 365 user's ID.\n"
                        },
                        "sync_type": {
                          "type": "string",
                          "enum": [
                            "ALL",
                            "INCLUDE",
                            "EXCLUDE"
                          ],
                          "default": "ALL",
                          "description": "The synchronization policy:   \nCan be either:   \n- `ALL`: All users will be synced.\n- `INCLUDE`: All users except selected users will be synced.\n- `EXCLUDE`: All selected users will be synced.\n"
                        }
                      }
                    },
                    "events": {
                      "type": "object",
                      "properties": {
                        "enabled": {
                          "type": "boolean",
                          "default": false,
                          "description": "Whether to enable Microsoft 365 users with extensions synchronization.\n"
                        },
                        "selected_users": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "description": "The `Principal Name` of Microsoft 365 user.\n"
                          },
                          "description": "A collection of Microsoft 365 user's ID.\n"
                        },
                        "sync_type": {
                          "type": "string",
                          "enum": [
                            "ALL",
                            "INCLUDE",
                            "EXCLUDE"
                          ],
                          "default": "ALL",
                          "description": "The synchronization policy:   \nCan be either:   \n- `ALL`: All users will be synced.\n- `INCLUDE`: All users except selected users will be synced.\n- `EXCLUDE`: All selected users will be synced.\n"
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "national_cloud": null,
                      "directory_id": null,
                      "application_id": null,
                      "redirect_uri": null,
                      "sbc_redirect_uri": null,
                      "sync_time": null,
                      "users": null,
                      "sign_in_as_administrator": null,
                      "sign_in_as_standard_user": null,
                      "personal_contacts": null,
                      "shared_mailbox": null,
                      "events": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "post": {
        "tags": [
          "Integration"
        ],
        "operationId": "updateTenantMicrosoft365Provisioning",
        "x-category": "integrations",
        "x-subcategory": "microsoft",
        "x-permissions": [
          "Integration.FullAccess"
        ],
        "summary": "Reprovision tenant Microsoft 365 integration.",
        "description": "Update tenant Microsoft 365 settings.\n",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "national_cloud": {
                    "type": "string",
                    "enum": [
                      "GLOBAL",
                      "CHINA"
                    ],
                    "default": "GLOBAL",
                    "description": "The Microsoft cloud services are available in several separate national clouds.   \nThese national cloud versions are physical and logical network-isolated instances of Microsoft enterprise cloud services   \nthat are confined within the geographic borders of specific countries and operated by local personnel.\nCan be either:   \n- `GLOBAL`: Azure global service.\n- `CHINA`: Azure China service.\n"
                  },
                  "directory_id": {
                    "type": "string",
                    "description": "The Directory ID (Tenant ID) of Microsoft identity platform.\n"
                  },
                  "application_id": {
                    "type": "string",
                    "description": "The Application (client) ID of Azure AD.\n"
                  },
                  "sync_time": {
                    "type": "string",
                    "description": "The crontab expression <https://en.wikipedia.org/wiki/Cron>\n"
                  },
                  "users": {
                    "type": "object",
                    "properties": {
                      "enabled": {
                        "type": "boolean",
                        "default": false,
                        "description": "Whether to enable Microsoft 365 users with extensions synchronization.\n"
                      },
                      "sync_guest_users": {
                        "type": "boolean",
                        "default": false,
                        "description": "Whether to enable gust user synchronization.\n"
                      },
                      "sync_photo": {
                        "type": "boolean",
                        "default": false,
                        "description": "Whether to synchronize user photo.\n"
                      },
                      "starting_extension_number": {
                        "type": "string",
                        "minLength": 3,
                        "maxLength": 13,
                        "pattern": "[0-9]{3,13}",
                        "description": "The starting extension number for synchronized users.   \nLeft padding with zeros is not allowed.\n"
                      },
                      "selected_users": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "description": "The `Principal Name` of Microsoft 365 user.\n"
                        },
                        "description": "A collection of Microsoft 365 user's ID.\n"
                      },
                      "sync_type": {
                        "type": "string",
                        "enum": [
                          "ALL",
                          "INCLUDE",
                          "EXCLUDE"
                        ],
                        "default": "ALL",
                        "description": "The synchronization policy:   \nCan be either:   \n- `ALL`: All users will be synced.\n- `INCLUDE`: All users except selected users will be synced.\n- `EXCLUDE`: All selected users will be synced.\n"
                      }
                    }
                  },
                  "sign_in_as_administrator": {
                    "type": "object",
                    "properties": {
                      "enabled": {
                        "type": "boolean",
                        "default": false,
                        "description": "Whether to enable Microsoft 365 users with extensions synchronization.\n"
                      },
                      "selected_users": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "description": "The `Principal Name` of Microsoft 365 user.\n"
                        },
                        "description": "A collection of Microsoft 365 user's ID.\n"
                      }
                    }
                  },
                  "sign_in_as_standard_user": {
                    "type": "object",
                    "properties": {
                      "enabled": {
                        "type": "boolean",
                        "default": false,
                        "description": "Whether to enable Microsoft 365 users with extensions synchronization.\n"
                      },
                      "selected_users": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "description": "The `Principal Name` of Microsoft 365 user.\n"
                        },
                        "description": "A collection of Microsoft 365 user's ID.\n"
                      },
                      "sync_type": {
                        "type": "string",
                        "enum": [
                          "ALL",
                          "INCLUDE",
                          "EXCLUDE"
                        ],
                        "default": "ALL",
                        "description": "The synchronization policy:   \nCan be either:   \n- `ALL`: All users will be synced.\n- `INCLUDE`: All users except selected users will be synced.\n- `EXCLUDE`: All selected users will be synced.\n"
                      }
                    }
                  },
                  "personal_contacts": {
                    "type": "object",
                    "properties": {
                      "enabled": {
                        "type": "boolean",
                        "default": false,
                        "description": "Whether to enable user personal contacts synchronization.\n"
                      },
                      "selected_users": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "description": "The `Principal Name` of Microsoft 365 user.\n"
                        },
                        "description": "A collection of Microsoft 365 user's ID.\n"
                      },
                      "sync_type": {
                        "type": "string",
                        "enum": [
                          "ALL",
                          "INCLUDE",
                          "EXCLUDE"
                        ],
                        "default": "ALL",
                        "description": "The synchronization policy:   \nCan be either:   \n- `ALL`: All users will be synced.\n- `INCLUDE`: All users except selected users will be synced.\n- `EXCLUDE`: All selected users will be synced.\n"
                      }
                    }
                  },
                  "shared_mailbox": {
                    "type": "object",
                    "properties": {
                      "enabled": {
                        "type": "boolean",
                        "default": false,
                        "description": "Whether to enable Microsoft 365 users with extensions synchronization.\n"
                      },
                      "selected_users": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "description": "The `Principal Name` of Microsoft 365 user.\n"
                        },
                        "description": "A collection of Microsoft 365 user's ID.\n"
                      },
                      "sync_type": {
                        "type": "string",
                        "enum": [
                          "ALL",
                          "INCLUDE",
                          "EXCLUDE"
                        ],
                        "default": "ALL",
                        "description": "The synchronization policy:   \nCan be either:   \n- `ALL`: All users will be synced.\n- `INCLUDE`: All users except selected users will be synced.\n- `EXCLUDE`: All selected users will be synced.\n"
                      }
                    }
                  },
                  "events": {
                    "type": "object",
                    "properties": {
                      "enabled": {
                        "type": "boolean",
                        "default": false,
                        "description": "Whether to enable Microsoft 365 users with extensions synchronization.\n"
                      },
                      "selected_users": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "description": "The `Principal Name` of Microsoft 365 user.\n"
                        },
                        "description": "A collection of Microsoft 365 user's ID.\n"
                      },
                      "sync_type": {
                        "type": "string",
                        "enum": [
                          "ALL",
                          "INCLUDE",
                          "EXCLUDE"
                        ],
                        "default": "ALL",
                        "description": "The synchronization policy:   \nCan be either:   \n- `ALL`: All users will be synced.\n- `INCLUDE`: All users except selected users will be synced.\n- `EXCLUDE`: All selected users will be synced.\n"
                      }
                    }
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "national_cloud": null,
                    "directory_id": null,
                    "application_id": null,
                    "sync_time": null,
                    "users": null,
                    "sign_in_as_administrator": null,
                    "sign_in_as_standard_user": null,
                    "personal_contacts": null,
                    "shared_mailbox": null,
                    "events": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/ms365/certificate": {
      "post": {
        "tags": [
          "Integration"
        ],
        "operationId": "generateMicrosoft365Certificate",
        "x-category": "integrations",
        "x-subcategory": "microsoft",
        "x-permissions": [
          "Integration.FullAccess"
        ],
        "summary": "Generate new Microsoft 365 certificate",
        "description": "Generate new Microsoft 365 certificate.\n",
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "Content-Disposition": {
                "schema": {
                  "type": "string"
                },
                "description": "the format is `attachment; filename=\"example\"`"
              }
            },
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "get": {
        "tags": [
          "Integration"
        ],
        "operationId": "downloadMicrosoft365Certificate",
        "x-category": "integrations",
        "x-subcategory": "microsoft",
        "x-permissions": [
          "Integration.ViewOnly"
        ],
        "summary": "Download Microsoft 365 certificate",
        "description": "Download Microsoft 365 certificate.\n",
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "Content-Disposition": {
                "schema": {
                  "type": "string"
                },
                "description": "the format is `attachment; filename=\"example\"`"
              }
            },
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/ms365/users": {
      "get": {
        "tags": [
          "Integration"
        ],
        "operationId": "listMicrosoft365Users",
        "x-category": "integrations",
        "x-subcategory": "microsoft",
        "x-permissions": [
          "Integration.ViewOnly"
        ],
        "summary": "Retrieve a collection of Microsoft 365 users",
        "description": "Retrieve a collection of Microsoft 365 users.\n",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "count": {
                      "type": "integer",
                      "format": "int64",
                      "minimum": 0,
                      "example": 100,
                      "description": "Total number of resource.\n"
                    },
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "The `OID` of Microsoft 365 user.\n"
                          },
                          "name": {
                            "type": "string",
                            "description": "The name of Microsoft 365 user.\n"
                          },
                          "email": {
                            "allOf": [
                              {
                                "type": "string",
                                "maxLength": 128,
                                "description": "The email address.\n",
                                "example": "example@example.com"
                              },
                              {
                                "description": "The email address of Microsoft 365 user.\n"
                              }
                            ]
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": null,
                          "name": null,
                          "email": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/google": {
      "get": {
        "tags": [
          "Integration"
        ],
        "operationId": "getTenantGoogleIntegrations",
        "x-category": "integrations",
        "x-subcategory": "google",
        "x-permissions": [
          "Integration.ViewOnly"
        ],
        "summary": "Retrieve tenant Google integrations",
        "description": "Retrieve details of tenant Google integrations settings.\n",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "client_id": {
                      "type": "string",
                      "description": "The client ID of Google Cloud project.\n"
                    },
                    "client_secret": {
                      "type": "string",
                      "description": "The client secret of Google Cloud project.\n"
                    },
                    "redirect_uri": {
                      "type": "string",
                      "readOnly": true,
                      "description": "Redirect URI. The URIs we will accept as destinations when returning authentication responses (tokens) after successfully authenticating or signing out users.   \nThe redirect URI you send in the request to the login server should match one listed here. Also referred to as reply URLs.\n"
                    },
                    "sbc_redirect_uri": {
                      "type": "string",
                      "readOnly": true,
                      "description": "Same as the `redirect_uri`, but via the sbc network topology.\n"
                    },
                    "auth_consent_uri": {
                      "type": "string",
                      "readOnly": true,
                      "description": "The Google OAuth2 consent uri.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "client_id": null,
                      "client_secret": null,
                      "redirect_uri": null,
                      "sbc_redirect_uri": null,
                      "auth_consent_uri": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "post": {
        "tags": [
          "Integration"
        ],
        "operationId": "updateTenantGoogleIntegrations",
        "x-category": "integrations",
        "x-subcategory": "google",
        "x-permissions": [
          "Integration.FullAccess"
        ],
        "summary": "Update tenant Google integration.",
        "description": "Update tenant Google integration settings.\n",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "client_id": {
                    "type": "string",
                    "description": "The client ID of Google Cloud project.\n"
                  },
                  "client_secret": {
                    "type": "string",
                    "description": "The client secret of Google Cloud project.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "client_id": null,
                    "client_secret": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/crm": {
      "get": {
        "tags": [
          "Integration"
        ],
        "operationId": "getCRMIntegration",
        "x-category": "integrations",
        "x-subcategory": "crm",
        "x-permissions": [
          "Integration.ViewOnly"
        ],
        "summary": "Get CRM integration",
        "description": "Retrieve details of tenant CRM integration configurations.\n",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "provider": {
                      "type": "string",
                      "description": "The CRM provider.   \nSuch as zoho, hubspot.\n"
                    },
                    "opts": {
                      "oneOf": [
                        {
                          "type": "object",
                          "title": "Zoho application",
                          "properties": {
                            "client_id": {
                              "type": "string",
                              "description": "The client ID of integrated Zoho application.\n"
                            },
                            "client_secret": {
                              "type": "string",
                              "description": "The client secret of integrated Zoho application.\n"
                            },
                            "region": {
                              "type": "string",
                              "description": "The data centers of Zoho.   \nCan be either:   \n - `United States`\n - `Europe`\n - `India`\n - `Australia`\n - `Japan`\n - `Canada`\n - `Saudi Arabia`\n"
                            },
                            "enable_create_contact": {
                              "type": "boolean",
                              "default": true,
                              "description": "When enabled, users can create new contacts into CRM from client.\n"
                            },
                            "contact_created_as": {
                              "type": "string",
                              "enum": [
                                "Contact",
                                "Lead"
                              ],
                              "default": "Contact",
                              "description": "The type of new created contacts.   \nCan be either:\n - `Contact`\n - `Lead`\n"
                            },
                            "contact_lookup_order": {
                              "type": "array",
                              "items": {
                                "type": "string",
                                "enum": [
                                  "Contacts",
                                  "Leads",
                                  "Accounts"
                                ]
                              },
                              "default": [
                                "Contacts",
                                "Leads",
                                "Accounts"
                              ],
                              "description": "The lookup order expressed as an array.   \nThe array elements must be `Contacts`, `Leads`, `Accounts`, Duplicates are not allowed.\n"
                            },
                            "contact_lookup_condition": {
                              "type": "string",
                              "enum": [
                                "Always",
                                "NotFoundLocally"
                              ],
                              "default": "Always",
                              "description": "The lookup condition.   \nCan be either:   \n- `Always`: Always query from CRM.\n- `NotFoundLocally`: Query PBX contacts first, then CRM when not found.\n"
                            },
                            "enable_call_logging": {
                              "type": "boolean",
                              "default": false,
                              "description": "When enabled, a Zoho call activity will automatically be created for each call.\n"
                            },
                            "enable_call_recording_logging": {
                              "type": "boolean",
                              "default": false,
                              "description": "When enabled, a link to the user's call recording would be posted to the Zoho activity.\n"
                            },
                            "secure_call_recording_logging": {
                              "type": "boolean",
                              "default": false,
                              "description": "When enabled, a secure url instead of public access url to the user's call recording would be posted to the Zoho activity.\n"
                            },
                            "redirect_url": {
                              "type": "string",
                              "readOnly": true,
                              "description": "The callback URL (also known as redirect URI) In OAuth 2.0.   \nIt is the URL in your application where the authorization server redirects the user after they have granted or denied access to their data.   \nIt's crucial for security and must be pre-registered with the authorization server.\n"
                            },
                            "sbc_redirect_url": {
                              "type": "string",
                              "readOnly": true,
                              "description": "The callback URL like `redirect_url` but under SBC network topology.\n"
                            },
                            "auth_url": {
                              "type": "string",
                              "readOnly": true,
                              "description": "The authorization URL of Zoho authorization server.\n"
                            },
                            "refresh_token": {
                              "type": "string",
                              "readOnly": true,
                              "description": "The refresh token from Zoho authorization server.\n"
                            }
                          }
                        },
                        {
                          "type": "object",
                          "title": "HubSpot application",
                          "properties": {
                            "client_id": {
                              "type": "string",
                              "description": "The client ID of integrated HubSpot application.\n"
                            },
                            "client_secret": {
                              "type": "string",
                              "description": "The client secret of integrated HubSpot application.\n"
                            },
                            "enable_create_contact": {
                              "type": "boolean",
                              "default": true,
                              "description": "When enabled, users can create new contacts into CRM from client.\n"
                            },
                            "contact_lookup_order": {
                              "type": "array",
                              "items": {
                                "type": "string",
                                "enum": [
                                  "Contacts",
                                  "Companies"
                                ]
                              },
                              "default": [
                                "Contacts",
                                "Companies"
                              ],
                              "description": "The lookup order expressed as an array.   \nThe array elements must be `Contacts`, `Companies`. Duplicates are not allowed.\n"
                            },
                            "contact_lookup_condition": {
                              "type": "string",
                              "enum": [
                                "Always",
                                "NotFoundLocally"
                              ],
                              "default": "Always",
                              "description": "The lookup condition.   \nCan be either:   \n- `Always`: Always query from CRM.\n- `NotFoundLocally`: Query PBX contacts first, then CRM when not found.\n"
                            },
                            "enable_call_logging": {
                              "type": "boolean",
                              "default": false,
                              "description": "Whether to automatically create HubSpot call activity for calls.\n"
                            },
                            "enable_call_recording_logging": {
                              "type": "boolean",
                              "default": false,
                              "description": "Whether to automatically create HubSpot call recording activity for calls.\n"
                            },
                            "secure_call_recording_logging": {
                              "type": "boolean",
                              "default": true,
                              "description": "When enabled, a secure url instead of public access url to the user's call recording would be posted to the HubSpot call recording activity.\n"
                            },
                            "redirect_url": {
                              "type": "string",
                              "readOnly": true,
                              "description": "The callback URL (also known as redirect URI) In OAuth 2.0.   \nIt is the URL in your application where the authorization server redirects the user after they have granted or denied access to their data.   \nIt's crucial for security and must be pre-registered with the authorization server.\n"
                            },
                            "sbc_redirect_url": {
                              "type": "string",
                              "readOnly": true,
                              "description": "The callback URL like `redirect_url` but under SBC network topology.\n"
                            }
                          }
                        }
                      ],
                      "type": "object"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "An example for update CRM",
                    "value": {
                      "provider": "zoho",
                      "opts": {
                        "client_id": "xxxxxxxxxxxxxxxxxxxxxxxxxx",
                        "client_secret": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
                        "region": "United States",
                        "enable_create_contact": true,
                        "contact_created_as": "Contact",
                        "contact_lookup_order": [
                          "Contacts",
                          "Leads",
                          "Accounts"
                        ],
                        "contact_lookup_condition": "Always",
                        "enable_call_logging": true,
                        "enable_call_recording_logging": true,
                        "secure_call_recording_logging": true,
                        "redirect_url": "https://example.com/callback/zoho",
                        "sbc_redirect_url": "https://example.com/callback/zoho",
                        "refresh_token": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
                      }
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "post": {
        "tags": [
          "Integration"
        ],
        "operationId": "updateCRMIntegration",
        "x-category": "integrations",
        "x-subcategory": "crm",
        "x-permissions": [
          "Integration.FullAccess"
        ],
        "summary": "Update CRM integration",
        "description": "Update tenant CRM integration configurations.\n",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "provider": {
                    "type": "string",
                    "description": "The CRM provider.   \nSuch as zoho, hubspot.\n"
                  },
                  "opts": {
                    "oneOf": [
                      {
                        "type": "object",
                        "title": "Zoho application",
                        "properties": {
                          "client_id": {
                            "type": "string",
                            "description": "The client ID of integrated Zoho application.\n"
                          },
                          "client_secret": {
                            "type": "string",
                            "description": "The client secret of integrated Zoho application.\n"
                          },
                          "region": {
                            "type": "string",
                            "description": "The data centers of Zoho.   \nCan be either:   \n - `United States`\n - `Europe`\n - `India`\n - `Australia`\n - `Japan`\n - `Canada`\n - `Saudi Arabia`\n"
                          },
                          "enable_create_contact": {
                            "type": "boolean",
                            "default": true,
                            "description": "When enabled, users can create new contacts into CRM from client.\n"
                          },
                          "contact_created_as": {
                            "type": "string",
                            "enum": [
                              "Contact",
                              "Lead"
                            ],
                            "default": "Contact",
                            "description": "The type of new created contacts.   \nCan be either:\n - `Contact`\n - `Lead`\n"
                          },
                          "contact_lookup_order": {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "enum": [
                                "Contacts",
                                "Leads",
                                "Accounts"
                              ]
                            },
                            "default": [
                              "Contacts",
                              "Leads",
                              "Accounts"
                            ],
                            "description": "The lookup order expressed as an array.   \nThe array elements must be `Contacts`, `Leads`, `Accounts`, Duplicates are not allowed.\n"
                          },
                          "contact_lookup_condition": {
                            "type": "string",
                            "enum": [
                              "Always",
                              "NotFoundLocally"
                            ],
                            "default": "Always",
                            "description": "The lookup condition.   \nCan be either:   \n- `Always`: Always query from CRM.\n- `NotFoundLocally`: Query PBX contacts first, then CRM when not found.\n"
                          },
                          "enable_call_logging": {
                            "type": "boolean",
                            "default": false,
                            "description": "When enabled, a Zoho call activity will automatically be created for each call.\n"
                          },
                          "enable_call_recording_logging": {
                            "type": "boolean",
                            "default": false,
                            "description": "When enabled, a link to the user's call recording would be posted to the Zoho activity.\n"
                          },
                          "secure_call_recording_logging": {
                            "type": "boolean",
                            "default": false,
                            "description": "When enabled, a secure url instead of public access url to the user's call recording would be posted to the Zoho activity.\n"
                          },
                          "redirect_url": {
                            "type": "string",
                            "readOnly": true,
                            "description": "The callback URL (also known as redirect URI) In OAuth 2.0.   \nIt is the URL in your application where the authorization server redirects the user after they have granted or denied access to their data.   \nIt's crucial for security and must be pre-registered with the authorization server.\n"
                          },
                          "sbc_redirect_url": {
                            "type": "string",
                            "readOnly": true,
                            "description": "The callback URL like `redirect_url` but under SBC network topology.\n"
                          },
                          "auth_url": {
                            "type": "string",
                            "readOnly": true,
                            "description": "The authorization URL of Zoho authorization server.\n"
                          },
                          "refresh_token": {
                            "type": "string",
                            "readOnly": true,
                            "description": "The refresh token from Zoho authorization server.\n"
                          }
                        }
                      },
                      {
                        "type": "object",
                        "title": "HubSpot application",
                        "properties": {
                          "client_id": {
                            "type": "string",
                            "description": "The client ID of integrated HubSpot application.\n"
                          },
                          "client_secret": {
                            "type": "string",
                            "description": "The client secret of integrated HubSpot application.\n"
                          },
                          "enable_create_contact": {
                            "type": "boolean",
                            "default": true,
                            "description": "When enabled, users can create new contacts into CRM from client.\n"
                          },
                          "contact_lookup_order": {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "enum": [
                                "Contacts",
                                "Companies"
                              ]
                            },
                            "default": [
                              "Contacts",
                              "Companies"
                            ],
                            "description": "The lookup order expressed as an array.   \nThe array elements must be `Contacts`, `Companies`. Duplicates are not allowed.\n"
                          },
                          "contact_lookup_condition": {
                            "type": "string",
                            "enum": [
                              "Always",
                              "NotFoundLocally"
                            ],
                            "default": "Always",
                            "description": "The lookup condition.   \nCan be either:   \n- `Always`: Always query from CRM.\n- `NotFoundLocally`: Query PBX contacts first, then CRM when not found.\n"
                          },
                          "enable_call_logging": {
                            "type": "boolean",
                            "default": false,
                            "description": "Whether to automatically create HubSpot call activity for calls.\n"
                          },
                          "enable_call_recording_logging": {
                            "type": "boolean",
                            "default": false,
                            "description": "Whether to automatically create HubSpot call recording activity for calls.\n"
                          },
                          "secure_call_recording_logging": {
                            "type": "boolean",
                            "default": true,
                            "description": "When enabled, a secure url instead of public access url to the user's call recording would be posted to the HubSpot call recording activity.\n"
                          },
                          "redirect_url": {
                            "type": "string",
                            "readOnly": true,
                            "description": "The callback URL (also known as redirect URI) In OAuth 2.0.   \nIt is the URL in your application where the authorization server redirects the user after they have granted or denied access to their data.   \nIt's crucial for security and must be pre-registered with the authorization server.\n"
                          },
                          "sbc_redirect_url": {
                            "type": "string",
                            "readOnly": true,
                            "description": "The callback URL like `redirect_url` but under SBC network topology.\n"
                          }
                        }
                      }
                    ],
                    "type": "object"
                  }
                },
                "required": [
                  "provider",
                  "opts"
                ]
              },
              "examples": {
                "default": {
                  "summary": "An example for update CRM",
                  "value": {
                    "provider": "zoho",
                    "opts": {
                      "client_id": "xxxxxxxxxxxxxxxxxxxxxxxxxx",
                      "client_secret": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
                      "region": "United States",
                      "enable_create_contact": true,
                      "contact_created_as": "Contact",
                      "contact_lookup_order": [
                        "Contacts",
                        "Leads",
                        "Accounts"
                      ],
                      "contact_lookup_condition": "Always",
                      "enable_call_logging": true,
                      "enable_call_recording_logging": true,
                      "secure_call_recording_logging": true
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/crm/providers": {
      "get": {
        "tags": [
          "Integration"
        ],
        "operationId": "getCRMIntegrationAvailableProviders",
        "x-category": "integrations",
        "x-subcategory": "crm",
        "x-permissions": [
          "Company.ViewOnly"
        ],
        "summary": "List available providers",
        "description": "Retrieve all of available providers.\n",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "provider": {
                            "type": "string",
                            "description": "The CRM provider.   \nSuch as zoho, hubspot.\n"
                          },
                          "redirect_url": {
                            "type": "string",
                            "readOnly": true,
                            "description": "The callback URL (also known as redirect URI) In OAuth 2.0.   \nIt is the URL in your application where the authorization server redirects the user after they have granted or denied access to their data.   \nIt's crucial for security and must be pre-registered with the authorization server.\n"
                          },
                          "sbc_redirect_url": {
                            "type": "string",
                            "readOnly": true,
                            "description": "The callback URL like `redirect_url` but under SBC network topology.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "An example for list available CRM providers",
                    "value": {
                      "items": [
                        {
                          "provider": "zoho",
                          "redirect_url": "https://example.com/callback/zoho",
                          "sbc_redirect_url": "https://example.com/callback/zoho"
                        },
                        {
                          "provider": "hubspot",
                          "redirect_url": "https://example.com/callback/hubspot",
                          "sbc_redirect_url": "https://example.com/callback/hubspot"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/crm/test": {
      "post": {
        "tags": [
          "Integration"
        ],
        "operationId": "testCRMIntegration",
        "x-category": "integrations",
        "x-subcategory": "crm",
        "x-permissions": [
          "CRMContact.ViewOnly"
        ],
        "summary": "Test integration",
        "description": "Try to search contacts in CRM integration.\n",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "number": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The business phone number of contact.\n"
                  }
                },
                "required": [
                  "number"
                ]
              },
              "examples": {
                "default": {
                  "summary": "An example for search CRM contact",
                  "value": {
                    "number": "666-666-6666"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "description": "The unique ID of contact.\n"
                          },
                          "first_name": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 64,
                            "description": "The first name of contact.\n"
                          },
                          "last_name": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 64,
                            "description": "The last name of contact.\n"
                          },
                          "email": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The email of contact.\n"
                          },
                          "company": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The company name of contact.\n"
                          },
                          "title": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The title of contact.\n"
                          },
                          "did_number": {
                            "type": "string",
                            "description": "The DID/DDI number.\n"
                          },
                          "business": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The business phone number of contact.\n"
                          },
                          "business2": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The secondary business phone number of contact.\n"
                          },
                          "mobile_phone": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The mobile phone number of contact.\n"
                          },
                          "mobile_phone2": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The secondary mobile phone number of contact.\n"
                          },
                          "home_phone": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The home phone number of contact.\n"
                          },
                          "home_phone2": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The secondary home phone number of contact.\n"
                          },
                          "other": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The other phone number of contact.\n"
                          },
                          "business_fax": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The business fax of contact.\n"
                          },
                          "home_fax": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The home fax of contact.\n"
                          },
                          "address": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The address.\n"
                          },
                          "notes": {
                            "type": "string",
                            "maxLength": 1024,
                            "description": "The notes of contact.\n"
                          },
                          "type": {
                            "type": "string",
                            "description": "The type of contact.\n"
                          },
                          "url": {
                            "type": "string",
                            "description": "The access URL of contact.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "An example for search CRM contact",
                    "value": {
                      "items": [
                        {
                          "id": null,
                          "first_name": null,
                          "last_name": null,
                          "email": null,
                          "company": null,
                          "title": null,
                          "did_number": null,
                          "business": null,
                          "business2": null,
                          "mobile_phone": null,
                          "mobile_phone2": null,
                          "home_phone": null,
                          "home_phone2": null,
                          "other": null,
                          "business_fax": null,
                          "home_fax": null,
                          "address": null,
                          "notes": null,
                          "type": null,
                          "url": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/crm/contacts": {
      "post": {
        "tags": [
          "Integration"
        ],
        "operationId": "createCRMContact",
        "x-category": "integrations",
        "x-subcategory": "crm",
        "x-permissions": [
          "CRMContact.FullAccess"
        ],
        "summary": "Create a contact",
        "description": "Create a contact into specified CRM integration.\n",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "first_name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64,
                    "description": "The first name of contact.\n"
                  },
                  "last_name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64,
                    "description": "The last name of contact.\n"
                  },
                  "email": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The email of contact.\n"
                  },
                  "company": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The company name of contact.\n"
                  },
                  "title": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The title of contact.\n"
                  },
                  "business": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The business phone number of contact.\n"
                  },
                  "business2": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The secondary business phone number of contact.\n"
                  },
                  "mobile_phone": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The mobile phone number of contact.\n"
                  },
                  "mobile_phone2": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The secondary mobile phone number of contact.\n"
                  },
                  "home_phone": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The home phone number of contact.\n"
                  },
                  "home_phone2": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The secondary home phone number of contact.\n"
                  },
                  "other": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The other phone number of contact.\n"
                  },
                  "business_fax": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The business fax of contact.\n"
                  },
                  "home_fax": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The home fax of contact.\n"
                  },
                  "address": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The address.\n"
                  },
                  "notes": {
                    "type": "string",
                    "maxLength": 1024,
                    "description": "The notes of contact.\n"
                  },
                  "did_number": {
                    "type": "string",
                    "description": "The DID/DDI number.\n"
                  }
                },
                "required": [
                  "last_name",
                  "did_number"
                ]
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "name": null,
                    "email": null,
                    "company": null,
                    "title": null,
                    "business": null,
                    "business2": null,
                    "mobile_phone": null,
                    "mobile_phone2": null,
                    "home_phone": null,
                    "home_phone2": null,
                    "other": null,
                    "business_fax": null,
                    "home_fax": null,
                    "address": null,
                    "notes": null,
                    "did": "111-222-3333"
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of contact.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "The ID of created resource",
                    "value": {
                      "id": "xxxxxxxx"
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "get": {
        "tags": [
          "Integration"
        ],
        "operationId": "listCRMContacts",
        "x-category": "integrations",
        "x-subcategory": "crm",
        "x-permissions": [
          "CRMContact.ViewOnly"
        ],
        "summary": "List contacts",
        "description": "Retrieve a collection of CRM contacts.\n",
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Use the `filter` query parameter to retrieve just a subset of a collection.\n"
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "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",
            "required": false,
            "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",
            "required": false,
            "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",
            "required": false,
            "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,
                      "example": 100,
                      "description": "Total number of resource.\n"
                    },
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "description": "The unique ID of contact.\n"
                          },
                          "first_name": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 64,
                            "description": "The first name of contact.\n"
                          },
                          "last_name": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 64,
                            "description": "The last name of contact.\n"
                          },
                          "email": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The email of contact.\n"
                          },
                          "company": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The company name of contact.\n"
                          },
                          "title": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The title of contact.\n"
                          },
                          "business": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The business phone number of contact.\n"
                          },
                          "business2": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The secondary business phone number of contact.\n"
                          },
                          "mobile_phone": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The mobile phone number of contact.\n"
                          },
                          "mobile_phone2": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The secondary mobile phone number of contact.\n"
                          },
                          "home_phone": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The home phone number of contact.\n"
                          },
                          "home_phone2": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The secondary home phone number of contact.\n"
                          },
                          "other": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The other phone number of contact.\n"
                          },
                          "business_fax": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The business fax of contact.\n"
                          },
                          "home_fax": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The home fax of contact.\n"
                          },
                          "address": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The address.\n"
                          },
                          "notes": {
                            "type": "string",
                            "maxLength": 1024,
                            "description": "The notes of contact.\n"
                          },
                          "did_number": {
                            "type": "string",
                            "description": "The DID/DDI number.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "An example for list CRM contacts",
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": null,
                          "first_name": null,
                          "last_name": null,
                          "email": null,
                          "company": null,
                          "title": null,
                          "did_number": null,
                          "business": null,
                          "business2": null,
                          "mobile_phone": null,
                          "mobile_phone2": null,
                          "home_phone": null,
                          "home_phone2": null,
                          "other": null,
                          "business_fax": null,
                          "home_fax": null,
                          "address": null,
                          "notes": null,
                          "type": null,
                          "url": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/crm/contacts/search": {
      "post": {
        "tags": [
          "Integration"
        ],
        "operationId": "searchCRMContacts",
        "x-category": "integrations",
        "x-subcategory": "crm",
        "x-permissions": [
          "CRMContact.ViewOnly"
        ],
        "summary": "Search contacts",
        "description": "Search CRM contacts with specified conditions in CRM integration.\n",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "number": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The business phone number of contact.\n"
                  }
                },
                "required": [
                  "number"
                ]
              },
              "examples": {
                "default": {
                  "summary": "An example for search CRM contact",
                  "value": {
                    "number": "666-666-6666"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "description": "The unique ID of contact.\n"
                          },
                          "first_name": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 64,
                            "description": "The first name of contact.\n"
                          },
                          "last_name": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 64,
                            "description": "The last name of contact.\n"
                          },
                          "email": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The email of contact.\n"
                          },
                          "company": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The company name of contact.\n"
                          },
                          "title": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The title of contact.\n"
                          },
                          "did_number": {
                            "type": "string",
                            "description": "The DID/DDI number.\n"
                          },
                          "business": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The business phone number of contact.\n"
                          },
                          "business2": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The secondary business phone number of contact.\n"
                          },
                          "mobile_phone": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The mobile phone number of contact.\n"
                          },
                          "mobile_phone2": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The secondary mobile phone number of contact.\n"
                          },
                          "home_phone": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The home phone number of contact.\n"
                          },
                          "home_phone2": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The secondary home phone number of contact.\n"
                          },
                          "other": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The other phone number of contact.\n"
                          },
                          "business_fax": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The business fax of contact.\n"
                          },
                          "home_fax": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The home fax of contact.\n"
                          },
                          "address": {
                            "type": "string",
                            "maxLength": 128,
                            "description": "The address.\n"
                          },
                          "notes": {
                            "type": "string",
                            "maxLength": 1024,
                            "description": "The notes of contact.\n"
                          },
                          "type": {
                            "type": "string",
                            "description": "The type of contact.\n"
                          },
                          "url": {
                            "type": "string",
                            "description": "The access URL of contact.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "An example for search CRM contact",
                    "value": {
                      "items": [
                        {
                          "id": null,
                          "first_name": null,
                          "last_name": null,
                          "email": null,
                          "company": null,
                          "title": null,
                          "did_number": null,
                          "business": null,
                          "business2": null,
                          "mobile_phone": null,
                          "mobile_phone2": null,
                          "home_phone": null,
                          "home_phone2": null,
                          "other": null,
                          "business_fax": null,
                          "home_fax": null,
                          "address": null,
                          "notes": null,
                          "type": null,
                          "url": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/crm/contacts/{id}": {
      "post": {
        "tags": [
          "Integration"
        ],
        "operationId": "updateCRMContact",
        "x-category": "integrations",
        "x-subcategory": "crm",
        "x-permissions": [
          "CRMContact.FullAccess"
        ],
        "summary": "Update a CRM contact",
        "description": "Update a CRM contact.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of contact.\n"
            },
            "description": "The unique ID of the contact."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "first_name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64,
                    "description": "The first name of contact.\n"
                  },
                  "last_name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64,
                    "description": "The last name of contact.\n"
                  },
                  "email": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The email of contact.\n"
                  },
                  "company": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The company name of contact.\n"
                  },
                  "title": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The title of contact.\n"
                  },
                  "did_number": {
                    "type": "string",
                    "description": "The DID/DDI number.\n"
                  },
                  "business": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The business phone number of contact.\n"
                  },
                  "business2": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The secondary business phone number of contact.\n"
                  },
                  "mobile_phone": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The mobile phone number of contact.\n"
                  },
                  "mobile_phone2": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The secondary mobile phone number of contact.\n"
                  },
                  "home_phone": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The home phone number of contact.\n"
                  },
                  "home_phone2": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The secondary home phone number of contact.\n"
                  },
                  "other": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The other phone number of contact.\n"
                  },
                  "business_fax": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The business fax of contact.\n"
                  },
                  "home_fax": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The home fax of contact.\n"
                  },
                  "address": {
                    "type": "string",
                    "maxLength": 128,
                    "description": "The address.\n"
                  },
                  "notes": {
                    "type": "string",
                    "maxLength": 1024,
                    "description": "The notes of contact.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "first_name": null,
                    "last_name": null,
                    "email": null,
                    "company": null,
                    "title": null,
                    "did_number": null,
                    "business": null,
                    "business2": null,
                    "mobile_phone": null,
                    "mobile_phone2": null,
                    "home_phone": null,
                    "home_phone2": null,
                    "other": null,
                    "business_fax": null,
                    "home_fax": null,
                    "address": null,
                    "notes": null
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "get": {
        "tags": [
          "Integration"
        ],
        "operationId": "getCRMContact",
        "x-category": "integrations",
        "x-subcategory": "crm",
        "x-permissions": [
          "CRMContact.ViewOnly"
        ],
        "summary": "Get a CRM contact",
        "description": "Retrieve CRM contact details by it's ID.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of contact.\n"
            },
            "description": "The unique ID of the contact."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of contact.\n"
                    },
                    "first_name": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64,
                      "description": "The first name of contact.\n"
                    },
                    "last_name": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64,
                      "description": "The last name of contact.\n"
                    },
                    "email": {
                      "type": "string",
                      "maxLength": 128,
                      "description": "The email of contact.\n"
                    },
                    "company": {
                      "type": "string",
                      "maxLength": 128,
                      "description": "The company name of contact.\n"
                    },
                    "title": {
                      "type": "string",
                      "maxLength": 128,
                      "description": "The title of contact.\n"
                    },
                    "did_number": {
                      "type": "string",
                      "description": "The DID/DDI number.\n"
                    },
                    "business": {
                      "type": "string",
                      "maxLength": 128,
                      "description": "The business phone number of contact.\n"
                    },
                    "business2": {
                      "type": "string",
                      "maxLength": 128,
                      "description": "The secondary business phone number of contact.\n"
                    },
                    "mobile_phone": {
                      "type": "string",
                      "maxLength": 128,
                      "description": "The mobile phone number of contact.\n"
                    },
                    "mobile_phone2": {
                      "type": "string",
                      "maxLength": 128,
                      "description": "The secondary mobile phone number of contact.\n"
                    },
                    "home_phone": {
                      "type": "string",
                      "maxLength": 128,
                      "description": "The home phone number of contact.\n"
                    },
                    "home_phone2": {
                      "type": "string",
                      "maxLength": 128,
                      "description": "The secondary home phone number of contact.\n"
                    },
                    "other": {
                      "type": "string",
                      "maxLength": 128,
                      "description": "The other phone number of contact.\n"
                    },
                    "business_fax": {
                      "type": "string",
                      "maxLength": 128,
                      "description": "The business fax of contact.\n"
                    },
                    "home_fax": {
                      "type": "string",
                      "maxLength": 128,
                      "description": "The home fax of contact.\n"
                    },
                    "address": {
                      "type": "string",
                      "maxLength": 128,
                      "description": "The address.\n"
                    },
                    "notes": {
                      "type": "string",
                      "maxLength": 1024,
                      "description": "The notes of contact.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "An example for get CRM contact",
                    "value": {
                      "id": null,
                      "first_name": null,
                      "last_name": null,
                      "email": null,
                      "company": null,
                      "title": null,
                      "did_number": null,
                      "business": null,
                      "business2": null,
                      "mobile_phone": null,
                      "mobile_phone2": null,
                      "home_phone": null,
                      "home_phone2": null,
                      "other": null,
                      "business_fax": null,
                      "home_fax": null,
                      "address": null,
                      "notes": null,
                      "type": null,
                      "url": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/crm/contacts/{id}/destroy": {
      "post": {
        "tags": [
          "Integration"
        ],
        "operationId": "deleteCRMContact",
        "x-category": "integrations",
        "x-subcategory": "crm",
        "x-permissions": [
          "CRMContact.FullAccess"
        ],
        "summary": "Delete a CRM contact",
        "description": "Remove CRM contact by it's ID.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of contact.\n"
            },
            "description": "The unique ID of the contact."
          }
        ],
        "responses": {
          "202": {
            "description": "No Content"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/crm/contacts/{id}/notes": {
      "post": {
        "tags": [
          "Integration"
        ],
        "operationId": "createCRMContactNote",
        "x-category": "integrations",
        "x-subcategory": "crm",
        "x-permissions": [
          "CRMContact.FullAccess"
        ],
        "summary": "Create CRM contact note",
        "description": "Create CRM contact note.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of contact.\n"
            },
            "description": "The unique ID of the contact."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "title": {
                    "type": "string",
                    "description": "The title of CRM record note.\n"
                  },
                  "content": {
                    "type": "string",
                    "description": "The content of CRM record note.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "title": "",
                    "content": ""
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "type": "string",
                    "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                    "description": "The unique ID of the resource.\n"
                  }
                },
                "examples": {
                  "default": {
                    "summary": "The ID of created resource",
                    "value": {
                      "id": "xxxxxxxx"
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "get": {
        "tags": [
          "Integration"
        ],
        "operationId": "listContactNotes",
        "x-category": "integrations",
        "x-subcategory": "crm",
        "x-permissions": [
          "CRMContact.ViewOnly"
        ],
        "summary": "List contact notes",
        "description": "List a collection of CRM contact notes.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
              "description": "The unique ID of the resource.\n"
            },
            "description": "The unique ID of the CRM contact."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "count": {
                      "type": "integer",
                      "format": "int64",
                      "minimum": 0,
                      "example": 100,
                      "description": "Total number of resource.\n"
                    },
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string",
                            "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                            "description": "The unique ID of the resource.\n"
                          },
                          "title": {
                            "type": "string",
                            "description": "The title of CRM record note.\n"
                          },
                          "content": {
                            "type": "string",
                            "description": "The content of CRM record note.\n"
                          },
                          "created_at": {
                            "type": "string",
                            "format": "date_time",
                            "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                            "example": "2017-07-21T17:32:28Z"
                          },
                          "updated_at": {
                            "type": "string",
                            "format": "date_time",
                            "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                            "example": "2017-07-21T17:32:28Z"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "items": [
                        {
                          "id": "",
                          "title": "",
                          "content": "",
                          "created_at": "",
                          "updated_at": ""
                        },
                        {
                          "id": "",
                          "title": "",
                          "content": "",
                          "created_at": "",
                          "updated_at": ""
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/crm/contacts/{id}/notes/{note_id}": {
      "post": {
        "tags": [
          "Integration"
        ],
        "operationId": "updateCRMContactNote",
        "x-category": "integrations",
        "x-subcategory": "crm",
        "x-permissions": [
          "CRMContact.FullAccess"
        ],
        "summary": "Update CRM contact note",
        "description": "Update CRM contact note.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
              "description": "The unique ID of the resource.\n"
            },
            "description": "The unique ID of the contact."
          },
          {
            "name": "note_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
              "description": "The unique ID of the resource.\n"
            },
            "description": "The unique ID of the CRM note."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "title": {
                    "type": "string",
                    "description": "The title of CRM record note.\n"
                  },
                  "content": {
                    "type": "string",
                    "description": "The content of CRM record note.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "title": "",
                    "content": ""
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "get": {
        "tags": [
          "Integration"
        ],
        "operationId": "getContactNote",
        "x-category": "integrations",
        "x-subcategory": "crm",
        "x-permissions": [
          "CRMContact.ViewOnly"
        ],
        "summary": "Get contact note",
        "description": "Get CRM contact note.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
              "description": "The unique ID of the resource.\n"
            },
            "description": "The unique ID of the CRM contact."
          },
          {
            "name": "note_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
              "description": "The unique ID of the resource.\n"
            },
            "description": "The unique ID of the CRM note."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                      "description": "The unique ID of the resource.\n"
                    },
                    "title": {
                      "type": "string",
                      "description": "The title of CRM record note.\n"
                    },
                    "content": {
                      "type": "string",
                      "description": "The content of CRM record note.\n"
                    },
                    "created_at": {
                      "type": "string",
                      "format": "date_time",
                      "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                      "example": "2017-07-21T17:32:28Z"
                    },
                    "updated_at": {
                      "type": "string",
                      "format": "date_time",
                      "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                      "example": "2017-07-21T17:32:28Z"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "id": "",
                      "title": "",
                      "content": "",
                      "created_at": "",
                      "updated_at": ""
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/crm/contacts/{id}/notes/{note_id}/destroy": {
      "post": {
        "tags": [
          "Integration"
        ],
        "operationId": "deleteCRMContactNote",
        "x-category": "integrations",
        "x-subcategory": "crm",
        "x-permissions": [
          "CRMContact.FullAccess"
        ],
        "summary": "Delete CRM contact note",
        "description": "Delete CRM contact note.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
              "description": "The unique ID of the resource.\n"
            },
            "description": "The unique ID of the contact."
          },
          {
            "name": "note_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
              "description": "The unique ID of the resource.\n"
            },
            "description": "The unique ID of the CRM note."
          }
        ],
        "responses": {
          "204": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/crm/contacts/{id}/calls": {
      "get": {
        "tags": [
          "Integration"
        ],
        "operationId": "listCRMCalls",
        "x-category": "integrations",
        "x-subcategory": "crm",
        "x-permissions": [
          "CRMContact.ViewOnly"
        ],
        "summary": "List calls",
        "description": "List calls from CRM integration.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of contact.\n"
            },
            "description": "The unique ID of the contact."
          },
          {
            "name": "filter",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Use the `filter` query parameter to retrieve just a subset of a collection.\n"
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "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",
            "required": false,
            "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",
            "required": false,
            "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",
            "required": false,
            "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"
          },
          {
            "name": "count",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            },
            "description": "Use the $count=true query option to include a count of entities that match the filter criteria.\n"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "count": {
                      "type": "integer",
                      "format": "int64",
                      "minimum": 0,
                      "example": 100,
                      "description": "Total number of resource.\n"
                    },
                    "items": {
                      "properties": {
                        "id": {
                          "allOf": [
                            {
                              "type": "string",
                              "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                              "description": "The unique ID of the resource.\n"
                            }
                          ],
                          "description": "The unique ID of CRM call.\n"
                        },
                        "caller": {
                          "type": "string",
                          "maxLength": 256,
                          "description": "The caller number of the call.\n"
                        },
                        "caller_display_name": {
                          "type": "string",
                          "maxLength": 1024,
                          "description": "The caller display name of the call.\n"
                        },
                        "callee": {
                          "type": "string",
                          "maxLength": 256,
                          "description": "The callee number of the call.\n"
                        },
                        "callee_display_name": {
                          "type": "string",
                          "maxLength": 1024,
                          "description": "The callee display name of the call.\n"
                        },
                        "started_at": {
                          "allOf": [
                            {
                              "type": "string",
                              "format": "date_time",
                              "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                              "example": "2017-07-21T17:32:28Z"
                            }
                          ],
                          "description": "The start time of the call.\n"
                        },
                        "rang_at": {
                          "allOf": [
                            {
                              "type": "string",
                              "format": "date_time",
                              "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                              "example": "2017-07-21T17:32:28Z"
                            }
                          ],
                          "description": "The ringing time of the call.\n"
                        },
                        "answered_at": {
                          "allOf": [
                            {
                              "type": "string",
                              "format": "date_time",
                              "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                              "example": "2017-07-21T17:32:28Z"
                            }
                          ],
                          "description": "The answer time of the call.\n"
                        },
                        "ended_at": {
                          "allOf": [
                            {
                              "type": "string",
                              "format": "date_time",
                              "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                              "example": "2017-07-21T17:32:28Z"
                            }
                          ],
                          "description": "The end time of the call.\n"
                        },
                        "direction": {
                          "type": "string",
                          "enum": [
                            "INBOUND_CALL",
                            "OUTBOUND_CALL",
                            "EXTENSION_CALL",
                            "INBOUND_OUTBOUND_CALL"
                          ],
                          "description": "The direction of CDR:\n- `INBOUND_CALL`:\n- `OUTBOUND_CALL`:\n- `EXTENSION_CALL`:\n- `INBOUND_OUTBOUND_CALL`:\n"
                        },
                        "duration": {
                          "type": "integer",
                          "format": "int32",
                          "description": "The total talk time for a session (in seconds).\n"
                        },
                        "summary": {
                          "type": "string",
                          "description": "The summary of CRM call.\n"
                        },
                        "transcription": {
                          "type": "string",
                          "description": "The transcription of CRM call.\n"
                        },
                        "recording": {
                          "type": "string",
                          "description": "The recording of CRM call.\n"
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "An example for list CRM contact calls",
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": null,
                          "caller": null,
                          "caller_display_name": null,
                          "callee": null,
                          "callee_display_name": null,
                          "started_at": null,
                          "rang_at": null,
                          "answered_at": null,
                          "ended_at": null,
                          "direction": null,
                          "duration": null,
                          "summary": null,
                          "transcription": null,
                          "recording": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/crm/contacts/{id}/calls/{call_id}": {
      "get": {
        "tags": [
          "Integration"
        ],
        "operationId": "getCRMCall",
        "x-category": "integrations",
        "x-subcategory": "crm",
        "x-permissions": [
          "CRMContact.ViewOnly"
        ],
        "summary": "Get call",
        "description": "Get call from CRM integration.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of contact.\n"
            },
            "description": "The unique ID of the contact."
          },
          {
            "name": "call_id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of CRM call.\n"
            },
            "description": "The unique ID of the CRM call."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of CRM call.\n"
                    },
                    "caller": {
                      "type": "string",
                      "maxLength": 256,
                      "description": "The caller number of the call.\n"
                    },
                    "caller_display_name": {
                      "type": "string",
                      "maxLength": 1024,
                      "description": "The caller display name of the call.\n"
                    },
                    "callee": {
                      "type": "string",
                      "maxLength": 256,
                      "description": "The callee number of the call.\n"
                    },
                    "callee_display_name": {
                      "type": "string",
                      "maxLength": 1024,
                      "description": "The callee display name of the call.\n"
                    },
                    "started_at": {
                      "allOf": [
                        {
                          "type": "string",
                          "format": "date_time",
                          "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                          "example": "2017-07-21T17:32:28Z"
                        }
                      ],
                      "description": "The start time of the call.\n"
                    },
                    "rang_at": {
                      "allOf": [
                        {
                          "type": "string",
                          "format": "date_time",
                          "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                          "example": "2017-07-21T17:32:28Z"
                        }
                      ],
                      "description": "The ringing time of the call.\n"
                    },
                    "answered_at": {
                      "allOf": [
                        {
                          "type": "string",
                          "format": "date_time",
                          "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                          "example": "2017-07-21T17:32:28Z"
                        }
                      ],
                      "description": "The answer time of the call.\n"
                    },
                    "ended_at": {
                      "allOf": [
                        {
                          "type": "string",
                          "format": "date_time",
                          "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
                          "example": "2017-07-21T17:32:28Z"
                        }
                      ],
                      "description": "The end time of the call.\n"
                    },
                    "direction": {
                      "type": "string",
                      "enum": [
                        "INBOUND_CALL",
                        "OUTBOUND_CALL",
                        "EXTENSION_CALL",
                        "INBOUND_OUTBOUND_CALL"
                      ],
                      "description": "The direction of CDR:\n- `INBOUND_CALL`:\n- `OUTBOUND_CALL`:\n- `EXTENSION_CALL`:\n- `INBOUND_OUTBOUND_CALL`:\n"
                    },
                    "duration": {
                      "type": "integer",
                      "format": "int32",
                      "description": "The total talk time for a session (in seconds).\n"
                    },
                    "summary": {
                      "type": "string",
                      "description": "The summary of CRM call.\n"
                    },
                    "transcription": {
                      "type": "string",
                      "description": "The transcription of CRM call.\n"
                    },
                    "recording": {
                      "type": "string",
                      "description": "The recording of CRM call.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "An example for get CRM contact call",
                    "value": {
                      "id": null,
                      "session_id": null,
                      "caller": null,
                      "caller_display_name": null,
                      "callee": null,
                      "callee_display_name": null,
                      "started_at": null,
                      "rang_at": null,
                      "answered_at": null,
                      "ended_at": null,
                      "direction": null,
                      "duration": null,
                      "summary": null,
                      "transcription": null,
                      "recording": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "post": {
        "tags": [
          "Integration"
        ],
        "operationId": "updateCRMCall",
        "x-category": "integrations",
        "x-subcategory": "crm",
        "x-permissions": [
          "CRMContact.FullAccess"
        ],
        "summary": "Update call",
        "description": "Update CRM call summary.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of contact.\n"
            },
            "description": "The unique ID of the contact."
          },
          {
            "name": "call_id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of CRM call.\n"
            },
            "description": "The unique ID of the CRM call."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "summary": {
                    "type": "string",
                    "description": "The summary of CRM call.\n"
                  }
                },
                "required": [
                  "summary"
                ]
              },
              "examples": {
                "default": {
                  "summary": "An example for update CRM contact call",
                  "value": {
                    "summary": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/dataflow": {
      "get": {
        "tags": [
          "Administration"
        ],
        "operationId": "getDataFlowServerConfigurations",
        "x-category": "system-management",
        "x-subcategory": "dataflow",
        "x-permissions": [
          "SystemSettings.ViewOnly"
        ],
        "summary": "Get server",
        "description": "Retrieve settings of data flow server.\n",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "private_ipv4": {
                      "type": "string",
                      "description": "Host IPV4 address.\n"
                    },
                    "private_ipv6": {
                      "type": "string",
                      "description": "Host IPV6 address.\n"
                    },
                    "public_ipv4": {
                      "type": "string",
                      "description": "Host IPV4 address.\n"
                    },
                    "public_ipv6": {
                      "type": "string",
                      "description": "Host IPV6 address.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "private_ipv4": null,
                      "private_ipv6": null,
                      "public_ipv4": null,
                      "public_ipv6": null
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "post": {
        "tags": [
          "Administration"
        ],
        "operationId": "updateDataFlowServerConfiguration",
        "x-category": "system-management",
        "x-subcategory": "dataflow",
        "x-permissions": [
          "SystemSettings.FullAccess"
        ],
        "summary": "Update server",
        "description": "Update data flow server configurations.\n",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "private_ipv4": {
                    "type": "string",
                    "description": "Host IPV4 address.\n"
                  },
                  "private_ipv6": {
                    "type": "string",
                    "description": "Host IPV6 address.\n"
                  },
                  "public_ipv4": {
                    "type": "string",
                    "description": "Host IPV4 address.\n"
                  },
                  "public_ipv6": {
                    "type": "string",
                    "description": "Host IPV6 address.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "private_ipv4": null,
                    "private_ipv6": null,
                    "public_ipv4": null,
                    "public_ipv6": null
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/dataflow/token": {
      "get": {
        "tags": [
          "Administration"
        ],
        "operationId": "getDataFlowServerToken",
        "x-category": "system-management",
        "x-subcategory": "dataflow",
        "x-permissions": [
          "SystemSettings.ViewOnly"
        ],
        "summary": "Get Server token",
        "description": "Retrieve data flow server token\n",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "token": {
                      "type": "string",
                      "example": "xxxxxxyyyyyyyyyyyyyyyzzzzzzzzzzzz.",
                      "description": "The api token for extended servers.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "token": "xxxxxxxxxxxxxxxxxxxxxx"
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "post": {
        "tags": [
          "Administration"
        ],
        "operationId": "regenerateDataFlowServerToken",
        "x-category": "system-management",
        "x-subcategory": "dataflow",
        "x-permissions": [
          "SystemSettings.FullAccess"
        ],
        "summary": "Regenerate server token",
        "description": "Regenerate data flow server token\n",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "token": {
                      "type": "string",
                      "example": "xxxxxxyyyyyyyyyyyyyyyzzzzzzzzzzzz.",
                      "description": "The api token for extended servers.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "token": "xxxxxxxxxxxxxxxxx"
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/dataflow/token/destroy": {
      "post": {
        "tags": [
          "Administration"
        ],
        "operationId": "destroyDataFlowServerToken",
        "x-category": "system-management",
        "x-subcategory": "dataflow",
        "x-permissions": [
          "SystemSettings.FullAccess"
        ],
        "summary": "Delete server Token",
        "description": "Destroy data flow server Token.\n",
        "responses": {
          "204": {
            "description": "No Content"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/dataflow/queues/summary": {
      "post": {
        "tags": [
          "Dataflow"
        ],
        "operationId": "getQueueKpiSummary",
        "x-category": "dataflow",
        "x-subcategory": "analytics",
        "x-permissions": [
          "Analytics.ViewOnly"
        ],
        "summary": "Get current queue KPI summary",
        "description": "Retrieve KPI metrics for one or multiple queues within a specified time range.  \nWhen multiple queues are specified, the system returns their averaged KPI metrics.\n",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "queues": {
                    "type": "array",
                    "description": "List of queues to calculate KPI metrics for.\n",
                    "items": {
                      "type": "object",
                      "properties": {
                        "number": {
                          "type": "string",
                          "description": "The queue number.",
                          "example": "1001"
                        },
                        "sla_secs": {
                          "type": "integer",
                          "description": "SLA threshold in seconds.",
                          "example": 300
                        }
                      }
                    }
                  },
                  "start_time": {
                    "type": "string",
                    "format": "date-time",
                    "description": "The start time of the report period.  \nMust include timezone in RFC3339 format (e.g. 2025-09-28T00:00:00-04:00).\n",
                    "example": "2025-09-28T00:00:00-04:00"
                  },
                  "end_time": {
                    "type": "string",
                    "format": "date-time",
                    "description": "The end time of the report period.  \nMust include timezone in RFC3339 format (e.g. 2025-09-28T15:00:00-04:00).\n",
                    "example": "2025-09-28T15:00:00-04:00"
                  }
                }
              },
              "examples": {
                "default": {
                  "value": {
                    "queues": [
                      {
                        "number": "1001",
                        "sla_secs": 300
                      },
                      {
                        "number": "1002",
                        "sla_secs": 100
                      },
                      {
                        "number": "1003",
                        "sla_secs": 600
                      }
                    ],
                    "start_time": "2025-09-28T00:00:00-04:00",
                    "end_time": "2025-09-28T15:00:00-04:00"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "metrics": {
                      "type": "object",
                      "description": "Queue KPI metrics summary.",
                      "properties": {
                        "offered": {
                          "type": "integer",
                          "description": "The total number of calls distributed to agents after entering the queue,  \nincluding both answered and unanswered calls.  \nShort-abandoned calls are excluded if short-abandon exclusion is enabled.\n",
                          "example": 412
                        },
                        "accepted": {
                          "type": "integer",
                          "description": "The number of calls that were successfully answered by agents.\n",
                          "example": 400
                        },
                        "abandoned": {
                          "type": "integer",
                          "description": "The number of calls that entered the queue but were abandoned before being answered.  \nExcludes queue callbacks, queue exits, and calls rejected due to queue full.\n",
                          "example": 12
                        },
                        "sla_pct": {
                          "type": "number",
                          "format": "float",
                          "description": "The percentage of calls answered within the SLA time threshold.  \nShort-abandoned calls are excluded if short-abandon exclusion is enabled.\n",
                          "example": 85.5
                        },
                        "aht_sec": {
                          "type": "integer",
                          "description": "Average Handle Time (AHT) in seconds.  \nCalculated as: (Total handling time ÷ Accepted calls).  \nHandling time = Talk time + Wrap-up time.\n",
                          "example": 600
                        },
                        "att_sec": {
                          "type": "integer",
                          "description": "Average Talk Time (ATT) in seconds — the average call duration after being answered.\n",
                          "example": 90
                        },
                        "avg_wrap_time_sec": {
                          "type": "integer",
                          "description": "Average wrap-up time in seconds — the average time agents spend after call completion.\n",
                          "example": 1000
                        },
                        "asa_sec": {
                          "type": "integer",
                          "description": "Average Speed of Answer (ASA) in seconds — the average waiting time  \nfrom entering the queue to being answered (only for answered calls).\n",
                          "example": 300
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "value": {
                      "metrics": {
                        "offered": 412,
                        "accepted": 400,
                        "abandoned": 12,
                        "sla_pct": 85.5,
                        "aht_sec": 600,
                        "att_sec": 90,
                        "avg_wrap_time_sec": 1000,
                        "asa_sec": 300
                      }
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/dataflow/queues/timeseries": {
      "post": {
        "tags": [
          "Dataflow"
        ],
        "operationId": "getQueueTimeseries",
        "x-category": "dataflow",
        "x-subcategory": "analytics",
        "x-permissions": [
          "Analytics.ViewOnly"
        ],
        "summary": "Get queue call timeseries",
        "description": "Retrieve call timeseries data for a specific queue within a specified time range.  \nThe data is returned in intervals specified by the `interval` field.  \nMaximum supported time range is 24 hours.\n",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "queue": {
                    "type": "string",
                    "description": "Queue number.",
                    "example": "8000"
                  },
                  "start_time": {
                    "type": "string",
                    "format": "date-time",
                    "description": "The start time of the report period.  \nMust include timezone in RFC3339 format (e.g. 2025-09-28T00:00:00-04:00).\n",
                    "example": "2025-09-28T00:00:00-04:00"
                  },
                  "end_time": {
                    "type": "string",
                    "format": "date-time",
                    "description": "The end time of the report period.  \nMust include timezone in RFC3339 format (e.g. 2025-09-28T15:00:00-04:00).\n",
                    "example": "2025-09-28T15:00:00-04:00"
                  },
                  "interval": {
                    "type": "string",
                    "description": "Interval for aggregating timeseries points. Supported values:\n1h, 2h, 3h, 4h, 6h, 8h\n",
                    "example": "1h"
                  }
                }
              },
              "examples": {
                "default": {
                  "value": {
                    "queue": "8000",
                    "start_time": "2025-09-28T00:00:00-04:00",
                    "end_time": "2025-09-28T15:00:00-04:00",
                    "interval": "1h"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "points": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "t": {
                            "type": "string",
                            "format": "date-time",
                            "description": "Timestamp of the timeseries point.",
                            "example": "2025-09-29T10:00:00-04:00"
                          },
                          "offered": {
                            "type": "integer",
                            "description": "The total number of calls distributed to agents after entering the queue,  \nincluding both answered and unanswered calls.  \nShort-abandoned calls are excluded if short-abandon exclusion is enabled.\n",
                            "example": 412
                          },
                          "accepted": {
                            "type": "integer",
                            "description": "The number of calls that were successfully answered by agents.\n",
                            "example": 400
                          },
                          "abandoned": {
                            "type": "integer",
                            "description": "The number of calls that entered the queue but were abandoned before being answered.  \nExcludes queue callbacks, queue exits, and calls rejected due to queue full.\n",
                            "example": 12
                          },
                          "asa_sec": {
                            "type": "integer",
                            "description": "Average Speed of Answer (ASA) in seconds — the average waiting time  \nfrom entering the queue to being answered (only for answered calls).\n",
                            "example": 300
                          },
                          "cb_ok": {
                            "type": "integer",
                            "description": "Total number of callbacks that successfully connected the customer with an agent.",
                            "example": 1
                          },
                          "cb_fail": {
                            "type": "integer",
                            "description": "Percentage of callback interactions that were not completed successfully.",
                            "example": 2
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "value": {
                      "points": [
                        {
                          "t": "2025-09-29T10:00:00-04:00",
                          "offered": 62,
                          "accepted": 56,
                          "abandoned": 4,
                          "asa_sec": 18,
                          "cb_ok": 1,
                          "cb_fail": 2
                        },
                        {
                          "t": "2025-09-29T11:00:00-04:00",
                          "offered": 62,
                          "accepted": 56,
                          "abandoned": 4,
                          "asa_sec": 18,
                          "cb_ok": 1,
                          "cb_fail": 2
                        },
                        {
                          "t": "2025-09-29T12:00:00-04:00",
                          "offered": 62,
                          "accepted": 56,
                          "abandoned": 4,
                          "asa_sec": 18,
                          "cb_ok": 1,
                          "cb_fail": 2
                        },
                        {
                          "t": "2025-09-29T13:00:00-04:00",
                          "offered": 62,
                          "accepted": 56,
                          "abandoned": 4,
                          "asa_sec": 18,
                          "cb_ok": 1,
                          "cb_fail": 2
                        },
                        {
                          "t": "2025-09-29T14:00:00-04:00",
                          "offered": 62,
                          "accepted": 56,
                          "abandoned": 4,
                          "asa_sec": 18,
                          "cb_ok": 1,
                          "cb_fail": 2
                        },
                        {
                          "t": "2025-09-29T15:00:00-04:00",
                          "offered": 62,
                          "accepted": 56,
                          "abandoned": 4,
                          "asa_sec": 18,
                          "cb_ok": 1,
                          "cb_fail": 2
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/dataflow/queues/agent/summary": {
      "post": {
        "tags": [
          "Dataflow"
        ],
        "operationId": "getAgentQueueSummary",
        "x-category": "dataflow",
        "x-subcategory": "analytics",
        "x-permissions": [
          "Analytics.ViewOnly"
        ],
        "summary": "Get agent queue summary",
        "description": "Retrieve summary metrics for a specific agent in a specific queue within a given time range.  \nMaximum supported time range is 24 hours.\n",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "queue": {
                    "type": "string",
                    "description": "Queue number.",
                    "example": "8000"
                  },
                  "agent": {
                    "type": "string",
                    "description": "Agent number.",
                    "example": "101"
                  },
                  "start_time": {
                    "type": "string",
                    "format": "date-time",
                    "description": "The start time of the report period.  \nMust include timezone in RFC3339 format (e.g. 2025-09-28T00:00:00-04:00).\n",
                    "example": "2025-09-28T00:00:00-04:00"
                  },
                  "end_time": {
                    "type": "string",
                    "format": "date-time",
                    "description": "The end time of the report period.  \nMust include timezone in RFC3339 format (e.g. 2025-09-28T15:00:00-04:00).\n",
                    "example": "2025-09-28T15:00:00-04:00"
                  }
                }
              },
              "examples": {
                "default": {
                  "value": {
                    "queue": "8000",
                    "agent": "101",
                    "start_time": "2025-09-28T00:00:00-04:00",
                    "end_time": "2025-09-28T15:00:00-04:00"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "points": {
                      "type": "object",
                      "properties": {
                        "total": {
                          "type": "integer",
                          "description": "Total number of calls received by the agent within the time range.  \nCalls with the same session ID counted only once.\n",
                          "example": 1000
                        },
                        "accepted": {
                          "type": "integer",
                          "description": "The number of calls that were successfully answered by agents.\n",
                          "example": 400
                        },
                        "occupancy_pct": {
                          "type": "number",
                          "format": "float",
                          "description": "Agent occupancy percentage during the period.",
                          "example": 85.5
                        },
                        "aht_sec": {
                          "type": "integer",
                          "description": "Average Handle Time (AHT) in seconds.  \nCalculated as: (Total handling time ÷ Accepted calls).  \nHandling time = Talk time + Wrap-up time.\n",
                          "example": 600
                        },
                        "att_sec": {
                          "type": "integer",
                          "description": "Average Talk Time (ATT) in seconds — the average call duration after being answered.\n",
                          "example": 90
                        },
                        "avg_wrap_time_sec": {
                          "type": "integer",
                          "description": "Average wrap-up time in seconds — the average time agents spend after call completion.\n",
                          "example": 1000
                        },
                        "average_ring_time_sec": {
                          "type": "integer",
                          "description": "Average ring time before the agent answers, in seconds.",
                          "example": 300
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "value": {
                      "points": {
                        "total": 1000,
                        "accepted": 400,
                        "occupancy_pct": 85.5,
                        "aht_sec": 600,
                        "att_sec": 90,
                        "avg_wrap_time_sec": 1000,
                        "average_ring_time_sec": 300
                      }
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/dataflow/queues/agent/timeseries": {
      "post": {
        "tags": [
          "Dataflow"
        ],
        "operationId": "getAgentQueueTimeseries",
        "x-category": "dataflow",
        "x-subcategory": "analytics",
        "x-permissions": [
          "Analytics.ViewOnly"
        ],
        "summary": "Get agent queue timeseries",
        "description": "Retrieve segmented timeseries metrics for a specific agent in a specific queue within a given time range.\nThe maximum supported time range is **24 hours**.  \nReturned data is grouped into time intervals defined by the `interval` parameter.\n",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "queue": {
                    "type": "string",
                    "description": "Queue number.",
                    "example": "8000"
                  },
                  "agent": {
                    "type": "string",
                    "description": "Agent number.",
                    "example": "101"
                  },
                  "start_time": {
                    "type": "string",
                    "format": "date-time",
                    "description": "The start time of the report period.  \nMust include timezone in RFC3339 format (e.g. 2025-09-28T00:00:00-04:00).\n",
                    "example": "2025-09-28T00:00:00-04:00"
                  },
                  "end_time": {
                    "type": "string",
                    "format": "date-time",
                    "description": "The end time of the report period.  \nMust include timezone in RFC3339 format (e.g. 2025-09-28T15:00:00-04:00).\n",
                    "example": "2025-09-28T15:00:00-04:00"
                  },
                  "interval": {
                    "type": "string",
                    "description": "Interval for aggregating timeseries points. Supported values:\n1h, 2h, 3h, 4h, 6h, 8h\n",
                    "example": "1h"
                  }
                }
              },
              "examples": {
                "default": {
                  "value": {
                    "queue": "8000",
                    "agent": "101",
                    "start_time": "2025-09-28T00:00:00-04:00",
                    "end_time": "2025-09-28T15:00:00-04:00",
                    "interval": "1h"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "points": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "t": {
                            "type": "string",
                            "format": "date-time",
                            "description": "Timestamp of the timeseries point.",
                            "example": "2025-09-29T10:00:00-04:00"
                          },
                          "occupancy_pct": {
                            "type": "number",
                            "format": "float",
                            "description": "Agent occupancy percentage during the period.",
                            "example": 85.5
                          },
                          "aht_sec": {
                            "type": "integer",
                            "description": "Average Handle Time (AHT) in seconds.  \nCalculated as: (Total handling time ÷ Accepted calls).  \nHandling time = Talk time + Wrap-up time.\n",
                            "example": 600
                          },
                          "att_sec": {
                            "type": "integer",
                            "description": "Average Talk Time (ATT) in seconds — the average call duration after being answered.\n",
                            "example": 90
                          },
                          "accepted": {
                            "type": "integer",
                            "description": "The number of calls that were successfully answered by agents.\n",
                            "example": 400
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "value": {
                      "points": [
                        {
                          "t": "2025-09-29T10:00:00-04:00",
                          "occupancy_pct": 62.5,
                          "aht_sec": 56,
                          "att_sec": 4,
                          "accepted": 18
                        },
                        {
                          "t": "2025-09-29T11:00:00-04:00",
                          "occupancy_pct": 71.2,
                          "aht_sec": 64,
                          "att_sec": 5,
                          "accepted": 22
                        },
                        {
                          "t": "2025-09-29T12:00:00-04:00",
                          "occupancy_pct": 68.3,
                          "aht_sec": 60,
                          "att_sec": 6,
                          "accepted": 24
                        },
                        {
                          "t": "2025-09-29T13:00:00-04:00",
                          "occupancy_pct": 59.8,
                          "aht_sec": 52,
                          "att_sec": 5,
                          "accepted": 19
                        },
                        {
                          "t": "2025-09-29T14:00:00-04:00",
                          "occupancy_pct": 44.1,
                          "aht_sec": 40,
                          "att_sec": 3,
                          "accepted": 17
                        },
                        {
                          "t": "2025-09-29T15:00:00-04:00",
                          "occupancy_pct": 51.8,
                          "aht_sec": 46,
                          "att_sec": 3,
                          "accepted": 20
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/dataflow/analytics/calls/timeseries": {
      "post": {
        "tags": [
          "Dataflow"
        ],
        "operationId": "getCallsTimeseries",
        "x-category": "dataflow",
        "x-subcategory": "analytics",
        "x-permissions": [
          "Analytics.ViewOnly"
        ],
        "summary": "Get calls timeseries",
        "description": "Retrieve the call volume time series within a specified time range.\n- Supports up to **365 days** range and a minimum of **1 day**.\n- If the range is **1 day**, results are grouped hourly (24 intervals).\n- If the range is **multiple days**, results are grouped daily.\n- Returned data includes total, answered, and not answered call counts.\n- Tenant users do not need to specify `tenants` and can only query their own data.\n- System administrators can specify multiple tenant IDs, or leave `tenants` empty to query all tenants.\n",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "tenants": {
                    "type": "array",
                    "description": "Array of tenant IDs.  \n- For tenant users, this field is ignored.  \n- For system administrators, leave empty to query all tenants.\n",
                    "items": {
                      "type": "integer"
                    },
                    "example": [
                      1030655834964623400,
                      1030655834964623400
                    ]
                  },
                  "start_time": {
                    "type": "string",
                    "format": "date-time",
                    "description": "The start time of the report period.  \nMust include timezone in RFC3339 format (e.g. 2025-09-28T00:00:00-04:00).\n",
                    "example": "2025-09-28T00:00:00-04:00"
                  },
                  "end_time": {
                    "type": "string",
                    "format": "date-time",
                    "description": "The end time of the report period.  \nMust include timezone in RFC3339 format (e.g. 2025-09-28T15:00:00-04:00).\n",
                    "example": "2025-09-28T15:00:00-04:00"
                  },
                  "interval": {
                    "type": "string",
                    "description": "Interval for aggregating timeseries points. Supported values:\n1h, 2h, 3h, 4h, 6h, 8h\n",
                    "example": "1h"
                  }
                }
              },
              "examples": {
                "default": {
                  "value": {
                    "tenants": [
                      1030655834964623400,
                      1030655834964623400
                    ],
                    "start_time": "2025-09-28T00:00:00-04:00",
                    "end_time": "2025-09-28T15:00:00-04:00",
                    "interval": "1h"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "points": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "t": {
                            "type": "string",
                            "format": "date-time",
                            "description": "Timestamp of the timeseries point.",
                            "example": "2025-09-29T10:00:00-04:00"
                          },
                          "total": {
                            "type": "integer",
                            "description": "Total number of calls received by the agent within the time range.  \nCalls with the same session ID counted only once.\n",
                            "example": 1000
                          },
                          "answered": {
                            "type": "integer",
                            "description": "Number of answered calls.",
                            "example": 62
                          },
                          "not_answered": {
                            "type": "integer",
                            "description": "Number of not answered calls.",
                            "example": 56
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "value": {
                      "points": [
                        {
                          "t": "2025-09-29T12:00:00-04:00",
                          "total": 118,
                          "answered": 62,
                          "not_answered": 56
                        },
                        {
                          "t": "2025-09-29T13:00:00-04:00",
                          "total": 118,
                          "answered": 62,
                          "not_answered": 56
                        },
                        {
                          "t": "2025-09-29T14:00:00-04:00",
                          "total": 118,
                          "answered": 62,
                          "not_answered": 56
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error response"
          }
        }
      }
    },
    "/dataflow/analytics/calls/history": {
      "post": {
        "tags": [
          "Dataflow"
        ],
        "operationId": "getCallsHistory",
        "x-category": "dataflow",
        "x-subcategory": "analytics",
        "x-permissions": [
          "Analytics.ViewOnly"
        ],
        "summary": "Get call history analytics",
        "description": "Retrieve detailed call history analytics within a specified time range.\n- Supports up to **365 days** range.\n- Allows filtering by caller (`from`), callee (`to`), duration, status, and session ID.\n- Supports pagination via `top` and `skip`.\n- Time fields (`start_time`, `end_time`, `start_hour_of_day`, `end_hour_of_day`) must include timezone information (e.g., `+08:00`).\n- The `status` field is an enumeration with possible values: `NONE`, `ANSWERED`, `NOT_ANSWERED`.\n",
        "parameters": [
          {
            "name": "count",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            },
            "description": "Use the $count=true query option to include a count of entities that match the filter criteria.\n"
          },
          {
            "name": "skip",
            "in": "query",
            "required": false,
            "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",
            "required": false,
            "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"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "from": {
                    "type": "string",
                    "description": "Caller number.",
                    "example": "100"
                  },
                  "to": {
                    "type": "string",
                    "description": "Callee number.",
                    "example": "110"
                  },
                  "start_duration": {
                    "type": "integer",
                    "description": "Call duration from start time in seconds.",
                    "example": 100
                  },
                  "end_duration": {
                    "type": "integer",
                    "description": "Call duration until end time in seconds.",
                    "example": 200
                  },
                  "start_hour_of_day": {
                    "type": "integer",
                    "description": "Specify the start hour of the call time range (0–23).",
                    "example": 0
                  },
                  "end_hour_of_day": {
                    "type": "integer",
                    "description": "Specify the end hour of the call time range (1–24).",
                    "example": 24
                  },
                  "status": {
                    "type": "string",
                    "description": "Call status.\n",
                    "enum": [
                      "NONE",
                      "ANSWERED",
                      "UNANSWERED"
                    ]
                  },
                  "start_time": {
                    "type": "string",
                    "format": "date-time",
                    "description": "The start time of the report period.  \nMust include timezone in RFC3339 format (e.g. 2025-09-28T00:00:00-04:00).\n",
                    "example": "2025-09-28T00:00:00-04:00"
                  },
                  "end_time": {
                    "type": "string",
                    "format": "date-time",
                    "description": "The end time of the report period.  \nMust include timezone in RFC3339 format (e.g. 2025-09-28T15:00:00-04:00).\n",
                    "example": "2025-09-28T15:00:00-04:00"
                  },
                  "session_id": {
                    "type": "string",
                    "description": "Unique session ID for the call.",
                    "example": "1040099039162400768"
                  }
                },
                "required": [
                  "start_time",
                  "end_time"
                ]
              },
              "examples": {
                "default": {
                  "summary": "Example request for call history analytics",
                  "value": {
                    "from": "101",
                    "to": "100",
                    "start_duration": 10,
                    "end_duration": 60,
                    "start_hour_of_day": 0,
                    "end_hour_of_day": 24,
                    "status": "ANSWERED",
                    "start_time": "2025-09-29T00:00:00-04:00",
                    "end_time": "2025-10-05T23:59:59-04:00",
                    "session_id": "1040099039162400768"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "count": {
                      "type": "integer",
                      "description": "Total number of records"
                    },
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "session_id": {
                            "type": "string",
                            "description": "Unique session ID for the call.",
                            "example": "1040099039162400768"
                          },
                          "caller": {
                            "type": "string",
                            "description": "Caller number.",
                            "example": "101"
                          },
                          "caller_display_name": {
                            "type": "string",
                            "description": "Display name of the caller.",
                            "example": "John Doe"
                          },
                          "caller_endpoint": {
                            "type": "string",
                            "description": "Caller endpoint type."
                          },
                          "call_id": {
                            "type": "string",
                            "description": "Unique call ID.",
                            "example": "1040099039162400769"
                          },
                          "service_number": {
                            "type": "string",
                            "description": "Service number involved in the call.",
                            "example": "10001"
                          },
                          "service_name": {
                            "type": "string",
                            "description": "Service name.",
                            "example": "Support Line"
                          },
                          "service_type": {
                            "type": "string",
                            "description": "Type of service.",
                            "example": "Support"
                          },
                          "callee": {
                            "type": "string",
                            "description": "Callee number.",
                            "example": "102"
                          },
                          "callee_display_name": {
                            "type": "string",
                            "description": "Callee display name."
                          },
                          "callee_endpoint": {
                            "type": "string",
                            "description": "Callee endpoint type."
                          },
                          "started_at": {
                            "type": "integer",
                            "format": "int64",
                            "description": "Call start time in Unix timestamp (seconds)."
                          },
                          "rang_at": {
                            "type": "integer",
                            "format": "int64",
                            "description": "Ring start time of the call in Unix timestamp (seconds)."
                          },
                          "answered_at": {
                            "type": "integer",
                            "format": "int64",
                            "description": "Answer time of the call in Unix timestamp (seconds)."
                          },
                          "ended_at": {
                            "type": "integer",
                            "format": "int64",
                            "description": "Call end time in Unix timestamp (seconds)."
                          },
                          "direction": {
                            "type": "string",
                            "description": "Call direction type, indicating the routing path of the call.",
                            "enum": [
                              "NONE",
                              "CALLER",
                              "CALLEE"
                            ]
                          },
                          "end_reason": {
                            "type": "string",
                            "description": "Call end reason."
                          },
                          "reroute_reason": {
                            "type": "string",
                            "description": "Reason why the call was rerouted."
                          },
                          "status_code": {
                            "type": "integer",
                            "format": "int32",
                            "description": "SIP status code of the call, corresponding to the standard SIP response codes."
                          },
                          "destination": {
                            "type": "string",
                            "description": "Actual address of the callee, e.g., \"sip:102@192.168.1.100:9002\"."
                          },
                          "outbound_caller_id": {
                            "type": "string",
                            "description": "Outbound caller ID set when initiating an outbound call."
                          },
                          "did": {
                            "type": "string",
                            "description": "DID saved when an inbound rule matches successfully."
                          },
                          "call_type": {
                            "type": "string",
                            "description": "Type of call."
                          },
                          "callback_id": {
                            "type": "integer",
                            "format": "int64",
                            "description": "Optional field. Multiple CDRs with the same callback_id belong to the same callback process."
                          },
                          "billing_prefix": {
                            "type": "string",
                            "description": "Billing prefix used for cost calculation."
                          },
                          "cost": {
                            "type": "number",
                            "format": "float",
                            "description": "Cost incurred by the call."
                          },
                          "user_data": {
                            "type": "string",
                            "description": "Custom data provided when initiating the call via REST API or client."
                          },
                          "inbound_trunk": {
                            "type": "string",
                            "description": "Name of the trunk used for inbound calls."
                          },
                          "outbound_trunk": {
                            "type": "string",
                            "description": "Name of the trunk used for outbound calls."
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "Example response for call history analytics",
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "session_id": "123412312313132",
                          "caller": "101",
                          "caller_display_name": "101",
                          "caller_endpoint": "",
                          "call_id": "",
                          "service_number": "",
                          "service_name": "",
                          "service_type": "",
                          "callee": "102",
                          "callee_display_name": "102",
                          "callee_endpoint": "",
                          "started_at": "",
                          "rang_at": "",
                          "answered_at": "",
                          "ended_at": "",
                          "direction": "",
                          "end_reason": "",
                          "reroute_reason": "",
                          "status_code": 480,
                          "destination": "",
                          "outbound_caller_id": "",
                          "did": "",
                          "call_type": "",
                          "callback_id": "",
                          "billing_prefix": "",
                          "cost": 0,
                          "user_data": "",
                          "inbound_trunk": "",
                          "outbound_trunk": ""
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error response"
          }
        }
      }
    },
    "/dataflow/analytics/calls/user/history": {
      "post": {
        "tags": [
          "Dataflow"
        ],
        "operationId": "getCallsUserHistory",
        "x-category": "dataflow",
        "x-subcategory": "analytics",
        "x-permissions": [
          "Analytics.ViewOnly"
        ],
        "summary": "Get call User history analytics",
        "description": "Retrieve detailed call user history analytics within a specified time range.\n- Supports up to **365 days** range.\n- Allows filtering by caller (`from`), callee (`to`), duration, status, and session ID.\n- Supports pagination via `top` and `skip`.\n- Time fields (`start_time`, `end_time`, `start_hour_of_day`, `end_hour_of_day`) must include timezone information (e.g., `+08:00`).\n- The `status` field is an enumeration with possible values: `NONE`, `ANSWERED`, `NOT_ANSWERED`.\n",
        "parameters": [
          {
            "name": "count",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            },
            "description": "Use the $count=true query option to include a count of entities that match the filter criteria.\n"
          },
          {
            "name": "skip",
            "in": "query",
            "required": false,
            "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",
            "required": false,
            "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"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "start_duration": {
                    "type": "integer",
                    "description": "Call duration from start time in seconds.",
                    "example": 100
                  },
                  "end_duration": {
                    "type": "integer",
                    "description": "Call duration until end time in seconds.",
                    "example": 200
                  },
                  "start_hour_of_day": {
                    "type": "integer",
                    "description": "Specify the start hour of the call time range (0–23).",
                    "example": 0
                  },
                  "end_hour_of_day": {
                    "type": "integer",
                    "description": "Specify the end hour of the call time range (1–24).",
                    "example": 24
                  },
                  "status": {
                    "type": "string",
                    "description": "Call status.\n",
                    "enum": [
                      "NONE",
                      "ANSWERED",
                      "UNANSWERED"
                    ]
                  },
                  "start_time": {
                    "type": "string",
                    "format": "date-time",
                    "description": "The start time of the report period.  \nMust include timezone in RFC3339 format (e.g. 2025-09-28T00:00:00-04:00).\n",
                    "example": "2025-09-28T00:00:00-04:00"
                  },
                  "end_time": {
                    "type": "string",
                    "format": "date-time",
                    "description": "The end time of the report period.  \nMust include timezone in RFC3339 format (e.g. 2025-09-28T15:00:00-04:00).\n",
                    "example": "2025-09-28T15:00:00-04:00"
                  },
                  "user": {
                    "type": "string",
                    "description": "User number.",
                    "example": "101"
                  },
                  "direction": {
                    "type": "string",
                    "description": "Call direction type, indicating the routing path of the call.",
                    "enum": [
                      "NONE",
                      "CALLER",
                      "CALLEE"
                    ]
                  },
                  "destination": {
                    "type": "string",
                    "description": "Actual address of the callee, e.g., \"sip:102@192.168.1.100:9002\"."
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": "Example request for call history analytics",
                  "value": {
                    "from": "101",
                    "to": "100",
                    "start_duration": 10,
                    "end_duration": 300,
                    "start_hour_of_day": 0,
                    "end_hour_of_day": 24,
                    "status": "ANSWERED",
                    "start_time": "2025-09-29T00:00:00-04:00",
                    "end_time": "2025-10-05T23:59:59-04:00",
                    "session_id": "1040099039162400768"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "count": {
                      "type": "integer",
                      "description": "Total number of records"
                    },
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "session_id": {
                            "type": "string",
                            "description": "Unique session ID for the call.",
                            "example": "1040099039162400768"
                          },
                          "caller": {
                            "type": "string",
                            "description": "Caller number.",
                            "example": "101"
                          },
                          "caller_display_name": {
                            "type": "string",
                            "description": "Display name of the caller.",
                            "example": "John Doe"
                          },
                          "caller_endpoint": {
                            "type": "string",
                            "description": "Caller endpoint type."
                          },
                          "call_id": {
                            "type": "string",
                            "description": "Unique call ID.",
                            "example": "1040099039162400769"
                          },
                          "service_number": {
                            "type": "string",
                            "description": "Service number involved in the call.",
                            "example": "10001"
                          },
                          "service_name": {
                            "type": "string",
                            "description": "Service name.",
                            "example": "Support Line"
                          },
                          "service_type": {
                            "type": "string",
                            "description": "Type of service.",
                            "example": "Support"
                          },
                          "callee": {
                            "type": "string",
                            "description": "Callee number.",
                            "example": "102"
                          },
                          "callee_display_name": {
                            "type": "string",
                            "description": "Callee display name."
                          },
                          "callee_endpoint": {
                            "type": "string",
                            "description": "Callee endpoint type."
                          },
                          "started_at": {
                            "type": "integer",
                            "format": "int64",
                            "description": "Call start time in Unix timestamp (seconds)."
                          },
                          "rang_at": {
                            "type": "integer",
                            "format": "int64",
                            "description": "Ring start time of the call in Unix timestamp (seconds)."
                          },
                          "answered_at": {
                            "type": "integer",
                            "format": "int64",
                            "description": "Answer time of the call in Unix timestamp (seconds)."
                          },
                          "ended_at": {
                            "type": "integer",
                            "format": "int64",
                            "description": "Call end time in Unix timestamp (seconds)."
                          },
                          "direction": {
                            "type": "string",
                            "description": "Call direction type, indicating the routing path of the call.",
                            "enum": [
                              "NONE",
                              "CALLER",
                              "CALLEE"
                            ]
                          },
                          "end_reason": {
                            "type": "string",
                            "description": "Call end reason."
                          },
                          "reroute_reason": {
                            "type": "string",
                            "description": "Reason why the call was rerouted."
                          },
                          "status_code": {
                            "type": "integer",
                            "format": "int32",
                            "description": "SIP status code of the call, corresponding to the standard SIP response codes."
                          },
                          "destination": {
                            "type": "string",
                            "description": "Actual address of the callee, e.g., \"sip:102@192.168.1.100:9002\"."
                          },
                          "outbound_caller_id": {
                            "type": "string",
                            "description": "Outbound caller ID set when initiating an outbound call."
                          },
                          "did": {
                            "type": "string",
                            "description": "DID saved when an inbound rule matches successfully."
                          },
                          "call_type": {
                            "type": "string",
                            "description": "Type of call."
                          },
                          "callback_id": {
                            "type": "integer",
                            "format": "int64",
                            "description": "Optional field. Multiple CDRs with the same callback_id belong to the same callback process."
                          },
                          "billing_prefix": {
                            "type": "string",
                            "description": "Billing prefix used for cost calculation."
                          },
                          "cost": {
                            "type": "number",
                            "format": "float",
                            "description": "Cost incurred by the call."
                          },
                          "user_data": {
                            "type": "string",
                            "description": "Custom data provided when initiating the call via REST API or client."
                          },
                          "inbound_trunk": {
                            "type": "string",
                            "description": "Name of the trunk used for inbound calls."
                          },
                          "outbound_trunk": {
                            "type": "string",
                            "description": "Name of the trunk used for outbound calls."
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "Example response for call history analytics",
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "session_id": "123412312313132",
                          "caller": "101",
                          "caller_display_name": "101",
                          "caller_endpoint": "",
                          "call_id": "",
                          "service_number": "",
                          "service_name": "",
                          "service_type": "",
                          "callee": "102",
                          "callee_display_name": "102",
                          "callee_endpoint": "",
                          "started_at": "",
                          "rang_at": "",
                          "answered_at": "",
                          "ended_at": "",
                          "direction": "",
                          "end_reason": "",
                          "reroute_reason": "",
                          "status_code": 480,
                          "destination": "",
                          "outbound_caller_id": "",
                          "did": "",
                          "call_type": "",
                          "callback_id": "",
                          "billing_prefix": "",
                          "cost": 0,
                          "user_data": "",
                          "inbound_trunk": "",
                          "outbound_trunk": ""
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error response"
          }
        }
      }
    },
    "/dataflow/analytics/calls/history/{session_id}": {
      "post": {
        "tags": [
          "Dataflow"
        ],
        "operationId": "getCallsHistoryBySessionId",
        "x-category": "dataflow",
        "x-subcategory": "analytics",
        "x-permissions": [
          "Analytics.ViewOnly"
        ],
        "summary": "Retrieve Call History Details",
        "description": "Retrieve detailed call history for the specified `session_id`.\n",
        "parameters": [
          {
            "name": "session_id",
            "in": "path",
            "required": true,
            "description": "The session ID of the call to retrieve",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "description": "Optional filters or additional request parameters"
              },
              "examples": {
                "default": {
                  "summary": "Example request"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "session_id": {
                            "type": "string",
                            "description": "Unique session ID for the call.",
                            "example": "1040099039162400768"
                          },
                          "caller": {
                            "type": "string",
                            "description": "Caller number.",
                            "example": "101"
                          },
                          "caller_display_name": {
                            "type": "string",
                            "description": "Display name of the caller.",
                            "example": "John Doe"
                          },
                          "caller_endpoint": {
                            "type": "string",
                            "description": "Caller endpoint type."
                          },
                          "call_id": {
                            "type": "string",
                            "description": "Unique call ID.",
                            "example": "1040099039162400769"
                          },
                          "service_number": {
                            "type": "string",
                            "description": "Service number involved in the call.",
                            "example": "10001"
                          },
                          "service_name": {
                            "type": "string",
                            "description": "Service name.",
                            "example": "Support Line"
                          },
                          "service_type": {
                            "type": "string",
                            "description": "Type of service.",
                            "example": "Support"
                          },
                          "callee": {
                            "type": "string",
                            "description": "Callee number.",
                            "example": "102"
                          },
                          "callee_display_name": {
                            "type": "string",
                            "description": "Callee display name."
                          },
                          "callee_endpoint": {
                            "type": "string",
                            "description": "Callee endpoint type."
                          },
                          "started_at": {
                            "type": "integer",
                            "format": "int64",
                            "description": "Call start time in Unix timestamp (seconds)."
                          },
                          "rang_at": {
                            "type": "integer",
                            "format": "int64",
                            "description": "Ring start time of the call in Unix timestamp (seconds)."
                          },
                          "answered_at": {
                            "type": "integer",
                            "format": "int64",
                            "description": "Answer time of the call in Unix timestamp (seconds)."
                          },
                          "ended_at": {
                            "type": "integer",
                            "format": "int64",
                            "description": "Call end time in Unix timestamp (seconds)."
                          },
                          "direction": {
                            "type": "string",
                            "description": "Call direction type, indicating the routing path of the call.",
                            "enum": [
                              "NONE",
                              "CALLER",
                              "CALLEE"
                            ]
                          },
                          "end_reason": {
                            "type": "string",
                            "description": "Call end reason."
                          },
                          "reroute_reason": {
                            "type": "string",
                            "description": "Reason why the call was rerouted."
                          },
                          "status_code": {
                            "type": "integer",
                            "format": "int32",
                            "description": "SIP status code of the call, corresponding to the standard SIP response codes."
                          },
                          "destination": {
                            "type": "string",
                            "description": "Actual address of the callee, e.g., \"sip:102@192.168.1.100:9002\"."
                          },
                          "outbound_caller_id": {
                            "type": "string",
                            "description": "Outbound caller ID set when initiating an outbound call."
                          },
                          "did": {
                            "type": "string",
                            "description": "DID saved when an inbound rule matches successfully."
                          },
                          "call_type": {
                            "type": "string",
                            "description": "Type of call."
                          },
                          "callback_id": {
                            "type": "integer",
                            "format": "int64",
                            "description": "Optional field. Multiple CDRs with the same callback_id belong to the same callback process."
                          },
                          "billing_prefix": {
                            "type": "string",
                            "description": "Billing prefix used for cost calculation."
                          },
                          "cost": {
                            "type": "number",
                            "format": "float",
                            "description": "Cost incurred by the call."
                          },
                          "user_data": {
                            "type": "string",
                            "description": "Custom data provided when initiating the call via REST API or client."
                          },
                          "inbound_trunk": {
                            "type": "string",
                            "description": "Name of the trunk used for inbound calls."
                          },
                          "outbound_trunk": {
                            "type": "string",
                            "description": "Name of the trunk used for outbound calls."
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "Example response for call history analytics",
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "session_id": "123412312313132",
                          "caller": "101",
                          "caller_display_name": "101",
                          "caller_endpoint": "",
                          "call_id": "",
                          "service_number": "",
                          "service_name": "",
                          "service_type": "",
                          "callee": "102",
                          "callee_display_name": "102",
                          "callee_endpoint": "",
                          "started_at": "",
                          "rang_at": "",
                          "answered_at": "",
                          "ended_at": "",
                          "direction": "",
                          "end_reason": "",
                          "reroute_reason": "",
                          "status_code": 480,
                          "destination": "",
                          "outbound_caller_id": "",
                          "did": "",
                          "call_type": "",
                          "callback_id": "",
                          "billing_prefix": "",
                          "cost": 0,
                          "user_data": "",
                          "inbound_trunk": "",
                          "outbound_trunk": ""
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error response"
          }
        }
      }
    },
    "/dataflow/analytics/calls/user/history/{session_id}": {
      "post": {
        "tags": [
          "Dataflow"
        ],
        "operationId": "getUserCallHistoryBySessionId",
        "x-category": "dataflow",
        "x-subcategory": "analytics",
        "x-permissions": [
          "Analytics.ViewOnly"
        ],
        "summary": "Retrieve Call History Details by Session ID",
        "description": "Query detailed call history for a specific `session_id`.\n",
        "parameters": [
          {
            "name": "session_id",
            "in": "path",
            "required": true,
            "description": "The session ID of the call to retrieve.",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "description": "Optional filters or additional request parameters"
              },
              "examples": {
                "default": {
                  "summary": "Example request"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "session_id": {
                            "type": "string",
                            "description": "Unique session ID for the call.",
                            "example": "1040099039162400768"
                          },
                          "caller": {
                            "type": "string",
                            "description": "Caller number.",
                            "example": "101"
                          },
                          "caller_display_name": {
                            "type": "string",
                            "description": "Display name of the caller.",
                            "example": "John Doe"
                          },
                          "caller_endpoint": {
                            "type": "string",
                            "description": "Caller endpoint type."
                          },
                          "call_id": {
                            "type": "string",
                            "description": "Unique call ID.",
                            "example": "1040099039162400769"
                          },
                          "service_number": {
                            "type": "string",
                            "description": "Service number involved in the call.",
                            "example": "10001"
                          },
                          "service_name": {
                            "type": "string",
                            "description": "Service name.",
                            "example": "Support Line"
                          },
                          "service_type": {
                            "type": "string",
                            "description": "Type of service.",
                            "example": "Support"
                          },
                          "callee": {
                            "type": "string",
                            "description": "Callee number.",
                            "example": "102"
                          },
                          "callee_display_name": {
                            "type": "string",
                            "description": "Callee display name."
                          },
                          "callee_endpoint": {
                            "type": "string",
                            "description": "Callee endpoint type."
                          },
                          "started_at": {
                            "type": "integer",
                            "format": "int64",
                            "description": "Call start time in Unix timestamp (seconds)."
                          },
                          "rang_at": {
                            "type": "integer",
                            "format": "int64",
                            "description": "Ring start time of the call in Unix timestamp (seconds)."
                          },
                          "answered_at": {
                            "type": "integer",
                            "format": "int64",
                            "description": "Answer time of the call in Unix timestamp (seconds)."
                          },
                          "ended_at": {
                            "type": "integer",
                            "format": "int64",
                            "description": "Call end time in Unix timestamp (seconds)."
                          },
                          "direction": {
                            "type": "string",
                            "description": "Call direction type, indicating the routing path of the call.",
                            "enum": [
                              "NONE",
                              "CALLER",
                              "CALLEE"
                            ]
                          },
                          "end_reason": {
                            "type": "string",
                            "description": "Call end reason."
                          },
                          "reroute_reason": {
                            "type": "string",
                            "description": "Reason why the call was rerouted."
                          },
                          "status_code": {
                            "type": "integer",
                            "format": "int32",
                            "description": "SIP status code of the call, corresponding to the standard SIP response codes."
                          },
                          "destination": {
                            "type": "string",
                            "description": "Actual address of the callee, e.g., \"sip:102@192.168.1.100:9002\"."
                          },
                          "outbound_caller_id": {
                            "type": "string",
                            "description": "Outbound caller ID set when initiating an outbound call."
                          },
                          "did": {
                            "type": "string",
                            "description": "DID saved when an inbound rule matches successfully."
                          },
                          "call_type": {
                            "type": "string",
                            "description": "Type of call."
                          },
                          "callback_id": {
                            "type": "integer",
                            "format": "int64",
                            "description": "Optional field. Multiple CDRs with the same callback_id belong to the same callback process."
                          },
                          "billing_prefix": {
                            "type": "string",
                            "description": "Billing prefix used for cost calculation."
                          },
                          "cost": {
                            "type": "number",
                            "format": "float",
                            "description": "Cost incurred by the call."
                          },
                          "user_data": {
                            "type": "string",
                            "description": "Custom data provided when initiating the call via REST API or client."
                          },
                          "inbound_trunk": {
                            "type": "string",
                            "description": "Name of the trunk used for inbound calls."
                          },
                          "outbound_trunk": {
                            "type": "string",
                            "description": "Name of the trunk used for outbound calls."
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "Example user call history response",
                    "value": {
                      "historys": [
                        {
                          "session_id": "123412312313132",
                          "caller": "101",
                          "caller_display_name": "101",
                          "caller_endpoint": "",
                          "call_id": "",
                          "service_number": "",
                          "service_name": "",
                          "service_type": "",
                          "callee": "102",
                          "callee_display_name": "102",
                          "callee_endpoint": "",
                          "started_at": "",
                          "rang_at": "",
                          "answered_at": "",
                          "ended_at": "",
                          "direction": "",
                          "end_reason": "",
                          "reroute_reason": "",
                          "status_code": 480,
                          "destination": "",
                          "outbound_caller_id": "",
                          "did": "",
                          "call_type": "",
                          "callback_id": "",
                          "billing_prefix": "",
                          "cost": 0,
                          "user_data": "",
                          "inbound_trunk": "",
                          "outbound_trunk": ""
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/dataflow/report_jobs": {
      "get": {
        "tags": [
          "Dataflow"
        ],
        "operationId": "getReportList",
        "x-category": "dataflow",
        "x-subcategory": "report",
        "x-permissions": [
          "Analytics.ViewOnly"
        ],
        "summary": "Get Report Job List",
        "description": "Retrieve the list of scheduled report job.\n",
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Use the `filter` query parameter to retrieve just a subset of a collection.\n"
          },
          {
            "name": "count",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            },
            "description": "Use the $count=true query option to include a count of entities that match the filter criteria.\n"
          },
          {
            "name": "orderby",
            "in": "query",
            "required": false,
            "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",
            "required": false,
            "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",
            "required": false,
            "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,
                      "example": 100,
                      "description": "Total number of resource.\n"
                    },
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string",
                            "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                            "description": "The unique ID of the resource.\n"
                          },
                          "type": {
                            "type": "string",
                            "description": "Report type, string enum.",
                            "enum": [
                              "USERSTATISTICS",
                              "DAILYSTATISTICS",
                              "CALLLOGS",
                              "AGENTDETAILSACTIVITY",
                              "AGENTSUMMARYACTIVITY",
                              "AGENTNOTREADYCODE",
                              "QUEUESUMMARY",
                              "AGENTQUEUEREPORT",
                              "SPEEDOFACCEPT",
                              "ABANDONDELAY",
                              "CALLBACKSUMMARY",
                              "RINGGROUPPERFORMANCE"
                            ]
                          },
                          "format": {
                            "type": "string",
                            "description": "Report file format:CSV、HTML",
                            "enum": [
                              "CSV",
                              "HTML"
                            ],
                            "example": "CSV"
                          },
                          "schedule_name": {
                            "type": "string",
                            "description": "Report Job name"
                          },
                          "create_time": {
                            "type": "string",
                            "format": "date-time",
                            "description": "The timestamp when the report log entry was created.",
                            "example": "2025-11-13T11:19:02.738568+08:00"
                          },
                          "start_time": {
                            "type": "string",
                            "description": "Start time; task will not run before this time",
                            "example": "2025-09-30T10:00:00-04:00"
                          },
                          "end_time": {
                            "type": "string",
                            "description": "End time",
                            "example": "2025-09-30T12:00:00-04:00"
                          },
                          "cron_expr": {
                            "type": "string",
                            "description": "gocron string, e.g.:\nEvery day at 00:01 = 1 0 * * *\nEvery month on 1st at 02:03 = 3 2 1 * *\nEvery Tuesday at 01:02 = 2 1 * * 2"
                          },
                          "active": {
                            "type": "boolean",
                            "description": "Whether the task is active",
                            "example": true
                          },
                          "time_zone": {
                            "type": "string",
                            "description": "Time zone, e.g., Asia/Shanghai"
                          },
                          "recipients": {
                            "type": "string",
                            "description": "Recipient emails; multiple emails separated by semicolon",
                            "example": "user1@gmail.com;user2@gmail.com"
                          },
                          "last_run_time": {
                            "type": "string",
                            "format": "date-time",
                            "description": "The timestamp of the most recent execution of the report job.",
                            "example": "2025-11-13T11:19:02.738568+08:00"
                          },
                          "params": {
                            "oneOf": [
                              {
                                "title": "USERSTATISTICS",
                                "type": "object",
                                "required": [
                                  "extension_number",
                                  "status",
                                  "direction",
                                  "from",
                                  "to",
                                  "time_range"
                                ],
                                "properties": {
                                  "extension_number": {
                                    "type": "string",
                                    "description": "Extension number",
                                    "example": "101"
                                  },
                                  "status": {
                                    "type": "string",
                                    "description": "Call status.\n",
                                    "enum": [
                                      "NONE",
                                      "ANSWERED",
                                      "UNANSWERED"
                                    ]
                                  },
                                  "direction": {
                                    "type": "string",
                                    "description": "Call direction type, indicating the routing path of the call.",
                                    "enum": [
                                      "NONE",
                                      "INBOUND",
                                      "OUTBOUND",
                                      "INTERNAL"
                                    ]
                                  },
                                  "from": {
                                    "type": "string",
                                    "description": "Start time.",
                                    "example": "2025-01-01T00:00:00Z"
                                  },
                                  "to": {
                                    "type": "string",
                                    "description": "End time.",
                                    "example": "2025-01-31T23:59:59Z"
                                  },
                                  "time_range": {
                                    "type": "string",
                                    "description": "Time range preset.",
                                    "enum": [
                                      "TODAY",
                                      "YESTERDAY",
                                      "LAST_WEEK",
                                      "LAST_SEVEN_DAYS",
                                      "LAST_MONTH",
                                      "LAST_28_DAYS",
                                      "CUSTOM"
                                    ]
                                  }
                                }
                              },
                              {
                                "title": "DAILYSTATISTICS",
                                "type": "object",
                                "required": [
                                  "status",
                                  "direction",
                                  "from",
                                  "to",
                                  "time_range"
                                ],
                                "properties": {
                                  "status": {
                                    "type": "string",
                                    "description": "Call status.\n",
                                    "enum": [
                                      "NONE",
                                      "ANSWERED",
                                      "UNANSWERED"
                                    ]
                                  },
                                  "direction": {
                                    "type": "string",
                                    "description": "Call direction type, indicating the routing path of the call.",
                                    "enum": [
                                      "NONE",
                                      "INBOUND",
                                      "OUTBOUND",
                                      "INTERNAL"
                                    ]
                                  },
                                  "from": {
                                    "type": "string",
                                    "description": "Start time.",
                                    "example": "2025-01-01T00:00:00Z"
                                  },
                                  "to": {
                                    "type": "string",
                                    "description": "End time.",
                                    "example": "2025-01-31T23:59:59Z"
                                  },
                                  "time_range": {
                                    "type": "string",
                                    "description": "Time range preset.",
                                    "enum": [
                                      "TODAY",
                                      "YESTERDAY",
                                      "LAST_WEEK",
                                      "LAST_SEVEN_DAYS",
                                      "LAST_MONTH",
                                      "LAST_28_DAYS",
                                      "CUSTOM"
                                    ]
                                  }
                                }
                              },
                              {
                                "title": "CALLLOGS",
                                "type": "object",
                                "required": [
                                  "status",
                                  "direction",
                                  "from",
                                  "to",
                                  "time_range"
                                ],
                                "properties": {
                                  "status": {
                                    "type": "string",
                                    "description": "Call status.\n",
                                    "enum": [
                                      "NONE",
                                      "ANSWERED",
                                      "UNANSWERED"
                                    ]
                                  },
                                  "direction": {
                                    "type": "string",
                                    "description": "Call direction type, indicating the routing path of the call.",
                                    "enum": [
                                      "NONE",
                                      "INBOUND",
                                      "OUTBOUND",
                                      "INTERNAL"
                                    ]
                                  },
                                  "from": {
                                    "type": "string",
                                    "description": "Start time.",
                                    "example": "2025-01-01T00:00:00Z"
                                  },
                                  "to": {
                                    "type": "string",
                                    "description": "End time.",
                                    "example": "2025-01-31T23:59:59Z"
                                  },
                                  "time_range": {
                                    "type": "string",
                                    "description": "Time range preset.",
                                    "enum": [
                                      "TODAY",
                                      "YESTERDAY",
                                      "LAST_WEEK",
                                      "LAST_SEVEN_DAYS",
                                      "LAST_MONTH",
                                      "LAST_28_DAYS",
                                      "CUSTOM"
                                    ]
                                  }
                                }
                              },
                              {
                                "title": "AGENTDETAILSACTIVITY",
                                "type": "object",
                                "required": [
                                  "agent",
                                  "queue",
                                  "channel_type",
                                  "from",
                                  "to",
                                  "time_range"
                                ],
                                "properties": {
                                  "agent": {
                                    "type": "string",
                                    "description": "Agent number.",
                                    "example": "101"
                                  },
                                  "queue": {
                                    "type": "string",
                                    "description": "Queue number.",
                                    "example": "8000"
                                  },
                                  "channel_type": {
                                    "type": "string",
                                    "description": "Channel type for filtering report data."
                                  },
                                  "from": {
                                    "type": "string",
                                    "description": "Start time.",
                                    "example": "2025-01-01T00:00:00Z"
                                  },
                                  "to": {
                                    "type": "string",
                                    "description": "End time.",
                                    "example": "2025-01-31T23:59:59Z"
                                  },
                                  "time_range": {
                                    "type": "string",
                                    "description": "Time range preset.",
                                    "enum": [
                                      "TODAY",
                                      "YESTERDAY",
                                      "LAST_WEEK",
                                      "LAST_SEVEN_DAYS",
                                      "LAST_MONTH",
                                      "LAST_28_DAYS",
                                      "CUSTOM"
                                    ]
                                  }
                                }
                              },
                              {
                                "title": "AGENTSUMMARYACTIVITY",
                                "type": "object",
                                "required": [
                                  "queue",
                                  "agent"
                                ],
                                "properties": {
                                  "queue": {
                                    "type": "string",
                                    "description": "Queue number.",
                                    "example": "8000"
                                  },
                                  "agent": {
                                    "type": "array",
                                    "description": "List of agent identifiers.",
                                    "items": {
                                      "type": "string",
                                      "description": "Agent number.",
                                      "example": "101"
                                    }
                                  },
                                  "from": {
                                    "type": "string",
                                    "description": "Start time.",
                                    "example": "2025-01-01T00:00:00Z"
                                  },
                                  "to": {
                                    "type": "string",
                                    "description": "End time.",
                                    "example": "2025-01-31T23:59:59Z"
                                  },
                                  "time_range": {
                                    "type": "string",
                                    "description": "Time range preset.",
                                    "enum": [
                                      "TODAY",
                                      "YESTERDAY",
                                      "LAST_WEEK",
                                      "LAST_SEVEN_DAYS",
                                      "LAST_MONTH",
                                      "LAST_28_DAYS",
                                      "CUSTOM"
                                    ]
                                  }
                                }
                              },
                              {
                                "title": "AGENTNOTREADYCODE",
                                "type": "object",
                                "required": [
                                  "queue",
                                  "agent"
                                ],
                                "properties": {
                                  "queue": {
                                    "type": "string",
                                    "description": "Queue number.",
                                    "example": "8000"
                                  },
                                  "agent": {
                                    "type": "array",
                                    "description": "List of agent identifiers.",
                                    "items": {
                                      "type": "string",
                                      "description": "Agent number.",
                                      "example": "101"
                                    }
                                  },
                                  "reason_code": {
                                    "type": "string",
                                    "description": "Reason code for agent not ready status."
                                  },
                                  "from": {
                                    "type": "string",
                                    "description": "Start time.",
                                    "example": "2025-01-01T00:00:00Z"
                                  },
                                  "to": {
                                    "type": "string",
                                    "description": "End time.",
                                    "example": "2025-01-31T23:59:59Z"
                                  },
                                  "time_range": {
                                    "type": "string",
                                    "description": "Time range preset.",
                                    "enum": [
                                      "TODAY",
                                      "YESTERDAY",
                                      "LAST_WEEK",
                                      "LAST_SEVEN_DAYS",
                                      "LAST_MONTH",
                                      "LAST_28_DAYS",
                                      "CUSTOM"
                                    ]
                                  }
                                }
                              },
                              {
                                "title": "QUEUESUMMARY",
                                "type": "object",
                                "required": [
                                  "queue",
                                  "from",
                                  "to",
                                  "time_range"
                                ],
                                "properties": {
                                  "queue": {
                                    "type": "object",
                                    "additionalProperties": {
                                      "type": "integer",
                                      "description": "SLA time for the user (e.g., in seconds)"
                                    },
                                    "description": "Key-value map where:\n  - **key** is the user number (string),\n  - **value** is the SLA time for that user.\n"
                                  },
                                  "from": {
                                    "type": "string",
                                    "description": "Start time.",
                                    "example": "2025-01-01T00:00:00Z"
                                  },
                                  "to": {
                                    "type": "string",
                                    "description": "End time.",
                                    "example": "2025-01-31T23:59:59Z"
                                  },
                                  "time_range": {
                                    "type": "string",
                                    "description": "Time range preset.",
                                    "enum": [
                                      "TODAY",
                                      "YESTERDAY",
                                      "LAST_WEEK",
                                      "LAST_SEVEN_DAYS",
                                      "LAST_MONTH",
                                      "LAST_28_DAYS",
                                      "CUSTOM"
                                    ]
                                  }
                                }
                              },
                              {
                                "title": "AGENTQUEUEREPORT",
                                "type": "object",
                                "required": [
                                  "queue",
                                  "from",
                                  "to",
                                  "time_range"
                                ],
                                "properties": {
                                  "queue": {
                                    "type": "array",
                                    "description": "List of agent identifiers.",
                                    "items": {
                                      "type": "string",
                                      "description": "Queue number.",
                                      "example": "8000"
                                    }
                                  },
                                  "from": {
                                    "type": "string",
                                    "description": "Start time.",
                                    "example": "2025-01-01T00:00:00Z"
                                  },
                                  "to": {
                                    "type": "string",
                                    "description": "End time.",
                                    "example": "2025-01-31T23:59:59Z"
                                  },
                                  "time_range": {
                                    "type": "string",
                                    "description": "Time range preset.",
                                    "enum": [
                                      "TODAY",
                                      "YESTERDAY",
                                      "LAST_WEEK",
                                      "LAST_SEVEN_DAYS",
                                      "LAST_MONTH",
                                      "LAST_28_DAYS",
                                      "CUSTOM"
                                    ]
                                  }
                                }
                              },
                              {
                                "title": "SPEEDOFACCEPT",
                                "type": "object",
                                "required": [
                                  "queue",
                                  "stx",
                                  "from",
                                  "to",
                                  "time_range"
                                ],
                                "properties": {
                                  "queue": {
                                    "type": "array",
                                    "description": "List of agent identifiers.",
                                    "items": {
                                      "type": "string",
                                      "description": "Queue number.",
                                      "example": "8000"
                                    }
                                  },
                                  "stx": {
                                    "type": "array",
                                    "items": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 3600
                                    },
                                    "minItems": 10,
                                    "maxItems": 10,
                                    "description": "Accepted Agent ST1–ST10 configuration.\nThis array contains exactly 10 integer values.\nValid range for each value is 1–3600 seconds.\n**Values must be in ascending order (ST1 < ST2 < … < ST10).**\n",
                                    "example": [
                                      10,
                                      20,
                                      30,
                                      40,
                                      50,
                                      60,
                                      70,
                                      80,
                                      90,
                                      100
                                    ]
                                  },
                                  "from": {
                                    "type": "string",
                                    "description": "Start time.",
                                    "example": "2025-01-01T00:00:00Z"
                                  },
                                  "to": {
                                    "type": "string",
                                    "description": "End time.",
                                    "example": "2025-01-31T23:59:59Z"
                                  },
                                  "time_range": {
                                    "type": "string",
                                    "description": "Time range preset.",
                                    "enum": [
                                      "TODAY",
                                      "YESTERDAY",
                                      "LAST_WEEK",
                                      "LAST_SEVEN_DAYS",
                                      "LAST_MONTH",
                                      "LAST_28_DAYS",
                                      "CUSTOM"
                                    ]
                                  }
                                }
                              },
                              {
                                "title": "ABANDONDELAY",
                                "type": "object",
                                "required": [
                                  "queue",
                                  "stx",
                                  "from",
                                  "to",
                                  "time_range"
                                ],
                                "properties": {
                                  "queue": {
                                    "type": "array",
                                    "description": "List of agent identifiers.",
                                    "items": {
                                      "type": "string",
                                      "description": "Queue number.",
                                      "example": "8000"
                                    }
                                  },
                                  "stx": {
                                    "type": "array",
                                    "items": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 3600
                                    },
                                    "minItems": 10,
                                    "maxItems": 10,
                                    "description": "Accepted Agent ST1–ST10 configuration.\nThis array contains exactly 10 integer values.\nValid range for each value is 1–3600 seconds.\n**Values must be in ascending order (ST1 < ST2 < … < ST10).**\n",
                                    "example": [
                                      10,
                                      20,
                                      30,
                                      40,
                                      50,
                                      60,
                                      70,
                                      80,
                                      90,
                                      100
                                    ]
                                  },
                                  "from": {
                                    "type": "string",
                                    "description": "Start time.",
                                    "example": "2025-01-01T00:00:00Z"
                                  },
                                  "to": {
                                    "type": "string",
                                    "description": "End time.",
                                    "example": "2025-01-31T23:59:59Z"
                                  },
                                  "time_range": {
                                    "type": "string",
                                    "description": "Time range preset.",
                                    "enum": [
                                      "TODAY",
                                      "YESTERDAY",
                                      "LAST_WEEK",
                                      "LAST_SEVEN_DAYS",
                                      "LAST_MONTH",
                                      "LAST_28_DAYS",
                                      "CUSTOM"
                                    ]
                                  }
                                }
                              },
                              {
                                "title": "CALLBACKSUMMARY",
                                "type": "object",
                                "required": [
                                  "queue",
                                  "from",
                                  "to",
                                  "time_range"
                                ],
                                "properties": {
                                  "queue": {
                                    "type": "array",
                                    "description": "List of agent identifiers.",
                                    "items": {
                                      "type": "string",
                                      "description": "Queue number.",
                                      "example": "8000"
                                    }
                                  },
                                  "from": {
                                    "type": "string",
                                    "description": "Start time.",
                                    "example": "2025-01-01T00:00:00Z"
                                  },
                                  "to": {
                                    "type": "string",
                                    "description": "End time.",
                                    "example": "2025-01-31T23:59:59Z"
                                  },
                                  "time_range": {
                                    "type": "string",
                                    "description": "Time range preset.",
                                    "enum": [
                                      "TODAY",
                                      "YESTERDAY",
                                      "LAST_WEEK",
                                      "LAST_SEVEN_DAYS",
                                      "LAST_MONTH",
                                      "LAST_28_DAYS",
                                      "CUSTOM"
                                    ]
                                  }
                                }
                              },
                              {
                                "title": "RINGGROUPPERFORMANCE",
                                "type": "object",
                                "required": [
                                  "ring_group",
                                  "from",
                                  "to",
                                  "time_range"
                                ],
                                "properties": {
                                  "ring_group": {
                                    "type": "array",
                                    "items": {
                                      "type": "string"
                                    },
                                    "description": "List of ring groups.\n"
                                  },
                                  "from": {
                                    "type": "string",
                                    "description": "Start time.",
                                    "example": "2025-01-01T00:00:00Z"
                                  },
                                  "to": {
                                    "type": "string",
                                    "description": "End time.",
                                    "example": "2025-01-31T23:59:59Z"
                                  },
                                  "time_range": {
                                    "type": "string",
                                    "description": "Time range preset.",
                                    "enum": [
                                      "TODAY",
                                      "YESTERDAY",
                                      "LAST_WEEK",
                                      "LAST_SEVEN_DAYS",
                                      "LAST_MONTH",
                                      "LAST_28_DAYS",
                                      "CUSTOM"
                                    ]
                                  }
                                }
                              }
                            ]
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "value": {
                      "count": 2,
                      "items": [
                        {
                          "id": "1041260768550453248",
                          "report_id": "1041254768468557824",
                          "report_name": "User Statistics-13112025-246799",
                          "schedule_name": "My Daily Report",
                          "type": "USERSTATISTICS",
                          "format": "CSV",
                          "file_url": "/api/blobs/V5lc8N4e2xFDuNMj2TGIxAAAAPQmTXMO",
                          "create_time": "2025-11-13T15:58:32.912541+08:00",
                          "finish_time": "2025-11-13T15:58:33.075691+08:00",
                          "recipients": "user1@example.com;user2@example.com"
                        },
                        {
                          "id": "1041260768550453249",
                          "report_id": "1041254768468557824",
                          "report_name": "User Statistics-13112025-246788",
                          "schedule_name": "My Daily Report2",
                          "type": "USERSTATISTICS",
                          "format": "CSV",
                          "file_url": "/api/blobs/V5lc8N4e2xFDuNMj2TGIxAAAAPQ",
                          "create_time": "2025-11-13T11:58:32.912541+08:00",
                          "finish_time": "2025-11-13T11:59:33.075691+08:00",
                          "recipients": "user1@example.com;user2@example.com"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "post": {
        "tags": [
          "Dataflow"
        ],
        "operationId": "createReport",
        "x-category": "dataflow",
        "x-subcategory": "report",
        "x-permissions": [
          "Analytics.FullAccess"
        ],
        "summary": "Create Report Job",
        "description": "Create a new analytics report task.\n",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "description": "Report type, string enum.",
                    "enum": [
                      "USERSTATISTICS",
                      "DAILYSTATISTICS",
                      "CALLLOGS",
                      "AGENTDETAILSACTIVITY",
                      "AGENTSUMMARYACTIVITY",
                      "AGENTNOTREADYCODE",
                      "QUEUESUMMARY",
                      "AGENTQUEUEREPORT",
                      "SPEEDOFACCEPT",
                      "ABANDONDELAY",
                      "CALLBACKSUMMARY",
                      "RINGGROUPPERFORMANCE"
                    ]
                  },
                  "format": {
                    "type": "string",
                    "description": "Report file format:CSV、HTML",
                    "enum": [
                      "CSV",
                      "HTML"
                    ],
                    "example": "CSV"
                  },
                  "schedule_name": {
                    "type": "string",
                    "description": "Report Job name"
                  },
                  "start_time": {
                    "type": "string",
                    "description": "Start time; task will not run before this time",
                    "example": "2025-09-30T10:00:00-04:00"
                  },
                  "end_time": {
                    "type": "string",
                    "description": "End time",
                    "example": "2025-09-30T12:00:00-04:00"
                  },
                  "cron_expr": {
                    "type": "string",
                    "description": "gocron string, e.g.:\nEvery day at 00:01 = 1 0 * * *\nEvery month on 1st at 02:03 = 3 2 1 * *\nEvery Tuesday at 01:02 = 2 1 * * 2"
                  },
                  "active": {
                    "type": "boolean",
                    "description": "Whether the task is active",
                    "example": true
                  },
                  "recipients": {
                    "type": "string",
                    "description": "Recipient emails; multiple emails separated by semicolon",
                    "example": "user1@gmail.com;user2@gmail.com"
                  },
                  "timezone": {
                    "type": "string",
                    "description": "Time zone, e.g., Asia/Shanghai"
                  },
                  "params": {
                    "oneOf": [
                      {
                        "title": "USERSTATISTICS",
                        "type": "object",
                        "required": [
                          "extension_number",
                          "status",
                          "direction",
                          "from",
                          "to",
                          "time_range"
                        ],
                        "properties": {
                          "extension_number": {
                            "type": "string",
                            "description": "Extension number",
                            "example": "101"
                          },
                          "status": {
                            "type": "string",
                            "description": "Call status.\n",
                            "enum": [
                              "NONE",
                              "ANSWERED",
                              "UNANSWERED"
                            ]
                          },
                          "direction": {
                            "type": "string",
                            "description": "Call direction type, indicating the routing path of the call.",
                            "enum": [
                              "NONE",
                              "INBOUND",
                              "OUTBOUND",
                              "INTERNAL"
                            ]
                          },
                          "from": {
                            "type": "string",
                            "description": "Start time.",
                            "example": "2025-01-01T00:00:00Z"
                          },
                          "to": {
                            "type": "string",
                            "description": "End time.",
                            "example": "2025-01-31T23:59:59Z"
                          },
                          "time_range": {
                            "type": "string",
                            "description": "Time range preset.",
                            "enum": [
                              "TODAY",
                              "YESTERDAY",
                              "LAST_WEEK",
                              "LAST_SEVEN_DAYS",
                              "LAST_MONTH",
                              "LAST_28_DAYS",
                              "CUSTOM"
                            ]
                          }
                        }
                      },
                      {
                        "title": "DAILYSTATISTICS",
                        "type": "object",
                        "required": [
                          "status",
                          "direction",
                          "from",
                          "to",
                          "time_range"
                        ],
                        "properties": {
                          "status": {
                            "type": "string",
                            "description": "Call status.\n",
                            "enum": [
                              "NONE",
                              "ANSWERED",
                              "UNANSWERED"
                            ]
                          },
                          "direction": {
                            "type": "string",
                            "description": "Call direction type, indicating the routing path of the call.",
                            "enum": [
                              "NONE",
                              "INBOUND",
                              "OUTBOUND",
                              "INTERNAL"
                            ]
                          },
                          "from": {
                            "type": "string",
                            "description": "Start time.",
                            "example": "2025-01-01T00:00:00Z"
                          },
                          "to": {
                            "type": "string",
                            "description": "End time.",
                            "example": "2025-01-31T23:59:59Z"
                          },
                          "time_range": {
                            "type": "string",
                            "description": "Time range preset.",
                            "enum": [
                              "TODAY",
                              "YESTERDAY",
                              "LAST_WEEK",
                              "LAST_SEVEN_DAYS",
                              "LAST_MONTH",
                              "LAST_28_DAYS",
                              "CUSTOM"
                            ]
                          }
                        }
                      },
                      {
                        "title": "CALLLOGS",
                        "type": "object",
                        "required": [
                          "status",
                          "direction",
                          "from",
                          "to",
                          "time_range"
                        ],
                        "properties": {
                          "status": {
                            "type": "string",
                            "description": "Call status.\n",
                            "enum": [
                              "NONE",
                              "ANSWERED",
                              "UNANSWERED"
                            ]
                          },
                          "direction": {
                            "type": "string",
                            "description": "Call direction type, indicating the routing path of the call.",
                            "enum": [
                              "NONE",
                              "INBOUND",
                              "OUTBOUND",
                              "INTERNAL"
                            ]
                          },
                          "from": {
                            "type": "string",
                            "description": "Start time.",
                            "example": "2025-01-01T00:00:00Z"
                          },
                          "to": {
                            "type": "string",
                            "description": "End time.",
                            "example": "2025-01-31T23:59:59Z"
                          },
                          "time_range": {
                            "type": "string",
                            "description": "Time range preset.",
                            "enum": [
                              "TODAY",
                              "YESTERDAY",
                              "LAST_WEEK",
                              "LAST_SEVEN_DAYS",
                              "LAST_MONTH",
                              "LAST_28_DAYS",
                              "CUSTOM"
                            ]
                          }
                        }
                      },
                      {
                        "title": "AGENTDETAILSACTIVITY",
                        "type": "object",
                        "required": [
                          "agent",
                          "queue",
                          "channel_type",
                          "from",
                          "to",
                          "time_range"
                        ],
                        "properties": {
                          "agent": {
                            "type": "string",
                            "description": "Agent number.",
                            "example": "101"
                          },
                          "queue": {
                            "type": "string",
                            "description": "Queue number.",
                            "example": "8000"
                          },
                          "channel_type": {
                            "type": "string",
                            "description": "Channel type for filtering report data."
                          },
                          "from": {
                            "type": "string",
                            "description": "Start time.",
                            "example": "2025-01-01T00:00:00Z"
                          },
                          "to": {
                            "type": "string",
                            "description": "End time.",
                            "example": "2025-01-31T23:59:59Z"
                          },
                          "time_range": {
                            "type": "string",
                            "description": "Time range preset.",
                            "enum": [
                              "TODAY",
                              "YESTERDAY",
                              "LAST_WEEK",
                              "LAST_SEVEN_DAYS",
                              "LAST_MONTH",
                              "LAST_28_DAYS",
                              "CUSTOM"
                            ]
                          }
                        }
                      },
                      {
                        "title": "AGENTSUMMARYACTIVITY",
                        "type": "object",
                        "required": [
                          "queue",
                          "agent"
                        ],
                        "properties": {
                          "queue": {
                            "type": "string",
                            "description": "Queue number.",
                            "example": "8000"
                          },
                          "agent": {
                            "type": "array",
                            "description": "List of agent identifiers.",
                            "items": {
                              "type": "string",
                              "description": "Agent number.",
                              "example": "101"
                            }
                          },
                          "from": {
                            "type": "string",
                            "description": "Start time.",
                            "example": "2025-01-01T00:00:00Z"
                          },
                          "to": {
                            "type": "string",
                            "description": "End time.",
                            "example": "2025-01-31T23:59:59Z"
                          },
                          "time_range": {
                            "type": "string",
                            "description": "Time range preset.",
                            "enum": [
                              "TODAY",
                              "YESTERDAY",
                              "LAST_WEEK",
                              "LAST_SEVEN_DAYS",
                              "LAST_MONTH",
                              "LAST_28_DAYS",
                              "CUSTOM"
                            ]
                          }
                        }
                      },
                      {
                        "title": "AGENTNOTREADYCODE",
                        "type": "object",
                        "required": [
                          "queue",
                          "agent"
                        ],
                        "properties": {
                          "queue": {
                            "type": "string",
                            "description": "Queue number.",
                            "example": "8000"
                          },
                          "agent": {
                            "type": "array",
                            "description": "List of agent identifiers.",
                            "items": {
                              "type": "string",
                              "description": "Agent number.",
                              "example": "101"
                            }
                          },
                          "reason_code": {
                            "type": "string",
                            "description": "Reason code for agent not ready status."
                          },
                          "from": {
                            "type": "string",
                            "description": "Start time.",
                            "example": "2025-01-01T00:00:00Z"
                          },
                          "to": {
                            "type": "string",
                            "description": "End time.",
                            "example": "2025-01-31T23:59:59Z"
                          },
                          "time_range": {
                            "type": "string",
                            "description": "Time range preset.",
                            "enum": [
                              "TODAY",
                              "YESTERDAY",
                              "LAST_WEEK",
                              "LAST_SEVEN_DAYS",
                              "LAST_MONTH",
                              "LAST_28_DAYS",
                              "CUSTOM"
                            ]
                          }
                        }
                      },
                      {
                        "title": "QUEUESUMMARY",
                        "type": "object",
                        "required": [
                          "queue",
                          "from",
                          "to",
                          "time_range"
                        ],
                        "properties": {
                          "queue": {
                            "type": "object",
                            "additionalProperties": {
                              "type": "integer",
                              "description": "SLA time for the user (e.g., in seconds)"
                            },
                            "description": "Key-value map where:\n  - **key** is the user number (string),\n  - **value** is the SLA time for that user.\n"
                          },
                          "from": {
                            "type": "string",
                            "description": "Start time.",
                            "example": "2025-01-01T00:00:00Z"
                          },
                          "to": {
                            "type": "string",
                            "description": "End time.",
                            "example": "2025-01-31T23:59:59Z"
                          },
                          "time_range": {
                            "type": "string",
                            "description": "Time range preset.",
                            "enum": [
                              "TODAY",
                              "YESTERDAY",
                              "LAST_WEEK",
                              "LAST_SEVEN_DAYS",
                              "LAST_MONTH",
                              "LAST_28_DAYS",
                              "CUSTOM"
                            ]
                          }
                        }
                      },
                      {
                        "title": "AGENTQUEUEREPORT",
                        "type": "object",
                        "required": [
                          "queue",
                          "from",
                          "to",
                          "time_range"
                        ],
                        "properties": {
                          "queue": {
                            "type": "array",
                            "description": "List of agent identifiers.",
                            "items": {
                              "type": "string",
                              "description": "Queue number.",
                              "example": "8000"
                            }
                          },
                          "from": {
                            "type": "string",
                            "description": "Start time.",
                            "example": "2025-01-01T00:00:00Z"
                          },
                          "to": {
                            "type": "string",
                            "description": "End time.",
                            "example": "2025-01-31T23:59:59Z"
                          },
                          "time_range": {
                            "type": "string",
                            "description": "Time range preset.",
                            "enum": [
                              "TODAY",
                              "YESTERDAY",
                              "LAST_WEEK",
                              "LAST_SEVEN_DAYS",
                              "LAST_MONTH",
                              "LAST_28_DAYS",
                              "CUSTOM"
                            ]
                          }
                        }
                      },
                      {
                        "title": "SPEEDOFACCEPT",
                        "type": "object",
                        "required": [
                          "queue",
                          "stx",
                          "from",
                          "to",
                          "time_range"
                        ],
                        "properties": {
                          "queue": {
                            "type": "array",
                            "description": "List of agent identifiers.",
                            "items": {
                              "type": "string",
                              "description": "Queue number.",
                              "example": "8000"
                            }
                          },
                          "stx": {
                            "type": "array",
                            "items": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 3600
                            },
                            "minItems": 10,
                            "maxItems": 10,
                            "description": "Accepted Agent ST1–ST10 configuration.\nThis array contains exactly 10 integer values.\nValid range for each value is 1–3600 seconds.\n**Values must be in ascending order (ST1 < ST2 < … < ST10).**\n",
                            "example": [
                              10,
                              20,
                              30,
                              40,
                              50,
                              60,
                              70,
                              80,
                              90,
                              100
                            ]
                          },
                          "from": {
                            "type": "string",
                            "description": "Start time.",
                            "example": "2025-01-01T00:00:00Z"
                          },
                          "to": {
                            "type": "string",
                            "description": "End time.",
                            "example": "2025-01-31T23:59:59Z"
                          },
                          "time_range": {
                            "type": "string",
                            "description": "Time range preset.",
                            "enum": [
                              "TODAY",
                              "YESTERDAY",
                              "LAST_WEEK",
                              "LAST_SEVEN_DAYS",
                              "LAST_MONTH",
                              "LAST_28_DAYS",
                              "CUSTOM"
                            ]
                          }
                        }
                      },
                      {
                        "title": "ABANDONDELAY",
                        "type": "object",
                        "required": [
                          "queue",
                          "stx",
                          "from",
                          "to",
                          "time_range"
                        ],
                        "properties": {
                          "queue": {
                            "type": "array",
                            "description": "List of agent identifiers.",
                            "items": {
                              "type": "string",
                              "description": "Queue number.",
                              "example": "8000"
                            }
                          },
                          "stx": {
                            "type": "array",
                            "items": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 3600
                            },
                            "minItems": 10,
                            "maxItems": 10,
                            "description": "Accepted Agent ST1–ST10 configuration.\nThis array contains exactly 10 integer values.\nValid range for each value is 1–3600 seconds.\n**Values must be in ascending order (ST1 < ST2 < … < ST10).**\n",
                            "example": [
                              10,
                              20,
                              30,
                              40,
                              50,
                              60,
                              70,
                              80,
                              90,
                              100
                            ]
                          },
                          "from": {
                            "type": "string",
                            "description": "Start time.",
                            "example": "2025-01-01T00:00:00Z"
                          },
                          "to": {
                            "type": "string",
                            "description": "End time.",
                            "example": "2025-01-31T23:59:59Z"
                          },
                          "time_range": {
                            "type": "string",
                            "description": "Time range preset.",
                            "enum": [
                              "TODAY",
                              "YESTERDAY",
                              "LAST_WEEK",
                              "LAST_SEVEN_DAYS",
                              "LAST_MONTH",
                              "LAST_28_DAYS",
                              "CUSTOM"
                            ]
                          }
                        }
                      },
                      {
                        "title": "CALLBACKSUMMARY",
                        "type": "object",
                        "required": [
                          "queue",
                          "from",
                          "to",
                          "time_range"
                        ],
                        "properties": {
                          "queue": {
                            "type": "array",
                            "description": "List of agent identifiers.",
                            "items": {
                              "type": "string",
                              "description": "Queue number.",
                              "example": "8000"
                            }
                          },
                          "from": {
                            "type": "string",
                            "description": "Start time.",
                            "example": "2025-01-01T00:00:00Z"
                          },
                          "to": {
                            "type": "string",
                            "description": "End time.",
                            "example": "2025-01-31T23:59:59Z"
                          },
                          "time_range": {
                            "type": "string",
                            "description": "Time range preset.",
                            "enum": [
                              "TODAY",
                              "YESTERDAY",
                              "LAST_WEEK",
                              "LAST_SEVEN_DAYS",
                              "LAST_MONTH",
                              "LAST_28_DAYS",
                              "CUSTOM"
                            ]
                          }
                        }
                      },
                      {
                        "title": "RINGGROUPPERFORMANCE",
                        "type": "object",
                        "required": [
                          "ring_group",
                          "from",
                          "to",
                          "time_range"
                        ],
                        "properties": {
                          "ring_group": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "List of ring groups.\n"
                          },
                          "from": {
                            "type": "string",
                            "description": "Start time.",
                            "example": "2025-01-01T00:00:00Z"
                          },
                          "to": {
                            "type": "string",
                            "description": "End time.",
                            "example": "2025-01-31T23:59:59Z"
                          },
                          "time_range": {
                            "type": "string",
                            "description": "Time range preset.",
                            "enum": [
                              "TODAY",
                              "YESTERDAY",
                              "LAST_WEEK",
                              "LAST_SEVEN_DAYS",
                              "LAST_MONTH",
                              "LAST_28_DAYS",
                              "CUSTOM"
                            ]
                          }
                        }
                      }
                    ]
                  }
                }
              },
              "examples": {
                "USERSTATISTICS": {
                  "value": {
                    "type": "USERSTATISTICS",
                    "format": "CSV",
                    "schedule_name": "My User Statistics Report",
                    "start_time": "2025-10-01T00:00:00Z",
                    "end_time": "2025-10-31T23:59:59Z",
                    "params": {
                      "extension_number": "101;102-108;110",
                      "status": "ANSWERED",
                      "direction": "INBOUND",
                      "from": "2025-11-01T00:00:00Z",
                      "to": "2025-11-02T00:00:00Z",
                      "time_range": "TODAY"
                    },
                    "cron_expr": "0 0 * * *",
                    "active": true,
                    "recipients": "team@example.com;test2@qq.com",
                    "time_zone": "Asia/Shanghai"
                  }
                },
                "DAILYSTATISTICS": {
                  "value": {
                    "type": "DAILYSTATISTICS",
                    "format": "HTML",
                    "schedule_name": "My Daily Statistics Report",
                    "start_time": "2025-11-01T00:00:00Z",
                    "end_time": "2025-11-02T00:00:00Z",
                    "params": {
                      "status": "MISSED",
                      "direction": "INBOUND",
                      "from": "2025-11-01T00:00:00Z",
                      "to": "2025-11-02T00:00:00Z",
                      "time_range": "TODAY"
                    },
                    "cron_expr": "0 6 * * *",
                    "recipients": "team@example.com",
                    "active": true,
                    "time_zone": "Asia/Shanghai"
                  }
                },
                "CALLLOGS": {
                  "value": {
                    "type": "CALLLOGS",
                    "format": "CSV",
                    "schedule_name": "My Call Logs Report",
                    "start_time": "2025-11-01T00:00:00Z",
                    "end_time": "2025-11-02T00:00:00Z",
                    "params": {
                      "status": "ANSWERED",
                      "direction": "OUTBOUND",
                      "from": "2025-11-01T00:00:00Z",
                      "to": "2025-11-02T00:00:00Z",
                      "time_range": "TODAY"
                    },
                    "cron_expr": "0 7 * * *",
                    "recipients": "supervisor@example.com",
                    "active": true,
                    "time_zone": "Asia/Shanghai"
                  }
                },
                "AGENTDETAILSACTIVITY": {
                  "value": {
                    "type": "AGENTDETAILSACTIVITY",
                    "format": "HTML",
                    "schedule_name": "My Agent Daily Activity Report",
                    "start_time": "2025-11-01T00:00:00Z",
                    "end_time": "2025-11-02T00:00:00Z",
                    "params": {
                      "agent": "agent001",
                      "queue": "10001",
                      "channel_type": "VOICE",
                      "interaction_type": "CALL",
                      "from": "2025-11-01T00:00:00Z",
                      "to": "2025-11-02T00:00:00Z",
                      "time_range": "TODAY"
                    },
                    "cron_expr": "0 9 * * *",
                    "recipients": "manager@example.com",
                    "active": true,
                    "time_zone": "Asia/Shanghai"
                  }
                },
                "AGENTSUMMARYACTIVITY": {
                  "value": {
                    "type": "AGENTSUMMARYACTIVITY",
                    "format": "CSV",
                    "schedule_name": "My Agent Summary Activity Report",
                    "start_time": "2025-11-01T00:00:00Z",
                    "end_time": "2025-11-30T00:00:00Z",
                    "params": {
                      "queue": "10001",
                      "agent": [
                        "001",
                        "002"
                      ],
                      "from": "2025-11-01T00:00:00Z",
                      "to": "2025-11-30T00:00:00Z",
                      "time_range": "TODAY"
                    }
                  },
                  "cron_expr": "0 8 1 * *",
                  "recipients": "director@example.com",
                  "active": true,
                  "time_zone": "Asia/Shanghai"
                },
                "AGENTNOTREADYCODE": {
                  "value": {
                    "type": "AGENTNOTREADYCODE",
                    "format": "CSV",
                    "schedule_name": "My Agent Not Ready Code Report",
                    "start_time": "2025-11-01T00:00:00Z",
                    "end_time": "2025-11-30T00:00:00Z",
                    "params": {
                      "queue": "10001",
                      "agent": [
                        "003",
                        "004"
                      ],
                      "from": "2025-11-01T00:00:00Z",
                      "to": "2025-11-30T00:00:00Z",
                      "time_range": "TODAY",
                      "reason_code": "NOT_READY"
                    },
                    "cron_expr": "0 10 1 * *",
                    "recipients": "qa@example.com",
                    "active": true,
                    "time_zone": "Asia/Shanghai"
                  }
                },
                "QUEUESUMMARY": {
                  "value": {
                    "type": "QUEUESUMMARY",
                    "format": "HTML",
                    "schedule_name": "My Queue Summary Report",
                    "start_time": "2025-11-01T00:00:00Z",
                    "end_time": "2025-11-02T00:00:00Z",
                    "params": {
                      "queue": {
                        "101": 12,
                        "102": 23
                      },
                      "from": "2025-11-01T00:00:00Z",
                      "to": "2025-11-02T00:00:00Z",
                      "time_range": "TODAY"
                    },
                    "cron_expr": "0 5 * * *",
                    "recipients": "lead@example.com",
                    "active": true,
                    "time_zone": "Asia/Shanghai"
                  }
                },
                "AGENTQUEUEREPORT": {
                  "value": {
                    "type": "AGENTQUEUEREPORT",
                    "format": "CSV",
                    "schedule_name": "My Agent Queue Report",
                    "start_time": "2025-11-01T00:00:00Z",
                    "end_time": "2025-11-02T00:00:00Z",
                    "params": {
                      "queue": [
                        "1001",
                        "1002"
                      ],
                      "from": "2025-11-01T00:00:00Z",
                      "to": "2025-11-02T00:00:00Z",
                      "time_range": "TODAY"
                    },
                    "cron_expr": "0 6 * * *",
                    "recipients": "ops@example.com",
                    "active": true,
                    "time_zone": "Asia/Shanghai"
                  }
                },
                "SPEEDOFACCEPT": {
                  "value": {
                    "type": "SPEEDOFACCEPT",
                    "format": "HTML",
                    "schedule_name": "My Speed of Accept Report",
                    "start_time": "2025-11-01T00:00:00Z",
                    "end_time": "2025-11-02T00:00:00Z",
                    "params": {
                      "queue": [
                        "10001",
                        "10002"
                      ],
                      "stx": [
                        10,
                        50,
                        70,
                        90,
                        110,
                        130,
                        150,
                        170,
                        190,
                        200
                      ],
                      "from": "2025-11-01T00:00:00Z",
                      "to": "2025-11-02T00:00:00Z",
                      "time_range": "TODAY"
                    }
                  },
                  "cron_expr": "0 11 * * *",
                  "recipients": "qa@example.com",
                  "active": true,
                  "time_zone": "Asia/Shanghai"
                },
                "ABANDONDELAY": {
                  "value": {
                    "type": "ABANDONDELAY",
                    "format": "CSV",
                    "schedule_name": "My Abandon Delay Report",
                    "start_time": "2025-11-01T00:00:00Z",
                    "end_time": "2025-11-02T00:00:00Z",
                    "params": {
                      "queue": [
                        "1001",
                        "1002"
                      ],
                      "stx": [
                        10,
                        20,
                        30,
                        40,
                        50,
                        60,
                        70,
                        80,
                        90,
                        100
                      ],
                      "from": "2025-11-01T00:00:00Z",
                      "to": "2025-11-02T00:00:00Z",
                      "time_range": "TODAY"
                    },
                    "cron_expr": "0 12 * * *",
                    "recipients": "qa@example.com",
                    "active": true,
                    "time_zone": "Asia/Shanghai"
                  }
                },
                "CALLBACKSUMMARY": {
                  "value": {
                    "type": "CALLBACKSUMMARY",
                    "format": "CSV",
                    "schedule_name": "My Callback Summary Report",
                    "start_time": "2025-11-01T00:00:00Z",
                    "end_time": "2025-11-02T00:00:00Z",
                    "params": {
                      "queue": [
                        "10001",
                        "10002"
                      ],
                      "from": "2025-11-01T00:00:00Z",
                      "to": "2025-11-02T00:00:00Z",
                      "time_range": "TODAY"
                    },
                    "cron_expr": "0 13 * * *",
                    "recipients": "admin@example.com",
                    "active": true,
                    "time_zone": "Asia/Shanghai"
                  }
                },
                "RINGGROUPPERFORMANCE": {
                  "value": {
                    "type": "RINGGROUPPERFORMANCE",
                    "format": "HTML",
                    "start_time": "2025-11-01T00:00:00Z",
                    "end_time": "2025-11-02T00:00:00Z",
                    "schedule_name": "My Ring Group Performance Report",
                    "params": {
                      "ring_group": [
                        "10001",
                        "10002"
                      ],
                      "from": "2025-11-01T00:00:00Z",
                      "to": "2025-11-02T00:00:00Z",
                      "time_range": "TODAY"
                    },
                    "cron_expr": "0 14 * * *",
                    "recipients": "manager@example.com",
                    "active": true,
                    "time_zone": "Asia/Shanghai"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                      "description": "The unique ID of the resource.\n"
                    }
                  }
                },
                "example": {
                  "id": [
                    "1017758181150949376"
                  ]
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/dataflow/report_jobs/{id}": {
      "get": {
        "tags": [
          "Dataflow"
        ],
        "operationId": "getReportJobById",
        "x-category": "dataflow",
        "x-subcategory": "report",
        "x-permissions": [
          "Analytics.ViewOnly"
        ],
        "summary": "Retrieve Report Job Details",
        "description": "Get detailed information of a report execution job specified by `id`.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Report Job ID",
            "schema": {
              "type": "string",
              "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
              "description": "The unique ID of the resource.\n"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful retrieval of the report job details.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                      "description": "The unique ID of the resource.\n"
                    },
                    "type": {
                      "type": "string",
                      "description": "Report type, string enum.",
                      "enum": [
                        "USERSTATISTICS",
                        "DAILYSTATISTICS",
                        "CALLLOGS",
                        "AGENTDETAILSACTIVITY",
                        "AGENTSUMMARYACTIVITY",
                        "AGENTNOTREADYCODE",
                        "QUEUESUMMARY",
                        "AGENTQUEUEREPORT",
                        "SPEEDOFACCEPT",
                        "ABANDONDELAY",
                        "CALLBACKSUMMARY",
                        "RINGGROUPPERFORMANCE"
                      ]
                    },
                    "format": {
                      "type": "string",
                      "description": "Report file format:CSV、HTML",
                      "enum": [
                        "CSV",
                        "HTML"
                      ],
                      "example": "CSV"
                    },
                    "schedule_name": {
                      "type": "string",
                      "description": "Report Job name"
                    },
                    "start_time": {
                      "type": "string",
                      "description": "Start time; task will not run before this time",
                      "example": "2025-09-30T10:00:00-04:00"
                    },
                    "end_time": {
                      "type": "string",
                      "description": "End time",
                      "example": "2025-09-30T12:00:00-04:00"
                    },
                    "params": {
                      "oneOf": [
                        {
                          "title": "USERSTATISTICS",
                          "type": "object",
                          "required": [
                            "extension_number",
                            "status",
                            "direction",
                            "from",
                            "to",
                            "time_range"
                          ],
                          "properties": {
                            "extension_number": {
                              "type": "string",
                              "description": "Extension number",
                              "example": "101"
                            },
                            "status": {
                              "type": "string",
                              "description": "Call status.\n",
                              "enum": [
                                "NONE",
                                "ANSWERED",
                                "UNANSWERED"
                              ]
                            },
                            "direction": {
                              "type": "string",
                              "description": "Call direction type, indicating the routing path of the call.",
                              "enum": [
                                "NONE",
                                "INBOUND",
                                "OUTBOUND",
                                "INTERNAL"
                              ]
                            },
                            "from": {
                              "type": "string",
                              "description": "Start time.",
                              "example": "2025-01-01T00:00:00Z"
                            },
                            "to": {
                              "type": "string",
                              "description": "End time.",
                              "example": "2025-01-31T23:59:59Z"
                            },
                            "time_range": {
                              "type": "string",
                              "description": "Time range preset.",
                              "enum": [
                                "TODAY",
                                "YESTERDAY",
                                "LAST_WEEK",
                                "LAST_SEVEN_DAYS",
                                "LAST_MONTH",
                                "LAST_28_DAYS",
                                "CUSTOM"
                              ]
                            }
                          }
                        },
                        {
                          "title": "DAILYSTATISTICS",
                          "type": "object",
                          "required": [
                            "status",
                            "direction",
                            "from",
                            "to",
                            "time_range"
                          ],
                          "properties": {
                            "status": {
                              "type": "string",
                              "description": "Call status.\n",
                              "enum": [
                                "NONE",
                                "ANSWERED",
                                "UNANSWERED"
                              ]
                            },
                            "direction": {
                              "type": "string",
                              "description": "Call direction type, indicating the routing path of the call.",
                              "enum": [
                                "NONE",
                                "INBOUND",
                                "OUTBOUND",
                                "INTERNAL"
                              ]
                            },
                            "from": {
                              "type": "string",
                              "description": "Start time.",
                              "example": "2025-01-01T00:00:00Z"
                            },
                            "to": {
                              "type": "string",
                              "description": "End time.",
                              "example": "2025-01-31T23:59:59Z"
                            },
                            "time_range": {
                              "type": "string",
                              "description": "Time range preset.",
                              "enum": [
                                "TODAY",
                                "YESTERDAY",
                                "LAST_WEEK",
                                "LAST_SEVEN_DAYS",
                                "LAST_MONTH",
                                "LAST_28_DAYS",
                                "CUSTOM"
                              ]
                            }
                          }
                        },
                        {
                          "title": "CALLLOGS",
                          "type": "object",
                          "required": [
                            "status",
                            "direction",
                            "from",
                            "to",
                            "time_range"
                          ],
                          "properties": {
                            "status": {
                              "type": "string",
                              "description": "Call status.\n",
                              "enum": [
                                "NONE",
                                "ANSWERED",
                                "UNANSWERED"
                              ]
                            },
                            "direction": {
                              "type": "string",
                              "description": "Call direction type, indicating the routing path of the call.",
                              "enum": [
                                "NONE",
                                "INBOUND",
                                "OUTBOUND",
                                "INTERNAL"
                              ]
                            },
                            "from": {
                              "type": "string",
                              "description": "Start time.",
                              "example": "2025-01-01T00:00:00Z"
                            },
                            "to": {
                              "type": "string",
                              "description": "End time.",
                              "example": "2025-01-31T23:59:59Z"
                            },
                            "time_range": {
                              "type": "string",
                              "description": "Time range preset.",
                              "enum": [
                                "TODAY",
                                "YESTERDAY",
                                "LAST_WEEK",
                                "LAST_SEVEN_DAYS",
                                "LAST_MONTH",
                                "LAST_28_DAYS",
                                "CUSTOM"
                              ]
                            }
                          }
                        },
                        {
                          "title": "AGENTDETAILSACTIVITY",
                          "type": "object",
                          "required": [
                            "agent",
                            "queue",
                            "channel_type",
                            "from",
                            "to",
                            "time_range"
                          ],
                          "properties": {
                            "agent": {
                              "type": "string",
                              "description": "Agent number.",
                              "example": "101"
                            },
                            "queue": {
                              "type": "string",
                              "description": "Queue number.",
                              "example": "8000"
                            },
                            "channel_type": {
                              "type": "string",
                              "description": "Channel type for filtering report data."
                            },
                            "from": {
                              "type": "string",
                              "description": "Start time.",
                              "example": "2025-01-01T00:00:00Z"
                            },
                            "to": {
                              "type": "string",
                              "description": "End time.",
                              "example": "2025-01-31T23:59:59Z"
                            },
                            "time_range": {
                              "type": "string",
                              "description": "Time range preset.",
                              "enum": [
                                "TODAY",
                                "YESTERDAY",
                                "LAST_WEEK",
                                "LAST_SEVEN_DAYS",
                                "LAST_MONTH",
                                "LAST_28_DAYS",
                                "CUSTOM"
                              ]
                            }
                          }
                        },
                        {
                          "title": "AGENTSUMMARYACTIVITY",
                          "type": "object",
                          "required": [
                            "queue",
                            "agent"
                          ],
                          "properties": {
                            "queue": {
                              "type": "string",
                              "description": "Queue number.",
                              "example": "8000"
                            },
                            "agent": {
                              "type": "array",
                              "description": "List of agent identifiers.",
                              "items": {
                                "type": "string",
                                "description": "Agent number.",
                                "example": "101"
                              }
                            },
                            "from": {
                              "type": "string",
                              "description": "Start time.",
                              "example": "2025-01-01T00:00:00Z"
                            },
                            "to": {
                              "type": "string",
                              "description": "End time.",
                              "example": "2025-01-31T23:59:59Z"
                            },
                            "time_range": {
                              "type": "string",
                              "description": "Time range preset.",
                              "enum": [
                                "TODAY",
                                "YESTERDAY",
                                "LAST_WEEK",
                                "LAST_SEVEN_DAYS",
                                "LAST_MONTH",
                                "LAST_28_DAYS",
                                "CUSTOM"
                              ]
                            }
                          }
                        },
                        {
                          "title": "AGENTNOTREADYCODE",
                          "type": "object",
                          "required": [
                            "queue",
                            "agent"
                          ],
                          "properties": {
                            "queue": {
                              "type": "string",
                              "description": "Queue number.",
                              "example": "8000"
                            },
                            "agent": {
                              "type": "array",
                              "description": "List of agent identifiers.",
                              "items": {
                                "type": "string",
                                "description": "Agent number.",
                                "example": "101"
                              }
                            },
                            "reason_code": {
                              "type": "string",
                              "description": "Reason code for agent not ready status."
                            },
                            "from": {
                              "type": "string",
                              "description": "Start time.",
                              "example": "2025-01-01T00:00:00Z"
                            },
                            "to": {
                              "type": "string",
                              "description": "End time.",
                              "example": "2025-01-31T23:59:59Z"
                            },
                            "time_range": {
                              "type": "string",
                              "description": "Time range preset.",
                              "enum": [
                                "TODAY",
                                "YESTERDAY",
                                "LAST_WEEK",
                                "LAST_SEVEN_DAYS",
                                "LAST_MONTH",
                                "LAST_28_DAYS",
                                "CUSTOM"
                              ]
                            }
                          }
                        },
                        {
                          "title": "QUEUESUMMARY",
                          "type": "object",
                          "required": [
                            "queue",
                            "from",
                            "to",
                            "time_range"
                          ],
                          "properties": {
                            "queue": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "integer",
                                "description": "SLA time for the user (e.g., in seconds)"
                              },
                              "description": "Key-value map where:\n  - **key** is the user number (string),\n  - **value** is the SLA time for that user.\n"
                            },
                            "from": {
                              "type": "string",
                              "description": "Start time.",
                              "example": "2025-01-01T00:00:00Z"
                            },
                            "to": {
                              "type": "string",
                              "description": "End time.",
                              "example": "2025-01-31T23:59:59Z"
                            },
                            "time_range": {
                              "type": "string",
                              "description": "Time range preset.",
                              "enum": [
                                "TODAY",
                                "YESTERDAY",
                                "LAST_WEEK",
                                "LAST_SEVEN_DAYS",
                                "LAST_MONTH",
                                "LAST_28_DAYS",
                                "CUSTOM"
                              ]
                            }
                          }
                        },
                        {
                          "title": "AGENTQUEUEREPORT",
                          "type": "object",
                          "required": [
                            "queue",
                            "from",
                            "to",
                            "time_range"
                          ],
                          "properties": {
                            "queue": {
                              "type": "array",
                              "description": "List of agent identifiers.",
                              "items": {
                                "type": "string",
                                "description": "Queue number.",
                                "example": "8000"
                              }
                            },
                            "from": {
                              "type": "string",
                              "description": "Start time.",
                              "example": "2025-01-01T00:00:00Z"
                            },
                            "to": {
                              "type": "string",
                              "description": "End time.",
                              "example": "2025-01-31T23:59:59Z"
                            },
                            "time_range": {
                              "type": "string",
                              "description": "Time range preset.",
                              "enum": [
                                "TODAY",
                                "YESTERDAY",
                                "LAST_WEEK",
                                "LAST_SEVEN_DAYS",
                                "LAST_MONTH",
                                "LAST_28_DAYS",
                                "CUSTOM"
                              ]
                            }
                          }
                        },
                        {
                          "title": "SPEEDOFACCEPT",
                          "type": "object",
                          "required": [
                            "queue",
                            "stx",
                            "from",
                            "to",
                            "time_range"
                          ],
                          "properties": {
                            "queue": {
                              "type": "array",
                              "description": "List of agent identifiers.",
                              "items": {
                                "type": "string",
                                "description": "Queue number.",
                                "example": "8000"
                              }
                            },
                            "stx": {
                              "type": "array",
                              "items": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 3600
                              },
                              "minItems": 10,
                              "maxItems": 10,
                              "description": "Accepted Agent ST1–ST10 configuration.\nThis array contains exactly 10 integer values.\nValid range for each value is 1–3600 seconds.\n**Values must be in ascending order (ST1 < ST2 < … < ST10).**\n",
                              "example": [
                                10,
                                20,
                                30,
                                40,
                                50,
                                60,
                                70,
                                80,
                                90,
                                100
                              ]
                            },
                            "from": {
                              "type": "string",
                              "description": "Start time.",
                              "example": "2025-01-01T00:00:00Z"
                            },
                            "to": {
                              "type": "string",
                              "description": "End time.",
                              "example": "2025-01-31T23:59:59Z"
                            },
                            "time_range": {
                              "type": "string",
                              "description": "Time range preset.",
                              "enum": [
                                "TODAY",
                                "YESTERDAY",
                                "LAST_WEEK",
                                "LAST_SEVEN_DAYS",
                                "LAST_MONTH",
                                "LAST_28_DAYS",
                                "CUSTOM"
                              ]
                            }
                          }
                        },
                        {
                          "title": "ABANDONDELAY",
                          "type": "object",
                          "required": [
                            "queue",
                            "stx",
                            "from",
                            "to",
                            "time_range"
                          ],
                          "properties": {
                            "queue": {
                              "type": "array",
                              "description": "List of agent identifiers.",
                              "items": {
                                "type": "string",
                                "description": "Queue number.",
                                "example": "8000"
                              }
                            },
                            "stx": {
                              "type": "array",
                              "items": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 3600
                              },
                              "minItems": 10,
                              "maxItems": 10,
                              "description": "Accepted Agent ST1–ST10 configuration.\nThis array contains exactly 10 integer values.\nValid range for each value is 1–3600 seconds.\n**Values must be in ascending order (ST1 < ST2 < … < ST10).**\n",
                              "example": [
                                10,
                                20,
                                30,
                                40,
                                50,
                                60,
                                70,
                                80,
                                90,
                                100
                              ]
                            },
                            "from": {
                              "type": "string",
                              "description": "Start time.",
                              "example": "2025-01-01T00:00:00Z"
                            },
                            "to": {
                              "type": "string",
                              "description": "End time.",
                              "example": "2025-01-31T23:59:59Z"
                            },
                            "time_range": {
                              "type": "string",
                              "description": "Time range preset.",
                              "enum": [
                                "TODAY",
                                "YESTERDAY",
                                "LAST_WEEK",
                                "LAST_SEVEN_DAYS",
                                "LAST_MONTH",
                                "LAST_28_DAYS",
                                "CUSTOM"
                              ]
                            }
                          }
                        },
                        {
                          "title": "CALLBACKSUMMARY",
                          "type": "object",
                          "required": [
                            "queue",
                            "from",
                            "to",
                            "time_range"
                          ],
                          "properties": {
                            "queue": {
                              "type": "array",
                              "description": "List of agent identifiers.",
                              "items": {
                                "type": "string",
                                "description": "Queue number.",
                                "example": "8000"
                              }
                            },
                            "from": {
                              "type": "string",
                              "description": "Start time.",
                              "example": "2025-01-01T00:00:00Z"
                            },
                            "to": {
                              "type": "string",
                              "description": "End time.",
                              "example": "2025-01-31T23:59:59Z"
                            },
                            "time_range": {
                              "type": "string",
                              "description": "Time range preset.",
                              "enum": [
                                "TODAY",
                                "YESTERDAY",
                                "LAST_WEEK",
                                "LAST_SEVEN_DAYS",
                                "LAST_MONTH",
                                "LAST_28_DAYS",
                                "CUSTOM"
                              ]
                            }
                          }
                        },
                        {
                          "title": "RINGGROUPPERFORMANCE",
                          "type": "object",
                          "required": [
                            "ring_group",
                            "from",
                            "to",
                            "time_range"
                          ],
                          "properties": {
                            "ring_group": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "description": "List of ring groups.\n"
                            },
                            "from": {
                              "type": "string",
                              "description": "Start time.",
                              "example": "2025-01-01T00:00:00Z"
                            },
                            "to": {
                              "type": "string",
                              "description": "End time.",
                              "example": "2025-01-31T23:59:59Z"
                            },
                            "time_range": {
                              "type": "string",
                              "description": "Time range preset.",
                              "enum": [
                                "TODAY",
                                "YESTERDAY",
                                "LAST_WEEK",
                                "LAST_SEVEN_DAYS",
                                "LAST_MONTH",
                                "LAST_28_DAYS",
                                "CUSTOM"
                              ]
                            }
                          }
                        }
                      ]
                    },
                    "cron_expr": {
                      "type": "string",
                      "description": "gocron string, e.g.:\nEvery day at 00:01 = 1 0 * * *\nEvery month on 1st at 02:03 = 3 2 1 * *\nEvery Tuesday at 01:02 = 2 1 * * 2"
                    },
                    "recipients": {
                      "type": "string",
                      "description": "Recipient emails; multiple emails separated by semicolon",
                      "example": "user1@gmail.com;user2@gmail.com"
                    },
                    "active": {
                      "type": "boolean",
                      "description": "Whether the task is active",
                      "example": true
                    },
                    "time_zone": {
                      "type": "string",
                      "description": "Time zone, e.g., Asia/Shanghai"
                    },
                    "last_run_time": {
                      "type": "string",
                      "format": "date-time",
                      "description": "The timestamp of the most recent execution of the report job.",
                      "example": "2025-11-13T11:19:02.738568+08:00"
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Invalid input or retrieval failed."
          }
        }
      },
      "post": {
        "tags": [
          "Dataflow"
        ],
        "operationId": "updateReport",
        "x-category": "dataflow",
        "x-subcategory": "report",
        "x-permissions": [
          "Analytics.FullAccess"
        ],
        "summary": "Update Report Job",
        "description": "Update an existing analytics report Job.\n`{id}` is the report Jon ID.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Report Job ID",
            "schema": {
              "type": "string",
              "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
              "description": "The unique ID of the resource.\n"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "description": "Report type, string enum.",
                    "enum": [
                      "USERSTATISTICS",
                      "DAILYSTATISTICS",
                      "CALLLOGS",
                      "AGENTDETAILSACTIVITY",
                      "AGENTSUMMARYACTIVITY",
                      "AGENTNOTREADYCODE",
                      "QUEUESUMMARY",
                      "AGENTQUEUEREPORT",
                      "SPEEDOFACCEPT",
                      "ABANDONDELAY",
                      "CALLBACKSUMMARY",
                      "RINGGROUPPERFORMANCE"
                    ]
                  },
                  "format": {
                    "type": "string",
                    "description": "Report file format:CSV、HTML",
                    "enum": [
                      "CSV",
                      "HTML"
                    ],
                    "example": "CSV"
                  },
                  "schedule_name": {
                    "type": "string",
                    "description": "Report Job name"
                  },
                  "start_time": {
                    "type": "string",
                    "format": "date-time",
                    "description": "The start time of the report period.  \nMust include timezone in RFC3339 format (e.g. 2025-09-28T00:00:00-04:00).\n",
                    "example": "2025-09-28T00:00:00-04:00"
                  },
                  "end_time": {
                    "type": "string",
                    "format": "date-time",
                    "description": "The end time of the report period.  \nMust include timezone in RFC3339 format (e.g. 2025-09-28T15:00:00-04:00).\n",
                    "example": "2025-09-28T15:00:00-04:00"
                  },
                  "cron_expr": {
                    "type": "string",
                    "description": "gocron string, e.g.:\nEvery day at 00:01 = 1 0 * * *\nEvery month on 1st at 02:03 = 3 2 1 * *\nEvery Tuesday at 01:02 = 2 1 * * 2"
                  },
                  "active": {
                    "type": "boolean",
                    "description": "Whether the task is active",
                    "example": true
                  },
                  "recipients": {
                    "type": "string",
                    "description": "Recipient emails; multiple emails separated by semicolon",
                    "example": "user1@gmail.com;user2@gmail.com"
                  },
                  "time_zone": {
                    "type": "string",
                    "description": "Time zone, e.g., Asia/Shanghai"
                  },
                  "params": {
                    "oneOf": [
                      {
                        "title": "USERSTATISTICS",
                        "type": "object",
                        "required": [
                          "extension_number",
                          "status",
                          "direction",
                          "from",
                          "to",
                          "time_range"
                        ],
                        "properties": {
                          "extension_number": {
                            "type": "string",
                            "description": "Extension number",
                            "example": "101"
                          },
                          "status": {
                            "type": "string",
                            "description": "Call status.\n",
                            "enum": [
                              "NONE",
                              "ANSWERED",
                              "UNANSWERED"
                            ]
                          },
                          "direction": {
                            "type": "string",
                            "description": "Call direction type, indicating the routing path of the call.",
                            "enum": [
                              "NONE",
                              "INBOUND",
                              "OUTBOUND",
                              "INTERNAL"
                            ]
                          },
                          "from": {
                            "type": "string",
                            "description": "Start time.",
                            "example": "2025-01-01T00:00:00Z"
                          },
                          "to": {
                            "type": "string",
                            "description": "End time.",
                            "example": "2025-01-31T23:59:59Z"
                          },
                          "time_range": {
                            "type": "string",
                            "description": "Time range preset.",
                            "enum": [
                              "TODAY",
                              "YESTERDAY",
                              "LAST_WEEK",
                              "LAST_SEVEN_DAYS",
                              "LAST_MONTH",
                              "LAST_28_DAYS",
                              "CUSTOM"
                            ]
                          }
                        }
                      },
                      {
                        "title": "DAILYSTATISTICS",
                        "type": "object",
                        "required": [
                          "status",
                          "direction",
                          "from",
                          "to",
                          "time_range"
                        ],
                        "properties": {
                          "status": {
                            "type": "string",
                            "description": "Call status.\n",
                            "enum": [
                              "NONE",
                              "ANSWERED",
                              "UNANSWERED"
                            ]
                          },
                          "direction": {
                            "type": "string",
                            "description": "Call direction type, indicating the routing path of the call.",
                            "enum": [
                              "NONE",
                              "INBOUND",
                              "OUTBOUND",
                              "INTERNAL"
                            ]
                          },
                          "from": {
                            "type": "string",
                            "description": "Start time.",
                            "example": "2025-01-01T00:00:00Z"
                          },
                          "to": {
                            "type": "string",
                            "description": "End time.",
                            "example": "2025-01-31T23:59:59Z"
                          },
                          "time_range": {
                            "type": "string",
                            "description": "Time range preset.",
                            "enum": [
                              "TODAY",
                              "YESTERDAY",
                              "LAST_WEEK",
                              "LAST_SEVEN_DAYS",
                              "LAST_MONTH",
                              "LAST_28_DAYS",
                              "CUSTOM"
                            ]
                          }
                        }
                      },
                      {
                        "title": "CALLLOGS",
                        "type": "object",
                        "required": [
                          "status",
                          "direction",
                          "from",
                          "to",
                          "time_range"
                        ],
                        "properties": {
                          "status": {
                            "type": "string",
                            "description": "Call status.\n",
                            "enum": [
                              "NONE",
                              "ANSWERED",
                              "UNANSWERED"
                            ]
                          },
                          "direction": {
                            "type": "string",
                            "description": "Call direction type, indicating the routing path of the call.",
                            "enum": [
                              "NONE",
                              "INBOUND",
                              "OUTBOUND",
                              "INTERNAL"
                            ]
                          },
                          "from": {
                            "type": "string",
                            "description": "Start time.",
                            "example": "2025-01-01T00:00:00Z"
                          },
                          "to": {
                            "type": "string",
                            "description": "End time.",
                            "example": "2025-01-31T23:59:59Z"
                          },
                          "time_range": {
                            "type": "string",
                            "description": "Time range preset.",
                            "enum": [
                              "TODAY",
                              "YESTERDAY",
                              "LAST_WEEK",
                              "LAST_SEVEN_DAYS",
                              "LAST_MONTH",
                              "LAST_28_DAYS",
                              "CUSTOM"
                            ]
                          }
                        }
                      },
                      {
                        "title": "AGENTDETAILSACTIVITY",
                        "type": "object",
                        "required": [
                          "agent",
                          "queue",
                          "channel_type",
                          "from",
                          "to",
                          "time_range"
                        ],
                        "properties": {
                          "agent": {
                            "type": "string",
                            "description": "Agent number.",
                            "example": "101"
                          },
                          "queue": {
                            "type": "string",
                            "description": "Queue number.",
                            "example": "8000"
                          },
                          "channel_type": {
                            "type": "string",
                            "description": "Channel type for filtering report data."
                          },
                          "from": {
                            "type": "string",
                            "description": "Start time.",
                            "example": "2025-01-01T00:00:00Z"
                          },
                          "to": {
                            "type": "string",
                            "description": "End time.",
                            "example": "2025-01-31T23:59:59Z"
                          },
                          "time_range": {
                            "type": "string",
                            "description": "Time range preset.",
                            "enum": [
                              "TODAY",
                              "YESTERDAY",
                              "LAST_WEEK",
                              "LAST_SEVEN_DAYS",
                              "LAST_MONTH",
                              "LAST_28_DAYS",
                              "CUSTOM"
                            ]
                          }
                        }
                      },
                      {
                        "title": "AGENTSUMMARYACTIVITY",
                        "type": "object",
                        "required": [
                          "queue",
                          "agent"
                        ],
                        "properties": {
                          "queue": {
                            "type": "string",
                            "description": "Queue number.",
                            "example": "8000"
                          },
                          "agent": {
                            "type": "array",
                            "description": "List of agent identifiers.",
                            "items": {
                              "type": "string",
                              "description": "Agent number.",
                              "example": "101"
                            }
                          },
                          "from": {
                            "type": "string",
                            "description": "Start time.",
                            "example": "2025-01-01T00:00:00Z"
                          },
                          "to": {
                            "type": "string",
                            "description": "End time.",
                            "example": "2025-01-31T23:59:59Z"
                          },
                          "time_range": {
                            "type": "string",
                            "description": "Time range preset.",
                            "enum": [
                              "TODAY",
                              "YESTERDAY",
                              "LAST_WEEK",
                              "LAST_SEVEN_DAYS",
                              "LAST_MONTH",
                              "LAST_28_DAYS",
                              "CUSTOM"
                            ]
                          }
                        }
                      },
                      {
                        "title": "AGENTNOTREADYCODE",
                        "type": "object",
                        "required": [
                          "queue",
                          "agent"
                        ],
                        "properties": {
                          "queue": {
                            "type": "string",
                            "description": "Queue number.",
                            "example": "8000"
                          },
                          "agent": {
                            "type": "array",
                            "description": "List of agent identifiers.",
                            "items": {
                              "type": "string",
                              "description": "Agent number.",
                              "example": "101"
                            }
                          },
                          "reason_code": {
                            "type": "string",
                            "description": "Reason code for agent not ready status."
                          },
                          "from": {
                            "type": "string",
                            "description": "Start time.",
                            "example": "2025-01-01T00:00:00Z"
                          },
                          "to": {
                            "type": "string",
                            "description": "End time.",
                            "example": "2025-01-31T23:59:59Z"
                          },
                          "time_range": {
                            "type": "string",
                            "description": "Time range preset.",
                            "enum": [
                              "TODAY",
                              "YESTERDAY",
                              "LAST_WEEK",
                              "LAST_SEVEN_DAYS",
                              "LAST_MONTH",
                              "LAST_28_DAYS",
                              "CUSTOM"
                            ]
                          }
                        }
                      },
                      {
                        "title": "QUEUESUMMARY",
                        "type": "object",
                        "required": [
                          "queue",
                          "from",
                          "to",
                          "time_range"
                        ],
                        "properties": {
                          "queue": {
                            "type": "object",
                            "additionalProperties": {
                              "type": "integer",
                              "description": "SLA time for the user (e.g., in seconds)"
                            },
                            "description": "Key-value map where:\n  - **key** is the user number (string),\n  - **value** is the SLA time for that user.\n"
                          },
                          "from": {
                            "type": "string",
                            "description": "Start time.",
                            "example": "2025-01-01T00:00:00Z"
                          },
                          "to": {
                            "type": "string",
                            "description": "End time.",
                            "example": "2025-01-31T23:59:59Z"
                          },
                          "time_range": {
                            "type": "string",
                            "description": "Time range preset.",
                            "enum": [
                              "TODAY",
                              "YESTERDAY",
                              "LAST_WEEK",
                              "LAST_SEVEN_DAYS",
                              "LAST_MONTH",
                              "LAST_28_DAYS",
                              "CUSTOM"
                            ]
                          }
                        }
                      },
                      {
                        "title": "AGENTQUEUEREPORT",
                        "type": "object",
                        "required": [
                          "queue",
                          "from",
                          "to",
                          "time_range"
                        ],
                        "properties": {
                          "queue": {
                            "type": "array",
                            "description": "List of agent identifiers.",
                            "items": {
                              "type": "string",
                              "description": "Queue number.",
                              "example": "8000"
                            }
                          },
                          "from": {
                            "type": "string",
                            "description": "Start time.",
                            "example": "2025-01-01T00:00:00Z"
                          },
                          "to": {
                            "type": "string",
                            "description": "End time.",
                            "example": "2025-01-31T23:59:59Z"
                          },
                          "time_range": {
                            "type": "string",
                            "description": "Time range preset.",
                            "enum": [
                              "TODAY",
                              "YESTERDAY",
                              "LAST_WEEK",
                              "LAST_SEVEN_DAYS",
                              "LAST_MONTH",
                              "LAST_28_DAYS",
                              "CUSTOM"
                            ]
                          }
                        }
                      },
                      {
                        "title": "SPEEDOFACCEPT",
                        "type": "object",
                        "required": [
                          "queue",
                          "stx",
                          "from",
                          "to",
                          "time_range"
                        ],
                        "properties": {
                          "queue": {
                            "type": "array",
                            "description": "List of agent identifiers.",
                            "items": {
                              "type": "string",
                              "description": "Queue number.",
                              "example": "8000"
                            }
                          },
                          "stx": {
                            "type": "array",
                            "items": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 3600
                            },
                            "minItems": 10,
                            "maxItems": 10,
                            "description": "Accepted Agent ST1–ST10 configuration.\nThis array contains exactly 10 integer values.\nValid range for each value is 1–3600 seconds.\n**Values must be in ascending order (ST1 < ST2 < … < ST10).**\n",
                            "example": [
                              10,
                              20,
                              30,
                              40,
                              50,
                              60,
                              70,
                              80,
                              90,
                              100
                            ]
                          },
                          "from": {
                            "type": "string",
                            "description": "Start time.",
                            "example": "2025-01-01T00:00:00Z"
                          },
                          "to": {
                            "type": "string",
                            "description": "End time.",
                            "example": "2025-01-31T23:59:59Z"
                          },
                          "time_range": {
                            "type": "string",
                            "description": "Time range preset.",
                            "enum": [
                              "TODAY",
                              "YESTERDAY",
                              "LAST_WEEK",
                              "LAST_SEVEN_DAYS",
                              "LAST_MONTH",
                              "LAST_28_DAYS",
                              "CUSTOM"
                            ]
                          }
                        }
                      },
                      {
                        "title": "ABANDONDELAY",
                        "type": "object",
                        "required": [
                          "queue",
                          "stx",
                          "from",
                          "to",
                          "time_range"
                        ],
                        "properties": {
                          "queue": {
                            "type": "array",
                            "description": "List of agent identifiers.",
                            "items": {
                              "type": "string",
                              "description": "Queue number.",
                              "example": "8000"
                            }
                          },
                          "stx": {
                            "type": "array",
                            "items": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 3600
                            },
                            "minItems": 10,
                            "maxItems": 10,
                            "description": "Accepted Agent ST1–ST10 configuration.\nThis array contains exactly 10 integer values.\nValid range for each value is 1–3600 seconds.\n**Values must be in ascending order (ST1 < ST2 < … < ST10).**\n",
                            "example": [
                              10,
                              20,
                              30,
                              40,
                              50,
                              60,
                              70,
                              80,
                              90,
                              100
                            ]
                          },
                          "from": {
                            "type": "string",
                            "description": "Start time.",
                            "example": "2025-01-01T00:00:00Z"
                          },
                          "to": {
                            "type": "string",
                            "description": "End time.",
                            "example": "2025-01-31T23:59:59Z"
                          },
                          "time_range": {
                            "type": "string",
                            "description": "Time range preset.",
                            "enum": [
                              "TODAY",
                              "YESTERDAY",
                              "LAST_WEEK",
                              "LAST_SEVEN_DAYS",
                              "LAST_MONTH",
                              "LAST_28_DAYS",
                              "CUSTOM"
                            ]
                          }
                        }
                      },
                      {
                        "title": "CALLBACKSUMMARY",
                        "type": "object",
                        "required": [
                          "queue",
                          "from",
                          "to",
                          "time_range"
                        ],
                        "properties": {
                          "queue": {
                            "type": "array",
                            "description": "List of agent identifiers.",
                            "items": {
                              "type": "string",
                              "description": "Queue number.",
                              "example": "8000"
                            }
                          },
                          "from": {
                            "type": "string",
                            "description": "Start time.",
                            "example": "2025-01-01T00:00:00Z"
                          },
                          "to": {
                            "type": "string",
                            "description": "End time.",
                            "example": "2025-01-31T23:59:59Z"
                          },
                          "time_range": {
                            "type": "string",
                            "description": "Time range preset.",
                            "enum": [
                              "TODAY",
                              "YESTERDAY",
                              "LAST_WEEK",
                              "LAST_SEVEN_DAYS",
                              "LAST_MONTH",
                              "LAST_28_DAYS",
                              "CUSTOM"
                            ]
                          }
                        }
                      },
                      {
                        "title": "RINGGROUPPERFORMANCE",
                        "type": "object",
                        "required": [
                          "ring_group",
                          "from",
                          "to",
                          "time_range"
                        ],
                        "properties": {
                          "ring_group": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "List of ring groups.\n"
                          },
                          "from": {
                            "type": "string",
                            "description": "Start time.",
                            "example": "2025-01-01T00:00:00Z"
                          },
                          "to": {
                            "type": "string",
                            "description": "End time.",
                            "example": "2025-01-31T23:59:59Z"
                          },
                          "time_range": {
                            "type": "string",
                            "description": "Time range preset.",
                            "enum": [
                              "TODAY",
                              "YESTERDAY",
                              "LAST_WEEK",
                              "LAST_SEVEN_DAYS",
                              "LAST_MONTH",
                              "LAST_28_DAYS",
                              "CUSTOM"
                            ]
                          }
                        }
                      }
                    ]
                  }
                }
              },
              "examples": {
                "USERSTATISTICS": {
                  "value": {
                    "type": "USERSTATISTICS",
                    "format": "CSV",
                    "schedule_name": "My User Statistics Report",
                    "start_time": "2025-10-01T00:00:00Z",
                    "end_time": "2025-10-31T23:59:59Z",
                    "params": {
                      "extension_number": "101;102-108;110",
                      "status": "ANSWERED",
                      "direction": "INBOUND",
                      "from": "2025-11-01T00:00:00Z",
                      "to": "2025-11-02T00:00:00Z",
                      "time_range": "TODAY"
                    },
                    "cron_expr": "0 0 * * *",
                    "active": true,
                    "recipients": "team@example.com;test2@qq.com",
                    "time_zone": "Asia/Shanghai"
                  }
                },
                "DAILYSTATISTICS": {
                  "value": {
                    "type": "DAILYSTATISTICS",
                    "format": "HTML",
                    "schedule_name": "My Daily Statistics Report",
                    "start_time": "2025-11-01T00:00:00Z",
                    "end_time": "2025-11-02T00:00:00Z",
                    "params": {
                      "status": "MISSED",
                      "direction": "INBOUND",
                      "from": "2025-11-01T00:00:00Z",
                      "to": "2025-11-02T00:00:00Z",
                      "time_range": "TODAY"
                    },
                    "cron_expr": "0 6 * * *",
                    "recipients": "team@example.com",
                    "active": true,
                    "time_zone": "Asia/Shanghai"
                  }
                },
                "CALLLOGS": {
                  "value": {
                    "type": "CALLLOGS",
                    "format": "CSV",
                    "schedule_name": "My Call Logs Report",
                    "start_time": "2025-11-01T00:00:00Z",
                    "end_time": "2025-11-02T00:00:00Z",
                    "params": {
                      "status": "ANSWERED",
                      "direction": "OUTBOUND",
                      "from": "2025-11-01T00:00:00Z",
                      "to": "2025-11-02T00:00:00Z",
                      "time_range": "TODAY"
                    },
                    "cron_expr": "0 7 * * *",
                    "recipients": "supervisor@example.com",
                    "active": true,
                    "time_zone": "Asia/Shanghai"
                  }
                },
                "AGENTDETAILSACTIVITY": {
                  "value": {
                    "type": "AGENTDETAILSACTIVITY",
                    "format": "HTML",
                    "schedule_name": "My Agent Daily Activity Report",
                    "start_time": "2025-11-01T00:00:00Z",
                    "end_time": "2025-11-02T00:00:00Z",
                    "params": {
                      "agent": "agent001",
                      "queue": "10001",
                      "channel_type": "VOICE",
                      "interaction_type": "CALL",
                      "from": "2025-11-01T00:00:00Z",
                      "to": "2025-11-02T00:00:00Z",
                      "time_range": "TODAY"
                    },
                    "cron_expr": "0 9 * * *",
                    "recipients": "manager@example.com",
                    "active": true,
                    "time_zone": "Asia/Shanghai"
                  }
                },
                "AGENTSUMMARYACTIVITY": {
                  "value": {
                    "type": "AGENTSUMMARYACTIVITY",
                    "format": "CSV",
                    "schedule_name": "My Agent Summary Activity Report",
                    "start_time": "2025-11-01T00:00:00Z",
                    "end_time": "2025-11-30T00:00:00Z",
                    "params": {
                      "queue": "10001",
                      "agent": [
                        "001",
                        "002"
                      ],
                      "from": "2025-11-01T00:00:00Z",
                      "to": "2025-11-30T00:00:00Z",
                      "time_range": "TODAY"
                    }
                  },
                  "cron_expr": "0 8 1 * *",
                  "recipients": "director@example.com",
                  "active": true,
                  "time_zone": "Asia/Shanghai"
                },
                "AGENTNOTREADYCODE": {
                  "value": {
                    "type": "AGENTNOTREADYCODE",
                    "format": "CSV",
                    "schedule_name": "My Agent Not Ready Code Report",
                    "start_time": "2025-11-01T00:00:00Z",
                    "end_time": "2025-11-30T00:00:00Z",
                    "params": {
                      "queue": "10001",
                      "agent": [
                        "003",
                        "004"
                      ],
                      "from": "2025-11-01T00:00:00Z",
                      "to": "2025-11-30T00:00:00Z",
                      "time_range": "TODAY",
                      "reason_code": "NOT_READY"
                    },
                    "cron_expr": "0 10 1 * *",
                    "recipients": "qa@example.com",
                    "active": true,
                    "time_zone": "Asia/Shanghai"
                  }
                },
                "QUEUESUMMARY": {
                  "value": {
                    "type": "QUEUESUMMARY",
                    "format": "HTML",
                    "schedule_name": "My Queue Summary Report",
                    "start_time": "2025-11-01T00:00:00Z",
                    "end_time": "2025-11-02T00:00:00Z",
                    "params": {
                      "queue": {
                        "101": 12,
                        "102": 23
                      },
                      "from": "2025-11-01T00:00:00Z",
                      "to": "2025-11-02T00:00:00Z",
                      "time_range": "TODAY"
                    },
                    "cron_expr": "0 5 * * *",
                    "recipients": "lead@example.com",
                    "active": true,
                    "time_zone": "Asia/Shanghai"
                  }
                },
                "AGENTQUEUEREPORT": {
                  "value": {
                    "type": "AGENTQUEUEREPORT",
                    "format": "CSV",
                    "schedule_name": "My Agent Queue Report",
                    "start_time": "2025-11-01T00:00:00Z",
                    "end_time": "2025-11-02T00:00:00Z",
                    "params": {
                      "queue": [
                        "1001",
                        "1002"
                      ],
                      "from": "2025-11-01T00:00:00Z",
                      "to": "2025-11-02T00:00:00Z",
                      "time_range": "TODAY"
                    },
                    "cron_expr": "0 6 * * *",
                    "recipients": "ops@example.com",
                    "active": true,
                    "time_zone": "Asia/Shanghai"
                  }
                },
                "SPEEDOFACCEPT": {
                  "value": {
                    "type": "SPEEDOFACCEPT",
                    "format": "HTML",
                    "schedule_name": "My Speed of Accept Report",
                    "start_time": "2025-11-01T00:00:00Z",
                    "end_time": "2025-11-02T00:00:00Z",
                    "params": {
                      "queue": [
                        "10001",
                        "10002"
                      ],
                      "stx": [
                        10,
                        50,
                        70,
                        90,
                        110,
                        130,
                        150,
                        170,
                        190,
                        200
                      ],
                      "from": "2025-11-01T00:00:00Z",
                      "to": "2025-11-02T00:00:00Z",
                      "time_range": "TODAY"
                    }
                  },
                  "cron_expr": "0 11 * * *",
                  "recipients": "qa@example.com",
                  "active": true,
                  "time_zone": "Asia/Shanghai"
                },
                "ABANDONDELAY": {
                  "value": {
                    "type": "ABANDONDELAY",
                    "format": "CSV",
                    "schedule_name": "My Abandon Delay Report",
                    "start_time": "2025-11-01T00:00:00Z",
                    "end_time": "2025-11-02T00:00:00Z",
                    "params": {
                      "queue": [
                        "1001",
                        "1002"
                      ],
                      "stx": [
                        10,
                        20,
                        30,
                        40,
                        50,
                        60,
                        70,
                        80,
                        90,
                        100
                      ],
                      "from": "2025-11-01T00:00:00Z",
                      "to": "2025-11-02T00:00:00Z",
                      "time_range": "TODAY"
                    },
                    "cron_expr": "0 12 * * *",
                    "recipients": "qa@example.com",
                    "active": true,
                    "time_zone": "Asia/Shanghai"
                  }
                },
                "CALLBACKSUMMARY": {
                  "value": {
                    "type": "CALLBACKSUMMARY",
                    "format": "CSV",
                    "schedule_name": "My Callback Summary Report",
                    "start_time": "2025-11-01T00:00:00Z",
                    "end_time": "2025-11-02T00:00:00Z",
                    "params": {
                      "queue": [
                        "10001",
                        "10002"
                      ],
                      "from": "2025-11-01T00:00:00Z",
                      "to": "2025-11-02T00:00:00Z",
                      "time_range": "TODAY"
                    },
                    "cron_expr": "0 13 * * *",
                    "recipients": "admin@example.com",
                    "active": true,
                    "time_zone": "Asia/Shanghai"
                  }
                },
                "RINGGROUPPERFORMANCE": {
                  "value": {
                    "type": "RINGGROUPPERFORMANCE",
                    "format": "HTML",
                    "start_time": "2025-11-01T00:00:00Z",
                    "end_time": "2025-11-02T00:00:00Z",
                    "schedule_name": "My Ring Group Performance Report",
                    "params": {
                      "ring_group": [
                        "10001",
                        "10002"
                      ],
                      "from": "2025-11-01T00:00:00Z",
                      "to": "2025-11-02T00:00:00Z",
                      "time_range": "TODAY"
                    },
                    "cron_expr": "0 14 * * *",
                    "recipients": "manager@example.com",
                    "active": true,
                    "time_zone": "Asia/Shanghai"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "updated successfully."
          },
          "4XX": {
            "description": "Invalid input or update failed."
          }
        }
      }
    },
    "/dataflow/report_jobs/{id}/destroy": {
      "post": {
        "tags": [
          "Dataflow"
        ],
        "operationId": "destroyReportJob",
        "x-category": "dataflow",
        "x-subcategory": "report",
        "x-permissions": [
          "Analytics.FullAccess"
        ],
        "summary": "Delete a Report Job",
        "description": "Permanently delete the report execution task specified by `id`.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "The unique identifier of the report job to delete.",
            "schema": {
              "type": "string",
              "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
              "description": "The unique ID of the resource.\n"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "deleted successfully."
          },
          "4XX": {
            "description": "Invalid input or deleted failed."
          }
        }
      }
    },
    "/dataflow/report_list": {
      "get": {
        "tags": [
          "Dataflow"
        ],
        "operationId": "listReportLog",
        "x-category": "dataflow",
        "x-subcategory": "report",
        "x-permissions": [
          "Analytics.ViewOnly"
        ],
        "summary": "Retrieve Report Execution Logs",
        "description": "Get detailed information of a report execution job specified by `id`.\n",
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Use the `filter` query parameter to retrieve just a subset of a collection.\n"
          },
          {
            "name": "count",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            },
            "description": "Use the $count=true query option to include a count of entities that match the filter criteria.\n"
          },
          {
            "name": "orderby",
            "in": "query",
            "required": false,
            "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",
            "required": false,
            "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",
            "required": false,
            "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,
                      "example": 100,
                      "description": "Total number of resource.\n"
                    },
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string",
                            "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                            "description": "The unique ID of the resource.\n"
                          },
                          "report_id": {
                            "type": "string",
                            "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                            "description": "The unique ID of the resource.\n"
                          },
                          "schedule_name": {
                            "type": "string",
                            "description": "Report Job name"
                          },
                          "report_name": {
                            "type": "string",
                            "description": "Generated report file name",
                            "example": "User_Statistics_Report_2025-09-30.csv"
                          },
                          "type": {
                            "type": "string",
                            "description": "Report type, string enum.",
                            "enum": [
                              "USERSTATISTICS",
                              "DAILYSTATISTICS",
                              "CALLLOGS",
                              "AGENTDETAILSACTIVITY",
                              "AGENTSUMMARYACTIVITY",
                              "AGENTNOTREADYCODE",
                              "QUEUESUMMARY",
                              "AGENTQUEUEREPORT",
                              "SPEEDOFACCEPT",
                              "ABANDONDELAY",
                              "CALLBACKSUMMARY",
                              "RINGGROUPPERFORMANCE"
                            ]
                          },
                          "format": {
                            "type": "string",
                            "description": "Report file format:CSV、HTML",
                            "enum": [
                              "CSV",
                              "HTML"
                            ],
                            "example": "CSV"
                          },
                          "file_url": {
                            "type": "string",
                            "description": "URL to download the generated report file.",
                            "example": "/api/blobs/8BENEcWpR0QNFjN9R2HMdwAAQPQmTXMO"
                          },
                          "create_time": {
                            "type": "string",
                            "format": "date-time",
                            "description": "The timestamp when the report log entry was created.",
                            "example": "2025-11-13T11:19:02.738568+08:00"
                          },
                          "finish_time": {
                            "type": "string",
                            "format": "date-time",
                            "nullable": true,
                            "description": "The timestamp when the report file generation completed. This value is `null` if the report is still being processed.",
                            "example": "2025-11-13T11:20:15.102345+08:00"
                          },
                          "recipients": {
                            "type": "string",
                            "description": "Recipient emails; multiple emails separated by semicolon",
                            "example": "user1@gmail.com;user2@gmail.com"
                          },
                          "start_time": {
                            "type": "string",
                            "format": "date-time",
                            "description": "The start time of the report period.  \nMust include timezone in RFC3339 format (e.g. 2025-09-28T00:00:00-04:00).\n",
                            "example": "2025-09-28T00:00:00-04:00"
                          },
                          "end_time": {
                            "type": "string",
                            "format": "date-time",
                            "description": "The end time of the report period.  \nMust include timezone in RFC3339 format (e.g. 2025-09-28T15:00:00-04:00).\n",
                            "example": "2025-09-28T15:00:00-04:00"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "value": {
                      "count": 2,
                      "items": [
                        {
                          "id": "1041260768550453248",
                          "report_id": "1041254768468557824",
                          "report_name": "User Statistics-13112025-246799",
                          "schedule_name": "My Daily Report",
                          "type": "USERSTATISTICS",
                          "format": "CSV",
                          "file_url": "/api/blobs/V5lc8N4e2xFDuNMj2TGIxAAAAPQmTXMO",
                          "create_time": "2025-11-13T15:58:32.912541+08:00",
                          "finish_time": "2025-11-13T15:58:33.075691+08:00",
                          "recipients": "user1@example.com;user2@example.com"
                        },
                        {
                          "id": "1041260768550453249",
                          "report_id": "1041254768468557824",
                          "report_name": "User Statistics-13112025-246788",
                          "schedule_name": "My Daily Report2",
                          "type": "USERSTATISTICS",
                          "format": "CSV",
                          "file_url": "/api/blobs/V5lc8N4e2xFDuNMj2TGIxAAAAPQ",
                          "create_time": "2025-11-13T11:58:32.912541+08:00",
                          "finish_time": "2025-11-13T11:59:33.075691+08:00",
                          "recipients": "user1@example.com;user2@example.com"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/dataflow/report_list/{id}/destroy": {
      "post": {
        "tags": [
          "Dataflow"
        ],
        "operationId": "deleteReportLog",
        "x-category": "dataflow",
        "x-subcategory": "report",
        "x-permissions": [
          "Analytics.FullAccess"
        ],
        "summary": "Delete a report log",
        "description": "Delete a specific report log entry by its unique identifier.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique report log identifier.",
            "schema": {
              "type": "string",
              "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
              "description": "The unique ID of the resource.\n"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "deleted successfully."
          },
          "4XX": {
            "description": "Invalid input or deleted failed."
          }
        }
      }
    },
    "/not_ready_codes": {
      "post": {
        "tags": [
          "Tenant"
        ],
        "operationId": "createNotReadyCode",
        "x-category": "tenants",
        "x-subcategory": "organization",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Create not ready code",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "code": {
                    "type": "string",
                    "minLength": 2,
                    "maxLength": 2,
                    "description": "A sequence of digits.\n"
                  },
                  "reason": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 32,
                    "description": "The code reason for custom code.\n"
                  }
                },
                "required": [
                  "code"
                ]
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "code": "xxxxx",
                    "reason": "xxxxx"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of the not ready code.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "The ID of created resource",
                    "value": {
                      "id": "xxxxxxxx"
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "get": {
        "tags": [
          "Tenant"
        ],
        "operationId": "listNotReadyCodes",
        "x-category": "tenants",
        "x-subcategory": "organization",
        "x-permissions": [
          "PhoneSystem.ViewOnly"
        ],
        "summary": "List not ready codes",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                                "description": "The unique ID of the resource.\n"
                              }
                            ],
                            "description": "The unique ID of the not ready code.\n"
                          },
                          "code": {
                            "type": "string",
                            "minLength": 2,
                            "maxLength": 2,
                            "description": "A sequence of digits.\n"
                          },
                          "reason": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 32,
                            "description": "The code reason for custom code.\n"
                          },
                          "protected": {
                            "type": "boolean",
                            "readOnly": true,
                            "description": "Whether the code is protected.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "items": [
                        {
                          "id": null,
                          "code": "xxxxx",
                          "reason": "xxxxx",
                          "protected": false
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/not_ready_codes/{id}": {
      "get": {
        "tags": [
          "Tenant"
        ],
        "operationId": "getNotReadyCode",
        "x-category": "tenants",
        "x-subcategory": "organization",
        "x-permissions": [
          "PhoneSystem.ViewOnly"
        ],
        "summary": "Get not ready code",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of the not ready code.\n"
            },
            "description": "The unique ID of the not ready code."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                          "description": "The unique ID of the resource.\n"
                        }
                      ],
                      "description": "The unique ID of the not ready code.\n"
                    },
                    "code": {
                      "type": "string",
                      "minLength": 2,
                      "maxLength": 2,
                      "description": "A sequence of digits.\n"
                    },
                    "reason": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 32,
                      "description": "The code reason for custom code.\n"
                    },
                    "protected": {
                      "type": "boolean",
                      "readOnly": true,
                      "description": "Whether the code is protected.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": null,
                    "value": {
                      "id": null,
                      "code": "xxxxx",
                      "reason": "xxxxx",
                      "protected": false
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "post": {
        "tags": [
          "Tenant"
        ],
        "operationId": "updateNotReadyCode",
        "x-category": "tenants",
        "x-subcategory": "organization",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Update not ready code",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of the not ready code.\n"
            },
            "description": "The unique ID of the not ready code."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "code": {
                    "type": "string",
                    "minLength": 2,
                    "maxLength": 2,
                    "description": "A sequence of digits.\n"
                  },
                  "reason": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 32,
                    "description": "The code reason for custom code.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": null,
                  "value": {
                    "code": "xxxxx",
                    "reason": "xxxxx"
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/not_ready_codes/{id}/destroy": {
      "post": {
        "tags": [
          "Tenant"
        ],
        "operationId": "deleteNotReadyCode",
        "x-category": "tenants",
        "x-subcategory": "organization",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Delete not ready code",
        "description": "Delete the not ready code by it's ID.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                  "description": "The unique ID of the resource.\n"
                }
              ],
              "description": "The unique ID of the not ready code.\n"
            },
            "description": "The unique ID of the not ready code."
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Invalid entry ID supplied"
          }
        }
      }
    }
  },
  "components": {
    "securitySchemes": {
      "bearer": {
        "type": "http",
        "scheme": "bearer"
      }
    },
    "schemas": {
      "role_id": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
            "description": "The unique ID of the resource.\n"
          }
        ],
        "description": "The unique ID of role.\n"
      },
      "user_email": {
        "allOf": [
          {
            "type": "string",
            "maxLength": 128,
            "description": "The email address.\n",
            "example": "example@example.com"
          }
        ],
        "description": "The email address of user.\n"
      },
      "created_at": {
        "allOf": [
          {
            "type": "string",
            "format": "date_time",
            "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
            "example": "2017-07-21T17:32:28Z"
          }
        ],
        "description": "The creation time of user.\n"
      },
      "login_at": {
        "allOf": [
          {
            "type": "string",
            "format": "date_time",
            "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
            "example": "2017-07-21T17:32:28Z"
          }
        ],
        "description": "The last sign in time of user.\n"
      },
      "logout_at": {
        "allOf": [
          {
            "type": "string",
            "format": "date_time",
            "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
            "example": "2017-07-21T17:32:28Z"
          }
        ],
        "description": "The last sign out time of user.\n"
      },
      "user_id": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
            "description": "The unique ID of the resource.\n"
          }
        ],
        "description": "The unique ID of user.\n"
      },
      "maintenance_expires_at": {
        "allOf": [
          {
            "type": "string",
            "format": "date_time",
            "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
            "example": "2017-07-21T17:32:28Z"
          }
        ],
        "description": "The maintenance expiry time.\n"
      },
      "trace_server_port": {
        "allOf": [
          {
            "type": "integer",
            "format": "int32",
            "minimum": 0,
            "maximum": 65535,
            "example": 80,
            "description": "A port number is a 16-bit unsigned integer, thus ranging from 0 to 65535.\nFor TCP, port number 0 is reserved and cannot be used, while for UDP, the source port is optional and a value of zero means no port\n"
          }
        ],
        "description": "The tracer server port.\n"
      },
      "http_port": {
        "allOf": [
          {
            "type": "integer",
            "format": "int32",
            "minimum": 0,
            "maximum": 65535,
            "example": 80,
            "description": "A port number is a 16-bit unsigned integer, thus ranging from 0 to 65535.\nFor TCP, port number 0 is reserved and cannot be used, while for UDP, the source port is optional and a value of zero means no port\n"
          }
        ],
        "default": 8882,
        "description": "The SBC web port for http.\n"
      },
      "https_port": {
        "allOf": [
          {
            "type": "integer",
            "format": "int32",
            "minimum": 0,
            "maximum": 65535,
            "example": 80,
            "description": "A port number is a 16-bit unsigned integer, thus ranging from 0 to 65535.\nFor TCP, port number 0 is reserved and cannot be used, while for UDP, the source port is optional and a value of zero means no port\n"
          }
        ],
        "default": 8883,
        "description": "The SBC web port fot https.\n"
      },
      "transport_port": {
        "allOf": [
          {
            "type": "integer",
            "format": "int32",
            "minimum": 0,
            "maximum": 65535,
            "example": 80,
            "description": "A port number is a 16-bit unsigned integer, thus ranging from 0 to 65535.\nFor TCP, port number 0 is reserved and cannot be used, while for UDP, the source port is optional and a value of zero means no port\n"
          }
        ],
        "description": "The port of transport.\n"
      },
      "dealer_id": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
            "description": "The unique ID of the resource.\n"
          }
        ],
        "description": "The unique ID of dealer.\n"
      },
      "push_id": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
            "description": "The unique ID of the resource.\n"
          }
        ],
        "description": "The unique ID of push profile.\n"
      },
      "iprule_id": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
            "description": "The unique ID of the resource.\n"
          }
        ],
        "description": "The unique ID of IP rule.\n"
      },
      "expire_at": {
        "allOf": [
          {
            "type": "string",
            "format": "date_time",
            "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
            "example": "2017-07-21T17:32:28Z"
          }
        ],
        "description": "IP rule's expire time.\n"
      },
      "transport_id": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
            "description": "The unique ID of the resource.\n"
          }
        ],
        "description": "The unique ID of transport.\n"
      },
      "tenant_id": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
            "description": "The unique ID of the resource.\n"
          }
        ],
        "description": "The unique ID of tenant.\n"
      },
      "tenant_timezone": {
        "allOf": [
          {
            "type": "string",
            "description": "The IANA Time Zone names, such as \"Asia/Shanghai\".\n"
          }
        ],
        "description": "Timezone for tenant.\n"
      },
      "tenant_created_at": {
        "allOf": [
          {
            "type": "string",
            "format": "date_time",
            "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
            "example": "2017-07-21T17:32:28Z"
          }
        ],
        "description": "The creation time of tenant.\n"
      },
      "provider_id": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
            "description": "The unique ID of the resource.\n"
          }
        ],
        "description": "The unique ID of trunk.\n"
      },
      "file_id": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
            "description": "The unique ID of the resource.\n"
          }
        ],
        "description": "The unique ID of the file.\n"
      },
      "confserver_id": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
            "description": "The unique ID of the resource.\n"
          }
        ],
        "description": "The unique ID of conference server.\n"
      },
      "mediaserver_id": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
            "description": "The unique ID of the resource.\n"
          }
        ],
        "description": "The unique ID of media server.\n"
      },
      "extension_id": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
            "description": "The unique ID of the resource.\n"
          }
        ],
        "description": "The unique ID of user.\n"
      },
      "office_hours_with_mode": {
        "allOf": [
          {
            "type": "object",
            "properties": {
              "mode": {
                "type": "string",
                "enum": [
                  "GLOBAL",
                  "CUSTOM"
                ],
                "example": "CUSTOM",
                "description": "The office hours mode can be either:  \n- `GLOBAL`: Use global office hours.\n- `CUSTOM`: Use specific office hours.\n"
              }
            }
          },
          {
            "type": "object",
            "properties": {
              "monday": {
                "type": "object",
                "properties": {
                  "enabled": {
                    "type": "boolean",
                    "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                  },
                  "ranges": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "from": {
                          "type": "string",
                          "example": "09:00",
                          "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                        },
                        "to": {
                          "type": "string",
                          "example": "17:00",
                          "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                        }
                      }
                    },
                    "description": "Multiple start and end time periods make up the working time.\n"
                  }
                }
              },
              "tuesday": {
                "type": "object",
                "properties": {
                  "enabled": {
                    "type": "boolean",
                    "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                  },
                  "ranges": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "from": {
                          "type": "string",
                          "example": "09:00",
                          "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                        },
                        "to": {
                          "type": "string",
                          "example": "17:00",
                          "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                        }
                      }
                    },
                    "description": "Multiple start and end time periods make up the working time.\n"
                  }
                }
              },
              "wednesday": {
                "type": "object",
                "properties": {
                  "enabled": {
                    "type": "boolean",
                    "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                  },
                  "ranges": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "from": {
                          "type": "string",
                          "example": "09:00",
                          "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                        },
                        "to": {
                          "type": "string",
                          "example": "17:00",
                          "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                        }
                      }
                    },
                    "description": "Multiple start and end time periods make up the working time.\n"
                  }
                }
              },
              "thursday": {
                "type": "object",
                "properties": {
                  "enabled": {
                    "type": "boolean",
                    "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                  },
                  "ranges": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "from": {
                          "type": "string",
                          "example": "09:00",
                          "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                        },
                        "to": {
                          "type": "string",
                          "example": "17:00",
                          "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                        }
                      }
                    },
                    "description": "Multiple start and end time periods make up the working time.\n"
                  }
                }
              },
              "friday": {
                "type": "object",
                "properties": {
                  "enabled": {
                    "type": "boolean",
                    "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                  },
                  "ranges": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "from": {
                          "type": "string",
                          "example": "09:00",
                          "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                        },
                        "to": {
                          "type": "string",
                          "example": "17:00",
                          "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                        }
                      }
                    },
                    "description": "Multiple start and end time periods make up the working time.\n"
                  }
                }
              },
              "saturday": {
                "type": "object",
                "properties": {
                  "enabled": {
                    "type": "boolean",
                    "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                  },
                  "ranges": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "from": {
                          "type": "string",
                          "example": "09:00",
                          "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                        },
                        "to": {
                          "type": "string",
                          "example": "17:00",
                          "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                        }
                      }
                    },
                    "description": "Multiple start and end time periods make up the working time.\n"
                  }
                }
              },
              "sunday": {
                "type": "object",
                "properties": {
                  "enabled": {
                    "type": "boolean",
                    "description": "When enabled, all day is working time, when disabled, all day is vacation time.\n"
                  },
                  "ranges": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "from": {
                          "type": "string",
                          "example": "09:00",
                          "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"
                        },
                        "to": {
                          "type": "string",
                          "example": "17:00",
                          "description": "The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"
                        }
                      }
                    },
                    "description": "Multiple start and end time periods make up the working time.\n"
                  }
                }
              }
            }
          }
        ]
      },
      "profile": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
            "description": "The unique ID of the resource.\n"
          }
        ],
        "description": "The unique ID of user profile file.\n"
      },
      "greeting_id": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
            "description": "The unique ID of the resource.\n"
          }
        ],
        "description": "The unique ID of greeting.\n"
      },
      "phone_id": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
            "description": "The unique ID of the resource.\n"
          }
        ],
        "description": "The unique ID of phone.\n"
      },
      "phone_mac": {
        "allOf": [
          {
            "type": "string",
            "description": "MAC address.\n"
          }
        ],
        "description": "MAC address of this IP phone.\n"
      },
      "cdr_id": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
            "description": "The unique ID of the resource.\n"
          }
        ],
        "description": "The unique ID of CDR.\n"
      },
      "started_at": {
        "allOf": [
          {
            "type": "string",
            "format": "date_time",
            "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
            "example": "2017-07-21T17:32:28Z"
          }
        ],
        "description": "The start time of the call.\n"
      },
      "rang_at": {
        "allOf": [
          {
            "type": "string",
            "format": "date_time",
            "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
            "example": "2017-07-21T17:32:28Z"
          }
        ],
        "description": "The ringing time of the call.\n"
      },
      "answered_at": {
        "allOf": [
          {
            "type": "string",
            "format": "date_time",
            "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
            "example": "2017-07-21T17:32:28Z"
          }
        ],
        "description": "The answer time of the call.\n"
      },
      "ended_at": {
        "allOf": [
          {
            "type": "string",
            "format": "date_time",
            "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
            "example": "2017-07-21T17:32:28Z"
          }
        ],
        "description": "The end time of the call.\n"
      },
      "externalmsg_id": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
            "description": "The unique ID of the resource.\n"
          }
        ],
        "description": "The unique ID of external message.\n"
      },
      "externalmsg_created_at": {
        "allOf": [
          {
            "type": "string",
            "format": "date_time",
            "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
            "example": "2017-07-21T17:32:28Z"
          }
        ],
        "description": "The creation time of the message.\n"
      },
      "callrecording_id": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
            "description": "The unique ID of the resource.\n"
          }
        ],
        "readOnly": true,
        "description": "The unique ID of call recording.\n"
      },
      "callrecording_started_at": {
        "allOf": [
          {
            "type": "string",
            "format": "date_time",
            "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
            "example": "2017-07-21T17:32:28Z"
          }
        ],
        "description": "Time on which the call is answered.\n"
      },
      "callrecording_ended_at": {
        "allOf": [
          {
            "type": "string",
            "format": "date_time",
            "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
            "example": "2017-07-21T17:32:28Z"
          }
        ],
        "description": "Time on which the call is ended.\n"
      },
      "speed_dial_id": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
            "description": "The unique ID of the resource.\n"
          }
        ],
        "description": "The unique ID of speed dial.\n"
      },
      "confroom_id": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
            "description": "The unique ID of the resource.\n"
          }
        ],
        "description": "The unique ID of conference room.\n"
      },
      "confroom_created_at": {
        "allOf": [
          {
            "type": "string",
            "format": "date_time",
            "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
            "example": "2017-07-21T17:32:28Z"
          }
        ],
        "description": "The creation time of conference room.\n"
      },
      "scheduled_start_at": {
        "allOf": [
          {
            "type": "string",
            "format": "date_time",
            "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
            "example": "2017-07-21T17:32:28Z"
          }
        ],
        "description": "The scheduled start time of meeting.\n"
      },
      "scheduled_end_at": {
        "allOf": [
          {
            "type": "string",
            "format": "date_time",
            "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
            "example": "2017-07-21T17:32:28Z"
          }
        ],
        "description": "The scheduled end time of meeting.\n"
      },
      "participant_id": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
            "description": "The unique ID of the resource.\n"
          }
        ],
        "description": "The unique ID of conference room participant.\n"
      },
      "holiday_id": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
            "description": "The unique ID of the resource.\n"
          }
        ],
        "readOnly": true,
        "description": "The unique ID of holiday.\n"
      },
      "contact_id": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
            "description": "The unique ID of the resource.\n"
          }
        ],
        "description": "The unique ID of contact.\n"
      },
      "callqueue_id": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
            "description": "The unique ID of the resource.\n"
          }
        ],
        "description": "The unique ID of call queue.\n"
      },
      "callqueue_extension_number": {
        "allOf": [
          {
            "type": "string",
            "minLength": 3,
            "maxLength": 64,
            "pattern": "[0-9]{3,64}",
            "description": "The extension number.\n"
          }
        ],
        "description": "The extension number of call queue.\n"
      },
      "ringgroup_id": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
            "description": "The unique ID of the resource.\n"
          }
        ],
        "description": "The unique ID of ring group.\n"
      },
      "session_id": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
            "description": "The unique ID of the resource.\n"
          }
        ],
        "description": "The unique ID of session.\n"
      },
      "session_started_at": {
        "allOf": [
          {
            "type": "string",
            "format": "date_time",
            "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
            "example": "2017-07-21T17:32:28Z"
          }
        ],
        "description": "The start time of the call session.\n"
      },
      "extgrp_id": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
            "description": "The unique ID of the resource.\n"
          }
        ],
        "description": "The unique ID of user group.\n"
      },
      "voicemail_id": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
            "description": "The unique ID of the resource.\n"
          }
        ],
        "description": "The unique ID of voicemail.\n"
      },
      "voicemail_created_at": {
        "allOf": [
          {
            "type": "string",
            "format": "date_time",
            "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
            "example": "2017-07-21T17:32:28Z"
          }
        ],
        "description": "The creation time of voicemail.\n"
      },
      "queueserver_id": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
            "description": "The unique ID of the resource.\n"
          }
        ],
        "description": "The unique ID of call queue server.\n"
      },
      "callqueue_session_id": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
            "description": "The unique ID of the resource.\n"
          }
        ],
        "description": "The unique ID of session in call queue.\n"
      },
      "exclvnum_id": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
            "description": "The unique ID of the resource.\n"
          }
        ],
        "description": "The unique ID of exclusive number.\n"
      },
      "exclvnum_created_at": {
        "allOf": [
          {
            "type": "string",
            "format": "date_time",
            "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
            "example": "2017-07-21T17:32:28Z"
          }
        ],
        "description": "Exclusive number created at this time.\n"
      },
      "vipnum_id": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
            "description": "The unique ID of the resource.\n"
          }
        ],
        "description": "The unique ID of VIP number.\n"
      },
      "vipnum_created_at": {
        "allOf": [
          {
            "type": "string",
            "format": "date_time",
            "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
            "example": "2017-07-21T17:32:28Z"
          }
        ],
        "description": "Exclusive number created at this time.\n"
      },
      "updated_at": {
        "allOf": [
          {
            "type": "string",
            "format": "date_time",
            "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
            "example": "2017-07-21T17:32:28Z"
          }
        ],
        "description": "VIP number's modified time.\n"
      },
      "vipnum_expire_at": {
        "allOf": [
          {
            "type": "string",
            "format": "date_time",
            "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
            "example": "2017-07-21T17:32:28Z"
          }
        ],
        "description": "VIP number's expire time.\n"
      },
      "queueblacklist_id": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
            "description": "The unique ID of the resource.\n"
          }
        ],
        "description": "The unique ID of blacklisted number.\n"
      },
      "queueblacklist_created_at": {
        "allOf": [
          {
            "type": "string",
            "format": "date_time",
            "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
            "example": "2017-07-21T17:32:28Z"
          }
        ],
        "description": "The creation time of blacklisted number.\n"
      },
      "queueblacklist_updated_at": {
        "allOf": [
          {
            "type": "string",
            "format": "date_time",
            "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
            "example": "2017-07-21T17:32:28Z"
          }
        ],
        "description": "Blacklisted number's modified time.\n"
      },
      "queueblacklist_expire_at": {
        "allOf": [
          {
            "type": "string",
            "format": "date_time",
            "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
            "example": "2017-07-21T17:32:28Z"
          }
        ],
        "description": "Blacklisted number's expire time.\n"
      },
      "confrecording_id": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
            "description": "The unique ID of the resource.\n"
          }
        ],
        "description": "The unique ID of conference recording.\n"
      },
      "confrecording_answered_at": {
        "allOf": [
          {
            "type": "string",
            "format": "date_time",
            "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
            "example": "2017-07-21T17:32:28Z"
          }
        ],
        "description": "Time on which the call is answered.\n"
      },
      "confrecording_ended_at": {
        "allOf": [
          {
            "type": "string",
            "format": "date_time",
            "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
            "example": "2017-07-21T17:32:28Z"
          }
        ],
        "description": "Time on which the call is ended.\n"
      },
      "emergnum_id": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
            "description": "The unique ID of the resource.\n"
          }
        ],
        "description": "The unique ID of emergency number.\n"
      },
      "file_created_at": {
        "allOf": [
          {
            "type": "string",
            "format": "date_time",
            "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
            "example": "2017-07-21T17:32:28Z"
          }
        ],
        "description": "The creation time of the file.\n"
      },
      "inboundrule_id": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
            "description": "The unique ID of the resource.\n"
          }
        ],
        "description": "The unique ID of inbound rule.\n"
      },
      "moh_id": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
            "description": "The unique ID of the resource.\n"
          }
        ],
        "description": "The unique ID of MOH music.\n"
      },
      "monitor_extension_number": {
        "allOf": [
          {
            "type": "string",
            "minLength": 3,
            "maxLength": 64,
            "pattern": "[0-9]{3,64}",
            "description": "The extension number.\n"
          }
        ],
        "description": "The extension number of monitor server.\n"
      },
      "monitorgrp_id": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
            "description": "The unique ID of the resource.\n"
          }
        ],
        "description": "The unique ID of monitor group.\n"
      },
      "callpark_extension_number": {
        "allOf": [
          {
            "type": "string",
            "minLength": 3,
            "maxLength": 64,
            "pattern": "[0-9]{3,64}",
            "description": "The extension number.\n"
          }
        ],
        "description": "Extension number used by call park server.\n"
      },
      "ring_group_id": {
        "allOf": [
          {
            "allOf": [
              {
                "type": "string",
                "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
                "description": "The unique ID of the resource.\n"
              }
            ],
            "description": "The unique ID of ring group.\n"
          }
        ],
        "description": "The unique ID of ring group.\nSelect a Ring Group as the Recall destination. \nOnly valid when the value of `recall_to` is `USER_FIRST_THEN_RING_GROUP` or `RING_GROUP_ONLY`.\n"
      },
      "callparkgrp_id": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
            "description": "The unique ID of the resource.\n"
          }
        ],
        "description": "The unique ID of call park group.\n"
      },
      "callpickupgrp_id": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
            "description": "The unique ID of the resource.\n"
          }
        ],
        "description": "The unique ID of call pick group.\n"
      },
      "voicemailsrv_extension_number": {
        "allOf": [
          {
            "type": "string",
            "minLength": 3,
            "maxLength": 64,
            "pattern": "[0-9]{3,64}",
            "description": "The extension number.\n"
          }
        ],
        "description": "The extension number of voicemail server."
      },
      "acb_extension_number": {
        "allOf": [
          {
            "type": "string",
            "minLength": 3,
            "maxLength": 64,
            "pattern": "[0-9]{3,64}",
            "description": "The extension number.\n"
          }
        ],
        "description": "The extension number of automatic callback service.\n"
      },
      "outboundrule_id": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
            "description": "The unique ID of the resource.\n"
          }
        ],
        "description": "The unique ID of outbound rule.\n"
      },
      "dectphone_id": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
            "description": "The unique ID of the resource.\n"
          }
        ],
        "description": "The unique ID of DECT phone.\n"
      },
      "provider_hostname": {
        "allOf": [
          {
            "type": "string",
            "description": "Server hostname or IP address\n"
          }
        ],
        "description": "The hostname of trunk.\n"
      },
      "provider_port": {
        "allOf": [
          {
            "type": "integer",
            "format": "int32",
            "minimum": 0,
            "maximum": 65535,
            "example": 80,
            "description": "A port number is a 16-bit unsigned integer, thus ranging from 0 to 65535.\nFor TCP, port number 0 is reserved and cannot be used, while for UDP, the source port is optional and a value of zero means no port\n"
          }
        ],
        "description": "The port of trunk.\n"
      },
      "outbound_server_port": {
        "allOf": [
          {
            "type": "integer",
            "format": "int32",
            "minimum": 0,
            "maximum": 65535,
            "example": 80,
            "description": "A port number is a 16-bit unsigned integer, thus ranging from 0 to 65535.\nFor TCP, port number 0 is reserved and cannot be used, while for UDP, the source port is optional and a value of zero means no port\n"
          }
        ],
        "description": "The outbound server port of the trunk.\n"
      },
      "sharedvoicemail_id": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
            "description": "The unique ID of the resource.\n"
          }
        ],
        "description": "The unique ID of shared voicemail.\n"
      },
      "prompt": {
        "allOf": [
          {
            "type": "string",
            "example": "en-US",
            "description": "BCP 47 Language Tags (The Internet Best Current Practices (BCP) for language tags).\nA language tag is composed of a sequence of one or more subtags such as language, region, variant and script subtags.\nWhen a language tag is comprised of more than one subtag, the subtag values are separated by the \"-\" character.\nYou will most commonly find language tags written with 2 subtags - language and region. For example: en-US.\n"
          }
        ],
        "description": "The prompt set name of shared voicemail.\n"
      },
      "blockcode_id": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
            "description": "The unique ID of the resource.\n"
          }
        ],
        "description": "The unique ID of blocked code.\n"
      },
      "blacklist_id": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
            "description": "The unique ID of the resource.\n"
          }
        ],
        "description": "The unique ID of this blacklisted number.\n"
      },
      "blacklist_expire_at": {
        "allOf": [
          {
            "type": "string",
            "format": "date_time",
            "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
            "example": "2017-07-21T17:32:28Z"
          }
        ],
        "description": "Blacklisted number's expire time.\n"
      },
      "blacklist_created_at": {
        "allOf": [
          {
            "type": "string",
            "format": "date_time",
            "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
            "example": "2017-07-21T17:32:28Z"
          }
        ],
        "description": "Blacklisted number's creation time.\n"
      },
      "blacklist_updated_at": {
        "allOf": [
          {
            "type": "string",
            "format": "date_time",
            "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
            "example": "2017-07-21T17:32:28Z"
          }
        ],
        "description": "Blacklisted number's last updated time.\n"
      },
      "billing_id": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
            "description": "The unique ID of the resource.\n"
          }
        ],
        "description": "The unique ID of billing.\n"
      },
      "ivrserver_id": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
            "description": "The unique ID of the resource.\n"
          }
        ],
        "description": "The unique ID of virtual receptionist server.\n"
      },
      "ivr_id": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
            "description": "The unique ID of the resource.\n"
          }
        ],
        "description": "The unique ID of virtual receptionist.\n"
      },
      "actionurl_id": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
            "description": "The unique ID of the resource.\n"
          }
        ],
        "description": "The unique ID of action url.\n"
      },
      "hotdesking_id": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
            "description": "The unique ID of the resource.\n"
          }
        ],
        "description": "The unique ID of hot desking.\n"
      },
      "hotdesking_extension_number": {
        "allOf": [
          {
            "type": "string",
            "minLength": 3,
            "maxLength": 64,
            "pattern": "[0-9]{3,64}",
            "description": "The extension number.\n"
          }
        ],
        "description": "The extension number of hot desking.\n"
      },
      "current_extension_number": {
        "allOf": [
          {
            "type": "string",
            "minLength": 3,
            "maxLength": 64,
            "pattern": "[0-9]{3,64}",
            "description": "The extension number.\n"
          }
        ],
        "description": "The current extension number of hot desking.\n"
      },
      "hotdesking_extension_password": {
        "allOf": [
          {
            "type": "string",
            "description": "The extension password.\n"
          }
        ],
        "description": "The extension password of hot desking.\n"
      },
      "sms_id": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
            "description": "The unique ID of the resource.\n"
          }
        ],
        "description": "The unique ID of SMS/MMS service.\n"
      },
      "whatsapp_id": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
            "description": "The unique ID of the resource.\n"
          }
        ],
        "description": "The unique ID of WhatsApp service.\n"
      },
      "cdr_session_id": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
            "description": "The unique ID of the resource.\n"
          }
        ],
        "description": "The session ID of call log.\n"
      },
      "callreport_id": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
            "description": "The unique ID of the resource.\n"
          }
        ],
        "description": "The unique ID of this call report.\n"
      },
      "callreport_email": {
        "allOf": [
          {
            "type": "string",
            "maxLength": 128,
            "description": "The email address.\n",
            "example": "example@example.com"
          }
        ],
        "description": "The email address to which the report file will be sent after the report is complete.\n"
      },
      "callreport_started_at": {
        "allOf": [
          {
            "type": "string",
            "format": "date_time",
            "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
            "example": "2017-07-21T17:32:28Z"
          }
        ],
        "description": "Filter data after specified data time.  \nOnly valid when the `range` is specified as `CUSTOM`\n"
      },
      "callreport_ended_at": {
        "allOf": [
          {
            "type": "string",
            "format": "date_time",
            "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
            "example": "2017-07-21T17:32:28Z"
          }
        ],
        "description": "Filter data before specified data time.  \nOnly valid when the `range` is specified as `CUSTOM`\n"
      },
      "completed_at": {
        "allOf": [
          {
            "type": "string",
            "format": "date_time",
            "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
            "example": "2017-07-21T17:32:28Z"
          }
        ],
        "description": "The completed time of call report.\n"
      },
      "auditlog_id": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
            "description": "The unique ID of the resource.\n"
          }
        ],
        "description": "The unique ID of audit log.\n"
      },
      "auditlog_created_at": {
        "allOf": [
          {
            "type": "string",
            "format": "date_time",
            "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
            "example": "2017-07-21T17:32:28Z"
          }
        ],
        "description": "The creation time of the audit log.\n"
      },
      "auditlog_ip": {
        "allOf": [
          {
            "type": "string",
            "format": "date_time",
            "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
            "example": "2017-07-21T17:32:28Z"
          }
        ],
        "description": "The IP address of the audit log.\n"
      },
      "eventlog_id": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
            "description": "The unique ID of the resource.\n"
          }
        ],
        "description": "The unique ID of event log.\n"
      },
      "eventlog_created_at": {
        "allOf": [
          {
            "type": "string",
            "format": "date_time",
            "description": "The RFC 3339 format is defined by\nThe date_time notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), \nfor example, 2017-07-21T17:32:28Z\n",
            "example": "2017-07-21T17:32:28Z"
          }
        ],
        "description": "The creation time of the event log.\n"
      },
      "crm_call_id": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
            "description": "The unique ID of the resource.\n"
          }
        ],
        "description": "The unique ID of CRM call.\n"
      },
      "not-ready-code_id": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw",
            "description": "The unique ID of the resource.\n"
          }
        ],
        "description": "The unique ID of the not ready code.\n"
      }
    }
  }
}