{
  "openapi": "3.1.0",
  "info": {
    "title": "PortSIP PBX Rest API",
    "version": "22.6",
    "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\n> 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\n  Universal Time (UTC).\n- For detailed information on timestamps in RFC 3339, refer\n  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`,\n  `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\n  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\n“summary” representation of the resource. Some attributes are computationally expensive for the API to provide. For\nperformance reasons, the summary representation excludes those attributes. To obtain those attributes, fetch the\n“detailed” representation.\n\n## Resource ID\n\nEach resource has a corresponding ID, for example, `NzAwNTUxOTA5NzczMTQ4MTYw`. After successfully creating the resource,\nthe user will receive the returned ID and must provide this ID when accessing the resource. Clients should treat this ID\nas an opaque string and should never attempt to assemble it. This document imposes no constraints on the format, and\nclients 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\nreturned for the resource in the URL. Essentially, a query option requests that a service perform a set of\ntransformations, 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\nspecified with $filter is evaluated for each resource in the collection, and only items where the expression evaluates\nto true are included in the response. Resources for which the expression evaluates to false or null, or which reference\nproperties unavailable due to permissions, are omitted from the response. You can find details on filter specification\nin 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:\n  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:\n  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:\n  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\nskip query option requests the number of items in the queried collection that are to be skipped and not included in the\nresult. A client can request a particular page of items by combining top and skip. Note that skip numbering is 1-based\nand 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\nthe 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\nexpression. The search query option can be applied to a URL representing a collection of entity, complex, or primitive\ntyped instances. If both search and filter are applied to the same request, the results include only those items that\nmatch 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\n  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 \"\ndetailed\" representation of the resource. Note that authorization sometimes influences the amount of detail included in\nthe representation.\n\n## Timezones\n\nSome requests that create new data allow you to provide time zone information when specifying or generating timestamps.\nWe 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\nabout 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\nJSON 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\n  issue.\n  While the client can take action on certain error codes, the registry may add new error codes over time. All client\n  implementations should treat unknown error codes as `UNKNOWN`, allowing future error codes to be added without\n  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\nfollows:\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.\n  As you can see, after the initial sync, only items that have been created, updated, or deleted will be sent. This has\n  several advantages. The transmitted HTTP response bodies can generally be much shorter, and it is easier on both the\n  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\nbe 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\n   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\nrequest 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```\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- `enable_google_integration`\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",
                      "minLength": 1,
                      "maxLength": 128,
                      "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_google_integration": {
                      "type": "boolean",
                      "description": "Google SSO integration enabled or not.\n"
                    },
                    "enable_dataflow": {
                      "type": "boolean",
                      "description": "Dataflow service enabled or not.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "",
                    "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_google_integration": false,
                      "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": "",
                  "value": {
                    "username": "user",
                    "password": "xxxxxx",
                    "domain": "example.com"
                  }
                }
              }
            }
          }
        },
        "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": "",
                    "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 and google.\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": "",
                  "value": {
                    "domain": "example.com",
                    "callback_url": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "url": {
                      "type": "string",
                      "description": "The IdP authentication url.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "",
                    "value": {
                      "url": "https://example.com"
                    }
                  }
                }
              }
            }
          },
          "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": "",
                  "value": {
                    "token": ""
                  }
                }
              }
            }
          }
        },
        "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": "",
                  "value": {
                    "token": "xxxxxx",
                    "code": "xxxxxx"
                  }
                }
              }
            }
          }
        },
        "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.\nFor system administrators and dealers, the `domain` field is not required.\nFor tenant users, the `domain` field is required.\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": [
                  "username",
                  "callback_url"
                ]
              },
              "examples": {
                "default": {
                  "summary": "An example for forget password",
                  "value": {
                    "domain": "example.com",
                    "username": "user",
                    "callback_url": "http://localhost/callback"
                  }
                },
                "system_admin": {
                  "summary": "System Administrator forget password",
                  "value": {
                    "username": "admin",
                    "callback_url": "https://example.com/callback"
                  }
                },
                "dealer": {
                  "summary": "Dealer forget password",
                  "value": {
                    "username": "dealer1",
                    "callback_url": "https://example.com/callback"
                  }
                }
              }
            }
          }
        },
        "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": "",
                  "value": {
                    "token": "",
                    "new_password": "xxxxxx"
                  }
                }
              }
            }
          }
        },
        "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": "",
                  "value": {
                    "refresh_token": ""
                  }
                }
              }
            }
          }
        },
        "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 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": "",
                    "value": {
                      "domain": "example.com",
                      "role_id": "xxxxxx",
                      "role_name": "example",
                      "capabilities": [
                        "Company.Information",
                        "Company.ViewOnly",
                        "GeneralCallLog.FullAccess",
                        "GeneralCallLog.ViewOnly",
                        "GeneralCallRecording.FullAccess",
                        "GeneralCallRecording.ViewOnly",
                        "GeneralMeeting.FullAccess",
                        "GeneralMeeting.ViewOnly",
                        "GeneralVoicemail.FullAccess",
                        "GeneralVoicemail.ViewOnly"
                      ],
                      "password_verified": true,
                      "password_force_reset": false
                    }
                  }
                }
              }
            }
          },
          "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": "",
                    "value": {
                      "access_token": "xxxxxx",
                      "expires_at": "2020-01-01T00:00:00Z",
                      "expires_in": 3600,
                      "role": "Admin"
                    }
                  }
                }
              }
            }
          },
          "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": "",
                  "value": {
                    "username": "user",
                    "password": "xxxxxx",
                    "domain": "example.com"
                  }
                }
              }
            }
          }
        },
        "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": "",
                  "value": {
                    "domain": "example.com"
                  }
                }
              }
            }
          }
        },
        "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"
                    },
                    "sbc_domain": {
                      "type": "string",
                      "description": "The SBC domain.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "",
                    "value": {
                      "web_domain": "example.com",
                      "private_ipv4": "127.0.0.1",
                      "public_ipv4": "192.0.2.0",
                      "enable_ipv6": true,
                      "private_ipv6": "::1",
                      "public_ipv6": "2001:0db8:0a0b:12f0::1",
                      "primary_dns_server": "",
                      "secondary_dns_server": "",
                      "sbc_domain": "example.com"
                    }
                  }
                }
              }
            }
          },
          "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": "",
                  "value": {
                    "web_domain": "example.com",
                    "private_ipv4": "127.0.0.1",
                    "public_ipv4": "192.0.2.0",
                    "enable_ipv6": true,
                    "private_ipv6": "::1",
                    "public_ipv6": "2001:0db8:0a0b:12f0::1",
                    "primary_dns_server": "",
                    "secondary_dns_server": ""
                  }
                }
              }
            }
          },
          "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",
                    "minLength": 1,
                    "maxLength": 128,
                    "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": {
                  "summary": "",
                  "value": {
                    "name": "xxxxxx",
                    "password": "xxxxxx",
                    "email": "example@example.com",
                    "display_name": "example",
                    "enabled": true,
                    "role": "OperationsAdmin",
                    "mobile_phone": "",
                    "work_phone": "",
                    "home_phone": "",
                    "address": "",
                    "department": "",
                    "website": ""
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                    }
                  }
                },
                "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"
                          },
                          "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",
                            "minLength": 1,
                            "maxLength": 128,
                            "description": "The display name of user.\n"
                          },
                          "role_id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                              }
                            ],
                            "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": "",
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": "xxxxxx",
                          "name": "example",
                          "enabled": true,
                          "protected": false,
                          "email": "example@example.com",
                          "display_name": "example",
                          "role_id": "xxxxxx",
                          "role_name": "example",
                          "mobile_phone": "",
                          "work_phone": "",
                          "home_phone": "",
                          "address": "",
                          "department": "",
                          "website": "https://example.com",
                          "created_at": "2020-01-01T00:00:00Z",
                          "login_at": "2020-01-01T00:00:00Z",
                          "logout_at": "2020-01-01T00:00:00Z",
                          "avatar_file_name": "example",
                          "avatar_file_size": 123,
                          "avatar_file_url": ""
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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 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 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",
                      "minLength": 1,
                      "maxLength": 128,
                      "description": "The display name of user.\n"
                    },
                    "role_id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                        }
                      ],
                      "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": "",
                    "value": {
                      "id": "xxxxxx",
                      "name": "user",
                      "email": "example@example.com",
                      "display_name": "example",
                      "role_id": "xxxxxx",
                      "role_name": "OperationsAdmin",
                      "enabled": true,
                      "protected": false,
                      "mobile_phone": "",
                      "work_phone": "",
                      "home_phone": "",
                      "address": "",
                      "department": "",
                      "website": "https://example.com",
                      "created_at": "2020-01-01T00:00:00Z",
                      "login_at": "2020-01-01T00:00:00Z",
                      "logout_at": "2020-01-01T00:00:00Z",
                      "avatar_file_name": "example",
                      "avatar_file_size": 123,
                      "avatar_file_url": ""
                    }
                  }
                }
              }
            }
          },
          "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 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",
                    "minLength": 1,
                    "maxLength": 128,
                    "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": "",
                  "value": {
                    "email": "example@example.com",
                    "display_name": "example",
                    "enabled": true,
                    "mobile_phone": "",
                    "work_phone": "",
                    "home_phone": "",
                    "address": "",
                    "department": "",
                    "website": "https://example.com"
                  }
                }
              }
            }
          },
          "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 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": "",
                  "value": {
                    "name": "example"
                  }
                }
              }
            }
          },
          "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 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": "",
                  "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 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": "",
                  "value": {
                    "role": "OperationsAdmin"
                  }
                }
              }
            }
          },
          "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 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 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",
                      "minLength": 1,
                      "maxLength": 128,
                      "description": "The display name of user.\n"
                    },
                    "role_id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                        }
                      ],
                      "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": "",
                    "value": {
                      "id": "xxxxxx",
                      "name": "user",
                      "email": "example@example.com",
                      "display_name": "example",
                      "role_id": "xxxxxx",
                      "role_name": "SystemAdmin",
                      "enabled": true,
                      "protected": true,
                      "mobile_phone": "",
                      "work_phone": "",
                      "home_phone": "",
                      "address": "",
                      "department": "",
                      "website": "https://example.com",
                      "created_at": "2020-01-01T00:00:00Z",
                      "login_at": "2020-01-01T00:00:00Z",
                      "logout_at": "2020-01-01T00:00:00Z",
                      "avatar_file_name": "example",
                      "avatar_file_size": 123,
                      "avatar_file_url": ""
                    }
                  }
                }
              }
            }
          },
          "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",
                    "minLength": 1,
                    "maxLength": 128,
                    "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": "",
                  "value": {
                    "email": "example@example.com",
                    "display_name": "example",
                    "mobile_phone": "",
                    "work_phone": "",
                    "home_phone": "",
                    "address": "",
                    "department": "",
                    "website": "https://example.com"
                  }
                }
              }
            }
          },
          "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": "",
                  "value": {
                    "name": "example"
                  }
                }
              }
            }
          },
          "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": "",
                  "value": {
                    "old_password": "xxxxxx",
                    "new_password": "xxxxxx"
                  }
                }
              }
            }
          },
          "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": "",
                    "value": {
                      "version": "",
                      "news": "",
                      "license_key": "",
                      "license_type": "",
                      "maintenance_expires_at": "2020-01-01T00:00:00Z",
                      "max_concurrent_calls": 100,
                      "licensed_users": 100,
                      "current_users": 100,
                      "online_users": 100,
                      "current_tenants": 100,
                      "current_dealers": 10,
                      "current_calls": 100,
                      "current_trunks": 100,
                      "current_conference_servers": 10,
                      "current_media_servers": 10,
                      "current_call_queue_servers": 10,
                      "current_ivr_servers": 10
                    }
                  }
                }
              }
            }
          },
          "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_two_factor_authentication": {
                      "type": "boolean",
                      "default": false,
                      "description": "Enable two factor authentication for users.\n"
                    },
                    "enable_verify_phone_auto_provisioning": {
                      "type": "boolean",
                      "default": false,
                      "description": "Enable voicemail PIN verification for IP phone auto-provisioning.  \nWhen enabled, IP phones must provide voicemail PIN to download configuration files.\n"
                    },
                    "verify_phone_auto_provisioning_exclude": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "description": "JSON array of phone vendor names excluded from voicemail PIN verification during auto-provisioning.\nIf a phone's vendor is in this list, it will skip PIN verification when downloading configuration files.\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"
                    },
                    "enable_sip603_reason_header": {
                      "type": "boolean",
                      "default": true,
                      "description": "Controls whether the PBX includes an enhanced Reason header in SIP 603 (Decline) responses.\nWhen enabled:\n- For extension calls, the PBX responds with SIP 603 and includes a Reason header with analytics information and location set to \"LPN\".\n- For trunk calls, the PBX responds with SIP 603 and includes a Reason header with analytics information and location set to \"RPN\".\nWhen disabled:\n- The PBX responds with standard SIP 603 without a Reason header.\n"
                    },
                    "hide_pbx_private_ip": {
                      "type": "boolean",
                      "default": false,
                      "description": "Hide private network information or not.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "",
                    "value": {
                      "user_agent": "example",
                      "blocked_user_agents": "",
                      "enable_shared_address_space_address_range": true,
                      "enable_digest_auth": true,
                      "enable_auth_mid_dialog": true,
                      "enable_digest_auth_int": true,
                      "enable_external_recording": true,
                      "enable_reject_bad_nonce": true,
                      "statistics_log_interval": 600,
                      "dead_session_timeout": 600,
                      "enable_session_timer": true,
                      "session_timer_duration": 3600,
                      "enable_to_tag_in_register": true,
                      "enable_congestion_management": true,
                      "congestion_management_metric": "WAIT_TIME",
                      "congestion_management_tolerance": 600,
                      "enable_create_non_exist_extension": true,
                      "enable_verify_phone_auto_provisioning": true,
                      "verify_phone_auto_provisioning_exclude": [
                        "Snom",
                        "Yealink"
                      ],
                      "enable_two_factor_authentication": true,
                      "enable_prack": true,
                      "enable_tenant_level_trunk": true,
                      "enable_diversion_support": true,
                      "enable_history_info_support": true,
                      "enable_outbound_support": true,
                      "flow_timer": 0,
                      "register_expiration_time": 300,
                      "enable_auto_answer_alert_info_header": true,
                      "auto_answer_alert_info_header": "INTERCOM",
                      "enable_auto_answer_call_info_header": true,
                      "enable_require_answer_mode": true,
                      "enable_www_auth": true,
                      "user_equal_required_for_auth_name": true,
                      "trace_server_host": "",
                      "trace_server_port": 1000,
                      "web_failed_auth_amount": 5,
                      "web_blacklist_time_interval": 3600,
                      "sip_failed_auth_amount": 50,
                      "sip_failed_challenge_requests_amount": 1000,
                      "sip_blacklist_time_interval": 3600,
                      "sip_detection_period": 10,
                      "sip_barrier_1_packets": 5000,
                      "sip_barrier_1_blocking_time": 3600,
                      "sip_barrier_2_packets": 2000,
                      "sip_barrier_2_blocking_time": 30,
                      "stir_shaken_cert": "",
                      "stir_shaken_key": "",
                      "custom_options": "",
                      "enable_sip603_reason_header": true,
                      "hide_pbx_private_ip": false
                    }
                  }
                }
              }
            }
          },
          "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_two_factor_authentication": {
                    "type": "boolean",
                    "default": false,
                    "description": "Enable two factor authentication for users.\n"
                  },
                  "enable_verify_phone_auto_provisioning": {
                    "type": "boolean",
                    "default": false,
                    "description": "Enable voicemail PIN verification for IP phone auto-provisioning.  \nWhen enabled, IP phones must provide voicemail PIN to download configuration files.\n"
                  },
                  "verify_phone_auto_provisioning_exclude": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "description": "JSON array of phone vendor names excluded from voicemail PIN verification during auto-provisioning.\nIf a phone's vendor is in this list, it will skip PIN verification when downloading configuration files.\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"
                  },
                  "enable_sip603_reason_header": {
                    "type": "boolean",
                    "default": true,
                    "description": "Controls whether the PBX includes an enhanced Reason header in SIP 603 (Decline) responses.\nWhen enabled:\n- For extension calls, the PBX responds with SIP 603 and includes a Reason header with analytics information and location set to \"LPN\".\n- For trunk calls, the PBX responds with SIP 603 and includes a Reason header with analytics information and location set to \"RPN\".\nWhen disabled:\n- The PBX responds with standard SIP 603 without a Reason header.\n"
                  },
                  "hide_pbx_private_ip": {
                    "type": "boolean",
                    "default": false,
                    "description": "Hide private network information or not.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": "",
                  "value": {
                    "user_agent": "example",
                    "blocked_user_agents": "",
                    "enable_shared_address_space_address_range": true,
                    "enable_digest_auth": true,
                    "enable_auth_mid_dialog": true,
                    "enable_digest_auth_int": true,
                    "enable_external_recording": true,
                    "enable_reject_bad_nonce": true,
                    "statistics_log_interval": 600,
                    "dead_session_timeout": 600,
                    "enable_session_timer": true,
                    "session_timer_duration": 3600,
                    "enable_to_tag_in_register": true,
                    "enable_congestion_management": true,
                    "congestion_management_metric": "WAIT_TIME",
                    "congestion_management_tolerance": 600,
                    "enable_create_non_exist_extension": true,
                    "enable_verify_phone_auto_provisioning": true,
                    "verify_phone_auto_provisioning_exclude": [
                      "Snom",
                      "Yealink"
                    ],
                    "enable_two_factor_authentication": true,
                    "enable_prack": true,
                    "enable_tenant_level_trunk": true,
                    "enable_diversion_support": true,
                    "enable_history_info_support": true,
                    "enable_outbound_support": true,
                    "flow_timer": 0,
                    "register_expiration_time": 300,
                    "enable_auto_answer_alert_info_header": true,
                    "auto_answer_alert_info_header": "INTERCOM",
                    "enable_auto_answer_call_info_header": true,
                    "enable_require_answer_mode": true,
                    "enable_www_auth": true,
                    "user_equal_required_for_auth_name": true,
                    "trace_server_host": "",
                    "trace_server_port": 1000,
                    "web_failed_auth_amount": 1000,
                    "web_blacklist_time_interval": 3600,
                    "sip_failed_auth_amount": 50,
                    "sip_failed_challenge_requests_amount": 1000,
                    "sip_blacklist_time_interval": 3600,
                    "sip_detection_period": 10,
                    "sip_barrier_1_packets": 5000,
                    "sip_barrier_1_blocking_time": 3600,
                    "sip_barrier_2_packets": 2000,
                    "sip_barrier_2_blocking_time": 30,
                    "stir_shaken_cert": "",
                    "stir_shaken_key": "",
                    "custom_options": "",
                    "enable_sip603_reason_header": true,
                    "hide_pbx_private_ip": false
                  }
                }
              }
            }
          },
          "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": true,
                      "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": true,
                      "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": true,
                      "description": "Send an email notification when specified memory threshold is exceeded.\n"
                    },
                    "notify_ip_blocked": {
                      "type": "boolean",
                      "default": true,
                      "description": "Send a notification email when ip blocked.\n"
                    },
                    "notify_license_limited": {
                      "type": "boolean",
                      "default": true,
                      "description": "Send a notification email when license limit reached.\n"
                    },
                    "notify_service_status_changed": {
                      "type": "boolean",
                      "default": true,
                      "description": "Send a notification email when some service status changed.\n"
                    },
                    "notify_push_certs_update_failed": {
                      "type": "boolean",
                      "default": true,
                      "description": "Send a notification email when push notification certificates update failed.\n"
                    },
                    "notify_trunk_status_changed": {
                      "type": "boolean",
                      "default": false,
                      "description": "Send a notification email when trunk status changed.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "An example for get system email notification integrations",
                    "value": {
                      "type": "SMTP",
                      "server": "",
                      "port": 1000,
                      "reply_to": "",
                      "username": "example",
                      "auth": "AUTO",
                      "enable_tls_ssl": true,
                      "enable_starttls_auto": true,
                      "recipients": "",
                      "enable_tenant_access": false,
                      "hard_disk_threshold": 90,
                      "notify_hard_disk_exceeded_threshold": true,
                      "cpu_threshold": 90,
                      "notify_cpu_exceeded_threshold": true,
                      "memory_threshold": 90,
                      "notify_memory_exceeded_threshold": true,
                      "notify_ip_blocked": true,
                      "notify_license_limited": true,
                      "notify_service_status_changed": true,
                      "notify_push_certs_update_failed": true,
                      "notify_trunk_status_changed": true
                    }
                  }
                }
              }
            }
          },
          "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": true,
                    "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": true,
                    "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": true,
                    "description": "Send an email notification when specified memory threshold is exceeded.\n"
                  },
                  "notify_ip_blocked": {
                    "type": "boolean",
                    "default": true,
                    "description": "Send a notification email when ip blocked.\n"
                  },
                  "notify_license_limited": {
                    "type": "boolean",
                    "default": true,
                    "description": "Send a notification email when license limit reached.\n"
                  },
                  "notify_service_status_changed": {
                    "type": "boolean",
                    "default": true,
                    "description": "Send a notification email when some service status changed.\n"
                  },
                  "notify_push_certs_update_failed": {
                    "type": "boolean",
                    "default": true,
                    "description": "Send a notification email when push notification certificates update failed.\n"
                  },
                  "notify_trunk_status_changed": {
                    "type": "boolean",
                    "default": false,
                    "description": "Send a notification email when trunk status changed.\n"
                  }
                },
                "required": [
                  "type",
                  "username"
                ]
              },
              "examples": {
                "default": {
                  "summary": "An example for update system email notification integrations",
                  "value": {
                    "type": "SMTP",
                    "server": "",
                    "port": 1000,
                    "reply_to": "",
                    "username": "example",
                    "password": "",
                    "auth": "AUTO",
                    "enable_tls_ssl": true,
                    "enable_starttls_auto": true,
                    "recipients": "",
                    "enable_tenant_access": false,
                    "hard_disk_threshold": 90,
                    "notify_hard_disk_exceeded_threshold": false,
                    "cpu_threshold": 90,
                    "notify_cpu_exceeded_threshold": false,
                    "memory_threshold": 90,
                    "notify_memory_exceeded_threshold": false,
                    "notify_ip_blocked": true,
                    "notify_license_limited": true,
                    "notify_service_status_changed": true,
                    "notify_push_certs_update_failed": true,
                    "notify_trunk_status_changed": true
                  }
                }
              }
            }
          }
        },
        "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": "",
                    "subject": "example",
                    "content": ""
                  }
                }
              }
            }
          },
          "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": "GLOBAL",
                      "directory_id": "",
                      "application_id": "",
                      "redirect_uri": "",
                      "sbc_redirect_uri": ""
                    }
                  }
                }
              }
            }
          },
          "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": "GLOBAL",
                    "directory_id": "",
                    "application_id": ""
                  }
                }
              }
            }
          }
        },
        "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": "",
                      "client_secret": "",
                      "redirect_uri": "",
                      "sbc_redirect_uri": "",
                      "auth_consent_uri": ""
                    }
                  }
                }
              }
            }
          },
          "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": "",
                    "client_secret": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/admin/google/authorization": {
      "post": {
        "tags": [
          "Administration"
        ],
        "summary": "Generate Google authorization URL for admin",
        "description": "Generate Google authorization URL for admin",
        "operationId": "globalGoogleAuthorization",
        "x-category": "integrations",
        "x-subcategory": "google",
        "requestBody": {
          "description": "Google authorization request",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "client_id": {
                    "type": "string",
                    "description": "Google client ID"
                  },
                  "client_secret": {
                    "type": "string",
                    "description": "Google client secret"
                  },
                  "callback_url": {
                    "type": "string",
                    "description": "Callback URL after authorization"
                  }
                },
                "required": [
                  "client_id",
                  "client_secret"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "auth_consent_uri": {
                      "type": "string",
                      "description": "Google authorization URL"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "409": {
            "description": "Client ID already exists"
          },
          "500": {
            "description": "Internal server error"
          }
        }
      }
    },
    "/admin/google/destroy": {
      "post": {
        "tags": [
          "Integration"
        ],
        "operationId": "deleteGlobalGoogle",
        "x-category": "system-management",
        "x-subcategory": "integrations",
        "x-permissions": [
          "SystemSettings.FullAccess"
        ],
        "summary": "Delete global Google integration",
        "description": "Delete global Google integration settings.\n",
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/admin/ms365/destroy": {
      "post": {
        "tags": [
          "Integration"
        ],
        "operationId": "deleteGlobalMS365",
        "x-category": "system-management",
        "x-subcategory": "integrations",
        "x-permissions": [
          "SystemSettings.FullAccess"
        ],
        "summary": "Delete global Microsoft 365 integration",
        "description": "Delete global Microsoft 365 integration settings.\n",
        "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",
                        "deepgram"
                      ]
                    },
                    "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"
                          ]
                        },
                        {
                          "summary": "Schema for Azure AI Engine configuration",
                          "type": "object",
                          "properties": {
                            "api_key": {
                              "type": "string"
                            },
                            "language": {
                              "type": "string"
                            },
                            "model": {
                              "type": "string"
                            },
                            "max_speech_to_text_concurrent": {
                              "type": "integer"
                            },
                            "redaction": {
                              "type": "boolean"
                            },
                            "ssn": {
                              "type": "boolean"
                            },
                            "pci": {
                              "type": "boolean"
                            },
                            "numbers": {
                              "type": "boolean"
                            }
                          },
                          "required": [
                            "api_key",
                            "language",
                            "model",
                            "max_speech_to_text_concurrent",
                            "redaction",
                            "ssn",
                            "pci",
                            "numbers"
                          ]
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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",
                      "deepgram"
                    ],
                    "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"
                          }
                        }
                      },
                      {
                        "title": "Deepgram Config",
                        "type": "object",
                        "required": [
                          "api_key",
                          "language",
                          "model",
                          "max_speech_to_text_concurrent",
                          "redaction",
                          "ssn",
                          "pci",
                          "numbers"
                        ],
                        "properties": {
                          "api_key": {
                            "type": "string"
                          },
                          "language": {
                            "type": "string"
                          },
                          "model": {
                            "type": "string"
                          },
                          "max_speech_to_text_concurrent": {
                            "type": "integer"
                          },
                          "redaction": {
                            "type": "boolean"
                          },
                          "ssn": {
                            "type": "boolean"
                          },
                          "pci": {
                            "type": "boolean"
                          },
                          "numbers": {
                            "type": "boolean"
                          }
                        }
                      }
                    ]
                  }
                }
              },
              "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
                    }
                  }
                },
                "deepgram": {
                  "summary": "Example of updating Azure AI Engine configuration",
                  "value": {
                    "engine_type": "deepgram",
                    "config": {
                      "access_key": "xxxxxx",
                      "secret_key": "xxxxxx",
                      "region": "xxxxxx",
                      "lang_code": "en-US",
                      "locale": "xxxxxx",
                      "bucket_name": "xxxxxx",
                      "model": 1,
                      "max_speech_to_text_concurrent": 1000,
                      "max_speech_to_text_queue": 1000,
                      "max_sentiment_requests_per_10s": 10,
                      "redaction": false,
                      "ssn": false,
                      "pci": false,
                      "numbers": false
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "AI Engine configuration updated successfully."
          },
          "4XX": {
            "description": "Invalid input or update failed."
          }
        }
      }
    },
    "/admin/password_policy": {
      "get": {
        "tags": [
          "Administration"
        ],
        "summary": "Get System Password Policy",
        "description": "Get the system password policy for administrators",
        "operationId": "getSystemPasswordPolicy",
        "x-category": "system-management",
        "x-subcategory": "system-management",
        "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"
                    }
                  },
                  "required": [
                    "min_length",
                    "max_length",
                    "contains_letters",
                    "contains_numbers",
                    "contains_special_letters",
                    "disable_sequential_characters",
                    "disable_repeating_characters",
                    "disable_account_information"
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      },
      "post": {
        "tags": [
          "Administration"
        ],
        "summary": "Update System Password Policy",
        "description": "Update the system password policy for administrators",
        "operationId": "updateSystemPasswordPolicy",
        "x-category": "system-management",
        "x-subcategory": "system-management",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "min_length": {
                    "type": "integer",
                    "format": "int32",
                    "minimum": 6,
                    "maximum": 32,
                    "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,
                    "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",
                    "description": "The password must contains at least one letter (latin characters).\n"
                  },
                  "contains_numbers": {
                    "type": "boolean",
                    "description": "The password must contains at least one number (0-9).\n"
                  },
                  "contains_special_letters": {
                    "type": "boolean",
                    "description": "The password must contains at least one upper case letter or special character (e.g. ~,!,@,#,$,%,^,&,*,(,),_,+,=).\n"
                  },
                  "disable_sequential_characters": {
                    "type": "boolean",
                    "description": "The password must not contains sequential_characters.\n"
                  },
                  "disable_repeating_characters": {
                    "type": "boolean",
                    "description": "The password must not contains repeating_characters.\n"
                  },
                  "disable_account_information": {
                    "type": "boolean",
                    "description": "The password must not similar to the account information.\n"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/admin/email_templates": {
      "get": {
        "tags": [
          "Notification"
        ],
        "operationId": "listSystemEmailTemplates",
        "x-category": "integrations",
        "x-subcategory": "email-notification",
        "x-permissions": [
          "SystemSettings.ViewOnly"
        ],
        "summary": "List system email templates",
        "description": "List all of system 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": [
                              "2FA_VERIFICATION",
                              "CPU_EXCEEDED",
                              "HARD_DISK_EXCEEDED",
                              "IP_BLOCKED",
                              "LICENSE_LIMIT",
                              "MEMORY_EXCEEDED",
                              "RESET_PASSWORD",
                              "SERVICE_CONNECTED",
                              "SERVICE_DISCONNECTED",
                              "TENANT_DISK_QUOTA_LIMIT_REACHED",
                              "TRUNK_CALL_LIMIT_REACHED",
                              "TRUNK_CONNECTED",
                              "TRUNK_DISCONNECTED",
                              "UPDATE_PUSH_CERTS_FAILED",
                              "WEBHOOK_QUEUE_TOO_LARGE"
                            ],
                            "description": "The name of the system email template.   \nCan be either:   \n- `2FA_VERIFICATION`: Authentication with two factor notification.\n- `CPU_EXCEEDED`: CPU usage exceeded threshold notification.\n- `HARD_DISK_EXCEEDED`: Hard disk usage exceeded threshold notification.\n- `IP_BLOCKED`: IP adddredd blocked notification.\n- `LICENSE_LIMIT`: License limited notification.\n- `MEMORY_EXCEEDED`: Memory usage exceeded threshold notification.\n- `RESET_PASSWORD`: Reset password notification.\n- `SERVICE_CONNECTED`: Service connected notification.\n- `SERVICE_DISCONNECTED`: Service disconnected notification.\n- `TENANT_DISK_QUOTA_LIMIT_REACHED`: Tenant disk quota limited notification.\n- `TRUNK_CALL_LIMIT_REACHED`: Trunk call limited notification.\n- `TRUNK_CONNECTED`: Trunk connected notification.\n- `TRUNK_DISCONNECTED`: Trunk disconnected notification.\n- `UPDATE_PUSH_CERTS_FAILED`: Update push certificates failed notification.\n- `WEBHOOK_QUEUE_TOO_LARGE`: Webhook queue full notification.\n",
                            "example": "IP_BLOCKED"
                          },
                          "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"
                          },
                          "protected": {
                            "type": "boolean",
                            "description": "Indicates whether the template is system-protected:\n- true: System default template (read-only, cannot be modified)\n- false: Custom template (editable)\n",
                            "example": true
                          }
                        }
                      },
                      "description": "A collection of system email templates.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "Example response for retrieving system email templates.",
                    "value": {
                      "items": [
                        {
                          "name": "HARD_DISK_EXCEEDED",
                          "from": "",
                          "subject": "Low System Disk Space",
                          "body": "%%DATE_TIME%%: your PBX server [%%PBX_WEB_DOMAIN%%] disk remaining free space is critically low. Used: %%USED_SIZE%% G; free: %%FREE_SIZE%% G.\n",
                          "protected": true
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/admin/email_templates/{name}": {
      "get": {
        "tags": [
          "Notification"
        ],
        "operationId": "getSystemEmailTemplateByName",
        "x-category": "integrations",
        "x-subcategory": "email-notification",
        "x-permissions": [
          "SystemSettings.ViewOnly"
        ],
        "summary": "Retrieve a custom email template by its name.",
        "description": "This API fetches the details of a custom email template (protected=false) based on its name.\n  - System default templates (protected=true) will not be returned.\n  - If no custom template exists with the given name, the API returns a 404 Not Found.\n",
        "parameters": [
          {
            "name": "name",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "enum": [
                "2FA_VERIFICATION",
                "CPU_EXCEEDED",
                "HARD_DISK_EXCEEDED",
                "IP_BLOCKED",
                "LICENSE_LIMIT",
                "MEMORY_EXCEEDED",
                "RESET_PASSWORD",
                "SERVICE_CONNECTED",
                "SERVICE_DISCONNECTED",
                "TENANT_DISK_QUOTA_LIMIT_REACHED",
                "TRUNK_CALL_LIMIT_REACHED",
                "TRUNK_CONNECTED",
                "TRUNK_DISCONNECTED",
                "UPDATE_PUSH_CERTS_FAILED",
                "WEBHOOK_QUEUE_TOO_LARGE"
              ],
              "description": "The name of the system email template.   \nCan be either:   \n- `2FA_VERIFICATION`: Authentication with two factor notification.\n- `CPU_EXCEEDED`: CPU usage exceeded threshold notification.\n- `HARD_DISK_EXCEEDED`: Hard disk usage exceeded threshold notification.\n- `IP_BLOCKED`: IP adddredd blocked notification.\n- `LICENSE_LIMIT`: License limited notification.\n- `MEMORY_EXCEEDED`: Memory usage exceeded threshold notification.\n- `RESET_PASSWORD`: Reset password notification.\n- `SERVICE_CONNECTED`: Service connected notification.\n- `SERVICE_DISCONNECTED`: Service disconnected notification.\n- `TENANT_DISK_QUOTA_LIMIT_REACHED`: Tenant disk quota limited notification.\n- `TRUNK_CALL_LIMIT_REACHED`: Trunk call limited notification.\n- `TRUNK_CONNECTED`: Trunk connected notification.\n- `TRUNK_DISCONNECTED`: Trunk disconnected notification.\n- `UPDATE_PUSH_CERTS_FAILED`: Update push certificates failed notification.\n- `WEBHOOK_QUEUE_TOO_LARGE`: Webhook queue full notification.\n",
              "example": "IP_BLOCKED"
            },
            "description": "The name of the email template."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string",
                      "enum": [
                        "2FA_VERIFICATION",
                        "CPU_EXCEEDED",
                        "HARD_DISK_EXCEEDED",
                        "IP_BLOCKED",
                        "LICENSE_LIMIT",
                        "MEMORY_EXCEEDED",
                        "RESET_PASSWORD",
                        "SERVICE_CONNECTED",
                        "SERVICE_DISCONNECTED",
                        "TENANT_DISK_QUOTA_LIMIT_REACHED",
                        "TRUNK_CALL_LIMIT_REACHED",
                        "TRUNK_CONNECTED",
                        "TRUNK_DISCONNECTED",
                        "UPDATE_PUSH_CERTS_FAILED",
                        "WEBHOOK_QUEUE_TOO_LARGE"
                      ],
                      "description": "The name of the system email template.   \nCan be either:   \n- `2FA_VERIFICATION`: Authentication with two factor notification.\n- `CPU_EXCEEDED`: CPU usage exceeded threshold notification.\n- `HARD_DISK_EXCEEDED`: Hard disk usage exceeded threshold notification.\n- `IP_BLOCKED`: IP adddredd blocked notification.\n- `LICENSE_LIMIT`: License limited notification.\n- `MEMORY_EXCEEDED`: Memory usage exceeded threshold notification.\n- `RESET_PASSWORD`: Reset password notification.\n- `SERVICE_CONNECTED`: Service connected notification.\n- `SERVICE_DISCONNECTED`: Service disconnected notification.\n- `TENANT_DISK_QUOTA_LIMIT_REACHED`: Tenant disk quota limited notification.\n- `TRUNK_CALL_LIMIT_REACHED`: Trunk call limited notification.\n- `TRUNK_CONNECTED`: Trunk connected notification.\n- `TRUNK_DISCONNECTED`: Trunk disconnected notification.\n- `UPDATE_PUSH_CERTS_FAILED`: Update push certificates failed notification.\n- `WEBHOOK_QUEUE_TOO_LARGE`: Webhook queue full notification.\n",
                      "example": "IP_BLOCKED"
                    },
                    "body": {
                      "type": "string",
                      "description": "Notification email body.\n"
                    },
                    "subject": {
                      "type": "string",
                      "description": "Notification email subject field.\n"
                    },
                    "from": {
                      "type": "string",
                      "description": "Notification email from field.\n"
                    },
                    "protected": {
                      "type": "boolean",
                      "description": "Indicates whether the template is system-protected:\n- true: System default template (read-only, cannot be modified)\n- false: Custom template (editable)\n",
                      "example": true
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "Example request for retrieving a custom system email template by name.",
                    "value": {
                      "name": "HARD_DISK_EXCEEDED",
                      "from": "PBX System <system@pbx.com>",
                      "subject": "Low System Disk Space",
                      "body": "%%DATE_TIME%%: your PBX server [%%PBX_WEB_DOMAIN%%] disk remaining free space is critically low. Used: %%USED_SIZE%% G; free: %%FREE_SIZE%% G.\n",
                      "protected": false
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "post": {
        "tags": [
          "Notification"
        ],
        "operationId": "saveSystemEmailTemplate",
        "x-category": "integrations",
        "x-subcategory": "email-notification",
        "x-permissions": [
          "SystemSettings.FullAccess"
        ],
        "summary": "Update a custom email template.",
        "description": "This API updates an custom system email template.\n",
        "parameters": [
          {
            "name": "name",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "enum": [
                "2FA_VERIFICATION",
                "CPU_EXCEEDED",
                "HARD_DISK_EXCEEDED",
                "IP_BLOCKED",
                "LICENSE_LIMIT",
                "MEMORY_EXCEEDED",
                "RESET_PASSWORD",
                "SERVICE_CONNECTED",
                "SERVICE_DISCONNECTED",
                "TENANT_DISK_QUOTA_LIMIT_REACHED",
                "TRUNK_CALL_LIMIT_REACHED",
                "TRUNK_CONNECTED",
                "TRUNK_DISCONNECTED",
                "UPDATE_PUSH_CERTS_FAILED",
                "WEBHOOK_QUEUE_TOO_LARGE"
              ],
              "description": "The name of the system email template.   \nCan be either:   \n- `2FA_VERIFICATION`: Authentication with two factor notification.\n- `CPU_EXCEEDED`: CPU usage exceeded threshold notification.\n- `HARD_DISK_EXCEEDED`: Hard disk usage exceeded threshold notification.\n- `IP_BLOCKED`: IP adddredd blocked notification.\n- `LICENSE_LIMIT`: License limited notification.\n- `MEMORY_EXCEEDED`: Memory usage exceeded threshold notification.\n- `RESET_PASSWORD`: Reset password notification.\n- `SERVICE_CONNECTED`: Service connected notification.\n- `SERVICE_DISCONNECTED`: Service disconnected notification.\n- `TENANT_DISK_QUOTA_LIMIT_REACHED`: Tenant disk quota limited notification.\n- `TRUNK_CALL_LIMIT_REACHED`: Trunk call limited notification.\n- `TRUNK_CONNECTED`: Trunk connected notification.\n- `TRUNK_DISCONNECTED`: Trunk disconnected notification.\n- `UPDATE_PUSH_CERTS_FAILED`: Update push certificates failed notification.\n- `WEBHOOK_QUEUE_TOO_LARGE`: Webhook queue full notification.\n",
              "example": "IP_BLOCKED"
            },
            "description": "The name of the email template."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "body": {
                    "type": "string",
                    "description": "Notification email body.\n"
                  },
                  "subject": {
                    "type": "string",
                    "description": "Notification email subject field.\n"
                  },
                  "from": {
                    "type": "string",
                    "description": "Notification email from field.\n"
                  }
                },
                "required": [
                  "body",
                  "subject",
                  "from"
                ]
              },
              "examples": {
                "default": {
                  "summary": "Example request for saving a system email template.",
                  "value": {
                    "from": "PBX System <system@pbx.com>",
                    "subject": "Low System Disk Space",
                    "body": "%%DATE_TIME%%: your PBX server [%%PBX_WEB_DOMAIN%%] disk remaining free space is critically low. Used: %%USED_SIZE%% G; free: %%FREE_SIZE%% G.\n"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/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": "",
                    "value": {
                      "domain": "example.com",
                      "http_port": 80,
                      "https_port": 443,
                      "transports": [
                        {
                          "protocol": "UDP",
                          "port": 1000
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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": "",
                  "value": {
                    "domain": "example.com",
                    "http_port": 80,
                    "https_port": 443,
                    "transports": [
                      {
                        "protocol": "UDP",
                        "port": 1000
                      }
                    ]
                  }
                }
              }
            }
          },
          "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": "",
                    "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": "",
                    "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": "",
                    "value": {
                      "private_ipv4": "127.0.0.1",
                      "private_ipv6": "::1",
                      "public_ipv4": "192.0.2.0",
                      "public_ipv6": "2001:0db8:0a0b:12f0::1"
                    }
                  }
                }
              }
            }
          },
          "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": "",
                  "value": {
                    "private_ipv4": "127.0.0.1",
                    "private_ipv6": "::1",
                    "public_ipv4": "192.0.2.0",
                    "public_ipv6": "2001:0db8:0a0b:12f0::1"
                  }
                }
              }
            }
          },
          "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": "",
                    "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": "",
                    "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",
                    "minLength": 1,
                    "maxLength": 128,
                    "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",
                  "email",
                  "display_name",
                  "max_tenants",
                  "max_extensions"
                ]
              },
              "examples": {
                "default": {
                  "summary": "",
                  "value": {
                    "enabled": true,
                    "level": "DISTRIBUTOR",
                    "name": "example",
                    "password": "xxxxxx",
                    "email": "example@example.com",
                    "display_name": "example",
                    "website": "https://example.com",
                    "phone": "",
                    "address": "",
                    "description": "",
                    "max_tenants": 100,
                    "max_extensions": 1000,
                    "tenant_full_access": false
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                        }
                      ],
                      "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 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",
                            "minLength": 1,
                            "maxLength": 128,
                            "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": "",
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": "xxxxxx",
                          "enabled": true,
                          "level": "DISTRIBUTOR",
                          "name": "example",
                          "email": "",
                          "display_name": "example",
                          "website": "https://example.com",
                          "phone": "",
                          "address": "",
                          "description": "",
                          "max_tenants": 100,
                          "max_extensions": 1000,
                          "tenant_full_access": false
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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 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 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",
                      "minLength": 1,
                      "maxLength": 128,
                      "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": "",
                    "value": {
                      "id": "xxxxxx",
                      "enabled": true,
                      "level": "DISTRIBUTOR",
                      "name": "example",
                      "email": "example@example.com",
                      "display_name": "example",
                      "website": "https://example.com",
                      "phone": "",
                      "address": "",
                      "description": "",
                      "max_tenants": 100,
                      "max_extensions": 1000,
                      "tenant_full_access": false
                    }
                  }
                }
              }
            }
          },
          "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 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",
                    "minLength": 1,
                    "maxLength": 128,
                    "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": "",
                  "value": {
                    "enabled": true,
                    "email": "example@example.com",
                    "display_name": "example",
                    "website": "https://example.com",
                    "phone": "",
                    "address": "",
                    "description": "",
                    "max_tenants": 100,
                    "max_extensions": 1000,
                    "tenant_full_access": false
                  }
                }
              }
            }
          },
          "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 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": "",
                  "value": {
                    "password": "xxxxxx"
                  }
                }
              }
            }
          },
          "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 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": "",
                  "value": {
                    "app_name": "example",
                    "enabled": true,
                    "mode": "PRODUCTION",
                    "android_service_account": "",
                    "ios_certificate": "",
                    "ios_private_key": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created push",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                        }
                      ],
                      "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 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_cert_expire_at": {
                            "type": "string",
                            "format": "date-time",
                            "description": "The expiration date and time of the iOS push certificate.",
                            "example": "2026-03-31T23:59:59Z"
                          },
                          "cert_remaining_days": {
                            "type": "integer",
                            "description": "The remaining validity period of the iOS push certificate, in days.\nA positive value indicates the number of days until expiration,\nwhile a negative value indicates how many days the certificate has already been expired.\n",
                            "example": 450
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "",
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": "xxxxxx",
                          "app_name": "example",
                          "enabled": true
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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 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 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"
                    },
                    "ios_cert_expire_at": {
                      "type": "string",
                      "format": "date-time",
                      "description": "The expiration date and time of the iOS push certificate.",
                      "example": "2026-03-31T23:59:59Z"
                    },
                    "cert_remaining_days": {
                      "type": "integer",
                      "description": "The remaining validity period of the iOS push certificate, in days.\nA positive value indicates the number of days until expiration,\nwhile a negative value indicates how many days the certificate has already been expired.\n",
                      "example": 450
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "",
                    "value": {
                      "id": "xxxxxx",
                      "app_name": "example",
                      "enabled": true,
                      "mode": "PRODUCTION",
                      "android_service_account": "",
                      "ios_certificate": "",
                      "ios_private_key": "",
                      "ios_cert_expire_at": "2026-03-31T23:59:59Z",
                      "cert_remaining_days": 450
                    }
                  }
                }
              }
            }
          },
          "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 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": "",
                  "value": {
                    "app_name": "example",
                    "enabled": true,
                    "mode": "PRODUCTION",
                    "android_service_account": "",
                    "ios_certificate": "",
                    "ios_private_key": ""
                  }
                }
              }
            }
          }
        },
        "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 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": "",
                  "value": {
                    "filename": "example",
                    "content": ""
                  }
                }
              }
            }
          }
        },
        "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 name of created template",
                    "value": {
                      "filename": "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": "",
                    "value": {
                      "items": [
                        {
                          "filename": "example",
                          "is_custom": true
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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": "",
                    "value": {
                      "filename": "example",
                      "content": "",
                      "is_custom": true
                    }
                  }
                }
              }
            }
          },
          "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": "",
                  "value": {
                    "content": ""
                  }
                }
              }
            }
          }
        },
        "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"
          }
        }
      }
    },
    "/templates/soft_phone": {
      "post": {
        "tags": [
          "Auto Provisioning"
        ],
        "operationId": "createSoftPhoneTemplate",
        "x-category": "auto-provisioning",
        "x-subcategory": "templates",
        "x-permissions": [
          "SystemDevice.FullAccess"
        ],
        "summary": "Create a new soft phone template",
        "description": "Create a new soft phone template into system.\n",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "file_name": {
                    "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": "",
                  "value": {
                    "file_name": "example",
                    "content": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "file_name": {
                      "type": "string",
                      "description": "Template XML file name for phone provisioning.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "The name of created template",
                    "value": {
                      "file_name": "xxxxxxxx"
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "get": {
        "tags": [
          "Auto Provisioning"
        ],
        "operationId": "listSoftPhoneTemplates",
        "x-category": "auto-provisioning",
        "x-subcategory": "templates",
        "x-permissions": [
          "SystemDevice.ViewOnly"
        ],
        "summary": "List soft phone templates",
        "description": "List soft phones template files\n",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "file_name": {
                            "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": "",
                    "value": {
                      "items": [
                        {
                          "file_name": "example",
                          "is_custom": true
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/templates/soft_phone/{filename}": {
      "get": {
        "tags": [
          "Auto Provisioning"
        ],
        "operationId": "showSoftPhoneTemplate",
        "x-category": "auto-provisioning",
        "x-subcategory": "templates",
        "x-permissions": [
          "SystemDevice.ViewOnly"
        ],
        "summary": "Retrieve details of soft phone 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": {
                    "file_name": {
                      "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": "",
                    "value": {
                      "file_name": "example",
                      "is_custom": true
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "post": {
        "tags": [
          "Auto Provisioning"
        ],
        "operationId": "updateSoftPhoneTemplate",
        "x-category": "auto-provisioning",
        "x-subcategory": "templates",
        "x-permissions": [
          "SystemDevice.FullAccess"
        ],
        "summary": "Update soft phone template",
        "description": "Update soft 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": "",
                  "value": {
                    "content": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/templates/soft_phone/{filename}/destroy": {
      "post": {
        "tags": [
          "Auto Provisioning"
        ],
        "operationId": "deleteSoftPhoneTemplate",
        "x-category": "auto-provisioning",
        "x-subcategory": "templates",
        "x-permissions": [
          "SystemDevice.FullAccess"
        ],
        "summary": "Remove an soft phone 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": "",
                  "value": {
                    "cidr": "",
                    "target": "DENY",
                    "expire_at": "2020-01-01T00:00:00Z",
                    "description": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                        }
                      ],
                      "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 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": "",
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": "xxxxxx",
                          "cidr": "",
                          "target": "DENY",
                          "expire_at": "2020-01-01T00:00:00Z",
                          "description": ""
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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 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 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": "",
                    "value": {
                      "id": "xxxxxx",
                      "cidr": "",
                      "target": "DENY",
                      "expire_at": "2020-01-01T00:00:00Z",
                      "description": ""
                    }
                  }
                }
              }
            }
          },
          "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 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": "",
                  "value": {
                    "cidr": "",
                    "target": "DENY",
                    "expire_at": "2020-01-01T00:00:00Z",
                    "description": ""
                  }
                }
              }
            }
          }
        },
        "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 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": "",
                  "value": {
                    "protocol": "UDP",
                    "port": 1000,
                    "verification": "DISABLE"
                  }
                }
              }
            }
          },
          "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 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 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": "",
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": "xxxxxx",
                          "protocol": "UDP",
                          "port": 1000,
                          "verification": "DISABLE"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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 transport."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                        }
                      ],
                      "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": "",
                    "value": {
                      "id": "xxxxxx",
                      "protocol": "UDP",
                      "port": 1000,
                      "verification": "DISABLE"
                    }
                  }
                }
              }
            }
          },
          "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 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": "",
                  "value": {
                    "port": 1000,
                    "verification": "DISABLE"
                  }
                }
              }
            }
          },
          "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 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": "",
                    "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",
                    "minLength": 1,
                    "maxLength": 128,
                    "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_call_queue_audio_recording": {
                    "type": "boolean",
                    "default": false,
                    "description": "Allow call queue audio recording.\n"
                  },
                  "enable_ring_group_audio_recording": {
                    "type": "boolean",
                    "default": false,
                    "description": "Allow ring group audio recording.\n"
                  },
                  "enable_trunk_audio_recording": {
                    "type": "boolean",
                    "default": false,
                    "description": "Allow trunk audio recording.\n"
                  },
                  "enable_virtual_receptionist_audio_recording": {
                    "type": "boolean",
                    "default": false,
                    "description": "Allow virtual receptionist 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"
                  },
                  "enable_verify_phone_auto_provisioning": {
                    "type": "boolean",
                    "default": false,
                    "description": "Whether to enable-factor auto-provisioning of verify phone.\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"
                  },
                  "soft_phone_template": {
                    "type": "string",
                    "description": "The template file name used to generate the user configuration file for the soft phone.\n",
                    "example": "app.xml"
                  },
                  "recording_access_mode": {
                    "type": "string",
                    "enum": [
                      "PRIVATE",
                      "PUBLIC"
                    ],
                    "default": "PUBLIC",
                    "description": "The recording access mode:   \nCan be either:  \n- `PRIVATE`: Access the recording file using the private link.\n- `PUBLIC`: Access the recording file using the public link.\n"
                  }
                },
                "required": [
                  "name",
                  "domain",
                  "timezone",
                  "currency",
                  "region",
                  "website"
                ]
              },
              "examples": {
                "default": {
                  "summary": "",
                  "value": {
                    "name": "example",
                    "domain": "example.com",
                    "website": "https://example.com",
                    "timezone": "",
                    "currency": "",
                    "region": "",
                    "enabled": true,
                    "enable_video_recording": true,
                    "ai_engine": {
                      "enabled": true,
                      "transcription_quota": 100
                    },
                    "enable_audio_recording": false,
                    "enable_call_queue_audio_recording": false,
                    "enable_ring_group_audio_recording": false,
                    "enable_trunk_audio_recording": false,
                    "enable_virtual_receptionist_audio_recording": false,
                    "enable_dual_track_recording": true,
                    "enable_billing": true,
                    "enable_feature_billing": true,
                    "enable_feature_call_statistics": true,
                    "enable_feature_contact_center": true,
                    "enable_feature_message_channels": true,
                    "enable_feature_microsoft_teams": true,
                    "enable_feature_trunks": true,
                    "enable_feature_whats_app": true,
                    "enable_night_mode": true,
                    "enable_two_factor_authentication": true,
                    "enable_verify_phone_auto_provisioning": true,
                    "custom_options": "",
                    "max_extensions": 1000,
                    "max_concurrent_calls": 100,
                    "max_ring_groups": 100,
                    "max_virtual_receptionists": 100,
                    "max_call_queues": 100,
                    "max_conference_rooms": 100,
                    "disk_quota": "",
                    "im_disk_quota": "",
                    "extension_im_disk_quota": "",
                    "recording_retention": 30,
                    "call_report_retention": 30,
                    "log_retention": 30,
                    "temp_file_retention": 30,
                    "office_hours": {
                      "monday": {
                        "enabled": true,
                        "ranges": [
                          {
                            "from": "09:00",
                            "to": "17:00"
                          }
                        ]
                      },
                      "tuesday": {
                        "enabled": true,
                        "ranges": [
                          {
                            "from": "09:00",
                            "to": "17:00"
                          }
                        ]
                      },
                      "wednesday": {
                        "enabled": true,
                        "ranges": [
                          {
                            "from": "09:00",
                            "to": "17:00"
                          }
                        ]
                      },
                      "thursday": {
                        "enabled": true,
                        "ranges": [
                          {
                            "from": "09:00",
                            "to": "17:00"
                          }
                        ]
                      },
                      "friday": {
                        "enabled": true,
                        "ranges": [
                          {
                            "from": "09:00",
                            "to": "17:00"
                          }
                        ]
                      },
                      "saturday": {
                        "enabled": true,
                        "ranges": [
                          {
                            "from": "09:00",
                            "to": "17:00"
                          }
                        ]
                      },
                      "sunday": {
                        "enabled": true,
                        "ranges": [
                          {
                            "from": "09:00",
                            "to": "17:00"
                          }
                        ]
                      }
                    },
                    "e164": {
                      "enabled": true,
                      "international_code": "",
                      "country": "",
                      "area_code": "",
                      "national_code": "",
                      "prefix": "",
                      "remove_special_chars": false,
                      "remove_duplicate_countries": false,
                      "remove_duplicate_area_codes": false
                    },
                    "cdr_event": {
                      "enabled": true,
                      "auth": "BASIC",
                      "username": "xxxxxx",
                      "password": "xxxxxx",
                      "token": "xxxxxx",
                      "url": "https://example.com"
                    },
                    "extension_event": {
                      "enabled": true,
                      "auth": "BASIC",
                      "username": "xxxxxx",
                      "password": "xxxxxx",
                      "token": "xxxxxx",
                      "url": "https://example.com"
                    },
                    "contact_match_type": "DISABLE",
                    "contact_match_length": 1,
                    "contact_append_type": "DISABLE",
                    "contact_inbound_rule_append_type": "DISABLE",
                    "contact_update_interval": 720,
                    "email_recipients": "",
                    "password_force_reset": false,
                    "recording_access_mode": "PUBLIC"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                        }
                      ],
                      "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 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",
                            "minLength": 1,
                            "maxLength": 128,
                            "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": "",
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": "xxxxxx",
                          "name": "example",
                          "domain": "example.com",
                          "max_extensions": 100,
                          "current_extensions": 100,
                          "max_concurrent_calls": 100,
                          "enabled": true,
                          "website": "https://example.com",
                          "timezone": "",
                          "currency": "",
                          "region": "",
                          "avatar_file_name": "example",
                          "avatar_file_size": 100,
                          "avatar_file_url": "",
                          "created_at": "2020-01-01T00:00:00Z"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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 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 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",
                      "minLength": 1,
                      "maxLength": 128,
                      "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_call_queue_audio_recording": {
                      "type": "boolean",
                      "default": false,
                      "description": "Allow call queue audio recording.\n"
                    },
                    "enable_ring_group_audio_recording": {
                      "type": "boolean",
                      "default": false,
                      "description": "Allow ring group audio recording.\n"
                    },
                    "enable_trunk_audio_recording": {
                      "type": "boolean",
                      "default": false,
                      "description": "Allow trunk audio recording.\n"
                    },
                    "enable_virtual_receptionist_audio_recording": {
                      "type": "boolean",
                      "default": false,
                      "description": "Allow virtual receptionist 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"
                    },
                    "enable_verify_phone_auto_provisioning": {
                      "type": "boolean",
                      "default": false,
                      "description": "Whether to enable-factor auto-provisioning of verify phone.\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"
                    },
                    "soft_phone_template": {
                      "type": "string",
                      "description": "The template file name used to generate the user configuration file for the soft phone.\n",
                      "example": "app.xml"
                    },
                    "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 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"
                          },
                          "display_name": {
                            "type": "string",
                            "maxLength": 32,
                            "description": "The display name of 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"
                    },
                    "recording_access_mode": {
                      "type": "string",
                      "enum": [
                        "PRIVATE",
                        "PUBLIC"
                      ],
                      "default": "PUBLIC",
                      "description": "The recording access mode:   \nCan be either:  \n- `PRIVATE`: Access the recording file using the private link.\n- `PUBLIC`: Access the recording file using the public link.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "",
                    "value": {
                      "id": "xxxxxx",
                      "name": "example",
                      "domain": "example.com",
                      "website": "https://example.com",
                      "timezone": "",
                      "currency": "",
                      "region": "",
                      "enabled": true,
                      "enable_video_recording": true,
                      "ai_engine": {
                        "enabled": true,
                        "transcription_quota": 100
                      },
                      "enable_audio_recording": false,
                      "enable_call_queue_audio_recording": false,
                      "enable_ring_group_audio_recording": false,
                      "enable_trunk_audio_recording": false,
                      "enable_virtual_receptionist_audio_recording": false,
                      "enable_dual_track_recording": true,
                      "enable_billing": true,
                      "enable_feature_billing": true,
                      "enable_feature_call_statistics": true,
                      "enable_feature_contact_center": true,
                      "enable_feature_message_channels": true,
                      "enable_feature_microsoft_teams": true,
                      "enable_feature_trunks": true,
                      "enable_feature_whats_app": true,
                      "enable_night_mode": true,
                      "enable_two_factor_authentication": true,
                      "enable_verify_phone_auto_provisioning": true,
                      "custom_options": "",
                      "max_extensions": 1000,
                      "max_concurrent_calls": 100,
                      "max_ring_groups": 100,
                      "max_virtual_receptionists": 100,
                      "max_call_queues": 100,
                      "max_conference_rooms": 100,
                      "disk_quota": "",
                      "used_disk_quota": "",
                      "im_disk_quota": "",
                      "extension_im_disk_quota": "",
                      "recording_retention": 30,
                      "call_report_retention": 30,
                      "log_retention": 30,
                      "temp_file_retention": 30,
                      "office_hours": {
                        "monday": {
                          "enabled": true,
                          "ranges": [
                            {
                              "from": "09:00",
                              "to": "17:00"
                            }
                          ]
                        },
                        "tuesday": {
                          "enabled": true,
                          "ranges": [
                            {
                              "from": "09:00",
                              "to": "17:00"
                            }
                          ]
                        },
                        "wednesday": {
                          "enabled": true,
                          "ranges": [
                            {
                              "from": "09:00",
                              "to": "17:00"
                            }
                          ]
                        },
                        "thursday": {
                          "enabled": true,
                          "ranges": [
                            {
                              "from": "09:00",
                              "to": "17:00"
                            }
                          ]
                        },
                        "friday": {
                          "enabled": true,
                          "ranges": [
                            {
                              "from": "09:00",
                              "to": "17:00"
                            }
                          ]
                        },
                        "saturday": {
                          "enabled": true,
                          "ranges": [
                            {
                              "from": "09:00",
                              "to": "17:00"
                            }
                          ]
                        },
                        "sunday": {
                          "enabled": true,
                          "ranges": [
                            {
                              "from": "09:00",
                              "to": "17:00"
                            }
                          ]
                        }
                      },
                      "outbound_caller_ids": [
                        {
                          "provider_id": "xxxxxx",
                          "caller_id": "1000",
                          "description": "example",
                          "display_name": "1000"
                        }
                      ],
                      "e164": {
                        "enabled": true,
                        "international_code": "",
                        "country": "",
                        "area_code": "",
                        "national_code": "",
                        "prefix": "",
                        "remove_special_chars": false,
                        "remove_duplicate_countries": false,
                        "remove_duplicate_area_codes": false
                      },
                      "cdr_event": {
                        "enabled": true,
                        "auth": "BASIC",
                        "username": "xxxxxx",
                        "password": "xxxxxx",
                        "token": "xxxxxx",
                        "url": "https://example.com"
                      },
                      "extension_event": {
                        "enabled": true,
                        "auth": "BASIC",
                        "username": "xxxxxx",
                        "password": "xxxxxx",
                        "token": "xxxxxx",
                        "url": "https://example.com"
                      },
                      "contact_match_type": "DISABLE",
                      "contact_match_length": 1,
                      "contact_append_type": "DISABLE",
                      "contact_inbound_rule_append_type": "DISABLE",
                      "contact_update_interval": 720,
                      "email_recipients": "",
                      "password_force_reset": false,
                      "created_at": "2020-01-01T00:00:00Z",
                      "avatar_file_name": "example",
                      "avatar_file_size": 100,
                      "avatar_file_url": "",
                      "soft_phone_template": "app.xml",
                      "recording_access_mode": "PUBLIC"
                    }
                  }
                }
              }
            }
          },
          "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 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",
                    "minLength": 1,
                    "maxLength": 128,
                    "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_call_queue_audio_recording": {
                    "type": "boolean",
                    "default": false,
                    "description": "Allow call queue audio recording.\n"
                  },
                  "enable_ring_group_audio_recording": {
                    "type": "boolean",
                    "default": false,
                    "description": "Allow ring group audio recording.\n"
                  },
                  "enable_trunk_audio_recording": {
                    "type": "boolean",
                    "default": false,
                    "description": "Allow trunk audio recording.\n"
                  },
                  "enable_virtual_receptionist_audio_recording": {
                    "type": "boolean",
                    "default": false,
                    "description": "Allow virtual receptionist 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"
                  },
                  "enable_verify_phone_auto_provisioning": {
                    "type": "boolean",
                    "default": false,
                    "description": "Whether to enable-factor auto-provisioning of verify phone.\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"
                  },
                  "soft_phone_template": {
                    "type": "string",
                    "description": "The template file name used to generate the user configuration file for the soft phone.\n",
                    "example": "app.xml"
                  },
                  "recording_access_mode": {
                    "type": "string",
                    "enum": [
                      "PRIVATE",
                      "PUBLIC"
                    ],
                    "default": "PUBLIC",
                    "description": "The recording access mode:   \nCan be either:  \n- `PRIVATE`: Access the recording file using the private link.\n- `PUBLIC`: Access the recording file using the public link.\n"
                  },
                  "outbound_caller_ids": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "provider_id": {
                          "allOf": [
                            {
                              "allOf": [
                                {
                                  "type": "string",
                                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                                }
                              ],
                              "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"
                        },
                        "display_name": {
                          "type": "string",
                          "maxLength": 32,
                          "description": "The display name of outbound caller id.\n"
                        }
                      }
                    },
                    "description": "A collection of outbound caller IDs.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": "",
                  "value": {
                    "name": "example",
                    "domain": "example.com",
                    "website": "https://example.com",
                    "timezone": "",
                    "currency": "",
                    "region": "",
                    "enabled": true,
                    "enable_video_recording": true,
                    "ai_engine": {
                      "enabled": true,
                      "transcription_quota": 100
                    },
                    "enable_audio_recording": false,
                    "enable_call_queue_audio_recording": false,
                    "enable_ring_group_audio_recording": false,
                    "enable_trunk_audio_recording": false,
                    "enable_virtual_receptionist_audio_recording": false,
                    "enable_dual_track_recording": true,
                    "enable_billing": true,
                    "enable_feature_billing": true,
                    "enable_feature_call_statistics": true,
                    "enable_feature_contact_center": true,
                    "enable_feature_message_channels": true,
                    "enable_feature_microsoft_teams": true,
                    "enable_feature_trunks": true,
                    "enable_feature_whats_app": true,
                    "enable_night_mode": true,
                    "enable_two_factor_authentication": true,
                    "enable_verify_phone_auto_provisioning": true,
                    "custom_options": "",
                    "max_extensions": 1000,
                    "max_concurrent_calls": 100,
                    "max_ring_groups": 100,
                    "max_virtual_receptionists": 100,
                    "max_call_queues": 100,
                    "max_conference_rooms": 100,
                    "disk_quota": "",
                    "im_disk_quota": "",
                    "extension_im_disk_quota": "",
                    "recording_retention": 30,
                    "call_report_retention": 30,
                    "log_retention": 30,
                    "temp_file_retention": 30,
                    "office_hours": {
                      "monday": {
                        "enabled": true,
                        "ranges": [
                          {
                            "from": "09:00",
                            "to": "17:00"
                          }
                        ]
                      },
                      "tuesday": {
                        "enabled": true,
                        "ranges": [
                          {
                            "from": "09:00",
                            "to": "17:00"
                          }
                        ]
                      },
                      "wednesday": {
                        "enabled": true,
                        "ranges": [
                          {
                            "from": "09:00",
                            "to": "17:00"
                          }
                        ]
                      },
                      "thursday": {
                        "enabled": true,
                        "ranges": [
                          {
                            "from": "09:00",
                            "to": "17:00"
                          }
                        ]
                      },
                      "friday": {
                        "enabled": true,
                        "ranges": [
                          {
                            "from": "09:00",
                            "to": "17:00"
                          }
                        ]
                      },
                      "saturday": {
                        "enabled": true,
                        "ranges": [
                          {
                            "from": "09:00",
                            "to": "17:00"
                          }
                        ]
                      },
                      "sunday": {
                        "enabled": true,
                        "ranges": [
                          {
                            "from": "09:00",
                            "to": "17:00"
                          }
                        ]
                      }
                    },
                    "e164": {
                      "enabled": true,
                      "international_code": "",
                      "country": "",
                      "area_code": "",
                      "national_code": "",
                      "prefix": "",
                      "remove_special_chars": false,
                      "remove_duplicate_countries": false,
                      "remove_duplicate_area_codes": false
                    },
                    "cdr_event": {
                      "enabled": true,
                      "auth": "BASIC",
                      "username": "xxxxxx",
                      "password": "xxxxxx",
                      "token": "xxxxxx",
                      "url": "https://example.com"
                    },
                    "extension_event": {
                      "enabled": true,
                      "auth": "BASIC",
                      "username": "xxxxxx",
                      "password": "xxxxxx",
                      "token": "xxxxxx",
                      "url": "https://example.com"
                    },
                    "contact_match_type": "DISABLE",
                    "contact_match_length": 1,
                    "contact_append_type": "DISABLE",
                    "contact_inbound_rule_append_type": "DISABLE",
                    "contact_update_interval": 720,
                    "email_recipients": "",
                    "password_force_reset": false,
                    "soft_phone_template": "app.xml",
                    "recording_access_mode": "PUBLIC"
                  }
                }
              }
            }
          }
        },
        "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 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 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 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",
                            "minLength": 1,
                            "maxLength": 128,
                            "description": "The display name of user.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "",
                    "value": {
                      "items": [
                        {
                          "id": "xxxxxx",
                          "enabled": true,
                          "level": "DISTRIBUTOR",
                          "name": "example",
                          "display_name": "example"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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 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 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 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 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 tenant.\n"
            },
            "description": "The unique ID of the tenant."
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Invalid name supplied"
          },
          "404": {
            "description": "Tenant not found"
          }
        }
      }
    },
    "/tenants/summaries/query": {
      "post": {
        "tags": [
          "Administration"
        ],
        "operationId": "bulkGetTenantsStatistics",
        "x-category": "tenants",
        "x-subcategory": "tenants",
        "x-permissions": [
          "SystemTenant.ViewOnly"
        ],
        "summary": "Bulk retrieve tenants statistics",
        "description": "Bulk retrieve tenants statistics.\n",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "items": {
                    "type": "array",
                    "items": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                        }
                      ],
                      "description": "The unique ID of tenant.\n"
                    }
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": "",
                  "value": {
                    "items": [
                      "xxx",
                      "yyy"
                    ]
                  }
                }
              }
            }
          }
        },
        "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 tenant.\n"
                          },
                          "tenant_name": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 1024,
                            "description": "The name of the tenant.\n"
                          },
                          "total_users": {
                            "type": "integer",
                            "description": "Total users of tenant.\n"
                          },
                          "online_users": {
                            "type": "integer",
                            "description": "Online users of tenant."
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "",
                    "value": {
                      "items": [
                        {
                          "tenant_id": "xxx",
                          "tenant_name": "example",
                          "total_users": 1000,
                          "online_users": 100
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/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 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",
                      "minLength": 1,
                      "maxLength": 128,
                      "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_call_queue_audio_recording": {
                      "type": "boolean",
                      "default": false,
                      "description": "Allow call queue audio recording.\n"
                    },
                    "enable_ring_group_audio_recording": {
                      "type": "boolean",
                      "default": false,
                      "description": "Allow ring group audio recording.\n"
                    },
                    "enable_trunk_audio_recording": {
                      "type": "boolean",
                      "default": false,
                      "description": "Allow trunk audio recording.\n"
                    },
                    "enable_virtual_receptionist_audio_recording": {
                      "type": "boolean",
                      "default": false,
                      "description": "Allow virtual receptionist 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"
                    },
                    "enable_verify_phone_auto_provisioning": {
                      "type": "boolean",
                      "default": false,
                      "description": "Whether to enable-factor auto-provisioning of verify phone.\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 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"
                          },
                          "display_name": {
                            "type": "string",
                            "maxLength": 32,
                            "description": "The display name of 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"
                    },
                    "soft_phone_template": {
                      "type": "string",
                      "description": "The template file name used to generate the user configuration file for the soft phone.\n",
                      "example": "app.xml"
                    },
                    "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"
                    },
                    "crm_contact_type": {
                      "type": "string",
                      "description": "The CRM contact type for creation.\n"
                    },
                    "recording_access_mode": {
                      "type": "string",
                      "enum": [
                        "PRIVATE",
                        "PUBLIC"
                      ],
                      "default": "PUBLIC",
                      "description": "The recording access mode:   \nCan be either:  \n- `PRIVATE`: Access the recording file using the private link.\n- `PUBLIC`: Access the recording file using the public link.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "",
                    "value": {
                      "id": "xxxxxx",
                      "name": "example",
                      "domain": "example.com",
                      "website": "https://exaple.com",
                      "timezone": "",
                      "currency": "",
                      "region": "",
                      "enable_video_recording": true,
                      "ai_engine": {
                        "enabled": true,
                        "transcription_quota": 100
                      },
                      "enable_audio_recording": false,
                      "enable_call_queue_audio_recording": false,
                      "enable_ring_group_audio_recording": false,
                      "enable_trunk_audio_recording": false,
                      "enable_virtual_receptionist_audio_recording": false,
                      "enable_dual_track_recording": true,
                      "enable_billing": true,
                      "enable_feature_billing": true,
                      "enable_feature_call_statistics": true,
                      "enable_feature_contact_center": true,
                      "enable_feature_message_channels": true,
                      "enable_feature_microsoft_teams": true,
                      "enable_feature_trunks": true,
                      "enable_feature_whats_app": true,
                      "enable_night_mode": true,
                      "enable_two_factor_authentication": true,
                      "enable_verify_phone_auto_provisioning": true,
                      "custom_options": "",
                      "max_extensions": 1000,
                      "max_concurrent_calls": 100,
                      "max_ring_groups": 100,
                      "max_virtual_receptionists": 100,
                      "max_call_queues": 100,
                      "max_conference_rooms": 100,
                      "disk_quota": "",
                      "used_disk_quota": "",
                      "im_disk_quota": "",
                      "extension_im_disk_quota": "",
                      "recording_retention": 30,
                      "call_report_retention": 30,
                      "log_retention": 30,
                      "temp_file_retention": 30,
                      "office_hours": {
                        "monday": {
                          "enabled": true,
                          "ranges": [
                            {
                              "from": "09:00",
                              "to": "17:00"
                            }
                          ]
                        },
                        "tuesday": {
                          "enabled": true,
                          "ranges": [
                            {
                              "from": "09:00",
                              "to": "17:00"
                            }
                          ]
                        },
                        "wednesday": {
                          "enabled": true,
                          "ranges": [
                            {
                              "from": "09:00",
                              "to": "17:00"
                            }
                          ]
                        },
                        "thursday": {
                          "enabled": true,
                          "ranges": [
                            {
                              "from": "09:00",
                              "to": "17:00"
                            }
                          ]
                        },
                        "friday": {
                          "enabled": true,
                          "ranges": [
                            {
                              "from": "09:00",
                              "to": "17:00"
                            }
                          ]
                        },
                        "saturday": {
                          "enabled": true,
                          "ranges": [
                            {
                              "from": "09:00",
                              "to": "17:00"
                            }
                          ]
                        },
                        "sunday": {
                          "enabled": true,
                          "ranges": [
                            {
                              "from": "09:00",
                              "to": "17:00"
                            }
                          ]
                        }
                      },
                      "outbound_caller_ids": [
                        {
                          "provider_id": "xxxxxx",
                          "caller_id": "1000",
                          "description": "example",
                          "display_name": "1000"
                        }
                      ],
                      "e164": {
                        "enabled": true,
                        "international_code": "",
                        "country": "",
                        "area_code": "",
                        "national_code": "",
                        "prefix": "",
                        "remove_special_chars": false,
                        "remove_duplicate_countries": false,
                        "remove_duplicate_area_codes": false
                      },
                      "cdr_event": {
                        "enabled": true,
                        "auth": "BASIC",
                        "username": "xxxxxx",
                        "password": "xxxxxx",
                        "token": "xxxxxx",
                        "url": "https://example.com"
                      },
                      "extension_event": {
                        "enabled": true,
                        "auth": "BASIC",
                        "username": "xxxxxx",
                        "password": "xxxxxx",
                        "token": "xxxxxx",
                        "url": "https://example.com"
                      },
                      "contact_match_type": "DISABLE",
                      "contact_match_length": 1,
                      "contact_append_type": "DISABLE",
                      "contact_inbound_rule_append_type": "DISABLE",
                      "contact_update_interval": 720,
                      "password_force_reset": false,
                      "avatar_file_name": "example",
                      "avatar_file_size": 100,
                      "avatar_file_url": "",
                      "stir_shaken_cert": "",
                      "stir_shaken_key": "",
                      "crm_provider": "",
                      "crm_contact_type": "contact",
                      "soft_phone_template": "app.xml",
                      "recording_access_mode": "PUBLIC"
                    }
                  }
                }
              }
            }
          },
          "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",
                    "minLength": 1,
                    "maxLength": 128,
                    "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_call_queue_audio_recording": {
                    "type": "boolean",
                    "default": false,
                    "description": "Allow call queue audio recording.\n"
                  },
                  "enable_ring_group_audio_recording": {
                    "type": "boolean",
                    "default": false,
                    "description": "Allow ring group audio recording.\n"
                  },
                  "enable_trunk_audio_recording": {
                    "type": "boolean",
                    "default": false,
                    "description": "Allow trunk audio recording.\n"
                  },
                  "enable_virtual_receptionist_audio_recording": {
                    "type": "boolean",
                    "default": false,
                    "description": "Allow virtual receptionist 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"
                  },
                  "enable_verify_phone_auto_provisioning": {
                    "type": "boolean",
                    "default": false,
                    "description": "Whether to enable-factor auto-provisioning of verify phone.\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 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"
                        },
                        "display_name": {
                          "type": "string",
                          "maxLength": 32,
                          "description": "The display name of 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"
                  },
                  "soft_phone_template": {
                    "type": "string",
                    "description": "The template file name used to generate the user configuration file for the soft phone.\n",
                    "example": "app.xml"
                  },
                  "avatar_file_id": {
                    "allOf": [
                      {
                        "type": "string",
                        "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                      }
                    ],
                    "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"
                  },
                  "recording_access_mode": {
                    "type": "string",
                    "enum": [
                      "PRIVATE",
                      "PUBLIC"
                    ],
                    "default": "PUBLIC",
                    "description": "The recording access mode:   \nCan be either:  \n- `PRIVATE`: Access the recording file using the private link.\n- `PUBLIC`: Access the recording file using the public link.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": "",
                  "value": {
                    "name": "example",
                    "domain": "example.com",
                    "website": "https://example.com",
                    "timezone": "",
                    "currency": "",
                    "region": "",
                    "enable_video_recording": true,
                    "ai_transcript": {
                      "enable_record": false,
                      "enable_voicemails": false
                    },
                    "enable_audio_recording": false,
                    "enable_call_queue_audio_recording": false,
                    "enable_ring_group_audio_recording": false,
                    "enable_trunk_audio_recording": false,
                    "enable_virtual_receptionist_audio_recording": false,
                    "enable_dual_track_recording": true,
                    "enable_night_mode": true,
                    "enable_two_factor_authentication": true,
                    "enable_verify_phone_auto_provisioning": true,
                    "custom_options": "",
                    "recording_retention": 30,
                    "call_report_retention": 30,
                    "log_retention": 30,
                    "temp_file_retention": 30,
                    "extension_im_disk_quota": "",
                    "office_hours": {
                      "monday": {
                        "enabled": true,
                        "ranges": [
                          {
                            "from": "09:00",
                            "to": "17:00"
                          }
                        ]
                      },
                      "tuesday": {
                        "enabled": true,
                        "ranges": [
                          {
                            "from": "09:00",
                            "to": "17:00"
                          }
                        ]
                      },
                      "wednesday": {
                        "enabled": true,
                        "ranges": [
                          {
                            "from": "09:00",
                            "to": "17:00"
                          }
                        ]
                      },
                      "thursday": {
                        "enabled": true,
                        "ranges": [
                          {
                            "from": "09:00",
                            "to": "17:00"
                          }
                        ]
                      },
                      "friday": {
                        "enabled": true,
                        "ranges": [
                          {
                            "from": "09:00",
                            "to": "17:00"
                          }
                        ]
                      },
                      "saturday": {
                        "enabled": true,
                        "ranges": [
                          {
                            "from": "09:00",
                            "to": "17:00"
                          }
                        ]
                      },
                      "sunday": {
                        "enabled": true,
                        "ranges": [
                          {
                            "from": "09:00",
                            "to": "17:00"
                          }
                        ]
                      }
                    },
                    "outbound_caller_ids": [
                      {
                        "provider_id": "xxxxxx",
                        "caller_id": "1000",
                        "description": "example",
                        "display_name": "1000"
                      }
                    ],
                    "e164": {
                      "enabled": true,
                      "international_code": "",
                      "country": "",
                      "area_code": "",
                      "national_code": "",
                      "prefix": "",
                      "remove_special_chars": false,
                      "remove_duplicate_countries": false,
                      "remove_duplicate_area_codes": false
                    },
                    "cdr_event": {
                      "enabled": true,
                      "auth": "BASIC",
                      "username": "xxxxxx",
                      "password": "xxxxxx",
                      "token": "xxxxxx",
                      "url": "https://example.com"
                    },
                    "extension_event": {
                      "enabled": true,
                      "auth": "BASIC",
                      "username": "xxxxxx",
                      "password": "xxxxxx",
                      "token": "xxxxxx",
                      "url": "https://example.com"
                    },
                    "contact_match_type": "DISABLE",
                    "contact_match_length": 1,
                    "contact_append_type": "DISABLE",
                    "contact_inbound_rule_append_type": "DISABLE",
                    "contact_update_interval": 720,
                    "password_force_reset": false,
                    "avatar_file_id": "xxxxxx",
                    "stir_shaken_cert": "",
                    "stir_shaken_key": "",
                    "soft_phone_template": "app.xml",
                    "recording_access_mode": "PUBLIC"
                  }
                }
              }
            }
          }
        },
        "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": "",
                    "value": {
                      "version": "",
                      "licensed_users": 100,
                      "current_users": 100,
                      "online_users": 100,
                      "current_calls": 100,
                      "current_queues": 100,
                      "current_conference_rooms": 100,
                      "current_ring_groups": 100,
                      "current_ivrs": 100,
                      "current_trunks": 100
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/tenant/notification": {
      "get": {
        "tags": [
          "Notification"
        ],
        "operationId": "getNotificationSettings",
        "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"
                    },
                    "notify_emergency_call": {
                      "type": "boolean",
                      "default": true,
                      "description": "Send a notification email when emergency number dialed.\n"
                    },
                    "notify_license_limited": {
                      "type": "boolean",
                      "default": true,
                      "description": "Send a notification email when license limit reached.\n"
                    },
                    "notify_trunk_call_limited": {
                      "type": "boolean",
                      "default": true,
                      "description": "Send a notification email when trunk call limited reached.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "",
                    "value": {
                      "type": "SMTP",
                      "server": "",
                      "port": 1000,
                      "reply_to": "",
                      "username": "example",
                      "auth": "AUTO",
                      "enable_tls_ssl": true,
                      "enable_starttls_auto": true,
                      "recipients": "",
                      "enable_system_email_server": false,
                      "notify_user_registration": true,
                      "notify_queue_sla_breached": false,
                      "notify_queue_callback": false,
                      "notify_queue_callback_failed": false,
                      "notify_queue_call_lost": false,
                      "notify_emergency_call": true,
                      "notify_license_limited": true,
                      "notify_trunk_call_limited": true
                    }
                  }
                }
              }
            }
          },
          "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"
                  },
                  "notify_emergency_call": {
                    "type": "boolean",
                    "default": true,
                    "description": "Send a notification email when emergency number dialed.\n"
                  },
                  "notify_license_limited": {
                    "type": "boolean",
                    "default": true,
                    "description": "Send a notification email when license limit reached.\n"
                  },
                  "notify_trunk_call_limited": {
                    "type": "boolean",
                    "default": true,
                    "description": "Send a notification email when trunk call limited reached.\n"
                  }
                },
                "required": [
                  "type",
                  "username"
                ]
              },
              "examples": {
                "default": {
                  "summary": "",
                  "value": {
                    "type": "SMTP",
                    "server": "",
                    "port": 1000,
                    "reply_to": "",
                    "username": "example",
                    "password": "",
                    "auth": "AUTO",
                    "enable_tls_ssl": true,
                    "enable_starttls_auto": true,
                    "recipients": "",
                    "notify_user_registration": true,
                    "notify_queue_sla_breached": false,
                    "notify_queue_callback": false,
                    "notify_queue_callback_failed": false,
                    "notify_queue_call_lost": false,
                    "notify_emergency_call": true,
                    "notify_license_limited": true,
                    "notify_trunk_call_limited": true
                  }
                }
              }
            }
          }
        },
        "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": "",
                  "value": {
                    "recipient": "",
                    "subject": "example",
                    "content": ""
                  }
                }
              }
            }
          },
          "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": "",
                    "value": {
                      "min_length": 6,
                      "max_length": 32,
                      "contains_letters": true,
                      "contains_numbers": true,
                      "contains_special_letters": true,
                      "disable_sequential_characters": true,
                      "disable_repeating_characters": true,
                      "disable_account_information": true,
                      "pin_min_length": 4,
                      "pin_max_length": 6
                    }
                  }
                }
              }
            }
          },
          "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": "",
                  "value": {
                    "min_length": 6,
                    "max_length": 32,
                    "contains_letters": true,
                    "contains_numbers": true,
                    "contains_special_letters": true,
                    "disable_sequential_characters": true,
                    "disable_repeating_characters": true,
                    "disable_account_information": true,
                    "pin_min_length": 4,
                    "pin_max_length": 6
                  }
                }
              }
            }
          }
        },
        "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": "",
                    "value": {
                      "enabled": true,
                      "account": "TENANT",
                      "type": "OFFLINE"
                    }
                  }
                }
              }
            }
          },
          "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": "",
                  "value": {
                    "enabled": true,
                    "account": "TENANT",
                    "type": "OFFLINE"
                  }
                }
              }
            }
          }
        },
        "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": "",
                    "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": "",
                  "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": "",
                    "value": {
                      "add": [
                        {
                          "name": "example",
                          "value": "xxxxxx",
                          "scope": "ALL"
                        }
                      ],
                      "relay": [
                        {
                          "name": "example",
                          "scope": "ALL"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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": "",
                  "value": {
                    "add": [
                      {
                        "name": "example",
                        "value": "xxxxxx",
                        "scope": "ALL"
                      }
                    ],
                    "relay": [
                      {
                        "name": "example",
                        "scope": "ALL"
                      }
                    ]
                  }
                }
              }
            }
          }
        },
        "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": "",
                  "value": {
                    "name": "example",
                    "enabled": true,
                    "ipv4": "127.0.0.1",
                    "ipv6": "2001:0db8:0a0b:12f0::1",
                    "max_rooms": 10,
                    "max_participants": 10
                  }
                }
              }
            }
          },
          "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 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 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": "",
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": "xxxxxx",
                          "name": "example",
                          "enabled": true,
                          "type": "INTERNAL",
                          "ipv4": "127.0.0.1",
                          "ipv6": "2001:0db8:0a0b:12f0::1",
                          "max_rooms": 10,
                          "max_participants": 10
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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 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 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": "",
                    "value": {
                      "id": "xxxxxx",
                      "name": "example",
                      "enabled": true,
                      "type": "INTERNAL",
                      "ipv4": "127.0.0.1",
                      "ipv6": "2001:0db8:0a0b:12f0::1",
                      "max_rooms": 10,
                      "max_participants": 10
                    }
                  }
                }
              }
            }
          },
          "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 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": "",
                  "value": {
                    "enabled": true,
                    "max_rooms": 10,
                    "max_participants": 10
                  }
                }
              }
            }
          },
          "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 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": "",
                    "value": {
                      "rooms_count": 1,
                      "participants_count": 1,
                      "cpu_usage": 80,
                      "memory_usage": 80,
                      "status": "ONLINE"
                    }
                  }
                }
              }
            }
          },
          "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 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": "",
                  "value": {
                    "name": "example",
                    "enabled": true,
                    "private_ipv4": "127.0.0.1",
                    "private_ipv6": "::1",
                    "public_ipv4": "192.0.2.0",
                    "public_ipv6": "2001:0db8:0a0b:12f0::1",
                    "max_concurrency": 1000,
                    "custom_options": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Created media server",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                        }
                      ],
                      "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 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": "",
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": "xxxxxx",
                          "name": "example",
                          "type": "INTERNAL",
                          "enabled": true,
                          "private_ipv4": "127.0.0.1",
                          "private_ipv6": "::1",
                          "public_ipv4": "127.0.0.1",
                          "public_ipv6": "2001:0db8:0a0b:12f0::1",
                          "max_concurrency": 1000,
                          "custom_options": ""
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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 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 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": "",
                    "value": {
                      "id": "xxxxxx",
                      "name": "example",
                      "type": "INTERNAL",
                      "enabled": true,
                      "private_ipv4": "127.0.0.1",
                      "private_ipv6": "::1",
                      "public_ipv4": "192.0.2.0",
                      "public_ipv6": "2001:0db8:0a0b:12f0::1",
                      "max_concurrency": 1000,
                      "custom_options": ""
                    }
                  }
                }
              }
            }
          },
          "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 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": "",
                  "value": {
                    "enabled": true,
                    "max_concurrency": 1000,
                    "custom_options": ""
                  }
                }
              }
            }
          }
        },
        "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 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": "",
                    "value": {
                      "current_concurrency": 100,
                      "cpu_usage": 80,
                      "memory_usage": 80,
                      "status": "ONLINE"
                    }
                  }
                }
              }
            }
          },
          "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 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": "",
                    "value": {
                      "api_version": "",
                      "product_name": "example",
                      "max_sim_calls": 100,
                      "license_key": "",
                      "company_name": "example",
                      "contact_email": ""
                    }
                  }
                }
              }
            }
          },
          "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": "",
                  "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": "",
                  "value": {
                    "crt": "",
                    "key": ""
                  }
                }
              }
            }
          },
          "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": "",
                    "value": {
                      "crt": "",
                      "key": ""
                    }
                  }
                }
              }
            }
          },
          "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 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 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": "",
                  "value": {
                    "theme": "BLUE",
                    "logo": "",
                    "favicon": "",
                    "title": "",
                    "copyright": "",
                    "product": "",
                    "website": "https://example.com",
                    "forum": "",
                    "bottom_text": ""
                  }
                }
              }
            }
          }
        },
        "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 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",
                      "minLength": 1,
                      "maxLength": 128,
                      "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": "",
                    "value": {
                      "id": "xxxxxx",
                      "enabled": true,
                      "level": "DISTRIBUTOR",
                      "name": "example",
                      "email": "example@example.com",
                      "display_name": "example",
                      "website": "https://example.com",
                      "phone": "",
                      "address": "",
                      "description": "",
                      "max_tenants": 100,
                      "max_extensions": 1000
                    }
                  }
                }
              }
            }
          },
          "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",
                    "minLength": 1,
                    "maxLength": 128,
                    "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": "",
                  "value": {
                    "email": "example@example.com",
                    "display_name": "example",
                    "website": "https://example.com",
                    "phone": "",
                    "address": "",
                    "description": ""
                  }
                }
              }
            }
          },
          "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": "",
                    "value": {
                      "version": "",
                      "max_dealers": 100,
                      "current_dealers": 10,
                      "max_users": 1000,
                      "current_users": 100,
                      "max_tenants": 100,
                      "current_tenants": 10
                    }
                  }
                }
              }
            }
          },
          "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": "",
                  "value": {
                    "name": "example"
                  }
                }
              }
            }
          },
          "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": "",
                  "value": {
                    "old_password": "xxxxxx",
                    "new_password": "xxxxxx"
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/dealer/password_policy": {
      "get": {
        "tags": [
          "Dealer"
        ],
        "summary": "Get Dealer Password Policy",
        "description": "Get the password policy for dealers.",
        "operationId": "getDealerPasswordPolicy",
        "x-category": "dealer-management",
        "x-subcategory": "dealer-management",
        "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"
                    }
                  },
                  "required": [
                    "min_length",
                    "max_length",
                    "contains_letters",
                    "contains_numbers",
                    "contains_special_letters",
                    "disable_sequential_characters",
                    "disable_repeating_characters",
                    "disable_account_information"
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "Internal Server 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": "",
                  "value": {
                    "name": "example",
                    "capabilities": [
                      "Company.Information",
                      "Company.ViewOnly",
                      "GeneralCallLog.FullAccess",
                      "GeneralCallLog.ViewOnly",
                      "GeneralCallRecording.FullAccess",
                      "GeneralCallRecording.ViewOnly",
                      "GeneralMeeting.FullAccess",
                      "GeneralMeeting.ViewOnly",
                      "GeneralVoicemail.FullAccess",
                      "GeneralVoicemail.ViewOnly"
                    ],
                    "description": ""
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                        }
                      ],
                      "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 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": "",
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": "xxxxxx",
                          "name": "example",
                          "protected": false,
                          "capabilities": [
                            "Company.Information",
                            "Company.ViewOnly",
                            "GeneralCallLog.FullAccess",
                            "GeneralCallLog.ViewOnly",
                            "GeneralCallRecording.FullAccess",
                            "GeneralCallRecording.ViewOnly",
                            "GeneralMeeting.FullAccess",
                            "GeneralMeeting.ViewOnly",
                            "GeneralVoicemail.FullAccess",
                            "GeneralVoicemail.ViewOnly"
                          ],
                          "description": ""
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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 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 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": "",
                    "value": {
                      "id": "xxxxxx",
                      "name": "example",
                      "capabilities": [
                        "Company.Information",
                        "Company.ViewOnly",
                        "GeneralCallLog.FullAccess",
                        "GeneralCallLog.ViewOnly",
                        "GeneralCallRecording.FullAccess",
                        "GeneralCallRecording.ViewOnly",
                        "GeneralMeeting.FullAccess",
                        "GeneralMeeting.ViewOnly",
                        "GeneralVoicemail.FullAccess",
                        "GeneralVoicemail.ViewOnly"
                      ],
                      "protected": false,
                      "description": ""
                    }
                  }
                }
              }
            }
          },
          "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 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": "",
                  "value": {
                    "name": "example",
                    "capabilities": [
                      "Company.Information",
                      "Company.ViewOnly",
                      "GeneralCallLog.FullAccess",
                      "GeneralCallLog.ViewOnly",
                      "GeneralCallRecording.FullAccess",
                      "GeneralCallRecording.ViewOnly",
                      "GeneralMeeting.FullAccess",
                      "GeneralMeeting.ViewOnly",
                      "GeneralVoicemail.FullAccess",
                      "GeneralVoicemail.ViewOnly"
                    ],
                    "description": ""
                  }
                }
              }
            }
          },
          "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 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 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",
                      "minLength": 1,
                      "maxLength": 128,
                      "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 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 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"
                          },
                          "display_name": {
                            "type": "string",
                            "description": "The display name of this outbound 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"
                    },
                    "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"
                          }
                        }
                      }
                    },
                    "selective_call_acceptations": {
                      "type": "array",
                      "items": {
                        "allOf": [
                          {
                            "type": "object",
                            "properties": {
                              "name": {
                                "type": "string",
                                "description": "The name of selective call process.\n"
                              },
                              "caller": {
                                "type": "string",
                                "description": "The caller number of selective call process.\n"
                              },
                              "condition": {
                                "type": "string",
                                "enum": [
                                  "ALL_HOURS",
                                  "SPECIFIC_OFFICE_HOURS",
                                  "PERSONAL_OFFICE_HOURS",
                                  "OUTSIDE_PERSONAL_OFFICE_HOURS",
                                  "GLOBAL_OFFICE_HOURS",
                                  "OUTSIDE_GLOBAL_OFFICE_HOURS"
                                ],
                                "description": "The condition of selective call process:   \nCan be either:   \n- `ALL_HOURS`:\n- `SPECIFIC_OFFICE_HOURS`:\n- `PERSONAL_OFFICE_HOURS`:\n- `OUTSIDE_PERSONAL_OFFICE_HOURS`:\n- `GLOBAL_OFFICE_HOURS`:\n- `OUTSIDE_GLOBAL_OFFICE_HOURS`:\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"
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          {
                            "type": "object",
                            "properties": {
                              "holidays": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "id": {
                                      "allOf": [
                                        {
                                          "type": "string",
                                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                                        }
                                      ],
                                      "description": "The unique ID of holiday.\n",
                                      "readOnly": true
                                    },
                                    "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"
                                    },
                                    "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"
                              }
                            }
                          }
                        ]
                      }
                    },
                    "selective_call_rejections": {
                      "type": "array",
                      "items": {
                        "allOf": [
                          {
                            "type": "object",
                            "properties": {
                              "name": {
                                "type": "string",
                                "description": "The name of selective call process.\n"
                              },
                              "caller": {
                                "type": "string",
                                "description": "The caller number of selective call process.\n"
                              },
                              "condition": {
                                "type": "string",
                                "enum": [
                                  "ALL_HOURS",
                                  "SPECIFIC_OFFICE_HOURS",
                                  "PERSONAL_OFFICE_HOURS",
                                  "OUTSIDE_PERSONAL_OFFICE_HOURS",
                                  "GLOBAL_OFFICE_HOURS",
                                  "OUTSIDE_GLOBAL_OFFICE_HOURS"
                                ],
                                "description": "The condition of selective call process:   \nCan be either:   \n- `ALL_HOURS`:\n- `SPECIFIC_OFFICE_HOURS`:\n- `PERSONAL_OFFICE_HOURS`:\n- `OUTSIDE_PERSONAL_OFFICE_HOURS`:\n- `GLOBAL_OFFICE_HOURS`:\n- `OUTSIDE_GLOBAL_OFFICE_HOURS`:\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"
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          {
                            "type": "object",
                            "properties": {
                              "holidays": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "id": {
                                      "allOf": [
                                        {
                                          "type": "string",
                                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                                        }
                                      ],
                                      "description": "The unique ID of holiday.\n",
                                      "readOnly": true
                                    },
                                    "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"
                                    },
                                    "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"
                              }
                            }
                          }
                        ]
                      }
                    },
                    "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 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",
                      "description": "The synchronization method.\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"
                    },
                    "timezone": {
                      "allOf": [
                        {
                          "type": "string",
                          "description": "The IANA Time Zone names, such as \"Asia/Shanghai\".\n"
                        }
                      ],
                      "description": "Timezone for extension user.\n"
                    },
                    "enable_selective_call_acceptation": {
                      "type": "boolean",
                      "default": false,
                      "description": "Enable selective call acceptations or not.\n"
                    },
                    "enable_selective_call_rejection": {
                      "type": "boolean",
                      "default": false,
                      "description": "Enable selective call rejections or not.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "",
                    "value": {
                      "id": "xxxxxx",
                      "name": "example",
                      "email": "example@example.com",
                      "display_name": "example",
                      "role": "StandardUser",
                      "role_id": "xxxxxx",
                      "role_name": "example",
                      "enabled": true,
                      "mobile_phone": "",
                      "work_phone": "",
                      "home_phone": "",
                      "address": "",
                      "department": "",
                      "extension_number": "101",
                      "enable_audio_recording": true,
                      "enable_video_recording": true,
                      "enable_dnd": true,
                      "enable_acb": true,
                      "enable_hot_desking": true,
                      "anonymous_outbound_calls": false,
                      "delivery_outbound_cid": false,
                      "sms": "DISABLE",
                      "outbound_caller_ids": [
                        {
                          "provider_id": "xxxxxx",
                          "caller_id": "1000",
                          "description": "example",
                          "display_name": "1000"
                        }
                      ],
                      "custom_options": "",
                      "office_hours": {
                        "monday": {
                          "enabled": true,
                          "ranges": [
                            {
                              "from": "09:00",
                              "to": "17:00"
                            }
                          ]
                        },
                        "tuesday": {
                          "enabled": true,
                          "ranges": [
                            {
                              "from": "09:00",
                              "to": "17:00"
                            }
                          ]
                        },
                        "wednesday": {
                          "enabled": true,
                          "ranges": [
                            {
                              "from": "09:00",
                              "to": "17:00"
                            }
                          ]
                        },
                        "thursday": {
                          "enabled": true,
                          "ranges": [
                            {
                              "from": "09:00",
                              "to": "17:00"
                            }
                          ]
                        },
                        "friday": {
                          "enabled": true,
                          "ranges": [
                            {
                              "from": "09:00",
                              "to": "17:00"
                            }
                          ]
                        },
                        "saturday": {
                          "enabled": true,
                          "ranges": [
                            {
                              "from": "09:00",
                              "to": "17:00"
                            }
                          ]
                        },
                        "sunday": {
                          "enabled": true,
                          "ranges": [
                            {
                              "from": "09:00",
                              "to": "17:00"
                            }
                          ]
                        }
                      },
                      "available_office_hours_forward_rule": {
                        "action": "HANGUP"
                      },
                      "available_non_office_hours_forward_rule": {
                        "action": "HANGUP"
                      },
                      "available_no_answer_forward_rule": {
                        "action": "HANGUP"
                      },
                      "busy_office_hours_forward_rule": {
                        "action": "HANGUP"
                      },
                      "busy_non_office_hours_forward_rule": {
                        "action": "HANGUP"
                      },
                      "busy_no_answer_forward_rule": {
                        "action": "HANGUP"
                      },
                      "dnd_office_hours_forward_rule": {
                        "action": "HANGUP"
                      },
                      "dnd_non_office_hours_forward_rule": {
                        "action": "HANGUP"
                      },
                      "away_office_hours_forward_rule": {
                        "action": "HANGUP"
                      },
                      "away_non_office_hours_forward_rule": {
                        "action": "HANGUP"
                      },
                      "lunch_office_hours_forward_rule": {
                        "action": "HANGUP"
                      },
                      "lunch_non_office_hours_forward_rule": {
                        "action": "HANGUP"
                      },
                      "trip_office_hours_forward_rule": {
                        "action": "HANGUP"
                      },
                      "trip_non_office_hours_forward_rule": {
                        "action": "HANGUP"
                      },
                      "offline_office_hours_forward_rule": {
                        "action": "HANGUP"
                      },
                      "offline_non_office_hours_forward_rule": {
                        "action": "HANGUP"
                      },
                      "custom_forward_rules": [],
                      "selective_call_acceptations": [
                        {
                          "name": "example",
                          "caller": "100",
                          "condition": "ALL_HOURS",
                          "office_hours": {
                            "monday": {
                              "enabled": true,
                              "ranges": [
                                {
                                  "from": "09:00",
                                  "to": "17:00"
                                }
                              ]
                            },
                            "tuesday": {
                              "enabled": true,
                              "ranges": [
                                {
                                  "from": "09:00",
                                  "to": "17:00"
                                }
                              ]
                            },
                            "wednesday": {
                              "enabled": true,
                              "ranges": [
                                {
                                  "from": "09:00",
                                  "to": "17:00"
                                }
                              ]
                            },
                            "thursday": {
                              "enabled": true,
                              "ranges": [
                                {
                                  "from": "09:00",
                                  "to": "17:00"
                                }
                              ]
                            },
                            "friday": {
                              "enabled": true,
                              "ranges": [
                                {
                                  "from": "09:00",
                                  "to": "17:00"
                                }
                              ]
                            },
                            "saturday": {
                              "enabled": true,
                              "ranges": [
                                {
                                  "from": "09:00",
                                  "to": "17:00"
                                }
                              ]
                            },
                            "sunday": {
                              "enabled": true,
                              "ranges": [
                                {
                                  "from": "09:00",
                                  "to": "17:00"
                                }
                              ]
                            }
                          },
                          "holidays": [
                            {
                              "name": "example",
                              "region": "",
                              "consecutive": false,
                              "every_year": true,
                              "year_start": 0,
                              "year_end": 0,
                              "month_start": 6,
                              "month_end": 6,
                              "day_start": 1,
                              "day_end": 1,
                              "hour_start": 0,
                              "hour_end": 23,
                              "minute_start": 0,
                              "minute_end": 59
                            }
                          ]
                        }
                      ],
                      "selective_call_rejections": [
                        {
                          "name": "example",
                          "caller": "100",
                          "condition": "ALL_HOURS",
                          "office_hours": {
                            "monday": {
                              "enabled": true,
                              "ranges": [
                                {
                                  "from": "09:00",
                                  "to": "17:00"
                                }
                              ]
                            },
                            "tuesday": {
                              "enabled": true,
                              "ranges": [
                                {
                                  "from": "09:00",
                                  "to": "17:00"
                                }
                              ]
                            },
                            "wednesday": {
                              "enabled": true,
                              "ranges": [
                                {
                                  "from": "09:00",
                                  "to": "17:00"
                                }
                              ]
                            },
                            "thursday": {
                              "enabled": true,
                              "ranges": [
                                {
                                  "from": "09:00",
                                  "to": "17:00"
                                }
                              ]
                            },
                            "friday": {
                              "enabled": true,
                              "ranges": [
                                {
                                  "from": "09:00",
                                  "to": "17:00"
                                }
                              ]
                            },
                            "saturday": {
                              "enabled": true,
                              "ranges": [
                                {
                                  "from": "09:00",
                                  "to": "17:00"
                                }
                              ]
                            },
                            "sunday": {
                              "enabled": true,
                              "ranges": [
                                {
                                  "from": "09:00",
                                  "to": "17:00"
                                }
                              ]
                            }
                          },
                          "holidays": [
                            {
                              "name": "example",
                              "region": "",
                              "consecutive": false,
                              "every_year": true,
                              "year_start": 0,
                              "year_end": 0,
                              "month_start": 6,
                              "month_end": 6,
                              "day_start": 1,
                              "day_end": 1,
                              "hour_start": 0,
                              "hour_end": 23,
                              "minute_start": 0,
                              "minute_end": 59
                            }
                          ]
                        }
                      ],
                      "voicemail_prompt": "",
                      "enable_voicemail_pin": true,
                      "voicemail_pin": "",
                      "enable_voicemail_notify": true,
                      "voicemail_play_datetime": "DISABLE",
                      "interface": "WEB_DOMAIN",
                      "preferred_transport": "UDP",
                      "blfs": [],
                      "created_at": "2020-01-01T00:00:00Z",
                      "avatar_file_name": "example",
                      "avatar_file_size": 100,
                      "avatar_file_url": "",
                      "transports": [
                        {
                          "protocol": "UDP",
                          "port": 1000,
                          "verification": "OPTIONAL"
                        }
                      ],
                      "profile": "",
                      "provider": "",
                      "provider_id": "xxxxxx",
                      "sync_type": "",
                      "enable_uc_app": true,
                      "enable_teams_phone_app": true,
                      "timezone": "Asia/Shanghai",
                      "enable_selective_call_acceptation": false,
                      "enable_selective_call_rejection": false
                    }
                  }
                }
              }
            }
          },
          "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",
                    "minLength": 1,
                    "maxLength": 128,
                    "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 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"
                        },
                        "display_name": {
                          "type": "string",
                          "description": "The display name of this outbound 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"
                  },
                  "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"
                        }
                      }
                    }
                  },
                  "selective_call_acceptations": {
                    "type": "array",
                    "items": {
                      "allOf": [
                        {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string",
                              "description": "The name of selective call process.\n"
                            },
                            "caller": {
                              "type": "string",
                              "description": "The caller number of selective call process.\n"
                            },
                            "condition": {
                              "type": "string",
                              "enum": [
                                "ALL_HOURS",
                                "SPECIFIC_OFFICE_HOURS",
                                "PERSONAL_OFFICE_HOURS",
                                "OUTSIDE_PERSONAL_OFFICE_HOURS",
                                "GLOBAL_OFFICE_HOURS",
                                "OUTSIDE_GLOBAL_OFFICE_HOURS"
                              ],
                              "description": "The condition of selective call process:   \nCan be either:   \n- `ALL_HOURS`:\n- `SPECIFIC_OFFICE_HOURS`:\n- `PERSONAL_OFFICE_HOURS`:\n- `OUTSIDE_PERSONAL_OFFICE_HOURS`:\n- `GLOBAL_OFFICE_HOURS`:\n- `OUTSIDE_GLOBAL_OFFICE_HOURS`:\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"
                                    }
                                  }
                                }
                              }
                            }
                          }
                        },
                        {
                          "type": "object",
                          "properties": {
                            "holidays": {
                              "type": "array",
                              "items": {
                                "allOf": [
                                  {
                                    "type": "string",
                                    "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                                  }
                                ],
                                "description": "The unqiue ID of holiday.\n"
                              }
                            }
                          }
                        }
                      ]
                    }
                  },
                  "selective_call_rejections": {
                    "type": "array",
                    "items": {
                      "allOf": [
                        {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string",
                              "description": "The name of selective call process.\n"
                            },
                            "caller": {
                              "type": "string",
                              "description": "The caller number of selective call process.\n"
                            },
                            "condition": {
                              "type": "string",
                              "enum": [
                                "ALL_HOURS",
                                "SPECIFIC_OFFICE_HOURS",
                                "PERSONAL_OFFICE_HOURS",
                                "OUTSIDE_PERSONAL_OFFICE_HOURS",
                                "GLOBAL_OFFICE_HOURS",
                                "OUTSIDE_GLOBAL_OFFICE_HOURS"
                              ],
                              "description": "The condition of selective call process:   \nCan be either:   \n- `ALL_HOURS`:\n- `SPECIFIC_OFFICE_HOURS`:\n- `PERSONAL_OFFICE_HOURS`:\n- `OUTSIDE_PERSONAL_OFFICE_HOURS`:\n- `GLOBAL_OFFICE_HOURS`:\n- `OUTSIDE_GLOBAL_OFFICE_HOURS`:\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"
                                    }
                                  }
                                }
                              }
                            }
                          }
                        },
                        {
                          "type": "object",
                          "properties": {
                            "holidays": {
                              "type": "array",
                              "items": {
                                "allOf": [
                                  {
                                    "type": "string",
                                    "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                                  }
                                ],
                                "description": "The unqiue ID of holiday.\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 file.\n"
                  },
                  "timezone": {
                    "allOf": [
                      {
                        "type": "string",
                        "description": "The IANA Time Zone names, such as \"Asia/Shanghai\".\n"
                      }
                    ],
                    "description": "Timezone for extension user.\n"
                  },
                  "enable_selective_call_acceptation": {
                    "type": "boolean",
                    "default": false,
                    "description": "Enable selective call acceptations or not.\n"
                  },
                  "enable_selective_call_rejection": {
                    "type": "boolean",
                    "default": false,
                    "description": "Enable selective call rejections or not.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": "",
                  "value": {
                    "email": "example@example.com",
                    "display_name": "example",
                    "mobile_phone": "",
                    "work_phone": "",
                    "home_phone": "",
                    "address": "",
                    "department": "",
                    "enable_audio_recording": true,
                    "enable_video_recording": true,
                    "enable_dnd": true,
                    "enable_acb": true,
                    "enable_hot_desking": true,
                    "anonymous_outbound_calls": false,
                    "delivery_outbound_cid": false,
                    "sms": "DISABLE",
                    "outbound_caller_ids": [
                      {
                        "provider_id": "xxxxxx",
                        "caller_id": "1000",
                        "description": "example",
                        "display_name": "1000"
                      }
                    ],
                    "custom_options": "",
                    "office_hours": {
                      "monday": {
                        "enabled": true,
                        "ranges": [
                          {
                            "from": "09:00",
                            "to": "17:00"
                          }
                        ]
                      },
                      "tuesday": {
                        "enabled": true,
                        "ranges": [
                          {
                            "from": "09:00",
                            "to": "17:00"
                          }
                        ]
                      },
                      "wednesday": {
                        "enabled": true,
                        "ranges": [
                          {
                            "from": "09:00",
                            "to": "17:00"
                          }
                        ]
                      },
                      "thursday": {
                        "enabled": true,
                        "ranges": [
                          {
                            "from": "09:00",
                            "to": "17:00"
                          }
                        ]
                      },
                      "friday": {
                        "enabled": true,
                        "ranges": [
                          {
                            "from": "09:00",
                            "to": "17:00"
                          }
                        ]
                      },
                      "saturday": {
                        "enabled": true,
                        "ranges": [
                          {
                            "from": "09:00",
                            "to": "17:00"
                          }
                        ]
                      },
                      "sunday": {
                        "enabled": true,
                        "ranges": [
                          {
                            "from": "09:00",
                            "to": "17:00"
                          }
                        ]
                      }
                    },
                    "available_office_hours_forward_rule": {
                      "action": "HANGUP"
                    },
                    "available_non_office_hours_forward_rule": {
                      "action": "HANGUP"
                    },
                    "available_no_answer_forward_rule": {
                      "action": "HANGUP"
                    },
                    "busy_office_hours_forward_rule": {
                      "action": "HANGUP"
                    },
                    "busy_non_office_hours_forward_rule": {
                      "action": "HANGUP"
                    },
                    "busy_no_answer_forward_rule": {
                      "action": "HANGUP"
                    },
                    "dnd_office_hours_forward_rule": {
                      "action": "HANGUP"
                    },
                    "dnd_non_office_hours_forward_rule": {
                      "action": "HANGUP"
                    },
                    "away_office_hours_forward_rule": {
                      "action": "HANGUP"
                    },
                    "away_non_office_hours_forward_rule": {
                      "action": "HANGUP"
                    },
                    "lunch_office_hours_forward_rule": {
                      "action": "HANGUP"
                    },
                    "lunch_non_office_hours_forward_rule": {
                      "action": "HANGUP"
                    },
                    "trip_office_hours_forward_rule": {
                      "action": "HANGUP"
                    },
                    "trip_non_office_hours_forward_rule": {
                      "action": "HANGUP"
                    },
                    "offline_office_hours_forward_rule": {
                      "action": "HANGUP"
                    },
                    "offline_non_office_hours_forward_rule": {
                      "action": "HANGUP"
                    },
                    "custom_forward_rules": [],
                    "selective_call_acceptations": [
                      {
                        "name": "example",
                        "caller": "100",
                        "condition": "ALL_HOURS",
                        "office_hours": {
                          "monday": {
                            "enabled": true,
                            "ranges": [
                              {
                                "from": "09:00",
                                "to": "17:00"
                              }
                            ]
                          },
                          "tuesday": {
                            "enabled": true,
                            "ranges": [
                              {
                                "from": "09:00",
                                "to": "17:00"
                              }
                            ]
                          },
                          "wednesday": {
                            "enabled": true,
                            "ranges": [
                              {
                                "from": "09:00",
                                "to": "17:00"
                              }
                            ]
                          },
                          "thursday": {
                            "enabled": true,
                            "ranges": [
                              {
                                "from": "09:00",
                                "to": "17:00"
                              }
                            ]
                          },
                          "friday": {
                            "enabled": true,
                            "ranges": [
                              {
                                "from": "09:00",
                                "to": "17:00"
                              }
                            ]
                          },
                          "saturday": {
                            "enabled": true,
                            "ranges": [
                              {
                                "from": "09:00",
                                "to": "17:00"
                              }
                            ]
                          },
                          "sunday": {
                            "enabled": true,
                            "ranges": [
                              {
                                "from": "09:00",
                                "to": "17:00"
                              }
                            ]
                          }
                        },
                        "holidays": []
                      }
                    ],
                    "selective_call_rejections": [
                      {
                        "name": "example",
                        "caller": "100",
                        "condition": "ALL_HOURS",
                        "office_hours": {
                          "monday": {
                            "enabled": true,
                            "ranges": [
                              {
                                "from": "09:00",
                                "to": "17:00"
                              }
                            ]
                          },
                          "tuesday": {
                            "enabled": true,
                            "ranges": [
                              {
                                "from": "09:00",
                                "to": "17:00"
                              }
                            ]
                          },
                          "wednesday": {
                            "enabled": true,
                            "ranges": [
                              {
                                "from": "09:00",
                                "to": "17:00"
                              }
                            ]
                          },
                          "thursday": {
                            "enabled": true,
                            "ranges": [
                              {
                                "from": "09:00",
                                "to": "17:00"
                              }
                            ]
                          },
                          "friday": {
                            "enabled": true,
                            "ranges": [
                              {
                                "from": "09:00",
                                "to": "17:00"
                              }
                            ]
                          },
                          "saturday": {
                            "enabled": true,
                            "ranges": [
                              {
                                "from": "09:00",
                                "to": "17:00"
                              }
                            ]
                          },
                          "sunday": {
                            "enabled": true,
                            "ranges": [
                              {
                                "from": "09:00",
                                "to": "17:00"
                              }
                            ]
                          }
                        },
                        "holidays": []
                      }
                    ],
                    "voicemail_prompt": "",
                    "enable_voicemail_pin": true,
                    "voicemail_pin": "",
                    "enable_voicemail_notify": true,
                    "voicemail_play_datetime": "DISABLE",
                    "interface": "WEB_DOMAIN",
                    "preferred_transport": "UDP",
                    "blfs": [],
                    "avatar_file_id": "xxxxxx",
                    "timezone": "Asia/Shangai",
                    "enable_selective_call_acceptation": false,
                    "enable_selective_call_rejection": false
                  }
                }
              }
            }
          },
          "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": "",
                  "value": {
                    "old_password": "xxxxxx",
                    "new_password": "xxxxxx"
                  }
                }
              }
            }
          },
          "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": "",
                  "value": {
                    "old_password": "xxxxxx",
                    "new_password": "xxxxxx"
                  }
                }
              }
            }
          },
          "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": "",
                    "value": {
                      "status": "ONLINE",
                      "presence": "ONLINE",
                      "presence_note": "",
                      "registration": [],
                      "enable_dnd": true,
                      "enable_acb": true
                    }
                  }
                }
              }
            }
          },
          "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",
                    "enum": [
                      "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": "",
                  "value": {
                    "presence": "ONLINE",
                    "presence_note": ""
                  }
                }
              }
            }
          }
        },
        "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": "",
                    "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 file.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": "",
                  "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 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 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": "",
                    "value": {
                      "items": [
                        {
                          "id": "xxxxxx",
                          "enabled": true,
                          "file_name": "example",
                          "file_size": 100,
                          "file_url": ""
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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 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 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 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",
                    "description": "Language for strings displayed on Phone Display LCD.\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": "",
                  "value": {
                    "mac": "00:1A:2B:3C:4D:5E",
                    "filename": "example",
                    "vendor": "",
                    "model": "",
                    "password": "xxxxxx",
                    "language": "en-US",
                    "transfer": "BLIND",
                    "timezone": "",
                    "ringtone": "",
                    "queue_ringtone": "",
                    "external_ringtone": "",
                    "date_format": "",
                    "time_format": "",
                    "powerled": "",
                    "backlight": "",
                    "screensaver": "",
                    "rps": false,
                    "https": false,
                    "codecs": [
                      "PCMU",
                      "PCMA",
                      "G729",
                      "G722"
                    ],
                    "enable_lldp": true,
                    "enable_vlan_wan_port": true,
                    "wan_port_id": 1000,
                    "wan_port_priority": 1,
                    "enable_vlan_pc_port": true,
                    "pc_port_id": 1000,
                    "pc_port_priority": 1,
                    "interface": "WEB_DOMAIN",
                    "preferred_transport": "UDP",
                    "serial_number": "000000",
                    "door_password1": "xxxxxx",
                    "door_password2": "xxxxxx"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                        }
                      ],
                      "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 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",
                            "description": "Language for strings displayed on Phone Display LCD.\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": "",
                    "value": {
                      "items": [
                        {
                          "id": "xxxxxx",
                          "mac": "00:1A:2B:3C:4D:5E",
                          "filename": "example",
                          "vendor": "",
                          "model": "",
                          "fwver": "",
                          "password": "",
                          "language": "en-US",
                          "transfer": "BLIND",
                          "timezone": "",
                          "ringtone": "",
                          "queue_ringtone": "",
                          "external_ringtone": "",
                          "date_format": "",
                          "time_format": "",
                          "powerled": "",
                          "backlight": "",
                          "screensaver": "",
                          "rps": false,
                          "https": false,
                          "codecs": [
                            "PCMU",
                            "PCMA",
                            "G729",
                            "G722"
                          ],
                          "enable_lldp": false,
                          "enable_vlan_wan_port": false,
                          "wan_port_id": 1000,
                          "wan_port_priority": 1,
                          "enable_vlan_pc_port": false,
                          "pc_port_id": 1000,
                          "pc_port_priority": 1,
                          "interface": "WEB_DOMAIN",
                          "preferred_transport": "UDP",
                          "serial_number": "",
                          "door_password1": "xxxxxx",
                          "door_password2": "xxxxxx",
                          "url": "https://example.com"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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 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 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",
                      "description": "Language for strings displayed on Phone Display LCD.\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": "",
                    "value": {
                      "id": "xxxxxx",
                      "mac": "00:1A:2B:3C:4D:5E",
                      "filename": "example",
                      "vendor": "",
                      "model": "",
                      "password": "xxxxxx",
                      "language": "en-US",
                      "transfer": "BLIND",
                      "timezone": "",
                      "ringtone": "",
                      "queue_ringtone": "",
                      "external_ringtone": "",
                      "date_format": "",
                      "time_format": "",
                      "powerled": "",
                      "backlight": "",
                      "screensaver": "",
                      "rps": false,
                      "https": false,
                      "codecs": [
                        "PCMU",
                        "PCMA",
                        "G729",
                        "G722"
                      ],
                      "enable_lldp": true,
                      "enable_vlan_wan_port": true,
                      "wan_port_id": 1000,
                      "wan_port_priority": 1,
                      "enable_vlan_pc_port": true,
                      "pc_port_id": 1000,
                      "pc_port_priority": 1,
                      "interface": "WEB_DOMAIN",
                      "preferred_transport": "UDP",
                      "serial_number": "000000",
                      "door_password1": "xxxxxx",
                      "door_password2": "xxxxxx",
                      "url": "https://example.com"
                    }
                  }
                }
              }
            }
          },
          "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 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",
                    "description": "Language for strings displayed on Phone Display LCD.\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": "",
                  "value": {
                    "password": "xxxxxx",
                    "language": "en-US",
                    "transfer": "BLIND",
                    "timezone": "",
                    "ringtone": "",
                    "queue_ringtone": "",
                    "external_ringtone": "",
                    "date_format": "",
                    "time_format": "",
                    "powerled": "",
                    "backlight": "",
                    "screensaver": "",
                    "rps": false,
                    "https": false,
                    "codecs": [
                      "PCMU",
                      "PCMA",
                      "G729",
                      "G722"
                    ],
                    "enable_lldp": true,
                    "enable_vlan_wan_port": true,
                    "wan_port_id": 1000,
                    "wan_port_priority": 1,
                    "enable_vlan_pc_port": true,
                    "pc_port_id": 1000,
                    "pc_port_priority": 1,
                    "interface": "WEB_DOMAIN",
                    "preferred_transport": "UDP",
                    "serial_number": "000000",
                    "door_password1": "xxxxxx",
                    "door_password2": "xxxxxx"
                  }
                }
              }
            }
          }
        },
        "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 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 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": "",
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": "xxxxxx",
                          "caller": "101",
                          "caller_domain": "example.com",
                          "caller_display_name": "User 101",
                          "callee": "102",
                          "callee_domain": "example.com",
                          "callee_display_name": "User 102",
                          "started_at": "2020-01-01T00:00:00Z",
                          "rang_at": "2020-01-01T00:00:00Z",
                          "answered_at": "2020-01-01T00:00:00Z",
                          "ended_at": "2020-01-01T00:00:00Z",
                          "call_id": "",
                          "direction": "INBOUND_CALL",
                          "end_reason": "CALLER_DISCONNECTED",
                          "reroute_reason": "TRANSFER",
                          "status_code": 200,
                          "destination": "",
                          "outbound_caller_id": "123456",
                          "did_cid": "",
                          "trunk": "trunk",
                          "duration": 60,
                          "service_number": "",
                          "user_data": ""
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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 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"
                          },
                          "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": "",
                    "value": {
                      "items": [
                        {
                          "caller": "101",
                          "caller_domain": "example.com",
                          "caller_display_name": "User 101",
                          "callee": "102",
                          "callee_domain": "example.com",
                          "callee_display_name": "User 102",
                          "started_at": "2020-01-01T00:00:00Z",
                          "rang_at": "2020-01-01T00:00:00Z",
                          "answered_at": "2020-01-01T00:00:00Z",
                          "ended_at": "2020-01-01T00:00:00Z",
                          "call_id": "",
                          "direction": "INBOUND_CALL",
                          "end_reason": "CALLER_DISCONNECTED",
                          "reroute_reason": "TRANSFER",
                          "status_code": 200,
                          "destination": "",
                          "outbound_caller_id": "123456",
                          "did_cid": "",
                          "trunk": "trunk",
                          "cost": 1,
                          "billed_account": "",
                          "service_number": "",
                          "user_data": ""
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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": "",
                    "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 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": "",
                    "value": {
                      "token": "xxxxxxxxxxxxxxxx",
                      "items": [
                        {
                          "id": "xxxxxx",
                          "change_type": "UPDATED",
                          "items": [
                            {
                              "caller": "101",
                              "callee": "102",
                              "started_at": "2020-01-01T00:00:00Z",
                              "answered_at": "2020-01-01T00:00:00Z",
                              "ended_at": "2020-01-01T00:00:00Z",
                              "outbound_caller_id": "123456",
                              "did_cid": "",
                              "trunk": "trunk",
                              "status_code": 200
                            }
                          ]
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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 external message.\n"
                          },
                          "config_id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                              }
                            ],
                            "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": "",
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": "xxxxxx",
                          "config_id": "",
                          "sender": "",
                          "sender_name": "example",
                          "receiver": "",
                          "receiver_name": "example",
                          "channel_name": "example",
                          "channel_number": "",
                          "brand": "Generic",
                          "did": "",
                          "msg_type": "SMS",
                          "direction": "IN",
                          "content": "",
                          "reason": "",
                          "delivery": "SENT",
                          "provider_msg_id": "",
                          "created_at": "2020-01-01T00:00:00Z"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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 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 external message.\n"
                    },
                    "config_id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                        }
                      ],
                      "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": "",
                    "value": {
                      "id": "xxxxxx",
                      "config_id": "",
                      "sender": "",
                      "sender_name": "example",
                      "receiver": "",
                      "receiver_name": "example",
                      "channel_name": "example",
                      "channel_number": "000000",
                      "brand": "Generic",
                      "did": "",
                      "msg_type": "SMS",
                      "direction": "IN",
                      "content": "",
                      "reason": "",
                      "delivery": "SENT",
                      "provider_msg_id": "",
                      "created_at": "2020-01-01T00:00:00Z"
                    }
                  }
                }
              }
            }
          },
          "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"
                              }
                            ],
                            "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": "string",
                            "enum": [
                              "TRANSCRIPTION_NOTSTARTED",
                              "TRANSCRIPTION_QUOTALIMITED",
                              "TRANSCRIPTION_RUNNING",
                              "TRANSCRIPTION_FAILED",
                              "TRANSCRIPTION_SUCCEEDED",
                              "ANALYZE_RUNNING",
                              "ANALYZE_FAILED",
                              "ANALYZE_SUCCEEDED",
                              "TRANSCRIPTION_UPLOAD_FAILED",
                              "TRANSCRIPTION_OTHER_FAILED"
                            ],
                            "description": "AI transcription status.\n- `TRANSCRIPTION_NOTSTARTED`\n- `TRANSCRIPTION_QUOTALIMITED`\n- `TRANSCRIPTION_RUNNING`\n- `TRANSCRIPTION_FAILED`\n- `TRANSCRIPTION_SUCCEEDED`\n- `ANALYZE_RUNNING`\n- `ANALYZE_FAILED`\n- `ANALYZE_SUCCEEDED`\n- `TRANSCRIPTION_UPLOAD_FAILED`\n- `TRANSCRIPTION_OTHER_FAILED`\n"
                          },
                          "status_description": {
                            "type": "string",
                            "description": "AI transcription status description.\n"
                          },
                          "sentiment": {
                            "type": "string",
                            "enum": [
                              "SENTIMENT_POSITIVE",
                              "SENTIMENT_NEUTRAL",
                              "SENTIMENT_NEGATIVE"
                            ],
                            "description": "AI transcription sentiment.\n- `SENTIMENT_POSITIVE`\n- `SENTIMENT_NEUTRAL`\n- `SENTIMENT_NEGATIVE`\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "",
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": "xxxxxx",
                          "caller": "101",
                          "callee": "102",
                          "started_at": "2020-01-01T00:00:00Z",
                          "ended_at": "2020-01-01T00:00:00Z"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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"
                }
              ],
              "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"
                              }
                            ],
                            "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": "string",
                            "enum": [
                              "TRANSCRIPTION_NOTSTARTED",
                              "TRANSCRIPTION_QUOTALIMITED",
                              "TRANSCRIPTION_RUNNING",
                              "TRANSCRIPTION_FAILED",
                              "TRANSCRIPTION_SUCCEEDED",
                              "ANALYZE_RUNNING",
                              "ANALYZE_FAILED",
                              "ANALYZE_SUCCEEDED",
                              "TRANSCRIPTION_UPLOAD_FAILED",
                              "TRANSCRIPTION_OTHER_FAILED"
                            ],
                            "description": "AI transcription status.\n- `TRANSCRIPTION_NOTSTARTED`\n- `TRANSCRIPTION_QUOTALIMITED`\n- `TRANSCRIPTION_RUNNING`\n- `TRANSCRIPTION_FAILED`\n- `TRANSCRIPTION_SUCCEEDED`\n- `ANALYZE_RUNNING`\n- `ANALYZE_FAILED`\n- `ANALYZE_SUCCEEDED`\n- `TRANSCRIPTION_UPLOAD_FAILED`\n- `TRANSCRIPTION_OTHER_FAILED`\n"
                          },
                          "status_description": {
                            "type": "string",
                            "description": "AI transcription status description.\n"
                          },
                          "sentiment": {
                            "type": "string",
                            "enum": [
                              "SENTIMENT_POSITIVE",
                              "SENTIMENT_NEUTRAL",
                              "SENTIMENT_NEGATIVE"
                            ],
                            "description": "AI transcription sentiment.\n- `SENTIMENT_POSITIVE`\n- `SENTIMENT_NEUTRAL`\n- `SENTIMENT_NEGATIVE`\n"
                          }
                        }
                      }
                    }
                  }
                },
                "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"
                }
              ],
              "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_ITEM` or `VOICE_MAIL_ITEM`.",
                    "enum": [
                      "CALL_RECORD_ITEM",
                      "VOICE_MAIL_ITEM"
                    ]
                  }
                },
                "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."
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "",
                    "value": {
                      "ids": [
                        1017758181150949400
                      ]
                    }
                  }
                }
              }
            }
          },
          "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."
                      },
                      "item_id": {
                        "type": "string",
                        "description": "The item ID of the original recording."
                      },
                      "session_id": {
                        "allOf": [
                          {
                            "type": "string",
                            "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                          }
                        ],
                        "description": "The session ID of call log.\n"
                      },
                      "file_id": {
                        "type": "string",
                        "description": "The file ID associated with the transcription."
                      },
                      "file_url": {
                        "type": "string",
                        "readOnly": true,
                        "example": "/api/blobs/WexWdABcd5D4PDgzTKV3gAAAEu00WcK",
                        "description": "The relative path to file url for file downloading.\n"
                      },
                      "type": {
                        "type": "string",
                        "description": "Type of the source item. Allowed values are `CALL_RECORD_ITEM` or `VOICE_MAIL_ITEM`.",
                        "enum": [
                          "CALL_RECORD_ITEM",
                          "VOICE_MAIL_ITEM"
                        ]
                      },
                      "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"
                      },
                      "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",
                        "enum": [
                          "SENTIMENT_POSITIVE",
                          "SENTIMENT_NEUTRAL",
                          "SENTIMENT_NEGATIVE"
                        ],
                        "description": "AI transcription sentiment.\n- `SENTIMENT_POSITIVE`: positive\n- `SENTIMENT_NEUTRAL`: neutral\n- `SENTIMENT_NEGATIVE`: negative\n"
                      },
                      "created_at": {
                        "type": "string",
                        "format": "date-time",
                        "description": "Time at which the transcription record was created."
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "",
                    "value": [
                      {
                        "id": "1015828562055266304",
                        "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": "SENTIMENT_POSITIVE",
                        "created_at": "2020-01-01T00:00:00Z",
                        "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",
                    "enum": [
                      "SENTIMENT_POSITIVE",
                      "SENTIMENT_NEUTRAL",
                      "SENTIMENT_NEGATIVE"
                    ],
                    "description": "AI transcription sentiment.\n- `SENTIMENT_POSITIVE`: positive\n- `SENTIMENT_NEUTRAL`: neutral\n- `SENTIMENT_NEGATIVE`: negative\n"
                  }
                }
              },
              "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": "",
                  "value": {
                    "code": "1",
                    "phone_number": "000000",
                    "description": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                        }
                      ],
                      "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 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": "",
                    "value": {
                      "items": [
                        {
                          "id": "xxxxxx",
                          "code": "1",
                          "phone_number": "",
                          "description": ""
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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 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 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": "",
                    "value": {
                      "id": "xxxxxx",
                      "code": "1",
                      "phone_number": "000000",
                      "description": ""
                    }
                  }
                }
              }
            }
          },
          "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 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": "",
                  "value": {
                    "code": "1",
                    "phone_number": "000000",
                    "description": ""
                  }
                }
              }
            }
          }
        },
        "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 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": "",
                  "value": {
                    "code": "01",
                    "phone_number": "000000",
                    "description": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                        }
                      ],
                      "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 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": "",
                    "value": {
                      "items": [
                        {
                          "id": "xxxxxx",
                          "code": "01",
                          "phone_number": "",
                          "description": ""
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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 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 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": "",
                    "value": {
                      "id": "xxxxxx",
                      "code": "01",
                      "phone_number": "000000",
                      "description": ""
                    }
                  }
                }
              }
            }
          },
          "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 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": "",
                  "value": {
                    "code": "01",
                    "phone_number": "000000",
                    "description": ""
                  }
                }
              }
            }
          }
        },
        "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 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 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 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"
                        },
                        "display_name": {
                          "type": "string",
                          "maxLength": 32,
                          "description": "The display name of 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": "",
                  "value": {
                    "mode": "AUDIO",
                    "control": "FREE",
                    "height": 720,
                    "width": 1280,
                    "bitrate": 1024,
                    "framerate": 15,
                    "layout": "LAYOUT0",
                    "subject": "example",
                    "language": "en-US",
                    "admin_pin": "13579",
                    "room_pin": "13579",
                    "enable_recording": true,
                    "enable_prompt": true,
                    "timezone": "",
                    "scheduled_start_at": "",
                    "scheduled_end_at": "",
                    "internal_invitees": [
                      "101",
                      "102"
                    ],
                    "external_invitees": "",
                    "close_on_nobody": false,
                    "outbound_caller_ids": [
                      {
                        "provider_id": "xxxxxx",
                        "caller_id": "1000",
                        "description": "example",
                        "display_name": "1000"
                      }
                    ],
                    "custom_options": ""
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                        }
                      ],
                      "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": "",
                    "value": {
                      "id": "xxxxxx",
                      "extension_number": "101"
                    }
                  }
                }
              }
            }
          },
          "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 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 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 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"
                                },
                                "display_name": {
                                  "type": "string",
                                  "maxLength": 32,
                                  "description": "The display name of 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": "",
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": "xxxxxx",
                          "extension_number": "101",
                          "mode": "AUDIO",
                          "control": "FREE",
                          "height": 720,
                          "width": 1280,
                          "bitrate": 1024,
                          "framerate": 15,
                          "layout": "LAYOUT0",
                          "subject": "example",
                          "language": "en-US",
                          "capacity": 9,
                          "admin_pin": "13579",
                          "room_pin": "13579",
                          "enable_recording": false,
                          "enable_prompt": false,
                          "timezone": "",
                          "created_at": "2020-01-01T00:00:00Z",
                          "scheduled_start_at": "",
                          "scheduled_end_at": "",
                          "internal_invitees": [
                            "101",
                            "102"
                          ],
                          "external_invitees": "",
                          "close_on_nobody": false,
                          "outbound_caller_ids": [
                            {
                              "provider_id": "xxxxxx",
                              "caller_id": "1000",
                              "description": "example",
                              "display_name": "1000"
                            }
                          ],
                          "ownership": false,
                          "custom_options": ""
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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 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 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 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 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"
                          },
                          "display_name": {
                            "type": "string",
                            "maxLength": 32,
                            "description": "The display name of 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": "",
                    "value": {
                      "id": "xxxxxx",
                      "extension_number": "101",
                      "mode": "AUDIO",
                      "control": "FREE",
                      "height": 720,
                      "width": 1280,
                      "bitrate": 1024,
                      "framerate": 15,
                      "layout": "LAYOUT0",
                      "subject": "example",
                      "language": "en-US",
                      "capacity": 9,
                      "admin_pin": "13579",
                      "room_pin": "13579",
                      "enable_recording": true,
                      "enable_prompt": true,
                      "timezone": "",
                      "created_at": "2020-01-01T00:00:00Z",
                      "scheduled_start_at": "",
                      "scheduled_end_at": "",
                      "internal_invitees": [
                        "101",
                        "102"
                      ],
                      "external_invitees": "",
                      "close_on_nobody": false,
                      "domain": "example.com",
                      "sbc_host": "",
                      "sbc_port": 443,
                      "token": "",
                      "outbound_caller_ids": [
                        {
                          "provider_id": "xxxxxx",
                          "caller_id": "1000",
                          "description": "example",
                          "display_name": "1000"
                        }
                      ],
                      "ownership": false,
                      "custom_options": ""
                    }
                  }
                }
              }
            }
          },
          "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 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 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 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"
                        },
                        "display_name": {
                          "type": "string",
                          "maxLength": 32,
                          "description": "The display name of 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": "",
                  "value": {
                    "control": "FREE",
                    "height": 720,
                    "width": 1280,
                    "bitrate": 1024,
                    "framerate": 15,
                    "layout": "LAYOUT0",
                    "subject": "example",
                    "language": "en-US",
                    "capacity": 9,
                    "admin_pin": "13579",
                    "room_pin": "13579",
                    "enable_recording": true,
                    "enable_prompt": true,
                    "timezone": "",
                    "scheduled_start_at": "",
                    "scheduled_end_at": "",
                    "internal_invitees": [
                      "101",
                      "102"
                    ],
                    "external_invitees": "",
                    "close_on_nobody": false,
                    "outbound_caller_ids": [
                      {
                        "provider_id": "xxxxxx",
                        "caller_id": "1000",
                        "description": "example",
                        "display_name": "1000"
                      }
                    ],
                    "custom_options": ""
                  }
                }
              }
            }
          }
        },
        "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 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 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": "",
                    "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 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 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 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 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 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 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 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 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 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 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": "",
                    "value": {
                      "items": [
                        {
                          "id": "xxxxxx",
                          "display_name": "example",
                          "muted": false,
                          "chairman": false,
                          "position": 1
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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 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 conference room participant.\n"
                    },
                    "description": "A collection of participant's id.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": "",
                  "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 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 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 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": "",
                    "value": {
                      "id": "xxxxxx",
                      "display_name": "example",
                      "muted": false,
                      "chairman": false,
                      "position": 1
                    }
                  }
                }
              }
            }
          },
          "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 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": "",
                  "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 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 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 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 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 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 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 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 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": "",
                  "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 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 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": {
                  "id": {
                    "allOf": [
                      {
                        "type": "string",
                        "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                      }
                    ],
                    "description": "The unique ID of holiday.\n",
                    "readOnly": true
                  },
                  "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"
                  },
                  "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"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": "",
                  "value": {
                    "name": "example",
                    "region": "",
                    "consecutive": false,
                    "every_year": true,
                    "year_start": 0,
                    "year_end": 0,
                    "month_start": 6,
                    "month_end": 6,
                    "day_start": 1,
                    "day_end": 1,
                    "hour_start": 0,
                    "hour_end": 23,
                    "minute_start": 0,
                    "minute_end": 59
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                        }
                      ],
                      "description": "The unique ID of holiday."
                    }
                  }
                },
                "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 holiday.\n",
                            "readOnly": true
                          },
                          "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"
                          },
                          "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"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "",
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": "xxxxxx",
                          "name": "example",
                          "region": "",
                          "consecutive": false,
                          "every_year": true,
                          "year_start": 0,
                          "year_end": 0,
                          "month_start": 6,
                          "month_end": 6,
                          "day_start": 1,
                          "day_end": 1,
                          "hour_start": 0,
                          "hour_end": 23,
                          "minute_start": 0,
                          "minute_end": 59
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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": {
              "type": "string",
              "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
            },
            "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 holiday.\n",
                      "readOnly": true
                    },
                    "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"
                    },
                    "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"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "",
                    "value": {
                      "id": "xxxxxx",
                      "name": "example",
                      "region": "",
                      "consecutive": false,
                      "every_year": true,
                      "year_start": 0,
                      "year_end": 0,
                      "month_start": 6,
                      "month_end": 6,
                      "day_start": 1,
                      "day_end": 1,
                      "hour_start": 0,
                      "hour_end": 23,
                      "minute_start": 0,
                      "minute_end": 59
                    }
                  }
                }
              }
            }
          },
          "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": {
              "type": "string",
              "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
            },
            "description": "The unique ID of holiday."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "allOf": [
                      {
                        "type": "string",
                        "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                      }
                    ],
                    "description": "The unique ID of holiday.\n",
                    "readOnly": true
                  },
                  "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"
                  },
                  "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"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": "",
                  "value": {
                    "name": "example",
                    "region": "",
                    "consecutive": false,
                    "every_year": true,
                    "year_start": 0,
                    "year_end": 0,
                    "month_start": 6,
                    "month_end": 6,
                    "day_start": 1,
                    "day_end": 1,
                    "hour_start": 0,
                    "hour_end": 23,
                    "minute_start": 0,
                    "minute_end": 59
                  }
                }
              }
            }
          }
        },
        "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": {
              "type": "string",
              "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
            },
            "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": {
                      "type": "string",
                      "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                    },
                    "description": "A collection of ID of tenant's holiday.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": "",
                  "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 holiday.\n",
                            "readOnly": true
                          },
                          "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"
                          },
                          "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"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "",
                    "value": {
                      "items": [
                        {
                          "id": "xxxxxx",
                          "name": "example",
                          "region": "",
                          "consecutive": false,
                          "every_year": true,
                          "year_start": 0,
                          "year_end": 0,
                          "month_start": 6,
                          "month_end": 6,
                          "day_start": 1,
                          "day_end": 1,
                          "hour_start": 0,
                          "hour_end": 23,
                          "minute_start": 0,
                          "minute_end": 59
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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": "",
                  "value": {
                    "name": "example",
                    "email": "example@example.com",
                    "company": "",
                    "title": "",
                    "business": "",
                    "business2": "",
                    "mobile_phone": "",
                    "mobile_phone2": "",
                    "home_phone": "",
                    "home_phone2": "",
                    "other": "",
                    "business_fax": "",
                    "home_fax": "",
                    "address": "",
                    "notes": ""
                  }
                }
              }
            }
          },
          "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 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 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",
                            "description": "The synchronization method.\n"
                          },
                          "favorite": {
                            "type": "boolean",
                            "example": true,
                            "description": "Mark if a contact has been added to the favorites list.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "",
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": "xxxxxx",
                          "name": "example",
                          "email": "",
                          "company": "",
                          "title": "",
                          "business": "",
                          "business2": "",
                          "mobile_phone": "",
                          "mobile_phone2": "",
                          "home_phone": "",
                          "home_phone2": "",
                          "other": "",
                          "business_fax": "",
                          "home_fax": "",
                          "address": "",
                          "notes": "",
                          "sync_type": "",
                          "favorite": false
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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 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 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",
                      "description": "The synchronization method.\n"
                    },
                    "favorite": {
                      "type": "boolean",
                      "example": true,
                      "description": "Mark if a contact has been added to the favorites list.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "",
                    "value": {
                      "id": "xxxxxx",
                      "name": "example",
                      "email": "example@example.com",
                      "company": "",
                      "title": "",
                      "business": "",
                      "business2": "",
                      "mobile_phone": "",
                      "mobile_phone2": "",
                      "home_phone": "",
                      "home_phone2": "",
                      "other": "",
                      "business_fax": "",
                      "home_fax": "",
                      "address": "",
                      "notes": "",
                      "sync_type": "",
                      "favorite": false
                    }
                  }
                }
              }
            }
          },
          "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 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": "",
                  "value": {
                    "name": "example",
                    "email": "example@example.com",
                    "company": "",
                    "title": "",
                    "business": "",
                    "business2": "",
                    "mobile_phone": "",
                    "mobile_phone2": "",
                    "home_phone": "",
                    "home_phone2": "",
                    "other": "",
                    "business_fax": "",
                    "home_fax": "",
                    "address": "",
                    "notes": ""
                  }
                }
              }
            }
          },
          "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 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 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 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": "",
                    "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 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": "",
                    "value": {
                      "token": "xxxxxxxxxxxxxxx",
                      "items": [
                        {
                          "id": "xxxxxx",
                          "name": "example",
                          "email": "",
                          "company": "",
                          "title": "",
                          "business": "",
                          "business2": "",
                          "mobile_phone": "",
                          "mobile_phone2": "",
                          "home_phone": "",
                          "home_phone2": "",
                          "other": "",
                          "business_fax": "",
                          "home_fax": "",
                          "address": "",
                          "notes": "",
                          "favorite": false,
                          "change_type": "UPDATED"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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 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 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": "",
                    "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 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": "",
                    "value": {
                      "token": "xxxxxxxxxxxxxxxxxx",
                      "items": [
                        {
                          "id": "xxxxxx",
                          "name": "example",
                          "email": "",
                          "company": "",
                          "title": "",
                          "business": "",
                          "business2": "",
                          "mobile_phone": "",
                          "mobile_phone2": "",
                          "home_phone": "",
                          "home_phone2": "",
                          "other": "",
                          "business_fax": "",
                          "home_fax": "",
                          "address": "",
                          "notes": "",
                          "favorite": false,
                          "change_type": "UPDATED"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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 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 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": "",
                    "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 user.\n"
                          },
                          "display_name": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 128,
                            "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": "",
                    "value": {
                      "token": "xxxxxxxxxxxxxxxx",
                      "items": [
                        {
                          "id": "xxxxxx",
                          "display_name": "example",
                          "email": "",
                          "mobile_phone": "",
                          "work_phone": "",
                          "home_phone": "",
                          "address": "",
                          "department": "",
                          "avatar_file_url": "",
                          "extension_number": "101",
                          "favorite": false,
                          "change_type": "UPDATED"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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 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 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": "",
                    "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 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"
                          },
                          "did_number": {
                            "type": "string",
                            "description": "The DID/DDI number.\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": "",
                    "value": {
                      "token": "xxxxxxxxxxxxxxxxxx",
                      "items": [
                        {
                          "id": "xxxxxx",
                          "first_name": "example",
                          "last_name": "example",
                          "email": "",
                          "company": "",
                          "title": "",
                          "business": "",
                          "business2": "",
                          "mobile_phone": "",
                          "mobile_phone2": "",
                          "home_phone": "",
                          "home_phone2": "",
                          "other": "",
                          "business_fax": "",
                          "home_fax": "",
                          "address": "",
                          "notes": "",
                          "did_number": "1000",
                          "favorite": false,
                          "type": "Contact",
                          "url": "https://example.com",
                          "change_type": "UPDATED"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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 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": "",
                    "value": {
                      "items": [
                        {
                          "id": "xxxxxx",
                          "name": "example",
                          "extension_number": "101"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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 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",
                          "minLength": 1,
                          "maxLength": 128,
                          "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"
                    },
                    "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": "",
                    "value": {
                      "extension_number": "101",
                      "display_name": "example",
                      "skill_level": 1,
                      "status": "READY"
                    }
                  }
                }
              }
            }
          },
          "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 call queue.\n"
            },
            "description": "The unique ID of the call queue.   \nIf you want to perform an operation on all relevant queues,   \nspecify the special ID `all`.\n"
          }
        ],
        "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": "",
                  "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 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"
                          },
                          "display_name": {
                            "type": "string",
                            "maxLength": 32,
                            "description": "The display name of outbound caller id.\n"
                          }
                        }
                      },
                      "description": "A collection of outbound caller IDs.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "",
                    "value": {
                      "items": [
                        {
                          "provider_id": "xxxxxx",
                          "caller_id": "1000",
                          "description": ""
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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 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": "",
                    "value": {
                      "items": [
                        {
                          "id": "xxxxxx",
                          "name": "example",
                          "extension_number": "101"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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 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": "",
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": "xxxxxx",
                          "calls": [
                            {
                              "caller": "101",
                              "caller_display_name": "User 101",
                              "callee": "102",
                              "trunk": "trunk",
                              "started_at": "2020-01-01T00:00:00Z",
                              "talking_time": 100
                            }
                          ]
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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",
                    "minLength": 1,
                    "maxLength": 128,
                    "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 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"
                        },
                        "display_name": {
                          "type": "string",
                          "description": "The display name of this outbound 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"
                  },
                  "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"
                        }
                      }
                    }
                  },
                  "selective_call_acceptations": {
                    "type": "array",
                    "items": {
                      "allOf": [
                        {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string",
                              "description": "The name of selective call process.\n"
                            },
                            "caller": {
                              "type": "string",
                              "description": "The caller number of selective call process.\n"
                            },
                            "condition": {
                              "type": "string",
                              "enum": [
                                "ALL_HOURS",
                                "SPECIFIC_OFFICE_HOURS",
                                "PERSONAL_OFFICE_HOURS",
                                "OUTSIDE_PERSONAL_OFFICE_HOURS",
                                "GLOBAL_OFFICE_HOURS",
                                "OUTSIDE_GLOBAL_OFFICE_HOURS"
                              ],
                              "description": "The condition of selective call process:   \nCan be either:   \n- `ALL_HOURS`:\n- `SPECIFIC_OFFICE_HOURS`:\n- `PERSONAL_OFFICE_HOURS`:\n- `OUTSIDE_PERSONAL_OFFICE_HOURS`:\n- `GLOBAL_OFFICE_HOURS`:\n- `OUTSIDE_GLOBAL_OFFICE_HOURS`:\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"
                                    }
                                  }
                                }
                              }
                            }
                          }
                        },
                        {
                          "type": "object",
                          "properties": {
                            "holidays": {
                              "type": "array",
                              "items": {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                              },
                              "description": "A collection of ID of tenant's holiday.\n"
                            }
                          }
                        }
                      ]
                    }
                  },
                  "selective_call_rejections": {
                    "type": "array",
                    "items": {
                      "allOf": [
                        {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string",
                              "description": "The name of selective call process.\n"
                            },
                            "caller": {
                              "type": "string",
                              "description": "The caller number of selective call process.\n"
                            },
                            "condition": {
                              "type": "string",
                              "enum": [
                                "ALL_HOURS",
                                "SPECIFIC_OFFICE_HOURS",
                                "PERSONAL_OFFICE_HOURS",
                                "OUTSIDE_PERSONAL_OFFICE_HOURS",
                                "GLOBAL_OFFICE_HOURS",
                                "OUTSIDE_GLOBAL_OFFICE_HOURS"
                              ],
                              "description": "The condition of selective call process:   \nCan be either:   \n- `ALL_HOURS`:\n- `SPECIFIC_OFFICE_HOURS`:\n- `PERSONAL_OFFICE_HOURS`:\n- `OUTSIDE_PERSONAL_OFFICE_HOURS`:\n- `GLOBAL_OFFICE_HOURS`:\n- `OUTSIDE_GLOBAL_OFFICE_HOURS`:\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"
                                    }
                                  }
                                }
                              }
                            }
                          }
                        },
                        {
                          "type": "object",
                          "properties": {
                            "holidays": {
                              "type": "array",
                              "items": {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                              },
                              "description": "A collection of ID of tenant's holiday.\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"
                  },
                  "soft_phone_template": {
                    "type": "string",
                    "description": "The template file name used to generate the user configuration file for the soft phone.",
                    "example": "app.xml"
                  },
                  "timezone": {
                    "allOf": [
                      {
                        "type": "string",
                        "description": "The IANA Time Zone names, such as \"Asia/Shanghai\".\n"
                      }
                    ],
                    "description": "Timezone for extension user.\n"
                  },
                  "enable_selective_call_acceptation": {
                    "type": "boolean",
                    "default": false,
                    "description": "Enable selective call acceptations or not.\n"
                  },
                  "enable_selective_call_rejection": {
                    "type": "boolean",
                    "default": false,
                    "description": "Enable selective call rejections 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",
                          "description": "Language for strings displayed on Phone Display LCD.\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": "",
                  "value": {
                    "name": "example",
                    "password": "xxxxxx",
                    "email": "example@example.com",
                    "display_name": "example",
                    "enabled": true,
                    "role": "StandardUser",
                    "mobile_phone": "",
                    "work_phone": "",
                    "home_phone": "",
                    "address": "",
                    "department": "",
                    "extension_number": "101",
                    "extension_password": "xxxxxx",
                    "enable_audio_recording": true,
                    "enable_video_recording": true,
                    "enable_dnd": true,
                    "enable_acb": true,
                    "enable_hot_desking": true,
                    "anonymous_outbound_calls": false,
                    "sms": "DISABLE",
                    "delivery_outbound_cid": false,
                    "outbound_caller_ids": [
                      {
                        "provider_id": "xxxxxx",
                        "caller_id": "1000",
                        "description": "example",
                        "display_name": "1000"
                      }
                    ],
                    "custom_options": "",
                    "office_hours": {
                      "monday": {
                        "enabled": true,
                        "ranges": [
                          {
                            "from": "09:00",
                            "to": "17:00"
                          }
                        ]
                      },
                      "tuesday": {
                        "enabled": true,
                        "ranges": [
                          {
                            "from": "09:00",
                            "to": "17:00"
                          }
                        ]
                      },
                      "wednesday": {
                        "enabled": true,
                        "ranges": [
                          {
                            "from": "09:00",
                            "to": "17:00"
                          }
                        ]
                      },
                      "thursday": {
                        "enabled": true,
                        "ranges": [
                          {
                            "from": "09:00",
                            "to": "17:00"
                          }
                        ]
                      },
                      "friday": {
                        "enabled": true,
                        "ranges": [
                          {
                            "from": "09:00",
                            "to": "17:00"
                          }
                        ]
                      },
                      "saturday": {
                        "enabled": true,
                        "ranges": [
                          {
                            "from": "09:00",
                            "to": "17:00"
                          }
                        ]
                      },
                      "sunday": {
                        "enabled": true,
                        "ranges": [
                          {
                            "from": "09:00",
                            "to": "17:00"
                          }
                        ]
                      }
                    },
                    "available_office_hours_forward_rule": {
                      "action": "HANGUP"
                    },
                    "available_non_office_hours_forward_rule": {
                      "action": "HANGUP"
                    },
                    "available_no_answer_forward_rule": {
                      "action": "HANGUP"
                    },
                    "busy_office_hours_forward_rule": {
                      "action": "HANGUP"
                    },
                    "busy_non_office_hours_forward_rule": {
                      "action": "HANGUP"
                    },
                    "busy_no_answer_forward_rule": {
                      "action": "HANGUP"
                    },
                    "dnd_office_hours_forward_rule": {
                      "action": "HANGUP"
                    },
                    "dnd_non_office_hours_forward_rule": {
                      "action": "HANGUP"
                    },
                    "away_office_hours_forward_rule": {
                      "action": "HANGUP"
                    },
                    "away_non_office_hours_forward_rule": {
                      "action": "HANGUP"
                    },
                    "lunch_office_hours_forward_rule": {
                      "action": "HANGUP"
                    },
                    "lunch_non_office_hours_forward_rule": {
                      "action": "HANGUP"
                    },
                    "trip_office_hours_forward_rule": {
                      "action": "HANGUP"
                    },
                    "trip_non_office_hours_forward_rule": {
                      "action": "HANGUP"
                    },
                    "offline_office_hours_forward_rule": {
                      "action": "HANGUP"
                    },
                    "offline_non_office_hours_forward_rule": {
                      "action": "HANGUP"
                    },
                    "custom_forward_rules": [],
                    "selective_call_acceptations": [
                      {
                        "name": "example",
                        "caller": "100",
                        "condition": "ALL_HOURS",
                        "office_hours": {
                          "monday": {
                            "enabled": true,
                            "ranges": [
                              {
                                "from": "09:00",
                                "to": "17:00"
                              }
                            ]
                          },
                          "tuesday": {
                            "enabled": true,
                            "ranges": [
                              {
                                "from": "09:00",
                                "to": "17:00"
                              }
                            ]
                          },
                          "wednesday": {
                            "enabled": true,
                            "ranges": [
                              {
                                "from": "09:00",
                                "to": "17:00"
                              }
                            ]
                          },
                          "thursday": {
                            "enabled": true,
                            "ranges": [
                              {
                                "from": "09:00",
                                "to": "17:00"
                              }
                            ]
                          },
                          "friday": {
                            "enabled": true,
                            "ranges": [
                              {
                                "from": "09:00",
                                "to": "17:00"
                              }
                            ]
                          },
                          "saturday": {
                            "enabled": true,
                            "ranges": [
                              {
                                "from": "09:00",
                                "to": "17:00"
                              }
                            ]
                          },
                          "sunday": {
                            "enabled": true,
                            "ranges": [
                              {
                                "from": "09:00",
                                "to": "17:00"
                              }
                            ]
                          }
                        },
                        "holidays": []
                      }
                    ],
                    "selective_call_rejections": [
                      {
                        "name": "example",
                        "caller": "100",
                        "condition": "ALL_HOURS",
                        "office_hours": {
                          "monday": {
                            "enabled": true,
                            "ranges": [
                              {
                                "from": "09:00",
                                "to": "17:00"
                              }
                            ]
                          },
                          "tuesday": {
                            "enabled": true,
                            "ranges": [
                              {
                                "from": "09:00",
                                "to": "17:00"
                              }
                            ]
                          },
                          "wednesday": {
                            "enabled": true,
                            "ranges": [
                              {
                                "from": "09:00",
                                "to": "17:00"
                              }
                            ]
                          },
                          "thursday": {
                            "enabled": true,
                            "ranges": [
                              {
                                "from": "09:00",
                                "to": "17:00"
                              }
                            ]
                          },
                          "friday": {
                            "enabled": true,
                            "ranges": [
                              {
                                "from": "09:00",
                                "to": "17:00"
                              }
                            ]
                          },
                          "saturday": {
                            "enabled": true,
                            "ranges": [
                              {
                                "from": "09:00",
                                "to": "17:00"
                              }
                            ]
                          },
                          "sunday": {
                            "enabled": true,
                            "ranges": [
                              {
                                "from": "09:00",
                                "to": "17:00"
                              }
                            ]
                          }
                        },
                        "holidays": []
                      }
                    ],
                    "voicemail_prompt": "",
                    "enable_voicemail_pin": true,
                    "voicemail_pin": "",
                    "enable_voicemail_notify": true,
                    "voicemail_play_datetime": "DISABLE",
                    "interface": "WEB_DOMAIN",
                    "preferred_transport": "UDP",
                    "timezone": "Asia/Shanghai",
                    "blfs": [],
                    "enable_selective_call_acceptation": false,
                    "enable_selective_call_rejection": false,
                    "phones": [
                      {
                        "mac": "00:1A:2B:3C:4D:5E",
                        "filename": "example",
                        "vendor": "",
                        "model": "",
                        "password": "",
                        "language": "en-US",
                        "transfer": "BLIND",
                        "timezone": "",
                        "ringtone": "",
                        "queue_ringtone": "",
                        "external_ringtone": "",
                        "date_format": "",
                        "time_format": "",
                        "powerled": "",
                        "backlight": "",
                        "screensaver": "",
                        "rps": false,
                        "https": false,
                        "codecs": [
                          "PCMU",
                          "PCMA",
                          "G729",
                          "G722"
                        ],
                        "enable_lldp": false,
                        "enable_vlan_wan_port": false,
                        "wan_port_id": 1000,
                        "wan_port_priority": 1,
                        "enable_vlan_pc_port": false,
                        "pc_port_id": 1000,
                        "pc_port_priority": 1,
                        "interface": "WEB_DOMAIN",
                        "preferred_transport": "UDP",
                        "serial_number": "",
                        "door_password1": "xxxxxx",
                        "door_password2": "xxxxxx"
                      }
                    ]
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                        }
                      ],
                      "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 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",
                            "minLength": 1,
                            "maxLength": 128,
                            "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 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",
                            "description": "The synchronization method.\n"
                          },
                          "timezone": {
                            "allOf": [
                              {
                                "type": "string",
                                "description": "The IANA Time Zone names, such as \"Asia/Shanghai\".\n"
                              }
                            ],
                            "description": "Timezone for extension user.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "",
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": "xxxxxx",
                          "name": "example",
                          "enabled": true,
                          "email": "",
                          "display_name": "example",
                          "role_id": "xxxxxx",
                          "role_name": "example",
                          "mobile_phone": "",
                          "work_phone": "",
                          "home_phone": "",
                          "address": "",
                          "department": "",
                          "extension_number": "101",
                          "created_at": "2020-01-01T00:00:00Z",
                          "avatar_file_name": "example",
                          "avatar_file_size": 100,
                          "avatar_file_url": "",
                          "provider": "",
                          "provider_id": "xxxxxx",
                          "sync_type": "",
                          "timezone": "Asia/Shanghai"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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",
                          "minLength": 1,
                          "maxLength": 128,
                          "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 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"
                              },
                              "display_name": {
                                "type": "string",
                                "description": "The display name of this outbound 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"
                        },
                        "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"
                              }
                            }
                          }
                        },
                        "selective_call_acceptations": {
                          "type": "array",
                          "items": {
                            "allOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "name": {
                                    "type": "string",
                                    "description": "The name of selective call process.\n"
                                  },
                                  "caller": {
                                    "type": "string",
                                    "description": "The caller number of selective call process.\n"
                                  },
                                  "condition": {
                                    "type": "string",
                                    "enum": [
                                      "ALL_HOURS",
                                      "SPECIFIC_OFFICE_HOURS",
                                      "PERSONAL_OFFICE_HOURS",
                                      "OUTSIDE_PERSONAL_OFFICE_HOURS",
                                      "GLOBAL_OFFICE_HOURS",
                                      "OUTSIDE_GLOBAL_OFFICE_HOURS"
                                    ],
                                    "description": "The condition of selective call process:   \nCan be either:   \n- `ALL_HOURS`:\n- `SPECIFIC_OFFICE_HOURS`:\n- `PERSONAL_OFFICE_HOURS`:\n- `OUTSIDE_PERSONAL_OFFICE_HOURS`:\n- `GLOBAL_OFFICE_HOURS`:\n- `OUTSIDE_GLOBAL_OFFICE_HOURS`:\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"
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "holidays": {
                                    "type": "array",
                                    "items": {
                                      "type": "string",
                                      "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                                    },
                                    "description": "A collection of holiday ID.\n"
                                  }
                                }
                              }
                            ]
                          }
                        },
                        "selective_call_rejections": {
                          "type": "array",
                          "items": {
                            "allOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "name": {
                                    "type": "string",
                                    "description": "The name of selective call process.\n"
                                  },
                                  "caller": {
                                    "type": "string",
                                    "description": "The caller number of selective call process.\n"
                                  },
                                  "condition": {
                                    "type": "string",
                                    "enum": [
                                      "ALL_HOURS",
                                      "SPECIFIC_OFFICE_HOURS",
                                      "PERSONAL_OFFICE_HOURS",
                                      "OUTSIDE_PERSONAL_OFFICE_HOURS",
                                      "GLOBAL_OFFICE_HOURS",
                                      "OUTSIDE_GLOBAL_OFFICE_HOURS"
                                    ],
                                    "description": "The condition of selective call process:   \nCan be either:   \n- `ALL_HOURS`:\n- `SPECIFIC_OFFICE_HOURS`:\n- `PERSONAL_OFFICE_HOURS`:\n- `OUTSIDE_PERSONAL_OFFICE_HOURS`:\n- `GLOBAL_OFFICE_HOURS`:\n- `OUTSIDE_GLOBAL_OFFICE_HOURS`:\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"
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "holidays": {
                                    "type": "array",
                                    "items": {
                                      "type": "string",
                                      "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                                    },
                                    "description": "A collection of holiday ID.\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"
                        },
                        "timezone": {
                          "allOf": [
                            {
                              "type": "string",
                              "description": "The IANA Time Zone names, such as \"Asia/Shanghai\".\n"
                            }
                          ],
                          "description": "Timezone for extension user.\n"
                        },
                        "enable_selective_call_acceptation": {
                          "type": "boolean",
                          "default": false,
                          "description": "Enable selective call acceptations or not.\n"
                        },
                        "enable_selective_call_rejection": {
                          "type": "boolean",
                          "default": false,
                          "description": "Enable selective call rejections 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",
                                "description": "Language for strings displayed on Phone Display LCD.\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": "",
                  "value": {
                    "items": [
                      {
                        "name": "example",
                        "password": "",
                        "email": "",
                        "display_name": "example",
                        "enabled": true,
                        "role": "StandardUser",
                        "mobile_phone": "",
                        "work_phone": "",
                        "home_phone": "",
                        "address": "",
                        "department": "",
                        "extension_number": "101",
                        "extension_password": "",
                        "enable_audio_recording": true,
                        "enable_video_recording": true,
                        "enable_dnd": true,
                        "enable_acb": true,
                        "enable_hot_desking": true,
                        "anonymous_outbound_calls": false,
                        "sms": "DISABLE",
                        "delivery_outbound_cid": false,
                        "outbound_caller_ids": [
                          {
                            "provider_id": "xxxxxx",
                            "caller_id": "1000",
                            "description": "example",
                            "display_name": "1000"
                          }
                        ],
                        "custom_options": "",
                        "office_hours": {
                          "monday": {
                            "enabled": true,
                            "ranges": [
                              {
                                "from": "09:00",
                                "to": "17:00"
                              }
                            ]
                          },
                          "tuesday": {
                            "enabled": true,
                            "ranges": [
                              {
                                "from": "09:00",
                                "to": "17:00"
                              }
                            ]
                          },
                          "wednesday": {
                            "enabled": true,
                            "ranges": [
                              {
                                "from": "09:00",
                                "to": "17:00"
                              }
                            ]
                          },
                          "thursday": {
                            "enabled": true,
                            "ranges": [
                              {
                                "from": "09:00",
                                "to": "17:00"
                              }
                            ]
                          },
                          "friday": {
                            "enabled": true,
                            "ranges": [
                              {
                                "from": "09:00",
                                "to": "17:00"
                              }
                            ]
                          },
                          "saturday": {
                            "enabled": true,
                            "ranges": [
                              {
                                "from": "09:00",
                                "to": "17:00"
                              }
                            ]
                          },
                          "sunday": {
                            "enabled": true,
                            "ranges": [
                              {
                                "from": "09:00",
                                "to": "17:00"
                              }
                            ]
                          }
                        },
                        "available_office_hours_forward_rule": {
                          "action": "HANGUP"
                        },
                        "available_non_office_hours_forward_rule": {
                          "action": "HANGUP"
                        },
                        "available_no_answer_forward_rule": {
                          "action": "HANGUP"
                        },
                        "busy_office_hours_forward_rule": {
                          "action": "HANGUP"
                        },
                        "busy_non_office_hours_forward_rule": {
                          "action": "HANGUP"
                        },
                        "busy_no_answer_forward_rule": {
                          "action": "HANGUP"
                        },
                        "dnd_office_hours_forward_rule": {
                          "action": "HANGUP"
                        },
                        "dnd_non_office_hours_forward_rule": {
                          "action": "HANGUP"
                        },
                        "away_office_hours_forward_rule": {
                          "action": "HANGUP"
                        },
                        "away_non_office_hours_forward_rule": {
                          "action": "HANGUP"
                        },
                        "lunch_office_hours_forward_rule": {
                          "action": "HANGUP"
                        },
                        "lunch_non_office_hours_forward_rule": {
                          "action": "HANGUP"
                        },
                        "trip_office_hours_forward_rule": {
                          "action": "HANGUP"
                        },
                        "trip_non_office_hours_forward_rule": {
                          "action": "HANGUP"
                        },
                        "offline_office_hours_forward_rule": {
                          "action": "HANGUP"
                        },
                        "offline_non_office_hours_forward_rule": {
                          "action": "HANGUP"
                        },
                        "custom_forward_rules": [],
                        "selective_call_acceptations": [
                          {
                            "name": "example",
                            "caller": "100",
                            "condition": "ALL_HOURS",
                            "office_hours": {
                              "monday": {
                                "enabled": true,
                                "ranges": [
                                  {
                                    "from": "09:00",
                                    "to": "17:00"
                                  }
                                ]
                              },
                              "tuesday": {
                                "enabled": true,
                                "ranges": [
                                  {
                                    "from": "09:00",
                                    "to": "17:00"
                                  }
                                ]
                              },
                              "wednesday": {
                                "enabled": true,
                                "ranges": [
                                  {
                                    "from": "09:00",
                                    "to": "17:00"
                                  }
                                ]
                              },
                              "thursday": {
                                "enabled": true,
                                "ranges": [
                                  {
                                    "from": "09:00",
                                    "to": "17:00"
                                  }
                                ]
                              },
                              "friday": {
                                "enabled": true,
                                "ranges": [
                                  {
                                    "from": "09:00",
                                    "to": "17:00"
                                  }
                                ]
                              },
                              "saturday": {
                                "enabled": true,
                                "ranges": [
                                  {
                                    "from": "09:00",
                                    "to": "17:00"
                                  }
                                ]
                              },
                              "sunday": {
                                "enabled": true,
                                "ranges": [
                                  {
                                    "from": "09:00",
                                    "to": "17:00"
                                  }
                                ]
                              }
                            },
                            "holidays": []
                          }
                        ],
                        "selective_call_rejections": [
                          {
                            "name": "example",
                            "caller": "100",
                            "condition": "ALL_HOURS",
                            "office_hours": {
                              "monday": {
                                "enabled": true,
                                "ranges": [
                                  {
                                    "from": "09:00",
                                    "to": "17:00"
                                  }
                                ]
                              },
                              "tuesday": {
                                "enabled": true,
                                "ranges": [
                                  {
                                    "from": "09:00",
                                    "to": "17:00"
                                  }
                                ]
                              },
                              "wednesday": {
                                "enabled": true,
                                "ranges": [
                                  {
                                    "from": "09:00",
                                    "to": "17:00"
                                  }
                                ]
                              },
                              "thursday": {
                                "enabled": true,
                                "ranges": [
                                  {
                                    "from": "09:00",
                                    "to": "17:00"
                                  }
                                ]
                              },
                              "friday": {
                                "enabled": true,
                                "ranges": [
                                  {
                                    "from": "09:00",
                                    "to": "17:00"
                                  }
                                ]
                              },
                              "saturday": {
                                "enabled": true,
                                "ranges": [
                                  {
                                    "from": "09:00",
                                    "to": "17:00"
                                  }
                                ]
                              },
                              "sunday": {
                                "enabled": true,
                                "ranges": [
                                  {
                                    "from": "09:00",
                                    "to": "17:00"
                                  }
                                ]
                              }
                            },
                            "holidays": []
                          }
                        ],
                        "voicemail_prompt": "",
                        "enable_voicemail_pin": true,
                        "voicemail_pin": "",
                        "enable_voicemail_notify": true,
                        "voicemail_play_datetime": "DISABLE",
                        "interface": "WEB_DOMAIN",
                        "preferred_transport": "UDP",
                        "blfs": [],
                        "timezone": "Asia/Shanghai",
                        "enable_selective_call_acceptation": false,
                        "enable_selective_call_rejection": false,
                        "phones": [
                          {
                            "mac": "00:1A:2B:3C:4D:5E",
                            "filename": "example",
                            "vendor": "",
                            "model": "",
                            "password": "",
                            "language": "en-US",
                            "transfer": "BLIND",
                            "timezone": "",
                            "ringtone": "",
                            "queue_ringtone": "",
                            "external_ringtone": "",
                            "date_format": "",
                            "time_format": "",
                            "powerled": "",
                            "backlight": "",
                            "screensaver": "",
                            "rps": false,
                            "https": false,
                            "codecs": [
                              "PCMU",
                              "PCMA",
                              "G729",
                              "G722"
                            ],
                            "enable_lldp": false,
                            "enable_vlan_wan_port": false,
                            "wan_port_id": 1000,
                            "wan_port_priority": 1,
                            "enable_vlan_pc_port": false,
                            "pc_port_id": 1000,
                            "pc_port_priority": 1,
                            "interface": "WEB_DOMAIN",
                            "preferred_transport": "UDP",
                            "serial_number": "",
                            "door_password1": "xxxxxx",
                            "door_password2": "xxxxxx"
                          }
                        ]
                      }
                    ]
                  }
                }
              }
            }
          },
          "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 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": "",
                    "value": {
                      "items": [
                        {
                          "id": "xxxxxx"
                        },
                        {
                          "id": "yyyyyy"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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/get_many": {
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "bulkGetUsers",
        "x-category": "extensions",
        "x-subcategory": "extensions",
        "x-permissions": [
          "User.ViewOnly"
        ],
        "summary": "Get multiple users by ID",
        "description": "Get multiple users by their IDs in a single request.\n",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "ids": {
                    "type": "array",
                    "items": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                        }
                      ],
                      "description": "The unique ID of user.\n"
                    },
                    "description": "A collection of user IDs.\n",
                    "minItems": 1,
                    "maxItems": 100
                  }
                },
                "required": [
                  "ids"
                ]
              },
              "examples": {
                "default": {
                  "summary": "A request to get multiple users by ID.",
                  "value": {
                    "ids": [
                      "user_id_1",
                      "user_id_2",
                      "user_id_3"
                    ]
                  }
                }
              }
            }
          },
          "required": true
        },
        "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 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",
                            "minLength": 1,
                            "maxLength": 128,
                            "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"
                          },
                          "extension_number": {
                            "type": "string",
                            "minLength": 3,
                            "maxLength": 64,
                            "pattern": "[0-9]{3,64}",
                            "description": "The extension number.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "A response containing multiple users.",
                    "value": {
                      "items": [
                        {
                          "id": "user_id_1",
                          "name": "user_1",
                          "display_name": "User One",
                          "email": "user1@example.com",
                          "extension_number": "1001"
                        },
                        {
                          "id": "user_id_2",
                          "name": "user_2",
                          "display_name": "User Two",
                          "email": "user2@example.com",
                          "extension_number": "1002"
                        },
                        {
                          "id": "user_id_3",
                          "name": "user_3",
                          "display_name": "User Three",
                          "email": "user3@example.com",
                          "extension_number": "1003"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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 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 user.\n"
                    }
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": "",
                  "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": "",
                    "value": {
                      "items": [
                        {
                          "status": "ONLINE",
                          "presence": "ONLINE",
                          "presence_note": "",
                          "registration": [],
                          "enable_dnd": false,
                          "enable_acb": false
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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 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 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",
                      "minLength": 1,
                      "maxLength": 128,
                      "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 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 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"
                          },
                          "display_name": {
                            "type": "string",
                            "description": "The display name of this outbound 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"
                    },
                    "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"
                          }
                        }
                      }
                    },
                    "selective_call_acceptations": {
                      "type": "array",
                      "items": {
                        "allOf": [
                          {
                            "type": "object",
                            "properties": {
                              "name": {
                                "type": "string",
                                "description": "The name of selective call process.\n"
                              },
                              "caller": {
                                "type": "string",
                                "description": "The caller number of selective call process.\n"
                              },
                              "condition": {
                                "type": "string",
                                "enum": [
                                  "ALL_HOURS",
                                  "SPECIFIC_OFFICE_HOURS",
                                  "PERSONAL_OFFICE_HOURS",
                                  "OUTSIDE_PERSONAL_OFFICE_HOURS",
                                  "GLOBAL_OFFICE_HOURS",
                                  "OUTSIDE_GLOBAL_OFFICE_HOURS"
                                ],
                                "description": "The condition of selective call process:   \nCan be either:   \n- `ALL_HOURS`:\n- `SPECIFIC_OFFICE_HOURS`:\n- `PERSONAL_OFFICE_HOURS`:\n- `OUTSIDE_PERSONAL_OFFICE_HOURS`:\n- `GLOBAL_OFFICE_HOURS`:\n- `OUTSIDE_GLOBAL_OFFICE_HOURS`:\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"
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          {
                            "type": "object",
                            "properties": {
                              "holidays": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "id": {
                                      "allOf": [
                                        {
                                          "type": "string",
                                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                                        }
                                      ],
                                      "description": "The unique ID of holiday.\n",
                                      "readOnly": true
                                    },
                                    "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"
                                    },
                                    "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"
                              }
                            }
                          }
                        ]
                      }
                    },
                    "selective_call_rejections": {
                      "type": "array",
                      "items": {
                        "allOf": [
                          {
                            "type": "object",
                            "properties": {
                              "name": {
                                "type": "string",
                                "description": "The name of selective call process.\n"
                              },
                              "caller": {
                                "type": "string",
                                "description": "The caller number of selective call process.\n"
                              },
                              "condition": {
                                "type": "string",
                                "enum": [
                                  "ALL_HOURS",
                                  "SPECIFIC_OFFICE_HOURS",
                                  "PERSONAL_OFFICE_HOURS",
                                  "OUTSIDE_PERSONAL_OFFICE_HOURS",
                                  "GLOBAL_OFFICE_HOURS",
                                  "OUTSIDE_GLOBAL_OFFICE_HOURS"
                                ],
                                "description": "The condition of selective call process:   \nCan be either:   \n- `ALL_HOURS`:\n- `SPECIFIC_OFFICE_HOURS`:\n- `PERSONAL_OFFICE_HOURS`:\n- `OUTSIDE_PERSONAL_OFFICE_HOURS`:\n- `GLOBAL_OFFICE_HOURS`:\n- `OUTSIDE_GLOBAL_OFFICE_HOURS`:\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"
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          {
                            "type": "object",
                            "properties": {
                              "holidays": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "id": {
                                      "allOf": [
                                        {
                                          "type": "string",
                                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                                        }
                                      ],
                                      "description": "The unique ID of holiday.\n",
                                      "readOnly": true
                                    },
                                    "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"
                                    },
                                    "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"
                              }
                            }
                          }
                        ]
                      }
                    },
                    "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 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",
                      "description": "The synchronization method.\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"
                    },
                    "soft_phone_template": {
                      "type": "string",
                      "description": "The template file name used to generate the user configuration file for the soft phone.",
                      "example": "app.xml"
                    },
                    "timezone": {
                      "allOf": [
                        {
                          "type": "string",
                          "description": "The IANA Time Zone names, such as \"Asia/Shanghai\".\n"
                        }
                      ],
                      "description": "Timezone for extension user.\n"
                    },
                    "enable_selective_call_acceptation": {
                      "type": "boolean",
                      "default": false,
                      "description": "Enable selective call acceptations or not.\n"
                    },
                    "enable_selective_call_rejection": {
                      "type": "boolean",
                      "default": false,
                      "description": "Enable selective call rejections or not.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "",
                    "value": {
                      "id": "xxxxxx",
                      "name": "example",
                      "email": "example@example.com",
                      "display_name": "example",
                      "role": "StandardUser",
                      "enabled": true,
                      "mobile_phone": "",
                      "work_phone": "",
                      "home_phone": "",
                      "address": "",
                      "department": "",
                      "extension_number": "101",
                      "enable_audio_recording": true,
                      "enable_video_recording": true,
                      "enable_dnd": true,
                      "enable_acb": true,
                      "enable_hot_desking": true,
                      "anonymous_outbound_calls": false,
                      "delivery_outbound_cid": false,
                      "sms": "DISABLE",
                      "outbound_caller_ids": [
                        {
                          "provider_id": "xxxxxx",
                          "caller_id": "1000",
                          "description": "example",
                          "display_name": "1000"
                        }
                      ],
                      "custom_options": "",
                      "office_hours": {
                        "monday": {
                          "enabled": true,
                          "ranges": [
                            {
                              "from": "09:00",
                              "to": "17:00"
                            }
                          ]
                        },
                        "tuesday": {
                          "enabled": true,
                          "ranges": [
                            {
                              "from": "09:00",
                              "to": "17:00"
                            }
                          ]
                        },
                        "wednesday": {
                          "enabled": true,
                          "ranges": [
                            {
                              "from": "09:00",
                              "to": "17:00"
                            }
                          ]
                        },
                        "thursday": {
                          "enabled": true,
                          "ranges": [
                            {
                              "from": "09:00",
                              "to": "17:00"
                            }
                          ]
                        },
                        "friday": {
                          "enabled": true,
                          "ranges": [
                            {
                              "from": "09:00",
                              "to": "17:00"
                            }
                          ]
                        },
                        "saturday": {
                          "enabled": true,
                          "ranges": [
                            {
                              "from": "09:00",
                              "to": "17:00"
                            }
                          ]
                        },
                        "sunday": {
                          "enabled": true,
                          "ranges": [
                            {
                              "from": "09:00",
                              "to": "17:00"
                            }
                          ]
                        }
                      },
                      "available_office_hours_forward_rule": {
                        "action": "HANGUP"
                      },
                      "available_non_office_hours_forward_rule": {
                        "action": "HANGUP"
                      },
                      "available_no_answer_forward_rule": {
                        "action": "HANGUP"
                      },
                      "busy_office_hours_forward_rule": {
                        "action": "HANGUP"
                      },
                      "busy_non_office_hours_forward_rule": {
                        "action": "HANGUP"
                      },
                      "busy_no_answer_forward_rule": {
                        "action": "HANGUP"
                      },
                      "dnd_office_hours_forward_rule": {
                        "action": "HANGUP"
                      },
                      "dnd_non_office_hours_forward_rule": {
                        "action": "HANGUP"
                      },
                      "away_office_hours_forward_rule": {
                        "action": "HANGUP"
                      },
                      "away_non_office_hours_forward_rule": {
                        "action": "HANGUP"
                      },
                      "lunch_office_hours_forward_rule": {
                        "action": "HANGUP"
                      },
                      "lunch_non_office_hours_forward_rule": {
                        "action": "HANGUP"
                      },
                      "trip_office_hours_forward_rule": {
                        "action": "HANGUP"
                      },
                      "trip_non_office_hours_forward_rule": {
                        "action": "HANGUP"
                      },
                      "offline_office_hours_forward_rule": {
                        "action": "HANGUP"
                      },
                      "offline_non_office_hours_forward_rule": {
                        "action": "HANGUP"
                      },
                      "custom_forward_rules": [],
                      "selective_call_acceptations": [
                        {
                          "name": "example",
                          "caller": "100",
                          "condition": "ALL_HOURS",
                          "office_hours": {
                            "monday": {
                              "enabled": true,
                              "ranges": [
                                {
                                  "from": "09:00",
                                  "to": "17:00"
                                }
                              ]
                            },
                            "tuesday": {
                              "enabled": true,
                              "ranges": [
                                {
                                  "from": "09:00",
                                  "to": "17:00"
                                }
                              ]
                            },
                            "wednesday": {
                              "enabled": true,
                              "ranges": [
                                {
                                  "from": "09:00",
                                  "to": "17:00"
                                }
                              ]
                            },
                            "thursday": {
                              "enabled": true,
                              "ranges": [
                                {
                                  "from": "09:00",
                                  "to": "17:00"
                                }
                              ]
                            },
                            "friday": {
                              "enabled": true,
                              "ranges": [
                                {
                                  "from": "09:00",
                                  "to": "17:00"
                                }
                              ]
                            },
                            "saturday": {
                              "enabled": true,
                              "ranges": [
                                {
                                  "from": "09:00",
                                  "to": "17:00"
                                }
                              ]
                            },
                            "sunday": {
                              "enabled": true,
                              "ranges": [
                                {
                                  "from": "09:00",
                                  "to": "17:00"
                                }
                              ]
                            }
                          },
                          "holidays": [
                            {
                              "name": "example",
                              "region": "",
                              "consecutive": false,
                              "every_year": true,
                              "year_start": 0,
                              "year_end": 0,
                              "month_start": 6,
                              "month_end": 6,
                              "day_start": 1,
                              "day_end": 1,
                              "hour_start": 0,
                              "hour_end": 23,
                              "minute_start": 0,
                              "minute_end": 59
                            }
                          ]
                        }
                      ],
                      "selective_call_rejections": [
                        {
                          "name": "example",
                          "caller": "100",
                          "condition": "ALL_HOURS",
                          "office_hours": {
                            "monday": {
                              "enabled": true,
                              "ranges": [
                                {
                                  "from": "09:00",
                                  "to": "17:00"
                                }
                              ]
                            },
                            "tuesday": {
                              "enabled": true,
                              "ranges": [
                                {
                                  "from": "09:00",
                                  "to": "17:00"
                                }
                              ]
                            },
                            "wednesday": {
                              "enabled": true,
                              "ranges": [
                                {
                                  "from": "09:00",
                                  "to": "17:00"
                                }
                              ]
                            },
                            "thursday": {
                              "enabled": true,
                              "ranges": [
                                {
                                  "from": "09:00",
                                  "to": "17:00"
                                }
                              ]
                            },
                            "friday": {
                              "enabled": true,
                              "ranges": [
                                {
                                  "from": "09:00",
                                  "to": "17:00"
                                }
                              ]
                            },
                            "saturday": {
                              "enabled": true,
                              "ranges": [
                                {
                                  "from": "09:00",
                                  "to": "17:00"
                                }
                              ]
                            },
                            "sunday": {
                              "enabled": true,
                              "ranges": [
                                {
                                  "from": "09:00",
                                  "to": "17:00"
                                }
                              ]
                            }
                          },
                          "holidays": [
                            {
                              "name": "example",
                              "region": "",
                              "consecutive": false,
                              "every_year": true,
                              "year_start": 0,
                              "year_end": 0,
                              "month_start": 6,
                              "month_end": 6,
                              "day_start": 1,
                              "day_end": 1,
                              "hour_start": 0,
                              "hour_end": 23,
                              "minute_start": 0,
                              "minute_end": 59
                            }
                          ]
                        }
                      ],
                      "voicemail_prompt": "",
                      "enable_voicemail_pin": true,
                      "voicemail_pin": "",
                      "enable_voicemail_notify": true,
                      "voicemail_play_datetime": "DISABLE",
                      "interface": "WEB_DOMAIN",
                      "preferred_transport": "UDP",
                      "blfs": [],
                      "profile": "",
                      "created_at": "2020-01-01T00:00:00Z",
                      "avatar_file_name": "example",
                      "avatar_file_size": 100,
                      "avatar_file_url": "",
                      "provider": "",
                      "provider_id": "xxxxxx",
                      "sync_type": "",
                      "timezone": "Asia/Shanghai",
                      "enable_selective_call_acceptation": false,
                      "enable_selective_call_rejection": false
                    }
                  }
                }
              }
            }
          },
          "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 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",
                    "minLength": 1,
                    "maxLength": 128,
                    "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 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"
                        },
                        "display_name": {
                          "type": "string",
                          "description": "The display name of this outbound 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"
                  },
                  "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"
                        }
                      }
                    }
                  },
                  "selective_call_acceptations": {
                    "type": "array",
                    "items": {
                      "allOf": [
                        {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string",
                              "description": "The name of selective call process.\n"
                            },
                            "caller": {
                              "type": "string",
                              "description": "The caller number of selective call process.\n"
                            },
                            "condition": {
                              "type": "string",
                              "enum": [
                                "ALL_HOURS",
                                "SPECIFIC_OFFICE_HOURS",
                                "PERSONAL_OFFICE_HOURS",
                                "OUTSIDE_PERSONAL_OFFICE_HOURS",
                                "GLOBAL_OFFICE_HOURS",
                                "OUTSIDE_GLOBAL_OFFICE_HOURS"
                              ],
                              "description": "The condition of selective call process:   \nCan be either:   \n- `ALL_HOURS`:\n- `SPECIFIC_OFFICE_HOURS`:\n- `PERSONAL_OFFICE_HOURS`:\n- `OUTSIDE_PERSONAL_OFFICE_HOURS`:\n- `GLOBAL_OFFICE_HOURS`:\n- `OUTSIDE_GLOBAL_OFFICE_HOURS`:\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"
                                    }
                                  }
                                }
                              }
                            }
                          }
                        },
                        {
                          "type": "object",
                          "properties": {
                            "holidays": {
                              "type": "array",
                              "items": {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                              },
                              "description": "A collection of holiday ID.\n"
                            }
                          }
                        }
                      ]
                    }
                  },
                  "selective_call_rejections": {
                    "type": "array",
                    "items": {
                      "allOf": [
                        {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string",
                              "description": "The name of selective call process.\n"
                            },
                            "caller": {
                              "type": "string",
                              "description": "The caller number of selective call process.\n"
                            },
                            "condition": {
                              "type": "string",
                              "enum": [
                                "ALL_HOURS",
                                "SPECIFIC_OFFICE_HOURS",
                                "PERSONAL_OFFICE_HOURS",
                                "OUTSIDE_PERSONAL_OFFICE_HOURS",
                                "GLOBAL_OFFICE_HOURS",
                                "OUTSIDE_GLOBAL_OFFICE_HOURS"
                              ],
                              "description": "The condition of selective call process:   \nCan be either:   \n- `ALL_HOURS`:\n- `SPECIFIC_OFFICE_HOURS`:\n- `PERSONAL_OFFICE_HOURS`:\n- `OUTSIDE_PERSONAL_OFFICE_HOURS`:\n- `GLOBAL_OFFICE_HOURS`:\n- `OUTSIDE_GLOBAL_OFFICE_HOURS`:\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"
                                    }
                                  }
                                }
                              }
                            }
                          }
                        },
                        {
                          "type": "object",
                          "properties": {
                            "holidays": {
                              "type": "array",
                              "items": {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                              },
                              "description": "A collection of holiday ID.\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"
                  },
                  "soft_phone_template": {
                    "type": "string",
                    "description": "The template file name used to generate the user configuration file for the soft phone.",
                    "example": "app.xml"
                  },
                  "timezone": {
                    "allOf": [
                      {
                        "type": "string",
                        "description": "The IANA Time Zone names, such as \"Asia/Shanghai\".\n"
                      }
                    ],
                    "description": "Timezone for extension user.\n"
                  },
                  "enable_selective_call_acceptation": {
                    "type": "boolean",
                    "default": false,
                    "description": "Enable selective call acceptations or not.\n"
                  },
                  "enable_selective_call_rejection": {
                    "type": "boolean",
                    "default": false,
                    "description": "Enable selective call rejections or not.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": "",
                  "value": {
                    "email": "example@example.com",
                    "display_name": "example",
                    "enabled": true,
                    "mobile_phone": "",
                    "work_phone": "",
                    "home_phone": "",
                    "address": "",
                    "department": "",
                    "enable_audio_recording": true,
                    "enable_video_recording": true,
                    "enable_dnd": true,
                    "enable_acb": true,
                    "enable_hot_desking": true,
                    "anonymous_outbound_calls": false,
                    "delivery_outbound_cid": false,
                    "sms": "DISABLE",
                    "outbound_caller_ids": [
                      {
                        "provider_id": "xxxxxx",
                        "caller_id": "1000",
                        "description": "example",
                        "display_name": "1000"
                      }
                    ],
                    "custom_options": "",
                    "office_hours": {
                      "monday": {
                        "enabled": true,
                        "ranges": [
                          {
                            "from": "09:00",
                            "to": "17:00"
                          }
                        ]
                      },
                      "tuesday": {
                        "enabled": true,
                        "ranges": [
                          {
                            "from": "09:00",
                            "to": "17:00"
                          }
                        ]
                      },
                      "wednesday": {
                        "enabled": true,
                        "ranges": [
                          {
                            "from": "09:00",
                            "to": "17:00"
                          }
                        ]
                      },
                      "thursday": {
                        "enabled": true,
                        "ranges": [
                          {
                            "from": "09:00",
                            "to": "17:00"
                          }
                        ]
                      },
                      "friday": {
                        "enabled": true,
                        "ranges": [
                          {
                            "from": "09:00",
                            "to": "17:00"
                          }
                        ]
                      },
                      "saturday": {
                        "enabled": true,
                        "ranges": [
                          {
                            "from": "09:00",
                            "to": "17:00"
                          }
                        ]
                      },
                      "sunday": {
                        "enabled": true,
                        "ranges": [
                          {
                            "from": "09:00",
                            "to": "17:00"
                          }
                        ]
                      }
                    },
                    "available_office_hours_forward_rule": {
                      "action": "HANGUP"
                    },
                    "available_non_office_hours_forward_rule": {
                      "action": "HANGUP"
                    },
                    "available_no_answer_forward_rule": {
                      "action": "HANGUP"
                    },
                    "busy_office_hours_forward_rule": {
                      "action": "HANGUP"
                    },
                    "busy_non_office_hours_forward_rule": {
                      "action": "HANGUP"
                    },
                    "busy_no_answer_forward_rule": {
                      "action": "HANGUP"
                    },
                    "dnd_office_hours_forward_rule": {
                      "action": "HANGUP"
                    },
                    "dnd_non_office_hours_forward_rule": {
                      "action": "HANGUP"
                    },
                    "away_office_hours_forward_rule": {
                      "action": "HANGUP"
                    },
                    "away_non_office_hours_forward_rule": {
                      "action": "HANGUP"
                    },
                    "lunch_office_hours_forward_rule": {
                      "action": "HANGUP"
                    },
                    "lunch_non_office_hours_forward_rule": {
                      "action": "HANGUP"
                    },
                    "trip_office_hours_forward_rule": {
                      "action": "HANGUP"
                    },
                    "trip_non_office_hours_forward_rule": {
                      "action": "HANGUP"
                    },
                    "offline_office_hours_forward_rule": {
                      "action": "HANGUP"
                    },
                    "offline_non_office_hours_forward_rule": {
                      "action": "HANGUP"
                    },
                    "custom_forward_rules": [],
                    "selective_call_acceptations": [
                      {
                        "name": "example",
                        "caller": "100",
                        "condition": "ALL_HOURS",
                        "office_hours": {
                          "monday": {
                            "enabled": true,
                            "ranges": [
                              {
                                "from": "09:00",
                                "to": "17:00"
                              }
                            ]
                          },
                          "tuesday": {
                            "enabled": true,
                            "ranges": [
                              {
                                "from": "09:00",
                                "to": "17:00"
                              }
                            ]
                          },
                          "wednesday": {
                            "enabled": true,
                            "ranges": [
                              {
                                "from": "09:00",
                                "to": "17:00"
                              }
                            ]
                          },
                          "thursday": {
                            "enabled": true,
                            "ranges": [
                              {
                                "from": "09:00",
                                "to": "17:00"
                              }
                            ]
                          },
                          "friday": {
                            "enabled": true,
                            "ranges": [
                              {
                                "from": "09:00",
                                "to": "17:00"
                              }
                            ]
                          },
                          "saturday": {
                            "enabled": true,
                            "ranges": [
                              {
                                "from": "09:00",
                                "to": "17:00"
                              }
                            ]
                          },
                          "sunday": {
                            "enabled": true,
                            "ranges": [
                              {
                                "from": "09:00",
                                "to": "17:00"
                              }
                            ]
                          }
                        },
                        "holidays": []
                      }
                    ],
                    "selective_call_rejections": [
                      {
                        "name": "example",
                        "caller": "100",
                        "condition": "ALL_HOURS",
                        "office_hours": {
                          "monday": {
                            "enabled": true,
                            "ranges": [
                              {
                                "from": "09:00",
                                "to": "17:00"
                              }
                            ]
                          },
                          "tuesday": {
                            "enabled": true,
                            "ranges": [
                              {
                                "from": "09:00",
                                "to": "17:00"
                              }
                            ]
                          },
                          "wednesday": {
                            "enabled": true,
                            "ranges": [
                              {
                                "from": "09:00",
                                "to": "17:00"
                              }
                            ]
                          },
                          "thursday": {
                            "enabled": true,
                            "ranges": [
                              {
                                "from": "09:00",
                                "to": "17:00"
                              }
                            ]
                          },
                          "friday": {
                            "enabled": true,
                            "ranges": [
                              {
                                "from": "09:00",
                                "to": "17:00"
                              }
                            ]
                          },
                          "saturday": {
                            "enabled": true,
                            "ranges": [
                              {
                                "from": "09:00",
                                "to": "17:00"
                              }
                            ]
                          },
                          "sunday": {
                            "enabled": true,
                            "ranges": [
                              {
                                "from": "09:00",
                                "to": "17:00"
                              }
                            ]
                          }
                        },
                        "holidays": []
                      }
                    ],
                    "voicemail_prompt": "",
                    "enable_voicemail_pin": true,
                    "voicemail_pin": "",
                    "enable_voicemail_notify": true,
                    "voicemail_play_datetime": "DISABLE",
                    "interface": "WEB_DOMAIN",
                    "preferred_transport": "UDP",
                    "blfs": [],
                    "timezone": "Asia/Shanghai",
                    "enable_selective_call_acceptation": false,
                    "enable_selective_call_rejection": false
                  }
                }
              }
            }
          },
          "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 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": "",
                  "value": {
                    "password": "xxxxxx"
                  }
                }
              }
            }
          },
          "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 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": "",
                  "value": {
                    "password": "xxxxxx"
                  }
                }
              }
            }
          },
          "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 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": "",
                  "value": {
                    "role": "StandardUser"
                  }
                }
              }
            }
          },
          "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 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 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": "",
                  "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 user.\n"
            },
            "description": "The unique ID of the user."
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/users/{id}/google_binding": {
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "addUserGoogleBinding",
        "x-category": "extensions",
        "x-subcategory": "extensions",
        "x-permissions": [
          "User.FullAccess"
        ],
        "summary": "Bind user to Google account",
        "description": "Bind user to Google account.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                }
              ],
              "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 user ID of Google account.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": "",
                  "value": {
                    "id": "abcdefg"
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/users/{id}/google_binding/destroy": {
      "post": {
        "tags": [
          "User"
        ],
        "operationId": "removeUserGoogleBinding",
        "x-category": "extensions",
        "x-subcategory": "extensions",
        "x-permissions": [
          "User.FullAccess"
        ],
        "summary": "Unbind user from Google account",
        "description": "Unbind user from Google account.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                }
              ],
              "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 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 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": "",
                    "value": {
                      "status": "ONLINE",
                      "presence": "ONLINE",
                      "presence_note": "",
                      "registration": [],
                      "enable_dnd": true,
                      "enable_acb": true
                    }
                  }
                }
              }
            }
          },
          "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 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 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": "",
                    "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 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": "",
                  "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 user.\n"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "file_id": {
                    "allOf": [
                      {
                        "type": "string",
                        "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                      }
                    ],
                    "description": "The unique ID of the file.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": "",
                  "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 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 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 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": "",
                    "value": {
                      "items": [
                        {
                          "id": "xxxxxx",
                          "enabled": true,
                          "file_name": "example",
                          "file_size": 100,
                          "file_url": ""
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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 user.\n"
            }
          },
          {
            "name": "greeting_id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                }
              ],
              "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 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 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 user.\n"
            }
          },
          {
            "name": "greeting_id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                }
              ],
              "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 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",
                    "description": "Language for strings displayed on Phone Display LCD.\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"
                  },
                  "dhcp": {
                    "type": "object",
                    "description": "Network configuration using DHCP or static IP.\n- If `enable` is true, the device obtains its IP address automatically via DHCP,\n  and all other fields are ignored.\n- If `enable` is false, a static IP configuration must be provided.\n",
                    "properties": {
                      "enable": {
                        "type": "boolean",
                        "description": "Whether to enable DHCP for automatic IP configuration.\n",
                        "example": true
                      },
                      "static_ip": {
                        "type": "string",
                        "description": "Static IP address.",
                        "example": "192.168.0.100"
                      },
                      "subnet_mask": {
                        "type": "string",
                        "description": "Subnet mask.",
                        "example": "255.255.255.0"
                      },
                      "gateway": {
                        "type": "string",
                        "description": "Default gateway.",
                        "example": "192.168.0.1"
                      },
                      "dns_server1": {
                        "type": "string",
                        "description": "Primary DNS server.",
                        "example": "8.8.8.8"
                      },
                      "dns_server2": {
                        "type": "string",
                        "description": "Secondary DNS server.",
                        "example": "8.8.4.4"
                      }
                    },
                    "required": [
                      "enable"
                    ]
                  }
                },
                "required": [
                  "mac",
                  "filename",
                  "vendor",
                  "model",
                  "password",
                  "language",
                  "transfer",
                  "timezone",
                  "codecs",
                  "all_codecs",
                  "interface",
                  "preferred_transport"
                ]
              },
              "examples": {
                "default": {
                  "summary": "",
                  "value": {
                    "mac": "00:1A:2B:3C:4D:5E",
                    "filename": "example",
                    "vendor": "",
                    "model": "",
                    "password": "xxxxxx",
                    "language": "English",
                    "transfer": "BLIND",
                    "timezone": "",
                    "ringtone": "",
                    "queue_ringtone": "",
                    "external_ringtone": "",
                    "date_format": "",
                    "time_format": "",
                    "powerled": "",
                    "backlight": "",
                    "screensaver": "",
                    "rps": false,
                    "https": false,
                    "codecs": [
                      "PCMU",
                      "PCMA",
                      "G729",
                      "G722"
                    ],
                    "all_codecs": [
                      "PCMU",
                      "PCMA",
                      "G729",
                      "G722"
                    ],
                    "enable_lldp": true,
                    "enable_vlan_wan_port": true,
                    "wan_port_id": 1000,
                    "wan_port_priority": 1,
                    "enable_vlan_pc_port": true,
                    "pc_port_id": 1000,
                    "pc_port_priority": 1,
                    "interface": "WEB_DOMAIN",
                    "preferred_transport": "UDP",
                    "serial_number": "000000",
                    "door_password1": "xxxxxx",
                    "door_password2": "xxxxxx"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                        }
                      ],
                      "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 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 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",
                            "description": "Language for strings displayed on Phone Display LCD.\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"
                          },
                          "dhcp": {
                            "type": "object",
                            "description": "Network configuration using DHCP or static IP.\n- If `enable` is true, the device obtains its IP address automatically via DHCP,\n  and all other fields are ignored.\n- If `enable` is false, a static IP configuration must be provided.\n",
                            "properties": {
                              "enable": {
                                "type": "boolean",
                                "description": "Whether to enable DHCP for automatic IP configuration.\n",
                                "example": true
                              },
                              "static_ip": {
                                "type": "string",
                                "description": "Static IP address.",
                                "example": "192.168.0.100"
                              },
                              "subnet_mask": {
                                "type": "string",
                                "description": "Subnet mask.",
                                "example": "255.255.255.0"
                              },
                              "gateway": {
                                "type": "string",
                                "description": "Default gateway.",
                                "example": "192.168.0.1"
                              },
                              "dns_server1": {
                                "type": "string",
                                "description": "Primary DNS server.",
                                "example": "8.8.8.8"
                              },
                              "dns_server2": {
                                "type": "string",
                                "description": "Secondary DNS server.",
                                "example": "8.8.4.4"
                              }
                            },
                            "required": [
                              "enable"
                            ]
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "",
                    "value": {
                      "items": [
                        {
                          "id": "xxxxxx",
                          "mac": "00:1A:2B:3C:4D:5E",
                          "filename": "example",
                          "vendor": "",
                          "model": "",
                          "password": "",
                          "language": "en-US",
                          "transfer": "BLIND",
                          "timezone": "",
                          "ringtone": "",
                          "queue_ringtone": "",
                          "external_ringtone": "",
                          "date_format": "",
                          "time_format": "",
                          "powerled": "",
                          "backlight": "",
                          "screensaver": "",
                          "rps": false,
                          "https": false,
                          "codecs": [
                            "PCMU",
                            "PCMA",
                            "G729",
                            "G722"
                          ],
                          "enable_lldp": false,
                          "enable_vlan_wan_port": false,
                          "wan_port_id": 1000,
                          "wan_port_priority": 1,
                          "enable_vlan_pc_port": false,
                          "pc_port_id": 1000,
                          "pc_port_priority": 1,
                          "interface": "WEB_DOMAIN",
                          "preferred_transport": "UDP",
                          "serial_number": "",
                          "door_password1": "xxxxxx",
                          "door_password2": "xxxxxx",
                          "url": "https://example.com"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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 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 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 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",
                      "description": "Language for strings displayed on Phone Display LCD.\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"
                    },
                    "dhcp": {
                      "type": "object",
                      "description": "Network configuration using DHCP or static IP.\n- If `enable` is true, the device obtains its IP address automatically via DHCP,\n  and all other fields are ignored.\n- If `enable` is false, a static IP configuration must be provided.\n",
                      "properties": {
                        "enable": {
                          "type": "boolean",
                          "description": "Whether to enable DHCP for automatic IP configuration.\n",
                          "example": true
                        },
                        "static_ip": {
                          "type": "string",
                          "description": "Static IP address.",
                          "example": "192.168.0.100"
                        },
                        "subnet_mask": {
                          "type": "string",
                          "description": "Subnet mask.",
                          "example": "255.255.255.0"
                        },
                        "gateway": {
                          "type": "string",
                          "description": "Default gateway.",
                          "example": "192.168.0.1"
                        },
                        "dns_server1": {
                          "type": "string",
                          "description": "Primary DNS server.",
                          "example": "8.8.8.8"
                        },
                        "dns_server2": {
                          "type": "string",
                          "description": "Secondary DNS server.",
                          "example": "8.8.4.4"
                        }
                      },
                      "required": [
                        "enable"
                      ]
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "",
                    "value": {
                      "id": "xxxxxx",
                      "mac": "00:1A:2B:3C:4D:5E",
                      "filename": "example",
                      "vendor": "",
                      "model": "",
                      "password": "xxxxxx",
                      "language": "en-US",
                      "transfer": "BLIND",
                      "timezone": "",
                      "ringtone": "",
                      "queue_ringtone": "",
                      "external_ringtone": "",
                      "date_format": "",
                      "time_format": "",
                      "powerled": "",
                      "backlight": "",
                      "screensaver": "",
                      "rps": false,
                      "https": false,
                      "codecs": [
                        "PCMU",
                        "PCMA",
                        "G729",
                        "G722"
                      ],
                      "enable_lldp": true,
                      "enable_vlan_wan_port": true,
                      "wan_port_id": 1000,
                      "wan_port_priority": 1,
                      "enable_vlan_pc_port": true,
                      "pc_port_id": 1000,
                      "pc_port_priority": 1,
                      "interface": "WEB_DOMAIN",
                      "preferred_transport": "UDP",
                      "serial_number": "000000",
                      "door_password1": "xxxxxx",
                      "door_password2": "xxxxxx",
                      "url": "https://example.com"
                    }
                  }
                }
              }
            }
          },
          "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 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 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",
                    "description": "Language for strings displayed on Phone Display LCD.\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"
                  },
                  "dhcp": {
                    "type": "object",
                    "description": "Network configuration using DHCP or static IP.\n- If `enable` is true, the device obtains its IP address automatically via DHCP,\n  and all other fields are ignored.\n- If `enable` is false, a static IP configuration must be provided.\n",
                    "properties": {
                      "enable": {
                        "type": "boolean",
                        "description": "Whether to enable DHCP for automatic IP configuration.\n",
                        "example": true
                      },
                      "static_ip": {
                        "type": "string",
                        "description": "Static IP address.",
                        "example": "192.168.0.100"
                      },
                      "subnet_mask": {
                        "type": "string",
                        "description": "Subnet mask.",
                        "example": "255.255.255.0"
                      },
                      "gateway": {
                        "type": "string",
                        "description": "Default gateway.",
                        "example": "192.168.0.1"
                      },
                      "dns_server1": {
                        "type": "string",
                        "description": "Primary DNS server.",
                        "example": "8.8.8.8"
                      },
                      "dns_server2": {
                        "type": "string",
                        "description": "Secondary DNS server.",
                        "example": "8.8.4.4"
                      }
                    },
                    "required": [
                      "enable"
                    ]
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": "",
                  "value": {
                    "password": "xxxxxx",
                    "language": "English",
                    "transfer": "BLIND",
                    "timezone": "",
                    "ringtone": "",
                    "queue_ringtone": "",
                    "external_ringtone": "",
                    "date_format": "",
                    "time_format": "",
                    "powerled": "",
                    "backlight": "",
                    "screensaver": "",
                    "rps": false,
                    "https": false,
                    "codecs": [
                      "PCMU",
                      "PCMA",
                      "G729",
                      "G722"
                    ],
                    "enable_lldp": true,
                    "enable_vlan_wan_port": true,
                    "wan_port_id": 1000,
                    "wan_port_priority": 1,
                    "enable_vlan_pc_port": true,
                    "pc_port_id": 1000,
                    "pc_port_priority": 1,
                    "interface": "WEB_DOMAIN",
                    "preferred_transport": "UDP",
                    "serial_number": "000000",
                    "door_password1": "xxxxxx",
                    "door_password2": "xxxxxx"
                  }
                }
              }
            }
          }
        },
        "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 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 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 user.\n"
            },
            "description": "The unique ID of the user."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "allOf": [
                      {
                        "type": "string",
                        "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                      }
                    ],
                    "description": "The unique ID of holiday.\n",
                    "readOnly": true
                  },
                  "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"
                  },
                  "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"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": "",
                  "value": {
                    "name": "example",
                    "region": "",
                    "consecutive": false,
                    "every_year": true,
                    "year_start": 0,
                    "year_end": 0,
                    "month_start": 6,
                    "month_end": 6,
                    "day_start": 1,
                    "day_end": 1,
                    "hour_start": 0,
                    "hour_end": 23,
                    "minute_start": 0,
                    "minute_end": 59
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                        }
                      ],
                      "description": "The unique ID of holiday"
                    }
                  }
                },
                "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 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 holiday.\n",
                            "readOnly": true
                          },
                          "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"
                          },
                          "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"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "",
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": "xxxxxx",
                          "name": "example",
                          "region": "",
                          "consecutive": false,
                          "every_year": true,
                          "year_start": 0,
                          "year_end": 0,
                          "month_start": 6,
                          "month_end": 6,
                          "day_start": 1,
                          "day_end": 1,
                          "hour_start": 0,
                          "hour_end": 23,
                          "minute_start": 0,
                          "minute_end": 59
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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 user.\n"
            },
            "description": "The unique ID of the extension."
          },
          {
            "name": "holiday_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
            },
            "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 holiday.\n",
                      "readOnly": true
                    },
                    "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"
                    },
                    "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"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "",
                    "value": {
                      "id": "xxxxxx",
                      "name": "example",
                      "region": "",
                      "consecutive": false,
                      "every_year": true,
                      "year_start": 0,
                      "year_end": 0,
                      "month_start": 6,
                      "month_end": 6,
                      "day_start": 1,
                      "day_end": 1,
                      "hour_start": 0,
                      "hour_end": 23,
                      "minute_start": 0,
                      "minute_end": 59
                    }
                  }
                }
              }
            }
          },
          "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 user.\n"
            },
            "description": "The unique ID of the extension."
          },
          {
            "name": "holiday_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
            },
            "description": "The unique ID of the holiday."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "allOf": [
                      {
                        "type": "string",
                        "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                      }
                    ],
                    "description": "The unique ID of holiday.\n",
                    "readOnly": true
                  },
                  "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"
                  },
                  "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"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": "",
                  "value": {
                    "name": "example",
                    "region": "",
                    "consecutive": false,
                    "every_year": true,
                    "year_start": 0,
                    "year_end": 0,
                    "month_start": 6,
                    "month_end": 6,
                    "day_start": 1,
                    "day_end": 1,
                    "hour_start": 0,
                    "hour_end": 23,
                    "minute_start": 0,
                    "minute_end": 59
                  }
                }
              }
            }
          }
        },
        "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 user.\n"
            },
            "description": "The unique ID of the extension."
          },
          {
            "name": "holiday_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
            },
            "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 user.\n"
            },
            "description": "The unique ID of the user."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "items": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                    },
                    "description": "A collection of ID of tenant's holiday.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": "",
                  "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 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 holiday.\n",
                            "readOnly": true
                          },
                          "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"
                          },
                          "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"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "",
                    "value": {
                      "items": [
                        {
                          "id": "xxxxxx",
                          "name": "example",
                          "region": "",
                          "consecutive": false,
                          "every_year": true,
                          "year_start": 0,
                          "year_end": 0,
                          "month_start": 6,
                          "month_end": 6,
                          "day_start": 1,
                          "day_end": 1,
                          "hour_start": 0,
                          "hour_end": 23,
                          "minute_start": 0,
                          "minute_end": 59
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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 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 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": "",
                    "value": {
                      "items": [
                        {
                          "id": "xxxxxx",
                          "name": "example",
                          "extension_number": "101"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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 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 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",
                          "minLength": 1,
                          "maxLength": 128,
                          "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"
                    },
                    "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": "",
                    "value": {
                      "extension_number": "101",
                      "display_name": "example",
                      "skill_level": 1,
                      "status": "READY"
                    }
                  }
                }
              }
            }
          },
          "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 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 call queue.\n"
            },
            "description": "The unique ID of the call queue.   \nIf you want to perform an operation on all relevant queues,   \nspecify the special ID `all`.\n"
          }
        ],
        "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": "",
                  "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 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": "",
                  "value": {
                    "code": "1",
                    "phone_number": "000000",
                    "description": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                        }
                      ],
                      "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 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 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": "",
                    "value": {
                      "items": [
                        {
                          "id": "xxxxxx",
                          "code": "1",
                          "phone_number": "",
                          "description": ""
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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 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 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 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": "",
                    "value": {
                      "id": "xxxxxx",
                      "code": "1",
                      "phone_number": "000000",
                      "description": ""
                    }
                  }
                }
              }
            }
          },
          "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 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 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": "",
                  "value": {
                    "code": "1",
                    "phone_number": "000000",
                    "description": ""
                  }
                }
              }
            }
          }
        },
        "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 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 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 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": "",
                  "value": {
                    "code": "01",
                    "phone_number": "000000",
                    "description": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                        }
                      ],
                      "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 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 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": "",
                    "value": {
                      "items": [
                        {
                          "id": "xxxxxx",
                          "code": "01",
                          "phone_number": "",
                          "description": ""
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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 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 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 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": "",
                    "value": {
                      "id": "xxxxxx",
                      "code": "01",
                      "phone_number": "000000",
                      "description": ""
                    }
                  }
                }
              }
            }
          },
          "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 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 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": "",
                  "value": {
                    "code": "01",
                    "phone_number": "000000",
                    "description": ""
                  }
                }
              }
            }
          }
        },
        "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 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 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 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": "",
                    "value": {
                      "id": "xxxxxx",
                      "extension_number": "101",
                      "name": "example",
                      "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 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"
                        },
                        "display_name": {
                          "type": "string",
                          "maxLength": 32,
                          "description": "The display name of 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": "",
                  "value": {
                    "name": "example",
                    "outbound_caller_ids": [
                      {
                        "provider_id": "xxxxxx",
                        "caller_id": "1000",
                        "description": "example",
                        "display_name": "1000"
                      }
                    ],
                    "description": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created user group",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                        }
                      ],
                      "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 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": "",
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": "xxxxxx",
                          "name": "example",
                          "description": ""
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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 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 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 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"
                          },
                          "display_name": {
                            "type": "string",
                            "maxLength": 32,
                            "description": "The display name of 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": "",
                    "value": {
                      "id": "xxxxxx",
                      "name": "example",
                      "outbound_caller_ids": [
                        {
                          "provider_id": "xxxxxx",
                          "caller_id": "1000",
                          "description": "example",
                          "display_name": "1000"
                        }
                      ],
                      "description": ""
                    }
                  }
                }
              }
            }
          },
          "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 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 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"
                        },
                        "display_name": {
                          "type": "string",
                          "maxLength": 32,
                          "description": "The display name of 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": "",
                  "value": {
                    "name": "example",
                    "outbound_caller_ids": [
                      {
                        "provider_id": "xxxxxx",
                        "caller_id": "1000",
                        "description": "example",
                        "display_name": "1000"
                      }
                    ],
                    "description": ""
                  }
                }
              }
            }
          }
        },
        "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 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 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 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",
                            "minLength": 1,
                            "maxLength": 128,
                            "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": "",
                    "value": {
                      "items": [
                        {
                          "id": "xxxxxx",
                          "name": "example",
                          "display_name": "example",
                          "extension_number": "101"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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 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 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 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",
                      "minLength": 1,
                      "maxLength": 128,
                      "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": "",
                    "value": {
                      "id": "xxxxxx",
                      "name": "example",
                      "display_name": "example",
                      "extension_number": "101"
                    }
                  }
                }
              }
            }
          },
          "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 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 voicemail.\n"
                          },
                          "sender": {
                            "deprecated": true,
                            "type": "string",
                            "description": "The formated sender of the voicemail.\n"
                          },
                          "sender_name": {
                            "type": "string",
                            "description": "The sender name of the voicemail.\n"
                          },
                          "sender_number": {
                            "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",
                            "enum": [
                              "SENTIMENT_POSITIVE",
                              "SENTIMENT_NEUTRAL",
                              "SENTIMENT_NEGATIVE"
                            ],
                            "description": "AI transcription sentiment.\n- `SENTIMENT_POSITIVE`: positive\n- `SENTIMENT_NEUTRAL`: neutral\n- `SENTIMENT_NEGATIVE`: negative\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "Example of voicemail transcription list",
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": "1004948204782882816",
                          "sender": "test [ 101 ]",
                          "sender_name": "test",
                          "sender_number": "101",
                          "created_at": "2020-01-01T00:00:00Z",
                          "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 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 voicemail.\n"
                    },
                    "sender": {
                      "deprecated": true,
                      "type": "string",
                      "description": "The formated sender of the voicemail.\n"
                    },
                    "sender_name": {
                      "type": "string",
                      "description": "The sender name of the voicemail.\n"
                    },
                    "sender_number": {
                      "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": "",
                    "value": {
                      "id": "xxxxxx",
                      "sender": "test [ 101 ]",
                      "sender_name": "test",
                      "sender_number": "101",
                      "created_at": "2020-01-01T00:00:00Z",
                      "duration": 3,
                      "status": "UNREAD",
                      "file_name": "example",
                      "file_size": 100,
                      "file_url": ""
                    }
                  }
                }
              }
            }
          },
          "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 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 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 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"
                              }
                            ],
                            "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": "string",
                            "enum": [
                              "TRANSCRIPTION_NOTSTARTED",
                              "TRANSCRIPTION_QUOTALIMITED",
                              "TRANSCRIPTION_RUNNING",
                              "TRANSCRIPTION_FAILED",
                              "TRANSCRIPTION_SUCCEEDED",
                              "ANALYZE_RUNNING",
                              "ANALYZE_FAILED",
                              "ANALYZE_SUCCEEDED",
                              "TRANSCRIPTION_UPLOAD_FAILED",
                              "TRANSCRIPTION_OTHER_FAILED"
                            ],
                            "description": "AI transcription status.\n- `TRANSCRIPTION_NOTSTARTED`\n- `TRANSCRIPTION_QUOTALIMITED`\n- `TRANSCRIPTION_RUNNING`\n- `TRANSCRIPTION_FAILED`\n- `TRANSCRIPTION_SUCCEEDED`\n- `ANALYZE_RUNNING`\n- `ANALYZE_FAILED`\n- `ANALYZE_SUCCEEDED`\n- `TRANSCRIPTION_UPLOAD_FAILED`\n- `TRANSCRIPTION_OTHER_FAILED`\n"
                          },
                          "status_description": {
                            "type": "string",
                            "description": "AI transcription status description.\n"
                          },
                          "sentiment": {
                            "type": "string",
                            "enum": [
                              "SENTIMENT_POSITIVE",
                              "SENTIMENT_NEUTRAL",
                              "SENTIMENT_NEGATIVE"
                            ],
                            "description": "AI transcription sentiment.\n- `SENTIMENT_POSITIVE`\n- `SENTIMENT_NEUTRAL`\n- `SENTIMENT_NEGATIVE`\n"
                          }
                        }
                      }
                    }
                  }
                },
                "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"
                }
              ],
              "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",
                            "enum": [
                              "SENTIMENT_POSITIVE",
                              "SENTIMENT_NEUTRAL",
                              "SENTIMENT_NEGATIVE"
                            ],
                            "description": "AI transcription sentiment.\n- `SENTIMENT_POSITIVE`: positive\n- `SENTIMENT_NEUTRAL`: neutral\n- `SENTIMENT_NEGATIVE`: negative\n"
                          }
                        }
                      }
                    }
                  }
                },
                "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"
                }
              ],
              "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_ITEM` or `VOICE_MAIL_ITEM`.",
                    "enum": [
                      "CALL_RECORD_ITEM",
                      "VOICE_MAIL_ITEM"
                    ]
                  }
                },
                "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."
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "",
                    "value": {
                      "ids": [
                        1017758181150949400
                      ]
                    }
                  }
                }
              }
            }
          },
          "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."
                      },
                      "item_id": {
                        "type": "string",
                        "description": "The item ID of the original recording."
                      },
                      "file_id": {
                        "type": "string",
                        "description": "The file ID associated with the transcription."
                      },
                      "file_url": {
                        "type": "string",
                        "readOnly": true,
                        "example": "/api/blobs/WexWdABcd5D4PDgzTKV3gAAAEu00WcK",
                        "description": "The relative path to file url for file downloading.\n"
                      },
                      "session_id": {
                        "allOf": [
                          {
                            "type": "string",
                            "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                          }
                        ],
                        "description": "The session ID of call log.\n"
                      },
                      "type": {
                        "type": "string",
                        "description": "Type of the source item. Allowed values are `CALL_RECORD_ITEM` or `VOICE_MAIL_ITEM`.",
                        "enum": [
                          "CALL_RECORD_ITEM",
                          "VOICE_MAIL_ITEM"
                        ]
                      },
                      "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"
                      },
                      "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",
                        "enum": [
                          "SENTIMENT_POSITIVE",
                          "SENTIMENT_NEUTRAL",
                          "SENTIMENT_NEGATIVE"
                        ],
                        "description": "AI transcription sentiment.\n- `SENTIMENT_POSITIVE`: positive\n- `SENTIMENT_NEUTRAL`: neutral\n- `SENTIMENT_NEGATIVE`: negative\n"
                      },
                      "created_at": {
                        "type": "string",
                        "format": "date-time",
                        "description": "Time at which the transcription record was created."
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "",
                    "value": [
                      {
                        "id": "1015828562055266304",
                        "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": "SENTIMENT_POSITIVE",
                        "created_at": "2020-01-01T00:00:00Z",
                        "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",
                    "enum": [
                      "SENTIMENT_POSITIVE",
                      "SENTIMENT_NEUTRAL",
                      "SENTIMENT_NEGATIVE"
                    ],
                    "description": "AI transcription sentiment.\n- `SENTIMENT_POSITIVE`: positive\n- `SENTIMENT_NEUTRAL`: neutral\n- `SENTIMENT_NEGATIVE`: negative\n"
                  }
                }
              },
              "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": "",
                  "value": {
                    "name": "example",
                    "enabled": true,
                    "ipv4": "127.0.0.1",
                    "ipv6": "2001:0db8:0a0b:12f0::1"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                        }
                      ],
                      "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 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": "",
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": "xxxxxx",
                          "name": "example",
                          "enabled": true,
                          "type": "INTERNAL",
                          "ipv4": "127.0.0.1",
                          "ipv6": "2001:0db8:0a0b:12f0::1"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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 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 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": "",
                    "value": {
                      "id": "xxxxxx",
                      "name": "example",
                      "enabled": true,
                      "ipv4": "127.0.0.1",
                      "ipv6": "2001:0db8:0a0b:12f0::1",
                      "type": "INTERNAL"
                    }
                  }
                }
              }
            }
          },
          "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 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": "",
                  "value": {
                    "enabled": true
                  }
                }
              }
            }
          },
          "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 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": "",
                    "value": {
                      "cpu_usage": 80,
                      "memory_usage": 80,
                      "status": "ONLINE"
                    }
                  }
                }
              }
            }
          },
          "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 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 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 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 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"
                        },
                        "display_name": {
                          "type": "string",
                          "maxLength": 32,
                          "description": "The display name of 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"
                      }
                    }
                  },
                  "enable_audio_recording": {
                    "type": "boolean",
                    "default": false,
                    "description": "Whether to enable audio recording.\n"
                  }
                },
                "required": [
                  "name",
                  "extension_number",
                  "polling_strategy"
                ]
              },
              "examples": {
                "default": {
                  "summary": "",
                  "value": {
                    "name": "example",
                    "extension_number": "101",
                    "polling_strategy": "RING_SIMULTANEOUSLY",
                    "ring_time": 20,
                    "max_callers": 10,
                    "moh_prompt_file_id": "xxxxxx",
                    "intro_type": "NORMAL",
                    "intro_prompt_file_id": "xxxxxx",
                    "max_waiting_time": 300,
                    "wait_when_no_agents_online": true,
                    "inform_position": "DISABLE",
                    "inform_position_interval": 10,
                    "agent_auto_ready": true,
                    "agent_auto_not_ready_after_non_acd_call": true,
                    "sla_time": 0,
                    "language": "en-US",
                    "no_answer_forward_rule": {
                      "action": "HANGUP"
                    },
                    "night_mode_forward_rule": {
                      "action": "HANGUP"
                    },
                    "enable_callback": true,
                    "callback_mode": "ACTIVE",
                    "callback_timeout": 600,
                    "callback_outbound_prefix": "",
                    "outbound_caller_ids": [
                      {
                        "provider_id": "xxxxxx",
                        "caller_id": "1000",
                        "description": "example",
                        "display_name": "1000"
                      }
                    ],
                    "enable_sticky_routing": true,
                    "sticky_routing_duration": 3,
                    "enable_paid": true,
                    "enable_prid": true,
                    "enable_night_mode": true,
                    "extension_number_as_to_header": false,
                    "play_periodic_music": false,
                    "play_periodic_music_interval": 30,
                    "enable_wrap_up": true,
                    "wrap_up_time": 60,
                    "enable_exit_forward_rule": true,
                    "exit_forward_rule": {
                      "action": "HANGUP"
                    },
                    "enable_audio_recording": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created call queue",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                        }
                      ],
                      "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 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"
                              }
                            }
                          },
                          "enable_audio_recording": {
                            "type": "boolean",
                            "default": false,
                            "description": "Whether to enable audio recording.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "",
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": "xxxxxx",
                          "name": "example",
                          "extension_number": "101",
                          "polling_strategy": "RING_SIMULTANEOUSLY",
                          "ring_time": 20,
                          "max_callers": 10,
                          "moh_prompt_file_name": "example",
                          "moh_prompt_file_size": 100,
                          "moh_prompt_file_url": "",
                          "intro_type": "NORMAL",
                          "intro_prompt_file_name": "example",
                          "intro_prompt_file_size": 100,
                          "intro_prompt_file_url": "",
                          "max_waiting_time": 300,
                          "wait_when_no_agents_online": true,
                          "inform_position": "DISABLE",
                          "inform_position_interval": 10,
                          "agent_auto_ready": true,
                          "agent_auto_not_ready_after_non_acd_call": true,
                          "sla_time": 0,
                          "language": "en-US",
                          "no_answer_forward_rule": {
                            "action": "HANGUP"
                          },
                          "night_mode_forward_rule": {
                            "action": "HANGUP"
                          },
                          "enable_callback": false,
                          "callback_mode": "ACTIVE",
                          "callback_timeout": 600,
                          "callback_outbound_prefix": "",
                          "enable_sticky_routing": true,
                          "sticky_routing_duration": 30,
                          "enable_paid": true,
                          "enable_prid": true,
                          "enable_night_mode": false,
                          "extension_number_as_to_header": false,
                          "play_periodic_music": false,
                          "play_periodic_music_interval": 30,
                          "enable_wrap_up": false,
                          "wrap_up_time": 60,
                          "enable_exit_forward_rule": false,
                          "exit_forward_rule": {
                            "action": "HANGUP"
                          },
                          "enable_audio_recording": false
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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 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": "",
                  "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": "",
                    "value": {
                      "items": [
                        "READY",
                        "OFFLINE"
                      ]
                    }
                  }
                }
              }
            }
          },
          "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 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 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 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"
                          },
                          "display_name": {
                            "type": "string",
                            "maxLength": 32,
                            "description": "The display name of 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"
                        }
                      }
                    },
                    "enable_audio_recording": {
                      "type": "boolean",
                      "default": false,
                      "description": "Whether to enable audio recording.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "",
                    "value": {
                      "id": "xxxxxx",
                      "name": "example",
                      "extension_number": "101",
                      "polling_strategy": "RING_SIMULTANEOUSLY",
                      "ring_time": 20,
                      "max_callers": 10,
                      "moh_prompt_file_name": "example",
                      "moh_prompt_file_size": 100,
                      "moh_prompt_file_url": "",
                      "intro_type": "NORMAL",
                      "intro_prompt_file_name": "example",
                      "intro_prompt_file_size": 100,
                      "intro_prompt_file_url": "",
                      "max_waiting_time": 300,
                      "wait_when_no_agents_online": true,
                      "inform_position": "DISABLE",
                      "inform_position_interval": 10,
                      "agent_auto_ready": true,
                      "agent_auto_not_ready_after_non_acd_call": true,
                      "sla_time": 0,
                      "language": "en-US",
                      "no_answer_forward_rule": {
                        "action": "HANGUP"
                      },
                      "night_mode_forward_rule": {
                        "action": "HANGUP"
                      },
                      "enable_callback": true,
                      "callback_mode": "ACTIVE",
                      "callback_timeout": 600,
                      "callback_outbound_prefix": "",
                      "outbound_caller_ids": [
                        {
                          "provider_id": "xxxxxx",
                          "caller_id": "1000",
                          "description": "example",
                          "display_name": "1000"
                        }
                      ],
                      "enable_sticky_routing": true,
                      "sticky_routing_duration": 3,
                      "enable_paid": true,
                      "enable_prid": true,
                      "enable_night_mode": true,
                      "extension_number_as_to_header": false,
                      "play_periodic_music": false,
                      "play_periodic_music_interval": 30,
                      "enable_wrap_up": true,
                      "wrap_up_time": 60,
                      "enable_exit_forward_rule": true,
                      "exit_forward_rule": {
                        "action": "HANGUP"
                      },
                      "enable_audio_recording": false
                    }
                  }
                }
              }
            }
          },
          "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 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 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 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 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"
                        },
                        "display_name": {
                          "type": "string",
                          "maxLength": 32,
                          "description": "The display name of 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"
                      }
                    }
                  },
                  "enable_audio_recording": {
                    "type": "boolean",
                    "default": false,
                    "description": "Whether to enable audio recording.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": "",
                  "value": {
                    "name": "example",
                    "polling_strategy": "RING_SIMULTANEOUSLY",
                    "ring_time": 20,
                    "max_callers": 10,
                    "moh_prompt_file_id": "xxxxxx",
                    "intro_type": "NORMAL",
                    "intro_prompt_file_id": "xxxxxx",
                    "max_waiting_time": 300,
                    "wait_when_no_agents_online": true,
                    "inform_position": "DISABLE",
                    "inform_position_interval": 10,
                    "agent_auto_ready": true,
                    "agent_auto_not_ready_after_non_acd_call": true,
                    "sla_time": 0,
                    "language": "en-US",
                    "no_answer_forward_rule": {
                      "action": "HANGUP"
                    },
                    "night_mode_forward_rule": {
                      "action": "HANGUP"
                    },
                    "enable_callback": true,
                    "callback_mode": "ACTIVE",
                    "callback_timeout": 600,
                    "callback_outbound_prefix": "",
                    "outbound_caller_ids": [
                      {
                        "provider_id": "xxxxxx",
                        "caller_id": "1000",
                        "description": "example",
                        "display_name": "1000"
                      }
                    ],
                    "enable_sticky_routing": true,
                    "sticky_routing_duration": 3,
                    "enable_paid": true,
                    "enable_prid": true,
                    "enable_night_mode": true,
                    "extension_number_as_to_header": false,
                    "play_periodic_music": false,
                    "play_periodic_music_interval": 30,
                    "enable_wrap_up": true,
                    "wrap_up_time": 60,
                    "enable_exit_forward_rule": true,
                    "exit_forward_rule": {
                      "action": "HANGUP"
                    },
                    "enable_audio_recording": false
                  }
                }
              }
            }
          }
        },
        "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 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": "",
                    "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 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 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 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": "",
                    "value": {
                      "items": [
                        {
                          "session_id": "xxxxxx",
                          "extension_number": "101",
                          "display_name": "example",
                          "waiting_time": 60
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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 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 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 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",
                                "minLength": 1,
                                "maxLength": 128,
                                "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": "",
                    "value": {
                      "items": [
                        {
                          "extension_number": "101",
                          "display_name": "example",
                          "skill_level": 1
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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 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": "",
                  "value": {
                    "items": [
                      {
                        "extension_number": "101",
                        "skill_level": 1
                      }
                    ]
                  }
                }
              }
            }
          }
        },
        "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 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",
                          "minLength": 1,
                          "maxLength": 128,
                          "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"
                    },
                    "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": "",
                    "value": {
                      "extension_number": "101",
                      "display_name": "example",
                      "skill_level": 1,
                      "status": "OFFLINE"
                    }
                  }
                }
              }
            }
          },
          "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 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": "",
                  "value": {
                    "status": "READY"
                  }
                }
              }
            }
          }
        },
        "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": "",
                  "value": {
                    "number": "000000",
                    "enabled": true,
                    "description": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                    }
                  }
                },
                "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 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": "",
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": "xxxxxx",
                          "number": "000000",
                          "created_at": "2020-01-01T00:00:00Z",
                          "enabled": true,
                          "description": ""
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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 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 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": "",
                    "value": {
                      "id": "xxxxxx",
                      "number": "000000",
                      "created_at": "2020-01-01T00:00:00Z",
                      "enabled": true,
                      "description": ""
                    }
                  }
                }
              }
            }
          },
          "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 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": "",
                  "value": {
                    "number": "000000",
                    "enabled": true,
                    "description": ""
                  }
                }
              }
            }
          }
        },
        "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 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 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 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": "",
                    "value": {
                      "items": [
                        {
                          "id": "xxxxxx",
                          "name": "example",
                          "extension_number": "101"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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 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 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": "",
                  "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 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 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 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",
                            "minLength": 1,
                            "maxLength": 128,
                            "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": "",
                    "value": {
                      "items": [
                        {
                          "id": "xxxxxx",
                          "name": "example",
                          "display_name": "example",
                          "extension_number": "101"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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 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 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": "",
                  "value": {
                    "number": "000000",
                    "longitude": "",
                    "latitude": "",
                    "address": "",
                    "expire_at": "2020-01-01T00:00:00Z",
                    "enabled": true,
                    "description": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                        }
                      ],
                      "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 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": "",
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": "xxxxxx",
                          "number": "000000",
                          "longitude": "",
                          "latitude": "",
                          "address": "",
                          "created_at": "2020-01-01T00:00:00Z",
                          "updated_at": "2020-01-01T00:00:00Z",
                          "expire_at": "2020-01-01T00:00:00Z",
                          "enabled": true,
                          "description": ""
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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 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 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": "",
                    "value": {
                      "id": "xxxxxx",
                      "number": "000000",
                      "longitude": "",
                      "latitude": "",
                      "address": "",
                      "created_at": "2020-01-01T00:00:00Z",
                      "updated_at": "2020-01-01T00:00:00Z",
                      "expire_at": "2020-01-01T00:00:00Z",
                      "enabled": true,
                      "description": ""
                    }
                  }
                }
              }
            }
          },
          "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 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": "",
                  "value": {
                    "number": "000000",
                    "longitude": "",
                    "latitude": "",
                    "address": "",
                    "expire_at": "2020-01-01T00:00:00Z",
                    "enabled": true,
                    "description": ""
                  }
                }
              }
            }
          }
        },
        "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 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": "",
                  "value": {
                    "number": "000000",
                    "level": "FIRST",
                    "longitude": "",
                    "latitude": "",
                    "address": "",
                    "expire_at": "2020-01-01T00:00:00Z",
                    "trigger_times": 1,
                    "enabled": true,
                    "description": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                    }
                  }
                },
                "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 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": "",
                    "value": {
                      "items": [
                        {
                          "id": "xxxxxx",
                          "number": "000000",
                          "level": "FIRST",
                          "longitude": "",
                          "latitude": "",
                          "address": "",
                          "created_at": "2020-01-01T00:00:00Z",
                          "updated_at": "2020-01-01T00:00:00Z",
                          "expire_at": "2020-01-01T00:00:00Z",
                          "trigger_times": 1,
                          "enabled": true,
                          "description": ""
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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 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 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": "",
                    "value": {
                      "id": "xxxxxx",
                      "number": "000000",
                      "level": "FIRST",
                      "longitude": "",
                      "latitude": "",
                      "address": "",
                      "created_at": "2020-01-01T00:00:00Z",
                      "updated_at": "2020-01-01T00:00:00Z",
                      "expire_at": "2020-01-01T00:00:00Z",
                      "trigger_times": 1,
                      "enabled": true,
                      "description": ""
                    }
                  }
                }
              }
            }
          },
          "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 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": "",
                  "value": {
                    "number": "000000",
                    "level": "FIRST",
                    "longitude": "",
                    "latitude": "",
                    "address": "",
                    "expire_at": "2020-01-01T00:00:00Z",
                    "trigger_times": 1,
                    "enabled": true,
                    "description": ""
                  }
                }
              }
            }
          }
        },
        "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 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": "",
                    "value": {
                      "enable_level1": true,
                      "level1_prompt_file_name": "example",
                      "level1_prompt_file_size": 100,
                      "level1_prompt_file_url": "",
                      "enable_level2": true,
                      "level2_prompt_file_name": "example",
                      "level2_prompt_file_size": 100,
                      "level2_prompt_file_url": ""
                    }
                  }
                }
              }
            }
          },
          "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 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 file.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": "",
                  "value": {
                    "enable_level1": true,
                    "level1_prompt_file_id": "xxxxxx",
                    "enable_level2": true,
                    "level2_prompt_file_id": "xxxxxx"
                  }
                }
              }
            }
          }
        },
        "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": "",
                  "value": {
                    "caller": "101",
                    "caller_display_name": "User 101",
                    "callee": "101",
                    "send_sdp": false,
                    "trunk": "trunk",
                    "rewrite_from": "example",
                    "rewrite_pai": "example",
                    "rewrite_rpi": "example",
                    "user_data": "",
                    "target": "DENY",
                    "target_instance_id": "",
                    "target_extension_number": "101",
                    "additional_header": "ANSWER_MODE",
                    "header_direction": "ALL"
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                        }
                      ],
                      "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 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": "",
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": "xxxxxx",
                          "calls": [
                            {
                              "caller": "101",
                              "caller_display_name": "User 101",
                              "callee": "102",
                              "trunk": "trunk",
                              "started_at": "2020-01-01T00:00:00Z",
                              "talking_time": 100
                            }
                          ]
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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 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 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 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": "",
                    "value": {
                      "id": "xxxxxx",
                      "calls": [
                        {
                          "caller": "101",
                          "caller_display_name": "User 101",
                          "callee": "101",
                          "trunk": "trunk",
                          "started_at": "2000-01-01T00:00:00Z",
                          "talking_time": 100
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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 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": "",
                  "value": {
                    "extension_number": "101"
                  }
                }
              }
            }
          }
        },
        "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 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": "",
                  "value": {
                    "extension_number": "101"
                  }
                }
              }
            }
          }
        },
        "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 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": "",
                  "value": {
                    "extension_number": "101",
                    "refer_to": ""
                  }
                }
              }
            }
          },
          "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 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 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 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": "",
                  "value": {
                    "extension_number": "101",
                    "refer_to_1": "",
                    "session_1": "",
                    "refer_to_2": "",
                    "session_2": ""
                  }
                }
              }
            }
          },
          "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 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 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 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"
                        },
                        "display_name": {
                          "type": "string",
                          "maxLength": 32,
                          "description": "The display name of 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"
                  },
                  "prompt_file_id": {
                    "allOf": [
                      {
                        "type": "string",
                        "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                      }
                    ],
                    "description": "The unique ID of the file.\n"
                  }
                },
                "required": [
                  "mode",
                  "extension_number",
                  "subject",
                  "capacity"
                ]
              },
              "examples": {
                "default": {
                  "summary": "",
                  "value": {
                    "extension_number": "101",
                    "mode": "AUDIO",
                    "control": "FREE",
                    "height": 720,
                    "width": 1280,
                    "bitrate": 1024,
                    "framerate": 15,
                    "layout": "LAYOUT0",
                    "subject": "example",
                    "language": "en-US",
                    "capacity": 9,
                    "admin_pin": "13579",
                    "room_pin": "13579",
                    "enable_recording": true,
                    "enable_prompt": true,
                    "timezone": "",
                    "scheduled_start_at": "",
                    "scheduled_end_at": "",
                    "numbers": "",
                    "internal_invitees": [
                      "101",
                      "102"
                    ],
                    "external_invitees": "",
                    "outbound_caller_ids": [
                      {
                        "provider_id": "xxxxxx",
                        "caller_id": "1000",
                        "description": "example",
                        "display_name": "1000"
                      }
                    ],
                    "custom_options": "",
                    "prompt_file_id": "xxx"
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                        }
                      ],
                      "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 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 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"
                          },
                          "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": "",
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": "xxxxxx",
                          "extension_number": "101",
                          "mode": "AUDIO",
                          "control": "FREE",
                          "height": 720,
                          "width": 1280,
                          "bitrate": 1024,
                          "framerate": 15,
                          "layout": "LAYOUT0",
                          "subject": "example",
                          "language": "en-US",
                          "capacity": 9,
                          "admin_pin": "13579",
                          "room_pin": "13579",
                          "enable_recording": false,
                          "enable_prompt": false,
                          "timezone": "",
                          "created_at": "2020-01-01T00:00:00Z",
                          "scheduled_start_at": "",
                          "scheduled_end_at": "",
                          "numbers": "",
                          "internal_invitees": [
                            "101",
                            "102"
                          ],
                          "external_invitees": "",
                          "custom_options": "",
                          "prompt_file_name": "xxx",
                          "prompt_file_size": 100,
                          "prompt_file_url": "/blobs/xxx"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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 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 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 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 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"
                          },
                          "display_name": {
                            "type": "string",
                            "maxLength": 32,
                            "description": "The display name of 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"
                    },
                    "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": "",
                    "value": {
                      "id": "xxxxxx",
                      "extension_number": "101",
                      "mode": "AUDIO",
                      "control": "FREE",
                      "height": 720,
                      "width": 1280,
                      "bitrate": 1024,
                      "framerate": 15,
                      "layout": "LAYOUT0",
                      "subject": "example",
                      "language": "en-US",
                      "capacity": 9,
                      "admin_pin": "13579",
                      "room_pin": "13579",
                      "enable_recording": true,
                      "enable_prompt": true,
                      "timezone": "",
                      "created_at": "2020-01-01T00:00:00Z",
                      "scheduled_start_at": "",
                      "scheduled_end_at": "",
                      "numbers": "",
                      "internal_invitees": [
                        "101",
                        "102"
                      ],
                      "external_invitees": "",
                      "domain": "example.com",
                      "sbc_host": "",
                      "sbc_port": 443,
                      "token": "",
                      "outbound_caller_ids": [
                        {
                          "provider_id": "xxxxxx",
                          "caller_id": "1000",
                          "description": "example",
                          "display_name": "1000"
                        }
                      ],
                      "custom_options": "",
                      "prompt_file_name": "xxx",
                      "prompt_file_size": 100,
                      "prompt_file_url": "/blobs/xxx"
                    }
                  }
                }
              }
            }
          },
          "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 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 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 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"
                        },
                        "display_name": {
                          "type": "string",
                          "maxLength": 32,
                          "description": "The display name of 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"
                  },
                  "prompt_file_id": {
                    "allOf": [
                      {
                        "type": "string",
                        "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                      }
                    ],
                    "description": "The unique ID of the file.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": "",
                  "value": {
                    "control": "FREE",
                    "height": 720,
                    "width": 1280,
                    "bitrate": 1024,
                    "framerate": 15,
                    "layout": "LAYOUT0",
                    "subject": "example",
                    "language": "en-US",
                    "capacity": 9,
                    "admin_pin": "13579",
                    "room_pin": "13579",
                    "enable_prompt": true,
                    "timezone": "",
                    "scheduled_start_at": "",
                    "scheduled_end_at": "",
                    "numbers": "",
                    "internal_invitees": [
                      "101",
                      "102"
                    ],
                    "external_invitees": "",
                    "outbound_caller_ids": [
                      {
                        "provider_id": "xxxxxx",
                        "caller_id": "1000",
                        "description": "example",
                        "display_name": "1000"
                      }
                    ],
                    "custom_options": "",
                    "prompt_file_id": "xxx"
                  }
                }
              }
            }
          }
        },
        "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 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 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": "",
                    "value": {
                      "status": "ONLINE",
                      "locked": false,
                      "muted": false,
                      "recording": false
                    }
                  }
                }
              }
            }
          },
          "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 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 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 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 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 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 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 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 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": "",
                    "value": {
                      "items": [
                        {
                          "id": "xxxxxx",
                          "display_name": "example",
                          "muted": false,
                          "chairman": false,
                          "position": 1
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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 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 conference room participant.\n"
                    },
                    "description": "A collection of participant's id.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": "",
                  "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 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 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 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": "",
                    "value": {
                      "id": "xxxxxx",
                      "display_name": "example",
                      "muted": false,
                      "chairman": false,
                      "position": 1
                    }
                  }
                }
              }
            }
          },
          "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 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": "",
                  "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 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 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 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 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 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 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 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 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": "",
                  "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 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 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 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 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": "",
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": "xxxxxx",
                          "answered_at": "2020-01-01T00:00:00Z",
                          "ended_at": "2020-01-01T00:00:00Z",
                          "duration": 60,
                          "file_name": "example",
                          "file_size": 100,
                          "file_url": ""
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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 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 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 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 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 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 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": "",
                  "value": {
                    "name": "example",
                    "email": "example@example.com",
                    "company": "",
                    "title": "",
                    "business": "",
                    "business2": "",
                    "mobile_phone": "",
                    "mobile_phone2": "",
                    "home_phone": "",
                    "home_phone2": "",
                    "other": "",
                    "business_fax": "",
                    "home_fax": "",
                    "address": "",
                    "notes": ""
                  }
                }
              }
            }
          },
          "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 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 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",
                            "description": "The synchronization method.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "",
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": "xxxxxx",
                          "name": "example",
                          "email": "",
                          "company": "",
                          "title": "",
                          "business": "",
                          "business2": "",
                          "mobile_phone": "",
                          "mobile_phone2": "",
                          "home_phone": "",
                          "home_phone2": "",
                          "other": "",
                          "business_fax": "",
                          "home_fax": "",
                          "address": "",
                          "notes": "",
                          "sync_type": ""
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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 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 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",
                      "description": "The synchronization method.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "",
                    "value": {
                      "id": "xxxxxx",
                      "name": "example",
                      "email": "example@example.com",
                      "company": "",
                      "title": "",
                      "business": "",
                      "business2": "",
                      "mobile_phone": "",
                      "mobile_phone2": "",
                      "home_phone": "",
                      "home_phone2": "",
                      "other": "",
                      "business_fax": "",
                      "home_fax": "",
                      "address": "",
                      "notes": "",
                      "sync_type": ""
                    }
                  }
                }
              }
            }
          },
          "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 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": "",
                  "value": {
                    "name": "example",
                    "email": "example@example.com",
                    "company": "",
                    "title": "",
                    "business": "",
                    "business2": "",
                    "mobile_phone": "",
                    "mobile_phone2": "",
                    "home_phone": "",
                    "home_phone2": "",
                    "other": "",
                    "business_fax": "",
                    "home_fax": "",
                    "address": "",
                    "notes": ""
                  }
                }
              }
            }
          },
          "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 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": "",
                  "value": {
                    "number_prefix": "example",
                    "description": ""
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                        }
                      ],
                      "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 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": "",
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": "xxxxxx",
                          "number_prefix": "example",
                          "description": ""
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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 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 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": "",
                    "value": {
                      "id": "xxxxxx",
                      "number_prefix": "example",
                      "description": ""
                    }
                  }
                }
              }
            }
          },
          "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 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": "",
                  "value": {
                    "number_prefix": "example",
                    "description": ""
                  }
                }
              }
            }
          },
          "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 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 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": "",
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": "xxxxxx",
                          "name": "example",
                          "size": 100,
                          "media_type": "",
                          "created_at": "2020-01-01T00:00:00Z"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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 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 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": "",
                    "value": {
                      "id": "xxxxxx",
                      "name": "example",
                      "size": 100,
                      "media_type": "",
                      "created_at": "2020-01-01T00:00:00Z"
                    }
                  }
                }
              }
            }
          },
          "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 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 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": {
                      "type": "string",
                      "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                    },
                    "description": "A collection of ID of tenant's holiday.\n"
                  },
                  "provider_id": {
                    "allOf": [
                      {
                        "type": "string",
                        "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                      }
                    ],
                    "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"
                  },
                  "enable_audio_recording": {
                    "type": "boolean",
                    "default": false,
                    "description": "Whether to enable audio recording.\n"
                  }
                },
                "required": [
                  "name",
                  "did_numbers",
                  "provider_id"
                ]
              },
              "examples": {
                "default": {
                  "summary": "",
                  "value": {
                    "name": "example",
                    "enabled": true,
                    "usage": "SIP",
                    "cid_number_mask": "",
                    "did_numbers": "1000",
                    "office_hours_forward_rule": {
                      "action": "HANGUP"
                    },
                    "non_office_hours_forward_rule": {
                      "action": "HANGUP"
                    },
                    "holiday_forward_rule": {
                      "action": "HANGUP"
                    },
                    "office_hours": {
                      "monday": {
                        "enabled": true,
                        "ranges": [
                          {
                            "from": "09:00",
                            "to": "17:00"
                          }
                        ]
                      },
                      "tuesday": {
                        "enabled": true,
                        "ranges": [
                          {
                            "from": "09:00",
                            "to": "17:00"
                          }
                        ]
                      },
                      "wednesday": {
                        "enabled": true,
                        "ranges": [
                          {
                            "from": "09:00",
                            "to": "17:00"
                          }
                        ]
                      },
                      "thursday": {
                        "enabled": true,
                        "ranges": [
                          {
                            "from": "09:00",
                            "to": "17:00"
                          }
                        ]
                      },
                      "friday": {
                        "enabled": true,
                        "ranges": [
                          {
                            "from": "09:00",
                            "to": "17:00"
                          }
                        ]
                      },
                      "saturday": {
                        "enabled": true,
                        "ranges": [
                          {
                            "from": "09:00",
                            "to": "17:00"
                          }
                        ]
                      },
                      "sunday": {
                        "enabled": true,
                        "ranges": [
                          {
                            "from": "09:00",
                            "to": "17:00"
                          }
                        ]
                      }
                    },
                    "holidays": [],
                    "provider_id": "xxxxxx",
                    "enable_advanced_routing": true,
                    "advanced_routing": "",
                    "play_recording_disclaimer": false,
                    "enable_audio_recording": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                        }
                      ],
                      "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 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 holiday.\n",
                                  "readOnly": true
                                },
                                "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"
                                },
                                "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 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"
                          },
                          "enable_audio_recording": {
                            "type": "boolean",
                            "default": false,
                            "description": "Whether to enable audio recording.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "",
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": "xxxxxx",
                          "name": "example",
                          "enabled": true,
                          "usage": "SIP",
                          "cid_number_mask": "",
                          "did_numbers": "1000",
                          "office_hours_forward_rule": {
                            "action": "HANGUP"
                          },
                          "non_office_hours_forward_rule": {
                            "action": "HANGUP"
                          },
                          "holiday_forward_rule": {
                            "action": "HANGUP"
                          },
                          "office_hours": {
                            "monday": {
                              "enabled": true,
                              "ranges": [
                                {
                                  "from": "09:00",
                                  "to": "17:00"
                                }
                              ]
                            },
                            "tuesday": {
                              "enabled": true,
                              "ranges": [
                                {
                                  "from": "09:00",
                                  "to": "17:00"
                                }
                              ]
                            },
                            "wednesday": {
                              "enabled": true,
                              "ranges": [
                                {
                                  "from": "09:00",
                                  "to": "17:00"
                                }
                              ]
                            },
                            "thursday": {
                              "enabled": true,
                              "ranges": [
                                {
                                  "from": "09:00",
                                  "to": "17:00"
                                }
                              ]
                            },
                            "friday": {
                              "enabled": true,
                              "ranges": [
                                {
                                  "from": "09:00",
                                  "to": "17:00"
                                }
                              ]
                            },
                            "saturday": {
                              "enabled": true,
                              "ranges": [
                                {
                                  "from": "09:00",
                                  "to": "17:00"
                                }
                              ]
                            },
                            "sunday": {
                              "enabled": true,
                              "ranges": [
                                {
                                  "from": "09:00",
                                  "to": "17:00"
                                }
                              ]
                            }
                          },
                          "holidays": [],
                          "provider_id": "xxxxxx",
                          "enable_advanced_routing": false,
                          "advanced_routing": "",
                          "play_recording_disclaimer": false,
                          "enable_audio_recording": false
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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 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 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 holiday.\n",
                            "readOnly": true
                          },
                          "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"
                          },
                          "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 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"
                    },
                    "enable_audio_recording": {
                      "type": "boolean",
                      "default": false,
                      "description": "Whether to enable audio recording.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "",
                    "value": {
                      "id": "xxxxxx",
                      "name": "example",
                      "enabled": true,
                      "usage": "SIP",
                      "cid_number_mask": "",
                      "did_numbers": "1000",
                      "office_hours_forward_rule": {
                        "action": "HANGUP"
                      },
                      "non_office_hours_forward_rule": {
                        "action": "HANGUP"
                      },
                      "holiday_forward_rule": {
                        "action": "HANGUP"
                      },
                      "office_hours": {
                        "monday": {
                          "enabled": true,
                          "ranges": [
                            {
                              "from": "09:00",
                              "to": "17:00"
                            }
                          ]
                        },
                        "tuesday": {
                          "enabled": true,
                          "ranges": [
                            {
                              "from": "09:00",
                              "to": "17:00"
                            }
                          ]
                        },
                        "wednesday": {
                          "enabled": true,
                          "ranges": [
                            {
                              "from": "09:00",
                              "to": "17:00"
                            }
                          ]
                        },
                        "thursday": {
                          "enabled": true,
                          "ranges": [
                            {
                              "from": "09:00",
                              "to": "17:00"
                            }
                          ]
                        },
                        "friday": {
                          "enabled": true,
                          "ranges": [
                            {
                              "from": "09:00",
                              "to": "17:00"
                            }
                          ]
                        },
                        "saturday": {
                          "enabled": true,
                          "ranges": [
                            {
                              "from": "09:00",
                              "to": "17:00"
                            }
                          ]
                        },
                        "sunday": {
                          "enabled": true,
                          "ranges": [
                            {
                              "from": "09:00",
                              "to": "17:00"
                            }
                          ]
                        }
                      },
                      "holidays": [],
                      "provider_id": "xxxxxx",
                      "enable_advanced_routing": true,
                      "advanced_routing": "",
                      "play_recording_disclaimer": false,
                      "enable_audio_recording": false
                    }
                  }
                }
              }
            }
          },
          "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 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": {
                      "type": "string",
                      "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                    },
                    "description": "A collection of ID of tenant's holiday.\n"
                  },
                  "provider_id": {
                    "allOf": [
                      {
                        "type": "string",
                        "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                      }
                    ],
                    "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"
                  },
                  "enable_audio_recording": {
                    "type": "boolean",
                    "default": false,
                    "description": "Whether to enable audio recording.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": "",
                  "value": {
                    "name": "example",
                    "enabled": true,
                    "usage": "SIP",
                    "cid_number_mask": "",
                    "did_numbers": "1000",
                    "office_hours_forward_rule": {
                      "action": "HANGUP"
                    },
                    "non_office_hours_forward_rule": {
                      "action": "HANGUP"
                    },
                    "holiday_forward_rule": {
                      "action": "HANGUP"
                    },
                    "office_hours": {
                      "monday": {
                        "enabled": true,
                        "ranges": [
                          {
                            "from": "09:00",
                            "to": "17:00"
                          }
                        ]
                      },
                      "tuesday": {
                        "enabled": true,
                        "ranges": [
                          {
                            "from": "09:00",
                            "to": "17:00"
                          }
                        ]
                      },
                      "wednesday": {
                        "enabled": true,
                        "ranges": [
                          {
                            "from": "09:00",
                            "to": "17:00"
                          }
                        ]
                      },
                      "thursday": {
                        "enabled": true,
                        "ranges": [
                          {
                            "from": "09:00",
                            "to": "17:00"
                          }
                        ]
                      },
                      "friday": {
                        "enabled": true,
                        "ranges": [
                          {
                            "from": "09:00",
                            "to": "17:00"
                          }
                        ]
                      },
                      "saturday": {
                        "enabled": true,
                        "ranges": [
                          {
                            "from": "09:00",
                            "to": "17:00"
                          }
                        ]
                      },
                      "sunday": {
                        "enabled": true,
                        "ranges": [
                          {
                            "from": "09:00",
                            "to": "17:00"
                          }
                        ]
                      }
                    },
                    "holidays": [],
                    "provider_id": "xxxxxx",
                    "enable_advanced_routing": true,
                    "advanced_routing": "",
                    "play_recording_disclaimer": false,
                    "enable_audio_recording": false
                  }
                }
              }
            }
          }
        },
        "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 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": "",
                    "value": {
                      "enabled": true,
                      "play_type": "DEFAULT_MUSIC"
                    }
                  }
                }
              }
            }
          },
          "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": "",
                  "value": {
                    "enabled": true,
                    "play_type": "DEFAULT_MUSIC"
                  }
                }
              }
            }
          }
        },
        "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 file.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": "",
                  "value": {
                    "file_id": "xxxxxx"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created MOH music",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                        }
                      ],
                      "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 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": "",
                    "value": {
                      "items": [
                        {
                          "id": "xxxxxx",
                          "file_name": "example",
                          "file_size": 100,
                          "file_url": ""
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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 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 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": "",
                    "value": {
                      "id": "xxxxxx",
                      "file_name": "example",
                      "file_size": 100,
                      "file_url": ""
                    }
                  }
                }
              }
            }
          },
          "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 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": "",
                    "value": {
                      "enabled": true,
                      "extension_number": "101"
                    }
                  }
                }
              }
            }
          },
          "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": "",
                  "value": {
                    "enabled": true,
                    "extension_number": "101"
                  }
                }
              }
            }
          }
        },
        "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": "",
                  "value": {
                    "name": "example",
                    "enabled": true,
                    "description": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created monitor group",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                        }
                      ],
                      "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 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": "",
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": "xxxxxx",
                          "name": "example",
                          "enabled": true,
                          "description": ""
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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 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 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": "",
                    "value": {
                      "id": "xxxxxx",
                      "name": "example",
                      "enabled": true,
                      "description": ""
                    }
                  }
                }
              }
            }
          },
          "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 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": "",
                  "value": {
                    "name": "example",
                    "enabled": true,
                    "description": ""
                  }
                }
              }
            }
          }
        },
        "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 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 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 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",
                            "minLength": 1,
                            "maxLength": 128,
                            "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": "",
                    "value": {
                      "items": [
                        {
                          "id": "xxxxxx",
                          "name": "example",
                          "display_name": "example",
                          "extension_number": "101"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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 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 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 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 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",
                            "minLength": 1,
                            "maxLength": 128,
                            "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": "",
                    "value": {
                      "items": [
                        {
                          "id": "xxxxxx",
                          "name": "example",
                          "display_name": "example",
                          "extension_number": "101"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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 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 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 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"
                    },
                    "send_notification_to_parker": {
                      "type": "boolean",
                      "description": "Whether to send notification to parker when the parked call is about to reach the recall time.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "",
                    "value": {
                      "enabled": true,
                      "extension_number": "101",
                      "recall_to": "USER_ONLY",
                      "recall_time": 300,
                      "recall_ring_group_time": 300,
                      "ring_group_id": "xxxxxx",
                      "prompt_file_name": "example",
                      "prompt_file_size": 100,
                      "prompt_file_url": "",
                      "send_notification_to_parker": false
                    }
                  }
                }
              }
            }
          },
          "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 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 file.\n"
                  },
                  "send_notification_to_parker": {
                    "type": "boolean",
                    "description": "Whether to send notification to parker when the parked call is about to reach the recall time.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": "",
                  "value": {
                    "enabled": true,
                    "extension_number": "101",
                    "recall_to": "USER_ONLY",
                    "recall_time": 300,
                    "recall_ring_group_time": 300,
                    "ring_group_id": "xxxxxx",
                    "prompt_file_id": "xxxxxx",
                    "send_notification_to_parker": false
                  }
                }
              }
            }
          }
        },
        "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 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": "",
                  "value": {
                    "name": "example",
                    "recall_to": "USER_ONLY",
                    "ring_group_id": "xxxxxx"
                  }
                }
              }
            }
          }
        },
        "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 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 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 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": "",
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": "xxxxxx",
                          "name": "example",
                          "recall_to": "USER_ONLY",
                          "ring_group_id": "xxxxxx"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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 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 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 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": "",
                    "value": {
                      "id": "xxxxxx",
                      "name": "example",
                      "recall_to": "USER_ONLY",
                      "ring_group_id": "xxxxxx"
                    }
                  }
                }
              }
            }
          },
          "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 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 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": "",
                  "value": {
                    "name": "example",
                    "recall_to": "USER_ONLY",
                    "ring_group_id": "xxxxxx"
                  }
                }
              }
            }
          }
        },
        "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 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 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 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",
                            "minLength": 1,
                            "maxLength": 128,
                            "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": "",
                    "value": {
                      "items": [
                        {
                          "id": "xxxxxx",
                          "name": "example",
                          "display_name": "example",
                          "extension_number": "101"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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 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 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",
                    "maxLength": 1024,
                    "description": "The description of call park group.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": "",
                  "value": {
                    "name": "example",
                    "description": ""
                  }
                }
              }
            }
          }
        },
        "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 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 call pick group.\n"
                          },
                          "name": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 64,
                            "description": "The name of call park group\n"
                          },
                          "description": {
                            "type": "string",
                            "maxLength": 1024,
                            "description": "The description of call park group.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "",
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": "xxxxxx",
                          "name": "example",
                          "description": ""
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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 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 call pick group.\n"
                    },
                    "name": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64,
                      "description": "The name of call park group\n"
                    },
                    "description": {
                      "type": "string",
                      "maxLength": 1024,
                      "description": "The description of call park group.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "",
                    "value": {
                      "id": "xxxxxx",
                      "name": "example",
                      "description": ""
                    }
                  }
                }
              }
            }
          },
          "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 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",
                    "maxLength": 1024,
                    "description": "The description of call park group.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": "",
                  "value": {
                    "name": "example",
                    "description": ""
                  }
                }
              }
            }
          }
        },
        "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 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 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 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",
                            "minLength": 1,
                            "maxLength": 128,
                            "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": "",
                    "value": {
                      "items": [
                        {
                          "id": "xxxxxx",
                          "name": "example",
                          "display_name": "example",
                          "extension_number": "101"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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 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": "",
                  "value": {
                    "items": [
                      "101",
                      "102"
                    ]
                  }
                }
              }
            }
          }
        },
        "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 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 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",
                      "minLength": 1,
                      "maxLength": 128,
                      "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": "",
                    "value": {
                      "id": "xxxxxx",
                      "name": "example",
                      "display_name": "example",
                      "extension_number": "101"
                    }
                  }
                }
              }
            }
          },
          "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": "",
                    "value": {
                      "extension_number": "101",
                      "retain_days": 30,
                      "min_seconds": 1
                    }
                  }
                }
              }
            }
          },
          "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": "",
                  "value": {
                    "extension_number": "101",
                    "retain_days": 30,
                    "min_seconds": 1
                  }
                }
              }
            }
          }
        },
        "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": "101",
                      "language": "en-US",
                      "retry_interval": 5,
                      "retry_total_time": 30
                    }
                  }
                }
              }
            }
          },
          "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": "101",
                    "language": "en-US",
                    "retry_interval": 5,
                    "retry_total_time": 30
                  }
                }
              }
            }
          }
        },
        "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": {
                      "type": "string",
                      "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                    },
                    "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 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"
                        }
                      }
                    }
                  },
                  "enable_audio_recording": {
                    "type": "boolean",
                    "default": false,
                    "description": "Whether to enable audio recording.\n"
                  }
                },
                "required": [
                  "name"
                ]
              },
              "examples": {
                "default": {
                  "summary": "",
                  "value": {
                    "name": "example",
                    "number_prefix": "example",
                    "number_length": "",
                    "number_mask": "",
                    "enabled": true,
                    "priority": 1,
                    "office_hours": {
                      "monday": {
                        "enabled": true,
                        "ranges": [
                          {
                            "from": "09:00",
                            "to": "17:00"
                          }
                        ]
                      },
                      "tuesday": {
                        "enabled": true,
                        "ranges": [
                          {
                            "from": "09:00",
                            "to": "17:00"
                          }
                        ]
                      },
                      "wednesday": {
                        "enabled": true,
                        "ranges": [
                          {
                            "from": "09:00",
                            "to": "17:00"
                          }
                        ]
                      },
                      "thursday": {
                        "enabled": true,
                        "ranges": [
                          {
                            "from": "09:00",
                            "to": "17:00"
                          }
                        ]
                      },
                      "friday": {
                        "enabled": true,
                        "ranges": [
                          {
                            "from": "09:00",
                            "to": "17:00"
                          }
                        ]
                      },
                      "saturday": {
                        "enabled": true,
                        "ranges": [
                          {
                            "from": "09:00",
                            "to": "17:00"
                          }
                        ]
                      },
                      "sunday": {
                        "enabled": true,
                        "ranges": [
                          {
                            "from": "09:00",
                            "to": "17:00"
                          }
                        ]
                      }
                    },
                    "holidays": [],
                    "routing_strategy": "PRIORITIZED",
                    "routes": [
                      {
                        "enabled": true,
                        "provider_id": "xxxxxx",
                        "strip_digits": 0,
                        "prepend": "0086",
                        "outbound_caller_id": "1000"
                      }
                    ],
                    "usage": "SIP",
                    "enable_audio_recording": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created outbound rule",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                        }
                      ],
                      "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 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 holiday.\n",
                                  "readOnly": true
                                },
                                "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"
                                },
                                "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"
                          },
                          "enable_audio_recording": {
                            "type": "boolean",
                            "default": false,
                            "description": "Whether to enable audio recording.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "",
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": "xxxxxx",
                          "name": "example",
                          "number_prefix": "example",
                          "number_length": "",
                          "number_mask": "",
                          "enabled": true,
                          "priority": 1,
                          "office_hours": {
                            "monday": {
                              "enabled": true,
                              "ranges": [
                                {
                                  "from": "09:00",
                                  "to": "17:00"
                                }
                              ]
                            },
                            "tuesday": {
                              "enabled": true,
                              "ranges": [
                                {
                                  "from": "09:00",
                                  "to": "17:00"
                                }
                              ]
                            },
                            "wednesday": {
                              "enabled": true,
                              "ranges": [
                                {
                                  "from": "09:00",
                                  "to": "17:00"
                                }
                              ]
                            },
                            "thursday": {
                              "enabled": true,
                              "ranges": [
                                {
                                  "from": "09:00",
                                  "to": "17:00"
                                }
                              ]
                            },
                            "friday": {
                              "enabled": true,
                              "ranges": [
                                {
                                  "from": "09:00",
                                  "to": "17:00"
                                }
                              ]
                            },
                            "saturday": {
                              "enabled": true,
                              "ranges": [
                                {
                                  "from": "09:00",
                                  "to": "17:00"
                                }
                              ]
                            },
                            "sunday": {
                              "enabled": true,
                              "ranges": [
                                {
                                  "from": "09:00",
                                  "to": "17:00"
                                }
                              ]
                            }
                          },
                          "holidays": [],
                          "routing_strategy": "PRIORITIZED",
                          "usage": "SIP",
                          "enable_audio_recording": false
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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 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 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 holiday.\n",
                            "readOnly": true
                          },
                          "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"
                          },
                          "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 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"
                    },
                    "enable_audio_recording": {
                      "type": "boolean",
                      "default": false,
                      "description": "Whether to enable audio recording.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "",
                    "value": {
                      "id": "xxxxxx",
                      "name": "example",
                      "number_prefix": "example",
                      "number_length": "",
                      "number_mask": "",
                      "enabled": true,
                      "priority": 1,
                      "office_hours": {
                        "monday": {
                          "enabled": true,
                          "ranges": [
                            {
                              "from": "09:00",
                              "to": "17:00"
                            }
                          ]
                        },
                        "tuesday": {
                          "enabled": true,
                          "ranges": [
                            {
                              "from": "09:00",
                              "to": "17:00"
                            }
                          ]
                        },
                        "wednesday": {
                          "enabled": true,
                          "ranges": [
                            {
                              "from": "09:00",
                              "to": "17:00"
                            }
                          ]
                        },
                        "thursday": {
                          "enabled": true,
                          "ranges": [
                            {
                              "from": "09:00",
                              "to": "17:00"
                            }
                          ]
                        },
                        "friday": {
                          "enabled": true,
                          "ranges": [
                            {
                              "from": "09:00",
                              "to": "17:00"
                            }
                          ]
                        },
                        "saturday": {
                          "enabled": true,
                          "ranges": [
                            {
                              "from": "09:00",
                              "to": "17:00"
                            }
                          ]
                        },
                        "sunday": {
                          "enabled": true,
                          "ranges": [
                            {
                              "from": "09:00",
                              "to": "17:00"
                            }
                          ]
                        }
                      },
                      "holidays": [],
                      "routing_strategy": "PRIORITIZED",
                      "routes": [
                        {
                          "enabled": true,
                          "provider_id": "xxxxxx",
                          "strip_digits": 0,
                          "prepend": "0086",
                          "outbound_caller_id": "1000"
                        }
                      ],
                      "usage": "SIP",
                      "enable_audio_recording": false
                    }
                  }
                }
              }
            }
          },
          "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 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": {
                      "type": "string",
                      "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                    },
                    "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 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"
                  },
                  "enable_audio_recording": {
                    "type": "boolean",
                    "default": false,
                    "description": "Whether to enable audio recording.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": "",
                  "value": {
                    "name": "example",
                    "number_prefix": "example",
                    "number_length": "",
                    "number_mask": "",
                    "enabled": true,
                    "priority": 1,
                    "office_hours": {
                      "monday": {
                        "enabled": true,
                        "ranges": [
                          {
                            "from": "09:00",
                            "to": "17:00"
                          }
                        ]
                      },
                      "tuesday": {
                        "enabled": true,
                        "ranges": [
                          {
                            "from": "09:00",
                            "to": "17:00"
                          }
                        ]
                      },
                      "wednesday": {
                        "enabled": true,
                        "ranges": [
                          {
                            "from": "09:00",
                            "to": "17:00"
                          }
                        ]
                      },
                      "thursday": {
                        "enabled": true,
                        "ranges": [
                          {
                            "from": "09:00",
                            "to": "17:00"
                          }
                        ]
                      },
                      "friday": {
                        "enabled": true,
                        "ranges": [
                          {
                            "from": "09:00",
                            "to": "17:00"
                          }
                        ]
                      },
                      "saturday": {
                        "enabled": true,
                        "ranges": [
                          {
                            "from": "09:00",
                            "to": "17:00"
                          }
                        ]
                      },
                      "sunday": {
                        "enabled": true,
                        "ranges": [
                          {
                            "from": "09:00",
                            "to": "17:00"
                          }
                        ]
                      }
                    },
                    "holidays": [],
                    "routing_strategy": "PRIORITIZED",
                    "routes": [
                      {
                        "enabled": true,
                        "provider_id": "xxxxxx",
                        "strip_digits": 0,
                        "prepend": "0086",
                        "outbound_caller_id": "1000"
                      }
                    ],
                    "usage": "SIP",
                    "enable_audio_recording": false
                  }
                }
              }
            }
          }
        },
        "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 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 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 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": "",
                    "value": {
                      "items": [
                        {
                          "id": "xxxxxx",
                          "name": "example",
                          "description": ""
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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 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 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 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 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 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": "",
                    "value": {
                      "id": "xxxxxx",
                      "name": "example",
                      "description": ""
                    }
                  }
                }
              }
            }
          },
          "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 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 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": "",
                    "value": {
                      "items": [
                        {
                          "filename": "example",
                          "model": "",
                          "display_name": "example"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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",
                        "description": "Language for strings displayed on Phone Display LCD.\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": "",
                    "value": {
                      "filename": "example",
                      "languages": [
                        "English",
                        "Chinese"
                      ],
                      "ringtones": [
                        "Custom",
                        "United States"
                      ],
                      "queue_ringtones": [
                        "Custom",
                        "United States"
                      ],
                      "external_ringtone": [
                        "Custom",
                        "United States"
                      ],
                      "date_formats": [],
                      "time_formats": [],
                      "powerleds": [],
                      "backlights": [],
                      "screensavers": [],
                      "time_zones": [
                        "GMT-5:00 US Eastern Time, New York"
                      ],
                      "codecs": [
                        "PCMU",
                        "PCMA",
                        "G729",
                        "G722"
                      ],
                      "enable_lldp": true,
                      "enable_vlan_wan_port": true,
                      "wan_port_id": 1000,
                      "wan_port_priority": 1,
                      "enable_vlan_pc_port": true,
                      "pc_port_id": 1000,
                      "pc_port_priority": 1
                    }
                  }
                }
              }
            }
          },
          "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",
                            "minLength": 1,
                            "maxLength": 128,
                            "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"
                          },
                          "status": {
                            "type": "string",
                            "enum": [
                              "ONLINE",
                              "OFFLINE"
                            ],
                            "description": "The status of phone.   \nCan be either:   \n- `ONLINE`: The phone is online.\n- `OFFLINE`: The phone is offline.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "",
                    "value": {
                      "items": [
                        {
                          "extension_number": "101",
                          "vendor": "",
                          "model": "",
                          "fwver": "",
                          "name": "example",
                          "password": "",
                          "vm_pin": "",
                          "ip": "127.0.0.1",
                          "mac": "00:1A:2B:3C:4D:5E",
                          "status": "OFFLINE"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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",
                      "minLength": 1,
                      "maxLength": 128,
                      "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"
                    },
                    "status": {
                      "type": "string",
                      "enum": [
                        "ONLINE",
                        "OFFLINE"
                      ],
                      "description": "The status of phone.   \nCan be either:   \n- `ONLINE`: The phone is online.\n- `OFFLINE`: The phone is offline.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "",
                    "value": {
                      "extension_number": "101",
                      "vendor": "",
                      "model": "",
                      "fwver": "",
                      "name": "example",
                      "password": "xxxxxx",
                      "vm_pin": "",
                      "ip": "127.0.0.1",
                      "mac": "00:1A:2B:3C:4D:5E",
                      "status": "OFFLINE"
                    }
                  }
                }
              }
            }
          },
          "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": "",
                    "value": {
                      "mac": "00:1A:2B:3C:4D:5E",
                      "extension_number": "101",
                      "vendor": "",
                      "model": ""
                    }
                  }
                }
              }
            }
          },
          "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": "",
                    "value": {
                      "items": [
                        {
                          "filename": "example",
                          "model": "",
                          "lines": 50,
                          "display_name": "example"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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",
                        "description": "Language for strings displayed on Phone Display LCD.\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": "",
                    "value": {
                      "template": "",
                      "languages": [
                        "English",
                        "Chinese"
                      ],
                      "tones": [
                        "Custom",
                        "United States"
                      ],
                      "time_zones": [
                        "GMT-5:00 US Eastern Time, New York"
                      ],
                      "codecs": [
                        "PCMU",
                        "PCMA",
                        "G729",
                        "G722"
                      ],
                      "lines": 50
                    }
                  }
                }
              }
            }
          },
          "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"
                  },
                  "provisioning_pin": {
                    "type": "string",
                    "description": "The provisioning PIN for auto-provisioning authentication. This PIN is used to verify the phone during auto-provisioning download.\nIt follows the same validation rules as the extension user's VOICEMAIL PIN. Can be empty, but if verification is enabled and this is empty, authentication will fail.\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",
                    "description": "Language for strings displayed on Phone Display LCD.\n"
                  },
                  "handset_language": {
                    "type": "string",
                    "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": "",
                  "value": {
                    "name": "example",
                    "mac": "00:1A:2B:3C:4D:5E",
                    "template": "",
                    "vendor": "",
                    "model": "",
                    "password": "",
                    "user_password": "",
                    "engineer_password": "",
                    "provisioning_pin": "123456",
                    "timezone": "",
                    "region": "",
                    "language": "English",
                    "handset_language": "English",
                    "tone": "",
                    "rps": false,
                    "https": false,
                    "codecs": [
                      "PCMU",
                      "PCMA",
                      "G729",
                      "G722"
                    ],
                    "interface": "WEB_DOMAIN",
                    "preferred_transport": "UDP"
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                        }
                      ],
                      "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 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"
                          },
                          "provisioning_pin": {
                            "type": "string",
                            "description": "The provisioning PIN for auto-provisioning authentication. This PIN is used to verify the phone during auto-provisioning download.\nIt follows the same validation rules as the extension user's VOICEMAIL PIN. Can be empty, but if verification is enabled and this is empty, authentication will fail.\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",
                            "description": "Language for strings displayed on Phone Display LCD.\n"
                          },
                          "handset_language": {
                            "type": "string",
                            "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"
                          },
                          "firmware": {
                            "type": "string",
                            "description": "The firmware of phone.\n"
                          },
                          "status": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "display_name": {
                                  "type": "string",
                                  "description": "The display name of extension.\n"
                                },
                                "extension_number": {
                                  "type": "string",
                                  "description": "The number of extension.\n"
                                },
                                "status": {
                                  "type": "string",
                                  "enum": [
                                    "ONLINE",
                                    "OFFLINE"
                                  ],
                                  "description": "The status of phone.   \nCan be either:   \n- `ONLINE`: The phone is online.\n- `OFFLINE`: The phone is offline.\n"
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "",
                    "value": {
                      "items": [
                        {
                          "id": "xxxxxx",
                          "name": "example",
                          "mac": "00:1A:2B:3C:4D:5E",
                          "template": "",
                          "vendor": "",
                          "model": "",
                          "password": "",
                          "user_password": "",
                          "engineer_password": "",
                          "provisioning_pin": "123456",
                          "timezone": "",
                          "region": "",
                          "language": "en-US",
                          "handset_language": "en-US",
                          "tone": "",
                          "rps": false,
                          "https": false,
                          "codecs": [
                            "PCMU",
                            "PCMA",
                            "G729",
                            "G722"
                          ],
                          "lines": 50,
                          "interface": "WEB_DOMAIN",
                          "preferred_transport": "UDP",
                          "url": "https://example.com",
                          "firmware": "example",
                          "status": [
                            {
                              "display_name": "abc",
                              "extension_number": "101",
                              "status": "OFFLINE"
                            }
                          ]
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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 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 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"
                    },
                    "provisioning_pin": {
                      "type": "string",
                      "description": "The provisioning PIN for auto-provisioning authentication. This PIN is used to verify the phone during auto-provisioning download.\nIt follows the same validation rules as the extension user's VOICEMAIL PIN. Can be empty, but if verification is enabled and this is empty, authentication will fail.\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",
                      "description": "Language for strings displayed on Phone Display LCD.\n"
                    },
                    "handset_language": {
                      "type": "string",
                      "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"
                    },
                    "firmware": {
                      "type": "string",
                      "description": "The firmware of phone.\n"
                    },
                    "status": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "display_name": {
                            "type": "string",
                            "description": "The display name of extension.\n"
                          },
                          "extension_number": {
                            "type": "string",
                            "description": "The number of extension.\n"
                          },
                          "status": {
                            "type": "string",
                            "enum": [
                              "ONLINE",
                              "OFFLINE"
                            ],
                            "description": "The status of phone.   \nCan be either:   \n- `ONLINE`: The phone is online.\n- `OFFLINE`: The phone is offline.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "",
                    "value": {
                      "id": "xxxxxx",
                      "name": "example",
                      "mac": "00:1A:2B:3C:4D:5E",
                      "template": "",
                      "vendor": "",
                      "model": "",
                      "password": "",
                      "user_password": "",
                      "engineer_password": "",
                      "provisioning_pin": "123456",
                      "timezone": "",
                      "region": "",
                      "language": "en-US",
                      "handset_language": "en-US",
                      "tone": "",
                      "rps": false,
                      "https": false,
                      "codecs": [
                        "PCMU",
                        "PCMA",
                        "G729",
                        "G722"
                      ],
                      "lines": 50,
                      "interface": "WEB_DOMAIN",
                      "preferred_transport": "UDP",
                      "url": "https://example.com",
                      "firmware": "example",
                      "status": [
                        {
                          "display_name": "abc",
                          "extension_number": "101",
                          "status": "OFFLINE"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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 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"
                  },
                  "provisioning_pin": {
                    "type": "string",
                    "description": "The provisioning PIN for auto-provisioning authentication. This PIN is used to verify the phone during auto-provisioning download.\nIt follows the same validation rules as the extension user's VOICEMAIL PIN. Can be empty, but if verification is enabled and this is empty, authentication will fail.\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",
                    "description": "Language for strings displayed on Phone Display LCD.\n"
                  },
                  "handset_language": {
                    "type": "string",
                    "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": "",
                  "value": {
                    "name": "example",
                    "password": "",
                    "user_password": "",
                    "engineer_password": "",
                    "provisioning_pin": "123456",
                    "timezone": "",
                    "region": "",
                    "language": "en-US",
                    "handset_language": "en-US",
                    "tone": "",
                    "rps": false,
                    "https": false,
                    "codecs": [
                      "PCMU",
                      "PCMA",
                      "G729",
                      "G722"
                    ],
                    "interface": "WEB_DOMAIN",
                    "preferred_transport": "UDP"
                  }
                }
              }
            }
          },
          "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 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 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"
                              }
                            ],
                            "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",
                                "minLength": 1,
                                "maxLength": 128,
                                "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": "",
                    "value": {
                      "items": [
                        {
                          "id": "xxxxxx",
                          "extension_number": "101",
                          "display_name": "example",
                          "ipui": "",
                          "handset_index": ""
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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 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"
                            }
                          ],
                          "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",
                              "minLength": 1,
                              "maxLength": 128,
                              "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": "",
                  "value": {
                    "items": [
                      {
                        "extension_number": "101",
                        "ipui": "",
                        "handset_index": ""
                      }
                    ]
                  }
                }
              }
            }
          }
        },
        "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 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"
                        }
                      ],
                      "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",
                          "minLength": 1,
                          "maxLength": 128,
                          "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": "",
                    "value": {
                      "id": "xxxxxx",
                      "extension_number": "101",
                      "display_name": "example",
                      "ipui": "",
                      "handset_index": ""
                    }
                  }
                }
              }
            }
          },
          "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"
                      }
                    }
                  },
                  "force_outbound_proxy": {
                    "type": "boolean",
                    "description": "Whether to force outbound traffic to be routed through the outbound proxy.",
                    "example": true
                  }
                },
                "required": [
                  "name",
                  "transport",
                  "hostname",
                  "port",
                  "outbound_server",
                  "outbound_server_port",
                  "concurrency"
                ]
              },
              "examples": {
                "default": {
                  "summary": "",
                  "value": {
                    "name": "example",
                    "enabled": true,
                    "brand": "Generic",
                    "auth_mode": "REGISTER_AUTH",
                    "transport": "UDP",
                    "hostname": "example",
                    "port": 1000,
                    "auth_id": "xxxxxx",
                    "username": "user",
                    "password": "xxxxxx",
                    "registration": false,
                    "register_interval": 600,
                    "outbound_server": "",
                    "outbound_server_port": 1000,
                    "inlan": false,
                    "single_via_header": true,
                    "rewrite_via_ip": false,
                    "verify_port": true,
                    "keep_alive": true,
                    "concurrency": 100,
                    "keep_alive_interval": 360,
                    "additional_ips": "",
                    "adjust_sdp_direction": false,
                    "remove_srtp_info": true,
                    "remove_plus_prefix": false,
                    "stir_shaken_signature_required": false,
                    "tel_uri_scheme_for_request_line": false,
                    "tel_uri_scheme_for_to_header": false,
                    "did_numbers": "1000-2000",
                    "inbound_parameters": {
                      "caller_num": "DEFAULT",
                      "caller_display_name": "DEFAULT",
                      "called_num": "DEFAULT",
                      "privacy_types_supported": "DEFAULT",
                      "enable_stir_shaken_validation": false,
                      "pai_header_parameter_name": "verstat",
                      "drop_calls_with_verification_status": [],
                      "pass_api_header_to_uad": false
                    },
                    "outbound_parameters": {
                      "request_line_uri_user_part": {
                        "value": "DEFAULT",
                        "custom_value": ""
                      },
                      "request_line_uri_host_part": {
                        "value": "DEFAULT",
                        "custom_value": ""
                      },
                      "contact_user_part": {
                        "value": "DEFAULT",
                        "custom_value": ""
                      },
                      "contact_host_part": {
                        "value": "DEFAULT",
                        "custom_value": ""
                      },
                      "to_display_name": {
                        "value": "DEFAULT",
                        "custom_value": ""
                      },
                      "to_user_part": {
                        "value": "DEFAULT",
                        "custom_value": ""
                      },
                      "to_host_part": {
                        "value": "DEFAULT",
                        "custom_value": ""
                      },
                      "from_display_name": {
                        "value": "DEFAULT",
                        "custom_value": ""
                      },
                      "from_user_part": {
                        "value": "OUTBOUND_CALLER_ID",
                        "custom_value": ""
                      },
                      "from_host_part": {
                        "value": "DEFAULT",
                        "custom_value": ""
                      },
                      "remote_party_id_called_party_display_name": {
                        "value": "DEFAULT",
                        "custom_value": ""
                      },
                      "remote_party_id_called_party_user_part": {
                        "value": "DEFAULT",
                        "custom_value": ""
                      },
                      "remote_party_id_called_party_host_part": {
                        "value": "DEFAULT",
                        "custom_value": ""
                      },
                      "remote_party_id_calling_party_display_name": {
                        "value": "DEFAULT",
                        "custom_value": ""
                      },
                      "remote_party_id_calling_party_user_part": {
                        "value": "DEFAULT",
                        "custom_value": ""
                      },
                      "remote_party_id_calling_party_host_part": {
                        "value": "DEFAULT",
                        "custom_value": ""
                      },
                      "p_asserted_identity_display_name": {
                        "value": "DEFAULT",
                        "custom_value": ""
                      },
                      "p_asserted_identity_user_part": {
                        "value": "DEFAULT",
                        "custom_value": ""
                      },
                      "p_asserted_identity_host_part": {
                        "value": "DEFAULT",
                        "custom_value": ""
                      },
                      "p_preferred_identify_display_name": {
                        "value": "DEFAULT",
                        "custom_value": ""
                      },
                      "p_preferred_identify_user_part": {
                        "value": "DEFAULT",
                        "custom_value": ""
                      },
                      "p_preferred_identify_host_part": {
                        "value": "DEFAULT",
                        "custom_value": ""
                      },
                      "p_called_party_id_display_name": {
                        "value": "DEFAULT",
                        "custom_value": ""
                      },
                      "p_called_party_id_user_part": {
                        "value": "DEFAULT",
                        "custom_value": ""
                      },
                      "p_called_party_id_host_part": {
                        "value": "DEFAULT",
                        "custom_value": ""
                      },
                      "privacy_types_supported": "DEFAULT"
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                        }
                      ],
                      "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 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"
                          },
                          "force_outbound_proxy": {
                            "type": "boolean",
                            "description": "Whether to force outbound traffic to be routed through the outbound proxy.",
                            "example": true
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "",
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": "xxxxxx",
                          "name": "example",
                          "enabled": true,
                          "brand": "Generic",
                          "auth_mode": "REGISTER_AUTH",
                          "transport": "UDP",
                          "hostname": "example",
                          "port": 1000,
                          "auth_id": "xxxxxx",
                          "username": "example",
                          "registration": false,
                          "register_interval": 600,
                          "outbound_server": "",
                          "outbound_server_port": 1000,
                          "inlan": false,
                          "single_via_header": true,
                          "rewrite_via_ip": false,
                          "verify_port": true,
                          "keep_alive": true,
                          "keep_alive_interval": 360,
                          "concurrency": 100,
                          "additional_ips": "",
                          "adjust_sdp_direction": false,
                          "remove_srtp_info": true,
                          "remove_plus_prefix": false,
                          "stir_shaken_signature_required": false,
                          "tel_uri_scheme_for_request_line": false,
                          "tel_uri_scheme_for_to_header": false,
                          "did_numbers": "1000-2000",
                          "inbound_parameters": {
                            "caller_num": "DEFAULT",
                            "caller_display_name": "DEFAULT",
                            "called_num": "DEFAULT",
                            "privacy_types_supported": "DEFAULT",
                            "enable_stir_shaken_validation": false,
                            "pai_header_parameter_name": "verstat",
                            "drop_calls_with_verification_status": [],
                            "pass_api_header_to_uad": false
                          },
                          "outbound_parameters": {
                            "request_line_uri_user_part": {
                              "value": "DEFAULT",
                              "custom_value": ""
                            },
                            "request_line_uri_host_part": {
                              "value": "DEFAULT",
                              "custom_value": ""
                            },
                            "contact_user_part": {
                              "value": "DEFAULT",
                              "custom_value": ""
                            },
                            "contact_host_part": {
                              "value": "DEFAULT",
                              "custom_value": ""
                            },
                            "to_display_name": {
                              "value": "DEFAULT",
                              "custom_value": ""
                            },
                            "to_user_part": {
                              "value": "DEFAULT",
                              "custom_value": ""
                            },
                            "to_host_part": {
                              "value": "DEFAULT",
                              "custom_value": ""
                            },
                            "from_display_name": {
                              "value": "DEFAULT",
                              "custom_value": ""
                            },
                            "from_user_part": {
                              "value": "OUTBOUND_CALLER_ID",
                              "custom_value": ""
                            },
                            "from_host_part": {
                              "value": "DEFAULT",
                              "custom_value": ""
                            },
                            "remote_party_id_called_party_display_name": {
                              "value": "DEFAULT",
                              "custom_value": ""
                            },
                            "remote_party_id_called_party_user_part": {
                              "value": "DEFAULT",
                              "custom_value": ""
                            },
                            "remote_party_id_called_party_host_part": {
                              "value": "DEFAULT",
                              "custom_value": ""
                            },
                            "remote_party_id_calling_party_display_name": {
                              "value": "DEFAULT",
                              "custom_value": ""
                            },
                            "remote_party_id_calling_party_user_part": {
                              "value": "DEFAULT",
                              "custom_value": ""
                            },
                            "remote_party_id_calling_party_host_part": {
                              "value": "DEFAULT",
                              "custom_value": ""
                            },
                            "p_asserted_identity_display_name": {
                              "value": "DEFAULT",
                              "custom_value": ""
                            },
                            "p_asserted_identity_user_part": {
                              "value": "DEFAULT",
                              "custom_value": ""
                            },
                            "p_asserted_identity_host_part": {
                              "value": "DEFAULT",
                              "custom_value": ""
                            },
                            "p_preferred_identify_display_name": {
                              "value": "DEFAULT",
                              "custom_value": ""
                            },
                            "p_preferred_identify_user_part": {
                              "value": "DEFAULT",
                              "custom_value": ""
                            },
                            "p_preferred_identify_host_part": {
                              "value": "DEFAULT",
                              "custom_value": ""
                            },
                            "p_called_party_id_display_name": {
                              "value": "DEFAULT",
                              "custom_value": ""
                            },
                            "p_called_party_id_user_part": {
                              "value": "DEFAULT",
                              "custom_value": ""
                            },
                            "p_called_party_id_host_part": {
                              "value": "DEFAULT",
                              "custom_value": ""
                            },
                            "privacy_types_supported": "DEFAULT"
                          },
                          "shared": false
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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 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 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"
                    },
                    "force_outbound_proxy": {
                      "type": "boolean",
                      "description": "Whether to force outbound traffic to be routed through the outbound proxy.",
                      "example": true
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "",
                    "value": {
                      "id": "xxxxxx",
                      "name": "example",
                      "enabled": true,
                      "brand": "Generic",
                      "auth_mode": "REGISTER_AUTH",
                      "transport": "UDP",
                      "hostname": "example",
                      "port": 1000,
                      "auth_id": "xxxxxx",
                      "username": "user",
                      "registration": false,
                      "register_interval": 600,
                      "outbound_server": "",
                      "outbound_server_port": 1000,
                      "inlan": false,
                      "single_via_header": true,
                      "rewrite_via_ip": false,
                      "verify_port": true,
                      "keep_alive": true,
                      "keep_alive_interval": 360,
                      "concurrency": 100,
                      "additional_ips": "",
                      "adjust_sdp_direction": false,
                      "remove_srtp_info": true,
                      "remove_plus_prefix": false,
                      "stir_shaken_signature_required": false,
                      "tel_uri_scheme_for_request_line": false,
                      "tel_uri_scheme_for_to_header": false,
                      "did_numbers": "1000-2000",
                      "inbound_parameters": {
                        "caller_num": "DEFAULT",
                        "caller_display_name": "DEFAULT",
                        "called_num": "DEFAULT",
                        "privacy_types_supported": "DEFAULT",
                        "enable_stir_shaken_validation": false,
                        "pai_header_parameter_name": "verstat",
                        "drop_calls_with_verification_status": [],
                        "pass_api_header_to_uad": false
                      },
                      "outbound_parameters": {
                        "request_line_uri_user_part": {
                          "value": "DEFAULT",
                          "custom_value": ""
                        },
                        "request_line_uri_host_part": {
                          "value": "DEFAULT",
                          "custom_value": ""
                        },
                        "contact_user_part": {
                          "value": "DEFAULT",
                          "custom_value": ""
                        },
                        "contact_host_part": {
                          "value": "DEFAULT",
                          "custom_value": ""
                        },
                        "to_display_name": {
                          "value": "DEFAULT",
                          "custom_value": ""
                        },
                        "to_user_part": {
                          "value": "DEFAULT",
                          "custom_value": ""
                        },
                        "to_host_part": {
                          "value": "DEFAULT",
                          "custom_value": ""
                        },
                        "from_display_name": {
                          "value": "DEFAULT",
                          "custom_value": ""
                        },
                        "from_user_part": {
                          "value": "OUTBOUND_CALLER_ID",
                          "custom_value": ""
                        },
                        "from_host_part": {
                          "value": "DEFAULT",
                          "custom_value": ""
                        },
                        "remote_party_id_called_party_display_name": {
                          "value": "DEFAULT",
                          "custom_value": ""
                        },
                        "remote_party_id_called_party_user_part": {
                          "value": "DEFAULT",
                          "custom_value": ""
                        },
                        "remote_party_id_called_party_host_part": {
                          "value": "DEFAULT",
                          "custom_value": ""
                        },
                        "remote_party_id_calling_party_display_name": {
                          "value": "DEFAULT",
                          "custom_value": ""
                        },
                        "remote_party_id_calling_party_user_part": {
                          "value": "DEFAULT",
                          "custom_value": ""
                        },
                        "remote_party_id_calling_party_host_part": {
                          "value": "DEFAULT",
                          "custom_value": ""
                        },
                        "p_asserted_identity_display_name": {
                          "value": "DEFAULT",
                          "custom_value": ""
                        },
                        "p_asserted_identity_user_part": {
                          "value": "DEFAULT",
                          "custom_value": ""
                        },
                        "p_asserted_identity_host_part": {
                          "value": "DEFAULT",
                          "custom_value": ""
                        },
                        "p_preferred_identify_display_name": {
                          "value": "DEFAULT",
                          "custom_value": ""
                        },
                        "p_preferred_identify_user_part": {
                          "value": "DEFAULT",
                          "custom_value": ""
                        },
                        "p_preferred_identify_host_part": {
                          "value": "DEFAULT",
                          "custom_value": ""
                        },
                        "p_called_party_id_display_name": {
                          "value": "DEFAULT",
                          "custom_value": ""
                        },
                        "p_called_party_id_user_part": {
                          "value": "DEFAULT",
                          "custom_value": ""
                        },
                        "p_called_party_id_host_part": {
                          "value": "DEFAULT",
                          "custom_value": ""
                        },
                        "privacy_types_supported": "DEFAULT"
                      },
                      "shared": false
                    }
                  }
                }
              }
            }
          },
          "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 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"
                      }
                    }
                  },
                  "force_outbound_proxy": {
                    "type": "boolean",
                    "description": "Whether to force outbound traffic to be routed through the outbound proxy.",
                    "example": true
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": "",
                  "value": {
                    "name": "example",
                    "enabled": true,
                    "transport": "UDP",
                    "hostname": "example",
                    "port": 1000,
                    "auth_id": "xxxxxx",
                    "username": "user",
                    "password": "xxxxxx",
                    "registration": false,
                    "register_interval": 600,
                    "outbound_server": "",
                    "outbound_server_port": 1000,
                    "inlan": false,
                    "single_via_header": true,
                    "rewrite_via_ip": false,
                    "verify_port": true,
                    "keep_alive": true,
                    "keep_alive_interval": 360,
                    "concurrency": 100,
                    "additional_ips": "",
                    "adjust_sdp_direction": false,
                    "remove_srtp_info": true,
                    "remove_plus_prefix": false,
                    "stir_shaken_signature_required": false,
                    "tel_uri_scheme_for_request_line": false,
                    "tel_uri_scheme_for_to_header": false,
                    "did_numbers": "1000-2000",
                    "inbound_parameters": {
                      "caller_num": "DEFAULT",
                      "caller_display_name": "DEFAULT",
                      "called_num": "DEFAULT",
                      "privacy_types_supported": "DEFAULT",
                      "enable_stir_shaken_validation": false,
                      "pai_header_parameter_name": "verstat",
                      "drop_calls_with_verification_status": [],
                      "pass_api_header_to_uad": false
                    },
                    "outbound_parameters": {
                      "request_line_uri_user_part": {
                        "value": "DEFAULT",
                        "custom_value": ""
                      },
                      "request_line_uri_host_part": {
                        "value": "DEFAULT",
                        "custom_value": ""
                      },
                      "contact_user_part": {
                        "value": "DEFAULT",
                        "custom_value": ""
                      },
                      "contact_host_part": {
                        "value": "DEFAULT",
                        "custom_value": ""
                      },
                      "to_display_name": {
                        "value": "DEFAULT",
                        "custom_value": ""
                      },
                      "to_user_part": {
                        "value": "DEFAULT",
                        "custom_value": ""
                      },
                      "to_host_part": {
                        "value": "DEFAULT",
                        "custom_value": ""
                      },
                      "from_display_name": {
                        "value": "DEFAULT",
                        "custom_value": ""
                      },
                      "from_user_part": {
                        "value": "OUTBOUND_CALLER_ID",
                        "custom_value": ""
                      },
                      "from_host_part": {
                        "value": "DEFAULT",
                        "custom_value": ""
                      },
                      "remote_party_id_called_party_display_name": {
                        "value": "DEFAULT",
                        "custom_value": ""
                      },
                      "remote_party_id_called_party_user_part": {
                        "value": "DEFAULT",
                        "custom_value": ""
                      },
                      "remote_party_id_called_party_host_part": {
                        "value": "DEFAULT",
                        "custom_value": ""
                      },
                      "remote_party_id_calling_party_display_name": {
                        "value": "DEFAULT",
                        "custom_value": ""
                      },
                      "remote_party_id_calling_party_user_part": {
                        "value": "DEFAULT",
                        "custom_value": ""
                      },
                      "remote_party_id_calling_party_host_part": {
                        "value": "DEFAULT",
                        "custom_value": ""
                      },
                      "p_asserted_identity_display_name": {
                        "value": "DEFAULT",
                        "custom_value": ""
                      },
                      "p_asserted_identity_user_part": {
                        "value": "DEFAULT",
                        "custom_value": ""
                      },
                      "p_asserted_identity_host_part": {
                        "value": "DEFAULT",
                        "custom_value": ""
                      },
                      "p_preferred_identify_display_name": {
                        "value": "DEFAULT",
                        "custom_value": ""
                      },
                      "p_preferred_identify_user_part": {
                        "value": "DEFAULT",
                        "custom_value": ""
                      },
                      "p_preferred_identify_host_part": {
                        "value": "DEFAULT",
                        "custom_value": ""
                      },
                      "p_called_party_id_display_name": {
                        "value": "DEFAULT",
                        "custom_value": ""
                      },
                      "p_called_party_id_user_part": {
                        "value": "DEFAULT",
                        "custom_value": ""
                      },
                      "p_called_party_id_host_part": {
                        "value": "DEFAULT",
                        "custom_value": ""
                      },
                      "privacy_types_supported": "DEFAULT"
                    }
                  }
                }
              }
            }
          }
        },
        "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 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": "",
                    "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 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 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 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": "",
                    "value": {
                      "items": [
                        {
                          "tenant_id": "xxxxxx",
                          "did_numbers": "1000-2000",
                          "concurrency": 100
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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 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 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": "",
                  "value": {
                    "did_numbers": "1000-2000",
                    "concurrency": 100
                  }
                }
              }
            }
          }
        },
        "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 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 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": "",
                    "value": {
                      "did_numbers": "1000-2000",
                      "concurrency": 100
                    }
                  }
                }
              }
            }
          },
          "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 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 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 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"
                        },
                        "display_name": {
                          "type": "string",
                          "maxLength": 32,
                          "description": "The display name of outbound caller id.\n"
                        }
                      }
                    },
                    "description": "A collection of outbound caller IDs.\n"
                  },
                  "enable_audio_recording": {
                    "type": "boolean",
                    "default": false,
                    "description": "Whether to enable audio recording.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": "",
                  "value": {
                    "name": "example",
                    "extension_number": "101",
                    "ring_time": 20,
                    "ring_strategy": "RING_SIMULTANEOUSLY",
                    "skip_busy_member": true,
                    "enable_paid": true,
                    "enable_prid": true,
                    "enable_night_mode": true,
                    "extension_number_as_to_header": false,
                    "no_answer_forward_rule": {
                      "action": "HANGUP"
                    },
                    "night_mode_forward_rule": {
                      "action": "HANGUP"
                    },
                    "outbound_caller_ids": [
                      {
                        "provider_id": "xxxxxx",
                        "caller_id": "1000",
                        "description": "example",
                        "display_name": "1000"
                      }
                    ],
                    "enable_audio_recording": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Created ring group",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                        }
                      ],
                      "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 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"
                              }
                            }
                          },
                          "enable_audio_recording": {
                            "type": "boolean",
                            "default": false,
                            "description": "Whether to enable audio recording.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "",
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": "xxxxxx",
                          "name": "example",
                          "extension_number": "101",
                          "ring_time": 20,
                          "ring_strategy": "RING_SIMULTANEOUSLY",
                          "skip_busy_member": true,
                          "enable_paid": true,
                          "enable_prid": true,
                          "enable_night_mode": false,
                          "extension_number_as_to_header": false,
                          "no_answer_forward_rule": {
                            "action": "HANGUP"
                          },
                          "night_mode_forward_rule": {
                            "action": "HANGUP"
                          },
                          "enable_audio_recording": false
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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 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 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 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"
                          },
                          "display_name": {
                            "type": "string",
                            "maxLength": 32,
                            "description": "The display name of outbound caller id.\n"
                          }
                        }
                      },
                      "description": "A collection of outbound caller IDs.\n"
                    },
                    "enable_audio_recording": {
                      "type": "boolean",
                      "default": false,
                      "description": "Whether to enable audio recording.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "",
                    "value": {
                      "id": "xxxxxx",
                      "name": "example",
                      "extension_number": "101",
                      "ring_time": 20,
                      "ring_strategy": "RING_SIMULTANEOUSLY",
                      "skip_busy_member": true,
                      "enable_paid": true,
                      "enable_prid": true,
                      "enable_night_mode": true,
                      "extension_number_as_to_header": false,
                      "no_answer_forward_rule": {
                        "action": "HANGUP"
                      },
                      "night_mode_forward_rule": {
                        "action": "HANGUP"
                      },
                      "outbound_caller_ids": [
                        {
                          "provider_id": "xxxxxx",
                          "caller_id": "1000",
                          "description": "example",
                          "display_name": "1000"
                        }
                      ],
                      "enable_audio_recording": false
                    }
                  }
                }
              }
            }
          },
          "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 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 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"
                        },
                        "display_name": {
                          "type": "string",
                          "maxLength": 32,
                          "description": "The display name of outbound caller id.\n"
                        }
                      }
                    },
                    "description": "A collection of outbound caller IDs.\n"
                  },
                  "enable_audio_recording": {
                    "type": "boolean",
                    "default": false,
                    "description": "Whether to enable audio recording.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": "",
                  "value": {
                    "name": "example",
                    "ring_time": 20,
                    "ring_strategy": "RING_SIMULTANEOUSLY",
                    "skip_busy_member": true,
                    "enable_paid": true,
                    "enable_prid": true,
                    "enable_night_mode": true,
                    "extension_number_as_to_header": false,
                    "no_answer_forward_rule": {
                      "action": "HANGUP"
                    },
                    "night_mode_forward_rule": {
                      "action": "HANGUP"
                    },
                    "outbound_caller_ids": [
                      {
                        "provider_id": "xxxxxx",
                        "caller_id": "1000",
                        "description": "example",
                        "display_name": "1000"
                      }
                    ],
                    "enable_audio_recording": false
                  }
                }
              }
            }
          }
        },
        "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 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",
                                "minLength": 1,
                                "maxLength": 128,
                                "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": "",
                    "value": {
                      "items": [
                        {
                          "extension_number": "101",
                          "display_name": "example",
                          "skill_level": 1
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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 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",
                              "minLength": 1,
                              "maxLength": 128,
                              "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": "",
                  "value": {
                    "items": [
                      {
                        "extension_number": "101",
                        "skill_level": 1
                      }
                    ]
                  }
                }
              }
            }
          }
        },
        "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 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",
                          "minLength": 1,
                          "maxLength": 128,
                          "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": "",
                    "value": {
                      "extension_number": "101",
                      "display_name": "example",
                      "skill_level": 1
                    }
                  }
                }
              }
            }
          },
          "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 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": "",
                  "value": {
                    "name": "example",
                    "extension_number": "101",
                    "prompt": "",
                    "enable_pin": true,
                    "pin": "",
                    "enable_email_notify": true,
                    "recipients": "",
                    "play_datetime": "DISABLE"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                        }
                      ],
                      "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 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": "",
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": "xxxxxx",
                          "name": "example",
                          "extension_number": "101",
                          "prompt": "",
                          "enable_pin": true,
                          "pin": "",
                          "enable_email_notify": false,
                          "recipients": "",
                          "play_datetime": "DISABLE"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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 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 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": "",
                    "value": {
                      "id": "xxxxxx",
                      "name": "example",
                      "extension_number": "101",
                      "prompt": "",
                      "enable_pin": true,
                      "pin": "",
                      "enable_email_notify": true,
                      "recipients": "",
                      "play_datetime": "DISABLE"
                    }
                  }
                }
              }
            }
          },
          "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 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": "",
                  "value": {
                    "name": "example",
                    "prompt": "",
                    "enable_pin": true,
                    "pin": "",
                    "enable_email_notify": true,
                    "recipients": "",
                    "play_datetime": "DISABLE"
                  }
                }
              }
            }
          }
        },
        "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 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 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 voicemail.\n"
                          },
                          "sender": {
                            "deprecated": true,
                            "type": "string",
                            "description": "The formated sender of the voicemail.\n"
                          },
                          "sender_name": {
                            "type": "string",
                            "description": "The sender name of the voicemail.\n"
                          },
                          "sender_number": {
                            "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": "",
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": "xxxxxx",
                          "sender": "test [ 101 ]",
                          "sender_name": "test",
                          "sender_number": "101",
                          "created_at": "2020-01-01T00:00:00Z",
                          "duration": 60,
                          "status": "UNREAD",
                          "file_name": "example",
                          "file_size": 100,
                          "file_url": ""
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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 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 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 voicemail.\n"
                    },
                    "sender": {
                      "deprecated": true,
                      "type": "string",
                      "description": "The formated sender of the voicemail.\n"
                    },
                    "sender_name": {
                      "type": "string",
                      "description": "The sender name of the voicemail.\n"
                    },
                    "sender_number": {
                      "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": "",
                    "value": {
                      "id": "xxxxxx",
                      "sender": "test [ 101 ]",
                      "sender_name": "test",
                      "sender_number": "101",
                      "created_at": "2020-01-01T00:00:00Z",
                      "duration": 3,
                      "status": "UNREAD",
                      "file_name": "example",
                      "file_size": 100,
                      "file_url": ""
                    }
                  }
                }
              }
            }
          },
          "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 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 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 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 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 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 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 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 file.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": "",
                  "value": {
                    "file_id": "xxxxxx"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                        }
                      ],
                      "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 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 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": "",
                    "value": {
                      "items": [
                        {
                          "id": "xxxxxx",
                          "enabled": true,
                          "file_name": "example",
                          "file_size": 100,
                          "file_url": ""
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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 shared voicemail.\n"
            }
          },
          {
            "name": "greeting_id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                }
              ],
              "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 shared voicemail.\n"
            }
          },
          {
            "name": "greeting_id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                }
              ],
              "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 shared voicemail.\n"
            }
          },
          {
            "name": "greeting_id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                }
              ],
              "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": {
                "allOf": [
                  {
                    "type": "object",
                    "properties": {
                      "id": {
                        "allOf": [
                          {
                            "type": "string",
                            "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                          }
                        ],
                        "description": "The unique ID of holiday.\n",
                        "readOnly": true
                      },
                      "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"
                      },
                      "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"
                      }
                    }
                  }
                ],
                "required": [
                  "name",
                  "region",
                  "consecutive",
                  "every_year"
                ]
              },
              "examples": {
                "default": {
                  "summary": "",
                  "value": {
                    "name": "example",
                    "region": "",
                    "consecutive": false,
                    "every_year": true,
                    "year_start": 0,
                    "year_end": 0,
                    "month_start": 6,
                    "month_end": 6,
                    "day_start": 1,
                    "day_end": 1,
                    "hour_start": 0,
                    "hour_end": 23,
                    "minute_start": 0,
                    "minute_end": 59
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                        }
                      ],
                      "description": "The unique ID of holiday."
                    }
                  }
                },
                "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 holiday.\n",
                            "readOnly": true
                          },
                          "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"
                          },
                          "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"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "",
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": "xxxxxx",
                          "name": "example",
                          "region": "",
                          "consecutive": false,
                          "every_year": true,
                          "year_start": 0,
                          "year_end": 0,
                          "month_start": 6,
                          "month_end": 6,
                          "day_start": 1,
                          "day_end": 1,
                          "hour_start": 0,
                          "hour_end": 23,
                          "minute_start": 0,
                          "minute_end": 59
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/holidays/{id}": {
      "get": {
        "tags": [
          "Tenant"
        ],
        "operationId": "getHoliday",
        "x-category": "tenants",
        "x-subcategory": "tenants",
        "x-permissions": [
          "Company.ViewOnly"
        ],
        "summary": "Retrieve a holiday",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
            },
            "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 holiday.\n",
                      "readOnly": true
                    },
                    "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"
                    },
                    "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"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "",
                    "value": {
                      "id": "xxxxxx",
                      "name": "example",
                      "region": "",
                      "consecutive": false,
                      "every_year": true,
                      "year_start": 0,
                      "year_end": 0,
                      "month_start": 6,
                      "month_end": 6,
                      "day_start": 1,
                      "day_end": 1,
                      "hour_start": 0,
                      "hour_end": 23,
                      "minute_start": 0,
                      "minute_end": 59
                    }
                  }
                }
              }
            }
          },
          "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": {
              "type": "string",
              "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
            },
            "description": "The unique ID of the holiday."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "allOf": [
                      {
                        "type": "string",
                        "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                      }
                    ],
                    "description": "The unique ID of holiday.\n",
                    "readOnly": true
                  },
                  "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"
                  },
                  "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"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": "",
                  "value": {
                    "name": "example",
                    "region": "",
                    "consecutive": false,
                    "every_year": true,
                    "year_start": 0,
                    "year_end": 0,
                    "month_start": 6,
                    "month_end": 6,
                    "day_start": 1,
                    "day_end": 1,
                    "hour_start": 0,
                    "hour_end": 23,
                    "minute_start": 0,
                    "minute_end": 59
                  }
                }
              }
            }
          }
        },
        "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": {
              "type": "string",
              "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
            },
            "description": "The unique ID of 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": "",
                    "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": "",
                  "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": "",
                  "value": {
                    "number_prefix": "example",
                    "description": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                    }
                  }
                },
                "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 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": "",
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": "xxxxxx",
                          "number_prefix": "example",
                          "description": ""
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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 blocked code."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                        }
                      ],
                      "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": "",
                    "value": {
                      "id": "xxxxxx",
                      "number_prefix": "example",
                      "description": ""
                    }
                  }
                }
              }
            }
          },
          "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 code."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "allOf": [
                      {
                        "type": "string",
                        "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                      }
                    ],
                    "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": "",
                  "value": {
                    "number_prefix": "example",
                    "description": ""
                  }
                }
              }
            }
          }
        },
        "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 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": "",
                  "value": {
                    "number": "000000",
                    "expire_at": "2020-01-01T00:00:00Z",
                    "description": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                        }
                      ],
                      "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 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": "",
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": "xxxxxx",
                          "number": "000000",
                          "expire_at": "2020-01-01T00:00:00Z",
                          "created_at": "2020-01-01T00:00:00Z",
                          "updated_at": "2020-01-01T00:00:00Z",
                          "description": ""
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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 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 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": "",
                    "value": {
                      "id": "xxxxxx",
                      "number": "000000",
                      "expire_at": "2020-01-01T00:00:00Z",
                      "created_at": "2020-01-01T00:00:00Z",
                      "updated_at": "2020-01-01T00:00:00Z",
                      "description": ""
                    }
                  }
                }
              }
            }
          },
          "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 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": "",
                  "value": {
                    "number": "000000",
                    "expire_at": "2020-01-01T00:00:00Z",
                    "description": ""
                  }
                }
              }
            }
          },
          "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 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": "",
                  "value": {
                    "prefix": "example",
                    "type": "LOCAL",
                    "free_seconds": 0,
                    "grace_period": 0,
                    "interval_1": 1,
                    "interval_n": 1,
                    "connect_fee": 1,
                    "postcall_surcharge": 0,
                    "price_1": 0,
                    "price_n": 0,
                    "description": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                        }
                      ],
                      "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 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": "",
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": "xxxxxx",
                          "prefix": "example",
                          "type": "LOCAL",
                          "free_seconds": 0,
                          "grace_period": 0,
                          "interval_1": 1,
                          "interval_n": 1,
                          "postcall_surcharge": 0,
                          "price_1": 0,
                          "price_n": 0,
                          "description": ""
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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 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 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": "",
                    "value": {
                      "id": "xxxxxx",
                      "prefix": "example",
                      "type": "LOCAL",
                      "free_seconds": 0,
                      "grace_period": 0,
                      "interval_1": 1,
                      "interval_n": 1,
                      "connect_fee": 1,
                      "postcall_surcharge": 0,
                      "price_1": 0,
                      "price_n": 0,
                      "description": ""
                    }
                  }
                }
              }
            }
          },
          "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 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": "",
                  "value": {
                    "prefix": "example",
                    "type": "LOCAL",
                    "free_seconds": 0,
                    "grace_period": 0,
                    "interval_1": 1,
                    "interval_n": 1,
                    "connect_fee": 1,
                    "postcall_surcharge": 0,
                    "price_1": 0,
                    "price_n": 0,
                    "description": ""
                  }
                }
              }
            }
          }
        },
        "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 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": "",
                  "value": {
                    "name": "example",
                    "enabled": true,
                    "ipv4": "127.0.0.1",
                    "ipv6": "2001:0db8:0a0b:12f0::1"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                        }
                      ],
                      "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 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": "",
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": "xxxxxx",
                          "name": "example",
                          "enabled": true,
                          "type": "INTERNAL",
                          "ipv4": "127.0.0.1",
                          "ipv6": "2001:0db8:0a0b:12f0::1"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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 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 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": "",
                    "value": {
                      "id": "xxxxxx",
                      "name": "example",
                      "enabled": true,
                      "ipv4": "127.0.0.1",
                      "ipv6": "2001:0db8:0a0b:12f0::1",
                      "type": "INTERNAL"
                    }
                  }
                }
              }
            }
          },
          "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 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": "",
                  "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 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": "",
                    "value": {
                      "cpu_usage": 80,
                      "memory_usage": 80,
                      "status": "ONLINE"
                    }
                  }
                }
              }
            }
          },
          "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 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 file.\n"
                  },
                  "transfer_prompt_file_id": {
                    "allOf": [
                      {
                        "type": "string",
                        "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                      }
                    ],
                    "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 holiday."
                          },
                          "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 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"
                        },
                        "display_name": {
                          "type": "string",
                          "maxLength": 32,
                          "description": "The display name of outbound caller id.\n"
                        }
                      }
                    },
                    "description": "A collection of outbound caller IDs.\n"
                  },
                  "enable_audio_recording": {
                    "type": "boolean",
                    "default": false,
                    "description": "Whether to enable audio recording.\n"
                  }
                },
                "required": [
                  "name",
                  "extension_number",
                  "pin"
                ]
              },
              "examples": {
                "default": {
                  "summary": "",
                  "value": {
                    "name": "example",
                    "extension_number": "101",
                    "language": "en-US",
                    "dtmf_interval": 2,
                    "prompt_file_id": "xxxxxx",
                    "transfer_prompt_file_id": "xxxxxx",
                    "enable_pin": true,
                    "pin": "",
                    "enable_night_mode": true,
                    "exclude_list": "",
                    "timeout_forward_rule": {
                      "action": "HANGUP"
                    },
                    "failure_forward_rule": {
                      "action": "HANGUP"
                    },
                    "night_mode_forward_rule": {
                      "action": "HANGUP"
                    },
                    "custom_forward_rules": [],
                    "outbound_caller_ids": [
                      {
                        "provider_id": "xxxxxx",
                        "caller_id": "1000",
                        "description": "example",
                        "display_name": "1000"
                      }
                    ],
                    "enable_audio_recording": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                        }
                      ],
                      "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 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"
                          },
                          "enable_night_mode": {
                            "type": "boolean",
                            "default": false,
                            "description": "Whether to enable night mode.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "",
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": "xxxxxx",
                          "name": "example",
                          "extension_number": "101"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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 virtual receptionist."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                        }
                      ],
                      "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 holiday.\n",
                                  "readOnly": true
                                },
                                "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"
                                },
                                "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"
                                }
                              }
                            }
                          },
                          "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 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"
                          },
                          "display_name": {
                            "type": "string",
                            "maxLength": 32,
                            "description": "The display name of outbound caller id.\n"
                          }
                        }
                      },
                      "description": "A collection of outbound caller IDs.\n"
                    },
                    "enable_audio_recording": {
                      "type": "boolean",
                      "default": false,
                      "description": "Whether to enable audio recording.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "",
                    "value": {
                      "id": "xxxxxx",
                      "name": "example",
                      "extension_number": "101",
                      "language": "en-US",
                      "dtmf_interval": 2,
                      "prompt_file_name": "example",
                      "prompt_file_size": 100,
                      "prompt_file_url": "",
                      "transfer_prompt_file_name": "example",
                      "transfer_prompt_file_size": 100,
                      "transfer_prompt_file_url": "",
                      "enable_pin": true,
                      "pin": "",
                      "enable_night_mode": true,
                      "exclude_list": "",
                      "timeout_forward_rule": {
                        "action": "HANGUP"
                      },
                      "failure_forward_rule": {
                        "action": "HANGUP"
                      },
                      "night_mode_forward_rule": {
                        "action": "HANGUP"
                      },
                      "custom_forward_rules": [],
                      "outbound_caller_ids": [
                        {
                          "provider_id": "xxxxxx",
                          "caller_id": "1000",
                          "description": "example",
                          "display_name": "1000"
                        }
                      ],
                      "enable_audio_recording": false
                    }
                  }
                }
              }
            }
          },
          "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 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 file.\n"
                  },
                  "transfer_prompt_file_id": {
                    "allOf": [
                      {
                        "type": "string",
                        "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                      }
                    ],
                    "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 holiday."
                          },
                          "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 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"
                        },
                        "display_name": {
                          "type": "string",
                          "maxLength": 32,
                          "description": "The display name of outbound caller id.\n"
                        }
                      }
                    },
                    "description": "A collection of outbound caller IDs.\n"
                  },
                  "enable_audio_recording": {
                    "type": "boolean",
                    "default": false,
                    "description": "Whether to enable audio recording.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": "",
                  "value": {
                    "name": "example",
                    "language": "en-US",
                    "dtmf_interval": 2,
                    "prompt_file_id": "xxxxxx",
                    "transfer_prompt_file_id": "xxxxxx",
                    "enable_pin": true,
                    "pin": "",
                    "enable_night_mode": true,
                    "exclude_list": "",
                    "timeout_forward_rule": {
                      "action": "HANGUP"
                    },
                    "failure_forward_rule": {
                      "action": "HANGUP"
                    },
                    "night_mode_forward_rule": {
                      "action": "HANGUP"
                    },
                    "custom_forward_rules": [],
                    "outbound_caller_ids": [
                      {
                        "provider_id": "xxxxxx",
                        "caller_id": "1000",
                        "description": "example",
                        "display_name": "1000"
                      }
                    ],
                    "enable_audio_recording": false
                  }
                }
              }
            }
          }
        },
        "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 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": "",
                    "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 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 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",
                    "maxLength": 64,
                    "description": "The username for authentication, when auth is `BASIC` or `DIGEST`.\n"
                  },
                  "password": {
                    "type": "string",
                    "maxLength": 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": "",
                  "value": {
                    "name": "example",
                    "enabled": true,
                    "type": "DTMF",
                    "method": "GET",
                    "headers": "",
                    "caller_mask": "",
                    "dtmf_mask": "",
                    "connection_timeout": 3,
                    "request_timeout": 3,
                    "url": "https://example.com",
                    "auth": "BASIC",
                    "username": "user",
                    "password": "xxxxxx",
                    "token": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                        }
                      ],
                      "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 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 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",
                            "maxLength": 64,
                            "description": "The username for authentication, when auth is `BASIC` or `DIGEST`.\n"
                          },
                          "password": {
                            "type": "string",
                            "maxLength": 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": "",
                    "value": {
                      "items": [
                        {
                          "id": "xxxxxx",
                          "name": "example",
                          "enabled": true,
                          "type": "DTMF",
                          "method": "GET",
                          "headers": "",
                          "caller_mask": "",
                          "dtmf_mask": "",
                          "connection_timeout": 3,
                          "request_timeout": 3,
                          "url": "https://example.com",
                          "auth": "BASIC",
                          "username": "username",
                          "password": "xxxxxx",
                          "token": ""
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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 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 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 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",
                      "maxLength": 64,
                      "description": "The username for authentication, when auth is `BASIC` or `DIGEST`.\n"
                    },
                    "password": {
                      "type": "string",
                      "maxLength": 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": "",
                    "value": {
                      "id": "xxxxxx",
                      "name": "example",
                      "enabled": true,
                      "type": "DTMF",
                      "method": "GET",
                      "headers": "",
                      "caller_mask": "",
                      "dtmf_mask": "",
                      "connection_timeout": 3,
                      "request_timeout": 3,
                      "url": "https://example.com",
                      "auth": "BASIC",
                      "username": "user",
                      "password": "xxxxxx",
                      "token": ""
                    }
                  }
                }
              }
            }
          },
          "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 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 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",
                    "maxLength": 64,
                    "description": "The username for authentication, when auth is `BASIC` or `DIGEST`.\n"
                  },
                  "password": {
                    "type": "string",
                    "maxLength": 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": "",
                  "value": {
                    "name": "example",
                    "enabled": true,
                    "type": "DTMF",
                    "method": "GET",
                    "headers": "",
                    "caller_mask": "",
                    "dtmf_mask": "",
                    "connection_timeout": 3,
                    "request_timeout": 3,
                    "url": "https://example.com",
                    "auth": "BASIC",
                    "username": "user",
                    "password": "xxxxxx",
                    "token": ""
                  }
                }
              }
            }
          }
        },
        "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 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 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"
                  },
                  "provisioning_pin": {
                    "type": "string",
                    "description": "The provisioning PIN for auto-provisioning authentication. This PIN is used to verify the phone during auto-provisioning download.\nIt follows the same validation rules as the extension user's VOICEMAIL PIN. Can be empty, but if verification is enabled and this is empty, authentication will fail.\n"
                  },
                  "display_name": {
                    "type": "string",
                    "maxLength": 128,
                    "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",
                    "description": "Language for strings displayed on Phone Display LCD.\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": "",
                  "value": {
                    "extension_number": "101",
                    "extension_password": "xxxxxx",
                    "provisioning_pin": "123456",
                    "display_name": "example",
                    "mac": "00:1A:2B:3C:4D:5E",
                    "filename": "example",
                    "vendor": "",
                    "model": "",
                    "password": "xxxxxx",
                    "language": "ENGLISH",
                    "transfer": "BLIND",
                    "timezone": "",
                    "ringtone": "",
                    "queue_ringtone": "",
                    "external_ringtone": "",
                    "date_format": "",
                    "time_format": "",
                    "powerled": "",
                    "backlight": "",
                    "screensaver": "",
                    "rps": false,
                    "https": false,
                    "codecs": [
                      "PCMU",
                      "PCMA",
                      "G729",
                      "G722"
                    ],
                    "enable_lldp": true,
                    "enable_vlan_wan_port": true,
                    "wan_port_id": 1000,
                    "wan_port_priority": 1,
                    "enable_vlan_pc_port": true,
                    "pc_port_id": 1000,
                    "pc_port_priority": 1,
                    "interface": "WEB_DOMAIN",
                    "preferred_transport": "UDP",
                    "serial_number": "000000"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                        }
                      ],
                      "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 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"
                          },
                          "provisioning_pin": {
                            "type": "string",
                            "description": "The provisioning PIN for auto-provisioning authentication. This PIN is used to verify the phone during auto-provisioning download.\nIt follows the same validation rules as the extension user's VOICEMAIL PIN. Can be empty, but if verification is enabled and this is empty, authentication will fail.\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": 128,
                            "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",
                            "description": "Language for strings displayed on Phone Display LCD.\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": "",
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": "xxxxxx"
                        },
                        {
                          "extension_number": "101"
                        },
                        {
                          "provisioning_pin": "123456"
                        },
                        {
                          "current_extension_number": "101"
                        },
                        {
                          "display_name": "example"
                        },
                        {
                          "mac": "00:1A:2B:3C:4D:5E"
                        },
                        {
                          "filename": "example"
                        },
                        {
                          "vendor": ""
                        },
                        {
                          "model": ""
                        },
                        {
                          "password": "xxxxxx"
                        },
                        {
                          "language": "en-US"
                        },
                        {
                          "transfer": "BLIND"
                        },
                        {
                          "timezone": ""
                        },
                        {
                          "ringtone": ""
                        },
                        {
                          "queue_ringtone": ""
                        },
                        {
                          "external_ringtone": ""
                        },
                        {
                          "date_format": ""
                        },
                        {
                          "time_format": ""
                        },
                        {
                          "powerled": ""
                        },
                        {
                          "backlight": ""
                        },
                        {
                          "screensaver": ""
                        },
                        {
                          "rps": false
                        },
                        {
                          "https": false
                        },
                        {
                          "codecs": [
                            "PCMU",
                            "PCMA",
                            "G729",
                            "G722"
                          ]
                        },
                        {
                          "enable_lldp": true
                        },
                        {
                          "enable_vlan_wan_port": true
                        },
                        {
                          "wan_port_id": 1000
                        },
                        {
                          "wan_port_priority": 1
                        },
                        {
                          "enable_vlan_pc_port": true
                        },
                        {
                          "pc_port_id": 1000
                        },
                        {
                          "pc_port_priority": 1
                        },
                        {
                          "interface": "WEB_DOMAIN"
                        },
                        {
                          "preferred_transport": "UDP"
                        },
                        {
                          "serial_number": "000000"
                        },
                        {
                          "url": "https://example.com"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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 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 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"
                    },
                    "provisioning_pin": {
                      "type": "string",
                      "description": "The provisioning PIN for auto-provisioning authentication. This PIN is used to verify the phone during auto-provisioning download.\nIt follows the same validation rules as the extension user's VOICEMAIL PIN. Can be empty, but if verification is enabled and this is empty, authentication will fail.\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": 128,
                      "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",
                      "description": "Language for strings displayed on Phone Display LCD.\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": "",
                    "value": {
                      "id": "xxxxxx",
                      "extension_number": "101",
                      "provisioning_pin": "123456",
                      "current_extension_number": "101",
                      "display_name": "example",
                      "mac": "00:1A:2B:3C:4D:5E",
                      "filename": "example",
                      "vendor": "",
                      "model": "",
                      "password": "xxxxxx",
                      "language": "en-US",
                      "transfer": "BLIND",
                      "timezone": "",
                      "ringtone": "",
                      "queue_ringtone": "",
                      "external_ringtone": "",
                      "date_format": "",
                      "time_format": "",
                      "powerled": "",
                      "backlight": "",
                      "screensaver": "",
                      "rps": false,
                      "https": false,
                      "codecs": [
                        "PCMU",
                        "PCMA",
                        "G729",
                        "G722"
                      ],
                      "enable_lldp": true,
                      "enable_vlan_wan_port": true,
                      "wan_port_id": 1000,
                      "wan_port_priority": 1,
                      "enable_vlan_pc_port": true,
                      "pc_port_id": 1000,
                      "pc_port_priority": 1,
                      "interface": "WEB_DOMAIN",
                      "preferred_transport": "UDP",
                      "serial_number": "000000",
                      "url": "https://example.com"
                    }
                  }
                }
              }
            }
          },
          "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 hot desking.\n"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "display_name": {
                    "type": "string",
                    "maxLength": 128,
                    "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",
                    "description": "Language for strings displayed on Phone Display LCD.\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"
                  },
                  "provisioning_pin": {
                    "type": "string",
                    "description": "The provisioning PIN for auto-provisioning authentication. This PIN is used to verify the phone during auto-provisioning download.\nIt follows the same validation rules as the extension user's VOICEMAIL PIN. Can be empty, but if verification is enabled and this is empty, authentication will fail.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": "",
                  "value": {
                    "display_name": "example",
                    "password": "xxxxxx",
                    "language": "English",
                    "transfer": "BLIND",
                    "timezone": "",
                    "ringtone": "",
                    "queue_ringtone": "",
                    "external_ringtone": "",
                    "date_format": "",
                    "time_format": "",
                    "powerled": "",
                    "backlight": "",
                    "screensaver": "",
                    "rps": false,
                    "https": false,
                    "codecs": [
                      "PCMU",
                      "PCMA",
                      "G729",
                      "G722"
                    ],
                    "enable_lldp": true,
                    "enable_vlan_wan_port": true,
                    "wan_port_id": 1000,
                    "wan_port_priority": 1,
                    "enable_vlan_pc_port": true,
                    "pc_port_id": 1000,
                    "pc_port_priority": 1,
                    "interface": "WEB_DOMAIN",
                    "preferred_transport": "UDP",
                    "serial_number": "000000",
                    "provisioning_pin": "123456"
                  }
                }
              }
            }
          }
        },
        "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 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": "",
                    "value": {
                      "status": "ONLINE",
                      "current_extension_number": "101"
                    }
                  }
                }
              }
            }
          },
          "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 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 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 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"
                  },
                  "channel_type": {
                    "type": "string",
                    "enum": [
                      "SMS",
                      "MMS"
                    ],
                    "default": "SMS",
                    "description": "The channel type of SMS Trunk.  \nCan be either:  \n- `SMS` Only text messages are allowed.\n- `MMS`: Multimedia messages are allowed.\n"
                  }
                },
                "required": [
                  "name",
                  "provider_id",
                  "credentials"
                ]
              },
              "examples": {
                "default": {
                  "summary": "",
                  "value": {
                    "name": "example",
                    "enabled": true,
                    "provider_id": "xxxxxx",
                    "sender_id": "",
                    "credentials": "",
                    "channel_type": "SMS"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                        }
                      ],
                      "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 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 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"
                          },
                          "channel_type": {
                            "type": "string",
                            "enum": [
                              "SMS",
                              "MMS"
                            ],
                            "default": "SMS",
                            "description": "The channel type of SMS Trunk.  \nCan be either:  \n- `SMS` Only text messages are allowed.\n- `MMS`: Multimedia messages are allowed.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "",
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": "xxxxxx",
                          "name": "example",
                          "enabled": true,
                          "sender_id": "",
                          "provider_id": "xxxxxx",
                          "provider_name": "example",
                          "provider_brand": "Generic",
                          "provider_hostname": "example",
                          "webhook": "https://example.com",
                          "channel_type": "SMS"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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 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 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 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"
                    },
                    "channel_type": {
                      "type": "string",
                      "enum": [
                        "SMS",
                        "MMS"
                      ],
                      "default": "SMS",
                      "description": "The channel type of SMS Trunk.  \nCan be either:  \n- `SMS` Only text messages are allowed.\n- `MMS`: Multimedia messages are allowed.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "",
                    "value": {
                      "id": "xxxxxx",
                      "name": "example",
                      "enabled": true,
                      "sender_id": "",
                      "provider_id": "xxxxxx",
                      "provider_name": "example",
                      "provider_brand": "Generic",
                      "provider_hostname": "example",
                      "webhook": "https://example.com",
                      "channel_type": "SMS"
                    }
                  }
                }
              }
            }
          },
          "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 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"
                  },
                  "channel_type": {
                    "type": "string",
                    "enum": [
                      "SMS",
                      "MMS"
                    ],
                    "default": "SMS",
                    "description": "The channel type of SMS Trunk.  \nCan be either:  \n- `SMS` Only text messages are allowed.\n- `MMS`: Multimedia messages are allowed.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": "",
                  "value": {
                    "name": "example",
                    "enabled": true,
                    "sender_id": "",
                    "credentials": "",
                    "channel_type": "SMS"
                  }
                }
              }
            }
          }
        },
        "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 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 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"
                  },
                  "business_account_id": {
                    "type": "string",
                    "description": "The business account id of WhatsApp service.\n"
                  }
                },
                "required": [
                  "name",
                  "provider_id",
                  "phone_number_id",
                  "token"
                ]
              },
              "examples": {
                "default": {
                  "summary": "",
                  "value": {
                    "name": "example",
                    "enabled": true,
                    "provider_id": "xxxxxx",
                    "phone_number": "000000",
                    "phone_number_id": "",
                    "token": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                        }
                      ],
                      "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 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 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"
                          },
                          "business_account_id": {
                            "type": "string",
                            "description": "The business account id of WhatsApp service.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "",
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": "xxxxxx",
                          "name": "example",
                          "enabled": true,
                          "phone_number": "",
                          "phone_number_id": "xxxxxx",
                          "provider_id": "xxxxxx",
                          "provider_name": "example",
                          "provider_brand": "Generic",
                          "provider_hostname": "example",
                          "webhook": "https://example.com"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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 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 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 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"
                    },
                    "business_account_id": {
                      "type": "string",
                      "description": "The business account id of WhatsApp service.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "",
                    "value": {
                      "id": "xxxxxx",
                      "name": "example",
                      "enabled": true,
                      "phone_number": "000000",
                      "phone_number_id": "",
                      "provider_id": "xxxxxx",
                      "provider_name": "example",
                      "provider_brand": "Generic",
                      "provider_hostname": "example",
                      "webhook": "https://example.com"
                    }
                  }
                }
              }
            }
          },
          "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 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"
                  },
                  "business_account_id": {
                    "type": "string",
                    "description": "The business account id of WhatsApp service.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": "",
                  "value": {
                    "name": "example",
                    "enabled": true,
                    "phone_number": "000000",
                    "phone_number_id": "",
                    "token": ""
                  }
                }
              }
            }
          }
        },
        "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 WhatsApp service.\n"
            },
            "description": "The unique ID of the WhatsApp service."
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Error"
          }
        }
      }
    },
    "/whatsapp/{id}/templates": {
      "get": {
        "tags": [
          "WhatsApp"
        ],
        "operationId": "listWhatsAppTemplates",
        "x-category": "call-features",
        "x-subcategory": "whatsapp",
        "x-permissions": [
          "Trunk.ViewOnly"
        ],
        "summary": "List WhatsApp templates services.",
        "description": "List WhatsApp templates services.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The WhatsApp ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "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",
                            "description": "Unique identifier of the WhatsApp template.  \nThis ID is provided by the WhatsApp integration and is used to associate\nresources with a specific WhatsApp account.\n",
                            "example": "1086170927600762880"
                          },
                          "name": {
                            "type": "string",
                            "description": "The name of WhatsApp template.\n"
                          },
                          "language": {
                            "type": "string",
                            "description": "The language of WhatsApp template.\n"
                          },
                          "category": {
                            "type": "string",
                            "enum": [
                              "AUTHENTICATION",
                              "MARKETING",
                              "UTILITY"
                            ],
                            "description": "The category of WhatsApp template.\n"
                          },
                          "parameter_format": {
                            "type": "string",
                            "enum": [
                              "NAMED",
                              "POSITIONAL"
                            ],
                            "description": "The parameter format of WhatsApp template.\n"
                          },
                          "components": {
                            "type": "string",
                            "description": "The components of WhatsApp template.\n"
                          },
                          "status": {
                            "type": "string",
                            "enum": [
                              "APPROVED",
                              "PENDING",
                              "REJECTED"
                            ],
                            "description": "The status of WhatsApp template.\n"
                          },
                          "created_at": {
                            "type": "string",
                            "format": "date-time",
                            "description": "The creation time of WhatsApp template.\n"
                          },
                          "updated_at": {
                            "type": "string",
                            "format": "date-time",
                            "description": "The last update time of WhatsApp template.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "WhatsApp Template Example",
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": "xxxxxx",
                          "name": "example",
                          "language": "en_US",
                          "category": "MARKETING",
                          "parameter_format": "NAMED",
                          "components": "",
                          "status": "APPROVED",
                          "created_at": "2020-01-01T00:00:00Z",
                          "updated_at": "2020-01-01T00:00:00Z"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/whatsapp/{id}/templates/{template_id}": {
      "get": {
        "tags": [
          "WhatsApp"
        ],
        "operationId": "WhatsAppTemplatesInfo",
        "x-category": "call-features",
        "x-subcategory": "whatsapp",
        "x-permissions": [
          "Trunk.ViewOnly"
        ],
        "summary": "WhatsApp templates Info services.",
        "description": "WhatsApp templates Info services.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The WhatsApp ID.",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                }
              ],
              "description": "The unique ID of WhatsApp service.\n"
            }
          },
          {
            "name": "template_id",
            "in": "path",
            "description": "The WhatsApp template ID.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the WhatsApp template.  \nThis ID is provided by the WhatsApp integration and is used to associate\nresources with a specific WhatsApp account.\n",
              "example": "1086170927600762880"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "description": "Unique identifier of the WhatsApp template.  \nThis ID is provided by the WhatsApp integration and is used to associate\nresources with a specific WhatsApp account.\n",
                      "example": "1086170927600762880"
                    },
                    "name": {
                      "type": "string",
                      "description": "The name of WhatsApp template.\n"
                    },
                    "language": {
                      "type": "string",
                      "description": "The language of WhatsApp template.\n"
                    },
                    "category": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION",
                        "MARKETING",
                        "UTILITY"
                      ],
                      "description": "The category of WhatsApp template.\n"
                    },
                    "parameter_format": {
                      "type": "string",
                      "enum": [
                        "NAMED",
                        "POSITIONAL"
                      ],
                      "description": "The parameter format of WhatsApp template.\n"
                    },
                    "components": {
                      "type": "string",
                      "description": "The components of WhatsApp template.\n"
                    },
                    "status": {
                      "type": "string",
                      "enum": [
                        "APPROVED",
                        "PENDING",
                        "REJECTED"
                      ],
                      "description": "The status of WhatsApp template.\n"
                    },
                    "created_at": {
                      "type": "string",
                      "format": "date-time",
                      "description": "The creation time of WhatsApp template.\n"
                    },
                    "updated_at": {
                      "type": "string",
                      "format": "date-time",
                      "description": "The last update time of WhatsApp template.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "WhatsApp Template Example",
                    "value": {
                      "id": "xxxxxx",
                      "name": "example",
                      "language": "en_US",
                      "category": "MARKETING",
                      "parameter_format": "NAMED",
                      "components": "",
                      "status": "APPROVED",
                      "created_at": "2020-01-01T00:00:00Z",
                      "updated_at": "2020-01-01T00:00:00Z"
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/whatsapp/{id}/templates/refresh": {
      "post": {
        "tags": [
          "WhatsApp"
        ],
        "operationId": "refreshWhatsAppTemplates",
        "x-category": "call-features",
        "x-subcategory": "whatsapp",
        "x-permissions": [
          "Trunk.ViewOnly"
        ],
        "summary": "Refresh WhatsApp templates services.",
        "description": "Refresh WhatsApp templates services.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The WhatsApp ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "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 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": "",
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": "xxxxxx",
                          "caller": "101",
                          "caller_domain": "example.com",
                          "caller_display_name": "User 101",
                          "callee": "102",
                          "callee_domain": "example.com",
                          "callee_display_name": "User 102",
                          "started_at": "2020-01-01T00:00:00Z",
                          "rang_at": "2020-01-01T00:00:00Z",
                          "answered_at": "2020-01-01T00:00:00Z",
                          "ended_at": "2020-01-01T00:00:00Z",
                          "call_id": "",
                          "direction": "INBOUND_CALL",
                          "end_reason": "CALLER_DISCONNECTED",
                          "reroute_reason": "TRANSFER",
                          "status_code": 200,
                          "destination": "",
                          "outbound_caller_id": "123456",
                          "did_cid": "",
                          "trunk": "trunk",
                          "duration": 60,
                          "service_number": "",
                          "user_data": ""
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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 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": "",
                    "value": {
                      "items": [
                        {
                          "caller": "101",
                          "caller_domain": "example.com",
                          "caller_display_name": "User 101",
                          "callee": "102",
                          "callee_domain": "example.com",
                          "callee_display_name": "User 102",
                          "started_at": "2020-01-01T00:00:00Z",
                          "rang_at": "2020-01-01T00:00:00Z",
                          "answered_at": "2020-01-01T00:00:00Z",
                          "ended_at": "2020-01-01T00:00:00Z",
                          "call_id": "",
                          "direction": "INBOUND_CALL",
                          "end_reason": "CALLER_DISCONNECTED",
                          "reroute_reason": "TRANSFER",
                          "status_code": 200,
                          "destination": "",
                          "outbound_caller_id": "123456",
                          "did_cid": "",
                          "trunk": "trunk",
                          "duration": 60,
                          "cost": 1,
                          "billed_account": "",
                          "service_number": "",
                          "user_data": ""
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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 CDR.\n"
                          },
                          "session_id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                              }
                            ],
                            "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": "",
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": "xxxxxx",
                          "session_id": "xxxxxx",
                          "caller": "101",
                          "caller_domain": "example.com",
                          "caller_display_name": "User 101",
                          "callee": "102",
                          "callee_domain": "example.com",
                          "callee_display_name": "User 102",
                          "started_at": "2020-01-01T00:00:00Z",
                          "rang_at": "2020-01-01T00:00:00Z",
                          "answered_at": "2020-01-01T00:00:00Z",
                          "ended_at": "2020-01-01T00:00:00Z",
                          "call_id": "xxxxxx",
                          "direction": "INBOUND_CALL",
                          "end_reason": "CALLER_DISCONNECTED",
                          "reroute_reason": "TRANSFER",
                          "status_code": 200,
                          "destination": "",
                          "outbound_caller_id": "123456",
                          "did_cid": "xxxxxx",
                          "trunk": "trunk",
                          "duration": 60,
                          "service_number": "",
                          "user_data": ""
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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 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 CDR.\n"
                    },
                    "session_id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                        }
                      ],
                      "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": "",
                    "value": {
                      "id": "xxxxxxxxxxxxxxx",
                      "session_id": "xxxxxx",
                      "caller": "101",
                      "caller_domain": "example.com",
                      "caller_display_name": "User 101",
                      "callee": "101",
                      "callee_domain": "example.com",
                      "callee_display_name": "User 102",
                      "started_at": "2000-01-01T00:00:00Z",
                      "rang_at": "2000-01-01T00:00:00Z",
                      "answered_at": "2000-01-01T00:00:00Z",
                      "ended_at": "2000-01-01T00:00:00Z",
                      "call_id": "a5G37QtkQC6BrNkGMFGyPA",
                      "direction": "INBOUND_CALL",
                      "end_reason": "CALLER_DISCONNECTED",
                      "reroute_reason": "TRANSFER",
                      "status_code": 200,
                      "destination": "",
                      "outbound_caller_id": "123456",
                      "did_cid": "123456",
                      "trunk": "trunk",
                      "duration": 3,
                      "cost": 1,
                      "billed_account": "",
                      "service_number": "000000",
                      "user_data": ""
                    }
                  }
                }
              }
            }
          },
          "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 external message.\n"
                          },
                          "config_id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                              }
                            ],
                            "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": "",
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": "xxxxxx",
                          "config_id": "xxxxxx",
                          "sender": "",
                          "sender_name": "example",
                          "receiver": "",
                          "receiver_name": "example",
                          "channel_name": "example",
                          "channel_number": "",
                          "brand": "Generic",
                          "did": "",
                          "msg_type": "SMS",
                          "direction": "IN",
                          "content": "",
                          "reason": "",
                          "delivery": "SENT",
                          "provider_msg_id": "",
                          "created_at": "2020-01-01T00:00:00Z"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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 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 external message.\n"
                    },
                    "config_id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                        }
                      ],
                      "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": "",
                    "value": {
                      "id": "xxxxxx",
                      "config_id": "",
                      "sender": "",
                      "sender_name": "example",
                      "receiver": "",
                      "receiver_name": "example",
                      "channel_name": "example",
                      "channel_number": "000000",
                      "brand": "Generic",
                      "did": "",
                      "msg_type": "SMS",
                      "direction": "IN",
                      "content": "",
                      "reason": "",
                      "delivery": "SENT",
                      "provider_msg_id": "",
                      "created_at": "2020-01-01T00:00:00Z"
                    }
                  }
                }
              }
            }
          },
          "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": {
                              "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": [
                                {
                                  "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": [
                                {
                                  "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": [
                                {
                                  "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": [
                                {
                                  "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": [
                                {
                                  "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": [
                                {
                                  "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": [
                                {
                                  "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": [
                                {
                                  "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": {
                              "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": "",
                  "value": {
                    "name": "example",
                    "type": "NORMAL",
                    "email": "example@example.com",
                    "format": "CSV",
                    "range": "TODAY",
                    "started_at": "2000-01-01T00:00:00Z",
                    "ended_at": "2000-01-01T00:00:00Z",
                    "cron_expr": "",
                    "filter": {
                      "from": "ANY",
                      "to": "ANY",
                      "answer_state": "ANY",
                      "duration": "ANY"
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                        }
                      ],
                      "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 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": "",
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": "xxxxxx",
                          "name": "example",
                          "type": "NORMAL",
                          "cron_expr": "",
                          "status": "SCHEDULED"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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 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 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": {
                                "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": [
                                  {
                                    "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": [
                                  {
                                    "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": [
                                  {
                                    "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": [
                                  {
                                    "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": [
                                  {
                                    "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": [
                                  {
                                    "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": [
                                  {
                                    "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": [
                                  {
                                    "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": {
                                "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": "",
                    "value": {
                      "id": "xxxxxx",
                      "name": "example",
                      "type": "NORMAL",
                      "email": "example@example.com",
                      "format": "CSV",
                      "range": "TODAY",
                      "started_at": "2000-01-01T00:00:00Z",
                      "ended_at": "2000-01-01T00:00:00Z",
                      "cron_expr": "",
                      "filter": {
                        "from": "ANY",
                        "to": "ANY",
                        "answer_state": "ANY",
                        "duration": "ANY"
                      },
                      "status": "RUNNING"
                    }
                  }
                }
              }
            }
          },
          "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 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": {
                              "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": [
                                {
                                  "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": [
                                {
                                  "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": [
                                {
                                  "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": [
                                {
                                  "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": [
                                {
                                  "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": [
                                {
                                  "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": [
                                {
                                  "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": [
                                {
                                  "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": {
                              "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": "",
                  "value": {
                    "name": "example",
                    "email": "example@example.com",
                    "format": "CSV",
                    "range": "TODAY",
                    "started_at": "2000-01-01T00:00:00Z",
                    "ended_at": "2000-01-01T00:00:00Z",
                    "cron_expr": "",
                    "filter": {
                      "from": "ANY",
                      "to": "ANY",
                      "answer_state": "ANY",
                      "duration": "ANY"
                    }
                  }
                }
              }
            }
          },
          "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 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 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": "",
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": "xxxxxx",
                          "name": "example",
                          "type": "NORMAL",
                          "format": "CSV",
                          "completed_at": "",
                          "file_name": "example",
                          "file_size": 100,
                          "file_url": ""
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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 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 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": "",
                    "value": {
                      "id": "xxxxxx",
                      "name": "example",
                      "type": "NORMAL",
                      "format": "CSV",
                      "completed_at": "",
                      "file_name": "example",
                      "file_size": 100,
                      "file_url": ""
                    }
                  }
                }
              }
            }
          },
          "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 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": "listFeatureCodes",
        "x-category": "tenants",
        "x-subcategory": "feature-codes",
        "x-permissions": [
          "PhoneSystem.ViewOnly"
        ],
        "summary": "List feature codes",
        "description": "Retrieve all feature 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",
                              "AUTOMATIC_CALLBACK_ACTIVATION",
                              "AUTOMATIC_CALLBACK_DEACTIVATION",
                              "CALLER_ID_DELIVERY_BLOCKING_PERSISTENT_ACTIVATION",
                              "CALLER_ID_DELIVERY_BLOCKING_PERSISTENT_DEACTIVATION",
                              "CALLER_ID_DELIVERY_BLOCKING_PER_CALL",
                              "CALLER_ID_DELIVERY_PER_CALL",
                              "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_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_FORWARDING_NO_ANSWER_ACTIVATION",
                              "CALL_FORWARDING_NO_ANSWER_DEACTIVATION",
                              "CALL_FORWARDING_NO_ANSWER_TO_VOICEMAIL_ACTIVATION",
                              "CALL_FORWARDING_NO_ANSWER_TO_VOICEMAIL_DEACTIVATION",
                              "CALL_PARK",
                              "CALL_RECORDING_PAUSE",
                              "CALL_RECORDING_RESUME",
                              "CALL_RECORDING_START",
                              "CALL_RECORDING_STOP",
                              "CALL_RETRIEVE",
                              "CALL_TRANSFER",
                              "CHANGE_AGENT_STATE_TO_NOT_READY",
                              "CHANGE_AGENT_STATE_TO_READY",
                              "CLEAR_PUSH",
                              "DIRECTED_CALL_PICKUP",
                              "DIRECT_VOICEMAIL_TRANSFER",
                              "DO_NOT_DISTURB_ACTIVATION",
                              "DO_NOT_DISTURB_DEACTIVATION",
                              "GROUP_CALL_PARK",
                              "GROUP_CALL_PICKUP",
                              "LAST_CALL_RETURN",
                              "LAST_NUMBER_REDIAL",
                              "LOGIN_HOT_DESKING",
                              "LOGOUT_HOT_DESKING",
                              "LOG_AGENT_INTO_QUEUE",
                              "LOG_AGENT_OUT_OF_QUEUE",
                              "NIGHT_MODE",
                              "PAGE_INTERCOM_ACTIVATION_PER_CALL",
                              "PER_ANONYMOUS_CALL_ACTIVATION",
                              "PER_ANONYMOUS_CALL_DEACTIVATION",
                              "PIN_BASED_CALLING",
                              "RESET_CALLS",
                              "SELECTIVE_CALL_ACCEPTANCE_ACTIVATION",
                              "SELECTIVE_CALL_ACCEPTANCE_DEACTIVATION",
                              "SELECTIVE_CALL_REJECTION_ACTIVATION",
                              "SELECTIVE_CALL_REJECTION_DEACTIVATION",
                              "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- `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- `SELECTIVE_CALL_ACCEPTANCE_ACTIVATION`:\n  Selective call acceptance allows only listed phone numbers to call in.\n  If a number is not on the list, the call will be blocked.\n  This applies to direct calls to the user and does not affect calls routed through call queues, or ring groups.\n- `SELECTIVE_CALL_ACCEPTANCE_DEACTIVATION`:\n  Disables Selective Call Acceptance Activation.\n- `SELECTIVE_CALL_REJECTION_ACTIVATION`:\n  Selective call rejection allows calls to be blocked at the user level based on specific criteria.\n  This feature only stops direct calls from reaching a user and does not prevent calls from ringing through a call center, or ring groups.\n- `SELECTIVE_CALL_REJECTION_DEACTIVATION`:\n  Disables Selective Call Rejection Activation.\n"
                          },
                          "enabled": {
                            "type": "boolean",
                            "description": "Enable the feature access code or not.\n"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "",
                    "value": {
                      "items": [
                        {
                          "feature": "ACCESSING_SHARED_VOICEMAIL",
                          "code": "*56",
                          "enabled": true
                        },
                        {
                          "feature": "ACCESSING_VOICEMAIL",
                          "code": "*57",
                          "enabled": true
                        },
                        {
                          "feature": "ANONYMOUS_CALL_ACTIVATION",
                          "code": "*76",
                          "enabled": true
                        },
                        {
                          "feature": "ANONYMOUS_CALL_DEACTIVATION",
                          "code": "*86",
                          "enabled": true
                        },
                        {
                          "feature": "AUTOMATIC_CALLBACK_ACTIVATION",
                          "code": "*33",
                          "enabled": true
                        },
                        {
                          "feature": "AUTOMATIC_CALLBACK_DEACTIVATION",
                          "code": "*43",
                          "enabled": true
                        },
                        {
                          "feature": "CALLER_ID_DELIVERY_BLOCKING_PERSISTENT_ACTIVATION",
                          "code": "*31",
                          "enabled": true
                        },
                        {
                          "feature": "CALLER_ID_DELIVERY_BLOCKING_PERSISTENT_DEACTIVATION",
                          "code": "*32",
                          "enabled": true
                        },
                        {
                          "feature": "CALLER_ID_DELIVERY_BLOCKING_PER_CALL",
                          "code": "*67",
                          "enabled": true
                        },
                        {
                          "feature": "CALLER_ID_DELIVERY_PER_CALL",
                          "code": "*65",
                          "enabled": true
                        },
                        {
                          "feature": "CALL_BRIDGE",
                          "code": "*15",
                          "enabled": true
                        },
                        {
                          "feature": "CALL_FLIP",
                          "code": "*11",
                          "enabled": true
                        },
                        {
                          "feature": "CALL_FORWARDING_ALWAYS_ACTIVATION",
                          "code": "*72",
                          "enabled": true
                        },
                        {
                          "feature": "CALL_FORWARDING_ALWAYS_DEACTIVATION",
                          "code": "*73",
                          "enabled": true
                        },
                        {
                          "feature": "CALL_FORWARDING_ALWAYS_TO_VOICEMAIL_ACTIVATION",
                          "code": "*21",
                          "enabled": true
                        },
                        {
                          "feature": "CALL_FORWARDING_ALWAYS_TO_VOICEMAIL_DEACTIVATION",
                          "code": "*34",
                          "enabled": true
                        },
                        {
                          "feature": "CALL_FORWARDING_BUSY_ACTIVATION",
                          "code": "*90",
                          "enabled": true
                        },
                        {
                          "feature": "CALL_FORWARDING_BUSY_DEACTIVATION",
                          "code": "*91",
                          "enabled": true
                        },
                        {
                          "feature": "CALL_FORWARDING_BUSY_TO_VOICEMAIL_ACTIVATION",
                          "code": "*40",
                          "enabled": true
                        },
                        {
                          "feature": "CALL_FORWARDING_BUSY_TO_VOICEMAIL_DEACTIVATION",
                          "code": "*42",
                          "enabled": true
                        },
                        {
                          "feature": "CALL_FORWARDING_NOT_REACHABLE_DURING_OFFICE_HOURS_ACTIVATION",
                          "code": "*94",
                          "enabled": true
                        },
                        {
                          "feature": "CALL_FORWARDING_NOT_REACHABLE_DURING_OFFICE_HOURS_DEACTIVATION",
                          "code": "*95",
                          "enabled": true
                        },
                        {
                          "feature": "CALL_FORWARDING_NOT_REACHABLE_OUTSIDE_OFFICE_HOURS_ACTIVATION",
                          "code": "*81",
                          "enabled": true
                        },
                        {
                          "feature": "CALL_FORWARDING_NOT_REACHABLE_OUTSIDE_OFFICE_HOURS_DEACTIVATION",
                          "code": "*82",
                          "enabled": true
                        },
                        {
                          "feature": "CALL_FORWARDING_NO_ANSWER_ACTIVATION",
                          "code": "*92",
                          "enabled": true
                        },
                        {
                          "feature": "CALL_FORWARDING_NO_ANSWER_DEACTIVATION",
                          "code": "*93",
                          "enabled": true
                        },
                        {
                          "feature": "CALL_FORWARDING_NO_ANSWER_TO_VOICEMAIL_ACTIVATION",
                          "code": "*41",
                          "enabled": true
                        },
                        {
                          "feature": "CALL_FORWARDING_NO_ANSWER_TO_VOICEMAIL_DEACTIVATION",
                          "code": "*35",
                          "enabled": true
                        },
                        {
                          "feature": "CALL_PARK",
                          "code": "*68",
                          "enabled": true
                        },
                        {
                          "feature": "CALL_RECORDING_PAUSE",
                          "code": "*48",
                          "enabled": true
                        },
                        {
                          "feature": "CALL_RECORDING_RESUME",
                          "code": "*49",
                          "enabled": true
                        },
                        {
                          "feature": "CALL_RECORDING_START",
                          "code": "*44",
                          "enabled": true
                        },
                        {
                          "feature": "CALL_RECORDING_STOP",
                          "code": "*45",
                          "enabled": true
                        },
                        {
                          "feature": "CALL_RETRIEVE",
                          "code": "*88",
                          "enabled": true
                        },
                        {
                          "feature": "CALL_TRANSFER",
                          "code": "*54",
                          "enabled": true
                        },
                        {
                          "feature": "CHANGE_AGENT_STATE_TO_NOT_READY",
                          "code": "*37",
                          "enabled": true
                        },
                        {
                          "feature": "CHANGE_AGENT_STATE_TO_READY",
                          "code": "*36",
                          "enabled": true
                        },
                        {
                          "feature": "CLEAR_PUSH",
                          "code": "*13",
                          "enabled": true
                        },
                        {
                          "feature": "DIRECTED_CALL_PICKUP",
                          "code": "*97",
                          "enabled": true
                        },
                        {
                          "feature": "DIRECT_VOICEMAIL_TRANSFER",
                          "code": "*55",
                          "enabled": true
                        },
                        {
                          "feature": "DO_NOT_DISTURB_ACTIVATION",
                          "code": "*78",
                          "enabled": true
                        },
                        {
                          "feature": "DO_NOT_DISTURB_DEACTIVATION",
                          "code": "*79",
                          "enabled": true
                        },
                        {
                          "feature": "GROUP_CALL_PARK",
                          "code": "*58",
                          "enabled": true
                        },
                        {
                          "feature": "GROUP_CALL_PICKUP",
                          "code": "*98",
                          "enabled": true
                        },
                        {
                          "feature": "LAST_CALL_RETURN",
                          "code": "*69",
                          "enabled": true
                        },
                        {
                          "feature": "LAST_NUMBER_REDIAL",
                          "code": "*66",
                          "enabled": true
                        },
                        {
                          "feature": "LOGIN_HOT_DESKING",
                          "code": "*70",
                          "enabled": true
                        },
                        {
                          "feature": "LOGOUT_HOT_DESKING",
                          "code": "*71",
                          "enabled": true
                        },
                        {
                          "feature": "LOG_AGENT_INTO_QUEUE",
                          "code": "*38",
                          "enabled": true
                        },
                        {
                          "feature": "LOG_AGENT_OUT_OF_QUEUE",
                          "code": "*39",
                          "enabled": true
                        },
                        {
                          "feature": "NIGHT_MODE",
                          "code": "*16",
                          "enabled": true
                        },
                        {
                          "feature": "PAGE_INTERCOM_ACTIVATION_PER_CALL",
                          "code": "*46",
                          "enabled": true
                        },
                        {
                          "feature": "PER_ANONYMOUS_CALL_ACTIVATION",
                          "code": "*52",
                          "enabled": true
                        },
                        {
                          "feature": "PER_ANONYMOUS_CALL_DEACTIVATION",
                          "code": "*62",
                          "enabled": true
                        },
                        {
                          "feature": "PIN_BASED_CALLING",
                          "code": "*20",
                          "enabled": true
                        },
                        {
                          "feature": "RESET_CALLS",
                          "code": "*12",
                          "enabled": true
                        },
                        {
                          "feature": "SELECTIVE_CALL_ACCEPTANCE_ACTIVATION",
                          "code": "*60",
                          "enabled": true
                        },
                        {
                          "feature": "SELECTIVE_CALL_ACCEPTANCE_DEACTIVATION",
                          "code": "*61",
                          "enabled": true
                        },
                        {
                          "feature": "SELECTIVE_CALL_REJECTION_ACTIVATION",
                          "code": "*25",
                          "enabled": true
                        },
                        {
                          "feature": "SELECTIVE_CALL_REJECTION_DEACTIVATION",
                          "code": "*26",
                          "enabled": true
                        },
                        {
                          "feature": "SET_DEFAULT_CLI",
                          "code": "*64",
                          "enabled": true
                        },
                        {
                          "feature": "SILENT_CALL_MONITORING",
                          "code": "*63",
                          "enabled": true
                        },
                        {
                          "feature": "SPEED_DIAL_100",
                          "code": "*75",
                          "enabled": true
                        },
                        {
                          "feature": "SPEED_DIAL_8",
                          "code": "*74",
                          "enabled": true
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      },
      "post": {
        "tags": [
          "Feature Access Code"
        ],
        "operationId": "updateFeatureCode",
        "x-category": "tenants",
        "x-subcategory": "feature-codes",
        "x-permissions": [
          "PhoneSystem.FullAccess"
        ],
        "summary": "Update feature codes",
        "description": "Update feature codes.\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",
                            "AUTOMATIC_CALLBACK_ACTIVATION",
                            "AUTOMATIC_CALLBACK_DEACTIVATION",
                            "CALLER_ID_DELIVERY_BLOCKING_PERSISTENT_ACTIVATION",
                            "CALLER_ID_DELIVERY_BLOCKING_PERSISTENT_DEACTIVATION",
                            "CALLER_ID_DELIVERY_BLOCKING_PER_CALL",
                            "CALLER_ID_DELIVERY_PER_CALL",
                            "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_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_FORWARDING_NO_ANSWER_ACTIVATION",
                            "CALL_FORWARDING_NO_ANSWER_DEACTIVATION",
                            "CALL_FORWARDING_NO_ANSWER_TO_VOICEMAIL_ACTIVATION",
                            "CALL_FORWARDING_NO_ANSWER_TO_VOICEMAIL_DEACTIVATION",
                            "CALL_PARK",
                            "CALL_RECORDING_PAUSE",
                            "CALL_RECORDING_RESUME",
                            "CALL_RECORDING_START",
                            "CALL_RECORDING_STOP",
                            "CALL_RETRIEVE",
                            "CALL_TRANSFER",
                            "CHANGE_AGENT_STATE_TO_NOT_READY",
                            "CHANGE_AGENT_STATE_TO_READY",
                            "CLEAR_PUSH",
                            "DIRECTED_CALL_PICKUP",
                            "DIRECT_VOICEMAIL_TRANSFER",
                            "DO_NOT_DISTURB_ACTIVATION",
                            "DO_NOT_DISTURB_DEACTIVATION",
                            "GROUP_CALL_PARK",
                            "GROUP_CALL_PICKUP",
                            "LAST_CALL_RETURN",
                            "LAST_NUMBER_REDIAL",
                            "LOGIN_HOT_DESKING",
                            "LOGOUT_HOT_DESKING",
                            "LOG_AGENT_INTO_QUEUE",
                            "LOG_AGENT_OUT_OF_QUEUE",
                            "NIGHT_MODE",
                            "PAGE_INTERCOM_ACTIVATION_PER_CALL",
                            "PER_ANONYMOUS_CALL_ACTIVATION",
                            "PER_ANONYMOUS_CALL_DEACTIVATION",
                            "PIN_BASED_CALLING",
                            "RESET_CALLS",
                            "SELECTIVE_CALL_ACCEPTANCE_ACTIVATION",
                            "SELECTIVE_CALL_ACCEPTANCE_DEACTIVATION",
                            "SELECTIVE_CALL_REJECTION_ACTIVATION",
                            "SELECTIVE_CALL_REJECTION_DEACTIVATION",
                            "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- `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- `SELECTIVE_CALL_ACCEPTANCE_ACTIVATION`:\n  Selective call acceptance allows only listed phone numbers to call in.\n  If a number is not on the list, the call will be blocked.\n  This applies to direct calls to the user and does not affect calls routed through call queues, or ring groups.\n- `SELECTIVE_CALL_ACCEPTANCE_DEACTIVATION`:\n  Disables Selective Call Acceptance Activation.\n- `SELECTIVE_CALL_REJECTION_ACTIVATION`:\n  Selective call rejection allows calls to be blocked at the user level based on specific criteria.\n  This feature only stops direct calls from reaching a user and does not prevent calls from ringing through a call center, or ring groups.\n- `SELECTIVE_CALL_REJECTION_DEACTIVATION`:\n  Disables Selective Call Rejection Activation.\n"
                        },
                        "enabled": {
                          "type": "boolean",
                          "description": "Enable the feature access code or not.\n"
                        }
                      }
                    }
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": "",
                  "value": {
                    "items": [
                      {
                        "feature": "ACCESSING_SHARED_VOICEMAIL",
                        "code": "*56",
                        "enabled": true
                      },
                      {
                        "feature": "ACCESSING_VOICEMAIL",
                        "code": "*57",
                        "enabled": true
                      },
                      {
                        "feature": "ANONYMOUS_CALL_ACTIVATION",
                        "code": "*76",
                        "enabled": true
                      },
                      {
                        "feature": "ANONYMOUS_CALL_DEACTIVATION",
                        "code": "*86",
                        "enabled": true
                      },
                      {
                        "feature": "AUTOMATIC_CALLBACK_ACTIVATION",
                        "code": "*33",
                        "enabled": true
                      },
                      {
                        "feature": "AUTOMATIC_CALLBACK_DEACTIVATION",
                        "code": "*43",
                        "enabled": true
                      },
                      {
                        "feature": "CALLER_ID_DELIVERY_BLOCKING_PERSISTENT_ACTIVATION",
                        "code": "*31",
                        "enabled": true
                      },
                      {
                        "feature": "CALLER_ID_DELIVERY_BLOCKING_PERSISTENT_DEACTIVATION",
                        "code": "*32",
                        "enabled": true
                      },
                      {
                        "feature": "CALLER_ID_DELIVERY_BLOCKING_PER_CALL",
                        "code": "*67",
                        "enabled": true
                      },
                      {
                        "feature": "CALLER_ID_DELIVERY_PER_CALL",
                        "code": "*65",
                        "enabled": true
                      },
                      {
                        "feature": "CALL_BRIDGE",
                        "code": "*15",
                        "enabled": true
                      },
                      {
                        "feature": "CALL_FLIP",
                        "code": "*11",
                        "enabled": true
                      },
                      {
                        "feature": "CALL_FORWARDING_ALWAYS_ACTIVATION",
                        "code": "*72",
                        "enabled": true
                      },
                      {
                        "feature": "CALL_FORWARDING_ALWAYS_DEACTIVATION",
                        "code": "*73",
                        "enabled": true
                      },
                      {
                        "feature": "CALL_FORWARDING_ALWAYS_TO_VOICEMAIL_ACTIVATION",
                        "code": "*21",
                        "enabled": true
                      },
                      {
                        "feature": "CALL_FORWARDING_ALWAYS_TO_VOICEMAIL_DEACTIVATION",
                        "code": "*34",
                        "enabled": true
                      },
                      {
                        "feature": "CALL_FORWARDING_BUSY_ACTIVATION",
                        "code": "*90",
                        "enabled": true
                      },
                      {
                        "feature": "CALL_FORWARDING_BUSY_DEACTIVATION",
                        "code": "*91",
                        "enabled": true
                      },
                      {
                        "feature": "CALL_FORWARDING_BUSY_TO_VOICEMAIL_ACTIVATION",
                        "code": "*40",
                        "enabled": true
                      },
                      {
                        "feature": "CALL_FORWARDING_BUSY_TO_VOICEMAIL_DEACTIVATION",
                        "code": "*42",
                        "enabled": true
                      },
                      {
                        "feature": "CALL_FORWARDING_NOT_REACHABLE_DURING_OFFICE_HOURS_ACTIVATION",
                        "code": "*94",
                        "enabled": true
                      },
                      {
                        "feature": "CALL_FORWARDING_NOT_REACHABLE_DURING_OFFICE_HOURS_DEACTIVATION",
                        "code": "*95",
                        "enabled": true
                      },
                      {
                        "feature": "CALL_FORWARDING_NOT_REACHABLE_OUTSIDE_OFFICE_HOURS_ACTIVATION",
                        "code": "*81",
                        "enabled": true
                      },
                      {
                        "feature": "CALL_FORWARDING_NOT_REACHABLE_OUTSIDE_OFFICE_HOURS_DEACTIVATION",
                        "code": "*82",
                        "enabled": true
                      },
                      {
                        "feature": "CALL_FORWARDING_NO_ANSWER_ACTIVATION",
                        "code": "*92",
                        "enabled": true
                      },
                      {
                        "feature": "CALL_FORWARDING_NO_ANSWER_DEACTIVATION",
                        "code": "*93",
                        "enabled": true
                      },
                      {
                        "feature": "CALL_FORWARDING_NO_ANSWER_TO_VOICEMAIL_ACTIVATION",
                        "code": "*41",
                        "enabled": true
                      },
                      {
                        "feature": "CALL_FORWARDING_NO_ANSWER_TO_VOICEMAIL_DEACTIVATION",
                        "code": "*35",
                        "enabled": true
                      },
                      {
                        "feature": "CALL_PARK",
                        "code": "*68",
                        "enabled": true
                      },
                      {
                        "feature": "CALL_RECORDING_PAUSE",
                        "code": "*48",
                        "enabled": true
                      },
                      {
                        "feature": "CALL_RECORDING_RESUME",
                        "code": "*49",
                        "enabled": true
                      },
                      {
                        "feature": "CALL_RECORDING_START",
                        "code": "*44",
                        "enabled": true
                      },
                      {
                        "feature": "CALL_RECORDING_STOP",
                        "code": "*45",
                        "enabled": true
                      },
                      {
                        "feature": "CALL_RETRIEVE",
                        "code": "*88",
                        "enabled": true
                      },
                      {
                        "feature": "CALL_TRANSFER",
                        "code": "*54",
                        "enabled": true
                      },
                      {
                        "feature": "CHANGE_AGENT_STATE_TO_NOT_READY",
                        "code": "*37",
                        "enabled": true
                      },
                      {
                        "feature": "CHANGE_AGENT_STATE_TO_READY",
                        "code": "*36",
                        "enabled": true
                      },
                      {
                        "feature": "CLEAR_PUSH",
                        "code": "*13",
                        "enabled": true
                      },
                      {
                        "feature": "DIRECTED_CALL_PICKUP",
                        "code": "*97",
                        "enabled": true
                      },
                      {
                        "feature": "DIRECT_VOICEMAIL_TRANSFER",
                        "code": "*55",
                        "enabled": true
                      },
                      {
                        "feature": "DO_NOT_DISTURB_ACTIVATION",
                        "code": "*78",
                        "enabled": true
                      },
                      {
                        "feature": "DO_NOT_DISTURB_DEACTIVATION",
                        "code": "*79",
                        "enabled": true
                      },
                      {
                        "feature": "GROUP_CALL_PARK",
                        "code": "*58",
                        "enabled": true
                      },
                      {
                        "feature": "GROUP_CALL_PICKUP",
                        "code": "*98",
                        "enabled": true
                      },
                      {
                        "feature": "LAST_CALL_RETURN",
                        "code": "*69",
                        "enabled": true
                      },
                      {
                        "feature": "LAST_NUMBER_REDIAL",
                        "code": "*66",
                        "enabled": true
                      },
                      {
                        "feature": "LOGIN_HOT_DESKING",
                        "code": "*70",
                        "enabled": true
                      },
                      {
                        "feature": "LOGOUT_HOT_DESKING",
                        "code": "*71",
                        "enabled": true
                      },
                      {
                        "feature": "LOG_AGENT_INTO_QUEUE",
                        "code": "*38",
                        "enabled": true
                      },
                      {
                        "feature": "LOG_AGENT_OUT_OF_QUEUE",
                        "code": "*39",
                        "enabled": true
                      },
                      {
                        "feature": "NIGHT_MODE",
                        "code": "*16",
                        "enabled": true
                      },
                      {
                        "feature": "PAGE_INTERCOM_ACTIVATION_PER_CALL",
                        "code": "*46",
                        "enabled": true
                      },
                      {
                        "feature": "PER_ANONYMOUS_CALL_ACTIVATION",
                        "code": "*52",
                        "enabled": true
                      },
                      {
                        "feature": "PER_ANONYMOUS_CALL_DEACTIVATION",
                        "code": "*62",
                        "enabled": true
                      },
                      {
                        "feature": "PIN_BASED_CALLING",
                        "code": "*20",
                        "enabled": true
                      },
                      {
                        "feature": "RESET_CALLS",
                        "code": "*12",
                        "enabled": true
                      },
                      {
                        "feature": "SELECTIVE_CALL_ACCEPTANCE_ACTIVATION",
                        "code": "*60",
                        "enabled": true
                      },
                      {
                        "feature": "SELECTIVE_CALL_ACCEPTANCE_DEACTIVATION",
                        "code": "*61",
                        "enabled": true
                      },
                      {
                        "feature": "SELECTIVE_CALL_REJECTION_ACTIVATION",
                        "code": "*25",
                        "enabled": true
                      },
                      {
                        "feature": "SELECTIVE_CALL_REJECTION_DEACTIVATION",
                        "code": "*26",
                        "enabled": true
                      },
                      {
                        "feature": "SET_DEFAULT_CLI",
                        "code": "*64",
                        "enabled": true
                      },
                      {
                        "feature": "SILENT_CALL_MONITORING",
                        "code": "*63",
                        "enabled": true
                      },
                      {
                        "feature": "SPEED_DIAL_100",
                        "code": "*75",
                        "enabled": true
                      },
                      {
                        "feature": "SPEED_DIAL_8",
                        "code": "*74",
                        "enabled": true
                      }
                    ]
                  }
                }
              }
            }
          }
        },
        "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": [
                              "AUTH_RESET_PASSWORD",
                              "AUTH_SIGN_IN_2FA",
                              "CALL_REPORT_COMPLETED",
                              "CONFERENCE_INVITATION",
                              "DISK_LOW",
                              "EMERGENCY_CALL",
                              "LICENSE_LIMITED",
                              "QUEUE_CALLBACK",
                              "QUEUE_CALLBACK_FAILED",
                              "QUEUE_CALL_LOST",
                              "QUEUE_SLA",
                              "RECHARGE",
                              "SHARED_VOICEMAIL_RECEIVED",
                              "TRUNK_CALL_LIMITED",
                              "TRUNK_CONNECTED",
                              "TRUNK_DISCONNECTED",
                              "USER_CREATION",
                              "VOICEMAIL_RECEIVED"
                            ],
                            "description": "Name of the email template:   \nCan be either:   \n- `AUTH_RESET_PASSWORD`: reset user password notification.\n- `AUTH_SIGN_IN_2FA`: two factor authentication code notification.\n- `CALL_REPORT_COMPLETED`: call report completed notification.\n- `CONFERENCE_INVITATION`: meeting invitation notification.\n- `DISK_LOW`: low disk notification.\n- `EMERGENCY_CALL`: emergency call notification.\n- `LICENSE_LIMITED`: license limited notification.\n- `QUEUE_CALLBACK`: call queue callback notification.\n- `QUEUE_CALLBACK_FAILED`: call queue callback failed notification.\n- `QUEUE_CALL_LOST`: call queue call lost notification.\n- `QUEUE_SLA`: call queue sla time reached notification.\n- `RECHARGE`: recharge notification.\n- `SHARED_VOICEMAIL_RECEIVED`: shared voicemail received notification.\n- `TRUNK_CALL_LIMITED`: trunk call limited notification.\n- `TRUNK_CONNECTED`: trunk connected notification.\n- `TRUNK_DISCONNECTED`: trunk disconnected notification.\n- `USER_CREATION`: user creation notification.\n- `VOICEMAIL_RECEIVED`: received voicemail 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": "",
                    "value": {
                      "items": [
                        {
                          "name": "USER_CREATION",
                          "from": "",
                          "subject": "example",
                          "body": ""
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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": [
                "AUTH_RESET_PASSWORD",
                "AUTH_SIGN_IN_2FA",
                "CALL_REPORT_COMPLETED",
                "CONFERENCE_INVITATION",
                "DISK_LOW",
                "EMERGENCY_CALL",
                "LICENSE_LIMITED",
                "QUEUE_CALLBACK",
                "QUEUE_CALLBACK_FAILED",
                "QUEUE_CALL_LOST",
                "QUEUE_SLA",
                "RECHARGE",
                "SHARED_VOICEMAIL_RECEIVED",
                "TRUNK_CALL_LIMITED",
                "TRUNK_CONNECTED",
                "TRUNK_DISCONNECTED",
                "USER_CREATION",
                "VOICEMAIL_RECEIVED"
              ],
              "description": "Name of the email template:   \nCan be either:   \n- `AUTH_RESET_PASSWORD`: reset user password notification.\n- `AUTH_SIGN_IN_2FA`: two factor authentication code notification.\n- `CALL_REPORT_COMPLETED`: call report completed notification.\n- `CONFERENCE_INVITATION`: meeting invitation notification.\n- `DISK_LOW`: low disk notification.\n- `EMERGENCY_CALL`: emergency call notification.\n- `LICENSE_LIMITED`: license limited notification.\n- `QUEUE_CALLBACK`: call queue callback notification.\n- `QUEUE_CALLBACK_FAILED`: call queue callback failed notification.\n- `QUEUE_CALL_LOST`: call queue call lost notification.\n- `QUEUE_SLA`: call queue sla time reached notification.\n- `RECHARGE`: recharge notification.\n- `SHARED_VOICEMAIL_RECEIVED`: shared voicemail received notification.\n- `TRUNK_CALL_LIMITED`: trunk call limited notification.\n- `TRUNK_CONNECTED`: trunk connected notification.\n- `TRUNK_DISCONNECTED`: trunk disconnected notification.\n- `USER_CREATION`: user creation notification.\n- `VOICEMAIL_RECEIVED`: received voicemail notification.\n"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string",
                      "enum": [
                        "AUTH_RESET_PASSWORD",
                        "AUTH_SIGN_IN_2FA",
                        "CALL_REPORT_COMPLETED",
                        "CONFERENCE_INVITATION",
                        "DISK_LOW",
                        "EMERGENCY_CALL",
                        "LICENSE_LIMITED",
                        "QUEUE_CALLBACK",
                        "QUEUE_CALLBACK_FAILED",
                        "QUEUE_CALL_LOST",
                        "QUEUE_SLA",
                        "RECHARGE",
                        "SHARED_VOICEMAIL_RECEIVED",
                        "TRUNK_CALL_LIMITED",
                        "TRUNK_CONNECTED",
                        "TRUNK_DISCONNECTED",
                        "USER_CREATION",
                        "VOICEMAIL_RECEIVED"
                      ],
                      "description": "Name of the email template:   \nCan be either:   \n- `AUTH_RESET_PASSWORD`: reset user password notification.\n- `AUTH_SIGN_IN_2FA`: two factor authentication code notification.\n- `CALL_REPORT_COMPLETED`: call report completed notification.\n- `CONFERENCE_INVITATION`: meeting invitation notification.\n- `DISK_LOW`: low disk notification.\n- `EMERGENCY_CALL`: emergency call notification.\n- `LICENSE_LIMITED`: license limited notification.\n- `QUEUE_CALLBACK`: call queue callback notification.\n- `QUEUE_CALLBACK_FAILED`: call queue callback failed notification.\n- `QUEUE_CALL_LOST`: call queue call lost notification.\n- `QUEUE_SLA`: call queue sla time reached notification.\n- `RECHARGE`: recharge notification.\n- `SHARED_VOICEMAIL_RECEIVED`: shared voicemail received notification.\n- `TRUNK_CALL_LIMITED`: trunk call limited notification.\n- `TRUNK_CONNECTED`: trunk connected notification.\n- `TRUNK_DISCONNECTED`: trunk disconnected notification.\n- `USER_CREATION`: user creation notification.\n- `VOICEMAIL_RECEIVED`: received voicemail 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": "",
                    "value": {
                      "name": "USER_CREATION",
                      "from": "",
                      "subject": "example",
                      "body": ""
                    }
                  }
                }
              }
            }
          },
          "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": [
                      "AUTH_RESET_PASSWORD",
                      "AUTH_SIGN_IN_2FA",
                      "CALL_REPORT_COMPLETED",
                      "CONFERENCE_INVITATION",
                      "DISK_LOW",
                      "EMERGENCY_CALL",
                      "LICENSE_LIMITED",
                      "QUEUE_CALLBACK",
                      "QUEUE_CALLBACK_FAILED",
                      "QUEUE_CALL_LOST",
                      "QUEUE_SLA",
                      "RECHARGE",
                      "SHARED_VOICEMAIL_RECEIVED",
                      "TRUNK_CALL_LIMITED",
                      "TRUNK_CONNECTED",
                      "TRUNK_DISCONNECTED",
                      "USER_CREATION",
                      "VOICEMAIL_RECEIVED"
                    ],
                    "description": "Name of the email template:   \nCan be either:   \n- `AUTH_RESET_PASSWORD`: reset user password notification.\n- `AUTH_SIGN_IN_2FA`: two factor authentication code notification.\n- `CALL_REPORT_COMPLETED`: call report completed notification.\n- `CONFERENCE_INVITATION`: meeting invitation notification.\n- `DISK_LOW`: low disk notification.\n- `EMERGENCY_CALL`: emergency call notification.\n- `LICENSE_LIMITED`: license limited notification.\n- `QUEUE_CALLBACK`: call queue callback notification.\n- `QUEUE_CALLBACK_FAILED`: call queue callback failed notification.\n- `QUEUE_CALL_LOST`: call queue call lost notification.\n- `QUEUE_SLA`: call queue sla time reached notification.\n- `RECHARGE`: recharge notification.\n- `SHARED_VOICEMAIL_RECEIVED`: shared voicemail received notification.\n- `TRUNK_CALL_LIMITED`: trunk call limited notification.\n- `TRUNK_CONNECTED`: trunk connected notification.\n- `TRUNK_DISCONNECTED`: trunk disconnected notification.\n- `USER_CREATION`: user creation notification.\n- `VOICEMAIL_RECEIVED`: received voicemail 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": "",
                  "value": {
                    "name": "USER_CREATION",
                    "from": "",
                    "subject": "example",
                    "body": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                    }
                  }
                },
                "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": [
                              "AUTH_RESET_PASSWORD",
                              "AUTH_SIGN_IN_2FA",
                              "CALL_REPORT_COMPLETED",
                              "CONFERENCE_INVITATION",
                              "DISK_LOW",
                              "EMERGENCY_CALL",
                              "LICENSE_LIMITED",
                              "QUEUE_CALLBACK",
                              "QUEUE_CALLBACK_FAILED",
                              "QUEUE_CALL_LOST",
                              "QUEUE_SLA",
                              "RECHARGE",
                              "SHARED_VOICEMAIL_RECEIVED",
                              "TRUNK_CALL_LIMITED",
                              "TRUNK_CONNECTED",
                              "TRUNK_DISCONNECTED",
                              "USER_CREATION",
                              "VOICEMAIL_RECEIVED"
                            ],
                            "description": "Name of the email template:   \nCan be either:   \n- `AUTH_RESET_PASSWORD`: reset user password notification.\n- `AUTH_SIGN_IN_2FA`: two factor authentication code notification.\n- `CALL_REPORT_COMPLETED`: call report completed notification.\n- `CONFERENCE_INVITATION`: meeting invitation notification.\n- `DISK_LOW`: low disk notification.\n- `EMERGENCY_CALL`: emergency call notification.\n- `LICENSE_LIMITED`: license limited notification.\n- `QUEUE_CALLBACK`: call queue callback notification.\n- `QUEUE_CALLBACK_FAILED`: call queue callback failed notification.\n- `QUEUE_CALL_LOST`: call queue call lost notification.\n- `QUEUE_SLA`: call queue sla time reached notification.\n- `RECHARGE`: recharge notification.\n- `SHARED_VOICEMAIL_RECEIVED`: shared voicemail received notification.\n- `TRUNK_CALL_LIMITED`: trunk call limited notification.\n- `TRUNK_CONNECTED`: trunk connected notification.\n- `TRUNK_DISCONNECTED`: trunk disconnected notification.\n- `USER_CREATION`: user creation notification.\n- `VOICEMAIL_RECEIVED`: received voicemail 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": "",
                    "value": {
                      "items": [
                        {
                          "name": "USER_CREATION",
                          "from": "",
                          "subject": "example",
                          "body": ""
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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": [
                "AUTH_RESET_PASSWORD",
                "AUTH_SIGN_IN_2FA",
                "CALL_REPORT_COMPLETED",
                "CONFERENCE_INVITATION",
                "DISK_LOW",
                "EMERGENCY_CALL",
                "LICENSE_LIMITED",
                "QUEUE_CALLBACK",
                "QUEUE_CALLBACK_FAILED",
                "QUEUE_CALL_LOST",
                "QUEUE_SLA",
                "RECHARGE",
                "SHARED_VOICEMAIL_RECEIVED",
                "TRUNK_CALL_LIMITED",
                "TRUNK_CONNECTED",
                "TRUNK_DISCONNECTED",
                "USER_CREATION",
                "VOICEMAIL_RECEIVED"
              ],
              "description": "Name of the email template:   \nCan be either:   \n- `AUTH_RESET_PASSWORD`: reset user password notification.\n- `AUTH_SIGN_IN_2FA`: two factor authentication code notification.\n- `CALL_REPORT_COMPLETED`: call report completed notification.\n- `CONFERENCE_INVITATION`: meeting invitation notification.\n- `DISK_LOW`: low disk notification.\n- `EMERGENCY_CALL`: emergency call notification.\n- `LICENSE_LIMITED`: license limited notification.\n- `QUEUE_CALLBACK`: call queue callback notification.\n- `QUEUE_CALLBACK_FAILED`: call queue callback failed notification.\n- `QUEUE_CALL_LOST`: call queue call lost notification.\n- `QUEUE_SLA`: call queue sla time reached notification.\n- `RECHARGE`: recharge notification.\n- `SHARED_VOICEMAIL_RECEIVED`: shared voicemail received notification.\n- `TRUNK_CALL_LIMITED`: trunk call limited notification.\n- `TRUNK_CONNECTED`: trunk connected notification.\n- `TRUNK_DISCONNECTED`: trunk disconnected notification.\n- `USER_CREATION`: user creation notification.\n- `VOICEMAIL_RECEIVED`: received voicemail notification.\n"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string",
                      "enum": [
                        "AUTH_RESET_PASSWORD",
                        "AUTH_SIGN_IN_2FA",
                        "CALL_REPORT_COMPLETED",
                        "CONFERENCE_INVITATION",
                        "DISK_LOW",
                        "EMERGENCY_CALL",
                        "LICENSE_LIMITED",
                        "QUEUE_CALLBACK",
                        "QUEUE_CALLBACK_FAILED",
                        "QUEUE_CALL_LOST",
                        "QUEUE_SLA",
                        "RECHARGE",
                        "SHARED_VOICEMAIL_RECEIVED",
                        "TRUNK_CALL_LIMITED",
                        "TRUNK_CONNECTED",
                        "TRUNK_DISCONNECTED",
                        "USER_CREATION",
                        "VOICEMAIL_RECEIVED"
                      ],
                      "description": "Name of the email template:   \nCan be either:   \n- `AUTH_RESET_PASSWORD`: reset user password notification.\n- `AUTH_SIGN_IN_2FA`: two factor authentication code notification.\n- `CALL_REPORT_COMPLETED`: call report completed notification.\n- `CONFERENCE_INVITATION`: meeting invitation notification.\n- `DISK_LOW`: low disk notification.\n- `EMERGENCY_CALL`: emergency call notification.\n- `LICENSE_LIMITED`: license limited notification.\n- `QUEUE_CALLBACK`: call queue callback notification.\n- `QUEUE_CALLBACK_FAILED`: call queue callback failed notification.\n- `QUEUE_CALL_LOST`: call queue call lost notification.\n- `QUEUE_SLA`: call queue sla time reached notification.\n- `RECHARGE`: recharge notification.\n- `SHARED_VOICEMAIL_RECEIVED`: shared voicemail received notification.\n- `TRUNK_CALL_LIMITED`: trunk call limited notification.\n- `TRUNK_CONNECTED`: trunk connected notification.\n- `TRUNK_DISCONNECTED`: trunk disconnected notification.\n- `USER_CREATION`: user creation notification.\n- `VOICEMAIL_RECEIVED`: received voicemail 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": "",
                    "value": {
                      "name": "USER_CREATION",
                      "from": "",
                      "subject": "example",
                      "body": ""
                    }
                  }
                }
              }
            }
          },
          "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": [
                "AUTH_RESET_PASSWORD",
                "AUTH_SIGN_IN_2FA",
                "CALL_REPORT_COMPLETED",
                "CONFERENCE_INVITATION",
                "DISK_LOW",
                "EMERGENCY_CALL",
                "LICENSE_LIMITED",
                "QUEUE_CALLBACK",
                "QUEUE_CALLBACK_FAILED",
                "QUEUE_CALL_LOST",
                "QUEUE_SLA",
                "RECHARGE",
                "SHARED_VOICEMAIL_RECEIVED",
                "TRUNK_CALL_LIMITED",
                "TRUNK_CONNECTED",
                "TRUNK_DISCONNECTED",
                "USER_CREATION",
                "VOICEMAIL_RECEIVED"
              ],
              "description": "Name of the email template:   \nCan be either:   \n- `AUTH_RESET_PASSWORD`: reset user password notification.\n- `AUTH_SIGN_IN_2FA`: two factor authentication code notification.\n- `CALL_REPORT_COMPLETED`: call report completed notification.\n- `CONFERENCE_INVITATION`: meeting invitation notification.\n- `DISK_LOW`: low disk notification.\n- `EMERGENCY_CALL`: emergency call notification.\n- `LICENSE_LIMITED`: license limited notification.\n- `QUEUE_CALLBACK`: call queue callback notification.\n- `QUEUE_CALLBACK_FAILED`: call queue callback failed notification.\n- `QUEUE_CALL_LOST`: call queue call lost notification.\n- `QUEUE_SLA`: call queue sla time reached notification.\n- `RECHARGE`: recharge notification.\n- `SHARED_VOICEMAIL_RECEIVED`: shared voicemail received notification.\n- `TRUNK_CALL_LIMITED`: trunk call limited notification.\n- `TRUNK_CONNECTED`: trunk connected notification.\n- `TRUNK_DISCONNECTED`: trunk disconnected notification.\n- `USER_CREATION`: user creation notification.\n- `VOICEMAIL_RECEIVED`: received voicemail 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": "",
                  "value": {
                    "from": "",
                    "subject": "example",
                    "body": ""
                  }
                }
              }
            }
          }
        },
        "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 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": [
                              "ACCESS",
                              "CREATE",
                              "DELETE",
                              "LOGIN",
                              "RECHARGE",
                              "UPDATE"
                            ],
                            "description": "The audit log actions.   \nCan be either:  \n- `ACCESS` access some resources.\n- `CREATE` created some resources.\n- `DELETE` deleted some resources.\n- `LOGIN` user logged in.\n- `RECHARGE` user account balance changed.\n- `UPDATE` updated some resources.\n"
                          },
                          "object_type": {
                            "type": "string",
                            "enum": [
                              "ALLOWED_COUNTRY_CODE",
                              "AUTOMATIC_CALLBACK",
                              "BILLING",
                              "BLACKLISTED_NUMBER",
                              "BLOCK_CODE",
                              "CALL_PARK_GROUP",
                              "CALL_PARK_SERVER",
                              "CALL_PICKUP_GROUP",
                              "CALL_QUEUE",
                              "CALL_QUEUE_BLACKLISTED_NUMBER",
                              "CALL_QUEUE_SERVER",
                              "CALL_RECORDING",
                              "CALL_REPORT",
                              "CONFERENCE_ROOM",
                              "CONFERENCE_SERVER",
                              "CONTACT",
                              "CUSTOM_EMAIL_TEMPLATE",
                              "DEALER",
                              "DECT_PHONE",
                              "EMERGENCY_NUMBER",
                              "EXCLUSIVE_NUMBER",
                              "FEATURE_ACCESS_CODE",
                              "GOOGLE_INTEGRATION",
                              "HOLIDAY",
                              "HOT_DESKING",
                              "INBOUND_RULE",
                              "IP_BLACKLIST",
                              "IVR",
                              "IVR_SERVER",
                              "LOGIN",
                              "MEDIA_SERVER",
                              "MICROSOFT_INTEGRATIONS",
                              "MOBILE_PUSH",
                              "MOH",
                              "MONITOR_GROUP",
                              "MONITOR_SERVER",
                              "OUTBOUND_RULE",
                              "PHONE_TEMPLATE",
                              "PROVIDER",
                              "RATING",
                              "RING_GROUP",
                              "ROLE",
                              "SHARED_VOICEMAIL",
                              "SHARED_VOICEMAIL_SERVER",
                              "SMS",
                              "SYSTEM",
                              "TENANT",
                              "TRANSPORT",
                              "USER",
                              "USER_GROUP",
                              "VIP_NUMBER",
                              "VOICEMAIL",
                              "VOICEMAIL_SERVER",
                              "WHATS_APP"
                            ],
                            "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": "xxxxxx",
                          "created_at": "2020-01-01T00:00:00Z",
                          "source": "",
                          "ip": "127.0.0.1",
                          "action": "UPDATE",
                          "object_type": "BLACKLISTED_NUMBER",
                          "user_name": "example",
                          "object_name": "example",
                          "old_state": "",
                          "new_state": ""
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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 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": "",
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": "xxxxxx",
                          "created_at": "2020-01-01T00:00:00Z",
                          "level": "INFO",
                          "source": "",
                          "message": ""
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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_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"
                        }
                      }
                    },
                    "groups": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "description": "The groups to sync from Microsoft 365.\n"
                      },
                      "description": "A collection of Microsoft 365 groups to sync.\n"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "",
                    "value": {
                      "national_cloud": "GLOBAL",
                      "directory_id": "a5c8bb47-7b13-4cc6-aca0-4fd71635f301",
                      "application_id": "a5c8bb47-7b13-4cc6-aca0-4fd71635f301",
                      "redirect_uri": "https://examples.com",
                      "sbc_redirect_uri": "",
                      "sync_time": "0 0 * * *",
                      "users": {
                        "enabled": true,
                        "sync_guest_users": false,
                        "sync_photo": false,
                        "starting_extension_number": "1000",
                        "selected_users": [],
                        "sync_type": "ALL"
                      },
                      "sign_in_as_standard_user": {
                        "enabled": true,
                        "selected_users": [],
                        "sync_type": "ALL"
                      },
                      "personal_contacts": {
                        "enabled": true,
                        "selected_users": [],
                        "sync_type": "ALL"
                      },
                      "shared_mailbox": {
                        "enabled": true,
                        "selected_users": [],
                        "sync_type": "ALL"
                      },
                      "events": {
                        "enabled": true,
                        "selected_users": [],
                        "sync_type": "ALL"
                      }
                    }
                  }
                }
              }
            }
          },
          "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_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"
                      }
                    }
                  },
                  "groups": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "description": "The groups to sync from Microsoft 365.\n"
                    },
                    "description": "A collection of Microsoft 365 groups to sync.\n"
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": "",
                  "value": {
                    "national_cloud": "GLOBAL",
                    "directory_id": "a5c8bb47-7b13-4cc6-aca0-4fd71635f301",
                    "application_id": "a5c8bb47-7b13-4cc6-aca0-4fd71635f301",
                    "sync_time": "0 0 * * *",
                    "users": {
                      "enabled": true,
                      "sync_guest_users": false,
                      "sync_photo": false,
                      "starting_extension_number": "1000",
                      "selected_users": [],
                      "sync_type": "ALL"
                    },
                    "sign_in_as_standard_user": {
                      "enabled": true,
                      "selected_users": [],
                      "sync_type": "ALL"
                    },
                    "personal_contacts": {
                      "enabled": true,
                      "selected_users": [],
                      "sync_type": "ALL"
                    },
                    "shared_mailbox": {
                      "enabled": true,
                      "selected_users": [],
                      "sync_type": "ALL"
                    },
                    "events": {
                      "enabled": true,
                      "selected_users": [],
                      "sync_type": "ALL"
                    }
                  }
                }
              }
            }
          }
        },
        "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": "",
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": "xxxxxx",
                          "name": "example",
                          "email": ""
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/ms365/users/{type}": {
      "get": {
        "tags": [
          "Integration"
        ],
        "operationId": "listMicrosoft365UsersByType",
        "x-category": "integrations",
        "x-subcategory": "microsoft",
        "x-permissions": [
          "Integration.ViewOnly"
        ],
        "summary": "List Microsoft 365 users by type",
        "description": "List users from Microsoft 365 by user type.\n",
        "parameters": [
          {
            "name": "type",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "enum": [
                "USER",
                "PRIVATE",
                "SHARED"
              ]
            }
          },
          {
            "name": "top",
            "in": "query",
            "description": "The maximum number of items to return",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            }
          },
          {
            "name": "search",
            "in": "query",
            "description": "Search for users by name, email, or other fields",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "skiptoken",
            "in": "query",
            "description": "Token for pagination",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "group",
            "in": "query",
            "description": "Group ID to filter users by group membership",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "count": {
                      "type": "integer",
                      "format": "int64"
                    },
                    "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": "",
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": "xxxxxx",
                          "name": "example",
                          "email": ""
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/ms365/groups": {
      "get": {
        "tags": [
          "Integration"
        ],
        "summary": "List MS365 groups",
        "description": "List all MS365 groups",
        "operationId": "listMS365Groups",
        "x-category": "integrations",
        "x-subcategory": "microsoft",
        "parameters": [
          {
            "name": "$top",
            "in": "query",
            "description": "Number of items to return per page",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100,
              "default": 100
            }
          },
          {
            "name": "skiptoken",
            "in": "query",
            "description": "Skip token for pagination",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "search",
            "in": "query",
            "description": "Search for groups by displayName or mail",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "link": {
                "description": "Link header for pagination",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "count": {
                      "type": "integer",
                      "format": "int64"
                    },
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "displayName": {
                            "type": "string"
                          },
                          "mail": {
                            "type": "string"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "500": {
            "description": "Internal server error"
          }
        }
      }
    },
    "/ms365/groups/get_many": {
      "post": {
        "tags": [
          "Integration"
        ],
        "summary": "Bulk get MS365 groups",
        "description": "Bulk get MS365 groups by IDs",
        "operationId": "bulkGetMS365Groups",
        "x-category": "integrations",
        "x-subcategory": "microsoft",
        "requestBody": {
          "description": "Group IDs",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "ids": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "minItems": 0
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "count": {
                      "type": "integer",
                      "format": "int64"
                    },
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "displayName": {
                            "type": "string"
                          },
                          "mail": {
                            "type": "string"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "500": {
            "description": "Internal server error"
          }
        }
      }
    },
    "/ms365/groups/{id}/{type}": {
      "get": {
        "tags": [
          "Integration"
        ],
        "summary": "List MS365 group members",
        "description": "List members of a specific MS365 group",
        "operationId": "listMS365GroupMembers",
        "x-category": "integrations",
        "x-subcategory": "microsoft",
        "x-permissions": [
          "Integration.ViewOnly"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique ID of the MS365 group",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "type",
            "in": "path",
            "description": "Type of members to list",
            "required": true,
            "schema": {
              "type": "string",
              "enum": [
                "USER",
                "PRIVATE",
                "SHARED"
              ]
            }
          },
          {
            "name": "$top",
            "in": "query",
            "description": "Number of items to return per page",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100,
              "default": 100
            }
          },
          {
            "name": "skiptoken",
            "in": "query",
            "description": "Skip token for pagination",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "link": {
                "description": "Link header for pagination",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "count": {
                      "type": "integer",
                      "format": "int64"
                    },
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "displayName": {
                            "type": "string"
                          },
                          "mail": {
                            "type": "string"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Group not found"
          },
          "500": {
            "description": "Internal server error"
          }
        }
      }
    },
    "/ms365/destroy": {
      "post": {
        "tags": [
          "Integration"
        ],
        "operationId": "deleteMS365",
        "x-category": "integrations",
        "x-subcategory": "ms365",
        "x-permissions": [
          "Integration.FullAccess"
        ],
        "summary": "Delete MS365 integration",
        "description": "Delete a certain MS365 integration.",
        "responses": {
          "200": {
            "description": "OK"
          },
          "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"
                    },
                    "sync_time": {
                      "type": "string",
                      "description": "The time at which the synchronization should be performed, using cron syntax.\nDefaults to '0 0 * * *' (midnight every day).\n"
                    },
                    "users": {
                      "type": "object",
                      "description": "User synchronization settings.\n",
                      "properties": {
                        "enabled": {
                          "type": "boolean",
                          "description": "Whether user synchronization is enabled.\n"
                        },
                        "sync_photo": {
                          "type": "boolean",
                          "description": "Whether to synchronize user photos.\n"
                        },
                        "starting_extension_number": {
                          "type": "string",
                          "description": "The starting extension number for synchronized users.\n"
                        },
                        "sync_type": {
                          "type": "string",
                          "enum": [
                            "ALL",
                            "INCLUDE",
                            "EXCLUDE"
                          ],
                          "description": "The synchronization type: 'ALL' for all users, 'INCLUDE' for specific users, or 'EXCLUDE' for all except specific users.\n"
                        },
                        "selected_users": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "The list of selected users for synchronization (depending on sync_type).\n"
                        }
                      }
                    },
                    "sign_in_as_standard_user": {
                      "type": "object",
                      "description": "Standard user SSO settings.\n",
                      "properties": {
                        "enabled": {
                          "type": "boolean",
                          "description": "Whether standard user SSO is enabled.\n"
                        },
                        "sync_type": {
                          "type": "string",
                          "enum": [
                            "ALL",
                            "INCLUDE",
                            "EXCLUDE"
                          ],
                          "description": "The SSO type: 'all' for all users, 'include' for specific users, or 'exclude' for all except specific users.\n"
                        },
                        "selected_users": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "The list of selected users for SSO (depending on sync_type).\n"
                        }
                      }
                    },
                    "directory_contacts": {
                      "type": "object",
                      "description": "Directory contact synchronization settings.\n",
                      "properties": {
                        "enabled": {
                          "type": "boolean",
                          "description": "Whether directory contact synchronization is enabled.\n"
                        },
                        "sync_type": {
                          "type": "string",
                          "enum": [
                            "ALL",
                            "INCLUDE",
                            "EXCLUDE"
                          ],
                          "description": "The synchronization type: 'ALL' for all contacts, 'INCLUDE' for specific contacts, or 'EXCLUDE' for all except specific contacts.\n"
                        },
                        "selected_contacts": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "The list of selected contacts for synchronization (depending on sync_type).\n"
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "",
                    "value": {
                      "client_id": "xxxxxx",
                      "client_secret": "xxxxxx",
                      "redirect_uri": "https://example.com",
                      "sbc_redirect_uri": "https://example.com",
                      "auth_consent_uri": "https://example.com",
                      "sync_time": "0 0 * * *",
                      "users": {
                        "enabled": true,
                        "sync_photo": true,
                        "starting_extension_number": "2000",
                        "sync_type": "INCLUDE",
                        "selected_users": [
                          "12345",
                          "67890"
                        ]
                      },
                      "sign_in_as_standard_user": {
                        "enabled": true,
                        "sync_type": "INCLUDE",
                        "selected_users": [
                          "12345",
                          "67890"
                        ]
                      },
                      "directory_contacts": {
                        "enabled": true,
                        "sync_type": "INCLUDE",
                        "selected_contacts": [
                          "12345",
                          "67890"
                        ]
                      }
                    }
                  }
                }
              }
            }
          },
          "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"
                  },
                  "sync_time": {
                    "type": "string",
                    "description": "The time at which the synchronization should be performed, using cron syntax.\nDefaults to '0 0 * * *' (midnight every day).\n"
                  },
                  "users": {
                    "type": "object",
                    "description": "User synchronization settings.\n",
                    "properties": {
                      "enabled": {
                        "type": "boolean",
                        "description": "Whether user synchronization is enabled.\n"
                      },
                      "sync_photo": {
                        "type": "boolean",
                        "description": "Whether to synchronize user photos.\n"
                      },
                      "starting_extension_number": {
                        "type": "string",
                        "description": "The starting extension number for synchronized users.\n"
                      },
                      "sync_type": {
                        "type": "string",
                        "enum": [
                          "ALL",
                          "INCLUDE",
                          "EXCLUDE"
                        ],
                        "description": "The synchronization type: 'ALL' for all users, 'INCLUDE' for specific users, or 'EXCLUDE' for all except specific users.\n"
                      },
                      "selected_users": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        },
                        "description": "The list of selected users for synchronization (depending on sync_type).\n"
                      }
                    }
                  },
                  "sign_in_as_standard_user": {
                    "type": "object",
                    "description": "Standard user SSO settings.\n",
                    "properties": {
                      "enabled": {
                        "type": "boolean",
                        "description": "Whether standard user SSO is enabled.\n"
                      },
                      "sync_type": {
                        "type": "string",
                        "enum": [
                          "ALL",
                          "INCLUDE",
                          "EXCLUDE"
                        ],
                        "description": "The SSO type: 'all' for all users, 'include' for specific users, or 'exclude' for all except specific users.\n"
                      },
                      "selected_users": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        },
                        "description": "The list of selected users for SSO (depending on sync_type).\n"
                      }
                    }
                  },
                  "directory_contacts": {
                    "type": "object",
                    "description": "Directory contact synchronization settings.\n",
                    "properties": {
                      "enabled": {
                        "type": "boolean",
                        "description": "Whether directory contact synchronization is enabled.\n"
                      },
                      "sync_type": {
                        "type": "string",
                        "enum": [
                          "ALL",
                          "INCLUDE",
                          "EXCLUDE"
                        ],
                        "description": "The synchronization type: 'ALL' for all contacts, 'INCLUDE' for specific contacts, or 'EXCLUDE' for all except specific contacts.\n"
                      },
                      "selected_contacts": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        },
                        "description": "The list of selected contacts for synchronization (depending on sync_type).\n"
                      }
                    }
                  }
                }
              },
              "examples": {
                "default": {
                  "summary": "",
                  "value": {
                    "client_id": "xxxxxx",
                    "client_secret": "xxxxxx",
                    "sync_time": "0 0 * * *",
                    "users": {
                      "enabled": true,
                      "sync_photo": true,
                      "starting_extension_number": "2000",
                      "sync_type": "INCLUDE",
                      "selected_users": [
                        "12345",
                        "67890"
                      ]
                    },
                    "sign_in_as_standard_user": {
                      "enabled": true,
                      "sync_type": "INCLUDE",
                      "selected_users": [
                        "12345",
                        "67890"
                      ]
                    },
                    "directory_contacts": {
                      "enabled": true,
                      "sync_type": "INCLUDE",
                      "selected_contacts": [
                        "12345",
                        "67890"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/google/users/{type}": {
      "get": {
        "tags": [
          "Integration"
        ],
        "operationId": "listGoogleUsers",
        "x-category": "integrations",
        "x-subcategory": "google",
        "x-permissions": [
          "Integration.ViewOnly"
        ],
        "summary": "List Google users",
        "description": "List users from Google Workspace.\n",
        "parameters": [
          {
            "name": "type",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "enum": [
                "USER"
              ]
            }
          },
          {
            "name": "top",
            "in": "query",
            "description": "The maximum number of items to return",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            }
          },
          {
            "name": "search",
            "in": "query",
            "description": "Search for users by name, email, or other fields",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "skiptoken",
            "in": "query",
            "description": "Token for pagination",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "count": {
                      "type": "integer",
                      "format": "int64"
                    },
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "name": {
                            "type": "string"
                          },
                          "email": {
                            "type": "string"
                          },
                          "principal_name": {
                            "type": "string"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "",
                    "value": {
                      "count": 2,
                      "items": [
                        {
                          "id": "123456789",
                          "name": "John Doe",
                          "email": "john@example.com",
                          "principal_name": "john@example.com"
                        },
                        {
                          "id": "987654321",
                          "name": "Jane Smith",
                          "email": "jane@example.com",
                          "principal_name": "jane@example.com"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/google/users/details/{id}": {
      "get": {
        "tags": [
          "Integration"
        ],
        "operationId": "getGoogleUserDetails",
        "x-category": "integrations",
        "x-subcategory": "google",
        "x-permissions": [
          "Integration.ViewOnly"
        ],
        "summary": "Get Google user details",
        "description": "Get detailed information about a specific Google Workspace user.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The user ID of the Google account.\n"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "name": {
                      "type": "string"
                    },
                    "email": {
                      "type": "string"
                    },
                    "principal_name": {
                      "type": "string"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "value": {
                      "id": "123456789",
                      "name": "John Doe",
                      "email": "john@example.com",
                      "principal_name": "john@example.com"
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/google/directory": {
      "get": {
        "tags": [
          "Integration"
        ],
        "operationId": "listGoogleDirectoryContacts",
        "x-category": "integrations",
        "x-subcategory": "google",
        "x-permissions": [
          "Integration.ViewOnly"
        ],
        "summary": "List Google directory contacts",
        "description": "List all Google directory contacts.\n",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "description": "Google directory contact details.\n",
                    "properties": {
                      "id": {
                        "type": "string",
                        "description": "The contact ID (without people/ prefix).\n"
                      },
                      "name": {
                        "type": "string",
                        "description": "The contact name.\n"
                      },
                      "email": {
                        "type": "string",
                        "description": "The contact email.\n"
                      },
                      "principal_name": {
                        "type": "string",
                        "description": "The contact principal name (usually the same as email).\n"
                      }
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/google/directory/{id}": {
      "get": {
        "tags": [
          "Integration"
        ],
        "operationId": "getGoogleDirectoryContact",
        "x-category": "integrations",
        "x-subcategory": "google",
        "x-permissions": [
          "Integration.ViewOnly"
        ],
        "summary": "Get Google directory contact details",
        "description": "Get details of a Google directory contact by ID.\n",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "schema": {
              "type": "string"
            },
            "required": true,
            "description": "Contact ID"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Google directory contact details.\n",
                  "properties": {
                    "id": {
                      "type": "string",
                      "description": "The contact ID (without people/ prefix).\n"
                    },
                    "name": {
                      "type": "string",
                      "description": "The contact name.\n"
                    },
                    "email": {
                      "type": "string",
                      "description": "The contact email.\n"
                    },
                    "principal_name": {
                      "type": "string",
                      "description": "The contact principal name (usually the same as email).\n"
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/google/destroy": {
      "post": {
        "tags": [
          "Integration"
        ],
        "operationId": "deleteGoogle",
        "x-category": "integrations",
        "x-subcategory": "google",
        "x-permissions": [
          "Integration.FullAccess"
        ],
        "summary": "Delete Google integration",
        "description": "Delete a certain Google integration.",
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/google/directory/get_many": {
      "post": {
        "tags": [
          "Integration"
        ],
        "operationId": "bulkGetGoogleDirectoryContacts",
        "x-category": "integrations",
        "x-subcategory": "google",
        "x-permissions": [
          "Integration.ViewOnly"
        ],
        "summary": "Bulk get Google directory contacts",
        "description": "Bulk get details of Google directory contacts by IDs.\n",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "ids": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "minItems": 1,
                    "maxItems": 100,
                    "description": "List of contact IDs"
                  }
                },
                "required": [
                  "ids"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "description": "Google directory contact details.\n",
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "The contact ID (without people/ prefix).\n"
                          },
                          "name": {
                            "type": "string",
                            "description": "The contact name.\n"
                          },
                          "email": {
                            "type": "string",
                            "description": "The contact email.\n"
                          },
                          "principal_name": {
                            "type": "string",
                            "description": "The contact principal name (usually the same as email).\n"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/google/authorization": {
      "post": {
        "tags": [
          "Integration"
        ],
        "summary": "Generate Google authorization URL",
        "description": "Generate Google authorization URL for tenant",
        "operationId": "googleAuthorization",
        "x-category": "integrations",
        "x-subcategory": "google",
        "requestBody": {
          "description": "Google authorization request",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "client_id": {
                    "type": "string",
                    "description": "Google client ID"
                  },
                  "client_secret": {
                    "type": "string",
                    "description": "Google client secret"
                  },
                  "callback_url": {
                    "type": "string",
                    "description": "Callback URL after authorization"
                  }
                },
                "required": [
                  "client_id",
                  "client_secret"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "auth_consent_uri": {
                      "type": "string",
                      "description": "Google authorization URL"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "409": {
            "description": "Client ID already exists"
          },
          "500": {
            "description": "Internal server 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",
                          "title": "Odoo application",
                          "properties": {
                            "base_url": {
                              "type": "string",
                              "description": "The domain name of the database where Odoo is installed.\n"
                            },
                            "database": {
                              "type": "string",
                              "description": "The database name of the database where Odoo CRM is installed.\n"
                            },
                            "username": {
                              "type": "string",
                              "description": "The login email address of the Odoo administrator account.\n"
                            },
                            "api_key": {
                              "type": "string",
                              "description": "The API key of integrated Odoo application.\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": [
                                "Individual",
                                "Lead"
                              ],
                              "default": "Individual",
                              "description": "The type of new created contacts.   \nCan be either:\n - `Individual`\n - `Lead`\n"
                            },
                            "contact_lookup_order": {
                              "type": "array",
                              "items": {
                                "type": "string",
                                "enum": [
                                  "Individuals",
                                  "Leads",
                                  "Companies"
                                ]
                              },
                              "default": [
                                "Individuals",
                                "Leads",
                                "Companies"
                              ],
                              "description": "The lookup order expressed as an array.   \nThe array elements must be `Individuals`, `Leads`, `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": "When enabled, a Odoo 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 Odoo 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 Odoo activity.\n"
                            }
                          }
                        }
                      ],
                      "type": "object"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "An example for update CRM",
                    "value": {
                      "provider": "zoho",
                      "opts": {
                        "client_id": "xxxxxx",
                        "client_secret": "xxxxxx",
                        "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": "xxxxxx"
                      }
                    }
                  }
                }
              }
            }
          },
          "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",
                        "title": "Odoo application",
                        "properties": {
                          "base_url": {
                            "type": "string",
                            "description": "The domain name of the database where Odoo is installed.\n"
                          },
                          "database": {
                            "type": "string",
                            "description": "The database name of the database where Odoo CRM is installed.\n"
                          },
                          "username": {
                            "type": "string",
                            "description": "The login email address of the Odoo administrator account.\n"
                          },
                          "api_key": {
                            "type": "string",
                            "description": "The API key of integrated Odoo application.\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": [
                              "Individual",
                              "Lead"
                            ],
                            "default": "Individual",
                            "description": "The type of new created contacts.   \nCan be either:\n - `Individual`\n - `Lead`\n"
                          },
                          "contact_lookup_order": {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "enum": [
                                "Individuals",
                                "Leads",
                                "Companies"
                              ]
                            },
                            "default": [
                              "Individuals",
                              "Leads",
                              "Companies"
                            ],
                            "description": "The lookup order expressed as an array.   \nThe array elements must be `Individuals`, `Leads`, `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": "When enabled, a Odoo 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 Odoo 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 Odoo activity.\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": "listCrmIntegrationAvailableProviders",
        "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"
                        },
                        {
                          "provider": "odoo"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/crm/providers/{provider}": {
      "get": {
        "tags": [
          "Integration"
        ],
        "operationId": "getCrmIntegrationAvailableProvider",
        "x-category": "integrations",
        "x-subcategory": "crm",
        "x-permissions": [
          "Company.ViewOnly"
        ],
        "summary": "Get CRM provider information.",
        "description": "Retrieve CRM provider information by name.\n",
        "parameters": [
          {
            "name": "provider",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The CRM provider.   \nSuch as zoho, hubspot.\n"
            },
            "description": "The provider name of the CRM provider."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "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 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": "xxxxxx",
                          "first_name": "example",
                          "last_name": "example",
                          "email": "",
                          "company": "",
                          "title": "",
                          "did_number": "1000",
                          "business": "",
                          "business2": "",
                          "mobile_phone": "",
                          "mobile_phone2": "",
                          "home_phone": "",
                          "home_phone2": "",
                          "other": "",
                          "business_fax": "",
                          "home_fax": "",
                          "address": "",
                          "notes": "",
                          "type": "",
                          "url": "https://example.com"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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": "",
                  "value": {
                    "first_name": "example",
                    "last_name": "example",
                    "email": "example@example.com",
                    "company": "",
                    "title": "",
                    "business": "",
                    "business2": "",
                    "mobile_phone": "",
                    "mobile_phone2": "",
                    "home_phone": "",
                    "home_phone2": "",
                    "other": "",
                    "business_fax": "",
                    "home_fax": "",
                    "address": "",
                    "notes": "",
                    "did_number": "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 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 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"
                          },
                          "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 list CRM contacts",
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "id": "xxxxxx",
                          "first_name": "example",
                          "last_name": "example",
                          "email": "",
                          "company": "",
                          "title": "",
                          "did_number": "1000",
                          "business": "",
                          "business2": "",
                          "mobile_phone": "",
                          "mobile_phone2": "",
                          "home_phone": "",
                          "home_phone2": "",
                          "other": "",
                          "business_fax": "",
                          "home_fax": "",
                          "address": "",
                          "notes": "",
                          "type": "",
                          "url": "https://example.com"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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 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": "xxxxxx",
                          "first_name": "example",
                          "last_name": "example",
                          "email": "",
                          "company": "",
                          "title": "",
                          "did_number": "1000",
                          "business": "",
                          "business2": "",
                          "mobile_phone": "",
                          "mobile_phone2": "",
                          "home_phone": "",
                          "home_phone2": "",
                          "other": "",
                          "business_fax": "",
                          "home_fax": "",
                          "address": "",
                          "notes": "",
                          "type": "",
                          "url": "https://example.com"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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 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": "",
                  "value": {
                    "first_name": "example",
                    "last_name": "example",
                    "email": "example@example.com",
                    "company": "",
                    "title": "",
                    "did_number": "000000",
                    "business": "",
                    "business2": "",
                    "mobile_phone": "",
                    "mobile_phone2": "",
                    "home_phone": "",
                    "home_phone2": "",
                    "other": "",
                    "business_fax": "",
                    "home_fax": "",
                    "address": "",
                    "notes": ""
                  }
                }
              }
            }
          },
          "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 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 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 get CRM contact",
                    "value": {
                      "id": "xxxxxx",
                      "first_name": "example",
                      "last_name": "example",
                      "email": "example@example.com",
                      "company": "",
                      "title": "",
                      "did_number": "000000",
                      "business": "",
                      "business2": "",
                      "mobile_phone": "",
                      "mobile_phone2": "",
                      "home_phone": "",
                      "home_phone2": "",
                      "other": "",
                      "business_fax": "",
                      "home_fax": "",
                      "address": "",
                      "notes": "",
                      "type": "",
                      "url": "https://example.com"
                    }
                  }
                }
              }
            }
          },
          "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 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 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": "",
                  "value": {
                    "title": "",
                    "content": ""
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                    }
                  }
                },
                "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 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"
                          },
                          "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": "",
                    "value": {
                      "items": [
                        {
                          "id": "",
                          "title": "",
                          "content": "",
                          "created_at": "2020-01-01T00:00:00Z",
                          "updated_at": ""
                        },
                        {
                          "id": "",
                          "title": "",
                          "content": "",
                          "created_at": "2020-01-01T00:00:00Z",
                          "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 contact."
          },
          {
            "name": "note_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
            },
            "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": "",
                  "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 CRM contact."
          },
          {
            "name": "note_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
            },
            "description": "The unique ID of the CRM note."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                    },
                    "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": "",
                    "value": {
                      "id": "",
                      "title": "",
                      "content": "",
                      "created_at": "2020-01-01T00:00:00Z",
                      "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 contact."
          },
          {
            "name": "note_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
            },
            "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 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 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"
                          ],
                          "description": "The direction of CDR:\n- `INBOUND_CALL`:\n- `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": "xxxxxx",
                          "caller": "101",
                          "caller_display_name": "User 101",
                          "callee": "102",
                          "callee_display_name": "User 102",
                          "started_at": "2020-01-01T00:00:00Z",
                          "rang_at": "2020-01-01T00:00:00Z",
                          "answered_at": "2020-01-01T00:00:00Z",
                          "ended_at": "2020-01-01T00:00:00Z",
                          "direction": "INBOUND_CALL",
                          "duration": 60,
                          "summary": "",
                          "transcription": "",
                          "recording": ""
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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 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 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 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"
                      ],
                      "description": "The direction of CDR:\n- `INBOUND_CALL`:\n- `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": "xxxxxx",
                      "caller": "101",
                      "caller_display_name": "User 101",
                      "callee": "101",
                      "callee_display_name": "User 102",
                      "started_at": "2000-01-01T00:00:00Z",
                      "rang_at": "2000-01-01T00:00:00Z",
                      "answered_at": "2000-01-01T00:00:00Z",
                      "ended_at": "2000-01-01T00:00:00Z",
                      "direction": "INBOUND_CALL",
                      "duration": 3,
                      "summary": "",
                      "transcription": "",
                      "recording": ""
                    }
                  }
                }
              }
            }
          },
          "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 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 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": ""
                  }
                }
              }
            }
          }
        },
        "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": "",
                    "value": {
                      "private_ipv4": "127.0.0.1",
                      "private_ipv6": "::1",
                      "public_ipv4": "192.0.2.0",
                      "public_ipv6": "2001:0db8:0a0b:12f0::1"
                    }
                  }
                }
              }
            }
          },
          "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": "",
                  "value": {
                    "private_ipv4": "127.0.0.1",
                    "private_ipv6": "::1",
                    "public_ipv4": "192.0.2.0",
                    "public_ipv6": "2001:0db8:0a0b:12f0::1"
                  }
                }
              }
            }
          },
          "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": "",
                    "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": "",
                    "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"
                  },
                  "direction": {
                    "type": "string",
                    "enum": [
                      "INBOUND",
                      "OUTBOUND",
                      "INTERNAL",
                      "IN_TO_OUT"
                    ],
                    "example": "INBOUND",
                    "description": "Call direction type, indicating the routing path of the call.\n"
                  }
                },
                "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",
                    "direction": "INBOUND"
                  }
                }
              }
            }
          }
        },
        "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": "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"
                          },
                          "rang_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"
                          },
                          "answered_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"
                          },
                          "ended_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"
                          },
                          "party": {
                            "type": "string",
                            "description": "Call party type, indicating the routing path of the call.",
                            "enum": [
                              "NONE",
                              "CALLER",
                              "CALLEE"
                            ]
                          },
                          "direction": {
                            "type": "string",
                            "description": "Call direction type, indicating the routing path of the call.\n",
                            "enum": [
                              "Inbound",
                              "Outbound",
                              "Internal",
                              "Inbound_Outbound"
                            ],
                            "example": "Inbound"
                          },
                          "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": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                              }
                            ],
                            "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": "xxxxxx",
                          "caller": "101",
                          "caller_display_name": "101",
                          "caller_endpoint": "",
                          "call_id": "a5G37QtkQC6BrNkGMFGyPA",
                          "service_number": "",
                          "service_name": "",
                          "service_type": "",
                          "callee": "102",
                          "callee_display_name": "102",
                          "callee_endpoint": "",
                          "started_at": "2020-01-01T00:00:00Z",
                          "rang_at": "2020-01-01T00:00:00Z",
                          "answered_at": "2020-01-01T00:00:00Z",
                          "ended_at": "2020-01-01T00:00:00Z",
                          "direction": "Inbound",
                          "end_reason": "",
                          "reroute_reason": "",
                          "status_code": 480,
                          "destination": "",
                          "outbound_caller_id": "123456",
                          "did": "",
                          "call_type": "",
                          "callback_id": "xxxxxx",
                          "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"
                  },
                  "party": {
                    "type": "string",
                    "description": "Call party type, indicating the routing path of the call.",
                    "enum": [
                      "NONE",
                      "CALLER",
                      "CALLEE"
                    ]
                  },
                  "direction": {
                    "type": "string",
                    "description": "Call direction type, indicating the routing path of the call.\n",
                    "enum": [
                      "Inbound",
                      "Outbound",
                      "Internal",
                      "Inbound_Outbound"
                    ],
                    "example": "Inbound"
                  },
                  "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": {
                    "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"
                  }
                }
              }
            }
          }
        },
        "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": "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"
                          },
                          "rang_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"
                          },
                          "answered_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"
                          },
                          "ended_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"
                          },
                          "direction": {
                            "type": "string",
                            "description": "Call party 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": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                              }
                            ],
                            "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": "a5G37QtkQC6BrNkGMFGyPA",
                          "service_number": "",
                          "service_name": "",
                          "service_type": "",
                          "callee": "102",
                          "callee_display_name": "102",
                          "callee_endpoint": "",
                          "started_at": "2020-01-01T00:00:00Z",
                          "rang_at": "",
                          "answered_at": "",
                          "ended_at": "",
                          "direction": "CALLER",
                          "end_reason": "",
                          "reroute_reason": "",
                          "status_code": 480,
                          "destination": "",
                          "outbound_caller_id": "123456",
                          "did": "",
                          "call_type": "",
                          "callback_id": "xxxxxx",
                          "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,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                }
              ],
              "description": "The unique ID of call queue.\n"
            },
            "description": "The session ID of the call to retrieve"
          }
        ],
        "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": "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"
                          },
                          "rang_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"
                          },
                          "answered_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"
                          },
                          "ended_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"
                          },
                          "direction": {
                            "type": "string",
                            "description": "Call direction type, indicating the routing path of the call.\n",
                            "enum": [
                              "Inbound",
                              "Outbound",
                              "Internal",
                              "Inbound_Outbound"
                            ],
                            "example": "Inbound"
                          },
                          "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": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                              }
                            ],
                            "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": {
                      "items": [
                        {
                          "session_id": "xxxxxx",
                          "caller": "101",
                          "caller_display_name": "101",
                          "caller_endpoint": "",
                          "call_id": "a5G37QtkQC6BrNkGMFGyPA",
                          "service_number": "",
                          "service_name": "",
                          "service_type": "",
                          "callee": "102",
                          "callee_display_name": "102",
                          "callee_endpoint": "",
                          "started_at": "2020-01-01T00:00:00Z",
                          "rang_at": "2020-01-01T00:00:00Z",
                          "answered_at": "2020-01-01T00:00:00Z",
                          "ended_at": "2020-01-01T00:00:00Z",
                          "direction": "Inbound",
                          "end_reason": "",
                          "reroute_reason": "",
                          "status_code": 480,
                          "destination": "",
                          "outbound_caller_id": "123456",
                          "did": "",
                          "call_type": "",
                          "callback_id": "xxxxxx",
                          "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,
            "schema": {
              "allOf": [
                {
                  "type": "string",
                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                }
              ],
              "description": "The unique ID of call queue.\n"
            },
            "description": "The session ID of the call to retrieve"
          }
        ],
        "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": "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"
                          },
                          "rang_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"
                          },
                          "answered_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"
                          },
                          "ended_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"
                          },
                          "direction": {
                            "type": "string",
                            "description": "Call direction type, indicating the routing path of the call.\n",
                            "enum": [
                              "Inbound",
                              "Outbound",
                              "Internal",
                              "Inbound_Outbound"
                            ],
                            "example": "Inbound"
                          },
                          "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": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                              }
                            ],
                            "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": {
                      "items": [
                        {
                          "session_id": "123412312313132",
                          "caller": "101",
                          "caller_display_name": "101",
                          "caller_endpoint": "",
                          "call_id": "a5G37QtkQC6BrNkGMFGyPA",
                          "service_number": "",
                          "service_name": "",
                          "service_type": "",
                          "callee": "102",
                          "callee_display_name": "102",
                          "callee_endpoint": "",
                          "started_at": "2020-01-01T00:00:00Z",
                          "rang_at": "",
                          "answered_at": "",
                          "ended_at": "",
                          "direction": "Inbound",
                          "end_reason": "",
                          "reroute_reason": "",
                          "status_code": 480,
                          "destination": "",
                          "outbound_caller_id": "123456",
                          "did": "",
                          "call_type": "",
                          "callback_id": "xxxxxx",
                          "billing_prefix": "",
                          "cost": 0,
                          "user_data": "",
                          "inbound_trunk": "",
                          "outbound_trunk": ""
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error"
          }
        }
      }
    },
    "/dataflow/analytics/activity/users": {
      "post": {
        "tags": [
          "Dataflow"
        ],
        "operationId": "getActivitys",
        "x-category": "dataflow",
        "x-subcategory": "analytics",
        "x-permissions": [
          "Analytics.ViewOnly"
        ],
        "summary": "Retrieve user activity records, including login and logout events.",
        "description": "This API returns user activity data, which records user login and logout events from the system.\nThe data is typically used for auditing, monitoring, and analytics purposes.\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_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"
                  },
                  "number": {
                    "type": "integer",
                    "description": "Call duration from start time in seconds.",
                    "example": 100
                  },
                  "event": {
                    "type": "string",
                    "description": "Filter by user activity event type.",
                    "enum": [
                      "NONE",
                      "SIP_LOGIN",
                      "SIP_LOGOUT"
                    ],
                    "example": "SIP_LOGIN"
                  }
                },
                "required": [
                  "start_time",
                  "end_time",
                  "event"
                ]
              },
              "examples": {
                "default": {
                  "summary": "Example request for retrieving user activity records",
                  "value": {
                    "start_time": "2024-01-01T00:00:00Z",
                    "end_time": "2024-01-31T23:59:59Z",
                    "number": 10,
                    "event": "SIP_LOGIN"
                  }
                }
              }
            }
          }
        },
        "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": {
                          "name": {
                            "type": "string",
                            "description": "User display name.",
                            "example": "John Doe"
                          },
                          "number": {
                            "type": "string",
                            "description": "User number.",
                            "example": "101"
                          },
                          "event": {
                            "type": "string",
                            "description": "Filter by user activity event type.",
                            "enum": [
                              "NONE",
                              "SIP_LOGIN",
                              "SIP_LOGOUT"
                            ],
                            "example": "SIP_LOGIN"
                          },
                          "device": {
                            "type": "string",
                            "description": "Device type used by the user.",
                            "example": "SIP Phone"
                          },
                          "address": {
                            "type": "string",
                            "description": "IP address of the user.",
                            "example": "192.168.0.11:5060"
                          },
                          "time": {
                            "type": "string",
                            "format": "date-time",
                            "description": "Timestamp of the timeseries point.",
                            "example": "2025-09-29T10:00:00-04:00"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "Example response for retrieving user activity records",
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "name": "Jason",
                          "number": "101",
                          "event": "SIP_LOGIN",
                          "device": "Yealink",
                          "address": "192.168.0.11:5060",
                          "time": "2025-09-28T00:00:00Z"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error response"
          }
        }
      }
    },
    "/dataflow/analytics/activity/user": {
      "post": {
        "tags": [
          "Dataflow"
        ],
        "operationId": "getActivity",
        "x-category": "dataflow",
        "x-subcategory": "analytics",
        "x-permissions": [
          "Analytics.ViewOnly"
        ],
        "summary": "Retrieve current user activity records, including login and logout events.",
        "description": "This API returns current user activity data, which records user login and logout events from the system.\nThe data is typically used for auditing, monitoring, and analytics purposes.\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_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"
                  },
                  "event": {
                    "type": "string",
                    "description": "Filter by user activity event type.",
                    "enum": [
                      "NONE",
                      "SIP_LOGIN",
                      "SIP_LOGOUT"
                    ],
                    "example": "SIP_LOGIN"
                  }
                },
                "required": [
                  "start_time",
                  "end_time",
                  "event"
                ]
              },
              "examples": {
                "default": {
                  "summary": "Example request for retrieving current user activity records",
                  "value": {
                    "start_time": "2024-01-01T00:00:00Z",
                    "end_time": "2024-01-31T23:59:59Z",
                    "event": "SIP_LOGIN"
                  }
                }
              }
            }
          }
        },
        "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": {
                          "name": {
                            "type": "string",
                            "description": "User display name.",
                            "example": "John Doe"
                          },
                          "number": {
                            "type": "string",
                            "description": "User number.",
                            "example": "101"
                          },
                          "event": {
                            "type": "string",
                            "description": "Filter by user activity event type.",
                            "enum": [
                              "NONE",
                              "SIP_LOGIN",
                              "SIP_LOGOUT"
                            ],
                            "example": "SIP_LOGIN"
                          },
                          "device": {
                            "type": "string",
                            "description": "Device type used by the user.",
                            "example": "SIP Phone"
                          },
                          "address": {
                            "type": "string",
                            "description": "IP address of the user.",
                            "example": "192.168.0.11:5060"
                          },
                          "time": {
                            "type": "string",
                            "format": "date-time",
                            "description": "Timestamp of the timeseries point.",
                            "example": "2025-09-29T10:00:00-04:00"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "Example response for retrieving current user activity records",
                    "value": {
                      "count": 1,
                      "items": [
                        {
                          "name": "Jason",
                          "number": "101",
                          "event": "SIP_LOGIN",
                          "device": "Yealink",
                          "address": "192.168.0.11:5060",
                          "time": "2025-09-28T00:00:00Z"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Error response"
          }
        }
      }
    },
    "/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": {
                        "oneOf": [
                          {
                            "allOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "id": {
                                    "allOf": [
                                      {
                                        "type": "string",
                                        "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                                      }
                                    ],
                                    "description": "The unique ID of report.",
                                    "readOnly": true
                                  },
                                  "type": {
                                    "type": "string",
                                    "enum": [
                                      "ABANDONDELAY",
                                      "AGENTDETAILSACTIVITY",
                                      "AGENTNOTREADYCODE",
                                      "AGENTQUEUEREPORT",
                                      "AGENTSUMMARYACTIVITY",
                                      "CALLBACKSUMMARY",
                                      "CALLLOGS",
                                      "DAILYSTATISTICS",
                                      "QUEUESUMMARY",
                                      "RINGGROUPPERFORMANCE",
                                      "SPEEDOFACCEPT",
                                      "USERSTATISTICS"
                                    ],
                                    "description": "Report type, string enum."
                                  },
                                  "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": "crontab 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"
                                  }
                                }
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "params": {
                                    "allOf": [
                                      {
                                        "type": "object",
                                        "properties": {
                                          "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
                                            ]
                                          }
                                        }
                                      },
                                      {
                                        "type": "object",
                                        "required": [
                                          "from",
                                          "to",
                                          "time_range"
                                        ],
                                        "properties": {
                                          "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_THIRTY_DAYS",
                                              "CUSTOM"
                                            ]
                                          }
                                        }
                                      },
                                      {
                                        "type": "object",
                                        "required": [
                                          "queue"
                                        ],
                                        "properties": {
                                          "queue": {
                                            "type": "array",
                                            "items": {
                                              "type": "string",
                                              "description": "Queue number.",
                                              "example": "8000"
                                            }
                                          }
                                        }
                                      }
                                    ]
                                  }
                                }
                              }
                            ],
                            "required": [
                              "type"
                            ],
                            "title": "Abandon Delay"
                          },
                          {
                            "allOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "id": {
                                    "allOf": [
                                      {
                                        "type": "string",
                                        "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                                      }
                                    ],
                                    "description": "The unique ID of report.",
                                    "readOnly": true
                                  },
                                  "type": {
                                    "type": "string",
                                    "enum": [
                                      "ABANDONDELAY",
                                      "AGENTDETAILSACTIVITY",
                                      "AGENTNOTREADYCODE",
                                      "AGENTQUEUEREPORT",
                                      "AGENTSUMMARYACTIVITY",
                                      "CALLBACKSUMMARY",
                                      "CALLLOGS",
                                      "DAILYSTATISTICS",
                                      "QUEUESUMMARY",
                                      "RINGGROUPPERFORMANCE",
                                      "SPEEDOFACCEPT",
                                      "USERSTATISTICS"
                                    ],
                                    "description": "Report type, string enum."
                                  },
                                  "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": "crontab 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"
                                  }
                                }
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "params": {
                                    "allOf": [
                                      {
                                        "type": "object",
                                        "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."
                                          }
                                        }
                                      },
                                      {
                                        "type": "object",
                                        "required": [
                                          "from",
                                          "to",
                                          "time_range"
                                        ],
                                        "properties": {
                                          "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_THIRTY_DAYS",
                                              "CUSTOM"
                                            ]
                                          }
                                        }
                                      }
                                    ]
                                  }
                                }
                              }
                            ],
                            "title": "Agent Activity Details"
                          },
                          {
                            "allOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "id": {
                                    "allOf": [
                                      {
                                        "type": "string",
                                        "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                                      }
                                    ],
                                    "description": "The unique ID of report.",
                                    "readOnly": true
                                  },
                                  "type": {
                                    "type": "string",
                                    "enum": [
                                      "ABANDONDELAY",
                                      "AGENTDETAILSACTIVITY",
                                      "AGENTNOTREADYCODE",
                                      "AGENTQUEUEREPORT",
                                      "AGENTSUMMARYACTIVITY",
                                      "CALLBACKSUMMARY",
                                      "CALLLOGS",
                                      "DAILYSTATISTICS",
                                      "QUEUESUMMARY",
                                      "RINGGROUPPERFORMANCE",
                                      "SPEEDOFACCEPT",
                                      "USERSTATISTICS"
                                    ],
                                    "description": "Report type, string enum."
                                  },
                                  "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": "crontab 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"
                                  }
                                }
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "params": {
                                    "allOf": [
                                      {
                                        "type": "object",
                                        "properties": {
                                          "queue": {
                                            "type": "string",
                                            "description": "Queue number.",
                                            "example": "8000"
                                          }
                                        }
                                      },
                                      {
                                        "type": "object",
                                        "required": [
                                          "from",
                                          "to",
                                          "time_range"
                                        ],
                                        "properties": {
                                          "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_THIRTY_DAYS",
                                              "CUSTOM"
                                            ]
                                          }
                                        }
                                      },
                                      {
                                        "type": "object",
                                        "required": [
                                          "agent"
                                        ],
                                        "properties": {
                                          "agent": {
                                            "type": "array",
                                            "items": {
                                              "type": "string",
                                              "description": "Agent number.",
                                              "example": "101"
                                            }
                                          }
                                        }
                                      }
                                    ]
                                  }
                                }
                              }
                            ],
                            "title": "Agent Activity Summary"
                          },
                          {
                            "allOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "id": {
                                    "allOf": [
                                      {
                                        "type": "string",
                                        "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                                      }
                                    ],
                                    "description": "The unique ID of report.",
                                    "readOnly": true
                                  },
                                  "type": {
                                    "type": "string",
                                    "enum": [
                                      "ABANDONDELAY",
                                      "AGENTDETAILSACTIVITY",
                                      "AGENTNOTREADYCODE",
                                      "AGENTQUEUEREPORT",
                                      "AGENTSUMMARYACTIVITY",
                                      "CALLBACKSUMMARY",
                                      "CALLLOGS",
                                      "DAILYSTATISTICS",
                                      "QUEUESUMMARY",
                                      "RINGGROUPPERFORMANCE",
                                      "SPEEDOFACCEPT",
                                      "USERSTATISTICS"
                                    ],
                                    "description": "Report type, string enum."
                                  },
                                  "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": "crontab 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"
                                  }
                                }
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "params": {
                                    "allOf": [
                                      {
                                        "type": "object",
                                        "properties": {
                                          "queue": {
                                            "type": "string",
                                            "description": "Queue number.",
                                            "example": "8000"
                                          },
                                          "reason_code": {
                                            "type": "string",
                                            "description": "Reason code for agent not ready status."
                                          }
                                        }
                                      },
                                      {
                                        "type": "object",
                                        "required": [
                                          "from",
                                          "to",
                                          "time_range"
                                        ],
                                        "properties": {
                                          "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_THIRTY_DAYS",
                                              "CUSTOM"
                                            ]
                                          }
                                        }
                                      },
                                      {
                                        "type": "object",
                                        "required": [
                                          "agent"
                                        ],
                                        "properties": {
                                          "agent": {
                                            "type": "array",
                                            "items": {
                                              "type": "string",
                                              "description": "Agent number.",
                                              "example": "101"
                                            }
                                          }
                                        }
                                      }
                                    ]
                                  }
                                }
                              }
                            ],
                            "title": "Agent Not Ready Code"
                          },
                          {
                            "allOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "id": {
                                    "allOf": [
                                      {
                                        "type": "string",
                                        "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                                      }
                                    ],
                                    "description": "The unique ID of report.",
                                    "readOnly": true
                                  },
                                  "type": {
                                    "type": "string",
                                    "enum": [
                                      "ABANDONDELAY",
                                      "AGENTDETAILSACTIVITY",
                                      "AGENTNOTREADYCODE",
                                      "AGENTQUEUEREPORT",
                                      "AGENTSUMMARYACTIVITY",
                                      "CALLBACKSUMMARY",
                                      "CALLLOGS",
                                      "DAILYSTATISTICS",
                                      "QUEUESUMMARY",
                                      "RINGGROUPPERFORMANCE",
                                      "SPEEDOFACCEPT",
                                      "USERSTATISTICS"
                                    ],
                                    "description": "Report type, string enum."
                                  },
                                  "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": "crontab 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"
                                  }
                                }
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "params": {
                                    "allOf": [
                                      {
                                        "type": "object",
                                        "required": [
                                          "from",
                                          "to",
                                          "time_range"
                                        ],
                                        "properties": {
                                          "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_THIRTY_DAYS",
                                              "CUSTOM"
                                            ]
                                          }
                                        }
                                      },
                                      {
                                        "type": "object",
                                        "required": [
                                          "queue"
                                        ],
                                        "properties": {
                                          "queue": {
                                            "type": "array",
                                            "items": {
                                              "type": "string",
                                              "description": "Queue number.",
                                              "example": "8000"
                                            }
                                          }
                                        }
                                      }
                                    ]
                                  }
                                }
                              }
                            ],
                            "title": "Agent Queue Report"
                          },
                          {
                            "allOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "id": {
                                    "allOf": [
                                      {
                                        "type": "string",
                                        "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                                      }
                                    ],
                                    "description": "The unique ID of report.",
                                    "readOnly": true
                                  },
                                  "type": {
                                    "type": "string",
                                    "enum": [
                                      "ABANDONDELAY",
                                      "AGENTDETAILSACTIVITY",
                                      "AGENTNOTREADYCODE",
                                      "AGENTQUEUEREPORT",
                                      "AGENTSUMMARYACTIVITY",
                                      "CALLBACKSUMMARY",
                                      "CALLLOGS",
                                      "DAILYSTATISTICS",
                                      "QUEUESUMMARY",
                                      "RINGGROUPPERFORMANCE",
                                      "SPEEDOFACCEPT",
                                      "USERSTATISTICS"
                                    ],
                                    "description": "Report type, string enum."
                                  },
                                  "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": "crontab 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"
                                  }
                                }
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "params": {
                                    "allOf": [
                                      {
                                        "type": "object",
                                        "required": [
                                          "from",
                                          "to",
                                          "time_range"
                                        ],
                                        "properties": {
                                          "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_THIRTY_DAYS",
                                              "CUSTOM"
                                            ]
                                          }
                                        }
                                      },
                                      {
                                        "type": "object",
                                        "required": [
                                          "queue"
                                        ],
                                        "properties": {
                                          "queue": {
                                            "type": "array",
                                            "items": {
                                              "type": "string",
                                              "description": "Queue number.",
                                              "example": "8000"
                                            }
                                          }
                                        }
                                      }
                                    ]
                                  }
                                }
                              }
                            ],
                            "required": [
                              "type"
                            ],
                            "title": "Callback Summary"
                          },
                          {
                            "allOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "id": {
                                    "allOf": [
                                      {
                                        "type": "string",
                                        "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                                      }
                                    ],
                                    "description": "The unique ID of report.",
                                    "readOnly": true
                                  },
                                  "type": {
                                    "type": "string",
                                    "enum": [
                                      "ABANDONDELAY",
                                      "AGENTDETAILSACTIVITY",
                                      "AGENTNOTREADYCODE",
                                      "AGENTQUEUEREPORT",
                                      "AGENTSUMMARYACTIVITY",
                                      "CALLBACKSUMMARY",
                                      "CALLLOGS",
                                      "DAILYSTATISTICS",
                                      "QUEUESUMMARY",
                                      "RINGGROUPPERFORMANCE",
                                      "SPEEDOFACCEPT",
                                      "USERSTATISTICS"
                                    ],
                                    "description": "Report type, string enum."
                                  },
                                  "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": "crontab 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"
                                  }
                                }
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "params": {
                                    "allOf": [
                                      {
                                        "type": "object",
                                        "required": [
                                          "from",
                                          "to",
                                          "time_range"
                                        ],
                                        "properties": {
                                          "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_THIRTY_DAYS",
                                              "CUSTOM"
                                            ]
                                          }
                                        }
                                      },
                                      {
                                        "type": "object",
                                        "required": [
                                          "status",
                                          "direction"
                                        ],
                                        "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"
                                            ]
                                          }
                                        }
                                      }
                                    ]
                                  }
                                }
                              }
                            ],
                            "title": "Calllogs"
                          },
                          {
                            "allOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "id": {
                                    "allOf": [
                                      {
                                        "type": "string",
                                        "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                                      }
                                    ],
                                    "description": "The unique ID of report.",
                                    "readOnly": true
                                  },
                                  "type": {
                                    "type": "string",
                                    "enum": [
                                      "ABANDONDELAY",
                                      "AGENTDETAILSACTIVITY",
                                      "AGENTNOTREADYCODE",
                                      "AGENTQUEUEREPORT",
                                      "AGENTSUMMARYACTIVITY",
                                      "CALLBACKSUMMARY",
                                      "CALLLOGS",
                                      "DAILYSTATISTICS",
                                      "QUEUESUMMARY",
                                      "RINGGROUPPERFORMANCE",
                                      "SPEEDOFACCEPT",
                                      "USERSTATISTICS"
                                    ],
                                    "description": "Report type, string enum."
                                  },
                                  "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": "crontab 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"
                                  }
                                }
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "params": {
                                    "allOf": [
                                      {
                                        "type": "object",
                                        "required": [
                                          "from",
                                          "to",
                                          "time_range"
                                        ],
                                        "properties": {
                                          "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_THIRTY_DAYS",
                                              "CUSTOM"
                                            ]
                                          }
                                        }
                                      },
                                      {
                                        "type": "object",
                                        "required": [
                                          "status",
                                          "direction"
                                        ],
                                        "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"
                                            ]
                                          }
                                        }
                                      }
                                    ]
                                  }
                                }
                              }
                            ],
                            "title": "Daily Statistics"
                          },
                          {
                            "allOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "id": {
                                    "allOf": [
                                      {
                                        "type": "string",
                                        "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                                      }
                                    ],
                                    "description": "The unique ID of report.",
                                    "readOnly": true
                                  },
                                  "type": {
                                    "type": "string",
                                    "enum": [
                                      "ABANDONDELAY",
                                      "AGENTDETAILSACTIVITY",
                                      "AGENTNOTREADYCODE",
                                      "AGENTQUEUEREPORT",
                                      "AGENTSUMMARYACTIVITY",
                                      "CALLBACKSUMMARY",
                                      "CALLLOGS",
                                      "DAILYSTATISTICS",
                                      "QUEUESUMMARY",
                                      "RINGGROUPPERFORMANCE",
                                      "SPEEDOFACCEPT",
                                      "USERSTATISTICS"
                                    ],
                                    "description": "Report type, string enum."
                                  },
                                  "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": "crontab 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"
                                  }
                                }
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "params": {
                                    "allOf": [
                                      {
                                        "type": "object",
                                        "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"
                                          }
                                        }
                                      },
                                      {
                                        "type": "object",
                                        "required": [
                                          "from",
                                          "to",
                                          "time_range"
                                        ],
                                        "properties": {
                                          "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_THIRTY_DAYS",
                                              "CUSTOM"
                                            ]
                                          }
                                        }
                                      }
                                    ]
                                  }
                                }
                              }
                            ],
                            "title": "Queue Summary"
                          },
                          {
                            "allOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "id": {
                                    "allOf": [
                                      {
                                        "type": "string",
                                        "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                                      }
                                    ],
                                    "description": "The unique ID of report.",
                                    "readOnly": true
                                  },
                                  "type": {
                                    "type": "string",
                                    "enum": [
                                      "ABANDONDELAY",
                                      "AGENTDETAILSACTIVITY",
                                      "AGENTNOTREADYCODE",
                                      "AGENTQUEUEREPORT",
                                      "AGENTSUMMARYACTIVITY",
                                      "CALLBACKSUMMARY",
                                      "CALLLOGS",
                                      "DAILYSTATISTICS",
                                      "QUEUESUMMARY",
                                      "RINGGROUPPERFORMANCE",
                                      "SPEEDOFACCEPT",
                                      "USERSTATISTICS"
                                    ],
                                    "description": "Report type, string enum."
                                  },
                                  "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": "crontab 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"
                                  }
                                }
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "params": {
                                    "allOf": [
                                      {
                                        "type": "object",
                                        "properties": {
                                          "ring_group": {
                                            "type": "array",
                                            "items": {
                                              "type": "string"
                                            },
                                            "description": "List of ring groups.\n"
                                          }
                                        }
                                      },
                                      {
                                        "type": "object",
                                        "required": [
                                          "from",
                                          "to",
                                          "time_range"
                                        ],
                                        "properties": {
                                          "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_THIRTY_DAYS",
                                              "CUSTOM"
                                            ]
                                          }
                                        }
                                      }
                                    ]
                                  }
                                }
                              }
                            ],
                            "required": [
                              "type"
                            ],
                            "title": "Ring Group Performance"
                          },
                          {
                            "allOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "id": {
                                    "allOf": [
                                      {
                                        "type": "string",
                                        "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                                      }
                                    ],
                                    "description": "The unique ID of report.",
                                    "readOnly": true
                                  },
                                  "type": {
                                    "type": "string",
                                    "enum": [
                                      "ABANDONDELAY",
                                      "AGENTDETAILSACTIVITY",
                                      "AGENTNOTREADYCODE",
                                      "AGENTQUEUEREPORT",
                                      "AGENTSUMMARYACTIVITY",
                                      "CALLBACKSUMMARY",
                                      "CALLLOGS",
                                      "DAILYSTATISTICS",
                                      "QUEUESUMMARY",
                                      "RINGGROUPPERFORMANCE",
                                      "SPEEDOFACCEPT",
                                      "USERSTATISTICS"
                                    ],
                                    "description": "Report type, string enum."
                                  },
                                  "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": "crontab 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"
                                  }
                                }
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "params": {
                                    "allOf": [
                                      {
                                        "type": "object",
                                        "properties": {
                                          "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
                                            ]
                                          }
                                        }
                                      },
                                      {
                                        "type": "object",
                                        "required": [
                                          "from",
                                          "to",
                                          "time_range"
                                        ],
                                        "properties": {
                                          "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_THIRTY_DAYS",
                                              "CUSTOM"
                                            ]
                                          }
                                        }
                                      },
                                      {
                                        "type": "object",
                                        "required": [
                                          "queue"
                                        ],
                                        "properties": {
                                          "queue": {
                                            "type": "array",
                                            "items": {
                                              "type": "string",
                                              "description": "Queue number.",
                                              "example": "8000"
                                            }
                                          }
                                        }
                                      }
                                    ]
                                  }
                                }
                              }
                            ],
                            "title": "Speed Of Accept"
                          },
                          {
                            "allOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "id": {
                                    "allOf": [
                                      {
                                        "type": "string",
                                        "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                                      }
                                    ],
                                    "description": "The unique ID of report.",
                                    "readOnly": true
                                  },
                                  "type": {
                                    "type": "string",
                                    "enum": [
                                      "ABANDONDELAY",
                                      "AGENTDETAILSACTIVITY",
                                      "AGENTNOTREADYCODE",
                                      "AGENTQUEUEREPORT",
                                      "AGENTSUMMARYACTIVITY",
                                      "CALLBACKSUMMARY",
                                      "CALLLOGS",
                                      "DAILYSTATISTICS",
                                      "QUEUESUMMARY",
                                      "RINGGROUPPERFORMANCE",
                                      "SPEEDOFACCEPT",
                                      "USERSTATISTICS"
                                    ],
                                    "description": "Report type, string enum."
                                  },
                                  "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": "crontab 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"
                                  }
                                }
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "params": {
                                    "allOf": [
                                      {
                                        "type": "object",
                                        "properties": {
                                          "extension_number": {
                                            "type": "string",
                                            "description": "Extension number",
                                            "example": "101"
                                          }
                                        }
                                      },
                                      {
                                        "type": "object",
                                        "required": [
                                          "from",
                                          "to",
                                          "time_range"
                                        ],
                                        "properties": {
                                          "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_THIRTY_DAYS",
                                              "CUSTOM"
                                            ]
                                          }
                                        }
                                      },
                                      {
                                        "type": "object",
                                        "required": [
                                          "status",
                                          "direction"
                                        ],
                                        "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"
                                            ]
                                          }
                                        }
                                      }
                                    ]
                                  }
                                }
                              }
                            ],
                            "title": "User Statistics"
                          }
                        ],
                        "discriminator": {
                          "propertyName": "type",
                          "mapping": {
                            "ABANDONDELAY": "#/components/schemas/report_abandon_delay",
                            "AGENTDETAILSACTIVITY": "#/components/schemas/report_agent_activity_details",
                            "AGENTNOTREADYCODE": "#/components/schemas/report_agent_not_ready_code",
                            "AGENTQUEUEREPORT": "#/components/schemas/report_agent_queue_report",
                            "AGENTSUMMARYACTIVITY": "#/components/schemas/report_agent_activity_summary",
                            "CALLBACKSUMMARY": "#/components/schemas/report_callback_summary",
                            "CALLLOGS": "#/components/schemas/report_calllogs",
                            "DAILYSTATISTICS": "#/components/schemas/report_daily_statistics",
                            "QUEUESUMMARY": "#/components/schemas/report_queue_summary",
                            "RINGGROUPPERFORMANCE": "#/components/schemas/report_ring_group_performance",
                            "SPEEDOFACCEPT": "#/components/schemas/report_speed_of_accept",
                            "USERSTATISTICS": "#/components/schemas/report_user_statistics"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "default": {
                    "value": {
                      "count": 2,
                      "items": [
                        {
                          "id": "1041190429342564352",
                          "schedule_name": "User Statistics Report",
                          "type": "USERSTATISTICS",
                          "params": {
                            "to": "2025-11-02T00:00:00+08:00",
                            "from": "2025-11-01T00:00:00+08:00",
                            "status": "ANSWERED",
                            "direction": "OUTBOUND",
                            "time_range": "TODAY",
                            "extension_number": "101;102-108"
                          },
                          "format": "CSV",
                          "active": true,
                          "time_zone": "Asia/Shanghai",
                          "start_time": "2025-11-01T00:00:00+08:00",
                          "end_time": "2025-11-20T00:00:00+08:00",
                          "cron_expr": "",
                          "create_time": "2025-11-13T11:19:02.738568+08:00",
                          "recipients": "user1@example.com;user2@example.com",
                          "last_run_time": "2025-11-13T11:19:02.738568+08:00"
                        },
                        {
                          "id": "1041190429342564355",
                          "schedule_name": "User Statistics Report2",
                          "type": "USERSTATISTICS",
                          "params": {
                            "to": "2025-11-03T00:00:00+08:00",
                            "from": "2025-11-02T00:00:00+08:00",
                            "status": "ANSWERED",
                            "direction": "OUTBOUND",
                            "time_range": "TODAY",
                            "extension_number": "101;102-108"
                          },
                          "format": "CSV",
                          "active": true,
                          "time_zone": "Asia/Shanghai",
                          "start_time": "2025-12-01T00:00:00+08:00",
                          "end_time": "2025-12-20T00:00:00+08:00",
                          "cron_expr": "",
                          "create_time": "2025-11-14T11:19:02.738568+08:00",
                          "recipients": "user1@example.com;user2@example.com",
                          "last_run_time": "2025-12-13T11:19:02.738568+08:00"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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": {
                "oneOf": [
                  {
                    "allOf": [
                      {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                              }
                            ],
                            "description": "The unique ID of report.",
                            "readOnly": true
                          },
                          "type": {
                            "type": "string",
                            "enum": [
                              "ABANDONDELAY",
                              "AGENTDETAILSACTIVITY",
                              "AGENTNOTREADYCODE",
                              "AGENTQUEUEREPORT",
                              "AGENTSUMMARYACTIVITY",
                              "CALLBACKSUMMARY",
                              "CALLLOGS",
                              "DAILYSTATISTICS",
                              "QUEUESUMMARY",
                              "RINGGROUPPERFORMANCE",
                              "SPEEDOFACCEPT",
                              "USERSTATISTICS"
                            ],
                            "description": "Report type, string enum."
                          },
                          "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": "crontab 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"
                          }
                        }
                      },
                      {
                        "type": "object",
                        "properties": {
                          "params": {
                            "allOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "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
                                    ]
                                  }
                                }
                              },
                              {
                                "type": "object",
                                "required": [
                                  "from",
                                  "to",
                                  "time_range"
                                ],
                                "properties": {
                                  "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_THIRTY_DAYS",
                                      "CUSTOM"
                                    ]
                                  }
                                }
                              },
                              {
                                "type": "object",
                                "required": [
                                  "queue"
                                ],
                                "properties": {
                                  "queue": {
                                    "type": "array",
                                    "items": {
                                      "type": "string",
                                      "description": "Queue number.",
                                      "example": "8000"
                                    }
                                  }
                                }
                              }
                            ]
                          }
                        }
                      }
                    ],
                    "required": [
                      "type"
                    ],
                    "title": "Abandon Delay"
                  },
                  {
                    "allOf": [
                      {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                              }
                            ],
                            "description": "The unique ID of report.",
                            "readOnly": true
                          },
                          "type": {
                            "type": "string",
                            "enum": [
                              "ABANDONDELAY",
                              "AGENTDETAILSACTIVITY",
                              "AGENTNOTREADYCODE",
                              "AGENTQUEUEREPORT",
                              "AGENTSUMMARYACTIVITY",
                              "CALLBACKSUMMARY",
                              "CALLLOGS",
                              "DAILYSTATISTICS",
                              "QUEUESUMMARY",
                              "RINGGROUPPERFORMANCE",
                              "SPEEDOFACCEPT",
                              "USERSTATISTICS"
                            ],
                            "description": "Report type, string enum."
                          },
                          "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": "crontab 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"
                          }
                        }
                      },
                      {
                        "type": "object",
                        "properties": {
                          "params": {
                            "allOf": [
                              {
                                "type": "object",
                                "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."
                                  }
                                }
                              },
                              {
                                "type": "object",
                                "required": [
                                  "from",
                                  "to",
                                  "time_range"
                                ],
                                "properties": {
                                  "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_THIRTY_DAYS",
                                      "CUSTOM"
                                    ]
                                  }
                                }
                              }
                            ]
                          }
                        }
                      }
                    ],
                    "title": "Agent Activity Details"
                  },
                  {
                    "allOf": [
                      {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                              }
                            ],
                            "description": "The unique ID of report.",
                            "readOnly": true
                          },
                          "type": {
                            "type": "string",
                            "enum": [
                              "ABANDONDELAY",
                              "AGENTDETAILSACTIVITY",
                              "AGENTNOTREADYCODE",
                              "AGENTQUEUEREPORT",
                              "AGENTSUMMARYACTIVITY",
                              "CALLBACKSUMMARY",
                              "CALLLOGS",
                              "DAILYSTATISTICS",
                              "QUEUESUMMARY",
                              "RINGGROUPPERFORMANCE",
                              "SPEEDOFACCEPT",
                              "USERSTATISTICS"
                            ],
                            "description": "Report type, string enum."
                          },
                          "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": "crontab 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"
                          }
                        }
                      },
                      {
                        "type": "object",
                        "properties": {
                          "params": {
                            "allOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "queue": {
                                    "type": "string",
                                    "description": "Queue number.",
                                    "example": "8000"
                                  }
                                }
                              },
                              {
                                "type": "object",
                                "required": [
                                  "from",
                                  "to",
                                  "time_range"
                                ],
                                "properties": {
                                  "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_THIRTY_DAYS",
                                      "CUSTOM"
                                    ]
                                  }
                                }
                              },
                              {
                                "type": "object",
                                "required": [
                                  "agent"
                                ],
                                "properties": {
                                  "agent": {
                                    "type": "array",
                                    "items": {
                                      "type": "string",
                                      "description": "Agent number.",
                                      "example": "101"
                                    }
                                  }
                                }
                              }
                            ]
                          }
                        }
                      }
                    ],
                    "title": "Agent Activity Summary"
                  },
                  {
                    "allOf": [
                      {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                              }
                            ],
                            "description": "The unique ID of report.",
                            "readOnly": true
                          },
                          "type": {
                            "type": "string",
                            "enum": [
                              "ABANDONDELAY",
                              "AGENTDETAILSACTIVITY",
                              "AGENTNOTREADYCODE",
                              "AGENTQUEUEREPORT",
                              "AGENTSUMMARYACTIVITY",
                              "CALLBACKSUMMARY",
                              "CALLLOGS",
                              "DAILYSTATISTICS",
                              "QUEUESUMMARY",
                              "RINGGROUPPERFORMANCE",
                              "SPEEDOFACCEPT",
                              "USERSTATISTICS"
                            ],
                            "description": "Report type, string enum."
                          },
                          "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": "crontab 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"
                          }
                        }
                      },
                      {
                        "type": "object",
                        "properties": {
                          "params": {
                            "allOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "queue": {
                                    "type": "string",
                                    "description": "Queue number.",
                                    "example": "8000"
                                  },
                                  "reason_code": {
                                    "type": "string",
                                    "description": "Reason code for agent not ready status."
                                  }
                                }
                              },
                              {
                                "type": "object",
                                "required": [
                                  "from",
                                  "to",
                                  "time_range"
                                ],
                                "properties": {
                                  "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_THIRTY_DAYS",
                                      "CUSTOM"
                                    ]
                                  }
                                }
                              },
                              {
                                "type": "object",
                                "required": [
                                  "agent"
                                ],
                                "properties": {
                                  "agent": {
                                    "type": "array",
                                    "items": {
                                      "type": "string",
                                      "description": "Agent number.",
                                      "example": "101"
                                    }
                                  }
                                }
                              }
                            ]
                          }
                        }
                      }
                    ],
                    "title": "Agent Not Ready Code"
                  },
                  {
                    "allOf": [
                      {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                              }
                            ],
                            "description": "The unique ID of report.",
                            "readOnly": true
                          },
                          "type": {
                            "type": "string",
                            "enum": [
                              "ABANDONDELAY",
                              "AGENTDETAILSACTIVITY",
                              "AGENTNOTREADYCODE",
                              "AGENTQUEUEREPORT",
                              "AGENTSUMMARYACTIVITY",
                              "CALLBACKSUMMARY",
                              "CALLLOGS",
                              "DAILYSTATISTICS",
                              "QUEUESUMMARY",
                              "RINGGROUPPERFORMANCE",
                              "SPEEDOFACCEPT",
                              "USERSTATISTICS"
                            ],
                            "description": "Report type, string enum."
                          },
                          "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": "crontab 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"
                          }
                        }
                      },
                      {
                        "type": "object",
                        "properties": {
                          "params": {
                            "allOf": [
                              {
                                "type": "object",
                                "required": [
                                  "from",
                                  "to",
                                  "time_range"
                                ],
                                "properties": {
                                  "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_THIRTY_DAYS",
                                      "CUSTOM"
                                    ]
                                  }
                                }
                              },
                              {
                                "type": "object",
                                "required": [
                                  "queue"
                                ],
                                "properties": {
                                  "queue": {
                                    "type": "array",
                                    "items": {
                                      "type": "string",
                                      "description": "Queue number.",
                                      "example": "8000"
                                    }
                                  }
                                }
                              }
                            ]
                          }
                        }
                      }
                    ],
                    "title": "Agent Queue Report"
                  },
                  {
                    "allOf": [
                      {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                              }
                            ],
                            "description": "The unique ID of report.",
                            "readOnly": true
                          },
                          "type": {
                            "type": "string",
                            "enum": [
                              "ABANDONDELAY",
                              "AGENTDETAILSACTIVITY",
                              "AGENTNOTREADYCODE",
                              "AGENTQUEUEREPORT",
                              "AGENTSUMMARYACTIVITY",
                              "CALLBACKSUMMARY",
                              "CALLLOGS",
                              "DAILYSTATISTICS",
                              "QUEUESUMMARY",
                              "RINGGROUPPERFORMANCE",
                              "SPEEDOFACCEPT",
                              "USERSTATISTICS"
                            ],
                            "description": "Report type, string enum."
                          },
                          "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": "crontab 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"
                          }
                        }
                      },
                      {
                        "type": "object",
                        "properties": {
                          "params": {
                            "allOf": [
                              {
                                "type": "object",
                                "required": [
                                  "from",
                                  "to",
                                  "time_range"
                                ],
                                "properties": {
                                  "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_THIRTY_DAYS",
                                      "CUSTOM"
                                    ]
                                  }
                                }
                              },
                              {
                                "type": "object",
                                "required": [
                                  "queue"
                                ],
                                "properties": {
                                  "queue": {
                                    "type": "array",
                                    "items": {
                                      "type": "string",
                                      "description": "Queue number.",
                                      "example": "8000"
                                    }
                                  }
                                }
                              }
                            ]
                          }
                        }
                      }
                    ],
                    "required": [
                      "type"
                    ],
                    "title": "Callback Summary"
                  },
                  {
                    "allOf": [
                      {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                              }
                            ],
                            "description": "The unique ID of report.",
                            "readOnly": true
                          },
                          "type": {
                            "type": "string",
                            "enum": [
                              "ABANDONDELAY",
                              "AGENTDETAILSACTIVITY",
                              "AGENTNOTREADYCODE",
                              "AGENTQUEUEREPORT",
                              "AGENTSUMMARYACTIVITY",
                              "CALLBACKSUMMARY",
                              "CALLLOGS",
                              "DAILYSTATISTICS",
                              "QUEUESUMMARY",
                              "RINGGROUPPERFORMANCE",
                              "SPEEDOFACCEPT",
                              "USERSTATISTICS"
                            ],
                            "description": "Report type, string enum."
                          },
                          "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": "crontab 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"
                          }
                        }
                      },
                      {
                        "type": "object",
                        "properties": {
                          "params": {
                            "allOf": [
                              {
                                "type": "object",
                                "required": [
                                  "from",
                                  "to",
                                  "time_range"
                                ],
                                "properties": {
                                  "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_THIRTY_DAYS",
                                      "CUSTOM"
                                    ]
                                  }
                                }
                              },
                              {
                                "type": "object",
                                "required": [
                                  "status",
                                  "direction"
                                ],
                                "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"
                                    ]
                                  }
                                }
                              }
                            ]
                          }
                        }
                      }
                    ],
                    "title": "Calllogs"
                  },
                  {
                    "allOf": [
                      {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                              }
                            ],
                            "description": "The unique ID of report.",
                            "readOnly": true
                          },
                          "type": {
                            "type": "string",
                            "enum": [
                              "ABANDONDELAY",
                              "AGENTDETAILSACTIVITY",
                              "AGENTNOTREADYCODE",
                              "AGENTQUEUEREPORT",
                              "AGENTSUMMARYACTIVITY",
                              "CALLBACKSUMMARY",
                              "CALLLOGS",
                              "DAILYSTATISTICS",
                              "QUEUESUMMARY",
                              "RINGGROUPPERFORMANCE",
                              "SPEEDOFACCEPT",
                              "USERSTATISTICS"
                            ],
                            "description": "Report type, string enum."
                          },
                          "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": "crontab 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"
                          }
                        }
                      },
                      {
                        "type": "object",
                        "properties": {
                          "params": {
                            "allOf": [
                              {
                                "type": "object",
                                "required": [
                                  "from",
                                  "to",
                                  "time_range"
                                ],
                                "properties": {
                                  "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_THIRTY_DAYS",
                                      "CUSTOM"
                                    ]
                                  }
                                }
                              },
                              {
                                "type": "object",
                                "required": [
                                  "status",
                                  "direction"
                                ],
                                "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"
                                    ]
                                  }
                                }
                              }
                            ]
                          }
                        }
                      }
                    ],
                    "title": "Daily Statistics"
                  },
                  {
                    "allOf": [
                      {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                              }
                            ],
                            "description": "The unique ID of report.",
                            "readOnly": true
                          },
                          "type": {
                            "type": "string",
                            "enum": [
                              "ABANDONDELAY",
                              "AGENTDETAILSACTIVITY",
                              "AGENTNOTREADYCODE",
                              "AGENTQUEUEREPORT",
                              "AGENTSUMMARYACTIVITY",
                              "CALLBACKSUMMARY",
                              "CALLLOGS",
                              "DAILYSTATISTICS",
                              "QUEUESUMMARY",
                              "RINGGROUPPERFORMANCE",
                              "SPEEDOFACCEPT",
                              "USERSTATISTICS"
                            ],
                            "description": "Report type, string enum."
                          },
                          "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": "crontab 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"
                          }
                        }
                      },
                      {
                        "type": "object",
                        "properties": {
                          "params": {
                            "allOf": [
                              {
                                "type": "object",
                                "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"
                                  }
                                }
                              },
                              {
                                "type": "object",
                                "required": [
                                  "from",
                                  "to",
                                  "time_range"
                                ],
                                "properties": {
                                  "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_THIRTY_DAYS",
                                      "CUSTOM"
                                    ]
                                  }
                                }
                              }
                            ]
                          }
                        }
                      }
                    ],
                    "title": "Queue Summary"
                  },
                  {
                    "allOf": [
                      {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                              }
                            ],
                            "description": "The unique ID of report.",
                            "readOnly": true
                          },
                          "type": {
                            "type": "string",
                            "enum": [
                              "ABANDONDELAY",
                              "AGENTDETAILSACTIVITY",
                              "AGENTNOTREADYCODE",
                              "AGENTQUEUEREPORT",
                              "AGENTSUMMARYACTIVITY",
                              "CALLBACKSUMMARY",
                              "CALLLOGS",
                              "DAILYSTATISTICS",
                              "QUEUESUMMARY",
                              "RINGGROUPPERFORMANCE",
                              "SPEEDOFACCEPT",
                              "USERSTATISTICS"
                            ],
                            "description": "Report type, string enum."
                          },
                          "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": "crontab 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"
                          }
                        }
                      },
                      {
                        "type": "object",
                        "properties": {
                          "params": {
                            "allOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "ring_group": {
                                    "type": "array",
                                    "items": {
                                      "type": "string"
                                    },
                                    "description": "List of ring groups.\n"
                                  }
                                }
                              },
                              {
                                "type": "object",
                                "required": [
                                  "from",
                                  "to",
                                  "time_range"
                                ],
                                "properties": {
                                  "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_THIRTY_DAYS",
                                      "CUSTOM"
                                    ]
                                  }
                                }
                              }
                            ]
                          }
                        }
                      }
                    ],
                    "required": [
                      "type"
                    ],
                    "title": "Ring Group Performance"
                  },
                  {
                    "allOf": [
                      {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                              }
                            ],
                            "description": "The unique ID of report.",
                            "readOnly": true
                          },
                          "type": {
                            "type": "string",
                            "enum": [
                              "ABANDONDELAY",
                              "AGENTDETAILSACTIVITY",
                              "AGENTNOTREADYCODE",
                              "AGENTQUEUEREPORT",
                              "AGENTSUMMARYACTIVITY",
                              "CALLBACKSUMMARY",
                              "CALLLOGS",
                              "DAILYSTATISTICS",
                              "QUEUESUMMARY",
                              "RINGGROUPPERFORMANCE",
                              "SPEEDOFACCEPT",
                              "USERSTATISTICS"
                            ],
                            "description": "Report type, string enum."
                          },
                          "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": "crontab 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"
                          }
                        }
                      },
                      {
                        "type": "object",
                        "properties": {
                          "params": {
                            "allOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "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
                                    ]
                                  }
                                }
                              },
                              {
                                "type": "object",
                                "required": [
                                  "from",
                                  "to",
                                  "time_range"
                                ],
                                "properties": {
                                  "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_THIRTY_DAYS",
                                      "CUSTOM"
                                    ]
                                  }
                                }
                              },
                              {
                                "type": "object",
                                "required": [
                                  "queue"
                                ],
                                "properties": {
                                  "queue": {
                                    "type": "array",
                                    "items": {
                                      "type": "string",
                                      "description": "Queue number.",
                                      "example": "8000"
                                    }
                                  }
                                }
                              }
                            ]
                          }
                        }
                      }
                    ],
                    "title": "Speed Of Accept"
                  },
                  {
                    "allOf": [
                      {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                              }
                            ],
                            "description": "The unique ID of report.",
                            "readOnly": true
                          },
                          "type": {
                            "type": "string",
                            "enum": [
                              "ABANDONDELAY",
                              "AGENTDETAILSACTIVITY",
                              "AGENTNOTREADYCODE",
                              "AGENTQUEUEREPORT",
                              "AGENTSUMMARYACTIVITY",
                              "CALLBACKSUMMARY",
                              "CALLLOGS",
                              "DAILYSTATISTICS",
                              "QUEUESUMMARY",
                              "RINGGROUPPERFORMANCE",
                              "SPEEDOFACCEPT",
                              "USERSTATISTICS"
                            ],
                            "description": "Report type, string enum."
                          },
                          "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": "crontab 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"
                          }
                        }
                      },
                      {
                        "type": "object",
                        "properties": {
                          "params": {
                            "allOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "extension_number": {
                                    "type": "string",
                                    "description": "Extension number",
                                    "example": "101"
                                  }
                                }
                              },
                              {
                                "type": "object",
                                "required": [
                                  "from",
                                  "to",
                                  "time_range"
                                ],
                                "properties": {
                                  "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_THIRTY_DAYS",
                                      "CUSTOM"
                                    ]
                                  }
                                }
                              },
                              {
                                "type": "object",
                                "required": [
                                  "status",
                                  "direction"
                                ],
                                "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"
                                    ]
                                  }
                                }
                              }
                            ]
                          }
                        }
                      }
                    ],
                    "title": "User Statistics"
                  }
                ],
                "discriminator": {
                  "propertyName": "type",
                  "mapping": {
                    "ABANDONDELAY": "#/components/schemas/report_abandon_delay",
                    "AGENTDETAILSACTIVITY": "#/components/schemas/report_agent_activity_details",
                    "AGENTNOTREADYCODE": "#/components/schemas/report_agent_not_ready_code",
                    "AGENTQUEUEREPORT": "#/components/schemas/report_agent_queue_report",
                    "AGENTSUMMARYACTIVITY": "#/components/schemas/report_agent_activity_summary",
                    "CALLBACKSUMMARY": "#/components/schemas/report_callback_summary",
                    "CALLLOGS": "#/components/schemas/report_calllogs",
                    "DAILYSTATISTICS": "#/components/schemas/report_daily_statistics",
                    "QUEUESUMMARY": "#/components/schemas/report_queue_summary",
                    "RINGGROUPPERFORMANCE": "#/components/schemas/report_ring_group_performance",
                    "SPEEDOFACCEPT": "#/components/schemas/report_speed_of_accept",
                    "USERSTATISTICS": "#/components/schemas/report_user_statistics"
                  }
                }
              },
              "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": "ANSWERED",
                      "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"
                    }
                  }
                },
                "examples": {
                  "default": {
                    "summary": "",
                    "value": {
                      "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"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful retrieval of the report job details.",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "allOf": [
                                {
                                  "type": "string",
                                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                                }
                              ],
                              "description": "The unique ID of report.",
                              "readOnly": true
                            },
                            "type": {
                              "type": "string",
                              "enum": [
                                "ABANDONDELAY",
                                "AGENTDETAILSACTIVITY",
                                "AGENTNOTREADYCODE",
                                "AGENTQUEUEREPORT",
                                "AGENTSUMMARYACTIVITY",
                                "CALLBACKSUMMARY",
                                "CALLLOGS",
                                "DAILYSTATISTICS",
                                "QUEUESUMMARY",
                                "RINGGROUPPERFORMANCE",
                                "SPEEDOFACCEPT",
                                "USERSTATISTICS"
                              ],
                              "description": "Report type, string enum."
                            },
                            "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": "crontab 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"
                            }
                          }
                        },
                        {
                          "type": "object",
                          "properties": {
                            "params": {
                              "allOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "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
                                      ]
                                    }
                                  }
                                },
                                {
                                  "type": "object",
                                  "required": [
                                    "from",
                                    "to",
                                    "time_range"
                                  ],
                                  "properties": {
                                    "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_THIRTY_DAYS",
                                        "CUSTOM"
                                      ]
                                    }
                                  }
                                },
                                {
                                  "type": "object",
                                  "required": [
                                    "queue"
                                  ],
                                  "properties": {
                                    "queue": {
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "description": "Queue number.",
                                        "example": "8000"
                                      }
                                    }
                                  }
                                }
                              ]
                            }
                          }
                        }
                      ],
                      "required": [
                        "type"
                      ],
                      "title": "Abandon Delay"
                    },
                    {
                      "allOf": [
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "allOf": [
                                {
                                  "type": "string",
                                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                                }
                              ],
                              "description": "The unique ID of report.",
                              "readOnly": true
                            },
                            "type": {
                              "type": "string",
                              "enum": [
                                "ABANDONDELAY",
                                "AGENTDETAILSACTIVITY",
                                "AGENTNOTREADYCODE",
                                "AGENTQUEUEREPORT",
                                "AGENTSUMMARYACTIVITY",
                                "CALLBACKSUMMARY",
                                "CALLLOGS",
                                "DAILYSTATISTICS",
                                "QUEUESUMMARY",
                                "RINGGROUPPERFORMANCE",
                                "SPEEDOFACCEPT",
                                "USERSTATISTICS"
                              ],
                              "description": "Report type, string enum."
                            },
                            "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": "crontab 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"
                            }
                          }
                        },
                        {
                          "type": "object",
                          "properties": {
                            "params": {
                              "allOf": [
                                {
                                  "type": "object",
                                  "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."
                                    }
                                  }
                                },
                                {
                                  "type": "object",
                                  "required": [
                                    "from",
                                    "to",
                                    "time_range"
                                  ],
                                  "properties": {
                                    "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_THIRTY_DAYS",
                                        "CUSTOM"
                                      ]
                                    }
                                  }
                                }
                              ]
                            }
                          }
                        }
                      ],
                      "title": "Agent Activity Details"
                    },
                    {
                      "allOf": [
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "allOf": [
                                {
                                  "type": "string",
                                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                                }
                              ],
                              "description": "The unique ID of report.",
                              "readOnly": true
                            },
                            "type": {
                              "type": "string",
                              "enum": [
                                "ABANDONDELAY",
                                "AGENTDETAILSACTIVITY",
                                "AGENTNOTREADYCODE",
                                "AGENTQUEUEREPORT",
                                "AGENTSUMMARYACTIVITY",
                                "CALLBACKSUMMARY",
                                "CALLLOGS",
                                "DAILYSTATISTICS",
                                "QUEUESUMMARY",
                                "RINGGROUPPERFORMANCE",
                                "SPEEDOFACCEPT",
                                "USERSTATISTICS"
                              ],
                              "description": "Report type, string enum."
                            },
                            "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": "crontab 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"
                            }
                          }
                        },
                        {
                          "type": "object",
                          "properties": {
                            "params": {
                              "allOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "queue": {
                                      "type": "string",
                                      "description": "Queue number.",
                                      "example": "8000"
                                    }
                                  }
                                },
                                {
                                  "type": "object",
                                  "required": [
                                    "from",
                                    "to",
                                    "time_range"
                                  ],
                                  "properties": {
                                    "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_THIRTY_DAYS",
                                        "CUSTOM"
                                      ]
                                    }
                                  }
                                },
                                {
                                  "type": "object",
                                  "required": [
                                    "agent"
                                  ],
                                  "properties": {
                                    "agent": {
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "description": "Agent number.",
                                        "example": "101"
                                      }
                                    }
                                  }
                                }
                              ]
                            }
                          }
                        }
                      ],
                      "title": "Agent Activity Summary"
                    },
                    {
                      "allOf": [
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "allOf": [
                                {
                                  "type": "string",
                                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                                }
                              ],
                              "description": "The unique ID of report.",
                              "readOnly": true
                            },
                            "type": {
                              "type": "string",
                              "enum": [
                                "ABANDONDELAY",
                                "AGENTDETAILSACTIVITY",
                                "AGENTNOTREADYCODE",
                                "AGENTQUEUEREPORT",
                                "AGENTSUMMARYACTIVITY",
                                "CALLBACKSUMMARY",
                                "CALLLOGS",
                                "DAILYSTATISTICS",
                                "QUEUESUMMARY",
                                "RINGGROUPPERFORMANCE",
                                "SPEEDOFACCEPT",
                                "USERSTATISTICS"
                              ],
                              "description": "Report type, string enum."
                            },
                            "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": "crontab 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"
                            }
                          }
                        },
                        {
                          "type": "object",
                          "properties": {
                            "params": {
                              "allOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "queue": {
                                      "type": "string",
                                      "description": "Queue number.",
                                      "example": "8000"
                                    },
                                    "reason_code": {
                                      "type": "string",
                                      "description": "Reason code for agent not ready status."
                                    }
                                  }
                                },
                                {
                                  "type": "object",
                                  "required": [
                                    "from",
                                    "to",
                                    "time_range"
                                  ],
                                  "properties": {
                                    "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_THIRTY_DAYS",
                                        "CUSTOM"
                                      ]
                                    }
                                  }
                                },
                                {
                                  "type": "object",
                                  "required": [
                                    "agent"
                                  ],
                                  "properties": {
                                    "agent": {
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "description": "Agent number.",
                                        "example": "101"
                                      }
                                    }
                                  }
                                }
                              ]
                            }
                          }
                        }
                      ],
                      "title": "Agent Not Ready Code"
                    },
                    {
                      "allOf": [
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "allOf": [
                                {
                                  "type": "string",
                                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                                }
                              ],
                              "description": "The unique ID of report.",
                              "readOnly": true
                            },
                            "type": {
                              "type": "string",
                              "enum": [
                                "ABANDONDELAY",
                                "AGENTDETAILSACTIVITY",
                                "AGENTNOTREADYCODE",
                                "AGENTQUEUEREPORT",
                                "AGENTSUMMARYACTIVITY",
                                "CALLBACKSUMMARY",
                                "CALLLOGS",
                                "DAILYSTATISTICS",
                                "QUEUESUMMARY",
                                "RINGGROUPPERFORMANCE",
                                "SPEEDOFACCEPT",
                                "USERSTATISTICS"
                              ],
                              "description": "Report type, string enum."
                            },
                            "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": "crontab 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"
                            }
                          }
                        },
                        {
                          "type": "object",
                          "properties": {
                            "params": {
                              "allOf": [
                                {
                                  "type": "object",
                                  "required": [
                                    "from",
                                    "to",
                                    "time_range"
                                  ],
                                  "properties": {
                                    "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_THIRTY_DAYS",
                                        "CUSTOM"
                                      ]
                                    }
                                  }
                                },
                                {
                                  "type": "object",
                                  "required": [
                                    "queue"
                                  ],
                                  "properties": {
                                    "queue": {
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "description": "Queue number.",
                                        "example": "8000"
                                      }
                                    }
                                  }
                                }
                              ]
                            }
                          }
                        }
                      ],
                      "title": "Agent Queue Report"
                    },
                    {
                      "allOf": [
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "allOf": [
                                {
                                  "type": "string",
                                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                                }
                              ],
                              "description": "The unique ID of report.",
                              "readOnly": true
                            },
                            "type": {
                              "type": "string",
                              "enum": [
                                "ABANDONDELAY",
                                "AGENTDETAILSACTIVITY",
                                "AGENTNOTREADYCODE",
                                "AGENTQUEUEREPORT",
                                "AGENTSUMMARYACTIVITY",
                                "CALLBACKSUMMARY",
                                "CALLLOGS",
                                "DAILYSTATISTICS",
                                "QUEUESUMMARY",
                                "RINGGROUPPERFORMANCE",
                                "SPEEDOFACCEPT",
                                "USERSTATISTICS"
                              ],
                              "description": "Report type, string enum."
                            },
                            "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": "crontab 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"
                            }
                          }
                        },
                        {
                          "type": "object",
                          "properties": {
                            "params": {
                              "allOf": [
                                {
                                  "type": "object",
                                  "required": [
                                    "from",
                                    "to",
                                    "time_range"
                                  ],
                                  "properties": {
                                    "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_THIRTY_DAYS",
                                        "CUSTOM"
                                      ]
                                    }
                                  }
                                },
                                {
                                  "type": "object",
                                  "required": [
                                    "queue"
                                  ],
                                  "properties": {
                                    "queue": {
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "description": "Queue number.",
                                        "example": "8000"
                                      }
                                    }
                                  }
                                }
                              ]
                            }
                          }
                        }
                      ],
                      "required": [
                        "type"
                      ],
                      "title": "Callback Summary"
                    },
                    {
                      "allOf": [
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "allOf": [
                                {
                                  "type": "string",
                                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                                }
                              ],
                              "description": "The unique ID of report.",
                              "readOnly": true
                            },
                            "type": {
                              "type": "string",
                              "enum": [
                                "ABANDONDELAY",
                                "AGENTDETAILSACTIVITY",
                                "AGENTNOTREADYCODE",
                                "AGENTQUEUEREPORT",
                                "AGENTSUMMARYACTIVITY",
                                "CALLBACKSUMMARY",
                                "CALLLOGS",
                                "DAILYSTATISTICS",
                                "QUEUESUMMARY",
                                "RINGGROUPPERFORMANCE",
                                "SPEEDOFACCEPT",
                                "USERSTATISTICS"
                              ],
                              "description": "Report type, string enum."
                            },
                            "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": "crontab 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"
                            }
                          }
                        },
                        {
                          "type": "object",
                          "properties": {
                            "params": {
                              "allOf": [
                                {
                                  "type": "object",
                                  "required": [
                                    "from",
                                    "to",
                                    "time_range"
                                  ],
                                  "properties": {
                                    "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_THIRTY_DAYS",
                                        "CUSTOM"
                                      ]
                                    }
                                  }
                                },
                                {
                                  "type": "object",
                                  "required": [
                                    "status",
                                    "direction"
                                  ],
                                  "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"
                                      ]
                                    }
                                  }
                                }
                              ]
                            }
                          }
                        }
                      ],
                      "title": "Calllogs"
                    },
                    {
                      "allOf": [
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "allOf": [
                                {
                                  "type": "string",
                                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                                }
                              ],
                              "description": "The unique ID of report.",
                              "readOnly": true
                            },
                            "type": {
                              "type": "string",
                              "enum": [
                                "ABANDONDELAY",
                                "AGENTDETAILSACTIVITY",
                                "AGENTNOTREADYCODE",
                                "AGENTQUEUEREPORT",
                                "AGENTSUMMARYACTIVITY",
                                "CALLBACKSUMMARY",
                                "CALLLOGS",
                                "DAILYSTATISTICS",
                                "QUEUESUMMARY",
                                "RINGGROUPPERFORMANCE",
                                "SPEEDOFACCEPT",
                                "USERSTATISTICS"
                              ],
                              "description": "Report type, string enum."
                            },
                            "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": "crontab 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"
                            }
                          }
                        },
                        {
                          "type": "object",
                          "properties": {
                            "params": {
                              "allOf": [
                                {
                                  "type": "object",
                                  "required": [
                                    "from",
                                    "to",
                                    "time_range"
                                  ],
                                  "properties": {
                                    "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_THIRTY_DAYS",
                                        "CUSTOM"
                                      ]
                                    }
                                  }
                                },
                                {
                                  "type": "object",
                                  "required": [
                                    "status",
                                    "direction"
                                  ],
                                  "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"
                                      ]
                                    }
                                  }
                                }
                              ]
                            }
                          }
                        }
                      ],
                      "title": "Daily Statistics"
                    },
                    {
                      "allOf": [
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "allOf": [
                                {
                                  "type": "string",
                                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                                }
                              ],
                              "description": "The unique ID of report.",
                              "readOnly": true
                            },
                            "type": {
                              "type": "string",
                              "enum": [
                                "ABANDONDELAY",
                                "AGENTDETAILSACTIVITY",
                                "AGENTNOTREADYCODE",
                                "AGENTQUEUEREPORT",
                                "AGENTSUMMARYACTIVITY",
                                "CALLBACKSUMMARY",
                                "CALLLOGS",
                                "DAILYSTATISTICS",
                                "QUEUESUMMARY",
                                "RINGGROUPPERFORMANCE",
                                "SPEEDOFACCEPT",
                                "USERSTATISTICS"
                              ],
                              "description": "Report type, string enum."
                            },
                            "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": "crontab 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"
                            }
                          }
                        },
                        {
                          "type": "object",
                          "properties": {
                            "params": {
                              "allOf": [
                                {
                                  "type": "object",
                                  "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"
                                    }
                                  }
                                },
                                {
                                  "type": "object",
                                  "required": [
                                    "from",
                                    "to",
                                    "time_range"
                                  ],
                                  "properties": {
                                    "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_THIRTY_DAYS",
                                        "CUSTOM"
                                      ]
                                    }
                                  }
                                }
                              ]
                            }
                          }
                        }
                      ],
                      "title": "Queue Summary"
                    },
                    {
                      "allOf": [
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "allOf": [
                                {
                                  "type": "string",
                                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                                }
                              ],
                              "description": "The unique ID of report.",
                              "readOnly": true
                            },
                            "type": {
                              "type": "string",
                              "enum": [
                                "ABANDONDELAY",
                                "AGENTDETAILSACTIVITY",
                                "AGENTNOTREADYCODE",
                                "AGENTQUEUEREPORT",
                                "AGENTSUMMARYACTIVITY",
                                "CALLBACKSUMMARY",
                                "CALLLOGS",
                                "DAILYSTATISTICS",
                                "QUEUESUMMARY",
                                "RINGGROUPPERFORMANCE",
                                "SPEEDOFACCEPT",
                                "USERSTATISTICS"
                              ],
                              "description": "Report type, string enum."
                            },
                            "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": "crontab 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"
                            }
                          }
                        },
                        {
                          "type": "object",
                          "properties": {
                            "params": {
                              "allOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "ring_group": {
                                      "type": "array",
                                      "items": {
                                        "type": "string"
                                      },
                                      "description": "List of ring groups.\n"
                                    }
                                  }
                                },
                                {
                                  "type": "object",
                                  "required": [
                                    "from",
                                    "to",
                                    "time_range"
                                  ],
                                  "properties": {
                                    "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_THIRTY_DAYS",
                                        "CUSTOM"
                                      ]
                                    }
                                  }
                                }
                              ]
                            }
                          }
                        }
                      ],
                      "required": [
                        "type"
                      ],
                      "title": "Ring Group Performance"
                    },
                    {
                      "allOf": [
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "allOf": [
                                {
                                  "type": "string",
                                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                                }
                              ],
                              "description": "The unique ID of report.",
                              "readOnly": true
                            },
                            "type": {
                              "type": "string",
                              "enum": [
                                "ABANDONDELAY",
                                "AGENTDETAILSACTIVITY",
                                "AGENTNOTREADYCODE",
                                "AGENTQUEUEREPORT",
                                "AGENTSUMMARYACTIVITY",
                                "CALLBACKSUMMARY",
                                "CALLLOGS",
                                "DAILYSTATISTICS",
                                "QUEUESUMMARY",
                                "RINGGROUPPERFORMANCE",
                                "SPEEDOFACCEPT",
                                "USERSTATISTICS"
                              ],
                              "description": "Report type, string enum."
                            },
                            "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": "crontab 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"
                            }
                          }
                        },
                        {
                          "type": "object",
                          "properties": {
                            "params": {
                              "allOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "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
                                      ]
                                    }
                                  }
                                },
                                {
                                  "type": "object",
                                  "required": [
                                    "from",
                                    "to",
                                    "time_range"
                                  ],
                                  "properties": {
                                    "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_THIRTY_DAYS",
                                        "CUSTOM"
                                      ]
                                    }
                                  }
                                },
                                {
                                  "type": "object",
                                  "required": [
                                    "queue"
                                  ],
                                  "properties": {
                                    "queue": {
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "description": "Queue number.",
                                        "example": "8000"
                                      }
                                    }
                                  }
                                }
                              ]
                            }
                          }
                        }
                      ],
                      "title": "Speed Of Accept"
                    },
                    {
                      "allOf": [
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "allOf": [
                                {
                                  "type": "string",
                                  "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                                }
                              ],
                              "description": "The unique ID of report.",
                              "readOnly": true
                            },
                            "type": {
                              "type": "string",
                              "enum": [
                                "ABANDONDELAY",
                                "AGENTDETAILSACTIVITY",
                                "AGENTNOTREADYCODE",
                                "AGENTQUEUEREPORT",
                                "AGENTSUMMARYACTIVITY",
                                "CALLBACKSUMMARY",
                                "CALLLOGS",
                                "DAILYSTATISTICS",
                                "QUEUESUMMARY",
                                "RINGGROUPPERFORMANCE",
                                "SPEEDOFACCEPT",
                                "USERSTATISTICS"
                              ],
                              "description": "Report type, string enum."
                            },
                            "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": "crontab 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"
                            }
                          }
                        },
                        {
                          "type": "object",
                          "properties": {
                            "params": {
                              "allOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "extension_number": {
                                      "type": "string",
                                      "description": "Extension number",
                                      "example": "101"
                                    }
                                  }
                                },
                                {
                                  "type": "object",
                                  "required": [
                                    "from",
                                    "to",
                                    "time_range"
                                  ],
                                  "properties": {
                                    "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_THIRTY_DAYS",
                                        "CUSTOM"
                                      ]
                                    }
                                  }
                                },
                                {
                                  "type": "object",
                                  "required": [
                                    "status",
                                    "direction"
                                  ],
                                  "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"
                                      ]
                                    }
                                  }
                                }
                              ]
                            }
                          }
                        }
                      ],
                      "title": "User Statistics"
                    }
                  ],
                  "discriminator": {
                    "propertyName": "type",
                    "mapping": {
                      "ABANDONDELAY": "#/components/schemas/report_abandon_delay",
                      "AGENTDETAILSACTIVITY": "#/components/schemas/report_agent_activity_details",
                      "AGENTNOTREADYCODE": "#/components/schemas/report_agent_not_ready_code",
                      "AGENTQUEUEREPORT": "#/components/schemas/report_agent_queue_report",
                      "AGENTSUMMARYACTIVITY": "#/components/schemas/report_agent_activity_summary",
                      "CALLBACKSUMMARY": "#/components/schemas/report_callback_summary",
                      "CALLLOGS": "#/components/schemas/report_calllogs",
                      "DAILYSTATISTICS": "#/components/schemas/report_daily_statistics",
                      "QUEUESUMMARY": "#/components/schemas/report_queue_summary",
                      "RINGGROUPPERFORMANCE": "#/components/schemas/report_ring_group_performance",
                      "SPEEDOFACCEPT": "#/components/schemas/report_speed_of_accept",
                      "USERSTATISTICS": "#/components/schemas/report_user_statistics"
                    }
                  }
                },
                "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": "ANSWERED",
                        "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"
                    }
                  }
                }
              }
            }
          },
          "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"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "oneOf": [
                  {
                    "allOf": [
                      {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                              }
                            ],
                            "description": "The unique ID of report.",
                            "readOnly": true
                          },
                          "type": {
                            "type": "string",
                            "enum": [
                              "ABANDONDELAY",
                              "AGENTDETAILSACTIVITY",
                              "AGENTNOTREADYCODE",
                              "AGENTQUEUEREPORT",
                              "AGENTSUMMARYACTIVITY",
                              "CALLBACKSUMMARY",
                              "CALLLOGS",
                              "DAILYSTATISTICS",
                              "QUEUESUMMARY",
                              "RINGGROUPPERFORMANCE",
                              "SPEEDOFACCEPT",
                              "USERSTATISTICS"
                            ],
                            "description": "Report type, string enum."
                          },
                          "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": "crontab 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"
                          }
                        }
                      },
                      {
                        "type": "object",
                        "properties": {
                          "params": {
                            "allOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "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
                                    ]
                                  }
                                }
                              },
                              {
                                "type": "object",
                                "required": [
                                  "from",
                                  "to",
                                  "time_range"
                                ],
                                "properties": {
                                  "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_THIRTY_DAYS",
                                      "CUSTOM"
                                    ]
                                  }
                                }
                              },
                              {
                                "type": "object",
                                "required": [
                                  "queue"
                                ],
                                "properties": {
                                  "queue": {
                                    "type": "array",
                                    "items": {
                                      "type": "string",
                                      "description": "Queue number.",
                                      "example": "8000"
                                    }
                                  }
                                }
                              }
                            ]
                          }
                        }
                      }
                    ],
                    "required": [
                      "type"
                    ],
                    "title": "Abandon Delay"
                  },
                  {
                    "allOf": [
                      {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                              }
                            ],
                            "description": "The unique ID of report.",
                            "readOnly": true
                          },
                          "type": {
                            "type": "string",
                            "enum": [
                              "ABANDONDELAY",
                              "AGENTDETAILSACTIVITY",
                              "AGENTNOTREADYCODE",
                              "AGENTQUEUEREPORT",
                              "AGENTSUMMARYACTIVITY",
                              "CALLBACKSUMMARY",
                              "CALLLOGS",
                              "DAILYSTATISTICS",
                              "QUEUESUMMARY",
                              "RINGGROUPPERFORMANCE",
                              "SPEEDOFACCEPT",
                              "USERSTATISTICS"
                            ],
                            "description": "Report type, string enum."
                          },
                          "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": "crontab 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"
                          }
                        }
                      },
                      {
                        "type": "object",
                        "properties": {
                          "params": {
                            "allOf": [
                              {
                                "type": "object",
                                "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."
                                  }
                                }
                              },
                              {
                                "type": "object",
                                "required": [
                                  "from",
                                  "to",
                                  "time_range"
                                ],
                                "properties": {
                                  "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_THIRTY_DAYS",
                                      "CUSTOM"
                                    ]
                                  }
                                }
                              }
                            ]
                          }
                        }
                      }
                    ],
                    "title": "Agent Activity Details"
                  },
                  {
                    "allOf": [
                      {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                              }
                            ],
                            "description": "The unique ID of report.",
                            "readOnly": true
                          },
                          "type": {
                            "type": "string",
                            "enum": [
                              "ABANDONDELAY",
                              "AGENTDETAILSACTIVITY",
                              "AGENTNOTREADYCODE",
                              "AGENTQUEUEREPORT",
                              "AGENTSUMMARYACTIVITY",
                              "CALLBACKSUMMARY",
                              "CALLLOGS",
                              "DAILYSTATISTICS",
                              "QUEUESUMMARY",
                              "RINGGROUPPERFORMANCE",
                              "SPEEDOFACCEPT",
                              "USERSTATISTICS"
                            ],
                            "description": "Report type, string enum."
                          },
                          "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": "crontab 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"
                          }
                        }
                      },
                      {
                        "type": "object",
                        "properties": {
                          "params": {
                            "allOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "queue": {
                                    "type": "string",
                                    "description": "Queue number.",
                                    "example": "8000"
                                  }
                                }
                              },
                              {
                                "type": "object",
                                "required": [
                                  "from",
                                  "to",
                                  "time_range"
                                ],
                                "properties": {
                                  "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_THIRTY_DAYS",
                                      "CUSTOM"
                                    ]
                                  }
                                }
                              },
                              {
                                "type": "object",
                                "required": [
                                  "agent"
                                ],
                                "properties": {
                                  "agent": {
                                    "type": "array",
                                    "items": {
                                      "type": "string",
                                      "description": "Agent number.",
                                      "example": "101"
                                    }
                                  }
                                }
                              }
                            ]
                          }
                        }
                      }
                    ],
                    "title": "Agent Activity Summary"
                  },
                  {
                    "allOf": [
                      {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                              }
                            ],
                            "description": "The unique ID of report.",
                            "readOnly": true
                          },
                          "type": {
                            "type": "string",
                            "enum": [
                              "ABANDONDELAY",
                              "AGENTDETAILSACTIVITY",
                              "AGENTNOTREADYCODE",
                              "AGENTQUEUEREPORT",
                              "AGENTSUMMARYACTIVITY",
                              "CALLBACKSUMMARY",
                              "CALLLOGS",
                              "DAILYSTATISTICS",
                              "QUEUESUMMARY",
                              "RINGGROUPPERFORMANCE",
                              "SPEEDOFACCEPT",
                              "USERSTATISTICS"
                            ],
                            "description": "Report type, string enum."
                          },
                          "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": "crontab 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"
                          }
                        }
                      },
                      {
                        "type": "object",
                        "properties": {
                          "params": {
                            "allOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "queue": {
                                    "type": "string",
                                    "description": "Queue number.",
                                    "example": "8000"
                                  },
                                  "reason_code": {
                                    "type": "string",
                                    "description": "Reason code for agent not ready status."
                                  }
                                }
                              },
                              {
                                "type": "object",
                                "required": [
                                  "from",
                                  "to",
                                  "time_range"
                                ],
                                "properties": {
                                  "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_THIRTY_DAYS",
                                      "CUSTOM"
                                    ]
                                  }
                                }
                              },
                              {
                                "type": "object",
                                "required": [
                                  "agent"
                                ],
                                "properties": {
                                  "agent": {
                                    "type": "array",
                                    "items": {
                                      "type": "string",
                                      "description": "Agent number.",
                                      "example": "101"
                                    }
                                  }
                                }
                              }
                            ]
                          }
                        }
                      }
                    ],
                    "title": "Agent Not Ready Code"
                  },
                  {
                    "allOf": [
                      {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                              }
                            ],
                            "description": "The unique ID of report.",
                            "readOnly": true
                          },
                          "type": {
                            "type": "string",
                            "enum": [
                              "ABANDONDELAY",
                              "AGENTDETAILSACTIVITY",
                              "AGENTNOTREADYCODE",
                              "AGENTQUEUEREPORT",
                              "AGENTSUMMARYACTIVITY",
                              "CALLBACKSUMMARY",
                              "CALLLOGS",
                              "DAILYSTATISTICS",
                              "QUEUESUMMARY",
                              "RINGGROUPPERFORMANCE",
                              "SPEEDOFACCEPT",
                              "USERSTATISTICS"
                            ],
                            "description": "Report type, string enum."
                          },
                          "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": "crontab 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"
                          }
                        }
                      },
                      {
                        "type": "object",
                        "properties": {
                          "params": {
                            "allOf": [
                              {
                                "type": "object",
                                "required": [
                                  "from",
                                  "to",
                                  "time_range"
                                ],
                                "properties": {
                                  "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_THIRTY_DAYS",
                                      "CUSTOM"
                                    ]
                                  }
                                }
                              },
                              {
                                "type": "object",
                                "required": [
                                  "queue"
                                ],
                                "properties": {
                                  "queue": {
                                    "type": "array",
                                    "items": {
                                      "type": "string",
                                      "description": "Queue number.",
                                      "example": "8000"
                                    }
                                  }
                                }
                              }
                            ]
                          }
                        }
                      }
                    ],
                    "title": "Agent Queue Report"
                  },
                  {
                    "allOf": [
                      {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                              }
                            ],
                            "description": "The unique ID of report.",
                            "readOnly": true
                          },
                          "type": {
                            "type": "string",
                            "enum": [
                              "ABANDONDELAY",
                              "AGENTDETAILSACTIVITY",
                              "AGENTNOTREADYCODE",
                              "AGENTQUEUEREPORT",
                              "AGENTSUMMARYACTIVITY",
                              "CALLBACKSUMMARY",
                              "CALLLOGS",
                              "DAILYSTATISTICS",
                              "QUEUESUMMARY",
                              "RINGGROUPPERFORMANCE",
                              "SPEEDOFACCEPT",
                              "USERSTATISTICS"
                            ],
                            "description": "Report type, string enum."
                          },
                          "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": "crontab 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"
                          }
                        }
                      },
                      {
                        "type": "object",
                        "properties": {
                          "params": {
                            "allOf": [
                              {
                                "type": "object",
                                "required": [
                                  "from",
                                  "to",
                                  "time_range"
                                ],
                                "properties": {
                                  "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_THIRTY_DAYS",
                                      "CUSTOM"
                                    ]
                                  }
                                }
                              },
                              {
                                "type": "object",
                                "required": [
                                  "queue"
                                ],
                                "properties": {
                                  "queue": {
                                    "type": "array",
                                    "items": {
                                      "type": "string",
                                      "description": "Queue number.",
                                      "example": "8000"
                                    }
                                  }
                                }
                              }
                            ]
                          }
                        }
                      }
                    ],
                    "required": [
                      "type"
                    ],
                    "title": "Callback Summary"
                  },
                  {
                    "allOf": [
                      {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                              }
                            ],
                            "description": "The unique ID of report.",
                            "readOnly": true
                          },
                          "type": {
                            "type": "string",
                            "enum": [
                              "ABANDONDELAY",
                              "AGENTDETAILSACTIVITY",
                              "AGENTNOTREADYCODE",
                              "AGENTQUEUEREPORT",
                              "AGENTSUMMARYACTIVITY",
                              "CALLBACKSUMMARY",
                              "CALLLOGS",
                              "DAILYSTATISTICS",
                              "QUEUESUMMARY",
                              "RINGGROUPPERFORMANCE",
                              "SPEEDOFACCEPT",
                              "USERSTATISTICS"
                            ],
                            "description": "Report type, string enum."
                          },
                          "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": "crontab 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"
                          }
                        }
                      },
                      {
                        "type": "object",
                        "properties": {
                          "params": {
                            "allOf": [
                              {
                                "type": "object",
                                "required": [
                                  "from",
                                  "to",
                                  "time_range"
                                ],
                                "properties": {
                                  "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_THIRTY_DAYS",
                                      "CUSTOM"
                                    ]
                                  }
                                }
                              },
                              {
                                "type": "object",
                                "required": [
                                  "status",
                                  "direction"
                                ],
                                "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"
                                    ]
                                  }
                                }
                              }
                            ]
                          }
                        }
                      }
                    ],
                    "title": "Calllogs"
                  },
                  {
                    "allOf": [
                      {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                              }
                            ],
                            "description": "The unique ID of report.",
                            "readOnly": true
                          },
                          "type": {
                            "type": "string",
                            "enum": [
                              "ABANDONDELAY",
                              "AGENTDETAILSACTIVITY",
                              "AGENTNOTREADYCODE",
                              "AGENTQUEUEREPORT",
                              "AGENTSUMMARYACTIVITY",
                              "CALLBACKSUMMARY",
                              "CALLLOGS",
                              "DAILYSTATISTICS",
                              "QUEUESUMMARY",
                              "RINGGROUPPERFORMANCE",
                              "SPEEDOFACCEPT",
                              "USERSTATISTICS"
                            ],
                            "description": "Report type, string enum."
                          },
                          "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": "crontab 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"
                          }
                        }
                      },
                      {
                        "type": "object",
                        "properties": {
                          "params": {
                            "allOf": [
                              {
                                "type": "object",
                                "required": [
                                  "from",
                                  "to",
                                  "time_range"
                                ],
                                "properties": {
                                  "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_THIRTY_DAYS",
                                      "CUSTOM"
                                    ]
                                  }
                                }
                              },
                              {
                                "type": "object",
                                "required": [
                                  "status",
                                  "direction"
                                ],
                                "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"
                                    ]
                                  }
                                }
                              }
                            ]
                          }
                        }
                      }
                    ],
                    "title": "Daily Statistics"
                  },
                  {
                    "allOf": [
                      {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                              }
                            ],
                            "description": "The unique ID of report.",
                            "readOnly": true
                          },
                          "type": {
                            "type": "string",
                            "enum": [
                              "ABANDONDELAY",
                              "AGENTDETAILSACTIVITY",
                              "AGENTNOTREADYCODE",
                              "AGENTQUEUEREPORT",
                              "AGENTSUMMARYACTIVITY",
                              "CALLBACKSUMMARY",
                              "CALLLOGS",
                              "DAILYSTATISTICS",
                              "QUEUESUMMARY",
                              "RINGGROUPPERFORMANCE",
                              "SPEEDOFACCEPT",
                              "USERSTATISTICS"
                            ],
                            "description": "Report type, string enum."
                          },
                          "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": "crontab 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"
                          }
                        }
                      },
                      {
                        "type": "object",
                        "properties": {
                          "params": {
                            "allOf": [
                              {
                                "type": "object",
                                "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"
                                  }
                                }
                              },
                              {
                                "type": "object",
                                "required": [
                                  "from",
                                  "to",
                                  "time_range"
                                ],
                                "properties": {
                                  "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_THIRTY_DAYS",
                                      "CUSTOM"
                                    ]
                                  }
                                }
                              }
                            ]
                          }
                        }
                      }
                    ],
                    "title": "Queue Summary"
                  },
                  {
                    "allOf": [
                      {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                              }
                            ],
                            "description": "The unique ID of report.",
                            "readOnly": true
                          },
                          "type": {
                            "type": "string",
                            "enum": [
                              "ABANDONDELAY",
                              "AGENTDETAILSACTIVITY",
                              "AGENTNOTREADYCODE",
                              "AGENTQUEUEREPORT",
                              "AGENTSUMMARYACTIVITY",
                              "CALLBACKSUMMARY",
                              "CALLLOGS",
                              "DAILYSTATISTICS",
                              "QUEUESUMMARY",
                              "RINGGROUPPERFORMANCE",
                              "SPEEDOFACCEPT",
                              "USERSTATISTICS"
                            ],
                            "description": "Report type, string enum."
                          },
                          "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": "crontab 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"
                          }
                        }
                      },
                      {
                        "type": "object",
                        "properties": {
                          "params": {
                            "allOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "ring_group": {
                                    "type": "array",
                                    "items": {
                                      "type": "string"
                                    },
                                    "description": "List of ring groups.\n"
                                  }
                                }
                              },
                              {
                                "type": "object",
                                "required": [
                                  "from",
                                  "to",
                                  "time_range"
                                ],
                                "properties": {
                                  "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_THIRTY_DAYS",
                                      "CUSTOM"
                                    ]
                                  }
                                }
                              }
                            ]
                          }
                        }
                      }
                    ],
                    "required": [
                      "type"
                    ],
                    "title": "Ring Group Performance"
                  },
                  {
                    "allOf": [
                      {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                              }
                            ],
                            "description": "The unique ID of report.",
                            "readOnly": true
                          },
                          "type": {
                            "type": "string",
                            "enum": [
                              "ABANDONDELAY",
                              "AGENTDETAILSACTIVITY",
                              "AGENTNOTREADYCODE",
                              "AGENTQUEUEREPORT",
                              "AGENTSUMMARYACTIVITY",
                              "CALLBACKSUMMARY",
                              "CALLLOGS",
                              "DAILYSTATISTICS",
                              "QUEUESUMMARY",
                              "RINGGROUPPERFORMANCE",
                              "SPEEDOFACCEPT",
                              "USERSTATISTICS"
                            ],
                            "description": "Report type, string enum."
                          },
                          "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": "crontab 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"
                          }
                        }
                      },
                      {
                        "type": "object",
                        "properties": {
                          "params": {
                            "allOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "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
                                    ]
                                  }
                                }
                              },
                              {
                                "type": "object",
                                "required": [
                                  "from",
                                  "to",
                                  "time_range"
                                ],
                                "properties": {
                                  "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_THIRTY_DAYS",
                                      "CUSTOM"
                                    ]
                                  }
                                }
                              },
                              {
                                "type": "object",
                                "required": [
                                  "queue"
                                ],
                                "properties": {
                                  "queue": {
                                    "type": "array",
                                    "items": {
                                      "type": "string",
                                      "description": "Queue number.",
                                      "example": "8000"
                                    }
                                  }
                                }
                              }
                            ]
                          }
                        }
                      }
                    ],
                    "title": "Speed Of Accept"
                  },
                  {
                    "allOf": [
                      {
                        "type": "object",
                        "properties": {
                          "id": {
                            "allOf": [
                              {
                                "type": "string",
                                "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                              }
                            ],
                            "description": "The unique ID of report.",
                            "readOnly": true
                          },
                          "type": {
                            "type": "string",
                            "enum": [
                              "ABANDONDELAY",
                              "AGENTDETAILSACTIVITY",
                              "AGENTNOTREADYCODE",
                              "AGENTQUEUEREPORT",
                              "AGENTSUMMARYACTIVITY",
                              "CALLBACKSUMMARY",
                              "CALLLOGS",
                              "DAILYSTATISTICS",
                              "QUEUESUMMARY",
                              "RINGGROUPPERFORMANCE",
                              "SPEEDOFACCEPT",
                              "USERSTATISTICS"
                            ],
                            "description": "Report type, string enum."
                          },
                          "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": "crontab 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"
                          }
                        }
                      },
                      {
                        "type": "object",
                        "properties": {
                          "params": {
                            "allOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "extension_number": {
                                    "type": "string",
                                    "description": "Extension number",
                                    "example": "101"
                                  }
                                }
                              },
                              {
                                "type": "object",
                                "required": [
                                  "from",
                                  "to",
                                  "time_range"
                                ],
                                "properties": {
                                  "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_THIRTY_DAYS",
                                      "CUSTOM"
                                    ]
                                  }
                                }
                              },
                              {
                                "type": "object",
                                "required": [
                                  "status",
                                  "direction"
                                ],
                                "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"
                                    ]
                                  }
                                }
                              }
                            ]
                          }
                        }
                      }
                    ],
                    "title": "User Statistics"
                  }
                ],
                "discriminator": {
                  "propertyName": "type",
                  "mapping": {
                    "ABANDONDELAY": "#/components/schemas/report_abandon_delay",
                    "AGENTDETAILSACTIVITY": "#/components/schemas/report_agent_activity_details",
                    "AGENTNOTREADYCODE": "#/components/schemas/report_agent_not_ready_code",
                    "AGENTQUEUEREPORT": "#/components/schemas/report_agent_queue_report",
                    "AGENTSUMMARYACTIVITY": "#/components/schemas/report_agent_activity_summary",
                    "CALLBACKSUMMARY": "#/components/schemas/report_callback_summary",
                    "CALLLOGS": "#/components/schemas/report_calllogs",
                    "DAILYSTATISTICS": "#/components/schemas/report_daily_statistics",
                    "QUEUESUMMARY": "#/components/schemas/report_queue_summary",
                    "RINGGROUPPERFORMANCE": "#/components/schemas/report_ring_group_performance",
                    "SPEEDOFACCEPT": "#/components/schemas/report_speed_of_accept",
                    "USERSTATISTICS": "#/components/schemas/report_user_statistics"
                  }
                }
              },
              "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": "ANSWERED",
                      "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"
            }
          }
        ],
        "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"
                          },
                          "report_id": {
                            "type": "string",
                            "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                          },
                          "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",
                            "enum": [
                              "ABANDONDELAY",
                              "AGENTDETAILSACTIVITY",
                              "AGENTNOTREADYCODE",
                              "AGENTQUEUEREPORT",
                              "AGENTSUMMARYACTIVITY",
                              "CALLBACKSUMMARY",
                              "CALLLOGS",
                              "DAILYSTATISTICS",
                              "QUEUESUMMARY",
                              "RINGGROUPPERFORMANCE",
                              "SPEEDOFACCEPT",
                              "USERSTATISTICS"
                            ],
                            "description": "Report type, string enum."
                          },
                          "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",
                            "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"
            }
          }
        ],
        "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": "",
                  "value": {
                    "code": "01",
                    "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 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 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": "",
                    "value": {
                      "items": [
                        {
                          "id": "xxxxxx",
                          "code": "01",
                          "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 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 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": "",
                    "value": {
                      "id": "xxxxxx",
                      "code": "01",
                      "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 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": "",
                  "value": {
                    "code": "01",
                    "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 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": {
      "id-2": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
          }
        ],
        "description": "The unique ID of role.\n"
      },
      "email-2": {
        "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"
      },
      "id-3": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
          }
        ],
        "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"
      },
      "port-2": {
        "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"
      },
      "id-4": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
          }
        ],
        "description": "The unique ID of dealer.\n"
      },
      "id-5": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
          }
        ],
        "description": "The unique ID of push profile.\n"
      },
      "id-6": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
          }
        ],
        "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"
      },
      "id-7": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
          }
        ],
        "description": "The unique ID of transport.\n"
      },
      "id-8": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
          }
        ],
        "description": "The unique ID of tenant.\n"
      },
      "timezone-2": {
        "allOf": [
          {
            "type": "string",
            "description": "The IANA Time Zone names, such as \"Asia/Shanghai\".\n"
          }
        ],
        "description": "Timezone for tenant.\n"
      },
      "created_at-2": {
        "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"
      },
      "id-9": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
          }
        ],
        "description": "The unique ID of trunk.\n"
      },
      "id-10": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
          }
        ],
        "description": "The unique ID of the file.\n"
      },
      "id-11": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
          }
        ],
        "description": "The unique ID of conference server.\n"
      },
      "id-12": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
          }
        ],
        "description": "The unique ID of media server.\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 user profile file.\n"
      },
      "timezone-3": {
        "allOf": [
          {
            "type": "string",
            "description": "The IANA Time Zone names, such as \"Asia/Shanghai\".\n"
          }
        ],
        "description": "Timezone for extension user.\n"
      },
      "id-13": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
          }
        ],
        "description": "The unique ID of greeting.\n"
      },
      "id-14": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
          }
        ],
        "description": "The unique ID of phone.\n"
      },
      "mac-2": {
        "allOf": [
          {
            "type": "string",
            "description": "MAC address.\n"
          }
        ],
        "description": "MAC address of this IP phone.\n"
      },
      "id-15": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
          }
        ],
        "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"
      },
      "id-16": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
          }
        ],
        "description": "The unique ID of external message.\n"
      },
      "created_at-3": {
        "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"
      },
      "id-17": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
          }
        ],
        "readOnly": true,
        "description": "The unique ID of call recording.\n"
      },
      "started_at-2": {
        "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-2": {
        "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"
      },
      "session_id": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
          }
        ],
        "description": "The session ID of call log.\n"
      },
      "id-19": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
          }
        ],
        "description": "The unique ID of speed dial.\n"
      },
      "id-20": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
          }
        ],
        "description": "The unique ID of conference room.\n"
      },
      "created_at-5": {
        "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 conference room participant.\n"
      },
      "id-21": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
          }
        ],
        "description": "The unique ID of contact.\n"
      },
      "id-22": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
          }
        ],
        "description": "The unique ID of call queue.\n"
      },
      "extension_number-2": {
        "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"
      },
      "id-23": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
          }
        ],
        "description": "The unique ID of ring group.\n"
      },
      "id-24": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
          }
        ],
        "description": "The unique ID of session.\n"
      },
      "started_at-3": {
        "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"
      },
      "id-27": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
          }
        ],
        "description": "The unique ID of user group.\n"
      },
      "id-28": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
          }
        ],
        "description": "The unique ID of voicemail.\n"
      },
      "created_at-6": {
        "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"
      },
      "id-29": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
          }
        ],
        "description": "The unique ID of call queue server.\n"
      },
      "session_id-2": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
          }
        ],
        "description": "The unique ID of session in call queue.\n"
      },
      "id-30": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
          }
        ],
        "description": "The unique ID of exclusive number.\n"
      },
      "created_at-7": {
        "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"
      },
      "id-31": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
          }
        ],
        "description": "The unique ID of VIP 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": "VIP number's modified time.\n"
      },
      "expire_at-2": {
        "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"
      },
      "id-32": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
          }
        ],
        "description": "The unique ID of blacklisted number.\n"
      },
      "created_at-8": {
        "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-2": {
        "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-3": {
        "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"
      },
      "id-33": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
          }
        ],
        "description": "The unique ID of conference recording.\n"
      },
      "answered_at-2": {
        "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"
      },
      "id-34": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
          }
        ],
        "description": "The unique ID of emergency number.\n"
      },
      "created_at-9": {
        "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"
      },
      "id-35": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
          }
        ],
        "description": "The unique ID of inbound rule.\n"
      },
      "id-36": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
          }
        ],
        "description": "The unique ID of MOH music.\n"
      },
      "extension_number-3": {
        "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"
      },
      "id-37": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
          }
        ],
        "description": "The unique ID of monitor group.\n"
      },
      "extension_number-4": {
        "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 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"
      },
      "id-38": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
          }
        ],
        "description": "The unique ID of call park group.\n"
      },
      "id-39": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
          }
        ],
        "description": "The unique ID of call pick group.\n"
      },
      "extension_number-5": {
        "allOf": [
          {
            "type": "string",
            "minLength": 3,
            "maxLength": 64,
            "pattern": "[0-9]{3,64}",
            "description": "The extension number.\n"
          }
        ],
        "description": "The extension number of voicemail server."
      },
      "extension_number-6": {
        "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"
      },
      "id-40": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
          }
        ],
        "description": "The unique ID of outbound rule.\n"
      },
      "id-41": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
          }
        ],
        "description": "The unique ID of DECT phone.\n"
      },
      "hostname-2": {
        "allOf": [
          {
            "type": "string",
            "description": "Server hostname or IP address\n"
          }
        ],
        "description": "The hostname of trunk.\n"
      },
      "port-3": {
        "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"
      },
      "id-42": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
          }
        ],
        "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"
      },
      "id-43": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
          }
        ],
        "description": "The unique ID of blocked code.\n"
      },
      "id-44": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
          }
        ],
        "description": "The unique ID of this blacklisted number.\n"
      },
      "created_at-10": {
        "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-3": {
        "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"
      },
      "id-45": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
          }
        ],
        "description": "The unique ID of billing.\n"
      },
      "id-46": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
          }
        ],
        "description": "The unique ID of virtual receptionist server.\n"
      },
      "id-47": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
          }
        ],
        "description": "The unique ID of virtual receptionist.\n"
      },
      "id-48": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
          }
        ],
        "description": "The unique ID of action url.\n"
      },
      "id-49": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
          }
        ],
        "description": "The unique ID of hot desking.\n"
      },
      "extension_number-7": {
        "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"
      },
      "extension_password-3": {
        "allOf": [
          {
            "type": "string",
            "description": "The extension password.\n"
          }
        ],
        "description": "The extension password of hot desking.\n"
      },
      "id-50": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
          }
        ],
        "description": "The unique ID of SMS/MMS service.\n"
      },
      "id-51": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
          }
        ],
        "description": "The unique ID of WhatsApp service.\n"
      },
      "id-53": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
          }
        ],
        "description": "The unique ID of this call report.\n"
      },
      "email-4": {
        "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"
      },
      "started_at-4": {
        "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-3": {
        "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"
      },
      "id-54": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
          }
        ],
        "description": "The unique ID of audit log.\n"
      },
      "created_at-12": {
        "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"
      },
      "ip-2": {
        "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"
      },
      "id-55": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
          }
        ],
        "description": "The unique ID of event log.\n"
      },
      "created_at-13": {
        "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"
      },
      "id-56": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
          }
        ],
        "description": "The unique ID of CRM call.\n"
      },
      "callback_id": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
          }
        ],
        "description": "Optional field. Multiple CDRs with the same callback_id belong to the same callback process."
      },
      "report_abandon_delay": {
        "allOf": [
          {
            "type": "object",
            "properties": {
              "id": {
                "allOf": [
                  {
                    "type": "string",
                    "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                  }
                ],
                "description": "The unique ID of report.",
                "readOnly": true
              },
              "type": {
                "type": "string",
                "enum": [
                  "ABANDONDELAY",
                  "AGENTDETAILSACTIVITY",
                  "AGENTNOTREADYCODE",
                  "AGENTQUEUEREPORT",
                  "AGENTSUMMARYACTIVITY",
                  "CALLBACKSUMMARY",
                  "CALLLOGS",
                  "DAILYSTATISTICS",
                  "QUEUESUMMARY",
                  "RINGGROUPPERFORMANCE",
                  "SPEEDOFACCEPT",
                  "USERSTATISTICS"
                ],
                "description": "Report type, string enum."
              },
              "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": "crontab 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"
              }
            }
          },
          {
            "type": "object",
            "properties": {
              "params": {
                "allOf": [
                  {
                    "type": "object",
                    "properties": {
                      "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
                        ]
                      }
                    }
                  },
                  {
                    "type": "object",
                    "required": [
                      "from",
                      "to",
                      "time_range"
                    ],
                    "properties": {
                      "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_THIRTY_DAYS",
                          "CUSTOM"
                        ]
                      }
                    }
                  },
                  {
                    "type": "object",
                    "required": [
                      "queue"
                    ],
                    "properties": {
                      "queue": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "description": "Queue number.",
                          "example": "8000"
                        }
                      }
                    }
                  }
                ]
              }
            }
          }
        ],
        "required": [
          "type"
        ],
        "title": "Abandon Delay"
      },
      "report_agent_activity_details": {
        "allOf": [
          {
            "type": "object",
            "properties": {
              "id": {
                "allOf": [
                  {
                    "type": "string",
                    "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                  }
                ],
                "description": "The unique ID of report.",
                "readOnly": true
              },
              "type": {
                "type": "string",
                "enum": [
                  "ABANDONDELAY",
                  "AGENTDETAILSACTIVITY",
                  "AGENTNOTREADYCODE",
                  "AGENTQUEUEREPORT",
                  "AGENTSUMMARYACTIVITY",
                  "CALLBACKSUMMARY",
                  "CALLLOGS",
                  "DAILYSTATISTICS",
                  "QUEUESUMMARY",
                  "RINGGROUPPERFORMANCE",
                  "SPEEDOFACCEPT",
                  "USERSTATISTICS"
                ],
                "description": "Report type, string enum."
              },
              "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": "crontab 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"
              }
            }
          },
          {
            "type": "object",
            "properties": {
              "params": {
                "allOf": [
                  {
                    "type": "object",
                    "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."
                      }
                    }
                  },
                  {
                    "type": "object",
                    "required": [
                      "from",
                      "to",
                      "time_range"
                    ],
                    "properties": {
                      "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_THIRTY_DAYS",
                          "CUSTOM"
                        ]
                      }
                    }
                  }
                ]
              }
            }
          }
        ],
        "title": "Agent Activity Details"
      },
      "report_agent_not_ready_code": {
        "allOf": [
          {
            "type": "object",
            "properties": {
              "id": {
                "allOf": [
                  {
                    "type": "string",
                    "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                  }
                ],
                "description": "The unique ID of report.",
                "readOnly": true
              },
              "type": {
                "type": "string",
                "enum": [
                  "ABANDONDELAY",
                  "AGENTDETAILSACTIVITY",
                  "AGENTNOTREADYCODE",
                  "AGENTQUEUEREPORT",
                  "AGENTSUMMARYACTIVITY",
                  "CALLBACKSUMMARY",
                  "CALLLOGS",
                  "DAILYSTATISTICS",
                  "QUEUESUMMARY",
                  "RINGGROUPPERFORMANCE",
                  "SPEEDOFACCEPT",
                  "USERSTATISTICS"
                ],
                "description": "Report type, string enum."
              },
              "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": "crontab 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"
              }
            }
          },
          {
            "type": "object",
            "properties": {
              "params": {
                "allOf": [
                  {
                    "type": "object",
                    "properties": {
                      "queue": {
                        "type": "string",
                        "description": "Queue number.",
                        "example": "8000"
                      },
                      "reason_code": {
                        "type": "string",
                        "description": "Reason code for agent not ready status."
                      }
                    }
                  },
                  {
                    "type": "object",
                    "required": [
                      "from",
                      "to",
                      "time_range"
                    ],
                    "properties": {
                      "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_THIRTY_DAYS",
                          "CUSTOM"
                        ]
                      }
                    }
                  },
                  {
                    "type": "object",
                    "required": [
                      "agent"
                    ],
                    "properties": {
                      "agent": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "description": "Agent number.",
                          "example": "101"
                        }
                      }
                    }
                  }
                ]
              }
            }
          }
        ],
        "title": "Agent Not Ready Code"
      },
      "report_agent_queue_report": {
        "allOf": [
          {
            "type": "object",
            "properties": {
              "id": {
                "allOf": [
                  {
                    "type": "string",
                    "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                  }
                ],
                "description": "The unique ID of report.",
                "readOnly": true
              },
              "type": {
                "type": "string",
                "enum": [
                  "ABANDONDELAY",
                  "AGENTDETAILSACTIVITY",
                  "AGENTNOTREADYCODE",
                  "AGENTQUEUEREPORT",
                  "AGENTSUMMARYACTIVITY",
                  "CALLBACKSUMMARY",
                  "CALLLOGS",
                  "DAILYSTATISTICS",
                  "QUEUESUMMARY",
                  "RINGGROUPPERFORMANCE",
                  "SPEEDOFACCEPT",
                  "USERSTATISTICS"
                ],
                "description": "Report type, string enum."
              },
              "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": "crontab 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"
              }
            }
          },
          {
            "type": "object",
            "properties": {
              "params": {
                "allOf": [
                  {
                    "type": "object",
                    "required": [
                      "from",
                      "to",
                      "time_range"
                    ],
                    "properties": {
                      "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_THIRTY_DAYS",
                          "CUSTOM"
                        ]
                      }
                    }
                  },
                  {
                    "type": "object",
                    "required": [
                      "queue"
                    ],
                    "properties": {
                      "queue": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "description": "Queue number.",
                          "example": "8000"
                        }
                      }
                    }
                  }
                ]
              }
            }
          }
        ],
        "title": "Agent Queue Report"
      },
      "report_agent_activity_summary": {
        "allOf": [
          {
            "type": "object",
            "properties": {
              "id": {
                "allOf": [
                  {
                    "type": "string",
                    "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                  }
                ],
                "description": "The unique ID of report.",
                "readOnly": true
              },
              "type": {
                "type": "string",
                "enum": [
                  "ABANDONDELAY",
                  "AGENTDETAILSACTIVITY",
                  "AGENTNOTREADYCODE",
                  "AGENTQUEUEREPORT",
                  "AGENTSUMMARYACTIVITY",
                  "CALLBACKSUMMARY",
                  "CALLLOGS",
                  "DAILYSTATISTICS",
                  "QUEUESUMMARY",
                  "RINGGROUPPERFORMANCE",
                  "SPEEDOFACCEPT",
                  "USERSTATISTICS"
                ],
                "description": "Report type, string enum."
              },
              "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": "crontab 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"
              }
            }
          },
          {
            "type": "object",
            "properties": {
              "params": {
                "allOf": [
                  {
                    "type": "object",
                    "properties": {
                      "queue": {
                        "type": "string",
                        "description": "Queue number.",
                        "example": "8000"
                      }
                    }
                  },
                  {
                    "type": "object",
                    "required": [
                      "from",
                      "to",
                      "time_range"
                    ],
                    "properties": {
                      "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_THIRTY_DAYS",
                          "CUSTOM"
                        ]
                      }
                    }
                  },
                  {
                    "type": "object",
                    "required": [
                      "agent"
                    ],
                    "properties": {
                      "agent": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "description": "Agent number.",
                          "example": "101"
                        }
                      }
                    }
                  }
                ]
              }
            }
          }
        ],
        "title": "Agent Activity Summary"
      },
      "report_callback_summary": {
        "allOf": [
          {
            "type": "object",
            "properties": {
              "id": {
                "allOf": [
                  {
                    "type": "string",
                    "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                  }
                ],
                "description": "The unique ID of report.",
                "readOnly": true
              },
              "type": {
                "type": "string",
                "enum": [
                  "ABANDONDELAY",
                  "AGENTDETAILSACTIVITY",
                  "AGENTNOTREADYCODE",
                  "AGENTQUEUEREPORT",
                  "AGENTSUMMARYACTIVITY",
                  "CALLBACKSUMMARY",
                  "CALLLOGS",
                  "DAILYSTATISTICS",
                  "QUEUESUMMARY",
                  "RINGGROUPPERFORMANCE",
                  "SPEEDOFACCEPT",
                  "USERSTATISTICS"
                ],
                "description": "Report type, string enum."
              },
              "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": "crontab 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"
              }
            }
          },
          {
            "type": "object",
            "properties": {
              "params": {
                "allOf": [
                  {
                    "type": "object",
                    "required": [
                      "from",
                      "to",
                      "time_range"
                    ],
                    "properties": {
                      "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_THIRTY_DAYS",
                          "CUSTOM"
                        ]
                      }
                    }
                  },
                  {
                    "type": "object",
                    "required": [
                      "queue"
                    ],
                    "properties": {
                      "queue": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "description": "Queue number.",
                          "example": "8000"
                        }
                      }
                    }
                  }
                ]
              }
            }
          }
        ],
        "required": [
          "type"
        ],
        "title": "Callback Summary"
      },
      "report_calllogs": {
        "allOf": [
          {
            "type": "object",
            "properties": {
              "id": {
                "allOf": [
                  {
                    "type": "string",
                    "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                  }
                ],
                "description": "The unique ID of report.",
                "readOnly": true
              },
              "type": {
                "type": "string",
                "enum": [
                  "ABANDONDELAY",
                  "AGENTDETAILSACTIVITY",
                  "AGENTNOTREADYCODE",
                  "AGENTQUEUEREPORT",
                  "AGENTSUMMARYACTIVITY",
                  "CALLBACKSUMMARY",
                  "CALLLOGS",
                  "DAILYSTATISTICS",
                  "QUEUESUMMARY",
                  "RINGGROUPPERFORMANCE",
                  "SPEEDOFACCEPT",
                  "USERSTATISTICS"
                ],
                "description": "Report type, string enum."
              },
              "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": "crontab 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"
              }
            }
          },
          {
            "type": "object",
            "properties": {
              "params": {
                "allOf": [
                  {
                    "type": "object",
                    "required": [
                      "from",
                      "to",
                      "time_range"
                    ],
                    "properties": {
                      "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_THIRTY_DAYS",
                          "CUSTOM"
                        ]
                      }
                    }
                  },
                  {
                    "type": "object",
                    "required": [
                      "status",
                      "direction"
                    ],
                    "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"
                        ]
                      }
                    }
                  }
                ]
              }
            }
          }
        ],
        "title": "Calllogs"
      },
      "report_daily_statistics": {
        "allOf": [
          {
            "type": "object",
            "properties": {
              "id": {
                "allOf": [
                  {
                    "type": "string",
                    "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                  }
                ],
                "description": "The unique ID of report.",
                "readOnly": true
              },
              "type": {
                "type": "string",
                "enum": [
                  "ABANDONDELAY",
                  "AGENTDETAILSACTIVITY",
                  "AGENTNOTREADYCODE",
                  "AGENTQUEUEREPORT",
                  "AGENTSUMMARYACTIVITY",
                  "CALLBACKSUMMARY",
                  "CALLLOGS",
                  "DAILYSTATISTICS",
                  "QUEUESUMMARY",
                  "RINGGROUPPERFORMANCE",
                  "SPEEDOFACCEPT",
                  "USERSTATISTICS"
                ],
                "description": "Report type, string enum."
              },
              "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": "crontab 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"
              }
            }
          },
          {
            "type": "object",
            "properties": {
              "params": {
                "allOf": [
                  {
                    "type": "object",
                    "required": [
                      "from",
                      "to",
                      "time_range"
                    ],
                    "properties": {
                      "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_THIRTY_DAYS",
                          "CUSTOM"
                        ]
                      }
                    }
                  },
                  {
                    "type": "object",
                    "required": [
                      "status",
                      "direction"
                    ],
                    "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"
                        ]
                      }
                    }
                  }
                ]
              }
            }
          }
        ],
        "title": "Daily Statistics"
      },
      "report_queue_summary": {
        "allOf": [
          {
            "type": "object",
            "properties": {
              "id": {
                "allOf": [
                  {
                    "type": "string",
                    "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                  }
                ],
                "description": "The unique ID of report.",
                "readOnly": true
              },
              "type": {
                "type": "string",
                "enum": [
                  "ABANDONDELAY",
                  "AGENTDETAILSACTIVITY",
                  "AGENTNOTREADYCODE",
                  "AGENTQUEUEREPORT",
                  "AGENTSUMMARYACTIVITY",
                  "CALLBACKSUMMARY",
                  "CALLLOGS",
                  "DAILYSTATISTICS",
                  "QUEUESUMMARY",
                  "RINGGROUPPERFORMANCE",
                  "SPEEDOFACCEPT",
                  "USERSTATISTICS"
                ],
                "description": "Report type, string enum."
              },
              "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": "crontab 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"
              }
            }
          },
          {
            "type": "object",
            "properties": {
              "params": {
                "allOf": [
                  {
                    "type": "object",
                    "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"
                      }
                    }
                  },
                  {
                    "type": "object",
                    "required": [
                      "from",
                      "to",
                      "time_range"
                    ],
                    "properties": {
                      "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_THIRTY_DAYS",
                          "CUSTOM"
                        ]
                      }
                    }
                  }
                ]
              }
            }
          }
        ],
        "title": "Queue Summary"
      },
      "report_ring_group_performance": {
        "allOf": [
          {
            "type": "object",
            "properties": {
              "id": {
                "allOf": [
                  {
                    "type": "string",
                    "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                  }
                ],
                "description": "The unique ID of report.",
                "readOnly": true
              },
              "type": {
                "type": "string",
                "enum": [
                  "ABANDONDELAY",
                  "AGENTDETAILSACTIVITY",
                  "AGENTNOTREADYCODE",
                  "AGENTQUEUEREPORT",
                  "AGENTSUMMARYACTIVITY",
                  "CALLBACKSUMMARY",
                  "CALLLOGS",
                  "DAILYSTATISTICS",
                  "QUEUESUMMARY",
                  "RINGGROUPPERFORMANCE",
                  "SPEEDOFACCEPT",
                  "USERSTATISTICS"
                ],
                "description": "Report type, string enum."
              },
              "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": "crontab 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"
              }
            }
          },
          {
            "type": "object",
            "properties": {
              "params": {
                "allOf": [
                  {
                    "type": "object",
                    "properties": {
                      "ring_group": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        },
                        "description": "List of ring groups.\n"
                      }
                    }
                  },
                  {
                    "type": "object",
                    "required": [
                      "from",
                      "to",
                      "time_range"
                    ],
                    "properties": {
                      "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_THIRTY_DAYS",
                          "CUSTOM"
                        ]
                      }
                    }
                  }
                ]
              }
            }
          }
        ],
        "required": [
          "type"
        ],
        "title": "Ring Group Performance"
      },
      "report_speed_of_accept": {
        "allOf": [
          {
            "type": "object",
            "properties": {
              "id": {
                "allOf": [
                  {
                    "type": "string",
                    "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                  }
                ],
                "description": "The unique ID of report.",
                "readOnly": true
              },
              "type": {
                "type": "string",
                "enum": [
                  "ABANDONDELAY",
                  "AGENTDETAILSACTIVITY",
                  "AGENTNOTREADYCODE",
                  "AGENTQUEUEREPORT",
                  "AGENTSUMMARYACTIVITY",
                  "CALLBACKSUMMARY",
                  "CALLLOGS",
                  "DAILYSTATISTICS",
                  "QUEUESUMMARY",
                  "RINGGROUPPERFORMANCE",
                  "SPEEDOFACCEPT",
                  "USERSTATISTICS"
                ],
                "description": "Report type, string enum."
              },
              "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": "crontab 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"
              }
            }
          },
          {
            "type": "object",
            "properties": {
              "params": {
                "allOf": [
                  {
                    "type": "object",
                    "properties": {
                      "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
                        ]
                      }
                    }
                  },
                  {
                    "type": "object",
                    "required": [
                      "from",
                      "to",
                      "time_range"
                    ],
                    "properties": {
                      "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_THIRTY_DAYS",
                          "CUSTOM"
                        ]
                      }
                    }
                  },
                  {
                    "type": "object",
                    "required": [
                      "queue"
                    ],
                    "properties": {
                      "queue": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "description": "Queue number.",
                          "example": "8000"
                        }
                      }
                    }
                  }
                ]
              }
            }
          }
        ],
        "title": "Speed Of Accept"
      },
      "report_user_statistics": {
        "allOf": [
          {
            "type": "object",
            "properties": {
              "id": {
                "allOf": [
                  {
                    "type": "string",
                    "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
                  }
                ],
                "description": "The unique ID of report.",
                "readOnly": true
              },
              "type": {
                "type": "string",
                "enum": [
                  "ABANDONDELAY",
                  "AGENTDETAILSACTIVITY",
                  "AGENTNOTREADYCODE",
                  "AGENTQUEUEREPORT",
                  "AGENTSUMMARYACTIVITY",
                  "CALLBACKSUMMARY",
                  "CALLLOGS",
                  "DAILYSTATISTICS",
                  "QUEUESUMMARY",
                  "RINGGROUPPERFORMANCE",
                  "SPEEDOFACCEPT",
                  "USERSTATISTICS"
                ],
                "description": "Report type, string enum."
              },
              "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": "crontab 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"
              }
            }
          },
          {
            "type": "object",
            "properties": {
              "params": {
                "allOf": [
                  {
                    "type": "object",
                    "properties": {
                      "extension_number": {
                        "type": "string",
                        "description": "Extension number",
                        "example": "101"
                      }
                    }
                  },
                  {
                    "type": "object",
                    "required": [
                      "from",
                      "to",
                      "time_range"
                    ],
                    "properties": {
                      "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_THIRTY_DAYS",
                          "CUSTOM"
                        ]
                      }
                    }
                  },
                  {
                    "type": "object",
                    "required": [
                      "status",
                      "direction"
                    ],
                    "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"
                        ]
                      }
                    }
                  }
                ]
              }
            }
          }
        ],
        "title": "User Statistics"
      },
      "id-57": {
        "allOf": [
          {
            "type": "string",
            "example": "NzAwNTUxOTA5NzczMTQ4MTYw"
          }
        ],
        "description": "The unique ID of the not ready code.\n"
      }
    }
  }
}