json ringcentral-的OpenAPI

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了json ringcentral-的OpenAPI相关的知识,希望对你有一定的参考价值。

{
  "swagger": "2.0",
  "info": {
    "title": "RingCentral Connect Platform API Explorer",
    "description": "This is an interactive API explorer for the RingCentral Connect Platform. To use this service, you will need to have a developer account. \n\n## Links \n* <a href=\"https://netstorage.ringcentral.com/dpw/api-explorer/rc-platform_basic.yml?v=20180514092722\" target=\"_blank\">RingCentral API Spec</a><span>&nbsp;&nbsp;(OpenAPI fka Swagger format)&nbsp;&nbsp;&nbsp;&nbsp;</span><a href=\"https://github.com/OAI/OpenAPI-Specification\" target=\"_blank\">Learn more about OpenAPI</a>\n",
    "version": "1.0.35"
  },
  "host": "platform.ringcentral.com",
  "schemes": [
    "https"
  ],
  "basePath": "/",
  "produces": [
    "application/json"
  ],
  "tags": [
    {
      "name": "API Info"
    },
    {
      "name": "Call Log"
    },
    {
      "name": "Phone Numbers"
    },
    {
      "name": "Fax"
    },
    {
      "name": "SMS and MMS"
    },
    {
      "name": "Internal Messages"
    },
    {
      "name": "RingOut"
    },
    {
      "name": "User Contacts"
    },
    {
      "name": "Company Contacts"
    },
    {
      "name": "Presence"
    },
    {
      "name": "Greeting Recording Call"
    },
    {
      "name": "Verification Call"
    },
    {
      "name": "Glip [Beta]"
    },
    {
      "name": "Meetings [Beta]"
    },
    {
      "name": "Push Notifications"
    },
    {
      "name": "Roles and Permissions"
    },
    {
      "name": "Call Handling Settings"
    },
    {
      "name": "Application Settings"
    },
    {
      "name": "User Settings"
    },
    {
      "name": "Company Settings"
    },
    {
      "name": "Regional Settings"
    },
    {
      "name": "Account Provisioning"
    },
    {
      "name": "SCIM"
    },
    {
      "name": "Reporting"
    },
    {
      "name": "VoIPCalling"
    },
    {
      "name": "ADG"
    }
  ],
  "x-auth-required": true,
  "x-blacklisting-strategy": "Off",
  "x-internal-api": false,
  "x-metered-api": true,
  "x-metering-group": "System",
  "x-servers": [
    {
      "url": "//platform.ringcentral.com",
      "description": "Default server"
    },
    {
      "url": "//platform.devtest.ringcentral.com",
      "description": "Sandbox se"
    }
  ],
  "x-service-interface": "rest",
  "x-service-name": "pas",
  "x-service-version": "v1",
  "x-tagGroups": [
    {
      "name": "General",
      "tags": [
        "API Info"
      ]
    },
    {
      "name": "Data",
      "tags": [
        "Call Log"
      ]
    },
    {
      "name": "Contacts",
      "tags": [
        "User Contacts",
        "Company Contacts",
        "Phone Numbers"
      ]
    },
    {
      "name": "Messages",
      "tags": [
        "SMS and MMS",
        "Fax",
        "Internal Messages"
      ]
    },
    {
      "name": "Voice",
      "tags": [
        "RingOut",
        "Presence",
        "Greeting Recording Call",
        "Verification Call"
      ]
    },
    {
      "name": null,
      "tags": [
        "Glip [Beta]"
      ]
    },
    {
      "name": null,
      "tags": [
        "Meetings [Beta]"
      ]
    },
    {
      "name": null,
      "tags": [
        "Push Notifications"
      ]
    },
    {
      "name": null,
      "tags": [
        "Roles and Permissions"
      ]
    },
    {
      "name": "Configuration",
      "tags": [
        "Call Handling Settings",
        "Application Settings",
        "User Settings",
        "Company Settings",
        "Regional Settings",
        "Account Provisioning"
      ]
    },
    {
      "name": null,
      "tags": [
        "SCIM"
      ]
    },
    {
      "name": null,
      "tags": [
        "Reporting"
      ]
    },
    {
      "name": "Telephony API",
      "tags": [
        "VoIPCalling"
      ]
    },
    {
      "name": "Internal",
      "tags": [
        "ADG",
        "Integrations"
      ]
    }
  ],
  "paths": {
    "/restapi/": {
      "get": {
        "tags": [
          "API Info"
        ],
        "summary": "Get API Versions",
        "description": "<p>Returns current API version(s) and server info.</p>\n<h4>Usage Plan Group</h4>\n<p>NoThrottling</p>",
        "operationId": "getAllVersions",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "API Server Info",
            "schema": {
              "$ref": "#/definitions/GetVersionsResponse"
            }
          }
        },
        "x-api-group": "restapi",
        "x-auth-required": false,
        "x-throttling-group": "NoThrottling",
        "x-metered-api": true,
        "x-metering-group": "Free",
        "x-access-level": "Basic"
      }
    },
    "/restapi/{apiVersion}": {
      "get": {
        "tags": [
          "API Info"
        ],
        "summary": "Get Version Info",
        "description": "<p>Returns current API version info by apiVersion.</p>\n<h4>Usage Plan Group</h4>\n<p>NoThrottling</p>",
        "operationId": "getApiVersion",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "apiVersion",
            "in": "path",
            "description": "API version to be requested, for example 'v1.0'",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/GetVersionResponse"
            }
          }
        },
        "x-api-group": "restapi/version",
        "x-auth-required": false,
        "x-throttling-group": "NoThrottling",
        "x-metered-api": true,
        "x-metering-group": "Free",
        "x-access-level": "Basic"
      }
    },
    "/restapi/v1.0/status": {
      "get": {
        "tags": [
          "API Info"
        ],
        "summary": "Get Service status",
        "description": "<p>Returns current PAS service status.</p>\n<h4>Usage Plan Group</h4>\n<p>NoThrottling</p>",
        "operationId": "loadAPIStatus",
        "responses": {
          "200": {
            "description": "Operational"
          },
          "503": {
            "description": "VoIP-only Mode"
          }
        },
        "x-api-group": "restapi/status",
        "x-auth-required": false,
        "x-throttling-group": "NoThrottling",
        "x-metered-api": true,
        "x-metering-group": "Free",
        "x-access-level": "Basic"
      }
    },
    "/restapi/v1.0/account/{accountId}/extension/{extensionId}/call-log": {
      "get": {
        "tags": [
          "Call Log"
        ],
        "summary": "Get Call Log Records by Filter",
        "description": "<p>Returns call log records filtered by parameters specified.</p>\n<h4>App Permission</h4>\n<p>ReadCallLog</p>\n<h4>User Permission</h4>\n<p>ReadCallLog</p>\n<h4>Usage Plan Group</h4>\n<p>Heavy</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>400</td>\n<td>CLG-110</td>\n<td>Parameter [sessionId] is not allowed for usage along with parameter [extensionNumber]</td>\n</tr>\n<tr>\n<td>400</td>\n<td>CMN-101</td>\n<td>Parameter [transport] value is invalid</td>\n</tr>\n<tr>\n<td>401</td>\n<td>CMN-405</td>\n<td>Login to extension required</td>\n</tr>\n<tr>\n<td>401</td>\n<td>OAU-129</td>\n<td>Access token corrupted</td>\n</tr>\n<tr>\n<td>401</td>\n<td>OAU-151</td>\n<td>Authorization method not supported</td>\n</tr>\n<tr>\n<td>401</td>\n<td>OAU-213</td>\n<td>Token not found</td>\n</tr>\n<tr>\n<td>403</td>\n<td>CMN-401</td>\n<td>In order to call this API endpoint, application needs to have [ReadCallLog] permission</td>\n</tr>\n<tr>\n<td>403</td>\n<td>CMN-408</td>\n<td>In order to call this API endpoint, user needs to have [ReadCallLog] permission for requested resource.</td>\n</tr>\n<tr>\n<td>404</td>\n<td>CMN-102</td>\n<td>Resource for parameter [extensionId] is not found</td>\n</tr>\n<tr>\n<td>429</td>\n<td>CMN-301</td>\n<td>Request rate exceeded</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "operationId": "loadExtensionCallLog",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          },
          {
            "name": "extensionId",
            "in": "path",
            "description": "Internal identifier of an extension or tilde (~) to indicate the extension assigned to the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          },
          {
            "name": "extensionNumber",
            "in": "query",
            "description": "Extension number of a user. If specified, returns call log for a particular extension only",
            "required": false,
            "type": "string"
          },
          {
            "name": "showBlocked",
            "in": "query",
            "description": "If 'True' then calls from/to blocked numbers are returned",
            "default": true,
            "required": false,
            "type": "boolean"
          },
          {
            "name": "phoneNumber",
            "in": "query",
            "description": "Phone number of a caller/callee. If specified, returns all calls (both incoming and outcoming) with the phone number specified",
            "required": false,
            "type": "string"
          },
          {
            "name": "direction",
            "in": "query",
            "description": "The direction for the resulting records. If not specified, both inbound and outbound records are returned. Multiple values are accepted",
            "required": false,
            "type": "array",
            "enum": [
              "Inbound",
              "Outbound"
            ],
            "collectionFormat": "multi",
            "items": {
              "type": "string"
            }
          },
          {
            "name": "sessionId",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "type",
            "in": "query",
            "description": "Call type of a record. It is allowed to specify more than one type. If not specified, all call types are returned. Multiple values are accepted",
            "required": false,
            "type": "array",
            "enum": [
              "Voice",
              "Fax"
            ],
            "collectionFormat": "multi",
            "items": {
              "type": "string"
            }
          },
          {
            "name": "transport",
            "in": "query",
            "description": "Call transport type. 'PSTN' specifies that a call leg is initiated from the PSTN network provider; 'VoIP' - from an RC phone. By default this filter is disabled",
            "required": false,
            "type": "array",
            "enum": [
              "PSTN",
              "VoIP"
            ],
            "collectionFormat": "multi",
            "items": {
              "type": "string"
            }
          },
          {
            "name": "view",
            "in": "query",
            "description": "The default value is 'Simple' for both account and extension call log",
            "required": false,
            "type": "array",
            "enum": [
              "Simple",
              "Detailed"
            ],
            "collectionFormat": "multi",
            "items": {
              "type": "string"
            }
          },
          {
            "name": "withRecording",
            "in": "query",
            "description": "True should be specified to return recorded calls only",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "dateTo",
            "in": "query",
            "description": "The end datetime for resulting records in ISO 8601 format including timezone, for example 2016-03-10T18:07:52.534Z. The default value is current time",
            "required": false,
            "type": "string",
            "format": "date-time"
          },
          {
            "name": "dateFrom",
            "in": "query",
            "description": "The start datetime for resulting records in ISO 8601 format including timezone, for example 2016-03-10T18:07:52.534Z. The default value is dateTo minus 24 hours",
            "required": false,
            "type": "string",
            "format": "date-time"
          },
          {
            "name": "page",
            "in": "query",
            "description": "Indicates the page number to retrieve. Only positive number values are allowed",
            "default": "1",
            "required": false,
            "type": "integer"
          },
          {
            "name": "perPage",
            "in": "query",
            "description": "Indicates the page size (number of items)",
            "default": "100",
            "required": false,
            "type": "integer"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/ExtensionCallLogResponse"
            }
          }
        },
        "x-api-group": "extension/call-log",
        "x-throttling-group": "Heavy",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-app-permission": "ReadCallLog",
        "x-user-permission": "ReadCallLog",
        "x-access-level": "Basic"
      }
    },
    "/restapi/v1.0/account/{accountId}/extension/{extensionId}/call-log/{callRecordId}": {
      "get": {
        "tags": [
          "Call Log"
        ],
        "summary": "Get Call Records by ID",
        "description": "<p>Returns filtered call log records.</p>\n<h4>App Permission</h4>\n<p>ReadCallLog</p>\n<h4>User Permission</h4>\n<p>ReadCallLog</p>\n<h4>Usage Plan Group</h4>\n<p>Heavy</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>403</td>\n<td>CMN-401</td>\n<td>In order to call this API endpoint, application needs to have [ReadCallLog] permission</td>\n</tr>\n<tr>\n<td>403</td>\n<td>CMN-408</td>\n<td>In order to call this API endpoint, user needs to have [ReadCallLog] permission for requested resource.</td>\n</tr>\n<tr>\n<td>404</td>\n<td>CMN-102</td>\n<td>Resource for parameter [extensionId] is not found</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "operationId": "getCallRecords",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "callRecordId",
            "in": "path",
            "required": true,
            "type": "array",
            "collectionFormat": "csv",
            "items": {
              "type": "string"
            }
          },
          {
            "name": "view",
            "in": "query",
            "required": false,
            "type": "string",
            "enum": [
              "Simple",
              "Detailed"
            ]
          },
          {
            "name": "extensionId",
            "in": "path",
            "description": "Internal identifier of an extension or tilde (~) to indicate the extension assigned to the account logged-in within the current session",
            "required": true,
            "type": "string"
          },
          {
            "name": "accountId",
            "in": "path",
            "required": true,
            "description": "Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session",
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Call Log Record",
            "schema": {
              "$ref": "#/definitions/UserCallLogRecord"
            }
          }
        },
        "x-api-group": "extension/call-log",
        "x-throttling-group": "Heavy",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-app-permission": "ReadCallLog",
        "x-user-permission": "ReadCallLog",
        "x-access-level": "Basic"
      }
    },
    "/restapi/v1.0/account/{accountId}/extension/{extensionId}/active-calls": {
      "get": {
        "tags": [
          "Call Log"
        ],
        "summary": "Get User Active Calls",
        "description": "<p>Returns records of all extension calls that are in progress, ordered by start time in descending order.</p>\n<h4>App Permission</h4>\n<p>ReadCallLog</p>\n<h4>User Permission</h4>\n<p>ReadCallLog</p>\n<h4>Usage Plan Group</h4>\n<p>Heavy</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>400</td>\n<td>CMN-101</td>\n<td>Parameter [direction] value is invalid</td>\n</tr>\n<tr>\n<td>401</td>\n<td>CMN-405</td>\n<td>Login to extension required</td>\n</tr>\n<tr>\n<td>401</td>\n<td>OAU-151</td>\n<td>Authorization method not supported</td>\n</tr>\n<tr>\n<td>403</td>\n<td>CMN-401</td>\n<td>In order to call this API endpoint, application needs to have [ReadCallLog] permission</td>\n</tr>\n<tr>\n<td>403</td>\n<td>CMN-408</td>\n<td>In order to call this API endpoint, user needs to have [ReadCallLog] permission for requested resource.</td>\n</tr>\n<tr>\n<td>404</td>\n<td>CMN-102</td>\n<td>Resource for parameter [accountId] is not found</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "operationId": "listExtensionActiveCalls",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          },
          {
            "name": "extensionId",
            "in": "path",
            "description": "Internal identifier of an extension or tilde (~) to indicate the extension assigned to the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          },
          {
            "name": "direction",
            "in": "query",
            "description": "The direction for the result records. If not specified, both inbound and outbound records are returned. Multiple values are accepted",
            "required": false,
            "type": "array",
            "enum": [
              "Inbound",
              "Outbound"
            ],
            "collectionFormat": "multi",
            "items": {
              "type": "string"
            }
          },
          {
            "name": "type",
            "in": "query",
            "description": "Call type of a record. If not specified, all call types are returned. Multiple values are accepted",
            "required": false,
            "type": "array",
            "enum": [
              "Voice",
              "Fax"
            ],
            "collectionFormat": "multi",
            "items": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "Indicates the page number to retrieve. Only positive number values are allowed",
            "default": "1",
            "required": false,
            "type": "integer"
          },
          {
            "name": "perPage",
            "in": "query",
            "description": "Indicates the page size (number of items)",
            "default": "100",
            "required": false,
            "type": "integer"
          }
        ],
        "responses": {
          "default": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/ExtensionActiveCallsResponse"
            }
          }
        },
        "x-api-group": "extension/active-calls",
        "x-throttling-group": "Heavy",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-app-permission": "ReadCallLog",
        "x-user-permission": "ReadCallLog",
        "x-access-level": "Basic"
      }
    },
    "/restapi/v1.0/account/{accountId}/call-log": {
      "get": {
        "tags": [
          "Call Log"
        ],
        "summary": "Get Call Log Records by Filter",
        "description": "<p>Returns call log records filtered by parameters specified.</p>\n<h4>App Permission</h4>\n<p>ReadCallLog</p>\n<h4>User Permission</h4>\n<p>FullCompanyCallLog</p>\n<h4>Usage Plan Group</h4>\n<p>Heavy</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>400</td>\n<td>CLG-110</td>\n<td>Parameter [sessionId] is not allowed for usage along with parameter [extensionNumber]</td>\n</tr>\n<tr>\n<td>400</td>\n<td>CMN-101</td>\n<td>Parameter [dateFrom] value is invalid</td>\n</tr>\n<tr>\n<td>401</td>\n<td>CMN-405</td>\n<td>Login to extension required</td>\n</tr>\n<tr>\n<td>401</td>\n<td>OAU-151</td>\n<td>Authorization method not supported</td>\n</tr>\n<tr>\n<td>403</td>\n<td>CMN-401</td>\n<td>In order to call this API endpoint, application needs to have [ReadCallLog] permission</td>\n</tr>\n<tr>\n<td>403</td>\n<td>CMN-408</td>\n<td>In order to call this API endpoint, user needs to have [ReadCompanyCallLog] permission for requested resource.</td>\n</tr>\n<tr>\n<td>404</td>\n<td>CMN-102</td>\n<td>Resource for parameter [accountId] is not found</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "operationId": "loadAccountCallLog",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          },
          {
            "name": "extensionNumber",
            "in": "query",
            "description": "Extension number of a user. If specified, returns call log for a particular extension only",
            "required": false,
            "type": "string"
          },
          {
            "name": "phoneNumber",
            "in": "query",
            "description": "Phone number of a caller/call recipient. If specified, returns all calls (both incoming and outcoming) with the phone number specified. Cannot be specified together with the extensionNumber filter",
            "required": false,
            "type": "string"
          },
          {
            "name": "direction",
            "in": "query",
            "description": "The direction for the result records. If not specified, both inbound and outbound records are returned. Multiple values are accepted",
            "required": false,
            "type": "array",
            "enum": [
              "Inbound",
              "Outbound"
            ],
            "collectionFormat": "multi",
            "items": {
              "type": "string"
            }
          },
          {
            "name": "type",
            "in": "query",
            "description": "Call type of a record. If not specified, all call types are returned. Multiple values are accepted",
            "required": false,
            "type": "array",
            "enum": [
              "Voice",
              "Fax"
            ],
            "collectionFormat": "multi",
            "items": {
              "type": "string"
            }
          },
          {
            "name": "view",
            "in": "query",
            "description": "The default value is 'Simple' for both account and extension call log",
            "required": false,
            "type": "array",
            "enum": [
              "Simple",
              "Detailed"
            ],
            "collectionFormat": "multi",
            "items": {
              "type": "string"
            }
          },
          {
            "name": "withRecording",
            "in": "query",
            "description": "True if only recorded calls have to be returned",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "dateFrom",
            "in": "query",
            "description": "The start datetime for resulting records in ISO 8601 format including timezone, for example 2016-03-10T18:07:52.534Z. The default value is dateTo minus 24 hours",
            "required": false,
            "type": "string",
            "format": "date-time"
          },
          {
            "name": "dateTo",
            "in": "query",
            "description": "The end datetime for resulting records in ISO 8601 format including timezone, for example 2016-03-10T18:07:52.534Z. The default value is current time",
            "required": false,
            "type": "string",
            "format": "date-time"
          },
          {
            "name": "page",
            "in": "query",
            "description": "Indicates the page number to retrieve. Only positive number values are accepted",
            "default": "1",
            "required": false,
            "type": "integer"
          },
          {
            "name": "perPage",
            "in": "query",
            "description": "Indicates the page size (number of items)",
            "default": "100",
            "required": false,
            "type": "integer"
          },
          {
            "name": "sessionId",
            "in": "query",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "default": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/AccountCallLogResponse"
            }
          }
        },
        "x-api-group": "account/call-log",
        "x-throttling-group": "Heavy",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-app-permission": "ReadCallLog",
        "x-user-permission": "FullCompanyCallLog",
        "x-access-level": "Basic"
      }
    },
    "/restapi/v1.0/account/{accountId}/recording/{recordingId}": {
      "get": {
        "tags": [
          "Call Log"
        ],
        "summary": "Get Call Recordings",
        "description": "<p>Returns call recording metadata by ID.</p>\n<h4>App Permission</h4>\n<p>ReadCallRecording</p>\n<h4>User Permission</h4>\n<p>ReadCallRecording</p>\n<h4>Usage Plan Group</h4>\n<p>Heavy</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>401</td>\n<td>CMN-405</td>\n<td>Login to extension required</td>\n</tr>\n<tr>\n<td>401</td>\n<td>OAU-151</td>\n<td>Authorization method not supported</td>\n</tr>\n<tr>\n<td>403</td>\n<td>CMN-401</td>\n<td>In order to call this API endpoint, application needs to have [ReadCallRecording] permission</td>\n</tr>\n<tr>\n<td>404</td>\n<td>CMN-102</td>\n<td>Resource for parameter [accountId] is not found</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "operationId": "listCallRecordings",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          },
          {
            "name": "recordingId",
            "in": "path",
            "description": "Internal identifier of a recording (returned in Call Log)",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "default": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/GetCallRecordingResponse"
            }
          }
        },
        "x-api-group": "account/recording",
        "x-throttling-group": "Heavy",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-app-permission": "ReadCallRecording",
        "x-user-permission": "ReadCallRecording",
        "x-access-level": "Basic"
      }
    },
    "/restapi/v1.0/account/{accountId}/recording/{recordingId}/content": {
      "get": {
        "tags": [
          "Call Log"
        ],
        "summary": "Get Call Recordings Data",
        "description": "<p>Returns media content of a call recording.</p>\n<h4>App Permission</h4>\n<p>ReadCallRecording</p>\n<h4>User Permission</h4>\n<p>ReadCallRecording</p>\n<h4>Usage Plan Group</h4>\n<p>Heavy</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>401</td>\n<td>AGW-402</td>\n<td>Invalid Authorization header</td>\n</tr>\n<tr>\n<td>401</td>\n<td>CMN-405</td>\n<td>Login to extension required</td>\n</tr>\n<tr>\n<td>401</td>\n<td>OAU-149</td>\n<td>Unparsable access token</td>\n</tr>\n<tr>\n<td>401</td>\n<td>OAU-151</td>\n<td>Authorization method not supported</td>\n</tr>\n<tr>\n<td>403</td>\n<td>CMN-401</td>\n<td>In order to call this API endpoint, application needs to have [ReadCallRecording] permission</td>\n</tr>\n<tr>\n<td>404</td>\n<td>CMN-102</td>\n<td>Resource for parameter [accountId] is not found</td>\n</tr>\n<tr>\n<td>416</td>\n<td>CMN-107</td>\n<td>Requested range not satisfiable</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "operationId": "listCallRecordingData",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "audio/x-wav",
          "audio/mpeg"
        ],
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          },
          {
            "name": "recordingId",
            "in": "path",
            "description": "Internal identifier of a recording (returned in Call Log)",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Call Recording Media Data",
            "schema": {
              "type": "file"
            }
          }
        },
        "x-api-group": "account/recording/content",
        "x-throttling-group": "Heavy",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-app-permission": "ReadCallRecording",
        "x-user-permission": "ReadCallRecording",
        "x-access-level": "Basic"
      }
    },
    "/restapi/v1.0/account/{accountId}/extension/{extensionId}/sms": {
      "post": {
        "tags": [
          "SMS and MMS"
        ],
        "summary": "Create SMS Message",
        "description": "<p>Creates and sends new SMS message. Sending SMS messages simultaneously to different recipients is limited up to 50 requests per minute; relevant for all client applications.</p>\n<h4>App Permission</h4>\n<p>SMS</p>\n<h4>User Permission</h4>\n<p>OutboundSMS</p>\n<h4>Usage Plan Group</h4>\n<p>Medium</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>400</td>\n<td>CMN-101</td>\n<td>Parameter [] value is invalid</td>\n</tr>\n<tr>\n<td>400</td>\n<td>CMN-406</td>\n<td>Duplicate value for parameter to: +13476733173 found in request</td>\n</tr>\n<tr>\n<td>400</td>\n<td>MSG-243</td>\n<td>Parameter [to] value [18882049692] is invalid [Phone number is blocked]</td>\n</tr>\n<tr>\n<td>400</td>\n<td>MSG-245</td>\n<td>Parameter [from] value [88121002330] is invalid [Cannot find the phone number which belongs to user]</td>\n</tr>\n<tr>\n<td>400</td>\n<td>MSG-246</td>\n<td>Sending SMS from/to extension numbers is not available</td>\n</tr>\n<tr>\n<td>400</td>\n<td>MSG-247</td>\n<td>Sending SMS to short numbers is not available</td>\n</tr>\n<tr>\n<td>400</td>\n<td>MSG-365</td>\n<td>Parameters [country.id] and [country.isoCode] can not be specified simultaneously</td>\n</tr>\n<tr>\n<td>400</td>\n<td>MSG-376</td>\n<td>Attachment size limit exceeded</td>\n</tr>\n<tr>\n<td>400</td>\n<td>MSG-379</td>\n<td>Too many attachments</td>\n</tr>\n<tr>\n<td>400</td>\n<td>MSG-381</td>\n<td>Exceeded maximum number of recipients for a Group MMS: [10]</td>\n</tr>\n<tr>\n<td>403</td>\n<td>BIL-103</td>\n<td>Feature [MMS] is not available for current account</td>\n</tr>\n<tr>\n<td>403</td>\n<td>CMN-401</td>\n<td>In order to call this API endpoint, application needs to have [SMS] permission</td>\n</tr>\n<tr>\n<td>403</td>\n<td>CMN-408</td>\n<td>In order to call this API endpoint, user needs to have [OutboundSMS] permission for requested resource.</td>\n</tr>\n<tr>\n<td>403</td>\n<td>MSG-240</td>\n<td>International SMS is not available for account.</td>\n</tr>\n<tr>\n<td>403</td>\n<td>MSG-241</td>\n<td>Cannot send SMS from Fax number</td>\n</tr>\n<tr>\n<td>403</td>\n<td>MSG-242</td>\n<td>The requested feature is not available</td>\n</tr>\n<tr>\n<td>403</td>\n<td>MSG-314</td>\n<td>Extension is of inappropriate type</td>\n</tr>\n<tr>\n<td>403</td>\n<td>MSG-367</td>\n<td>\"from\" phone number does not support SMS</td>\n</tr>\n<tr>\n<td>403</td>\n<td>MSG-383</td>\n<td>International MMS feature is not available</td>\n</tr>\n<tr>\n<td>403</td>\n<td>MSG-384</td>\n<td>Account limits exceeded. Cannot send the message.</td>\n</tr>\n<tr>\n<td>403</td>\n<td>MSG-388</td>\n<td>The destination is prohibited</td>\n</tr>\n<tr>\n<td>404</td>\n<td>CMN-102</td>\n<td>Resource for parameter [accountId] is not found</td>\n</tr>\n<tr>\n<td>415</td>\n<td>MSG-348</td>\n<td>Unsupported attachment media type, attachment [3]: [stuff.smil]</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "operationId": "sendSMS",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          },
          {
            "name": "extensionId",
            "in": "path",
            "description": "Internal identifier of an extension or tilde (~) to indicate the extension assigned to the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          },
          {
            "in": "body",
            "name": "body",
            "description": "JSON body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/CreateSMSMessage"
            }
          }
        ],
        "responses": {
          "default": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/GetMessageInfoResponse"
            },
            "examples": {
              "application/json": {
                "uri": "https://platform.ringcentral.com/account/1346632010/extension/1346632010/message-store/315450330010",
                "id": 315450330010,
                "to": [
                  {
                    "phoneNumber": "+18551003738"
                  }
                ],
                "from": {
                  "phoneNumber": "+18559100010"
                },
                "type": "SMS",
                "creationTime": "2012-09-13T15:21:08.000Z",
                "readStatus": "Unread",
                "priority": "Normal",
                "attachments": [
                  {
                    "id": 1,
                    "uri": "https://platform.ringcentral.com/account/1346632010/extension/1346632010/message-store/315450330010/content/1",
                    "contentType": "text/plain"
                  }
                ],
                "direction": "Outbound",
                "availability": "Alive",
                "subject": "Test SMS message",
                "messageStatus": "Sent",
                "conversationId": 4481650717038104600,
                "lastModifiedTime": "2012-09-13T15:21:09.000Z"
              }
            }
          }
        },
        "x-api-group": "extension/sms",
        "x-throttling-group": "Medium",
        "x-metered-api": true,
        "x-metering-group": "Messaging",
        "x-app-permission": "SMS",
        "x-user-permission": "OutboundSMS",
        "x-access-level": "Basic"
      }
    },
    "/restapi/v1.0/account/{accountId}/extension/{extensionId}/company-pager": {
      "post": {
        "tags": [
          "Internal Messages"
        ],
        "summary": "Create Pager Message",
        "description": "<p>Creates and sends a pager message.</p>\n<h4>App Permission</h4>\n<p>InternalMessages</p>\n<h4>User Permission</h4>\n<p>InternalSMS</p>\n<h4>Usage Plan Group</h4>\n<p>Medium</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>400</td>\n<td>CMN-101</td>\n<td>Parameter [to.phoneNumber] value is invalid</td>\n</tr>\n<tr>\n<td>400</td>\n<td>CMN-102</td>\n<td>Resource for parameter [to] is not found</td>\n</tr>\n<tr>\n<td>400</td>\n<td>MSG-316</td>\n<td>Parameter [to] value [102] is invalid [Target extension not found]</td>\n</tr>\n<tr>\n<td>400</td>\n<td>MSG-324</td>\n<td>Extension is of unappropriate state</td>\n</tr>\n<tr>\n<td>400</td>\n<td>MSG-331</td>\n<td>Parameter [from] value [11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111] is invalid [Sender extension number does not correspond to logged in extension]</td>\n</tr>\n<tr>\n<td>400</td>\n<td>MSG-332</td>\n<td>Parameter [from] value [404544780008] is invalid [Sender extension id does not correspond to logged in extension]</td>\n</tr>\n<tr>\n<td>400</td>\n<td>MSG-335</td>\n<td>Recipient extension number does not correspond to ID</td>\n</tr>\n<tr>\n<td>403</td>\n<td>CMN-401</td>\n<td>In order to call this API endpoint, application needs to have [InternalMessages] permission</td>\n</tr>\n<tr>\n<td>403</td>\n<td>CMN-408</td>\n<td>In order to call this API endpoint, user needs to have [InternalSMS] permission for requested resource.</td>\n</tr>\n<tr>\n<td>403</td>\n<td>MSG-325</td>\n<td>Reply is forbidden for old message threads</td>\n</tr>\n<tr>\n<td>403</td>\n<td>MSG-326</td>\n<td>Reply is denied for user, who is no longer a thread participant</td>\n</tr>\n<tr>\n<td>403</td>\n<td>MSG-330</td>\n<td>Sender extension is of unappropriate type</td>\n</tr>\n<tr>\n<td>404</td>\n<td>CMN-102</td>\n<td>Resource for parameter [extensionId] is not found</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "operationId": "sendInternalMessage",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          },
          {
            "name": "extensionId",
            "in": "path",
            "description": "Internal identifier of an extension or tilde (~) to indicate the extension assigned to the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          },
          {
            "in": "body",
            "name": "body",
            "description": "JSON body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/CreatePagerMessageRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Created Pager Message",
            "schema": {
              "$ref": "#/definitions/GetMessageInfoResponse"
            },
            "examples": {
              "application/json": {
                "uri": "https://platform.ringcentral.com/restapi/v1.0/account/2759647004/extension/2759647004/message-store/2640223004",
                "id": 2640223004,
                "to": [
                  {
                    "extensionNumber": "105",
                    "extensionId": "2759654004",
                    "name": "John Black"
                  },
                  {
                    "extensionNumber": "104",
                    "extensionId": "2759653004",
                    "name": "Jane White"
                  },
                  {
                    "extensionNumber": "101",
                    "extensionId": "2759647004",
                    "name": "Lily Bloomfield"
                  }
                ],
                "from": {
                  "extensionNumber": "101",
                  "extensionId": "2759647004",
                  "name": "Lily Bloomfield"
                },
                "type": "Pager",
                "creationTime": "2016-09-07T12:37:28.000Z",
                "readStatus": "Read",
                "priority": "Normal",
                "attachments": [
                  {
                    "id": 2640223004,
                    "uri": "https://platform.ringcentral.com/restapi/v1.0/account/2759647004/extension/2759647004/message-store/2640223004/content/2640223004",
                    "type": "Text",
                    "contentType": "text/plain"
                  }
                ],
                "direction": "Outbound",
                "availability": "Alive",
                "subject": "Hello!",
                "messageStatus": "Sent",
                "conversationId": 2640223004,
                "lastModifiedTime": "2016-09-07T12:37:28.520Z",
                "pgToDepartment": false
              }
            }
          }
        },
        "x-api-group": "extension/company-pager",
        "x-throttling-group": "Medium",
        "x-metered-api": true,
        "x-metering-group": "Messaging",
        "x-app-permission": "InternalMessages",
        "x-user-permission": "InternalSMS",
        "x-access-level": "Basic"
      }
    },
    "/restapi/v1.0/account/{accountId}/extension/{extensionId}/fax": {
      "post": {
        "tags": [
          "Fax"
        ],
        "summary": "Create Fax Message",
        "operationId": "sendFaxMessage",
        "description": "<p>Creates and sends/resends new fax message. Resend can be done if sending failed.</p>\n<h4>App Permission</h4>\n<p>Faxes</p>\n<h4>User Permission</h4>\n<p>OutboundFaxes</p>\n<h4>Usage Plan Group</h4>\n<p>Heavy</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>400</td>\n<td>CMN-101</td>\n<td>Parameter [to] value is invalid</td>\n</tr>\n<tr>\n<td>400</td>\n<td>MSG-344</td>\n<td>Sending fax to extension numbers is not available</td>\n</tr>\n<tr>\n<td>400</td>\n<td>MSG-347</td>\n<td>Attachment [t.txt] body is empty</td>\n</tr>\n<tr>\n<td>400</td>\n<td>MSG-355</td>\n<td>For binary data filename with extension should be specified, attachment [1]: []</td>\n</tr>\n<tr>\n<td>400</td>\n<td>MSG-356</td>\n<td>Either filename or content type should be specified, attachment [1]: []</td>\n</tr>\n<tr>\n<td>400</td>\n<td>MSG-365</td>\n<td>Parameters [country.id] and [country.isoCode] can not be specified simultaneously</td>\n</tr>\n<tr>\n<td>400</td>\n<td>MSG-370</td>\n<td>filename is too long, 256 characters allowed</td>\n</tr>\n<tr>\n<td>403</td>\n<td>CMN-401</td>\n<td>In order to call this API endpoint, application needs to have [Faxes] permission</td>\n</tr>\n<tr>\n<td>403</td>\n<td>CMN-408</td>\n<td>In order to call this API endpoint, user needs to have [OutboundFaxes] permission for requested resource.</td>\n</tr>\n<tr>\n<td>404</td>\n<td>CMN-102</td>\n<td>Resource for parameter [extensionId] is not found</td>\n</tr>\n<tr>\n<td>415</td>\n<td>MSG-348</td>\n<td>Unsupported attachment media type, attachment [1]: [.jfif]</td>\n</tr>\n<tr>\n<td>415</td>\n<td>MSG-353</td>\n<td>No file extension or content type specified, attachment [1]: [filename,txt]</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "consumes": [
          "multipart/form-data"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "Internal identifier of a RingCentral account (integer) or tilde (~) to indicate the account which was logged-in within the current session.",
            "required": true,
            "type": "string"
          },
          {
            "name": "extensionId",
            "in": "path",
            "description": "Internal identifier of an extension (integer) or tilde (~) to indicate the extension assigned to the account logged-in within the current session",
            "required": true,
            "type": "string"
          },
          {
            "name": "attachment",
            "in": "formData",
            "description": "File to upload",
            "required": true,
            "type": "file"
          },
          {
            "name": "faxResolution",
            "in": "formData",
            "description": "Resolution of Fax",
            "required": true,
            "type": "string",
            "enum": [
              "High",
              "Low"
            ]
          },
          {
            "name": "to",
            "in": "formData",
            "description": "To Phone Number",
            "required": true,
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          {
            "name": "sendTime",
            "in": "formData",
            "description": "Timestamp to send fax at. If not specified (current or the past), the fax is sent immediately",
            "required": false,
            "type": "string",
            "format": "date-time"
          },
          {
            "name": "isoCode",
            "in": "formData",
            "description": "ISO Code. e.g UK",
            "type": "string"
          },
          {
            "name": "coverIndex",
            "in": "formData",
            "description": "Cover page identifier. For the list of available cover page identifiers please call the method Fax Cover Pages. If not specified, the default cover page which is configured in 'Outbound Fax Settings' is attached",
            "type": "integer"
          },
          {
            "name": "coverPageText",
            "in": "formData",
            "description": "Cover page text, entered by the fax sender and printed on the cover page. Maximum length is limited to 1024 symbols",
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "OK: Fax Message Sent",
            "schema": {
              "$ref": "#/definitions/FaxResponse"
            },
            "examples": {
              "application/json": {
                "uri": "https://platform.ringcentral.com/restapi/v1.0/account/2704667004/extension/2704667004/message-store/3349579004",
                "id": 3349579004,
                "to": [
                  {
                    "phoneNumber": "+18005630003",
                    "messageStatus": "Queued"
                  }
                ],
                "type": "Fax",
                "creationTime": "2015-12-10T10:14:28.000Z",
                "readStatus": "Unread",
                "priority": "Normal",
                "attachments": [
                  {
                    "id": 3349579004,
                    "uri": "https://platform.ringcentral.com/restapi/v1.0/account/2704667004/extension/2704667004/message-store/3349579004/content/3349579004",
                    "type": "RenderedDocument",
                    "contentType": "application/pdf"
                  }
                ],
                "direction": "Outbound",
                "availability": "Alive",
                "messageStatus": "Queued",
                "faxResolution": "High",
                "faxPageCount": 0,
                "lastModifiedTime": "2015-12-10T10:14:28.836Z",
                "coverIndex": 7
              }
            }
          }
        },
        "x-api-group": "extension/fax",
        "x-throttling-group": "Heavy",
        "x-metered-api": true,
        "x-metering-group": "Time-based",
        "x-app-permission": "Faxes",
        "x-user-permission": "OutboundFaxes",
        "x-access-level": "Basic"
      }
    },
    "/restapi/v1.0/dictionary/fax-cover-page": {
      "get": {
        "tags": [
          "Fax"
        ],
        "summary": "Get Available Fax Cover Pages",
        "operationId": "listFaxCoverPages",
        "description": "<p>Returns fax cover pages available for the current extension.</p>\n<h4>Usage Plan Group</h4>\n<p>Light</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>400</td>\n<td>CMN-101</td>\n<td>Parameter [page] value is invalid</td>\n</tr>\n<tr>\n<td>401</td>\n<td>CMN-405</td>\n<td>Login to extension required</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "description": "Indicates the page number to retrieve. Only positive number values are accepted",
            "default": "1",
            "required": false,
            "type": "integer"
          },
          {
            "name": "perPage",
            "in": "query",
            "description": "Indicates the page size (number of items)",
            "default": "100",
            "required": false,
            "type": "integer"
          }
        ],
        "responses": {
          "200": {
            "description": "List of Available Fax Cover Pages",
            "examples": {
              "application/json": {
                "uri": "https://platform.ringcentral.com/restapi/v1.0/dictionary/fax-cover-page?page=1&perPage=100",
                "records": [
                  {
                    "id": "0",
                    "name": "None"
                  },
                  {
                    "id": "1",
                    "name": "Ancient"
                  },
                  {
                    "id": "2",
                    "name": "Birthday"
                  },
                  {
                    "id": "3",
                    "name": "Blank"
                  },
                  {
                    "id": "4",
                    "name": "Clasmod"
                  },
                  {
                    "id": "5",
                    "name": "Classic"
                  },
                  {
                    "id": "6",
                    "name": "Confidential"
                  },
                  {
                    "id": "7",
                    "name": "Contempo"
                  },
                  {
                    "id": "8",
                    "name": "Elegant"
                  },
                  {
                    "id": "9",
                    "name": "Express"
                  },
                  {
                    "id": "10",
                    "name": "Formal"
                  },
                  {
                    "id": "11",
                    "name": "Jazzy"
                  },
                  {
                    "id": "12",
                    "name": "Modern"
                  },
                  {
                    "id": "13",
                    "name": "Urgent"
                  }
                ],
                "paging": {
                  "page": 1,
                  "totalPages": 1,
                  "perPage": 100,
                  "totalElements": 14,
                  "pageStart": 0,
                  "pageEnd": 13
                },
                "navigation": {
                  "firstPage": {
                    "uri": "https://platform.ringcentral.com/restapi/v1.0/dictionary/fax-cover-page?page=1&perPage=100"
                  },
                  "lastPage": {
                    "uri": "https://platform.ringcentral.com/restapi/v1.0/dictionary/fax-cover-page?page=1&perPage=100"
                  }
                }
              }
            }
          }
        },
        "x-api-group": "dictionary/fax-cover-page",
        "x-throttling-group": "Light",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-access-level": "Basic"
      }
    },
    "/restapi/v1.0/account/{accountId}/extension/{extensionId}/message-store": {
      "get": {
        "tags": [
          "Fax",
          "SMS and MMS",
          "Internal Messages"
        ],
        "summary": "Get Message List",
        "description": "<p>Returns the list of messages from an extension mailbox.</p>\n<h4>App Permission</h4>\n<p>ReadMessages</p>\n<h4>User Permission</h4>\n<p>ReadMessages</p>\n<h4>Usage Plan Group</h4>\n<p>Light</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>400</td>\n<td>CMN-101</td>\n<td>Parameter [readStatus] value is invalid</td>\n</tr>\n<tr>\n<td>401</td>\n<td>CMN-405</td>\n<td>Login to extension required</td>\n</tr>\n<tr>\n<td>401</td>\n<td>OAU-151</td>\n<td>Authorization method not supported</td>\n</tr>\n<tr>\n<td>403</td>\n<td>CMN-401</td>\n<td>In order to call this API endpoint, application needs to have [ReadMessages] permission</td>\n</tr>\n<tr>\n<td>403</td>\n<td>CMN-408</td>\n<td>In order to call this API endpoint, user needs to have [ReadMessages] permission for requested resource.</td>\n</tr>\n<tr>\n<td>404</td>\n<td>CMN-102</td>\n<td>Resource for parameter [extensionId] is not found</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "operationId": "listMessages",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          },
          {
            "name": "extensionId",
            "in": "path",
            "description": "Internal identifier of an extension or tilde (~) to indicate the extension assigned to the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          },
          {
            "name": "availability",
            "in": "query",
            "description": "Specifies the availability status for the resulting messages. Multiple values are accepted",
            "required": false,
            "type": "array",
            "default": "Alive",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi",
            "enum": [
              "Alive",
              "Deleted",
              "Purged"
            ]
          },
          {
            "name": "conversationId",
            "in": "query",
            "description": "Specifies the conversation identifier for the resulting messages",
            "required": false,
            "type": "integer"
          },
          {
            "name": "dateFrom",
            "in": "query",
            "description": "The start datetime for resulting messages in ISO 8601 format including timezone, for example 2016-03-10T18:07:52.534Z. The default value is dateTo minus 24 hours",
            "required": false,
            "type": "string",
            "format": "date-time"
          },
          {
            "name": "dateTo",
            "in": "query",
            "description": "The end datetime for resulting messages in ISO 8601 format including timezone, for example 2016-03-10T18:07:52.534Z. The default value is current time",
            "required": false,
            "type": "string",
            "format": "date-time"
          },
          {
            "name": "direction",
            "in": "query",
            "description": "The direction for the resulting messages. If not specified, both inbound and outbound messages are returned. Multiple values are accepted",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi",
            "enum": [
              "Inbound",
              "Outbound"
            ]
          },
          {
            "name": "distinctConversations",
            "in": "query",
            "description": "If 'True', then the latest messages per every conversation ID are returned",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "messageType",
            "in": "query",
            "description": "The type of the resulting messages. If not specified, all messages without message type filtering are returned. Multiple values are accepted",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi",
            "enum": [
              "Fax",
              "SMS",
              "VoiceMail",
              "Pager",
              "Text"
            ]
          },
          {
            "name": "readStatus",
            "in": "query",
            "description": "The read status for the resulting messages. Multiple values are accepted",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi",
            "enum": [
              "Read",
              "Unread"
            ]
          },
          {
            "name": "page",
            "in": "query",
            "description": "Indicates the page number to retrieve. Only positive number values are accepted",
            "default": "1",
            "required": false,
            "type": "integer"
          },
          {
            "name": "perPage",
            "in": "query",
            "description": "Indicates the page size (number of items)",
            "default": "100",
            "required": false,
            "type": "integer"
          },
          {
            "name": "phoneNumber",
            "in": "query",
            "description": "The phone number. If specified, messages are returned for this particular phone number only",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/GetMessageList"
            },
            "examples": {
              "application/json": {
                "uri": "https://platform.ringcentral.com/restapi/v1.0/account/400371259008/extension/400371259008/message-store?availability=Alive&dateFrom=2015-11-17T14:40:00.000Z&distinctConversations=true&page=1&perPage=3",
                "records": [
                  {
                    "uri": "https://platform.ringcentral.com/restapi/v1.0/account/400371259008/extension/400371259008/message-store/401060296008",
                    "id": 401060296008,
                    "to": [
                      {
                        "phoneNumber": "+1650875583254"
                      }
                    ],
                    "from": {
                      "phoneNumber": "+18883770028"
                    },
                    "type": "SMS",
                    "creationTime": "2015-11-18T14:28:53.000Z",
                    "readStatus": "Read",
                    "priority": "Normal",
                    "attachments": [
                      {
                        "id": 401060296008,
                        "uri": "https://platform.ringcentral.com/restapi/v1.0/account/400371259008/extension/400371259008/message-store/401060296008/content/401060296008",
                        "type": "Text",
                        "contentType": "text/plain"
                      }
                    ],
                    "direction": "Outbound",
                    "availability": "Alive",
                    "subject": "Test SMS message from Platform server",
                    "messageStatus": "Sent",
                    "smsSendingAttemptsCount": 1,
                    "conversationId": 2335508640601318400,
                    "lastModifiedTime": "2015-11-18T14:28:54.035Z"
                  },
                  {
                    "uri": "https://platform.ringcentral.com/restapi/v1.0/account/400371259008/extension/400371259008/message-store/401060294008",
                    "id": 401060294008,
                    "to": [
                      {
                        "phoneNumber": "+1650876583254"
                      }
                    ],
                    "from": {
                      "phoneNumber": "+18883770028"
                    },
                    "type": "SMS",
                    "creationTime": "2015-11-18T14:28:28.000Z",
                    "readStatus": "Read",
                    "priority": "Normal",
                    "attachments": [
                      {
                        "id": 401060294008,
                        "uri": "https://platform.ringcentral.com/restapi/v1.0/account/400371259008/extension/400371259008/message-store/401060294008/content/401060294008",
                        "type": "Text",
                        "contentType": "text/plain"
                      }
                    ],
                    "direction": "Outbound",
                    "availability": "Alive",
                    "subject": "Test SMS message from Platform server",
                    "messageStatus": "Sent",
                    "smsSendingAttemptsCount": 1,
                    "conversationId": 5226857014532753000,
                    "lastModifiedTime": "2015-11-18T14:28:28.413Z"
                  },
                  {
                    "uri": "https://platform.ringcentral.com/restapi/v1.0/account/400371259008/extension/400371259008/message-store/401060290008",
                    "id": 401060290008,
                    "to": [
                      {
                        "phoneNumber": "+16508783254"
                      }
                    ],
                    "from": {
                      "phoneNumber": "+18883770028"
                    },
                    "type": "SMS",
                    "creationTime": "2015-11-18T14:28:18.000Z",
                    "readStatus": "Read",
                    "priority": "Normal",
                    "attachments": [
                      {
                        "id": 401060290008,
                        "uri": "https://platform.ringcentral.com/restapi/v1.0/account/400371259008/extension/400371259008/message-store/401060290008/content/401060290008",
                        "type": "Text",
                        "contentType": "text/plain"
                      }
                    ],
                    "direction": "Outbound",
                    "availability": "Alive",
                    "subject": "Test SMS message from Platform server",
                    "messageStatus": "Sent",
                    "smsSendingAttemptsCount": 1,
                    "conversationId": 1817157275107994000,
                    "lastModifiedTime": "2015-11-18T14:28:19.126Z"
                  }
                ],
                "paging": {
                  "page": 1,
                  "totalPages": 3,
                  "perPage": 3,
                  "totalElements": 9,
                  "pageStart": 0,
                  "pageEnd": 2
                },
                "navigation": {
                  "nextPage": {
                    "uri": "https://platform.ringcentral.com/restapi/v1.0/account/400371259008/extension/400371259008/message-store?availability=Alive&dateFrom=2015-11-17T14:40:00.000Z&distinctConversations=true&page=2&perPage=3"
                  },
                  "firstPage": {
                    "uri": "https://platform.ringcentral.com/restapi/v1.0/account/400371259008/extension/400371259008/message-store?availability=Alive&dateFrom=2015-11-17T14:40:00.000Z&distinctConversations=true&page=1&perPage=3"
                  },
                  "lastPage": {
                    "uri": "https://platform.ringcentral.com/restapi/v1.0/account/400371259008/extension/400371259008/message-store?availability=Alive&dateFrom=2015-11-17T14:40:00.000Z&distinctConversations=true&page=3&perPage=3"
                  }
                }
              }
            }
          }
        },
        "x-api-group": "extension/message-store",
        "x-throttling-group": "Light",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-app-permission": "ReadMessages",
        "x-user-permission": "ReadMessages",
        "x-access-level": "Basic",
        "x-notifications": [
          {
            "$ref": "#/definitions/InboundMessageEvent"
          }
        ]
      },
      "delete": {
        "tags": [
          "Fax",
          "SMS and MMS",
          "Internal Messages"
        ],
        "summary": "Delete Conversations by ID's",
        "description": "<p>Deletes conversation(s) by conversation ID(s). Batch request is supported.</p>\n<h4>App Permission</h4>\n<p>EditMessages</p>\n<h4>User Permission</h4>\n<p>EditMessages</p>\n<h4>Usage Plan Group</h4>\n<p>Medium</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>400</td>\n<td>CMN-101</td>\n<td>Parameter [conversationId] value is invalid</td>\n</tr>\n<tr>\n<td>403</td>\n<td>CMN-401</td>\n<td>In order to call this API endpoint, application needs to have [EditMessages] permission</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "operationId": "deleteMessagesByFilter",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "conversationId",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "extensionId",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "accountId",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          }
        },
        "x-api-group": "extension/message-store",
        "x-throttling-group": "Medium",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-app-permission": "EditMessages",
        "x-user-permission": "EditMessages",
        "x-access-level": "Basic"
      }
    },
    "/restapi/v1.0/account/{accountId}/extension/{extensionId}/message-store/{messageId}": {
      "get": {
        "tags": [
          "Fax",
          "SMS and MMS",
          "Internal Messages"
        ],
        "summary": "Get Message(s) by ID",
        "description": "<p>Returns individual message record(s) by the given message ID(s). The length of inbound messages is unlimited. Batch request is supported.</p>\n<h4>App Permission</h4>\n<p>ReadMessages</p>\n<h4>User Permission</h4>\n<p>ReadMessages</p>\n<h4>Usage Plan Group</h4>\n<p>Light</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>401</td>\n<td>CMN-405</td>\n<td>Login to extension required</td>\n</tr>\n<tr>\n<td>401</td>\n<td>OAU-151</td>\n<td>Authorization method not supported</td>\n</tr>\n<tr>\n<td>403</td>\n<td>CMN-401</td>\n<td>In order to call this API endpoint, application needs to have [ReadMessages] permission</td>\n</tr>\n<tr>\n<td>403</td>\n<td>CMN-408</td>\n<td>In order to call this API endpoint, user needs to have [ReadMessages] permission for requested resource.</td>\n</tr>\n<tr>\n<td>404</td>\n<td>CMN-102</td>\n<td>Resource for parameter [extensionId] is not found</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "operationId": "loadMessage",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          },
          {
            "name": "extensionId",
            "in": "path",
            "description": "Internal identifier of an extension or tilde (~) to indicate the extension assigned to the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          },
          {
            "name": "messageId",
            "in": "path",
            "description": "Internal identifier of a message",
            "required": true,
            "type": "integer"
          }
        ],
        "responses": {
          "default": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/GetMessageInfoResponse"
            },
            "examples": {
              "application/json": {
                "uri": "https://platform.ringcentral.com/restapi/v1.0/account/14833636004/extension/14833636004/message-store/82063400004",
                "id": 82063400004,
                "to": [
                  {
                    "name": "John Smith"
                  }
                ],
                "from": {
                  "phoneNumber": "+18664320079",
                  "name": "Generated voice message"
                },
                "type": "VoiceMail",
                "creationTime": "2015-04-01T04:39:19.000Z",
                "readStatus": "Unread",
                "priority": "Normal",
                "attachments": [
                  {
                    "id": 82063400004,
                    "uri": "https://platform.ringcentral.com/restapi/v1.0/account/14833636004/extension/14833636004/message-store/82063400004/content/82063400004",
                    "type": "AudioRecording",
                    "contentType": "audio/x-wav",
                    "vmDuration": 30
                  },
                  {
                    "id": 1897320004,
                    "uri": "https://platform.ringcentral.com/restapi/v1.0/account/14833636004/extension/14833636004/message-store/82063400004/content/1897320004",
                    "type": "AudioTranscription",
                    "contentType": "text/plain"
                  }
                ],
                "direction": "Inbound",
                "availability": "Alive",
                "messageStatus": "Received",
                "lastModifiedTime": "2015-04-01T08:39:18.706Z",
                "vmTranscriptionStatus": "Completed"
              }
            }
          }
        },
        "x-api-group": "extension/message-store",
        "x-throttling-group": "Light",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-app-permission": "ReadMessages",
        "x-user-permission": "ReadMessages",
        "x-access-level": "Basic"
      },
      "put": {
        "tags": [
          "Fax",
          "SMS and MMS",
          "Internal Messages"
        ],
        "summary": "Update Message(s) by ID",
        "description": "<p>Updates message(s) by ID(s). Batch request is supported, see Batch Requests for details. Currently, only the message read status updating is supported.</p>\n<h4>App Permission</h4>\n<p>EditMessages</p>\n<h4>User Permission</h4>\n<p>EditMessages</p>\n<h4>Usage Plan Group</h4>\n<p>Medium</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>400</td>\n<td>CMN-101</td>\n<td>Parameter [] value is invalid</td>\n</tr>\n<tr>\n<td>403</td>\n<td>CMN-401</td>\n<td>In order to call this API endpoint, application needs to have [EditMessages] permission</td>\n</tr>\n<tr>\n<td>403</td>\n<td>CMN-408</td>\n<td>In order to call this API endpoint, user needs to have [EditMessages] permission for requested resource.</td>\n</tr>\n<tr>\n<td>404</td>\n<td>CMN-102</td>\n<td>Resource for parameter [extensionId] is not found</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "operationId": "updateMessage",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          },
          {
            "name": "extensionId",
            "in": "path",
            "description": "Internal identifier of an extension or tilde (~) to indicate the extension assigned to the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          },
          {
            "name": "messageId",
            "in": "path",
            "description": "Internal identifier of a message",
            "required": true,
            "type": "integer"
          },
          {
            "in": "body",
            "name": "body",
            "description": "JSON body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/UpdateMessageRequest"
            }
          }
        ],
        "responses": {
          "default": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/GetMessageInfoResponse"
            },
            "examples": {
              "application/json": {
                "uri": "https://platform.ringcentral.com/account/1346632010/extension/1346632010/message-store/1346632010/message-store/315433012010",
                "id": 315433012010,
                "to": [
                  {
                    "phoneNumber": "+18559100010"
                  }
                ],
                "from": {
                  "phoneNumber": "+16509101086"
                },
                "type": "SMS",
                "creationTime": "2012-09-13T14:46:37.000Z",
                "readStatus": "Read",
                "priority": "Normal",
                "attachments": [
                  {
                    "id": 1,
                    "uri": "https://platform.ringcentral.com/account/1346632010/extension/1346632010/message-store/1346632010/message-store/315433012010/content/1",
                    "type": "Text",
                    "contentType": "text/plain"
                  }
                ],
                "direction": "Inbound",
                "availability": "Alive",
                "subject": "This is a sample message",
                "messageStatus": "Received",
                "conversationId": 141549019326272740,
                "lastModifiedTime": "2012-09-13T15:14:46.000Z"
              }
            }
          }
        },
        "x-api-group": "extension/message-store",
        "x-throttling-group": "Medium",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-app-permission": "EditMessages",
        "x-user-permission": "EditMessages",
        "x-access-level": "Basic"
      },
      "delete": {
        "tags": [
          "Fax",
          "SMS and MMS",
          "Internal Messages"
        ],
        "summary": "Delete Message(s) by ID",
        "description": "<p>Deletes message(s) by the given message ID(s). The first call of this method transfers the message to the &#39;Delete&#39; status. The second call transfers the deleted message to the &#39;Purged&#39; status. If it is required to make the message &#39;Purged&#39; immediately (from the first call), then set the query parameter purge to &#39;True&#39;.</p>\n<h4>App Permission</h4>\n<p>EditMessages</p>\n<h4>User Permission</h4>\n<p>EditMessages</p>\n<h4>Usage Plan Group</h4>\n<p>Medium</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>400</td>\n<td>CMN-101</td>\n<td>Parameter [purge] value is invalid</td>\n</tr>\n<tr>\n<td>403</td>\n<td>CMN-401</td>\n<td>In order to call this API endpoint, application needs to have [EditMessages] permission</td>\n</tr>\n<tr>\n<td>403</td>\n<td>CMN-408</td>\n<td>In order to call this API endpoint, user needs to have [EditMessages] permission for requested resource.</td>\n</tr>\n<tr>\n<td>404</td>\n<td>CMN-102</td>\n<td>Resource for parameter [extensionId] is not found</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "operationId": "deleteMessage",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          },
          {
            "name": "extensionId",
            "in": "path",
            "description": "Internal identifier of an extension or tilde (~) to indicate the extension assigned to the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          },
          {
            "name": "messageId",
            "in": "path",
            "description": "Internal identifier of a message",
            "required": true,
            "type": "integer"
          },
          {
            "name": "purge",
            "in": "query",
            "description": "If the value is 'True', then the message is purged immediately with all the attachments",
            "default": false,
            "required": false,
            "type": "boolean"
          },
          {
            "name": "conversationId",
            "in": "query",
            "description": "Internal identifier of a message thread",
            "required": false,
            "type": "integer"
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          }
        },
        "x-api-group": "extension/message-store",
        "x-throttling-group": "Medium",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-app-permission": "EditMessages",
        "x-user-permission": "EditMessages",
        "x-access-level": "Basic"
      }
    },
    "/restapi/v1.0/account/{accountId}/extension/{extensionId}/message-store/{messageId}/content/{attachmentId}": {
      "get": {
        "tags": [
          "Fax",
          "SMS and MMS",
          "Internal Messages"
        ],
        "summary": "Get Message Attachment",
        "description": "<p>Returns a specific message attachment data as a media stream.</p>\n<h4>App Permission</h4>\n<p>ReadMessages</p>\n<h4>User Permission</h4>\n<p>ReadMessageContent</p>\n<h4>Usage Plan Group</h4>\n<p>Medium</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>401</td>\n<td>AGW-402</td>\n<td>Invalid Authorization header</td>\n</tr>\n<tr>\n<td>401</td>\n<td>CMN-405</td>\n<td>Login to extension required</td>\n</tr>\n<tr>\n<td>401</td>\n<td>OAU-149</td>\n<td>Unparsable access token</td>\n</tr>\n<tr>\n<td>401</td>\n<td>OAU-151</td>\n<td>Authorization method not supported</td>\n</tr>\n<tr>\n<td>403</td>\n<td>CMN-401</td>\n<td>In order to call this API endpoint, application needs to have [ReadMessages] permission</td>\n</tr>\n<tr>\n<td>403</td>\n<td>CMN-408</td>\n<td>In order to call this API endpoint, user needs to have [ReadMessageContent] permission for requested resource.</td>\n</tr>\n<tr>\n<td>404</td>\n<td>CMN-102</td>\n<td>Resource for parameter [extensionId] is not found</td>\n</tr>\n<tr>\n<td>416</td>\n<td>CMN-107</td>\n<td>Requested range not satisfiable</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "text/plain",
          "image/tiff"
        ],
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          },
          {
            "name": "extensionId",
            "in": "path",
            "description": "Internal identifier of an extension or tilde (~) to indicate the extension assigned to the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          },
          {
            "name": "attachmentId",
            "in": "path",
            "description": "Internal identifier of a message attachment",
            "required": true,
            "type": "integer"
          },
          {
            "name": "messageId",
            "in": "path",
            "description": "Internal identifier of a message",
            "required": true,
            "type": "integer"
          },
          {
            "name": "Range",
            "in": "header",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Attachment Data",
            "examples": {
              "text/plain": "Test message"
            }
          }
        },
        "x-api-group": "extension/message-store/content",
        "x-throttling-group": "Medium",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-app-permission": "ReadMessages",
        "x-user-permission": "ReadMessageContent",
        "x-access-level": "Basic"
      }
    },
    "/restapi/v1.0/account/{accountId}/extension/{extensionId}/message-sync": {
      "get": {
        "tags": [
          "Fax",
          "SMS and MMS",
          "Internal Messages"
        ],
        "summary": "Get Message Sync",
        "description": "<p>Synchronizes messages.</p>\n<h4>App Permission</h4>\n<p>ReadMessages</p>\n<h4>User Permission</h4>\n<p>ReadMessages</p>\n<h4>Usage Plan Group</h4>\n<p>Light</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>400</td>\n<td>CMN-101</td>\n<td>Parameter [messageType] value is invalid</td>\n</tr>\n<tr>\n<td>400</td>\n<td>MSG-333</td>\n<td>Parameter [syncToken] is invalid</td>\n</tr>\n<tr>\n<td>403</td>\n<td>CMN-401</td>\n<td>In order to call this API endpoint, application needs to have [ReadMessages] permission</td>\n</tr>\n<tr>\n<td>403</td>\n<td>CMN-408</td>\n<td>In order to call this API endpoint, user needs to have [ReadMessages] permission for requested resource.</td>\n</tr>\n<tr>\n<td>404</td>\n<td>CMN-102</td>\n<td>Resource for parameter [extensionId] is not found</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "operationId": "syncMessages",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          },
          {
            "name": "extensionId",
            "in": "path",
            "description": "Internal identifier of an extension or tilde (~) to indicate the extension assigned to the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          },
          {
            "name": "conversationId",
            "in": "query",
            "description": "Conversation identifier for the resulting messages. Meaningful for SMS and Pager messages only.",
            "required": false,
            "type": "integer"
          },
          {
            "name": "dateFrom",
            "in": "query",
            "description": "The start datetime for resulting messages in ISO 8601 format including timezone, for example 2016-03-10T18:07:52.534Z. The default value is dateTo minus 24 hours",
            "required": false,
            "type": "string",
            "format": "date-time"
          },
          {
            "name": "dateTo",
            "in": "query",
            "description": "The end datetime for resulting messages in ISO 8601 format including timezone, for example 2016-03-10T18:07:52.534Z. The default value is current time",
            "required": false,
            "type": "string",
            "format": "date-time"
          },
          {
            "name": "direction",
            "in": "query",
            "description": "Direction for the resulting messages. If not specified, both inbound and outbound messages are returned. Multiple values are accepted",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi",
            "enum": [
              "Inbound",
              "Outbound"
            ]
          },
          {
            "name": "distinctConversations",
            "in": "query",
            "description": "If 'True', then the latest messages per every conversation ID are returned",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "messageType",
            "in": "query",
            "description": "Type for the resulting messages. If not specified, all types of messages are returned. Multiple values are accepted",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi",
            "enum": [
              "Fax",
              "SMS",
              "VoiceMail",
              "Pager",
              "Text"
            ]
          },
          {
            "name": "recordCount",
            "in": "query",
            "description": "Limits the number of records to be returned (works in combination with dateFrom and dateTo if specified)",
            "required": false,
            "type": "integer"
          },
          {
            "name": "syncToken",
            "in": "query",
            "description": "Value of syncToken property of last sync request response",
            "required": false,
            "type": "string"
          },
          {
            "name": "syncType",
            "in": "query",
            "description": "Type of message synchronization",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi",
            "enum": [
              "FSync",
              "ISync"
            ]
          }
        ],
        "responses": {
          "default": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/GetMessageSyncResponse"
            }
          }
        },
        "x-api-group": "extension/message-sync",
        "x-throttling-group": "Light",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-app-permission": "ReadMessages",
        "x-user-permission": "ReadMessages",
        "x-access-level": "Basic"
      }
    },
    "/restapi/v1.0/account/{accountId}/extension/{extensionId}/ring-out": {
      "post": {
        "tags": [
          "RingOut"
        ],
        "summary": "Make RingOut Call",
        "description": "<p>Makes a 2-leg RingOut call.</p>\n<h4>App Permission</h4>\n<p>RingOut</p>\n<h4>Usage Plan Group</h4>\n<p>Heavy</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>400</td>\n<td>CMN-101</td>\n<td>Parameter [phoneNumber] value is invalid</td>\n</tr>\n<tr>\n<td>400</td>\n<td>TEL-107</td>\n<td>Caller ID: [+18609411729] is not allowed</td>\n</tr>\n<tr>\n<td>400</td>\n<td>TEL-108</td>\n<td>phoneNumber specified in the from field is empty or invalid</td>\n</tr>\n<tr>\n<td>400</td>\n<td>TEL-109</td>\n<td>phoneNumber specified in the to field is empty or invalid</td>\n</tr>\n<tr>\n<td>403</td>\n<td>BIL-103</td>\n<td>Feature [RingOut] is not available for current account</td>\n</tr>\n<tr>\n<td>403</td>\n<td>CMN-112</td>\n<td>Feature [RingOut] is not available for current extension type</td>\n</tr>\n<tr>\n<td>403</td>\n<td>CMN-113</td>\n<td>Feature [DomesticCalls] is not available for current extension</td>\n</tr>\n<tr>\n<td>403</td>\n<td>RNG-102</td>\n<td>Caller ID should be one of company direct numbers</td>\n</tr>\n<tr>\n<td>403</td>\n<td>TEL-101</td>\n<td>phoneNumber specified in the to field: [17176704078] is in blocked list</td>\n</tr>\n<tr>\n<td>403</td>\n<td>TEL-102</td>\n<td>phoneNumber specified in the from field: [17176704078] is in blocked list</td>\n</tr>\n<tr>\n<td>403</td>\n<td>TEL-107</td>\n<td>Caller ID: [+12094441763] is not allowed</td>\n</tr>\n<tr>\n<td>404</td>\n<td>CMN-102</td>\n<td>Resource for parameter [forwardingNumberId] is not found</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "operationId": "makeRingOutCallNew",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          },
          {
            "name": "extensionId",
            "in": "path",
            "description": "Internal identifier of an extension or tilde (~) to indicate the extension assigned to the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          },
          {
            "in": "body",
            "name": "body",
            "description": "JSON body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/MakeRingOutRequest"
            }
          }
        ],
        "responses": {
          "default": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/GetRingOutStatusResponse"
            }
          }
        },
        "x-api-group": "extension/ringout",
        "x-throttling-group": "Heavy",
        "x-metered-api": true,
        "x-metering-group": "Time-based",
        "x-app-permission": "RingOut",
        "x-access-level": "Basic"
      }
    },
    "/restapi/v1.0/account/{accountId}/extension/{extensionId}/ring-out/{ringoutId}": {
      "get": {
        "tags": [
          "RingOut"
        ],
        "summary": "Get Status of RingOut Call",
        "description": "<p>Returns the status of a 2-leg RingOut call.</p>\n<h4>App Permission</h4>\n<p>RingOut</p>\n<h4>Usage Plan Group</h4>\n<p>Light</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>503</td>\n<td>CMN-201</td>\n<td>Service Temporary Unavailable</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "operationId": "getRingOutCallStatusNew",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          },
          {
            "name": "extensionId",
            "in": "path",
            "description": "Internal identifier of an extension or tilde (~) to indicate the extension assigned to the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          },
          {
            "name": "ringoutId",
            "in": "path",
            "description": "Internal identifier of a RingOut call",
            "required": true,
            "type": "integer"
          }
        ],
        "responses": {
          "default": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/GetRingOutStatusResponse"
            }
          }
        },
        "x-api-group": "extension/ringout",
        "x-throttling-group": "Light",
        "x-metered-api": true,
        "x-metering-group": "Time-based",
        "x-app-permission": "RingOut",
        "x-access-level": "Basic"
      },
      "delete": {
        "tags": [
          "RingOut"
        ],
        "summary": "Cancel RingOut Call",
        "description": "<p>Cancels a 2-leg RingOut call.</p>\n<h4>App Permission</h4>\n<p>RingOut</p>\n<h4>Usage Plan Group</h4>\n<p>Heavy</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>404</td>\n<td>CMN-102</td>\n<td>Resource for parameter [ringOutId] is not found</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "operationId": "cancelRingOutCallNew",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          },
          {
            "name": "extensionId",
            "in": "path",
            "description": "Internal identifier of an extension or tilde (~) to indicate the extension assigned to the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          },
          {
            "name": "ringoutId",
            "in": "path",
            "description": "Internal identifier of a RingOut call",
            "required": true,
            "type": "integer"
          }
        ],
        "responses": {
          "default": {
            "description": "Success"
          }
        },
        "x-api-group": "extension/ringout",
        "x-throttling-group": "Heavy",
        "x-metered-api": true,
        "x-metering-group": "Time-based",
        "x-app-permission": "RingOut",
        "x-access-level": "Basic"
      }
    },
    "/restapi/v1.0/account/{accountId}/extension/{extensionId}/ringout": {
      "post": {
        "tags": [
          "RingOut"
        ],
        "summary": "Make RingOut Call",
        "deprecated": true,
        "description": "<p>Makes a 2-leg RingOut call.</p>\n<h4>App Permission</h4>\n<p>RingOut</p>\n<h4>Usage Plan Group</h4>\n<p>Heavy</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>400</td>\n<td>CMN-101</td>\n<td>Parameter [phoneNumber] value is invalid</td>\n</tr>\n<tr>\n<td>400</td>\n<td>TEL-107</td>\n<td>Caller ID: [+14152961727] is not allowed</td>\n</tr>\n<tr>\n<td>400</td>\n<td>TEL-108</td>\n<td>phoneNumber specified in the from field is empty or invalid</td>\n</tr>\n<tr>\n<td>400</td>\n<td>TEL-109</td>\n<td>phoneNumber specified in the to field is empty or invalid</td>\n</tr>\n<tr>\n<td>403</td>\n<td>BIL-103</td>\n<td>Feature [RingOut] is not available for current account</td>\n</tr>\n<tr>\n<td>403</td>\n<td>CMN-112</td>\n<td>Feature [RingOut] is not available for current extension type</td>\n</tr>\n<tr>\n<td>403</td>\n<td>CMN-113</td>\n<td>Feature [DomesticCalls] is not available for current extension</td>\n</tr>\n<tr>\n<td>403</td>\n<td>CMN-401</td>\n<td>In order to call this API endpoint, application needs to have [RingOut] permission</td>\n</tr>\n<tr>\n<td>403</td>\n<td>RNG-102</td>\n<td>Caller ID should be one of company direct numbers</td>\n</tr>\n<tr>\n<td>403</td>\n<td>TEL-101</td>\n<td>phoneNumber specified in the to field: [17176704073] is in blocked list</td>\n</tr>\n<tr>\n<td>403</td>\n<td>TEL-102</td>\n<td>phoneNumber specified in the from field: [17172302150] is in blocked list</td>\n</tr>\n<tr>\n<td>403</td>\n<td>TEL-107</td>\n<td>Caller ID: [+12094441789] is not allowed</td>\n</tr>\n<tr>\n<td>404</td>\n<td>CMN-102</td>\n<td>Resource for parameter [extensionId] is not found</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "operationId": "makeRingOutCall",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          },
          {
            "name": "extensionId",
            "in": "path",
            "description": "Internal identifier of an extension or tilde (~) to indicate the extension assigned to the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          },
          {
            "in": "body",
            "name": "body",
            "description": "JSON body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/MakeRingOutRequest"
            }
          }
        ],
        "responses": {
          "default": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/GetRingOutStatusResponseIntId"
            }
          }
        },
        "x-api-group": "extension/ringout",
        "x-throttling-group": "Heavy",
        "x-metered-api": true,
        "x-metering-group": "Time-based",
        "x-app-permission": "RingOut",
        "x-access-level": "Basic"
      }
    },
    "/restapi/v1.0/account/{accountId}/extension/{extensionId}/ringout/{ringoutId}": {
      "get": {
        "tags": [
          "RingOut"
        ],
        "deprecated": true,
        "summary": "Get Status of RingOut Call",
        "description": "<p>Returns status of a 2-leg RingOut call.</p>\n<h4>App Permission</h4>\n<p>RingOut</p>\n<h4>Usage Plan Group</h4>\n<p>Light</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>401</td>\n<td>CMN-405</td>\n<td>Login to extension required</td>\n</tr>\n<tr>\n<td>401</td>\n<td>OAU-151</td>\n<td>Authorization method not supported</td>\n</tr>\n<tr>\n<td>403</td>\n<td>CMN-401</td>\n<td>In order to call this API endpoint, application needs to have [RingOut] permission</td>\n</tr>\n<tr>\n<td>404</td>\n<td>CMN-102</td>\n<td>Resource for parameter [extensionId] is not found</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "operationId": "getRingOutCallStatus",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          },
          {
            "name": "extensionId",
            "in": "path",
            "description": "Internal identifier of an extension or tilde (~) to indicate the extension assigned to the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          },
          {
            "name": "ringoutId",
            "in": "path",
            "description": "Internal identifier of a RingOut call",
            "required": true,
            "type": "integer"
          }
        ],
        "responses": {
          "default": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/GetRingOutStatusResponse"
            }
          }
        },
        "x-api-group": "extension/ringout",
        "x-throttling-group": "Light",
        "x-metered-api": true,
        "x-metering-group": "Time-based",
        "x-app-permission": "RingOut",
        "x-access-level": "Basic"
      },
      "delete": {
        "tags": [
          "RingOut"
        ],
        "deprecated": true,
        "summary": "Cancel RingOut Call",
        "description": "<p>Cancels a 2-leg RingOut call.</p>\n<h4>App Permission</h4>\n<p>RingOut</p>\n<h4>Usage Plan Group</h4>\n<p>Heavy</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>404</td>\n<td>CMN-102</td>\n<td>Resource for parameter [extensionId] is not found</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "operationId": "cancelRingOutCall",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          },
          {
            "name": "extensionId",
            "in": "path",
            "description": "Internal identifier of an extension or tilde (~) to indicate the extension assigned to the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          },
          {
            "name": "ringoutId",
            "in": "path",
            "description": "Internal identifier of a RingOut call",
            "required": true,
            "type": "integer"
          }
        ],
        "responses": {
          "default": {
            "description": "Success"
          }
        },
        "x-api-group": "extension/ringout",
        "x-throttling-group": "Heavy",
        "x-metered-api": true,
        "x-metering-group": "Time-based",
        "x-app-permission": "RingOut",
        "x-access-level": "Basic"
      }
    },
    "/restapi/v1.0/account/{accountId}/extension/{extensionId}/address-book/contact": {
      "get": {
        "tags": [
          "User Contacts"
        ],
        "summary": "Get Contacts",
        "description": "<p>Returns user personal contacts.</p>\n<h4>App Permission</h4>\n<p>ReadContacts</p>\n<h4>User Permission</h4>\n<p>ReadPersonalContacts</p>\n<h4>Usage Plan Group</h4>\n<p>Heavy</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>400</td>\n<td>CMN-101</td>\n<td>Parameter [perPage] value is invalid</td>\n</tr>\n<tr>\n<td>401</td>\n<td>CMN-405</td>\n<td>Login to extension required</td>\n</tr>\n<tr>\n<td>401</td>\n<td>OAU-151</td>\n<td>Authorization method not supported</td>\n</tr>\n<tr>\n<td>403</td>\n<td>CMN-401</td>\n<td>In order to call this API endpoint, application needs to have [ReadContacts] permission</td>\n</tr>\n<tr>\n<td>404</td>\n<td>CMN-102</td>\n<td>Resource for parameter [accountId] is not found</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "operationId": "listContacts",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          },
          {
            "name": "extensionId",
            "in": "path",
            "description": "Internal identifier of an extension or tilde (~) to indicate the extension assigned to the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          },
          {
            "name": "startsWith",
            "in": "query",
            "description": "If specified, only contacts whose First name or Last name start with the mentioned substring are returned. Case-insensitive",
            "required": false,
            "type": "string"
          },
          {
            "name": "sortBy",
            "in": "query",
            "description": "Sorts results by the specified property",
            "default": "FirstName",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi",
            "enum": [
              "FirstName",
              "LastName",
              "Company"
            ]
          },
          {
            "name": "page",
            "in": "query",
            "description": "Indicates the page number to retrieve. Only positive number values are accepted",
            "default": "1",
            "required": false,
            "type": "integer"
          },
          {
            "name": "perPage",
            "in": "query",
            "description": "Indicates the page size (number of items)",
            "default": "100",
            "required": false,
            "type": "integer"
          },
          {
            "name": "phoneNumber",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          }
        ],
        "responses": {
          "default": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/ContactList"
            }
          }
        },
        "x-api-group": "extension/address-book/contact",
        "x-throttling-group": "Heavy",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-app-permission": "ReadContacts",
        "x-user-permission": "ReadPersonalContacts",
        "x-access-level": "Basic"
      },
      "post": {
        "tags": [
          "User Contacts"
        ],
        "summary": "Create Contact",
        "description": "<p>Creates personal user contact.</p>\n<h4>App Permission</h4>\n<p>Contacts</p>\n<h4>User Permission</h4>\n<p>EditPersonalContacts</p>\n<h4>Usage Plan Group</h4>\n<p>Heavy</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>400</td>\n<td>CMN-101</td>\n<td>Parameter [notes] value is invalid</td>\n</tr>\n<tr>\n<td>400</td>\n<td>PAB-102</td>\n<td>Parameter [assistantPhone] is invalid. Failed to parse phone number.</td>\n</tr>\n<tr>\n<td>400</td>\n<td>PAB-103</td>\n<td>Parameter [assistantPhone] is invalid. The phone number is too long.</td>\n</tr>\n<tr>\n<td>400</td>\n<td>PAB-104</td>\n<td>Parameter [assistantPhone] is invalid. The phone numbers starting with the asterisk are not supported.</td>\n</tr>\n<tr>\n<td>400</td>\n<td>PAB-105</td>\n<td>Parameter [assistantPhone] is invalid. The extensions longer than 10 digits are not supported.</td>\n</tr>\n<tr>\n<td>400</td>\n<td>PAB-106</td>\n<td>Parameter [assistantPhone] is invalid. The DTMF sequences longer than 64 digits are not supported.</td>\n</tr>\n<tr>\n<td>403</td>\n<td>CMN-401</td>\n<td>In order to call this API endpoint, application needs to have [Contacts] permission</td>\n</tr>\n<tr>\n<td>403</td>\n<td>CMN-408</td>\n<td>In order to call this API endpoint, user needs to have [EditPersonalContacts] permission for requested resource.</td>\n</tr>\n<tr>\n<td>404</td>\n<td>CMN-102</td>\n<td>Resource for parameter [accountId] is not found</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "operationId": "createContact",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          },
          {
            "name": "dialingPlan",
            "in": "query",
            "description": "A country code value complying with the [ISO 3166-1 alpha-2](https://ru.wikipedia.org/wiki/ISO_3166-1_alpha-2) format. The default value is home country of the current extension",
            "required": false,
            "type": "string"
          },
          {
            "name": "extensionId",
            "in": "path",
            "description": "Internal identifier of an extension or tilde (~) to indicate the extension assigned to the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          },
          {
            "in": "body",
            "name": "body",
            "required": false,
            "schema": {
              "$ref": "#/definitions/PersonalContactResource"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/PersonalContactResource"
            }
          },
          "400": {
            "description": "Contact cannot be created: max contacts count reached ($limit)"
          }
        },
        "x-api-group": "extension/address-book/contact",
        "x-throttling-group": "Heavy",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-app-permission": "Contacts",
        "x-user-permission": "EditPersonalContacts",
        "x-access-level": "Basic"
      }
    },
    "/restapi/v1.0/account/{accountId}/extension/{extensionId}/address-book/contact/{contactId}": {
      "get": {
        "tags": [
          "User Contacts"
        ],
        "summary": "Get Contact(s) by ID",
        "description": "<p>Returns contact(s) by ID(s). Batch request is supported.</p>\n<h4>App Permission</h4>\n<p>ReadContacts</p>\n<h4>User Permission</h4>\n<p>ReadPersonalContacts</p>\n<h4>Usage Plan Group</h4>\n<p>Heavy</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>403</td>\n<td>CMN-401</td>\n<td>In order to call this API endpoint, application needs to have [ReadContacts] permission</td>\n</tr>\n<tr>\n<td>404</td>\n<td>CMN-102</td>\n<td>Resource for parameter [extensionId] is not found</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "operationId": "loadContact",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          },
          {
            "name": "extensionId",
            "in": "path",
            "description": "Internal identifier of an extension or tilde (~) to indicate the extension assigned to the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          },
          {
            "name": "contactId",
            "in": "path",
            "description": "Internal identifier of a contact record in the RingCentral database",
            "required": true,
            "type": "integer"
          }
        ],
        "responses": {
          "default": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/PersonalContactResource"
            }
          }
        },
        "x-api-group": "extension/address-book/contact",
        "x-throttling-group": "Heavy",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-app-permission": "ReadContacts",
        "x-user-permission": "ReadPersonalContacts",
        "x-access-level": "Basic"
      },
      "put": {
        "tags": [
          "User Contacts"
        ],
        "summary": "Update Contact(s) by ID",
        "description": "<p>Updates personal contact information by contact ID(s). Batch request is supported</p>\n<h4>App Permission</h4>\n<p>Contacts</p>\n<h4>User Permission</h4>\n<p>EditPersonalContacts</p>\n<h4>Usage Plan Group</h4>\n<p>Heavy</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>400</td>\n<td>CMN-101</td>\n<td>Parameter [notes] value is invalid</td>\n</tr>\n<tr>\n<td>403</td>\n<td>CMN-401</td>\n<td>In order to call this API endpoint, application needs to have [Contacts] permission</td>\n</tr>\n<tr>\n<td>403</td>\n<td>CMN-408</td>\n<td>In order to call this API endpoint, user needs to have [EditPersonalContacts] permission for requested resource.</td>\n</tr>\n<tr>\n<td>404</td>\n<td>CMN-102</td>\n<td>Resource for parameter [extensionId] is not found</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "operationId": "updateContact",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          },
          {
            "name": "extensionId",
            "in": "path",
            "description": "Internal identifier of an extension or tilde (~) to indicate the extension assigned to the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          },
          {
            "name": "contactId",
            "in": "path",
            "description": "Internal identifier of a contact record in the RingCentral database",
            "required": true,
            "type": "integer"
          },
          {
            "name": "dialingPlan",
            "in": "query",
            "description": "A country code value complying with the [ISO 3166-1 alpha-2](https://ru.wikipedia.org/wiki/ISO_3166-1_alpha-2) format. The default value is home country of the current extension",
            "required": false,
            "type": "string"
          },
          {
            "in": "body",
            "name": "body",
            "required": false,
            "schema": {
              "$ref": "#/definitions/PersonalContactResource"
            }
          }
        ],
        "responses": {
          "default": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/PersonalContactResource"
            }
          }
        },
        "x-api-group": "extension/address-book/contact",
        "x-throttling-group": "Heavy",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-app-permission": "Contacts",
        "x-user-permission": "EditPersonalContacts",
        "x-access-level": "Basic"
      },
      "delete": {
        "tags": [
          "User Contacts"
        ],
        "summary": "Delete Contact(s) by ID",
        "description": "<p>Deletes contact(s) by ID(s). Batch request is supported.</p>\n<h4>App Permission</h4>\n<p>Contacts</p>\n<h4>User Permission</h4>\n<p>EditPersonalContacts</p>\n<h4>Usage Plan Group</h4>\n<p>Heavy</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>403</td>\n<td>CMN-401</td>\n<td>In order to call this API endpoint, application needs to have [Contacts] permission</td>\n</tr>\n<tr>\n<td>403</td>\n<td>CMN-408</td>\n<td>In order to call this API endpoint, user needs to have [EditPersonalContacts] permission for requested resource.</td>\n</tr>\n<tr>\n<td>404</td>\n<td>CMN-102</td>\n<td>Resource for parameter [extensionId] is not found</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "operationId": "deleteContact",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          },
          {
            "name": "extensionId",
            "in": "path",
            "description": "Internal identifier of an extension or tilde (~) to indicate the extension assigned to the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          },
          {
            "name": "contactId",
            "in": "path",
            "description": "Internal identifier of a contact record in the RingCentral database",
            "required": true,
            "type": "integer"
          }
        ],
        "responses": {
          "default": {
            "description": "Success"
          }
        },
        "x-api-group": "extension/address-book/contact",
        "x-throttling-group": "Heavy",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-app-permission": "Contacts",
        "x-user-permission": "EditPersonalContacts",
        "x-access-level": "Basic"
      }
    },
    "/restapi/v1.0/account/{accountId}/extension/{extensionId}/favorite": {
      "get": {
        "tags": [
          "User Contacts"
        ],
        "summary": "Get Favorite Contacts",
        "description": "<p>Returns favorite contacts of the current extension. Favorite contacts include both company contacts (extensions) and personal contacts (address book records).</p>\n<h4>App Permission</h4>\n<p>ReadContacts</p>\n<h4>User Permission</h4>\n<p>ReadPersonalContacts</p>\n<h4>Usage Plan Group</h4>\n<p>Light</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>403</td>\n<td>CMN-401</td>\n<td>In order to call this API endpoint, application needs to have [ReadContacts] permission</td>\n</tr>\n<tr>\n<td>403</td>\n<td>CMN-408</td>\n<td>In order to call this API endpoint, user needs to have [ReadPersonalContacts] permission for requested resource.</td>\n</tr>\n<tr>\n<td>404</td>\n<td>CMN-102</td>\n<td>Resource for parameter [accountId] is not found</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "operationId": "listFavoriteContacts",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          },
          {
            "name": "extensionId",
            "in": "path",
            "description": "Internal identifier of an extension or tilde (~) to indicate the extension assigned to the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          }
        ],
        "responses": {
          "default": {
            "description": "successful operation"
          }
        },
        "x-api-group": "extension/favorite",
        "x-throttling-group": "Light",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-user-permission": "ReadPersonalContacts",
        "x-app-permission": "ReadContacts",
        "x-access-level": "Basic",
        "x-notifications": [
          {
            "$ref": "#/definitions/ExtensionFavoritesEvent"
          }
        ]
      },
      "put": {
        "tags": [
          "User Contacts"
        ],
        "summary": "Update Favorite Contacts",
        "description": "<p>Updates favorite contacts of the current extension. Favorite contacts include both company contacts (extensions) and personal contacts (address book records).**Please note**: currently personal address book size is limited to 10 000 contacts.</p>\n<h4>App Permission</h4>\n<p>Contacts</p>\n<h4>User Permission</h4>\n<p>EditPersonalContacts</p>\n<h4>Usage Plan Group</h4>\n<p>Medium</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>400</td>\n<td>CMN-101</td>\n<td>Parameter [records.extensionId] value is invalid</td>\n</tr>\n<tr>\n<td>400</td>\n<td>FAV-100</td>\n<td>Contact not found</td>\n</tr>\n<tr>\n<td>400</td>\n<td>FAV-101</td>\n<td>More than one contact with the same [records.extensionId]</td>\n</tr>\n<tr>\n<td>400</td>\n<td>FAV-102</td>\n<td>[records.extensionId] and [records.contactId] could not be specified for one contact simultaneously</td>\n</tr>\n<tr>\n<td>400</td>\n<td>FAV-103</td>\n<td>More than one contact with the same [records.id]</td>\n</tr>\n<tr>\n<td>400</td>\n<td>FAV-104</td>\n<td>Contact limit exceeded</td>\n</tr>\n<tr>\n<td>400</td>\n<td>FAV-105</td>\n<td>Contact not found in federated directory</td>\n</tr>\n<tr>\n<td>403</td>\n<td>CMN-401</td>\n<td>In order to call this API endpoint, application needs to have [Contacts] permission</td>\n</tr>\n<tr>\n<td>404</td>\n<td>CMN-102</td>\n<td>Resource for parameter [accountId] is not found</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "operationId": "updateFavoriteContacts",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          },
          {
            "name": "extensionId",
            "in": "path",
            "description": "Internal identifier of an extension or tilde (~) to indicate the extension assigned to the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          },
          {
            "in": "body",
            "name": "body",
            "required": false,
            "schema": {
              "$ref": "#/definitions/FavoriteCollection"
            }
          }
        ],
        "responses": {
          "default": {
            "description": "successful operation"
          }
        },
        "x-api-group": "extension/favorite",
        "x-throttling-group": "Medium",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-app-permission": "Contacts",
        "x-user-permission": "EditPersonalContacts",
        "x-access-level": "Basic"
      }
    },
    "/restapi/v1.0/account/{accountId}/directory/contacts": {
      "get": {
        "tags": [
          "Company Contacts"
        ],
        "summary": "Get Corporate Directory Contacts",
        "operationId": "listDirectoryContacts",
        "description": "<p>Returns contact information on corporate users of federated accounts. Please note: 1. User, DigitalUser, VirtualUser and FaxUser types are returned as User type. 2.ApplicationExtension type is not returned. 3. Only extensions in Enabled, Disabled and NotActivated state are returned.</p>\n<h4>App Permission</h4>\n<p>ReadAccounts</p>\n<h4>Usage Plan Group</h4>\n<p>Medium</p>",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "accountId",
            "required": true,
            "type": "string"
          },
          {
            "name": "excludeFederatedContacts",
            "in": "query",
            "description": "excludeFederatedContacts",
            "required": false,
            "type": "string",
            "default": "false"
          },
          {
            "name": "type",
            "in": "query",
            "description": "Type of an extension",
            "required": false,
            "type": "string",
            "enum": [
              "User",
              "Department",
              "Announcement",
              "Voicemail",
              "SharedLinesGroup",
              "PagingOnly",
              "IvrMenu",
              "ParkLocation",
              "Limited"
            ]
          },
          {
            "name": "page",
            "in": "query",
            "description": "page",
            "required": false,
            "type": "string",
            "default": "1"
          },
          {
            "name": "perPage",
            "in": "query",
            "description": "perPage",
            "required": false,
            "type": "string",
            "default": "all"
          },
          {
            "name": "siteId",
            "in": "query",
            "description": "Internal identifier of the business site to which extensions belongs",
            "required": false,
            "type": "string"
          },
          {
            "name": "If-None-Match",
            "in": "header",
            "description": "If-None-Match",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Paged collection of all contact information for given account. Records can be empty if no data found",
            "schema": {
              "$ref": "#/definitions/DirectoryResource"
            }
          },
          "400": {
            "description": "Current request cannot be processed due to error in its body and/or url",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "Some unexpected error during current request processing.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "503": {
            "description": "Network error during request. One should check connection between ADG processing node and ADX data node",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "x-api-group": "account/directory/contacts",
        "x-app-permission": "ReadAccounts",
        "x-auth-required": "true",
        "x-internal-api": false,
        "x-rewrite-uri-from": "/restapi/v1.0/account/(.*)/directory/(.*)",
        "x-rewrite-uri-to": "/account-directory/v1/account/$1/directory/$2",
        "x-service-interface": "rest",
        "x-service-name": "adg",
        "x-service-version": "v1",
        "x-throttling-group": "Medium",
        "x-access-level": "Basic",
        "x-notifications": [
          {
            "$ref": "#/definitions/ContactDirectoryEvent"
          }
        ]
      }
    },
    "/restapi/v1.0/account/{accountId}/directory/contacts/{contactId}": {
      "get": {
        "tags": [
          "Company Contacts"
        ],
        "summary": "Get Corporate Directory Contact",
        "description": "<p>Returns contact information on a particular corporate user of a federated account.</p>\n<h4>App Permission</h4>\n<p>ReadAccounts</p>\n<h4>Usage Plan Group</h4>\n<p>Medium</p>",
        "operationId": "loadDirectoryContact",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "contactId",
            "in": "path",
            "description": "Internal identifier of extension to read information for",
            "required": true,
            "type": "string"
          },
          {
            "name": "accountId",
            "in": "path",
            "description": "Internal identifier of owning account",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Contact information for given parameters. If value is not found then empty body will be returned",
            "schema": {
              "$ref": "#/definitions/ContactResource"
            }
          },
          "400": {
            "description": "Current request cannot be processed due to error in its body and/or url",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "Some unexpected error during current request processing.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "503": {
            "description": "Network error during request. One should check connection between ADG processing node and ADX data node",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "x-api-group": "account/directory/contacts",
        "x-app-permission": "ReadAccounts",
        "x-auth-required": "true",
        "x-internal-api": false,
        "x-rewrite-uri-from": "/restapi/v1.0/account/(.*)/directory/(.*)",
        "x-rewrite-uri-to": "/account-directory/v1/account/$1/directory/$2",
        "x-service-interface": "rest",
        "x-service-name": "adg",
        "x-service-version": "v1",
        "x-throttling-group": "Medium",
        "x-access-level": "Basic"
      }
    },
    "/restapi/v1.0/account/{accountId}/extension/{extensionId}/presence": {
      "get": {
        "tags": [
          "Presence"
        ],
        "summary": "Get User Status",
        "description": "<p>Returns presence status of an extension or several extensions by their ID(s). Batch request is supported. The &#39;presenceStatus&#39; is returned as Offline (the parameters &#39;telephonyStatus&#39;, &#39;message&#39;, &#39;userStatus&#39; and &#39;dndStatus&#39; are not returned at all) for the following extension types: Department/Announcement Only/Take Messages Only (Voicemail)/Fax User/Paging Only Group/Shared Lines Group/IVR Menu/Application Extension/Park Location.If the user requests his/her own presence status, the response contains actual presence status even if the status publication is turned off. Batch request is supported. For batch requests the number of extensions in one request is limited to 30. If more extensions are included in the request, the error code 400 Bad Request is returned with the logical error code InvalidMultipartRequest and the corresponding message &#39;Extension Presence Info multipart request is limited to 30 extensions&#39;.</p>\n<h4>App Permission</h4>\n<p>ReadPresence</p>\n<h4>User Permission</h4>\n<p>ReadPresenceStatus</p>\n<h4>Usage Plan Group</h4>\n<p>Light</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>403</td>\n<td>CMN-408</td>\n<td>In order to call this API endpoint, user needs to have [ReadPresenceStatus] permission for requested resource.</td>\n</tr>\n<tr>\n<td>404</td>\n<td>CMN-102</td>\n<td>Resource for parameter [extensionId] is not found</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "operationId": "getPresenceStatus",
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          },
          {
            "name": "extensionId",
            "in": "path",
            "description": "Internal identifier of an extension or tilde (~) to indicate the extension assigned to the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          },
          {
            "name": "detailedTelephonyState",
            "in": "query",
            "description": "Whether to return detailed telephony state",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "sipData",
            "in": "query",
            "description": "Whether to return SIP data",
            "required": false,
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/GetPresenceInfo"
            }
          }
        },
        "x-api-group": "extension/presence",
        "x-throttling-group": "Light",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-app-permission": "ReadPresence",
        "x-user-permission": "ReadPresenceStatus",
        "x-access-level": "Basic",
        "x-notifications": [
          {
            "$ref": "#/definitions/ExtensionPresenceEvent"
          },
          {
            "$ref": "#/definitions/DetailedExtensionPresenceEvent"
          },
          {
            "$ref": "#/definitions/DetailedExtensionPresenceWithSIPEvent"
          }
        ]
      },
      "put": {
        "tags": [
          "Presence"
        ],
        "summary": "Update User Status",
        "operationId": "updatePresenceStatus",
        "description": "<p>Updates user-defined extension presence status, status message and DnD status by extension ID. Supported for regular User extensions only. The extension types listed do not support presence status: Department, Announcement Only, Take Messages Only (Voicemail), Fax User, Paging Only Group, Shared Lines Group, IVR Menu, Application Extension.</p>\n<h4>App Permission</h4>\n<p>EditPresence</p>\n<h4>Usage Plan Group</h4>\n<p>Medium</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>400</td>\n<td>CMN-101</td>\n<td>Parameter [allowSeeMyPresence] value is invalid</td>\n</tr>\n<tr>\n<td>403</td>\n<td>BIL-103</td>\n<td>Feature [DND] is not available for current account</td>\n</tr>\n<tr>\n<td>403</td>\n<td>CMN-408</td>\n<td>In order to call this API endpoint, user needs to have [EditPresenceSettings] permission for requested resource.</td>\n</tr>\n<tr>\n<td>403</td>\n<td>PRS-105</td>\n<td>Not allowed update presence for extensions having Disabled state</td>\n</tr>\n<tr>\n<td>403</td>\n<td>PRS-106</td>\n<td>Not allowed update presence for extensions of Department type</td>\n</tr>\n<tr>\n<td>404</td>\n<td>CMN-102</td>\n<td>Resource for parameter [accountId] is not found</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "required": false,
            "schema": {
              "$ref": "#/definitions/PresenceInfoResource"
            }
          },
          {
            "name": "extensionId",
            "in": "path",
            "description": "Internal identifier of an extension or tilde (~) to indicate the extension assigned to the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          },
          {
            "name": "accountId",
            "in": "path",
            "description": "Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/PresenceInfoResource"
            }
          }
        },
        "x-api-group": "extension/presence",
        "x-throttling-group": "Medium",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-app-permission": "EditPresence",
        "x-access-level": "Basic",
        "x-notifications": [
          {
            "$ref": "#/definitions/IncomingCallEvent"
          },
          {
            "$ref": "#/definitions/MissedCallEvent"
          }
        ]
      }
    },
    "/restapi/v1.0/glip/groups": {
      "get": {
        "tags": [
          "Glip [Beta]"
        ],
        "summary": "Get User Groups",
        "operationId": "listGlipGroups",
        "description": "<p>Returns the list of groups associated with the user.</p>\n<h4>App Permission</h4>\n<p>Glip</p>\n<h4>User Permission</h4>\n<p>Glip</p>\n<h4>Usage Plan Group</h4>\n<p>Medium</p>",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "type",
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi",
            "allowEmptyValue": true,
            "enum": [
              "PrivateChat",
              "Group",
              "Team"
            ],
            "in": "query",
            "description": "Type of a group. 'PrivateChat' is a group of 2 members. 'Group' is a chat of 2 and more participants, the membership cannot be changed after group creation. 'Team' is a chat of 1 and more participants, the membership can be modified in future",
            "required": false
          },
          {
            "name": "pageToken",
            "type": "string",
            "in": "query",
            "description": "Token of a page to be returned",
            "required": false
          },
          {
            "name": "recordCount",
            "type": "integer",
            "format": "int64",
            "in": "query",
            "description": "Max numbers of records to be returned",
            "default": "250",
            "maximum": 250,
            "required": false
          }
        ],
        "responses": {
          "default": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/GlipGroupList"
            }
          }
        },
        "x-api-group": "Glip",
        "x-throttling-group": "Medium",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-app-permission": "Glip",
        "x-user-permission": "Glip",
        "x-access-level": "Basic",
        "x-notifications": [
          {
            "$ref": "#/definitions/GlipGroupsEvent"
          }
        ]
      },
      "post": {
        "tags": [
          "Glip [Beta]"
        ],
        "summary": "Create Group",
        "operationId": "createGlipGroup",
        "description": "<p>Creates a group.</p>\n<h4>App Permission</h4>\n<p>Glip</p>\n<h4>User Permission</h4>\n<p>Glip</p>\n<h4>Usage Plan Group</h4>\n<p>Medium</p>",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "description": "JSON body",
            "schema": {
              "$ref": "#/definitions/GlipCreateGroup"
            },
            "required": true
          }
        ],
        "responses": {
          "default": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/GlipGroupInfo"
            }
          }
        },
        "x-api-group": "Glip",
        "x-throttling-group": "Medium",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-app-permission": "Glip",
        "x-user-permission": "Glip",
        "x-access-level": "Basic"
      }
    },
    "/restapi/v1.0/glip/groups/{groupId}": {
      "get": {
        "tags": [
          "Glip [Beta]"
        ],
        "summary": "Get Group",
        "operationId": "loadGlipGroup",
        "description": "<p>Returns a group or multiple groups by their ID(s). Batch request is supported.</p>\n<h4>App Permission</h4>\n<p>Glip</p>\n<h4>User Permission</h4>\n<p>Glip</p>\n<h4>Usage Plan Group</h4>\n<p>Light</p>",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "groupId",
            "type": "string",
            "in": "path",
            "description": "Internal identifier of a group to be returned, the maximum number of IDs is 30",
            "required": true
          }
        ],
        "responses": {
          "default": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/GlipGroupInfo"
            }
          }
        },
        "x-api-group": "Glip",
        "x-throttling-group": "Light",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-app-permission": "Glip",
        "x-user-permission": "Glip",
        "x-access-level": "Basic"
      }
    },
    "/restapi/v1.0/glip/groups/{groupId}/bulk-assign": {
      "post": {
        "tags": [
          "Glip [Beta]"
        ],
        "summary": "Edit Group Members",
        "operationId": "assignGlipGroupMembers",
        "description": "<p>Updates group members. Please note: Only groups of &#39;Team&#39; type can be updated. Currently only one operation at a time (either adding or removal) is supported.</p>\n<h4>App Permission</h4>\n<p>Glip</p>\n<h4>User Permission</h4>\n<p>Glip</p>\n<h4>Usage Plan Group</h4>\n<p>Medium</p>",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "groupId",
            "type": "string",
            "in": "path",
            "description": "Internal identifier of a group",
            "required": true
          },
          {
            "name": "body",
            "in": "body",
            "description": "JSON body",
            "schema": {
              "$ref": "#/definitions/EditGroupRequest"
            },
            "required": true
          }
        ],
        "responses": {
          "default": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/GlipGroupInfo"
            }
          }
        },
        "x-api-group": "Glip",
        "x-throttling-group": "Medium",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-app-permission": "Glip",
        "x-user-permission": "Glip",
        "x-access-level": "Basic"
      }
    },
    "/restapi/v1.0/glip/groups/{groupId}/posts": {
      "get": {
        "tags": [
          "Glip [Beta]"
        ],
        "operationId": "listGlipGroupPosts",
        "summary": "Get Group Posts",
        "description": "<p>Returns posts which are available for the current user (by group ID). The maximum number of posts returned is 250.</p>\n<h4>Usage Plan Group</h4>\n<p>Medium</p>",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "groupId",
            "in": "path",
            "description": "Internal identifier of a group",
            "required": true,
            "type": "string"
          },
          {
            "name": "recordCount",
            "in": "query",
            "description": "Max number of records to be returned",
            "required": false,
            "type": "integer",
            "default": "30",
            "maximum": 250
          },
          {
            "name": "pageToken",
            "in": "query",
            "description": "Pagination token",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/GlipPosts"
            }
          },
          "404": {
            "description": "Group with specified Id is not found."
          }
        },
        "x-api-group": "glip/posts",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-rewrite-uri-from": "/restapi/v1.0/glip/groups/([0-9]+)/posts",
        "x-rewrite-uri-to": "/glip/v1/groups/$1/posts",
        "x-access-level": "Basic",
        "x-throttling-group": "Medium"
      },
      "post": {
        "tags": [
          "Glip [Beta]"
        ],
        "summary": "Create Post in Group",
        "operationId": "createGlipGroupPost",
        "description": "<p>Creates a new post in a group specified.</p>\n<h4>Usage Plan Group</h4>\n<p>Medium</p>",
        "produces": [
          "application/json"
        ],
        "consumes": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "groupId",
            "in": "path",
            "description": "Internal identifier of a group.",
            "required": true,
            "type": "string"
          },
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/GlipCreatePost"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/GlipPostInfo"
            }
          },
          "400": {
            "description": "Some of parameters are missing or have invalid format."
          },
          "404": {
            "description": "Group not found."
          }
        },
        "x-api-group": "glip/posts",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-rewrite-uri-from": "/restapi/v1.0/glip/groups/([0-9]+)/posts",
        "x-rewrite-uri-to": "/glip/v1/groups/$1/posts",
        "x-access-level": "Basic",
        "x-throttling-group": "Medium"
      }
    },
    "/restapi/v1.0/glip/groups/{groupId}/posts/{postId}/text": {
      "put": {
        "tags": [
          "Glip [Beta]"
        ],
        "summary": "Update Post",
        "operationId": "updateGlipPostText",
        "description": "<p>Modifies text of a post</p>\n<h4>Usage Plan Group</h4>\n<p>Medium</p>",
        "produces": [
          "text/plain",
          "application/json"
        ],
        "consumes": [
          "text/*"
        ],
        "parameters": [
          {
            "name": "groupId",
            "in": "path",
            "description": "Internal identifier of a group",
            "required": true,
            "type": "string"
          },
          {
            "name": "postId",
            "in": "path",
            "description": "Internal identifier of a post",
            "required": true,
            "type": "string"
          },
          {
            "name": "text",
            "in": "body",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "examples": {
              "text/plain": "Updated text"
            }
          },
          "400": {
            "description": "Some of parameters are missing or have invalid format."
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "x-api-group": "glip/posts",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-rewrite-uri-from": "/restapi/v1.0/glip/groups/([0-9]+)/posts/([0-9]+)/text",
        "x-rewrite-uri-to": "/glip/v1/groups/$1/posts/$2/text",
        "x-access-level": "Basic",
        "x-throttling-group": "Medium"
      }
    },
    "/restapi/v1.0/glip/posts": {
      "get": {
        "tags": [
          "Glip [Beta]"
        ],
        "summary": "Get Posts",
        "operationId": "listGlipPosts",
        "deprecated": true,
        "description": "<p>Returns list of posts.</p>\n<h4>App Permission</h4>\n<p>Glip</p>\n<h4>User Permission</h4>\n<p>Glip</p>\n<h4>Usage Plan Group</h4>\n<p>Light</p>",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "groupId",
            "type": "string",
            "in": "query",
            "description": "Identifier of a group to filter posts",
            "required": false
          },
          {
            "name": "pageToken",
            "type": "string",
            "in": "query",
            "description": "Token of a page to be returned",
            "required": false
          },
          {
            "name": "recordCount",
            "type": "integer",
            "format": "int64",
            "in": "query",
            "description": "Max number of records to be returned",
            "default": "250",
            "maximum": 250,
            "required": false
          }
        ],
        "responses": {
          "default": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/GlipPosts"
            }
          }
        },
        "x-api-group": "Glip",
        "x-throttling-group": "Light",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-app-permission": "Glip",
        "x-user-permission": "Glip",
        "x-access-level": "Basic"
      },
      "post": {
        "tags": [
          "Glip [Beta]"
        ],
        "summary": "Create Post",
        "operationId": "createPost",
        "deprecated": true,
        "description": "<p>Creates a post.</p>\n<h4>App Permission</h4>\n<p>Glip</p>\n<h4>User Permission</h4>\n<p>Glip</p>\n<h4>Usage Plan Group</h4>\n<p>Light</p>",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "description": "JSON body",
            "schema": {
              "$ref": "#/definitions/GlipCreatePost"
            },
            "required": true
          }
        ],
        "responses": {
          "default": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/GlipPostInfo"
            }
          }
        },
        "x-api-group": "Glip",
        "x-throttling-group": "Light",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-app-permission": "Glip",
        "x-user-permission": "Glip",
        "x-access-level": "Basic"
      }
    },
    "/restapi/v1.0/glip/files": {
      "post": {
        "tags": [
          "Glip [Beta]"
        ],
        "summary": "Upload File",
        "operationId": "createGlipFile",
        "description": "<p>Posts a file.</p>\n<h4>App Permission</h4>\n<p>Glip</p>\n<h4>User Permission</h4>\n<p>Glip</p>\n<h4>Usage Plan Group</h4>\n<p>Heavy</p>",
        "consumes": [
          "multipart/form-data"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "groupId",
            "type": "string",
            "in": "query",
            "description": "Internal identifier of a group to which the post with attachement will be added to",
            "required": false
          },
          {
            "name": "body",
            "in": "formData",
            "type": "file",
            "required": true,
            "description": "The file to upload"
          },
          {
            "name": "name",
            "type": "string",
            "in": "formData",
            "description": "Name of a file attached",
            "required": false
          }
        ],
        "responses": {
          "default": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/PostGlipFile"
            }
          }
        },
        "x-api-group": "Glip",
        "x-throttling-group": "Heavy",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-app-permission": "Glip",
        "x-user-permission": "Glip",
        "x-access-level": "Basic"
      }
    },
    "/restapi/v1.0/glip/persons/{personId}": {
      "get": {
        "tags": [
          "Glip [Beta]"
        ],
        "summary": "Get Person",
        "operationId": "loadGlipPerson",
        "description": "<p>Returns a user or multiple users by their ID(s). Batch request is supported.</p>\n<h4>App Permission</h4>\n<p>Glip</p>\n<h4>User Permission</h4>\n<p>Glip</p>\n<h4>Usage Plan Group</h4>\n<p>Light</p>",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "personId",
            "type": "string",
            "in": "path",
            "description": "Internal identifier of a user to be returned, the maximum number of IDs is 30",
            "required": true
          }
        ],
        "responses": {
          "default": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/GlipPersonInfo"
            }
          }
        },
        "x-api-group": "Glip",
        "x-throttling-group": "Light",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-app-permission": "Glip",
        "x-user-permission": "Glip",
        "x-access-level": "Basic"
      }
    },
    "/restapi/v1.0/glip/companies/{companyId}": {
      "get": {
        "tags": [
          "Glip [Beta]"
        ],
        "summary": "Get Company Info",
        "operationId": "loadGlipCompany",
        "description": "<p>Returns a company by ID.</p>\n<h4>App Permission</h4>\n<p>Glip</p>\n<h4>User Permission</h4>\n<p>Glip</p>\n<h4>Usage Plan Group</h4>\n<p>Light</p>",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "companyId",
            "type": "string",
            "in": "path",
            "description": "Internal identifier of an RC account/Glip company, or tilde (~) to indicate a company the current user belongs to",
            "required": true
          }
        ],
        "responses": {
          "default": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/GlipCompany"
            }
          }
        },
        "x-api-group": "Glip",
        "x-throttling-group": "Light",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-app-permission": "Glip",
        "x-user-permission": "Glip",
        "x-access-level": "Basic"
      }
    },
    "/restapi/v1.0/glip/groups/{groupId}/webhooks": {
      "post": {
        "tags": [
          "Glip [Beta]"
        ],
        "summary": "Create Webhook in Group",
        "operationId": "createGlipGroupWebhook",
        "description": "<p>Create new Webhook</p>\n<h4>Usage Plan Group</h4>\n<p>Medium</p>",
        "produces": [
          "application/json"
        ],
        "consumes": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "groupId",
            "in": "path",
            "description": "Group id",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/GlipWebhookInfo"
            }
          },
          "400": {
            "description": "Some of parameters are missing or have invalid format."
          }
        },
        "x-api-group": "glip/webhooks",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-rewrite-uri-from": "/restapi/v1.0/glip/groups/([0-9]+)/webhooks",
        "x-rewrite-uri-to": "/glip/v1/groups/$1/webhooks",
        "x-access-level": "Basic",
        "x-throttling-group": "Medium"
      },
      "get": {
        "tags": [
          "Glip [Beta]"
        ],
        "summary": "Get Webhooks in Group",
        "operationId": "listGlipGroupWebhooks",
        "description": "<p>Returns webhooks which are available for the current user (by group ID).</p>\n<h4>Usage Plan Group</h4>\n<p>Medium</p>",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "groupId",
            "in": "path",
            "description": "Internal identifier of a group",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/GlipWebhookList"
            }
          },
          "404": {
            "description": "Group with specified ID is not found."
          }
        },
        "x-api-group": "glip/webhooks",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-rewrite-uri-from": "/restapi/v1.0/glip/groups/([0-9]+)/webhooks",
        "x-rewrite-uri-to": "/glip/v1/groups/$1/webhooks",
        "x-access-level": "Basic",
        "x-throttling-group": "Medium"
      }
    },
    "/restapi/v1.0/glip/webhooks": {
      "get": {
        "tags": [
          "Glip [Beta]"
        ],
        "summary": "Get Webhooks",
        "operationId": "listGlipWebhooks",
        "description": "<p>Returns all webhooks.</p>\n<h4>Usage Plan Group</h4>\n<p>Medium</p>",
        "produces": [
          "application/json",
          "multipart/mixed"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/GlipWebhookList"
            }
          }
        },
        "x-api-group": "glip/webhooks",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-rewrite-uri-from": "/restapi/v1.0/glip/webhooks",
        "x-rewrite-uri-to": "/glip/v1/webhooks",
        "x-access-level": "Basic",
        "x-throttling-group": "Medium"
      }
    },
    "/restapi/v1.0/glip/webhooks/{webhookId}": {
      "get": {
        "tags": [
          "Glip [Beta]"
        ],
        "summary": "Get Webhook",
        "operationId": "loadGlipWebhook",
        "description": "<p>Returns webhooks(s) with the specified id(s).</p>\n<h4>Usage Plan Group</h4>\n<p>Medium</p>",
        "produces": [
          "application/json",
          "multipart/mixed"
        ],
        "parameters": [
          {
            "name": "webhookId",
            "in": "path",
            "description": "Internal identifier of a webhook or comma separated list of webhooks IDs",
            "required": true,
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/GlipWebhookList"
            }
          },
          "400": {
            "description": "Some of parameters are missing or have invalid format."
          },
          "404": {
            "description": "Webhooks not found."
          }
        },
        "x-api-group": "glip/webhooks",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-rewrite-uri-from": "/restapi/v1.0/glip/webhooks/(.*)",
        "x-rewrite-uri-to": "/glip/v1/webhooks/$1",
        "x-access-level": "Basic",
        "x-throttling-group": "Medium"
      },
      "delete": {
        "tags": [
          "Glip [Beta]"
        ],
        "summary": "Delete Webhook",
        "operationId": "deleteGlipWebhook",
        "description": "<p>Deletes the webhook by ID.</p>\n<h4>Usage Plan Group</h4>\n<p>Medium</p>",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "webhookId",
            "in": "path",
            "description": "Internal identifier of a webhook",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "204": {
            "description": "The resource was deleted successfully."
          },
          "400": {
            "description": "Some of parameters are missing or has invalid format."
          },
          "404": {
            "description": "Webhook not found."
          }
        },
        "x-api-group": "glip/webhooks",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-rewrite-uri-from": "/restapi/v1.0/glip/webhooks/(.*)",
        "x-rewrite-uri-to": "/glip/v1/webhooks/$1",
        "x-access-level": "Basic",
        "x-throttling-group": "Medium"
      }
    },
    "/restapi/v1.0/glip/webhooks/{webhookId}/activate": {
      "post": {
        "tags": [
          "Glip [Beta]"
        ],
        "summary": "Activate Webhook",
        "operationId": "activateGlipWebhook",
        "description": "<p>Activates webhooks by ID.</p>\n<h4>Usage Plan Group</h4>\n<p>Medium</p>",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "webhookId",
            "in": "path",
            "description": "Internal identifier of a webhook",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/GlipWebhookInfo"
            }
          },
          "400": {
            "description": "Some of parameters are missing or have invalid format."
          },
          "404": {
            "description": "Webhook not found."
          }
        },
        "x-api-group": "glip/webhooks",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-rewrite-uri-from": "/restapi/v1.0/glip/webhooks/(.*)",
        "x-rewrite-uri-to": "/glip/v1/webhooks/$1",
        "x-access-level": "Basic",
        "x-throttling-group": "Medium"
      }
    },
    "/restapi/v1.0/glip/webhooks/{webhookId}/suspend": {
      "post": {
        "tags": [
          "Glip [Beta]"
        ],
        "summary": "Suspend Webhook",
        "operationId": "suspendGlipWebhook",
        "description": "<p>Suspends webhooks by ID.</p>\n<h4>Usage Plan Group</h4>\n<p>Medium</p>",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "webhookId",
            "in": "path",
            "description": "Internal identifier of a webhook",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/GlipWebhookInfo"
            }
          },
          "400": {
            "description": "Some of parameters are missing or have invalid format."
          },
          "404": {
            "description": "Webhook not found."
          }
        },
        "x-api-group": "glip/webhooks",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-rewrite-uri-from": "/restapi/v1.0/glip/webhooks/(.*)",
        "x-rewrite-uri-to": "/glip/v1/webhooks/$1",
        "x-access-level": "Basic",
        "x-throttling-group": "Medium"
      }
    },
    "/restapi/v1.0/account/{accountId}/extension/{extensionId}/meeting": {
      "get": {
        "tags": [
          "Meetings [Beta]"
        ],
        "summary": "Get Scheduled Meetings [Beta]",
        "operationId": "listMeetings",
        "description": "<p>Returns a list of meetings for a particular extension. The list of meetings does not include meetings of &#39;Instant&#39; type.</p>\n<h4>App Permission</h4>\n<p>Meetings</p>\n<h4>User Permission</h4>\n<p>Meetings</p>\n<h4>Usage Plan Group</h4>\n<p>Light</p>",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "extensionId",
            "description": "Internal identifier of an extension or tilde (~) to indicate the extension assigned to the account logged-in within the current session",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "accountId",
            "description": "Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "OK: Scheduled Meeting List",
            "schema": {
              "$ref": "#/definitions/MeetingsResource"
            }
          }
        },
        "x-api-group": "extension/meeting",
        "x-throttling-group": "Light",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-user-permission": "Meetings",
        "x-app-permission": "Meetings",
        "x-access-level": "Basic"
      },
      "post": {
        "tags": [
          "Meetings [Beta]"
        ],
        "summary": "Create Meetings [Beta]",
        "operationId": "createMeeting",
        "description": "<p>Creates a new meeting.</p>\n<h4>App Permission</h4>\n<p>Meetings</p>\n<h4>User Permission</h4>\n<p>Meetings</p>\n<h4>Usage Plan Group</h4>\n<p>Medium</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>400</td>\n<td>CMN-101</td>\n<td>Parameter [schedule] value is invalid</td>\n</tr>\n<tr>\n<td>404</td>\n<td>CMN-102</td>\n<td>Resource for parameter [extensionId] is not found</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "required": false,
            "schema": {
              "$ref": "#/definitions/MeetingRequestResource"
            }
          },
          {
            "name": "extensionId",
            "in": "path",
            "description": "Internal identifier of an extension or tilde (~) to indicate the extension assigned to the account logged-in within the current session",
            "required": true,
            "type": "string"
          },
          {
            "name": "accountId",
            "in": "path",
            "description": "Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "OK: Created Meeting Info"
          }
        },
        "x-api-group": "extension/meeting",
        "x-throttling-group": "Medium",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-user-permission": "Meetings",
        "x-app-permission": "Meetings",
        "x-access-level": "Basic"
      }
    },
    "/restapi/v1.0/account/{accountId}/extension/{extensionId}/meeting/{meetingId}": {
      "get": {
        "tags": [
          "Meetings [Beta]"
        ],
        "summary": "Get Meeting Info [Beta]",
        "operationId": "loadMeeting",
        "description": "<p>Returns a particular meetings details by ID.</p>\n<h4>App Permission</h4>\n<p>Meetings</p>\n<h4>User Permission</h4>\n<p>Meetings</p>\n<h4>Usage Plan Group</h4>\n<p>Light</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>404</td>\n<td>CMN-102</td>\n<td>Resource for parameter [meetingId] is not found</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "meetingId",
            "in": "path",
            "description": "Internal identifier of a RingCentral meeting",
            "required": true,
            "type": "string"
          },
          {
            "name": "extensionId",
            "in": "path",
            "description": "Internal identifier of an extension or tilde (~) to indicate the extension assigned to the account logged-in within the current session",
            "required": true,
            "type": "string"
          },
          {
            "name": "accountId",
            "in": "path",
            "description": "Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "OK: Meeting Info",
            "schema": {
              "$ref": "#/definitions/MeetingResponseResource"
            }
          }
        },
        "x-api-group": "extension/meeting",
        "x-throttling-group": "Light",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-app-permission": "Meetings",
        "x-user-permission": "Meetings",
        "x-access-level": "Basic"
      },
      "put": {
        "tags": [
          "Meetings [Beta]"
        ],
        "summary": "Update Meeting",
        "operationId": "updateMeeting",
        "description": "<p>Modifies a particular meeting.</p>\n<h4>App Permission</h4>\n<p>Meetings</p>\n<h4>User Permission</h4>\n<p>Meetings</p>\n<h4>Usage Plan Group</h4>\n<p>Medium</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>400</td>\n<td>CMN-101</td>\n<td>Parameter [password] value is invalid</td>\n</tr>\n<tr>\n<td>404</td>\n<td>CMN-102</td>\n<td>Resource for parameter [extensionId] is not found</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "meetingId",
            "in": "path",
            "description": "Internal identifier of a RingCentral meeting",
            "required": true,
            "type": "string"
          },
          {
            "in": "body",
            "name": "body",
            "required": false,
            "schema": {
              "$ref": "#/definitions/MeetingRequestResource"
            }
          },
          {
            "name": "extensionId",
            "in": "path",
            "description": "Internal identifier of an extension or tilde (~) to indicate the extension assigned to the account logged-in within the current session",
            "required": true,
            "type": "string"
          },
          {
            "name": "accountId",
            "in": "path",
            "description": "Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "OK: Updated Meeting Info",
            "schema": {
              "$ref": "#/definitions/MeetingResponseResource"
            }
          }
        },
        "x-api-group": "extension/meeting",
        "x-throttling-group": "Medium",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-app-permission": "Meetings",
        "x-user-permission": "Meetings",
        "x-access-level": "Basic"
      },
      "delete": {
        "tags": [
          "Meetings [Beta]"
        ],
        "summary": "Delete Meeting",
        "operationId": "deleteMeeting",
        "description": "<p>Deletes a scheduled meeting.</p>\n<h4>App Permission</h4>\n<p>Meetings</p>\n<h4>User Permission</h4>\n<p>Meetings</p>\n<h4>Usage Plan Group</h4>\n<p>Medium</p>",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "meetingId",
            "in": "path",
            "description": "Internal identifier of a RingCentral meeting",
            "required": true,
            "type": "string"
          },
          {
            "name": "extensionId",
            "in": "path",
            "description": "Internal identifier of an extension or tilde (~) to indicate the extension assigned to the account logged-in within the current session",
            "required": true,
            "type": "string"
          },
          {
            "name": "accountId",
            "in": "path",
            "description": "Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          }
        },
        "x-api-group": "extension/meeting",
        "x-throttling-group": "Medium",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-app-permission": "Meetings",
        "x-user-permission": "Meetings",
        "x-access-level": "Basic"
      }
    },
    "/restapi/v1.0/account/{accountId}/extension/{extensionId}/meeting/{meetingId}/end": {
      "post": {
        "tags": [
          "Meetings [Beta]"
        ],
        "summary": "End Meeting",
        "operationId": "endMeeting",
        "description": "<p>Ends a meetings which is in progress.</p>\n<h4>App Permission</h4>\n<p>Meetings</p>\n<h4>User Permission</h4>\n<p>Meetings</p>\n<h4>Usage Plan Group</h4>\n<p>Medium</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>404</td>\n<td>CMN-102</td>\n<td>Resource for parameter [meetingId] is not found</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "meetingId",
            "in": "path",
            "description": "Internal identifier of a RingCentral meeting",
            "required": true,
            "type": "string"
          },
          {
            "name": "extensionId",
            "in": "path",
            "description": "Internal identifier of an extension or tilde (~) to indicate the extension assigned to the account logged-in within the current session",
            "required": true,
            "type": "string"
          },
          {
            "name": "accountId",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          }
        },
        "x-api-group": "extension/meeting/end",
        "x-throttling-group": "Medium",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-app-permission": "Meetings",
        "x-user-permission": "Meetings",
        "x-access-level": "Basic"
      }
    },
    "/restapi/v1.0/account/{accountId}/extension/{extensionId}/meeting/service-info": {
      "get": {
        "tags": [
          "Meetings [Beta]"
        ],
        "summary": "Get Meeting Service Info",
        "operationId": "loadMeetingServiceInfo",
        "description": "<p>Returns information on dial-in numbers for meetings, support and international dial-in numbers URIs and meeting account information.</p>\n<h4>App Permission</h4>\n<p>Meetings</p>\n<h4>User Permission</h4>\n<p>Meetings</p>\n<h4>Usage Plan Group</h4>\n<p>Light</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>403</td>\n<td>CMN-401</td>\n<td>In order to call this API endpoint, application needs to have [Meetings] permission</td>\n</tr>\n<tr>\n<td>403</td>\n<td>CMN-408</td>\n<td>In order to call this API endpoint, user needs to have [Meetings] permission for requested resource.</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "extensionId",
            "in": "path",
            "description": "Internal identifier of an extension or tilde (~) to indicate the extension assigned to the account logged-in within the current session",
            "required": true,
            "type": "string"
          },
          {
            "name": "accountId",
            "in": "path",
            "description": "Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "OK: Meeting Service Info",
            "schema": {
              "$ref": "#/definitions/MeetingServiceInfoResource"
            }
          }
        },
        "x-api-group": "extension/meeting/service-info",
        "x-throttling-group": "Light",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-app-permission": "Meetings",
        "x-user-permission": "Meetings",
        "x-access-level": "Basic"
      }
    },
    "/restapi/v1.0/subscription": {
      "get": {
        "tags": [
          "Push Notifications"
        ],
        "summary": "Get Subscriptions",
        "operationId": "listSubscriptions",
        "description": "<p>Returns a list of subscriptions created by a particular user on a particular client app.</p>\n<h4>Usage Plan Group</h4>\n<p>Light</p>",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "List of Subscriptions",
            "schema": {
              "$ref": "#/definitions/RecordsCollectionResourceSubscriptionResponse"
            }
          }
        },
        "x-api-group": "subscription",
        "x-throttling-group": "Light",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-access-level": "Basic"
      },
      "post": {
        "tags": [
          "Push Notifications"
        ],
        "summary": "Create Subscription",
        "description": "<p>Creates a new subscription.</p>\n<h4>Usage Plan Group</h4>\n<p>Medium</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>400</td>\n<td>CMN-101</td>\n<td>Parameter [deliveryMode.verificationToken] value is invalid</td>\n</tr>\n<tr>\n<td>400</td>\n<td>SUB-515</td>\n<td>Subscription containing only reminder filter is not allowed</td>\n</tr>\n<tr>\n<td>400</td>\n<td>SUB-522</td>\n<td>WebHook responds with incorrect HTTP status. HTTP status is 500</td>\n</tr>\n<tr>\n<td>400</td>\n<td>SUB-525</td>\n<td>WebHook server response is invalid</td>\n</tr>\n<tr>\n<td>401</td>\n<td>AGW-401</td>\n<td>Authorization header is not specified</td>\n</tr>\n<tr>\n<td>401</td>\n<td>AGW-402</td>\n<td>Invalid Authorization header</td>\n</tr>\n<tr>\n<td>401</td>\n<td>CMN-405</td>\n<td>Login to extension required</td>\n</tr>\n<tr>\n<td>403</td>\n<td>SUB-406</td>\n<td>Not allowed subscribe for events to extensions of other account</td>\n</tr>\n<tr>\n<td>403</td>\n<td>SUB-408</td>\n<td>Not allowed subscribe for unknown user</td>\n</tr>\n<tr>\n<td>403</td>\n<td>SUB-505</td>\n<td>Subscriptions limit exceeded</td>\n</tr>\n<tr>\n<td>403</td>\n<td>SUB-518</td>\n<td>Not allowed subscribe for favorite contacts list changes of another extension</td>\n</tr>\n<tr>\n<td>403</td>\n<td>SUB-527</td>\n<td>Not allowed subscribe for missed calls of another extension</td>\n</tr>\n<tr>\n<td>403</td>\n<td>SUB-528</td>\n<td>[SubscriptionAPNS] application permission is required for [PubNub/APNS] transport</td>\n</tr>\n<tr>\n<td>403</td>\n<td>SUB-530</td>\n<td>Not allowed subscribe for incoming calls of another extension</td>\n</tr>\n<tr>\n<td>403</td>\n<td>SUB-531</td>\n<td>Not allowed subscribe for presence of presence-lines of another extension</td>\n</tr>\n<tr>\n<td>404</td>\n<td>CMN-102</td>\n<td>Resource for parameter [dashboardId] is not found</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "operationId": "createSubscription",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "description": "JSON body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/CreateSubscriptionRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Created Subscription",
            "schema": {
              "$ref": "#/definitions/SubscriptionInfo"
            }
          }
        },
        "x-api-group": "subscription",
        "x-throttling-group": "Medium",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-access-level": "Basic"
      }
    },
    "/restapi/v1.0/subscription/{subscriptionId}": {
      "get": {
        "tags": [
          "Push Notifications"
        ],
        "summary": "Get Subscription",
        "description": "<p>Returns the requested subscription.</p>\n<h4>Usage Plan Group</h4>\n<p>Light</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>401</td>\n<td>CMN-405</td>\n<td>Login to extension required</td>\n</tr>\n<tr>\n<td>401</td>\n<td>OAU-151</td>\n<td>Authorization method not supported</td>\n</tr>\n<tr>\n<td>404</td>\n<td>CMN-102</td>\n<td>Resource for parameter [subscriptionId] is not found</td>\n</tr>\n<tr>\n<td>404</td>\n<td>CMN-120</td>\n<td>Invalid URI</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "operationId": "loadSubscription",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "subscriptionId",
            "in": "path",
            "description": "Internal identifier of a subscription",
            "required": true,
            "type": "integer"
          }
        ],
        "responses": {
          "200": {
            "description": "Existing Subscription",
            "schema": {
              "$ref": "#/definitions/SubscriptionInfo"
            }
          }
        },
        "x-api-group": "subscription",
        "x-throttling-group": "Light",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-access-level": "Basic"
      },
      "put": {
        "tags": [
          "Push Notifications"
        ],
        "summary": "Renew Subscription / Update Event Filters",
        "description": "<p>Renews the existent subscription if the request body is empty. If event filters are specified, calling this method modifies the event filters for the existing subscription. The client application can extend or narrow the events for which it receives notifications in the frame of one subscription.</p>\n<h4>Usage Plan Group</h4>\n<p>Medium</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>404</td>\n<td>CMN-102</td>\n<td>Resource for parameter [subscriptionId] is not found</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "operationId": "updateSubscription",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "subscriptionId",
            "in": "path",
            "description": "Internal identifier of a subscription",
            "required": true,
            "type": "string"
          },
          {
            "name": "aggregated",
            "in": "query",
            "description": "If 'True' then aggregated presence status is returned in a notification payload",
            "required": false,
            "type": "boolean"
          },
          {
            "in": "body",
            "name": "body",
            "description": "JSON body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ModifySubscriptionRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Updated Subscription",
            "schema": {
              "$ref": "#/definitions/SubscriptionInfo"
            }
          }
        },
        "x-api-group": "subscription",
        "x-throttling-group": "Medium",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-access-level": "Basic"
      },
      "delete": {
        "tags": [
          "Push Notifications"
        ],
        "summary": "Cancel Subscription",
        "description": "<p>Cancels the existent subscription.</p>\n<h4>Usage Plan Group</h4>\n<p>Medium</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>404</td>\n<td>CMN-102</td>\n<td>Resource for parameter [subscriptionId] is not found</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "operationId": "deleteSubscription",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "subscriptionId",
            "in": "path",
            "description": "Internal identifier of a subscription",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          }
        },
        "x-api-group": "subscription",
        "x-throttling-group": "Medium",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-access-level": "Basic"
      }
    },
    "/restapi/v1.0/subscription/{subscriptionId}/renew": {
      "post": {
        "tags": [
          "Push Notifications"
        ],
        "summary": "Renew Subscription",
        "description": "<p>Renews an existent subscription by ID by posting request with an empty body.</p>\n<h4>Usage Plan Group</h4>\n<p>Light</p>",
        "operationId": "renewSubscription",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "subscriptionId",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Updated Subscription",
            "schema": {
              "$ref": "#/definitions/SubscriptionInfo"
            }
          }
        },
        "x-api-group": "subscription",
        "x-throttling-group": "Light",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-access-level": "Basic"
      }
    },
    "/restapi/v1.0/account/{accountId}/extension/{extensionId}/authz-profile": {
      "get": {
        "tags": [
          "Roles and Permissions"
        ],
        "summary": "Get User Permissions",
        "operationId": "getAuthorizationProfile",
        "description": "<p>Returns a list of user permissions granted at authorization procedure. Please note: Some permissions may be restricted by extension type.</p>\n<h4>Usage Plan Group</h4>\n<p>Medium</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>403</td>\n<td>CMN-404</td>\n<td>Attempt to access another extension</td>\n</tr>\n<tr>\n<td>404</td>\n<td>CMN-102</td>\n<td>Resource for parameter [accountId] is not found</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "extensionId",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "accountId",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "default": {
            "description": "successful operation",
            "schema": {
              "$ref": "#/definitions/AuthProfileResource"
            }
          }
        },
        "x-api-group": "extension/authz-profile",
        "x-throttling-group": "Medium",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-access-level": "Basic"
      }
    },
    "/restapi/v1.0/account/{accountId}/extension/{extensionId}/authz-profile/check": {
      "get": {
        "tags": [
          "Roles and Permissions"
        ],
        "summary": "Check User Permissions",
        "operationId": "checkUserPermission",
        "description": "<p>Checks if a certain user permission is activated for a particular extension.</p>\n<h4>Usage Plan Group</h4>\n<p>Light</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>400</td>\n<td>CMN-101</td>\n<td>Parameter [targetExtensionId] value is invalid</td>\n</tr>\n<tr>\n<td>403</td>\n<td>CMN-404</td>\n<td>Attempt to access another extension</td>\n</tr>\n<tr>\n<td>404</td>\n<td>CMN-102</td>\n<td>Resource for parameter [accountId] is not found</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "permissionId",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "targetExtensionId",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "extensionId",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "accountId",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "default": {
            "description": "successful operation",
            "schema": {
              "$ref": "#/definitions/AuthProfileCheckResource"
            }
          }
        },
        "x-api-group": "extension/authz-profile/check",
        "x-throttling-group": "Light",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-access-level": "Basic"
      }
    },
    "/restapi/v1.0/account/{accountId}/extension/{extensionId}/business-hours": {
      "get": {
        "tags": [
          "Call Handling Settings"
        ],
        "summary": "Get User Business Hours",
        "description": "<p>Returns the extension user hours when answering rules are to be applied.</p>\n<h4>App Permission</h4>\n<p>ReadAccounts</p>\n<h4>User Permission</h4>\n<p>ReadExtensions</p>\n<h4>Usage Plan Group</h4>\n<p>Light</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>401</td>\n<td>CMN-405</td>\n<td>Login to extension required</td>\n</tr>\n<tr>\n<td>401</td>\n<td>OAU-151</td>\n<td>Authorization method not supported</td>\n</tr>\n<tr>\n<td>403</td>\n<td>CMN-401</td>\n<td>In order to call this API endpoint, application needs to have [ReadAccounts] permission</td>\n</tr>\n<tr>\n<td>403</td>\n<td>CMN-408</td>\n<td>In order to call this API endpoint, user needs to have [ReadUserAnsweringRules] permission for requested resource.</td>\n</tr>\n<tr>\n<td>404</td>\n<td>CMN-102</td>\n<td>Resource for parameter [extensionId] is not found</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "operationId": "loadUserBusinessHours",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          },
          {
            "name": "extensionId",
            "in": "path",
            "description": "Internal identifier of an extension or tilde (~) to indicate the extension assigned to the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/GetUserBusinessHoursResponse"
            }
          }
        },
        "x-api-group": "extension/business-hours",
        "x-throttling-group": "Light",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-app-permission": "ReadAccounts",
        "x-user-permission": "ReadExtensions",
        "x-access-level": "Basic"
      },
      "put": {
        "tags": [
          "Call Handling Settings"
        ],
        "summary": "Update User Business Hours",
        "operationId": "updateUserBusinessHours",
        "description": "<p>Updates the extension user hours when answering rules are to be applied.</p>\n<h4>App Permission</h4>\n<p>EditExtensions</p>\n<h4>User Permission</h4>\n<p>EditUserAnsweringRules</p>\n<h4>Usage Plan Group</h4>\n<p>Medium</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>400</td>\n<td>CMN-101</td>\n<td>Parameter [ranges] value is invalid</td>\n</tr>\n<tr>\n<td>403</td>\n<td>CMN-401</td>\n<td>In order to call this API endpoint, application needs to have [EditExtensions] permission</td>\n</tr>\n<tr>\n<td>404</td>\n<td>CMN-102</td>\n<td>Resource for parameter [extensionId] is not found</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "accountId",
            "type": "string",
            "in": "path",
            "description": "Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session",
            "required": true,
            "default": "~"
          },
          {
            "name": "extensionId",
            "type": "string",
            "in": "path",
            "description": "Internal identifier of an extension or tilde (~) to indicate the extension assigned to the account logged-in within the current session",
            "required": true,
            "default": "~"
          },
          {
            "name": "body",
            "in": "body",
            "description": "JSON body",
            "schema": {
              "$ref": "#/definitions/UserBusinessHoursUpdateRequest"
            },
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/UserBusinessHoursUpdate"
            }
          }
        },
        "x-api-group": "extension/business-hours",
        "x-throttling-group": "Medium",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-app-permission": "EditExtensions",
        "x-user-permission": "EditUserAnsweringRules",
        "x-access-level": "Basic"
      }
    },
    "/restapi/v1.0/account/{accountId}/business-hours": {
      "get": {
        "tags": [
          "Call Handling Settings"
        ],
        "summary": "Get Company Business Hours",
        "description": "<p>Returns company hours when answering rules are to be applied.</p>\n<h4>App Permission</h4>\n<p>ReadAccounts</p>\n<h4>User Permission</h4>\n<p>ReadUserAnsweringRules</p>\n<h4>Usage Plan Group</h4>\n<p>Light</p>",
        "operationId": "loadBusinesshoursInfo",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/CompanyBusinessHours"
            }
          }
        },
        "x-api-group": "extension/answering-rule",
        "x-throttling-group": "Light",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-app-permission": "ReadAccounts",
        "x-user-permission": "ReadUserAnsweringRules",
        "x-access-level": "Basic"
      },
      "put": {
        "tags": [
          "Call Handling Settings"
        ],
        "summary": "Update Company Business Hours",
        "description": "<p>Updates company hours when answering rules are to be applied.</p>\n<h4>App Permission</h4>\n<p>EditExtensions</p>\n<h4>User Permission</h4>\n<p>EditUserAnsweringRules</p>\n<h4>Usage Plan Group</h4>\n<p>Medium</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>400</td>\n<td>AWR-176</td>\n<td>At least one time range for [monday] required</td>\n</tr>\n<tr>\n<td>400</td>\n<td>AWR-177</td>\n<td>Time ranges limit for [monday] exceeded</td>\n</tr>\n<tr>\n<td>400</td>\n<td>CMN-101</td>\n<td>Parameter [schedule.weeklyRanges] value is invalid</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "operationId": "updateCompanyBusinessHours",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          },
          {
            "in": "body",
            "name": "body",
            "description": "JSON body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/CompanyBusinessHoursUpdateRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/CompanyBusinessHours"
            }
          }
        },
        "x-api-group": "extension/answering-rule",
        "x-throttling-group": "Medium",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-app-permission": "EditExtensions",
        "x-user-permission": "EditUserAnsweringRules",
        "x-access-level": "Basic"
      }
    },
    "/restapi/v1.0/account/{accountId}/extension/{extensionId}/blocked-number": {
      "get": {
        "deprecated": true,
        "tags": [
          "Call Handling Settings"
        ],
        "summary": "Get Blocked Numbers",
        "description": "<p>Returns the list of phone numbers which are specified by the user to block inbound calls and SMS messages.</p>\n<h4>App Permission</h4>\n<p>ReadAccounts</p>\n<h4>User Permission</h4>\n<p>ReadBlockedNumbers</p>\n<h4>Usage Plan Group</h4>\n<p>Light</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>400</td>\n<td>CMN-101</td>\n<td>Parameter [perPage] value is invalid</td>\n</tr>\n<tr>\n<td>401</td>\n<td>CMN-405</td>\n<td>Login to extension required</td>\n</tr>\n<tr>\n<td>401</td>\n<td>OAU-151</td>\n<td>Authorization method not supported</td>\n</tr>\n<tr>\n<td>403</td>\n<td>CMN-401</td>\n<td>In order to call this API endpoint, application needs to have [ReadAccounts] permission</td>\n</tr>\n<tr>\n<td>403</td>\n<td>CMN-408</td>\n<td>In order to call this API endpoint, user needs to have [ReadBlockedNumbers] permission for requested resource.</td>\n</tr>\n<tr>\n<td>404</td>\n<td>CMN-102</td>\n<td>Resource for parameter [extensionId] is not found</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "operationId": "listBlockedNumbers",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          },
          {
            "name": "extensionId",
            "in": "path",
            "description": "Internal identifier of an extension or tilde (~) to indicate the extension assigned to the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/BlockedNumbersList"
            }
          }
        },
        "x-api-group": "extension/blocked-number",
        "x-throttling-group": "Light",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-app-permission": "ReadAccounts",
        "x-user-permission": "ReadBlockedNumbers",
        "x-access-level": "Basic"
      },
      "post": {
        "deprecated": true,
        "tags": [
          "Call Handling Settings"
        ],
        "summary": "Add Blocked Numbers",
        "description": "<p>Adds a new phone number to the blocked number list.</p>\n<h4>App Permission</h4>\n<p>EditExtensions</p>\n<h4>User Permission</h4>\n<p>EditBlockedNumbers</p>\n<h4>Usage Plan Group</h4>\n<p>Medium</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>400</td>\n<td>CMN-101</td>\n<td>Parameter [phoneNumber] value is invalid</td>\n</tr>\n<tr>\n<td>403</td>\n<td>CMN-401</td>\n<td>In order to call this API endpoint, application needs to have [EditExtensions] permission</td>\n</tr>\n<tr>\n<td>403</td>\n<td>CMN-408</td>\n<td>In order to call this API endpoint, user needs to have [EditBlockedNumbers] permission for requested resource.</td>\n</tr>\n<tr>\n<td>404</td>\n<td>CMN-102</td>\n<td>Resource for parameter [extensionId] is not found</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "operationId": "blockNumber",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          },
          {
            "name": "extensionId",
            "in": "path",
            "description": "Internal identifier of an extension or tilde (~) to indicate the extension assigned to the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          },
          {
            "in": "body",
            "name": "body",
            "required": false,
            "schema": {
              "$ref": "#/definitions/BlockedNumberInfo"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/BlockedNumberInfo"
            }
          }
        },
        "x-api-group": "extension/blocked-number",
        "x-throttling-group": "Medium",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-app-permission": "EditExtensions",
        "x-user-permission": "EditBlockedNumbers",
        "x-access-level": "Basic"
      }
    },
    "/restapi/v1.0/account/{accountId}/extension/{extensionId}/blocked-number/{blockedNumberId}": {
      "get": {
        "deprecated": true,
        "tags": [
          "Call Handling Settings"
        ],
        "summary": "Get Blocked Number",
        "description": "<p>Returns specific information on blocked phone number(s) by their ID(s). Batch request is supported.</p>\n<h4>App Permission</h4>\n<p>ReadAccounts</p>\n<h4>User Permission</h4>\n<p>ReadBlockedNumbers</p>\n<h4>Usage Plan Group</h4>\n<p>Light</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>403</td>\n<td>CMN-401</td>\n<td>In order to call this API endpoint, application needs to have [ReadAccounts] permission</td>\n</tr>\n<tr>\n<td>403</td>\n<td>CMN-408</td>\n<td>In order to call this API endpoint, user needs to have [ReadBlockedNumbers] permission for requested resource.</td>\n</tr>\n<tr>\n<td>404</td>\n<td>CMN-102</td>\n<td>Resource for parameter [accountId] is not found</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "operationId": "loadBlockedNumber",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          },
          {
            "name": "extensionId",
            "in": "path",
            "description": "Internal identifier of an extension or tilde (~) to indicate the extension assigned to the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          },
          {
            "name": "blockedNumberId",
            "in": "path",
            "description": "Internal identifiers of a blocked number list entry",
            "required": true,
            "type": "integer"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/BlockedNumberInfo"
            }
          }
        },
        "x-api-group": "extension/blocked-number",
        "x-throttling-group": "Light",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-app-permission": "ReadAccounts",
        "x-user-permission": "ReadBlockedNumbers",
        "x-access-level": "Basic"
      },
      "put": {
        "tags": [
          "Call Handling Settings"
        ],
        "summary": "Update Blocked Number",
        "deprecated": true,
        "description": "<p>Updates blocked number(s) by their ID(s). Currently only the name can be updated. Batch request is supported.</p>\n<h4>App Permission</h4>\n<p>EditExtensions</p>\n<h4>User Permission</h4>\n<p>EditBlockedNumbers</p>\n<h4>Usage Plan Group</h4>\n<p>Medium</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>400</td>\n<td>CMN-101</td>\n<td>Parameter [] value is invalid</td>\n</tr>\n<tr>\n<td>403</td>\n<td>CMN-401</td>\n<td>In order to call this API endpoint, application needs to have [EditExtensions] permission</td>\n</tr>\n<tr>\n<td>403</td>\n<td>CMN-408</td>\n<td>In order to call this API endpoint, user needs to have [EditBlockedNumbers] permission for requested resource.</td>\n</tr>\n<tr>\n<td>404</td>\n<td>CMN-102</td>\n<td>Resource for parameter [extensionId] is not found</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "operationId": "updateBlockedNumber",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          },
          {
            "name": "extensionId",
            "in": "path",
            "description": "Internal identifier of an extension or tilde (~) to indicate the extension assigned to the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          },
          {
            "name": "blockedNumberId",
            "in": "path",
            "description": "Internal identifier of a blocked number list entry",
            "required": true,
            "type": "integer"
          },
          {
            "in": "body",
            "name": "body",
            "required": false,
            "schema": {
              "$ref": "#/definitions/BlockedNumberInfo"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/BlockedNumberInfo"
            }
          }
        },
        "x-api-group": "extension/blocked-number",
        "x-throttling-group": "Medium",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-app-permission": "EditExtensions",
        "x-user-permission": "EditBlockedNumbers",
        "x-access-level": "Basic"
      },
      "delete": {
        "tags": [
          "Call Handling Settings"
        ],
        "deprecated": true,
        "summary": "Delete Blocked Number",
        "description": "<p>Deletes a phone number from the blocked number list. Batch request is supported.</p>\n<h4>App Permission</h4>\n<p>EditExtensions</p>\n<h4>User Permission</h4>\n<p>EditBlockedNumbers</p>\n<h4>Usage Plan Group</h4>\n<p>Medium</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>403</td>\n<td>CMN-401</td>\n<td>In order to call this API endpoint, application needs to have [EditExtensions] permission</td>\n</tr>\n<tr>\n<td>403</td>\n<td>CMN-408</td>\n<td>In order to call this API endpoint, user needs to have [EditBlockedNumbers] permission for requested resource.</td>\n</tr>\n<tr>\n<td>404</td>\n<td>CMN-102</td>\n<td>Resource for parameter [extensionId] is not found</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "operationId": "unblockNumber",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          },
          {
            "name": "extensionId",
            "in": "path",
            "description": "Internal identifier of an extension or tilde (~) to indicate the extension assigned to the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          },
          {
            "name": "blockedNumberId",
            "in": "path",
            "description": "Internal identifiers of a blocked number list entry",
            "required": true,
            "type": "integer"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "x-api-group": "extension/blocked-number",
        "x-throttling-group": "Medium",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-app-permission": "EditExtensions",
        "x-user-permission": "EditBlockedNumbers",
        "x-access-level": "Basic"
      }
    },
    "/restapi/v1.0/account/{accountId}/extension/{extensionId}/caller-blocking": {
      "get": {
        "tags": [
          "Call Handling Settings"
        ],
        "summary": "Get Caller Blocking Settings",
        "description": "<p>Returns the current call blocking settings of a user.</p>\n<h4>App Permission</h4>\n<p>ReadAccounts</p>\n<h4>User Permission</h4>\n<p>ReadBlockedNumbers</p>\n<h4>Usage Plan Group</h4>\n<p>Light</p>",
        "operationId": "listCallBlockingSettings",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "extensionId",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "x-api-group": "extension/caller-blocking",
        "x-throttling-group": "Light",
        "x-app-permission": "ReadAccounts",
        "x-user-permission": "ReadBlockedNumbers",
        "x-access-level": "Basic"
      },
      "put": {
        "tags": [
          "Call Handling Settings"
        ],
        "summary": "Update Caller Blocking Settings",
        "operationId": "updateCallBlockingSettings",
        "description": "<p>Updates the current call blocking settings of a user.</p>\n<h4>App Permission</h4>\n<p>EditExtensions</p>\n<h4>User Permission</h4>\n<p>EditBlockedNumbers</p>\n<h4>Usage Plan Group</h4>\n<p>Light</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>400</td>\n<td>CMN-101</td>\n<td>Parameter [greetings] value is invalid</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "extensionId",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "x-api-group": "extension/caller-blocking",
        "x-throttling-group": "Light",
        "x-app-permission": "EditExtensions",
        "x-user-permission": "EditBlockedNumbers",
        "x-access-level": "Basic"
      }
    },
    "/restapi/v1.0/account/{accountId}/extension/{extensionId}/caller-blocking/phone-numbers": {
      "get": {
        "tags": [
          "Call Handling Settings"
        ],
        "summary": "Get Blocked Numbers",
        "description": "<p>Returns the lists of blocked and allowed phone numbers.</p>\n<h4>App Permission</h4>\n<p>ReadAccounts</p>\n<h4>User Permission</h4>\n<p>ReadBlockedNumbers</p>\n<h4>Usage Plan Group</h4>\n<p>Light</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>404</td>\n<td>CMN-102</td>\n<td>Resource for parameter [accountId] is not found</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "operationId": "listBlockedAllowedPhoneNumberLists",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "extensionId",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "type": "integer"
          },
          {
            "name": "perPage",
            "in": "query",
            "required": false,
            "type": "integer"
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "type": "string",
            "enum": [
              "Blocked",
              "Allowed"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "x-api-group": "extension/caller-blocking/phone-numbers",
        "x-throttling-group": "Light",
        "x-app-permission": "ReadAccounts",
        "x-user-permission": "ReadBlockedNumbers",
        "x-access-level": "Basic"
      },
      "post": {
        "tags": [
          "Call Handling Settings"
        ],
        "summary": "Add Blocked Number",
        "description": "<p>Updates either blocked or allowed phone number list with a new phone number.</p>\n<h4>App Permission</h4>\n<p>EditExtensions</p>\n<h4>User Permission</h4>\n<p>EditBlockedNumbers</p>\n<h4>Usage Plan Group</h4>\n<p>Medium</p>",
        "operationId": "createBlockedAllowedPhoneNumberLists",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "extensionId",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "x-api-group": "extension/caller-blocking/phone-numbers",
        "x-throttling-group": "Medium",
        "x-app-permission": "EditExtensions",
        "x-user-permission": "EditBlockedNumbers",
        "x-access-level": "Basic"
      }
    },
    "/restapi/v1.0/account/{accountId}/extension/{extensionId}/caller-blocking/phone-numbers/{blockedNumberId}": {
      "get": {
        "tags": [
          "Call Handling Settings"
        ],
        "summary": "Get Blocked Number",
        "operationId": "listBlockedAllowedPhoneNumber",
        "description": "<p>Returns blocked or allowed phone number(s) by their ID(s). Batch request is supported.</p>\n<h4>App Permission</h4>\n<p>ReadAccounts</p>\n<h4>User Permission</h4>\n<p>ReadBlockedNumbers</p>\n<h4>Usage Plan Group</h4>\n<p>Light</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>404</td>\n<td>CMN-102</td>\n<td>Resource for parameter [accountId] is not found</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "extensionId",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "blockedNumberId",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "x-api-group": "extension/caller-blocking/phone-numbers",
        "x-throttling-group": "Light",
        "x-app-permission": "ReadAccounts",
        "x-user-permission": "ReadBlockedNumbers",
        "x-access-level": "Basic"
      },
      "delete": {
        "tags": [
          "Call Handling Settings"
        ],
        "summary": "Delete Blocked Number",
        "operationId": "deleteBlockedAllowedPhoneNumber",
        "description": "<p>Deletes blocked or allowed phone number(s) by their ID(s). Batch request is supported.</p>\n<h4>App Permission</h4>\n<p>EditExtensions</p>\n<h4>User Permission</h4>\n<p>EditBlockedNumbers</p>\n<h4>Usage Plan Group</h4>\n<p>Medium</p>",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "extensionId",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "blockedNumberId",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "x-api-group": "extension/caller-blocking/phone-numbers",
        "x-throttling-group": "Medium",
        "x-app-permission": "EditExtensions",
        "x-user-permission": "EditBlockedNumbers",
        "x-access-level": "Basic"
      },
      "put": {
        "tags": [
          "Call Handling Settings"
        ],
        "summary": "Update Blocked Number",
        "operationId": "updateBlockedAllowedPhoneNumber",
        "description": "<p>Updates blocked or allowed phone number(s) by their ID(s). Batch request is supported.</p>\n<h4>App Permission</h4>\n<p>EditExtensions</p>\n<h4>User Permission</h4>\n<p>EditBlockedNumbers</p>\n<h4>Usage Plan Group</h4>\n<p>Medium</p>",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "extensionId",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "blockedNumberId",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "x-api-group": "extension/caller-blocking/phone-numbers",
        "x-throttling-group": "Medium",
        "x-app-permission": "EditExtensions",
        "x-user-permission": "EditBlockedNumbers",
        "x-access-level": "Basic"
      }
    },
    "/restapi/v1.0/account/{accountId}/extension/{extensionId}/forwarding-number": {
      "get": {
        "tags": [
          "Call Handling Settings"
        ],
        "summary": "Get Forwarding Numbers",
        "description": "<p>Returns the list of extension phone numbers used for call forwarding and call flip. The returned list contains all the extension phone numbers used for call forwarding and call flip.</p>\n<h4>App Permission</h4>\n<p>ReadAccounts</p>\n<h4>User Permission</h4>\n<p>ReadUserForwardingFlipNumbers</p>\n<h4>Usage Plan Group</h4>\n<p>Light</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>400</td>\n<td>CMN-101</td>\n<td>Parameter [perPage] value is invalid</td>\n</tr>\n<tr>\n<td>401</td>\n<td>CMN-405</td>\n<td>Login to extension required</td>\n</tr>\n<tr>\n<td>401</td>\n<td>OAU-151</td>\n<td>Authorization method not supported</td>\n</tr>\n<tr>\n<td>403</td>\n<td>CMN-401</td>\n<td>In order to call this API endpoint, application needs to have [ReadAccounts] permission</td>\n</tr>\n<tr>\n<td>403</td>\n<td>CMN-403</td>\n<td>The feature is not available for this extension type</td>\n</tr>\n<tr>\n<td>403</td>\n<td>CMN-408</td>\n<td>In order to call this API endpoint, user needs to have [ReadUserForwardingFlipNumbers] permission for requested resource.</td>\n</tr>\n<tr>\n<td>404</td>\n<td>CMN-102</td>\n<td>Resource for parameter [accountId] is not found</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "operationId": "listExtensionForwardingNumbers",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          },
          {
            "name": "extensionId",
            "in": "path",
            "description": "Internal identifier of an extension or tilde (~) to indicate the extension assigned to the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          },
          {
            "name": "page",
            "in": "query",
            "description": "Indicates the page number to retrieve. Only positive number values are accepted.",
            "default": "1",
            "required": false,
            "type": "integer"
          },
          {
            "name": "perPage",
            "in": "query",
            "description": "Indicates the page size (number of items).",
            "default": "100",
            "required": false,
            "type": "integer"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/GetExtensionForwardingNumberListResponse"
            }
          }
        },
        "x-api-group": "extension/forwarding-number",
        "x-throttling-group": "Light",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-app-permission": "ReadAccounts",
        "x-user-permission": "ReadUserForwardingFlipNumbers",
        "x-access-level": "Basic"
      },
      "post": {
        "tags": [
          "Call Handling Settings"
        ],
        "summary": "Create Forwarding Numbers",
        "description": "<p>Adds a new forwarding number to the forwarding number list.</p>\n<h4>App Permission</h4>\n<p>EditExtensions</p>\n<h4>User Permission</h4>\n<p>EditUserForwardingFlipNumbers</p>\n<h4>Usage Plan Group</h4>\n<p>Medium</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>400</td>\n<td>AWR-180</td>\n<td>Call handling settings not available for Fax tiers</td>\n</tr>\n<tr>\n<td>400</td>\n<td>CMN-101</td>\n<td>Parameter [phoneNumber] value is invalid</td>\n</tr>\n<tr>\n<td>400</td>\n<td>FPN-102</td>\n<td>Label of number Work duplicates with existing forwarding number label</td>\n</tr>\n<tr>\n<td>400</td>\n<td>FPN-103</td>\n<td>Limit of available forwarding numbers (10) exceeded</td>\n</tr>\n<tr>\n<td>400</td>\n<td>FPN-104</td>\n<td>Limit of available custom labeled forwarding numbers (7) exceeded</td>\n</tr>\n<tr>\n<td>400</td>\n<td>FPN-105</td>\n<td>Number +18442015485 duplicates with company/extension direct number</td>\n</tr>\n<tr>\n<td>400</td>\n<td>FPN-108</td>\n<td>International calling is currently disabled</td>\n</tr>\n<tr>\n<td>403</td>\n<td>CMN-401</td>\n<td>In order to call this API endpoint, application needs to have [EditExtensions] permission</td>\n</tr>\n<tr>\n<td>403</td>\n<td>CMN-403</td>\n<td>The feature is not available for this extension type</td>\n</tr>\n<tr>\n<td>404</td>\n<td>CMN-102</td>\n<td>Resource for parameter [extensionId] is not found</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "operationId": "createExtensionForwardingNumber",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          },
          {
            "name": "extensionId",
            "in": "path",
            "description": "Internal identifier of an extension or tilde (~) to indicate the extension assigned to the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          },
          {
            "in": "body",
            "name": "body",
            "description": "JSON body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/CreateForwardingNumberRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/ForwardingNumberInfo"
            }
          }
        },
        "x-api-group": "extension/forwarding-number",
        "x-throttling-group": "Medium",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-app-permission": "EditExtensions",
        "x-user-permission": "EditUserForwardingFlipNumbers",
        "x-access-level": "Basic"
      }
    },
    "/restapi/v1.0/account/{accountId}/extension/{extensionId}/forwarding-number/{forwardingNumberId}": {
      "get": {
        "tags": [
          "Call Handling Settings"
        ],
        "summary": "Get Forwarding Number",
        "operationId": "getForwardingNumber",
        "description": "<p>Returns a specific forwarding number.</p>\n<h4>App Permission</h4>\n<p>ReadAccounts</p>\n<h4>User Permission</h4>\n<p>ReadUserForwardingFlipNumbers</p>\n<h4>Usage Plan Group</h4>\n<p>Light</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>403</td>\n<td>CMN-401</td>\n<td>In order to call this API endpoint, application needs to have [ReadAccounts] permission</td>\n</tr>\n<tr>\n<td>403</td>\n<td>CMN-403</td>\n<td>The feature is not available for this extension type</td>\n</tr>\n<tr>\n<td>403</td>\n<td>CMN-408</td>\n<td>In order to call this API endpoint, user needs to have [ReadUserForwardingFlipNumbers] permission for requested resource.</td>\n</tr>\n<tr>\n<td>404</td>\n<td>CMN-102</td>\n<td>Resource for parameter [accountId] is not found</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "forwardingNumberId",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "extensionId",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "accountId",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/ForwardingNumberResource"
            }
          }
        },
        "x-api-group": "extension/forwarding-number",
        "x-throttling-group": "Light",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-app-permission": "ReadAccounts",
        "x-user-permission": "ReadUserForwardingFlipNumbers",
        "x-access-level": "Basic"
      },
      "put": {
        "tags": [
          "Call Handling Settings"
        ],
        "summary": "Update Forwarding Numbers",
        "description": "<p>Updates the existing forwarding number from the forwarding number list.</p>\n<h4>App Permission</h4>\n<p>EditExtensions</p>\n<h4>User Permission</h4>\n<p>EditUserForwardingFlipNumbers</p>\n<h4>Usage Plan Group</h4>\n<p>Medium</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>400</td>\n<td>CMN-101</td>\n<td>Parameter [flipNumber] value is invalid</td>\n</tr>\n<tr>\n<td>400</td>\n<td>FPN-102</td>\n<td>Label of number Home duplicates with existing forwarding number label</td>\n</tr>\n<tr>\n<td>400</td>\n<td>FPN-105</td>\n<td>Number +18552050457 duplicates with company/extension direct number</td>\n</tr>\n<tr>\n<td>400</td>\n<td>FPN-106</td>\n<td>Flip number 2 is already in use</td>\n</tr>\n<tr>\n<td>400</td>\n<td>FPN-108</td>\n<td>International calling is currently disabled</td>\n</tr>\n<tr>\n<td>403</td>\n<td>CMN-401</td>\n<td>In order to call this API endpoint, application needs to have [EditExtensions] permission</td>\n</tr>\n<tr>\n<td>403</td>\n<td>CMN-408</td>\n<td>In order to call this API endpoint, user needs to have [EditUserForwardingFlipNumbers] permission for requested resource.</td>\n</tr>\n<tr>\n<td>404</td>\n<td>CMN-102</td>\n<td>Resource for parameter [forwardingNumberId] is not found</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "operationId": "updateExtensionForwardingNumber",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          },
          {
            "name": "extensionId",
            "in": "path",
            "description": "Internal identifier of an extension or tilde (~) to indicate the extension assigned to the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          },
          {
            "name": "forwardingNumberId",
            "in": "path",
            "description": "Internal identifier of a forwarding number; returned in response in the id field",
            "required": true,
            "type": "string"
          },
          {
            "in": "body",
            "name": "body",
            "description": "JSON body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/UpdateForwardingNumberRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/ForwardingNumberInfo"
            }
          }
        },
        "x-api-group": "extension/forwarding-number",
        "x-throttling-group": "Medium",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-app-permission": "EditExtensions",
        "x-user-permission": "EditUserForwardingFlipNumbers",
        "x-access-level": "Basic"
      },
      "delete": {
        "tags": [
          "Call Handling Settings"
        ],
        "summary": "Delete Forwarding Number",
        "description": "<p>Deletes a forwarding number from the forwarding number list by its ID.</p>\n<h4>App Permission</h4>\n<p>EditExtensions</p>\n<h4>User Permission</h4>\n<p>EditUserForwardingFlipNumbers</p>\n<h4>Usage Plan Group</h4>\n<p>Medium</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>403</td>\n<td>CMN-408</td>\n<td>In order to call this API endpoint, user needs to have [EditUserForwardingFlipNumbers] permission for requested resource.</td>\n</tr>\n<tr>\n<td>403</td>\n<td>FPN-107</td>\n<td>Device number cannot be deleted from the forwarding number list</td>\n</tr>\n<tr>\n<td>404</td>\n<td>CMN-102</td>\n<td>Resource for parameter [forwardingNumberId] is not found</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "operationId": "deleteExtensionForwardingNumber",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          },
          {
            "name": "extensionId",
            "in": "path",
            "description": "Internal identifier of an extension or tilde (~) to indicate the extension assigned to the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          },
          {
            "name": "forwardingNumberId",
            "in": "path",
            "description": "Internal identifier of a forwarding number",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "x-api-group": "extension/forwarding-number",
        "x-throttling-group": "Medium",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-app-permission": "EditExtensions",
        "x-user-permission": "EditUserForwardingFlipNumbers",
        "x-access-level": "Basic"
      }
    },
    "/restapi/v1.0/account/{accountId}/extension/{extensionId}/answering-rule": {
      "get": {
        "tags": [
          "Call Handling Settings"
        ],
        "summary": "Get Call Handling Rules",
        "description": "<p>Returns the extension answering rules.</p>\n<h4>App Permission</h4>\n<p>ReadAccounts</p>\n<h4>User Permission</h4>\n<p>ReadUserAnsweringRules</p>\n<h4>Usage Plan Group</h4>\n<p>Medium</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>400</td>\n<td>CMN-101</td>\n<td>Parameter [perPage] value is invalid</td>\n</tr>\n<tr>\n<td>401</td>\n<td>CMN-405</td>\n<td>Login to extension required</td>\n</tr>\n<tr>\n<td>401</td>\n<td>OAU-151</td>\n<td>Authorization method not supported</td>\n</tr>\n<tr>\n<td>403</td>\n<td>CMN-401</td>\n<td>In order to call this API endpoint, application needs to have [ReadAccounts] permission</td>\n</tr>\n<tr>\n<td>403</td>\n<td>CMN-408</td>\n<td>In order to call this API endpoint, user needs to have [ReadUserAnsweringRules] permission for requested resource.</td>\n</tr>\n<tr>\n<td>404</td>\n<td>CMN-102</td>\n<td>Resource for parameter [accountId] is not found</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "operationId": "loadAnsweringRulesList",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          },
          {
            "name": "extensionId",
            "in": "path",
            "description": "Internal identifier of an extension or tilde (~) to indicate the extension assigned to the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "type": "string",
            "default": "1"
          },
          {
            "name": "perPage",
            "in": "query",
            "required": false,
            "type": "string",
            "default": "100"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "x-api-group": "extension/answering-rule",
        "x-throttling-group": "Medium",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-app-permission": "ReadAccounts",
        "x-user-permission": "ReadUserAnsweringRules",
        "x-access-level": "Basic"
      },
      "post": {
        "tags": [
          "Call Handling Settings"
        ],
        "summary": "Create Custom Call Handling Rules",
        "description": "<p>Creates a custom answering rule for a particular caller ID.</p>\n<h4>App Permission</h4>\n<p>EditExtensions</p>\n<h4>User Permission</h4>\n<p>EditUserAnsweringRules</p>\n<h4>Usage Plan Group</h4>\n<p>Medium</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>400</td>\n<td>AWR-100</td>\n<td>Rule indexes should be sequential</td>\n</tr>\n<tr>\n<td>400</td>\n<td>AWR-101</td>\n<td>Parameter [forwarding.rules[].forwardingNumbers[].id] are duplicated</td>\n</tr>\n<tr>\n<td>400</td>\n<td>AWR-106</td>\n<td>Greeting [Voicemail] is duplicated</td>\n</tr>\n<tr>\n<td>400</td>\n<td>AWR-107</td>\n<td>More than one caller with the same [callerId]</td>\n</tr>\n<tr>\n<td>400</td>\n<td>AWR-108</td>\n<td>Only custom rule can be created</td>\n</tr>\n<tr>\n<td>400</td>\n<td>AWR-111</td>\n<td>At least one condition should be specified</td>\n</tr>\n<tr>\n<td>400</td>\n<td>AWR-113</td>\n<td>More than one called number with the same [calledNumbers.phoneNumber]</td>\n</tr>\n<tr>\n<td>400</td>\n<td>AWR-121</td>\n<td>Business Hours not specified for current user</td>\n</tr>\n<tr>\n<td>400</td>\n<td>AWR-123</td>\n<td>Preset [131840] can not be used for greeting type [Voicemail]</td>\n</tr>\n<tr>\n<td>400</td>\n<td>AWR-124</td>\n<td>presetId specified for greeting type [Voicemail] is not found</td>\n</tr>\n<tr>\n<td>400</td>\n<td>AWR-125</td>\n<td>Custom greeting presetId specified for greeting type [Introductory]. Custom greeting uploading method should be used</td>\n</tr>\n<tr>\n<td>400</td>\n<td>AWR-126</td>\n<td>The amount of schedule ranges exceeds 1000</td>\n</tr>\n<tr>\n<td>400</td>\n<td>AWR-136</td>\n<td>Ring group with index 1 is not found</td>\n</tr>\n<tr>\n<td>400</td>\n<td>AWR-137</td>\n<td>Rule index should be greater than 0</td>\n</tr>\n<tr>\n<td>400</td>\n<td>AWR-138</td>\n<td>Contact center number cannot be used as called number</td>\n</tr>\n<tr>\n<td>400</td>\n<td>AWR-139</td>\n<td>Hold audio interruption period not specified</td>\n</tr>\n<tr>\n<td>400</td>\n<td>AWR-140</td>\n<td>Hold audio interruption period should be empty for interruption mode specified</td>\n</tr>\n<tr>\n<td>400</td>\n<td>AWR-144</td>\n<td>Call Queue agent with index 1 is not found</td>\n</tr>\n<tr>\n<td>400</td>\n<td>AWR-147</td>\n<td>Preset [65792] can not be used for extension type [Department]</td>\n</tr>\n<tr>\n<td>400</td>\n<td>AWR-148</td>\n<td>Call Queue agents should be the same as call queue members</td>\n</tr>\n<tr>\n<td>400</td>\n<td>AWR-149</td>\n<td>Only user, voicemail or shared line group extension can be a voicemail recipient</td>\n</tr>\n<tr>\n<td>400</td>\n<td>AWR-150</td>\n<td>Only user, voicemail, shared line group extension or current department can be a voicemail recipient</td>\n</tr>\n<tr>\n<td>400</td>\n<td>AWR-152</td>\n<td>Voicemail cannot be turned off for call queue extension</td>\n</tr>\n<tr>\n<td>400</td>\n<td>AWR-177</td>\n<td>Time ranges limit for [monday] exceeded</td>\n</tr>\n<tr>\n<td>400</td>\n<td>AWR-179</td>\n<td>[name] is too long: up to 127 symbols supported</td>\n</tr>\n<tr>\n<td>400</td>\n<td>CMN-101</td>\n<td>Parameter [name] value is invalid</td>\n</tr>\n<tr>\n<td>400</td>\n<td>FPN-105</td>\n<td>Number +16196093249 duplicates with company/extension direct number</td>\n</tr>\n<tr>\n<td>400</td>\n<td>FPN-108</td>\n<td>International calling is currently disabled</td>\n</tr>\n<tr>\n<td>403</td>\n<td>CMN-401</td>\n<td>In order to call this API endpoint, application needs to have [EditExtensions] permission</td>\n</tr>\n<tr>\n<td>403</td>\n<td>CMN-408</td>\n<td>In order to call this API endpoint, user needs to have [EditUserAnsweringRules] permission for requested resource.</td>\n</tr>\n<tr>\n<td>404</td>\n<td>CMN-102</td>\n<td>Resource for parameter [accountId] is not found</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "operationId": "createAnsweringRuleInfo",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          },
          {
            "name": "extensionId",
            "in": "path",
            "description": "Internal identifier of an extension or tilde (~) to indicate the extension assigned to the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          },
          {
            "in": "body",
            "name": "body",
            "description": "JSON body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/CreateAnsweringRuleRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/AnsweringRuleInfo"
            }
          }
        },
        "x-api-group": "extension/answering-rule",
        "x-throttling-group": "Medium",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-app-permission": "EditExtensions",
        "x-user-permission": "EditUserAnsweringRules",
        "x-access-level": "Basic"
      }
    },
    "/restapi/v1.0/account/{accountId}/extension/{extensionId}/answering-rule/{ruleId}": {
      "get": {
        "tags": [
          "Call Handling Settings"
        ],
        "summary": "Get Call Handling Rule",
        "operationId": "loadAnsweringRuleInfo",
        "description": "<p>Returns an answering rule by ID.</p>\n<h4>App Permission</h4>\n<p>ReadAccounts</p>\n<h4>User Permission</h4>\n<p>ReadUserAnsweringRules</p>\n<h4>Usage Plan Group</h4>\n<p>Light</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>400</td>\n<td>CMN-101</td>\n<td>Parameter [showInactiveNumbers] value is invalid</td>\n</tr>\n<tr>\n<td>403</td>\n<td>CMN-401</td>\n<td>In order to call this API endpoint, application needs to have [ReadAccounts] permission</td>\n</tr>\n<tr>\n<td>404</td>\n<td>CMN-102</td>\n<td>Resource for parameter [answering-rule] is not found</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          },
          {
            "name": "extensionId",
            "in": "path",
            "description": "Internal identifier of an extension or tilde (~) to indicate the extension assigned to the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          },
          {
            "name": "ruleId",
            "in": "path",
            "description": "Internal identifier of an answering rule. The value can be standard digital ID or specific ID - either 'business-hours-rule' or 'after-hours-rule'",
            "required": true,
            "type": "string"
          },
          {
            "name": "showInactiveNumbers",
            "in": "query",
            "description": "Indicates whether invactive numbers should be returned or not",
            "default": false,
            "required": false,
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/AnsweringRuleInfo"
            }
          }
        },
        "x-api-group": "extension/answering-rule",
        "x-throttling-group": "Light",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-app-permission": "ReadAccounts",
        "x-user-permission": "ReadUserAnsweringRules",
        "x-access-level": "Basic"
      },
      "put": {
        "tags": [
          "Call Handling Settings"
        ],
        "summary": "Update Custom Call Handling Rule",
        "description": "<p>Updates a custom answering rule for a particular caller ID.</p>\n<h4>App Permission</h4>\n<p>EditExtensions</p>\n<h4>User Permission</h4>\n<p>EditUserAnsweringRules</p>\n<h4>Usage Plan Group</h4>\n<p>Medium</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>400</td>\n<td>AWR-100</td>\n<td>Rule indexes should be sequential</td>\n</tr>\n<tr>\n<td>400</td>\n<td>AWR-106</td>\n<td>Greeting [Voicemail] is duplicated</td>\n</tr>\n<tr>\n<td>400</td>\n<td>AWR-111</td>\n<td>At least one condition should be specified</td>\n</tr>\n<tr>\n<td>400</td>\n<td>AWR-113</td>\n<td>More than one called number with the same [calledNumbers.phoneNumber]</td>\n</tr>\n<tr>\n<td>400</td>\n<td>AWR-120</td>\n<td>Business Hours/After Hours schedule condition is allowed only with other answering rule conditions</td>\n</tr>\n<tr>\n<td>400</td>\n<td>AWR-123</td>\n<td>Preset [131840] can not be used for greeting type [Voicemail]</td>\n</tr>\n<tr>\n<td>400</td>\n<td>AWR-124</td>\n<td>presetId specified for greeting type [Voicemail] is not found</td>\n</tr>\n<tr>\n<td>400</td>\n<td>AWR-136</td>\n<td>Ring group with index 1 is not found</td>\n</tr>\n<tr>\n<td>400</td>\n<td>AWR-137</td>\n<td>Rule index should be greater than 0</td>\n</tr>\n<tr>\n<td>400</td>\n<td>AWR-138</td>\n<td>Contact center number cannot be used as called number</td>\n</tr>\n<tr>\n<td>400</td>\n<td>AWR-139</td>\n<td>Hold audio interruption period not specified</td>\n</tr>\n<tr>\n<td>400</td>\n<td>AWR-140</td>\n<td>Hold audio interruption period should be empty for interruption mode specified</td>\n</tr>\n<tr>\n<td>400</td>\n<td>AWR-144</td>\n<td>Call Queue agent with index 1 is not found</td>\n</tr>\n<tr>\n<td>400</td>\n<td>AWR-147</td>\n<td>Preset [65792] can not be used for extension type [Department]</td>\n</tr>\n<tr>\n<td>400</td>\n<td>AWR-148</td>\n<td>Call Queue agents should be the same as call queue members</td>\n</tr>\n<tr>\n<td>400</td>\n<td>AWR-179</td>\n<td>[name] is too long: up to 127 symbols supported</td>\n</tr>\n<tr>\n<td>400</td>\n<td>CMN-101</td>\n<td>Parameter [callHandlingAction] value is invalid</td>\n</tr>\n<tr>\n<td>400</td>\n<td>FPN-105</td>\n<td>Number +18332051179 duplicates with company/extension direct number</td>\n</tr>\n<tr>\n<td>400</td>\n<td>FPN-108</td>\n<td>International calling is currently disabled</td>\n</tr>\n<tr>\n<td>403</td>\n<td>CMN-401</td>\n<td>In order to call this API endpoint, application needs to have [EditExtensions] permission</td>\n</tr>\n<tr>\n<td>404</td>\n<td>CMN-102</td>\n<td>Resource for parameter [accountId] is not found</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "operationId": "updateAnsweringRuleInfo",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          },
          {
            "name": "extensionId",
            "in": "path",
            "description": "Internal identifier of an extension or tilde (~) to indicate the extension assigned to the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          },
          {
            "name": "ruleId",
            "in": "path",
            "description": "Internal identifier of an answering rule",
            "required": true,
            "type": "string"
          },
          {
            "in": "body",
            "name": "body",
            "description": "JSON body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/UpdateAnsweringRuleRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/AnsweringRuleInfo"
            }
          }
        },
        "x-api-group": "extension/answering-rule",
        "x-throttling-group": "Medium",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-app-permission": "EditExtensions",
        "x-user-permission": "EditUserAnsweringRules",
        "x-access-level": "Basic"
      },
      "delete": {
        "tags": [
          "Call Handling Settings"
        ],
        "summary": "Delete Call Handling Rule",
        "operationId": "deleteAnsweringRule",
        "description": "<p>Deletes a custom answering rule by a particular ID.</p>\n<h4>App Permission</h4>\n<p>EditExtensions</p>\n<h4>User Permission</h4>\n<p>EditUserAnsweringRules</p>\n<h4>Usage Plan Group</h4>\n<p>Medium</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>403</td>\n<td>AWR-110</td>\n<td>Business Hours/After Hours rule cannot be deleted</td>\n</tr>\n<tr>\n<td>403</td>\n<td>CMN-401</td>\n<td>In order to call this API endpoint, application needs to have [EditExtensions] permission</td>\n</tr>\n<tr>\n<td>403</td>\n<td>CMN-408</td>\n<td>In order to call this API endpoint, user needs to have [EditUserAnsweringRules] permission for requested resource.</td>\n</tr>\n<tr>\n<td>404</td>\n<td>CMN-102</td>\n<td>Resource for parameter [answering-rule] is not found</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          },
          {
            "name": "extensionId",
            "in": "path",
            "description": "Internal identifier of an extension or tilde (~) to indicate the extension assigned to the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          },
          {
            "name": "ruleId",
            "in": "path",
            "description": "Internal identifier of an answering rule",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          }
        },
        "x-api-group": "extension/answering-rule",
        "x-throttling-group": "Medium",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-app-permission": "EditExtensions",
        "x-user-permission": "EditUserAnsweringRules",
        "x-access-level": "Basic"
      }
    },
    "/restapi/v1.0/account/{accountId}/answering-rule": {
      "post": {
        "tags": [
          "Call Handling Settings"
        ],
        "summary": "Create Company Call Handling Rule",
        "operationId": "createCompanyAnsweringRuleInfo",
        "description": "<p>Creates a company answering rule for a particular caller ID.</p>\n<h4>App Permission</h4>\n<p>EditAccounts</p>\n<h4>User Permission</h4>\n<p>EditCompanyAnsweringRules</p>\n<h4>Usage Plan Group</h4>\n<p>Medium</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>400</td>\n<td>AWR-106</td>\n<td>Greeting [Company] is duplicated</td>\n</tr>\n<tr>\n<td>400</td>\n<td>AWR-108</td>\n<td>Only custom rule can be created</td>\n</tr>\n<tr>\n<td>400</td>\n<td>AWR-120</td>\n<td>Business Hours/After Hours schedule condition is allowed only with other answering rule conditions</td>\n</tr>\n<tr>\n<td>400</td>\n<td>AWR-121</td>\n<td>Business Hours not specified for current user</td>\n</tr>\n<tr>\n<td>400</td>\n<td>AWR-170</td>\n<td>Invalid greeting type: preset with [CompanyGreeting] must be used</td>\n</tr>\n<tr>\n<td>400</td>\n<td>AWR-172</td>\n<td>[extension] must be specified for [Bypass] call handling action</td>\n</tr>\n<tr>\n<td>400</td>\n<td>AWR-173</td>\n<td>[extension] can be specified for [Bypass] call handling action only</td>\n</tr>\n<tr>\n<td>400</td>\n<td>AWR-179</td>\n<td>[name] is too long: up to 127 symbols supported</td>\n</tr>\n<tr>\n<td>400</td>\n<td>AWR-182</td>\n<td>Only bypass action is available in multi-level IVR mode</td>\n</tr>\n<tr>\n<td>400</td>\n<td>CMN-101</td>\n<td>Parameter [callHandlingAction] value is invalid</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "accountId",
            "type": "string",
            "in": "path",
            "description": "Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session",
            "required": true,
            "default": "~"
          },
          {
            "name": "body",
            "in": "body",
            "description": "JSON body",
            "schema": {
              "$ref": "#/definitions/CompanyAnsweringRuleRequest"
            },
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/CompanyAnsweringRuleInfo"
            }
          }
        },
        "x-api-group": "account/answering-rule",
        "x-throttling-group": "Medium",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-app-permission": "EditAccounts",
        "x-user-permission": "EditCompanyAnsweringRules",
        "x-access-level": "Basic"
      },
      "get": {
        "tags": [
          "Call Handling Settings"
        ],
        "summary": "Get Company Call Handling Rules",
        "operationId": "listCompanyAnsweringRule",
        "description": "<p>Returns a list of company answering rules.</p>\n<h4>App Permission</h4>\n<p>ReadAccounts</p>\n<h4>User Permission</h4>\n<p>ReadCompanyAnsweringRules</p>\n<h4>Usage Plan Group</h4>\n<p>Medium</p>",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "accountId",
            "type": "string",
            "in": "path",
            "description": "Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session",
            "required": true,
            "default": "~"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/CompanyAnsweringRuleList"
            }
          }
        },
        "x-api-group": "account/answering-rule",
        "x-throttling-group": "Medium",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-app-permission": "ReadAccounts",
        "x-user-permission": "ReadCompanyAnsweringRules",
        "x-access-level": "Basic"
      }
    },
    "/restapi/v1.0/account/{accountId}/answering-rule/{ruleId}": {
      "get": {
        "tags": [
          "Call Handling Settings"
        ],
        "summary": "Get Company Call Handling Rule",
        "operationId": "loadCompanyAnsweringRuleInfo",
        "description": "<p>Returns a company answering rule by ID.</p>\n<h4>App Permission</h4>\n<p>ReadAccounts</p>\n<h4>User Permission</h4>\n<p>ReadCompanyAnsweringRules</p>\n<h4>Usage Plan Group</h4>\n<p>Light</p>",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "accountId",
            "type": "string",
            "in": "path",
            "description": "Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session",
            "required": true,
            "default": "~"
          },
          {
            "name": "ruleId",
            "type": "string",
            "in": "path",
            "description": "Internal identifier of an answering rule. The value can be standard digital ID or specific ID - either 'business-hours-rule' or 'after-hours-rule'",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/CompanyAnsweringRuleInfo"
            }
          }
        },
        "x-api-group": "account/answering-rule",
        "x-throttling-group": "Light",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-app-permission": "ReadAccounts",
        "x-user-permission": "ReadCompanyAnsweringRules",
        "x-access-level": "Basic"
      },
      "put": {
        "tags": [
          "Call Handling Settings"
        ],
        "summary": "Update Company Call Handling Rule",
        "operationId": "updateCompanyAnsweringRuleInfo",
        "description": "<p>Updates a company answering rule.</p>\n<h4>App Permission</h4>\n<p>EditAccounts</p>\n<h4>User Permission</h4>\n<p>EditCompanyAnsweringRules</p>\n<h4>Usage Plan Group</h4>\n<p>Medium</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>400</td>\n<td>AWR-164</td>\n<td>Rule type cannot be changed</td>\n</tr>\n<tr>\n<td>400</td>\n<td>AWR-170</td>\n<td>Invalid greeting type: preset with [CompanyGreeting] must be used</td>\n</tr>\n<tr>\n<td>400</td>\n<td>AWR-172</td>\n<td>[extension] must be specified for [Bypass] call handling action</td>\n</tr>\n<tr>\n<td>400</td>\n<td>AWR-173</td>\n<td>[extension] can be specified for [Bypass] call handling action only</td>\n</tr>\n<tr>\n<td>400</td>\n<td>AWR-179</td>\n<td>[name] is too long: up to 127 symbols supported</td>\n</tr>\n<tr>\n<td>400</td>\n<td>AWR-182</td>\n<td>Only bypass action is available in multi-level IVR mode</td>\n</tr>\n<tr>\n<td>400</td>\n<td>CMN-101</td>\n<td>Parameter [callHandlingAction] value is invalid</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "accountId",
            "type": "string",
            "in": "path",
            "description": "Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session",
            "required": true,
            "default": "~"
          },
          {
            "name": "ruleId",
            "type": "string",
            "in": "path",
            "description": "Internal identifier of an answering rule. The value can be standard digital ID or specific ID - either 'business-hours-rule' or 'after-hours-rule'",
            "required": true
          },
          {
            "name": "body",
            "in": "body",
            "description": "JSON body",
            "schema": {
              "$ref": "#/definitions/CompanyAnsweringRuleUpdate"
            },
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/CompanyAnsweringRuleInfo"
            }
          }
        },
        "x-api-group": "account/answering-rule",
        "x-throttling-group": "Medium",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-app-permission": "EditAccounts",
        "x-user-permission": "EditCompanyAnsweringRules",
        "x-access-level": "Basic"
      }
    },
    "/restapi/v1.0/dictionary/greeting": {
      "get": {
        "tags": [
          "Call Handling Settings"
        ],
        "summary": "Get Standard Greetings",
        "description": "<p>Returns a list of predefined standard greetings. Custom greetings recorded by user are not returned in response to this request. See Get Extension Custom Greetings.</p>\n<h4>Usage Plan Group</h4>\n<p>Medium</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>400</td>\n<td>CMN-101</td>\n<td>Parameter [type] value is invalid</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "operationId": "getGreetings",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "description": "Indicates the page number to retrieve. Only positive number values are accepted.",
            "default": "1",
            "required": false,
            "type": "integer"
          },
          {
            "name": "perPage",
            "in": "query",
            "description": "Indicates the page size (number of items).",
            "default": "100",
            "required": false,
            "type": "integer"
          },
          {
            "name": "type",
            "in": "query",
            "description": "Type of a greeting, specifying the case when the greeting is played",
            "required": false,
            "type": "string",
            "enum": [
              "Introductory",
              "Announcement",
              "ConnectingMessage",
              "ConnectingAudio",
              "Voicemail",
              "Unavailable",
              "HoldMusic",
              "Company"
            ]
          },
          {
            "name": "usageType",
            "in": "query",
            "type": "string",
            "description": "Usage type of a greeting, specifying if the greeting is applied for user extension or department extension",
            "enum": [
              "UserExtensionAnsweringRule",
              "ExtensionAnsweringRule",
              "DepartmentExtensionAnsweringRule",
              "CompanyAnsweringRule",
              "CompanyAfterHoursAnsweringRule"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/DictionaryGreetingList"
            }
          }
        },
        "x-api-group": "dictionary/greeting",
        "x-throttling-group": "Medium",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-access-level": "Basic"
      }
    },
    "/restapi/v1.0/dictionary/greeting/{greetingId}": {
      "get": {
        "tags": [
          "Call Handling Settings"
        ],
        "summary": "Get Greeting Info",
        "description": "<p>Returns a standard greeting by ID.</p>\n<h4>Usage Plan Group</h4>\n<p>Medium</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>404</td>\n<td>CMN-102</td>\n<td>Resource for parameter [greetingId] is not found</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "operationId": "getGreeting",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "greetingId",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/DictionaryGreetingInfo"
            }
          }
        },
        "x-api-group": "dictionary/greeting",
        "x-throttling-group": "Medium",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-access-level": "Basic"
      }
    },
    "/restapi/v1.0/account/{accountId}/greeting": {
      "post": {
        "tags": [
          "Call Handling Settings"
        ],
        "summary": "Create Custom Company Greeting",
        "operationId": "getCompanyGreeting",
        "description": "<p>Creates a custom company greeting.</p>\n<h4>App Permission</h4>\n<p>EditAccounts</p>\n<h4>User Permission</h4>\n<p>ReadUserInfo</p>\n<h4>Usage Plan Group</h4>\n<p>Medium</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>400</td>\n<td>AWR-129</td>\n<td>Invalid attachment media type</td>\n</tr>\n<tr>\n<td>400</td>\n<td>AWR-178</td>\n<td>Greeting type [Voicemail] is not applicable to company rule</td>\n</tr>\n<tr>\n<td>400</td>\n<td>CMN-101</td>\n<td>Parameter [type] value is invalid</td>\n</tr>\n<tr>\n<td>400</td>\n<td>CMN-102</td>\n<td>Resource for parameter [answeringRule.id] is not found</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          },
          {
            "in": "body",
            "name": "body",
            "description": "JSON body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/CustomCompanyGreetingRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/CustomCompanyGreetingInfo"
            }
          }
        },
        "x-api-group": "extension/greeting",
        "x-throttling-group": "Medium",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-app-permission": "EditAccounts",
        "x-user-permission": "ReadUserInfo",
        "x-access-level": "Basic"
      }
    },
    "/restapi/v1.0/account/{accountId}/extension/{extensionId}/greeting": {
      "post": {
        "tags": [
          "Call Handling Settings"
        ],
        "summary": "Create User Custom Greeting",
        "operationId": "createGreeting",
        "description": "<p>Creates custom greeting for an extension user.</p>\n<h4>App Permission</h4>\n<p>EditExtensions</p>\n<h4>User Permission</h4>\n<p>EditUserAnsweringRules</p>\n<h4>Usage Plan Group</h4>\n<p>Heavy</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>400</td>\n<td>AWR-128</td>\n<td>Attachment body is empty</td>\n</tr>\n<tr>\n<td>400</td>\n<td>AWR-129</td>\n<td>Invalid attachment media type</td>\n</tr>\n<tr>\n<td>400</td>\n<td>AWR-165</td>\n<td>Hold music can be set for business hours rule only: the same value will be applied to all rules</td>\n</tr>\n<tr>\n<td>400</td>\n<td>CLR-103</td>\n<td>Company level greeting cannot be created on user level.</td>\n</tr>\n<tr>\n<td>400</td>\n<td>CMN-101</td>\n<td>Parameter [type] value is invalid</td>\n</tr>\n<tr>\n<td>400</td>\n<td>CMN-102</td>\n<td>Resource for parameter [answeringRule.id] is not found</td>\n</tr>\n<tr>\n<td>400</td>\n<td>CMN-111</td>\n<td>Business operation is not supported</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          },
          {
            "name": "extensionId",
            "in": "path",
            "description": "Internal identifier of an extension or tilde (~) to indicate the extension assigned to the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          },
          {
            "in": "body",
            "name": "body",
            "required": false,
            "schema": {
              "$ref": "#/definitions/CustomGreetingRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/CustomCompanyGreetingInfo"
            }
          }
        },
        "x-api-group": "extension/greeting",
        "x-throttling-group": "Heavy",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-app-permission": "EditExtensions",
        "x-user-permission": "EditUserAnsweringRules",
        "x-access-level": "Basic"
      }
    },
    "/restapi/v1.0/account/{accountId}/extension/{extensionId}/greeting/{greetingId}": {
      "get": {
        "tags": [
          "Call Handling Settings"
        ],
        "summary": "Get Custom Greeting Info",
        "operationId": "getGreetingByID",
        "description": "<p>Returns a custom user greeting by ID.</p>\n<h4>App Permission</h4>\n<p>ReadAccounts</p>\n<h4>User Permission</h4>\n<p>ReadUserInfo</p>\n<h4>Usage Plan Group</h4>\n<p>Medium</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>404</td>\n<td>CMN-102</td>\n<td>Resource for parameter [greetingId] is not found</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          },
          {
            "name": "extensionId",
            "in": "path",
            "description": "Internal identifier of an extension or tilde (~) to indicate the extension assigned to the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          },
          {
            "name": "greetingId",
            "in": "path",
            "description": "Internal identifier of a greeting",
            "required": true,
            "type": "integer"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/CustomUserGreetingInfo"
            }
          }
        },
        "x-api-group": "extension/greeting",
        "x-throttling-group": "Medium",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-app-permission": "ReadAccounts",
        "x-user-permission": "ReadUserInfo",
        "x-access-level": "Basic"
      }
    },
    "/restapi/v1.0/account/{accountId}/ivr-prompts": {
      "get": {
        "tags": [
          "Call Handling Settings"
        ],
        "summary": "Get IVR Prompts",
        "operationId": "getPrompts",
        "description": "<p>Returns a list of IVR prompts.</p>\n<h4>App Permission</h4>\n<p>ReadAccounts</p>\n<h4>User Permission</h4>\n<p>ReadCompanyGreetings</p>\n<h4>Usage Plan Group</h4>\n<p>Medium</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>403</td>\n<td>CMN-401</td>\n<td>In order to call this API endpoint, application needs to have [ReadAccounts] permission</td>\n</tr>\n<tr>\n<td>403</td>\n<td>CMN-408</td>\n<td>In order to call this API endpoint, user needs to have [ReadCompanyGreetings] permission for requested resource.</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/IVRPrompts"
            }
          }
        },
        "x-api-group": "account/ivr-prompts",
        "x-throttling-group": "Medium",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-app-permission": "ReadAccounts",
        "x-user-permission": "ReadCompanyGreetings",
        "x-access-level": "Basic"
      }
    },
    "/restapi/v1.0/account/{accountId}/ivr-prompts/{promptId}": {
      "get": {
        "tags": [
          "Call Handling Settings"
        ],
        "summary": "Get IVR Prompt",
        "operationId": "getPromptById",
        "description": "<p>Returns an IVR prompt by ID.</p>\n<h4>App Permission</h4>\n<p>ReadAccounts</p>\n<h4>User Permission</h4>\n<p>ReadCompanyGreetings</p>\n<h4>Usage Plan Group</h4>\n<p>Medium</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>403</td>\n<td>CMN-401</td>\n<td>In order to call this API endpoint, application needs to have [ReadAccounts] permission</td>\n</tr>\n<tr>\n<td>403</td>\n<td>CMN-408</td>\n<td>In order to call this API endpoint, user needs to have [ReadCompanyGreetings] permission for requested resource.</td>\n</tr>\n<tr>\n<td>404</td>\n<td>CMN-102</td>\n<td>Resource for parameter [promptId] is not found</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "promptId",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/PromptInfo"
            }
          }
        },
        "x-api-group": "account/ivr-prompts",
        "x-throttling-group": "Medium",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-app-permission": "ReadAccounts",
        "x-user-permission": "ReadCompanyGreetings",
        "x-access-level": "Basic"
      },
      "delete": {
        "tags": [
          "Call Handling Settings"
        ],
        "summary": "Delete IVR Prompt",
        "operationId": "deletePrompt",
        "description": "<p>Deletes an IVR prompt by ID.</p>\n<h4>App Permission</h4>\n<p>EditAccounts</p>\n<h4>User Permission</h4>\n<p>EditCompanyGreetings</p>\n<h4>Usage Plan Group</h4>\n<p>Heavy</p>",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "promptId",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          }
        },
        "x-api-group": "account/ivr-prompts",
        "x-throttling-group": "Heavy",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-app-permission": "EditAccounts",
        "x-user-permission": "EditCompanyGreetings",
        "x-access-level": "Basic"
      }
    },
    "/restapi/v1.0/account/{accountId}/ivr-prompts/{promptId}/content": {
      "get": {
        "tags": [
          "Call Handling Settings"
        ],
        "summary": "Get IVR Prompt Content",
        "operationId": "getPromptContent",
        "description": "<p>Returns media content of an IVR prompt by ID.</p>\n<h4>App Permission</h4>\n<p>ReadAccounts</p>\n<h4>User Permission</h4>\n<p>ReadCompanyGreetings</p>\n<h4>Usage Plan Group</h4>\n<p>Medium</p>",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "promptId",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "x-api-group": "account/ivr-prompts",
        "x-throttling-group": "Medium",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-app-permission": "ReadAccounts",
        "x-user-permission": "ReadCompanyGreetings",
        "x-access-level": "Basic"
      }
    },
    "/restapi/v1.0/account/{accountId}/ivr-menus/{ivrMenuId}": {
      "get": {
        "tags": [
          "Call Handling Settings"
        ],
        "summary": "Get IVR Menu",
        "operationId": "getIVRMenuById",
        "description": "<p>Returns a company IVR menu by ID.</p>\n<h4>App Permission</h4>\n<p>ReadAccounts</p>\n<h4>User Permission</h4>\n<p>AutoReceptionist</p>\n<h4>Usage Plan Group</h4>\n<p>Medium</p>",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "ivrMenuId",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/IVRMenuInfo"
            }
          }
        },
        "x-api-group": "account/ivr-menus",
        "x-throttling-group": "Medium",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-app-permission": "ReadAccounts",
        "x-user-permission": "AutoReceptionist",
        "x-access-level": "Basic"
      }
    },
    "/restapi/v1.0/account/{accountId}/call-recording": {
      "get": {
        "tags": [
          "Call Handling Settings"
        ],
        "operationId": "loadCallRecordingSettings",
        "description": "<p>Returns call recording settings.</p>\n<h4>App Permission</h4>\n<p>ReadAccounts</p>\n<h4>User Permission</h4>\n<p>ReadCompanyInfo</p>\n<h4>Usage Plan Group</h4>\n<p>Light</p>",
        "summary": "Get Call Recording Settings",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/CallRecordingSettingsResource"
            }
          }
        },
        "x-api-group": "account/call-recording",
        "x-throttling-group": "Light",
        "x-app-permission": "ReadAccounts",
        "x-user-permission": "ReadCompanyInfo",
        "x-access-level": "Basic"
      }
    },
    "/restapi/v1.0/account/{accountId}/call-recording/extensions": {
      "get": {
        "tags": [
          "Call Handling Settings"
        ],
        "operationId": "listCallRecordingExtensionSettings",
        "description": "<p>Returns the list of extensions to be recorded.</p>\n<h4>App Permission</h4>\n<p>ReadAccounts</p>\n<h4>User Permission</h4>\n<p>ReadCompanyInfo</p>\n<h4>Usage Plan Group</h4>\n<p>Medium</p>",
        "summary": "Get Call Recording Extension Settings",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          }
        },
        "x-api-group": "account/call-recording/extensions",
        "x-throttling-group": "Medium",
        "x-app-permission": "ReadAccounts",
        "x-user-permission": "ReadCompanyInfo",
        "x-access-level": "Basic"
      }
    },
    "/restapi/v1.0/account/{accountId}/call-recording/custom-greetings": {
      "get": {
        "tags": [
          "Call Handling Settings"
        ],
        "operationId": "listCallRecordingCustomGreetings",
        "summary": "[Beta] Get Call Recording Custom Greetings",
        "description": "<p>Returns call recording custom greetings.</p>\n<h4>App Permission</h4>\n<p>ReadAccounts</p>\n<h4>User Permission</h4>\n<p>ReadCompanyInfo</p>\n<h4>Usage Plan Group</h4>\n<p>Medium</p>",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          }
        },
        "x-api-group": "account/call-recording/custom-greetings",
        "x-throttling-group": "Medium",
        "x-app-permission": "ReadAccounts",
        "x-user-permission": "ReadCompanyInfo",
        "x-metered-api": true,
        "x-access-level": "Basic",
        "x-metering-group": "System"
      }
    },
    "/restapi/v1.0/client-info/sip-provision": {
      "post": {
        "tags": [
          "Application Settings"
        ],
        "summary": "Register SIP Device",
        "description": "<p>Creates SIP registration of a device/application (WebPhone, Mobile, softphone)</p>\n<h4>App Permission</h4>\n<p>VoipCalling</p>\n<h4>Usage Plan Group</h4>\n<p>Heavy</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>400</td>\n<td>CMN-101</td>\n<td>Parameter [sipInfo.transport] value is invalid</td>\n</tr>\n<tr>\n<td>400</td>\n<td>SPR-114</td>\n<td>Device id length [40] is greater than allowed [38]</td>\n</tr>\n<tr>\n<td>400</td>\n<td>SPR-118</td>\n<td>Parameter [device.id]=@1qwbc)yppa! is not a number</td>\n</tr>\n<tr>\n<td>400</td>\n<td>SPR-129</td>\n<td>Not allowed to register with incompatible protocol list [WS, TCP]</td>\n</tr>\n<tr>\n<td>400</td>\n<td>SPR-130</td>\n<td>device is not allowed for WebRTC.</td>\n</tr>\n<tr>\n<td>403</td>\n<td>BIL-103</td>\n<td>Feature [WebPhone] is not available for current account</td>\n</tr>\n<tr>\n<td>403</td>\n<td>CMN-401</td>\n<td>In order to call this API endpoint, application needs to have [VoipCalling] permission</td>\n</tr>\n<tr>\n<td>403</td>\n<td>CMN-402</td>\n<td>Administrator permission required</td>\n</tr>\n<tr>\n<td>403</td>\n<td>SPR-112</td>\n<td>Client edition is not compatible with current Brand</td>\n</tr>\n<tr>\n<td>403</td>\n<td>SPR-122</td>\n<td>Application version is not set in \"User-Agent\" header or not parseable</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "operationId": "createSipRegistration",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "description": "JSON body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/CreateSipRegistrationRequest"
            }
          }
        ],
        "responses": {
          "default": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/CreateSipRegistrationResponse"
            }
          }
        },
        "x-api-group": "client-info/sip-provision",
        "x-throttling-group": "Heavy",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-app-permission": "VoipCalling",
        "x-access-level": "Basic"
      }
    },
    "/restapi/v1.0/account/{accountId}/extension/{extensionId}/phone-number": {
      "get": {
        "tags": [
          "Phone Numbers"
        ],
        "summary": "Get Extension Phone Number List",
        "description": "<p>Returns the list of phone numbers that are used by a particular extension, and can be filtered by the phone number type. The returned list contains all numbers which are directly mapped to a given extension plus the features and also company-level numbers which may be used when performing different operations on behalf of this extension.</p>\n<h4>App Permission</h4>\n<p>ReadAccounts</p>\n<h4>User Permission</h4>\n<p>ReadUserPhoneNumbers</p>\n<h4>Usage Plan Group</h4>\n<p>Light</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>400</td>\n<td>CMN-101</td>\n<td>Parameter [usageType] value is invalid</td>\n</tr>\n<tr>\n<td>401</td>\n<td>CMN-405</td>\n<td>Login to extension required</td>\n</tr>\n<tr>\n<td>401</td>\n<td>OAU-151</td>\n<td>Authorization method not supported</td>\n</tr>\n<tr>\n<td>403</td>\n<td>CMN-401</td>\n<td>In order to call this API endpoint, application needs to have [ReadAccounts] permission</td>\n</tr>\n<tr>\n<td>404</td>\n<td>CMN-102</td>\n<td>Resource for parameter [extensionId] is not found</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "operationId": "listExtensionPhoneNumbers",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          },
          {
            "name": "extensionId",
            "in": "path",
            "description": "Internal identifier of an extension or tilde (~) to indicate the extension assigned to the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          },
          {
            "name": "usageType",
            "in": "query",
            "description": "Usage type of a phone number",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi",
            "enum": [
              "MainCompanyNumber",
              "AdditionalCompanyNumber",
              "CompanyNumber",
              "DirectNumber",
              "CompanyFaxNumber",
              "ForwardedNumber"
            ]
          },
          {
            "name": "page",
            "in": "query",
            "description": "Indicates the page number to retrieve. Only positive number values are allowed. Default value is '1'",
            "required": false,
            "type": "integer"
          },
          {
            "name": "perPage",
            "in": "query",
            "description": "Indicates the page size (number of items). If not specified, the value is '100' by default",
            "required": false,
            "type": "integer"
          }
        ],
        "responses": {
          "200": {
            "description": "OK: User Phone Number List",
            "schema": {
              "$ref": "#/definitions/GetExtensionPhoneNumbersResponse"
            },
            "examples": {
              "application/json": {
                "uri": "https://platform.ringcentral.com/restapi/v1.0/account/406266144008/extension/406266144008/phone-number?page=1&perPage=100",
                "records": [
                  {
                    "id": 405665234008,
                    "phoneNumber": "+14034532006",
                    "paymentType": "Local",
                    "location": "Calgary, AB",
                    "type": "VoiceOnly",
                    "usageType": "DirectNumber",
                    "status": "Normal",
                    "country": {
                      "uri": "https://platform.ringcentral.com/restapi/v1.0/dictionary/country/39",
                      "id": "39",
                      "name": "Canada"
                    },
                    "features": [
                      "InternationalSmsSender",
                      "CallerId",
                      "MmsSender",
                      "SmsSender"
                    ]
                  },
                  {
                    "id": 405665241008,
                    "phoneNumber": "+17057350012",
                    "paymentType": "Local",
                    "location": "Barrie, ON",
                    "type": "VoiceOnly",
                    "usageType": "DirectNumber",
                    "extension": {
                      "uri": "https://platform.ringcentral.com/restapi/v1.0/account/406266144008/extension/406266152008",
                      "id": 406266152008,
                      "extensionNumber": "1000",
                      "name": "IVR Menu",
                      "type": "IvrMenu"
                    },
                    "status": "Normal",
                    "country": {
                      "uri": "https://platform.ringcentral.com/restapi/v1.0/dictionary/country/39",
                      "id": "39",
                      "name": "Canada"
                    },
                    "features": [
                      "CallerId"
                    ]
                  },
                  {
                    "id": 405665237008,
                    "phoneNumber": "+17787640710",
                    "paymentType": "Local",
                    "location": "Prince George, BC",
                    "type": "VoiceOnly",
                    "usageType": "DirectNumber",
                    "extension": {
                      "uri": "https://platform.ringcentral.com/restapi/v1.0/account/406266144008/extension/406266148008",
                      "id": 406266148008,
                      "extensionNumber": "1",
                      "name": "Sales",
                      "type": "Department"
                    },
                    "status": "Normal",
                    "country": {
                      "uri": "https://platform.ringcentral.com/restapi/v1.0/dictionary/country/39",
                      "id": "39",
                      "name": "Canada"
                    },
                    "features": [
                      "CallerId"
                    ]
                  },
                  {
                    "id": 405665233008,
                    "phoneNumber": "+18002022673",
                    "paymentType": "TollFree",
                    "type": "VoiceFax",
                    "usageType": "MainCompanyNumber",
                    "status": "Normal",
                    "country": {
                      "uri": "https://platform.ringcentral.com/restapi/v1.0/dictionary/country/1",
                      "id": "1",
                      "name": "United States"
                    },
                    "features": [
                      "CallerId"
                    ]
                  }
                ],
                "paging": {
                  "page": 1,
                  "totalPages": 1,
                  "perPage": 100,
                  "totalElements": 4,
                  "pageStart": 0,
                  "pageEnd": 3
                },
                "navigation": {
                  "firstPage": {
                    "uri": "https://platform.ringcentral.com/restapi/v1.0/account/406266144008/extension/406266144008/phone-number?page=1&perPage=100"
                  },
                  "lastPage": {
                    "uri": "https://platform.ringcentral.com/restapi/v1.0/account/406266144008/extension/406266144008/phone-number?page=1&perPage=100"
                  }
                }
              }
            }
          }
        },
        "x-api-group": "extension/phone-number",
        "x-throttling-group": "Light",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-app-permission": "ReadAccounts",
        "x-user-permission": "ReadUserPhoneNumbers",
        "x-access-level": "Basic"
      }
    },
    "/restapi/v1.0/account/{accountId}/extension/{extensionId}": {
      "get": {
        "tags": [
          "User Settings"
        ],
        "summary": "Get Extension Info",
        "description": "<p>Returns basic information about a particular extension of an account.</p>\n<h4>App Permission</h4>\n<p>ReadAccounts</p>\n<h4>User Permission</h4>\n<p>ReadExtensions</p>\n<h4>Usage Plan Group</h4>\n<p>Light</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>401</td>\n<td>CMN-405</td>\n<td>Login to extension required</td>\n</tr>\n<tr>\n<td>401</td>\n<td>OAU-129</td>\n<td>Access token corrupted</td>\n</tr>\n<tr>\n<td>401</td>\n<td>OAU-151</td>\n<td>Authorization method not supported</td>\n</tr>\n<tr>\n<td>403</td>\n<td>CMN-401</td>\n<td>In order to call this API endpoint, application needs to have [ReadAccounts] permission</td>\n</tr>\n<tr>\n<td>404</td>\n<td>CMN-102</td>\n<td>Resource for parameter [extensionId] is not found</td>\n</tr>\n<tr>\n<td>429</td>\n<td>CMN-301</td>\n<td>Request rate exceeded</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "operationId": "loadExtensionInfo",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          },
          {
            "name": "extensionId",
            "in": "path",
            "description": "Internal identifier of an extension or tilde (~) to indicate the extension assigned to the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          }
        ],
        "responses": {
          "default": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/GetExtensionInfoResponse"
            }
          }
        },
        "x-api-group": "extension",
        "x-throttling-group": "Light",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-app-permission": "ReadAccounts",
        "x-user-permission": "ReadExtensions",
        "x-access-level": "Basic",
        "x-notifications": [
          {
            "$ref": "#/definitions/ExtensionInfoEvent"
          }
        ]
      }
    },
    "/restapi/v1.0/account/{accountId}/extension/{extensionId}/caller-id": {
      "get": {
        "tags": [
          "User Settings"
        ],
        "summary": "Get Extension Caller ID",
        "operationId": "loadExtensionCallerId",
        "description": "<p>Returns information on an outbound caller ID of an extension.</p>\n<h4>App Permission</h4>\n<p>ReadAccounts</p>\n<h4>User Permission</h4>\n<p>ReadCallerIDSettings</p>\n<h4>Usage Plan Group</h4>\n<p>Light</p>",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "accountId",
            "type": "string",
            "in": "path",
            "description": "Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session",
            "required": true,
            "default": "~"
          },
          {
            "name": "extensionId",
            "type": "string",
            "in": "path",
            "description": "Internal identifier of an extension or tilde (~) to indicate the extension assigned to the account logged-in within the current session",
            "required": true,
            "default": "~"
          }
        ],
        "responses": {
          "default": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/ExtensionCallerIdInfo"
            }
          }
        },
        "x-api-group": "extension/caller-id",
        "x-throttling-group": "Light",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-app-permission": "ReadAccounts",
        "x-user-permission": "ReadCallerIDSettings",
        "x-access-level": "Basic"
      },
      "put": {
        "tags": [
          "User Settings"
        ],
        "summary": "Update Extension Caller ID",
        "operationId": "updateExtensionCallerId",
        "description": "<p>Updates outbound caller ID information of an extension.</p>\n<h4>App Permission</h4>\n<p>EditExtensions</p>\n<h4>User Permission</h4>\n<p>EditCallerIDSettings</p>\n<h4>Usage Plan Group</h4>\n<p>Medium</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>400</td>\n<td>CMN-101</td>\n<td>Parameter [byFeature.callerId.type] value is invalid</td>\n</tr>\n<tr>\n<td>400</td>\n<td>CMN-102</td>\n<td>Resource for parameter [phoneInfo.id] is not found</td>\n</tr>\n<tr>\n<td>403</td>\n<td>CID-101</td>\n<td>Feature [CommonPhone] is not available for current account.</td>\n</tr>\n<tr>\n<td>403</td>\n<td>CID-102</td>\n<td>Contact center phone number cannot be set as caller ID: Contact Center is not available for current account.</td>\n</tr>\n<tr>\n<td>403</td>\n<td>CID-103</td>\n<td>Conferencing phone number cannot be set as caller ID.</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "accountId",
            "type": "string",
            "in": "path",
            "description": "Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session",
            "required": true,
            "default": "~"
          },
          {
            "name": "extensionId",
            "type": "string",
            "in": "path",
            "description": "Internal identifier of an extension or tilde (~) to indicate the extension assigned to the account logged-in within the current session",
            "required": true,
            "default": "~"
          },
          {
            "name": "body",
            "in": "body",
            "description": "JSON body",
            "schema": {
              "$ref": "#/definitions/ExtensionCallerIdInfo"
            },
            "required": true
          }
        ],
        "responses": {
          "default": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/ExtensionCallerIdInfo"
            }
          }
        },
        "x-api-group": "extension/caller-id",
        "x-throttling-group": "Medium",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-app-permission": "EditExtensions",
        "x-user-permission": "EditCallerIDSettings",
        "x-access-level": "Basic"
      }
    },
    "/restapi/v1.0/account/{accountId}/extension/{extensionId}/grant": {
      "get": {
        "tags": [
          "User Settings"
        ],
        "summary": "Get Extension Grants",
        "description": "<p>Returns the list of extension grants.</p>\n<h4>App Permission</h4>\n<p>ReadAccounts</p>\n<h4>User Permission</h4>\n<p>ReadExtensions</p>\n<h4>Usage Plan Group</h4>\n<p>Light</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>401</td>\n<td>CMN-405</td>\n<td>Login to extension required</td>\n</tr>\n<tr>\n<td>401</td>\n<td>OAU-151</td>\n<td>Authorization method not supported</td>\n</tr>\n<tr>\n<td>403</td>\n<td>CMN-408</td>\n<td>In order to call this API endpoint, user needs to have [ReadExtensionGrant] permission for requested resource.</td>\n</tr>\n<tr>\n<td>404</td>\n<td>CMN-102</td>\n<td>Resource for parameter [accountId] is not found</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "operationId": "listExtensionGrants",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          },
          {
            "name": "extensionId",
            "in": "path",
            "description": "Internal identifier of an extension or tilde (~) to indicate the extension assigned to the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "type": "string",
            "default": "1"
          },
          {
            "name": "perPage",
            "in": "query",
            "required": false,
            "type": "string",
            "default": "100"
          }
        ],
        "responses": {
          "default": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/GetExtensionGrantListResponse"
            }
          }
        },
        "x-api-group": "extension/grant",
        "x-throttling-group": "Light",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-app-permission": "ReadAccounts",
        "x-user-permission": "ReadExtensions",
        "x-access-level": "Basic",
        "x-notifications": [
          {
            "$ref": "#/definitions/ExtensionGrantListEvent"
          }
        ]
      }
    },
    "/restapi/v1.0/account/{accountId}/extension/{extensionId}/notification-settings": {
      "get": {
        "tags": [
          "User Settings"
        ],
        "summary": "Get Notification Settings",
        "description": "<p>Returns notification settings for the current extension.</p>\n<h4>App Permission</h4>\n<p>ReadAccounts</p>\n<h4>User Permission</h4>\n<p>ReadMessagesNotificationsSettings</p>\n<h4>Usage Plan Group</h4>\n<p>Light</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>403</td>\n<td>CMN-401</td>\n<td>In order to call this API endpoint, application needs to have [ReadAccounts] permission</td>\n</tr>\n<tr>\n<td>403</td>\n<td>CMN-408</td>\n<td>In order to call this API endpoint, user needs to have [ReadMessagesNotificationsSettings] permission for requested resource.</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "operationId": "getNotificationSettings",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          },
          {
            "name": "extensionId",
            "in": "path",
            "description": "Internal identifier of an extension or tilde (~) to indicate the extension assigned to the account logged-in within the current session",
            "required": true,
            "type": "integer"
          }
        ],
        "responses": {
          "default": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/NotificationSettings"
            }
          }
        },
        "x-api-group": "extension/notification-settings",
        "x-throttling-group": "Light",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-app-permission": "ReadAccounts",
        "x-user-permission": "ReadMessagesNotificationsSettings",
        "x-access-level": "Basic"
      },
      "put": {
        "tags": [
          "User Settings"
        ],
        "summary": "Update Notification Settings",
        "description": "<p>Updates notification settings for the current extension.</p>\n<h4>App Permission</h4>\n<p>EditExtensions</p>\n<h4>User Permission</h4>\n<p>EditMessagesNotificationsSettings</p>\n<h4>Usage Plan Group</h4>\n<p>Medium</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>403</td>\n<td>CMN-109</td>\n<td>Feature VoicemailToText is unavailable</td>\n</tr>\n<tr>\n<td>403</td>\n<td>CMN-401</td>\n<td>In order to call this API endpoint, application needs to have [EditExtensions] permission</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "operationId": "updateNotificationSettings",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          },
          {
            "name": "extensionId",
            "in": "path",
            "description": "Internal identifier of an extension or tilde (~) to indicate the extension assigned to the account logged-in within the current session",
            "required": true,
            "type": "integer"
          },
          {
            "in": "body",
            "name": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/NotificationSettingsUpdateRequest"
            }
          }
        ],
        "responses": {
          "default": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/NotificationSettings"
            }
          }
        },
        "x-api-group": "extension/notification-settings",
        "x-throttling-group": "Medium",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-app-permission": "EditExtensions",
        "x-user-permission": "EditMessagesNotificationsSettings",
        "x-access-level": "Basic"
      }
    },
    "/restapi/v1.0/account/{accountId}/extension/{extensionId}/profile-image": {
      "get": {
        "tags": [
          "User Settings"
        ],
        "summary": "Get User Profile Image",
        "description": "<p>Returns a profile image of an extension.</p>\n<h4>App Permission</h4>\n<p>ReadAccounts</p>\n<h4>User Permission</h4>\n<p>ReadExtensions</p>\n<h4>Usage Plan Group</h4>\n<p>Medium</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>401</td>\n<td>AGW-401</td>\n<td>Authorization header is not specified</td>\n</tr>\n<tr>\n<td>401</td>\n<td>AGW-402</td>\n<td>Invalid Authorization header</td>\n</tr>\n<tr>\n<td>403</td>\n<td>CMN-109</td>\n<td>Feature Profile Image Streaming is unavailable</td>\n</tr>\n<tr>\n<td>403</td>\n<td>CMN-401</td>\n<td>In order to call this API endpoint, application needs to have [ReadAccounts] permission</td>\n</tr>\n<tr>\n<td>404</td>\n<td>CMN-102</td>\n<td>Resource for parameter [extensionId] is not found</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "operationId": "downloadImage",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*",
          "image/png",
          "image/jpeg",
          "image/gif"
        ],
        "parameters": [
          {
            "name": "extensionId",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "accountId",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "default": {
            "description": "successful operation",
            "schema": {
              "$ref": "#/definitions/Binary"
            }
          }
        },
        "x-api-group": "extension/profile-image",
        "x-throttling-group": "Medium",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-app-permission": "ReadAccounts",
        "x-user-permission": "ReadExtensions",
        "x-access-level": "Basic"
      },
      "post": {
        "tags": [
          "User Settings"
        ],
        "summary": "Upload User Profile Image",
        "description": "<p>Returns the extension profile image.</p>\n<h4>App Permission</h4>\n<p>EditExtensions</p>\n<h4>User Permission</h4>\n<p>EditUserInfo</p>\n<h4>Usage Plan Group</h4>\n<p>Heavy</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>403</td>\n<td>CMN-401</td>\n<td>In order to call this API endpoint, application needs to have [EditExtensions] permission</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "operationId": "uploadImageByPostForm",
        "consumes": [
          "multipart/form-data"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "image",
            "in": "formData",
            "required": true,
            "type": "file"
          },
          {
            "name": "extensionId",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "accountId",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "default": {
            "description": "successful operation",
            "schema": {
              "$ref": "#/definitions/Binary"
            }
          }
        },
        "x-api-group": "extension/profile-image",
        "x-throttling-group": "Heavy",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-app-permission": "EditExtensions",
        "x-user-permission": "EditUserInfo",
        "x-access-level": "Basic"
      },
      "put": {
        "tags": [
          "User Settings"
        ],
        "summary": "Update User Profile Image",
        "description": "<p>Updates profile image of an extension.</p>\n<h4>App Permission</h4>\n<p>EditExtensions</p>\n<h4>User Permission</h4>\n<p>EditUserInfo</p>\n<h4>Usage Plan Group</h4>\n<p>Heavy</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>400</td>\n<td>ACT-331</td>\n<td>Profile image not valid</td>\n</tr>\n<tr>\n<td>400</td>\n<td>ACT-334</td>\n<td>Profile image file is more than 12 megapixel</td>\n</tr>\n<tr>\n<td>400</td>\n<td>CMN-101</td>\n<td>Parameter [image] value is invalid</td>\n</tr>\n<tr>\n<td>403</td>\n<td>ACT-332</td>\n<td>Profile image could not be set for an extension in unassigned status</td>\n</tr>\n<tr>\n<td>403</td>\n<td>CMN-401</td>\n<td>In order to call this API endpoint, application needs to have [EditExtensions] permission</td>\n</tr>\n<tr>\n<td>403</td>\n<td>CMN-408</td>\n<td>In order to call this API endpoint, user needs to have [EditUserInfo] permission for requested resource.</td>\n</tr>\n<tr>\n<td>404</td>\n<td>CMN-102</td>\n<td>Resource for parameter [accountId] is not found</td>\n</tr>\n<tr>\n<td>415</td>\n<td>ACT-330</td>\n<td>Unsupported image content type</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "operationId": "uploadImageByPutForm",
        "consumes": [
          "multipart/form-data"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "image",
            "in": "formData",
            "required": false,
            "type": "file"
          },
          {
            "name": "extensionId",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "accountId",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "default": {
            "description": "successful operation",
            "schema": {
              "$ref": "#/definitions/Binary"
            }
          }
        },
        "x-api-group": "extension/profile-image",
        "x-throttling-group": "Heavy",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-app-permission": "EditExtensions",
        "x-user-permission": "EditUserInfo",
        "x-access-level": "Basic"
      }
    },
    "/restapi/v1.0/account/{accountId}/extension/{extensionId}/profile-image/{scaleSize}": {
      "get": {
        "tags": [
          "User Settings"
        ],
        "summary": "Get Extension Profile Image (Scaled)",
        "description": "<p>Returns profile image of an extension.</p>\n<h4>App Permission</h4>\n<p>ReadAccounts</p>\n<h4>User Permission</h4>\n<p>ReadExtensions</p>\n<h4>Usage Plan Group</h4>\n<p>Light</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>404</td>\n<td>ACT-333</td>\n<td>Profile image is not found for scale size [92]</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "operationId": "loadExtensionProfileImage",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          },
          {
            "name": "extensionId",
            "in": "path",
            "description": "Internal identifier of an extension or tilde (~) to indicate the extension assigned to the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          },
          {
            "name": "scaleSize",
            "in": "path",
            "description": "Dimensions of a profile image which will be returned in response. If this path parameter is not specified in request URI then",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "default": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/Binary"
            }
          }
        },
        "x-api-group": "extension/profile-image",
        "x-throttling-group": "Light",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-app-permission": "ReadAccounts",
        "x-user-permission": "ReadExtensions",
        "x-access-level": "Basic"
      }
    },
    "/restapi/v1.0/account/{accountId}/extension/{extensionId}/conferencing": {
      "get": {
        "tags": [
          "User Settings"
        ],
        "summary": "Get User Conferencing Settings",
        "description": "<p>Returns the information on the Free Conference Calling (FCC) feature for a given extension.</p>\n<h4>App Permission</h4>\n<p>ReadAccounts</p>\n<h4>User Permission</h4>\n<p>OrganizeConference</p>\n<h4>Usage Plan Group</h4>\n<p>Light</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>403</td>\n<td>CMN-112</td>\n<td>Feature [Conferencing] is not available for current extension type</td>\n</tr>\n<tr>\n<td>403</td>\n<td>CMN-408</td>\n<td>In order to call this API endpoint, user needs to have [OrganizeConference] permission for requested resource.</td>\n</tr>\n<tr>\n<td>404</td>\n<td>CMN-102</td>\n<td>Resource for parameter [accountId] is not found</td>\n</tr>\n<tr>\n<td>503</td>\n<td>FCC-103</td>\n<td>Conference group is not set for current account</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "operationId": "loadConferencingInfo",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          },
          {
            "name": "extensionId",
            "in": "path",
            "description": "Internal identifier of an extension or tilde (~) to indicate the extension assigned to the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          },
          {
            "name": "countryId",
            "in": "query",
            "description": "Internal identifier of a country. If not specified, the response is returned for the brand country",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "default": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/GetConferencingInfoResponse"
            }
          }
        },
        "x-api-group": "extension/conferencing",
        "x-throttling-group": "Light",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-app-permission": "ReadAccounts",
        "x-user-permission": "OrganizeConference",
        "x-access-level": "Basic"
      },
      "put": {
        "tags": [
          "User Settings"
        ],
        "summary": "Update User Conferencing Settings",
        "description": "<p>Updates the default conferencing number for the current extension. The number can be selected from conferencing numbers of the current extension. Updates the setting, allowing participants join the conference before host.</p>\n<h4>App Permission</h4>\n<p>EditExtensions</p>\n<h4>User Permission</h4>\n<p>OrganizeConference</p>\n<h4>Usage Plan Group</h4>\n<p>Medium</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>400</td>\n<td>CMN-101</td>\n<td>Parameter [allowJoinBeforeHost, phoneNumbers] value is invalid</td>\n</tr>\n<tr>\n<td>403</td>\n<td>CMN-408</td>\n<td>In order to call this API endpoint, user needs to have [OrganizeConference] permission for requested resource.</td>\n</tr>\n<tr>\n<td>404</td>\n<td>CMN-102</td>\n<td>Resource for parameter [accountId] is not found</td>\n</tr>\n<tr>\n<td>503</td>\n<td>CMN-201</td>\n<td>Service Temporary Unavailable</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "operationId": "updateConferencingInfo",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          },
          {
            "name": "extensionId",
            "in": "path",
            "description": "Internal identifier of an extension or tilde (~) to indicate the extension assigned to the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          },
          {
            "in": "body",
            "name": "body",
            "description": "JSON body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/UpdateConferencingInfoRequest"
            }
          }
        ],
        "responses": {
          "default": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/GetConferencingInfoResponse"
            }
          }
        },
        "x-api-group": "extension/conferencing",
        "x-throttling-group": "Medium",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-user-permission": "OrganizeConference",
        "x-app-permission": "EditExtensions",
        "x-access-level": "Basic"
      }
    },
    "/restapi/v1.0/account/{accountId}": {
      "get": {
        "tags": [
          "Company Settings"
        ],
        "summary": "Get Company Info",
        "description": "<p>Returns basic information about a particular RingCentral customer account.</p>\n<h4>App Permission</h4>\n<p>ReadAccounts</p>\n<h4>User Permission</h4>\n<p>ReadCompanyInfo</p>\n<h4>Usage Plan Group</h4>\n<p>Light</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>401</td>\n<td>CMN-405</td>\n<td>Login to extension required</td>\n</tr>\n<tr>\n<td>401</td>\n<td>OAU-151</td>\n<td>Authorization method not supported</td>\n</tr>\n<tr>\n<td>401</td>\n<td>OAU-213</td>\n<td>Token not found</td>\n</tr>\n<tr>\n<td>403</td>\n<td>CMN-401</td>\n<td>In order to call this API endpoint, application needs to have [ReadAccounts] permission</td>\n</tr>\n<tr>\n<td>404</td>\n<td>CMN-102</td>\n<td>Resource for parameter [accountId] is not found</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "operationId": "loadAccount",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          }
        ],
        "responses": {
          "default": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/GetAccountInfoResponse"
            }
          }
        },
        "x-api-group": "account",
        "x-throttling-group": "Light",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-app-permission": "ReadAccounts",
        "x-user-permission": "ReadCompanyInfo",
        "x-access-level": "Basic"
      }
    },
    "/restapi/v1.0/account/{accountId}/business-address": {
      "get": {
        "tags": [
          "Company Settings"
        ],
        "summary": "Get Company Business Address",
        "description": "<p>Returns business address of a company.</p>\n<h4>App Permission</h4>\n<p>ReadAccounts</p>\n<h4>User Permission</h4>\n<p>ReadCompanyInfo</p>\n<h4>Usage Plan Group</h4>\n<p>Light</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>401</td>\n<td>CMN-405</td>\n<td>Login to extension required</td>\n</tr>\n<tr>\n<td>401</td>\n<td>OAU-151</td>\n<td>Authorization method not supported</td>\n</tr>\n<tr>\n<td>403</td>\n<td>CMN-401</td>\n<td>In order to call this API endpoint, application needs to have [ReadAccounts] permission</td>\n</tr>\n<tr>\n<td>404</td>\n<td>CMN-102</td>\n<td>Resource for parameter [accountId] is not found</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "operationId": "loadAccountBusinessAddress",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          }
        ],
        "responses": {
          "default": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/GetAccountInfoResponse"
            }
          }
        },
        "x-api-group": "account/business-address",
        "x-throttling-group": "Light",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-app-permission": "ReadAccounts",
        "x-user-permission": "ReadCompanyInfo",
        "x-access-level": "Basic"
      }
    },
    "/restapi/v1.0/dictionary/language": {
      "get": {
        "tags": [
          "Regional Settings"
        ],
        "summary": "Get Language List",
        "description": "<p>Returns the information about supported languages.</p>\n<h4>Usage Plan Group</h4>\n<p>Light</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>400</td>\n<td>CMN-101</td>\n<td>Parameter [perPage] value is invalid</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "operationId": "listLanguages",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "default": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/LanguageList"
            }
          }
        },
        "x-api-group": "dictionary/language",
        "x-throttling-group": "Light",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-access-level": "Basic"
      }
    },
    "/restapi/v1.0/dictionary/language/{languageId}": {
      "get": {
        "tags": [
          "Regional Settings"
        ],
        "summary": "Get Language",
        "description": "<p>Returns language by ID.</p>\n<h4>Usage Plan Group</h4>\n<p>Light</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>404</td>\n<td>CMN-102</td>\n<td>Resource for parameter [languageId] is not found</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "operationId": "loadLanguage",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "languageId",
            "in": "path",
            "description": "Internal identifier of a language",
            "required": true,
            "type": "integer"
          }
        ],
        "responses": {
          "default": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/LanguageInfo"
            }
          }
        },
        "x-api-group": "dictionary/language",
        "x-throttling-group": "Light",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-access-level": "Basic"
      }
    },
    "/restapi/v1.0/dictionary/country": {
      "get": {
        "tags": [
          "Regional Settings"
        ],
        "summary": "Get Country List",
        "description": "<p>Returns all the countries available for calling.</p>\n<h4>Usage Plan Group</h4>\n<p>Light</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>400</td>\n<td>CMN-101</td>\n<td>Parameter [perPage] value is invalid</td>\n</tr>\n<tr>\n<td>401</td>\n<td>AGW-401</td>\n<td>Authorization header is not specified</td>\n</tr>\n<tr>\n<td>401</td>\n<td>OAU-129</td>\n<td>Access token corrupted</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "operationId": "listCountries",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "loginAllowed",
            "in": "query",
            "description": "Specifies whether login with the phone numbers of this country is enabled or not",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "signupAllowed",
            "in": "query",
            "description": "Indicates whether signup/billing is allowed for a country. If not specified all countries are returned (according to other filters specified if any)",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "numberSelling",
            "in": "query",
            "description": "Specifies if RingCentral sells phone numbers of this country",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "page",
            "in": "query",
            "description": "Indicates the page number to retrieve. Only positive number values are accepted",
            "default": "1",
            "required": false,
            "type": "integer"
          },
          {
            "name": "perPage",
            "in": "query",
            "description": "Indicates the page size (number of items)",
            "default": "100",
            "required": false,
            "type": "integer"
          },
          {
            "name": "freeSoftphoneLine",
            "in": "query",
            "description": "Specifies if free phone line for softphone is available for a country or not",
            "required": false,
            "type": "boolean"
          }
        ],
        "responses": {
          "default": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/GetCountryListResponse"
            }
          }
        },
        "x-api-group": "dictionary/country",
        "x-throttling-group": "Light",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-access-level": "Basic"
      }
    },
    "/restapi/v1.0/dictionary/country/{countryId}": {
      "get": {
        "tags": [
          "Regional Settings"
        ],
        "summary": "Get Country",
        "description": "<p>Returns the information on a specific country.</p>\n<h4>Usage Plan Group</h4>\n<p>Light</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>400</td>\n<td>CMN-122</td>\n<td>Method is brand specific</td>\n</tr>\n<tr>\n<td>401</td>\n<td>OAU-151</td>\n<td>Authorization method not supported</td>\n</tr>\n<tr>\n<td>404</td>\n<td>CMN-102</td>\n<td>Resource for parameter [countryId] is not found</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "operationId": "loadCountry",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "countryId",
            "in": "path",
            "description": "Internal identifier of a country",
            "required": true,
            "type": "integer"
          }
        ],
        "responses": {
          "default": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/GetCountryInfoDictionaryResponse"
            }
          }
        },
        "x-api-group": "dictionary/country",
        "x-throttling-group": "Light",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-access-level": "Basic"
      }
    },
    "/restapi/v1.0/dictionary/location": {
      "get": {
        "tags": [
          "Regional Settings"
        ],
        "summary": "Get Location List",
        "description": "<p>Returns all available locations for a certain state.</p>\n<h4>Usage Plan Group</h4>\n<p>Light</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>400</td>\n<td>CMN-101</td>\n<td>Parameter [orderBy] value is invalid</td>\n</tr>\n<tr>\n<td>404</td>\n<td>CMN-102</td>\n<td>Resource for parameter [location] is not found</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "operationId": "listLocations",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "orderBy",
            "in": "query",
            "description": "Sorts results by the property specified",
            "default": "City",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi",
            "enum": [
              "Npa",
              "City"
            ]
          },
          {
            "name": "page",
            "in": "query",
            "description": "Indicates the page number to retrieve. Only positive number values are accepted",
            "required": false,
            "default": "1",
            "type": "integer"
          },
          {
            "name": "perPage",
            "in": "query",
            "description": "Indicates the page size (number of items)",
            "default": "100",
            "required": false,
            "type": "integer"
          },
          {
            "name": "stateId",
            "in": "query",
            "description": "Internal identifier of a state",
            "required": false,
            "type": "string"
          },
          {
            "name": "withNxx",
            "in": "query",
            "description": "Specifies if nxx codes are returned",
            "required": false,
            "type": "boolean"
          }
        ],
        "responses": {
          "default": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/GetLocationListResponse"
            }
          }
        },
        "x-api-group": "dictionary/location",
        "x-throttling-group": "Light",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-access-level": "Basic"
      }
    },
    "/restapi/v1.0/dictionary/state": {
      "get": {
        "tags": [
          "Regional Settings"
        ],
        "summary": "Get State List",
        "description": "<p>Returns all the states of a certain country</p>\n<h4>Usage Plan Group</h4>\n<p>Light</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>400</td>\n<td>CMN-101</td>\n<td>Parameter [perPage] value is invalid</td>\n</tr>\n<tr>\n<td>404</td>\n<td>CMN-102</td>\n<td>Resource for parameter [stateId] is not found</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "operationId": "listStates",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "countryId",
            "in": "query",
            "description": "Internal identifier of a country",
            "required": false,
            "type": "integer"
          },
          {
            "name": "page",
            "in": "query",
            "description": "Indicates the page number to retrieve. Only positive number values are accepted",
            "default": "1",
            "required": false,
            "type": "integer"
          },
          {
            "name": "perPage",
            "in": "query",
            "description": "Indicates the page size (number of items)",
            "default": "100",
            "required": false,
            "type": "integer"
          },
          {
            "name": "withPhoneNumbers",
            "in": "query",
            "description": "If 'True', the list of states with phone numbers available for buying is returned",
            "default": false,
            "required": false,
            "type": "boolean"
          }
        ],
        "responses": {
          "default": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/GetStateListResponse"
            }
          }
        },
        "x-api-group": "dictionary/state",
        "x-throttling-group": "Light",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-access-level": "Basic"
      }
    },
    "/restapi/v1.0/dictionary/state/{stateId}": {
      "get": {
        "tags": [
          "Regional Settings"
        ],
        "summary": "Get State",
        "description": "<p>Returns the information on a specific state.</p>\n<h4>Usage Plan Group</h4>\n<p>Light</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>404</td>\n<td>CMN-102</td>\n<td>Resource for parameter [stateId] is not found</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "operationId": "loadState",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "stateId",
            "in": "path",
            "description": "Internal identifier of a state",
            "required": true,
            "type": "integer"
          }
        ],
        "responses": {
          "default": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/GetStateInfoResponse"
            }
          }
        },
        "x-api-group": "dictionary/state",
        "x-throttling-group": "Light",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-access-level": "Basic"
      }
    },
    "/restapi/v1.0/dictionary/timezone": {
      "get": {
        "tags": [
          "Regional Settings"
        ],
        "summary": "Get Timezone List",
        "description": "<p>Returns all available timezones.</p>\n<h4>Usage Plan Group</h4>\n<p>Light</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>400</td>\n<td>CMN-101</td>\n<td>Parameter [perPage] value is invalid</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "operationId": "listTimezones",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "description": "Indicates the page number to retrieve. Only positive number values are accepted",
            "default": "1",
            "required": false,
            "type": "string"
          },
          {
            "name": "perPage",
            "in": "query",
            "description": "Indicates the page size (number of items)",
            "default": "100",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "default": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/GetTimezoneListResponse"
            }
          }
        },
        "x-api-group": "dictionary/timezone",
        "x-throttling-group": "Light",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-access-level": "Basic"
      }
    },
    "/restapi/v1.0/dictionary/timezone/{timezoneId}": {
      "get": {
        "tags": [
          "Regional Settings"
        ],
        "summary": "Get Timezone",
        "description": "<p>Returns the information on a certain timezone.</p>\n<h4>Usage Plan Group</h4>\n<p>Light</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>404</td>\n<td>CMN-102</td>\n<td>Resource for parameter [timezoneId] is not found</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "operationId": "loadTimezone",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "timezoneId",
            "in": "path",
            "description": "Internal identifier of a timezone",
            "required": true,
            "type": "integer"
          },
          {
            "name": "page",
            "in": "query",
            "description": "Indicates the page number to retrieve. Only positive number values are accepted",
            "default": "1",
            "required": false,
            "type": "string"
          },
          {
            "name": "perPage",
            "in": "query",
            "description": "Indicates the page size (number of items)",
            "default": "100",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "default": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/GetTimezoneInfoResponse"
            }
          }
        },
        "x-api-group": "dictionary/timezone",
        "x-throttling-group": "Light",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-access-level": "Basic"
      }
    },
    "/restapi/v1.0/account/{accountId}/phone-number": {
      "get": {
        "tags": [
          "Phone Numbers"
        ],
        "summary": "Get All Company Phone Numbers",
        "description": "<p>Returns the list of phone numbers assigned to RingCentral customer account. Both company-level and extension-level numbers are returned.</p>\n<h4>App Permission</h4>\n<p>ReadAccounts</p>\n<h4>User Permission</h4>\n<p>ReadCompanyPhoneNumbers</p>\n<h4>Usage Plan Group</h4>\n<p>Heavy</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>400</td>\n<td>CMN-101</td>\n<td>Parameter [perPage] value is invalid</td>\n</tr>\n<tr>\n<td>401</td>\n<td>CMN-405</td>\n<td>Login to extension required</td>\n</tr>\n<tr>\n<td>401</td>\n<td>OAU-151</td>\n<td>Authorization method not supported</td>\n</tr>\n<tr>\n<td>403</td>\n<td>CMN-401</td>\n<td>In order to call this API endpoint, application needs to have [ReadAccounts] permission</td>\n</tr>\n<tr>\n<td>404</td>\n<td>CMN-102</td>\n<td>Resource for parameter [accountId] is not found</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "operationId": "listAccountPhoneNumbers",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          },
          {
            "name": "page",
            "in": "query",
            "description": "Indicates the page number to retrieve. Only positive number values are accepted",
            "default": "1",
            "required": false,
            "type": "integer"
          },
          {
            "name": "perPage",
            "in": "query",
            "description": "Indicates the page size (number of items)",
            "default": "100",
            "required": false,
            "type": "integer"
          },
          {
            "name": "usageType",
            "in": "query",
            "description": "Usage type of a phone number",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi",
            "enum": [
              "MainCompanyNumber",
              "AdditionalCompanyNumber",
              "CompanyNumber",
              "DirectNumber",
              "CompanyFaxNumber",
              "ForwardedNumber",
              "ForwardedCompanyNumber",
              "ContactCenterNumber"
            ]
          }
        ],
        "responses": {
          "default": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/AccountPhoneNumbers"
            }
          }
        },
        "x-api-group": "account/phone-number",
        "x-throttling-group": "Heavy",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-app-permission": "ReadAccounts",
        "x-user-permission": "ReadCompanyPhoneNumbers",
        "x-access-level": "Basic"
      }
    },
    "/restapi/v1.0/account/{accountId}/phone-number/{phoneNumberId}": {
      "get": {
        "tags": [
          "Phone Numbers"
        ],
        "summary": "Get Phone Number",
        "description": "<p>Returns the phone number(s) belonging to a certain account or extension by phoneNumberId(s). Batch request is supported.</p>\n<h4>App Permission</h4>\n<p>ReadAccounts</p>\n<h4>User Permission</h4>\n<p>ReadCompanyPhoneNumbers</p>\n<h4>Usage Plan Group</h4>\n<p>Light</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>403</td>\n<td>CMN-401</td>\n<td>In order to call this API endpoint, application needs to have [ReadAccounts] permission</td>\n</tr>\n<tr>\n<td>404</td>\n<td>CMN-102</td>\n<td>Resource for parameter [accountId] is not found</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "operationId": "loadAccountPhoneNumber",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          },
          {
            "name": "phoneNumberId",
            "in": "path",
            "description": "Internal identifier of a phone number",
            "required": true,
            "type": "integer"
          }
        ],
        "responses": {
          "default": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/PhoneNumberInfo"
            }
          }
        },
        "x-api-group": "account/phone-number",
        "x-throttling-group": "Light",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-app-permission": "ReadAccounts",
        "x-user-permission": "ReadCompanyPhoneNumbers",
        "x-access-level": "Basic"
      }
    },
    "/restapi/v1.0/account/{accountId}/extension": {
      "get": {
        "tags": [
          "Account Provisioning"
        ],
        "summary": "Get Extensions",
        "operationId": "listExtensions",
        "description": "<p>Returns the list of extensions created for a particular account. All types of extensions are included in this list.</p>\n<h4>App Permission</h4>\n<p>ReadAccounts</p>\n<h4>User Permission</h4>\n<p>ReadExtensions</p>\n<h4>Usage Plan Group</h4>\n<p>Medium</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>400</td>\n<td>CMN-101</td>\n<td>Parameter [status] value is invalid</td>\n</tr>\n<tr>\n<td>401</td>\n<td>CMN-405</td>\n<td>Login to extension required</td>\n</tr>\n<tr>\n<td>401</td>\n<td>OAU-151</td>\n<td>Authorization method not supported</td>\n</tr>\n<tr>\n<td>403</td>\n<td>CMN-401</td>\n<td>In order to call this API endpoint, application needs to have [ReadAccounts] permission</td>\n</tr>\n<tr>\n<td>404</td>\n<td>CMN-102</td>\n<td>Resource for parameter [accountId] is not found</td>\n</tr>\n<tr>\n<td>429</td>\n<td>CMN-301</td>\n<td>Request rate exceeded</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "accountId",
            "type": "string",
            "in": "path",
            "description": "Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session",
            "required": true,
            "default": "~"
          },
          {
            "name": "page",
            "type": "integer",
            "format": "int64",
            "in": "query",
            "description": "Indicates the page number to retrieve. Only positive number values are allowed",
            "default": "1",
            "required": false
          },
          {
            "name": "perPage",
            "type": "integer",
            "format": "int64",
            "in": "query",
            "description": "Indicates the page size (number of items)",
            "default": "100",
            "required": false
          },
          {
            "name": "status",
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi",
            "allowEmptyValue": true,
            "enum": [
              "Enabled",
              "Disabled",
              "NotActivated",
              "Unassigned"
            ],
            "in": "query",
            "description": "Extension current state. Multiple values are supported. If 'Unassigned' is specified, then extensions without extensionNumber are returned. If not specified, then all extensions are returned.",
            "required": false
          },
          {
            "name": "type",
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi",
            "allowEmptyValue": true,
            "enum": [
              "User",
              "FaxUser",
              "VirtualUser",
              "DigitalUser",
              "Department",
              "Announcement",
              "Voicemail",
              "SharedLinesGroup",
              "PagingOnly",
              "IvrMenu",
              "ApplicationExtension",
              "ParkLocation",
              "Limited",
              "Bot"
            ],
            "in": "query",
            "description": "Extension type. Multiple values are supported",
            "required": false
          }
        ],
        "responses": {
          "default": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/GetExtensionListResponse"
            }
          }
        },
        "x-api-group": "extension",
        "x-throttling-group": "Medium",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-app-permission": "ReadAccounts",
        "x-user-permission": "ReadExtensions",
        "x-access-level": "Basic",
        "x-notifications": [
          {
            "$ref": "#/definitions/ExtensionListEvent"
          }
        ]
      }
    },
    "/restapi/v1.0/account/{accountId}/department/{departmentId}/members": {
      "get": {
        "deprecated": true,
        "tags": [
          "Account Provisioning"
        ],
        "summary": "Get Department Member List",
        "description": "<p> [Deprecated] Viewing user account info (including name, business name, address and phone number/account number)</p>\n<h4>App Permission</h4>\n<p>ReadAccounts</p>\n<h4>User Permission</h4>\n<p>ReadExtensions</p>\n<h4>Usage Plan Group</h4>\n<p>Light</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>400</td>\n<td>CMN-101</td>\n<td>Parameter [page] value is invalid</td>\n</tr>\n<tr>\n<td>401</td>\n<td>CMN-405</td>\n<td>Login to extension required</td>\n</tr>\n<tr>\n<td>401</td>\n<td>OAU-151</td>\n<td>Authorization method not supported</td>\n</tr>\n<tr>\n<td>403</td>\n<td>CMN-401</td>\n<td>In order to call this API endpoint, application needs to have [ReadAccounts] permission</td>\n</tr>\n<tr>\n<td>404</td>\n<td>CMN-102</td>\n<td>Resource for parameter [departmentId] is not found</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "operationId": "listDepartmentMembers",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session",
            "required": true,
            "type": "string",
            "default": "~"
          },
          {
            "name": "departmentId",
            "in": "path",
            "description": "Internal identifier of a Department extension (same as extensionId but only the ID of a department extension is valid)",
            "required": true,
            "type": "integer"
          },
          {
            "name": "page",
            "in": "query",
            "description": "Indicates the page number to retrieve. Only positive number values are accepted",
            "default": "1",
            "required": false,
            "type": "integer"
          },
          {
            "name": "perPage",
            "in": "query",
            "description": "Indicates the page size (number of items)",
            "default": "100",
            "required": false,
            "type": "integer"
          }
        ],
        "responses": {
          "default": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/DepartmentMemberList"
            }
          }
        },
        "x-api-group": "account/department/members",
        "x-throttling-group": "Light",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-app-permission": "ReadAccounts",
        "x-user-permission": "ReadExtensions",
        "x-access-level": "Basic"
      }
    },
    "/restapi/v1.0/account/{accountId}/department/bulk-assign": {
      "post": {
        "deprecated": true,
        "tags": [
          "Account Provisioning"
        ],
        "summary": "Edit Call Queue Members",
        "description": "<p> [Deprecated] Adds and/or removes multiple call queue members</p>\n<h4>App Permission</h4>\n<p>EditAccounts</p>\n<h4>User Permission</h4>\n<p>UserGroups</p>\n<h4>Usage Plan Group</h4>\n<p>Heavy</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>400</td>\n<td>EXT-401</td>\n<td>Extension ID should be present only in one section</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "operationId": "bulkAssignDepartments",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "required": false,
            "schema": {
              "$ref": "#/definitions/DepartmentBulkAssignResource"
            }
          },
          {
            "name": "accountId",
            "in": "path",
            "required": true,
            "type": "string",
            "default": "~"
          }
        ],
        "responses": {
          "default": {
            "description": "successful operation"
          }
        },
        "x-api-group": "account/department",
        "x-throttling-group": "Heavy",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-app-permission": "EditAccounts",
        "x-user-permission": "UserGroups",
        "x-access-level": "Basic"
      }
    },
    "/restapi/v1.0/account/{accountId}/paging-only-groups/{pagingOnlyGroupId}/users": {
      "get": {
        "tags": [
          "Account Provisioning"
        ],
        "summary": "Get Paging Only Group Users",
        "operationId": "listPagingGroupUsers",
        "description": "<p>Returns the list of users allowed to page this group.</p>\n<h4>App Permission</h4>\n<p>ReadAccounts</p>\n<h4>User Permission</h4>\n<p>ReadUserInfo</p>\n<h4>Usage Plan Group</h4>\n<p>Light</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>403</td>\n<td>CMN-401</td>\n<td>In order to call this API endpoint, application needs to have [ReadAccounts] permission</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "pagingOnlyGroupId",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "page",
            "in": "query",
            "description": "Indicates the page number to retrieve. Only positive number values are accepted",
            "default": "1",
            "required": false,
            "type": "integer"
          },
          {
            "name": "perPage",
            "in": "query",
            "description": "Indicates the page size (number of items)",
            "default": "100",
            "required": false,
            "type": "integer"
          }
        ],
        "responses": {
          "default": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/PagingOnlyGroupUsers"
            }
          }
        },
        "x-api-group": "account/paging-only-groups/users",
        "x-throttling-group": "Light",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-app-permission": "ReadAccounts",
        "x-user-permission": "ReadUserInfo",
        "x-access-level": "Basic"
      }
    },
    "/restapi/v1.0/account/{accountId}/paging-only-groups/{pagingOnlyGroupId}/devices": {
      "get": {
        "tags": [
          "Account Provisioning"
        ],
        "summary": "Get Paging Only Group Devices",
        "operationId": "listPagingGroupDevices",
        "description": "<p>Returns the list of paging devices assigned to this group.</p>\n<h4>App Permission</h4>\n<p>ReadAccounts</p>\n<h4>User Permission</h4>\n<p>ReadCompanyDevices</p>\n<h4>Usage Plan Group</h4>\n<p>Light</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>403</td>\n<td>CMN-401</td>\n<td>In order to call this API endpoint, application needs to have [ReadAccounts] permission</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "pagingOnlyGroupId",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "page",
            "in": "query",
            "description": "Indicates the page number to retrieve. Only positive number values are accepted",
            "default": "1",
            "required": false,
            "type": "integer"
          },
          {
            "name": "perPage",
            "in": "query",
            "description": "Indicates the page size (number of items)",
            "default": "100",
            "required": false,
            "type": "integer"
          }
        ],
        "responses": {
          "default": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/PagingOnlyGroupDevices"
            }
          }
        },
        "x-api-group": "account/paging-only-groups/devices",
        "x-throttling-group": "Light",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-app-permission": "ReadAccounts",
        "x-user-permission": "ReadCompanyDevices",
        "x-access-level": "Basic"
      }
    },
    "/restapi/v1.0/account/{accountId}/paging-only-groups/{pagingOnlyGroupId}/bulk-assign": {
      "post": {
        "tags": [
          "Account Provisioning"
        ],
        "summary": "Edit Paging Group Users and Devices",
        "operationId": "bulkAssignPagingGroup",
        "description": "<p>Adds and/or removes paging group users and devices.</p>\n<h4>App Permission</h4>\n<p>EditAccounts</p>\n<h4>User Permission</h4>\n<p>EditUserInfo</p>\n<h4>Usage Plan Group</h4>\n<p>Heavy</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>400</td>\n<td>CMN-101</td>\n<td>Parameter [addedDeviceIds] value is invalid</td>\n</tr>\n<tr>\n<td>403</td>\n<td>CMN-401</td>\n<td>In order to call this API endpoint, application needs to have [EditAccounts] permission</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "pagingOnlyGroupId",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "in": "body",
            "name": "body",
            "required": false,
            "schema": {
              "$ref": "#/definitions/EditPagingGroupRequest"
            }
          }
        ],
        "responses": {
          "default": {
            "description": "Success"
          }
        },
        "x-api-group": "account/paging-only-groups/bulk-assign",
        "x-throttling-group": "Heavy",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-app-permission": "EditAccounts",
        "x-user-permission": "EditUserInfo",
        "x-access-level": "Basic"
      }
    },
    "/restapi/v1.0/account/{accountId}/call-queues": {
      "get": {
        "tags": [
          "Account Provisioning"
        ],
        "summary": "Get Call Queues",
        "operationId": "listCallQueues",
        "description": "<p>Returns call queue group list</p>\n<h4>App Permission</h4>\n<p>ReadAccounts</p>\n<h4>User Permission</h4>\n<p>ReadExtensions</p>\n<h4>Usage Plan Group</h4>\n<p>Medium</p>",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "page",
            "in": "query",
            "description": "Indicates the page number to retrieve. Only positive number values are accepted",
            "default": "1",
            "required": false,
            "type": "integer"
          },
          {
            "name": "perPage",
            "in": "query",
            "description": "Indicates the page size (number of items)",
            "default": "100",
            "required": false,
            "type": "integer"
          },
          {
            "name": "memberExtensionId",
            "in": "query",
            "description": "Internal identifier of an extension that is a member of every group within the result",
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/CallQueues"
            }
          }
        },
        "x-api-group": "account/call-queues",
        "x-app-permission": "ReadAccounts",
        "x-user-permission": "ReadExtensions",
        "x-throttling-group": "Medium",
        "x-access-level": "Basic"
      }
    },
    "/restapi/v1.0/account/{accountId}/call-queues/{groupId}/members": {
      "get": {
        "tags": [
          "Account Provisioning"
        ],
        "operationId": "listCallQueueMembers",
        "summary": "Get Call Queue Members",
        "description": "<p>Returns call queue group members.</p>\n<h4>App Permission</h4>\n<p>ReadAccounts</p>\n<h4>User Permission</h4>\n<p>ReadExtensions</p>\n<h4>Usage Plan Group</h4>\n<p>Light</p>",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "groupId",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "page",
            "in": "query",
            "description": "Indicates the page number to retrieve. Only positive number values are allowed",
            "default": "1",
            "required": false,
            "type": "integer"
          },
          {
            "name": "perPage",
            "in": "query",
            "description": "Indicates the page size (number of items)",
            "default": "100",
            "required": false,
            "type": "integer"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/CallQueueMembers"
            }
          }
        },
        "x-api-group": "account/call-queues/members",
        "x-app-permission": "ReadAccounts",
        "x-user-permission": "ReadExtensions",
        "x-throttling-group": "Light",
        "x-access-level": "Basic"
      }
    },
    "/restapi/v1.0/account/{accountId}/call-queues/{groupId}/bulk-assign": {
      "post": {
        "tags": [
          "Account Provisioning"
        ],
        "operationId": "updateCallQueueGroup",
        "summary": "Edit Call Queue Group",
        "description": "<p>Updates call queue group.</p>\n<h4>App Permission</h4>\n<p>EditExtensions</p>\n<h4>User Permission</h4>\n<p>Groups</p>\n<h4>Usage Plan Group</h4>\n<p>Heavy</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>400</td>\n<td>EXT-405</td>\n<td>Extension of type [ParkLocation] could not be a member of [department}]</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "groupId",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "body",
            "in": "body",
            "description": "Changes for the given group",
            "required": true,
            "schema": {
              "$ref": "#/definitions/CallQueueBulkAssignResource"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Success"
          },
          "400": {
            "description": "Extension of type [${extensionType}] cannot be included into call queue"
          }
        },
        "x-api-group": "account/call-queues/call-queues",
        "x-app-permission": "EditExtensions",
        "x-user-permission": "Groups",
        "x-throttling-group": "Heavy",
        "x-access-level": "Basic"
      }
    },
    "/restapi/v1.0/account/{accountId}/call-monitoring-groups": {
      "get": {
        "tags": [
          "Account Provisioning"
        ],
        "summary": "Get Call Monitoring Groups",
        "operationId": "listCallMonitoringGroups",
        "description": "<p>Returns call monitoring groups that can be filtered by some extension.</p>\n<h4>App Permission</h4>\n<p>ReadAccounts</p>\n<h4>User Permission</h4>\n<p>ReadExtensions</p>\n<h4>Usage Plan Group</h4>\n<p>Medium</p>",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "page",
            "in": "query",
            "description": "Indicates the page number to retrieve. Only positive number values are allowed",
            "default": "1",
            "required": false,
            "type": "integer"
          },
          {
            "name": "perPage",
            "in": "query",
            "description": "Indicates the page size (number of items)",
            "required": false,
            "default": "100",
            "type": "integer"
          },
          {
            "name": "memberExtensionId",
            "in": "query",
            "description": "Internal identifier of an extension that is a member of every group within the result",
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/CallMonitoringGroups"
            }
          }
        },
        "x-api-group": "account/call-monitoring-groups",
        "x-app-permission": "ReadAccounts",
        "x-user-permission": "ReadExtensions",
        "x-throttling-group": "Medium",
        "x-access-level": "Basic"
      }
    },
    "/restapi/v1.0/account/{accountId}/call-monitoring-groups/{groupId}/members": {
      "get": {
        "tags": [
          "Account Provisioning"
        ],
        "summary": "Get Call Monitoring Group Members",
        "operationId": "listCallMonitoringGroupMembers",
        "description": "<p>Returns call monitoring group members.</p>\n<h4>App Permission</h4>\n<p>ReadAccounts</p>\n<h4>User Permission</h4>\n<p>ReadExtensions</p>\n<h4>Usage Plan Group</h4>\n<p>Medium</p>",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "groupId",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "page",
            "in": "query",
            "description": "Indicates the page number to retrieve. Only positive number values are allowed",
            "default": "1",
            "required": false,
            "type": "integer"
          },
          {
            "name": "perPage",
            "in": "query",
            "description": "Indicates the page size (number of items)",
            "default": "100",
            "required": false,
            "type": "integer"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/CallMonitoringGroupMemberList"
            }
          }
        },
        "x-api-group": "account/call-monitoring-groups/members",
        "x-app-permission": "ReadAccounts",
        "x-user-permission": "ReadExtensions",
        "x-throttling-group": "Medium",
        "x-access-level": "Basic"
      }
    },
    "/restapi/v1.0/number-parser/parse": {
      "post": {
        "tags": [
          "Account Provisioning"
        ],
        "summary": "Parse Phone Number [Beta]",
        "description": "<p>Returns one or more parsed and/or formatted phone numbers that are passed as a string.</p>\n<h4>Usage Plan Group</h4>\n<p>Light</p>\n<h4>Error Codes</h4>\n<table>\n <thead>\n  <tr>\n   <th>HTTP Code</th>\n   <th>Error Code</th>\n   <th>Error Message</th>\n  </tr> </thead>\n <tbody>\n<tr>\n<td>400</td>\n<td>CMN-101</td>\n<td>Parameter [nationalAsPriority] value is invalid</td>\n</tr>\n\n </tbody>\n</table>\t\t\t\t\n\t\t\t\t",
        "operationId": "parsePhoneNumber",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "homeCountry",
            "in": "query",
            "description": "Internal identifier of a home country. The default value is ISO code (ISO 3166) of the user's home country or brand country, if the user is undefined",
            "required": false,
            "type": "string"
          },
          {
            "name": "nationalAsPriority",
            "in": "query",
            "description": "The default value is 'False'. If 'True', the numbers that are closer to the home country are given higher priority",
            "required": false,
            "type": "boolean"
          },
          {
            "in": "body",
            "name": "body",
            "description": "JSON body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ParsePhoneNumberRequest"
            }
          }
        ],
        "responses": {
          "default": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/ParsePhoneNumberResponse"
            }
          }
        },
        "x-api-group": "number-parser/parse",
        "x-throttling-group": "Light",
        "x-metered-api": true,
        "x-metering-group": "System",
        "x-access-level": "Basic"
      }
    },
    "/scim/v2/ServiceProviderConfig": {
      "get": {
        "tags": [
          "SCIM"
        ],
        "summary": "get service provider config",
        "operationId": "getServiceProviderConfig",
        "responses": {
          "200": {
            "description": "successful operation",
            "schema": {
              "$ref": "#/definitions/ServiceProviderConfig"
            }
          }
        },
        "x-api-group": "scim/ServiceProviderConfig",
        "x-auth-required": false,
        "x-throttling-group": "NoThrottling",
        "x-access-level": "Basic"
      }
    },
    "/scim/v2/Users": {
      "get": {
        "tags": [
          "SCIM"
        ],
        "summary": "search or list users",
        "operationId": "searchViaGet",
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "description": "only support 'userName' or 'email' filter expressions for now",
            "required": false,
            "type": "string"
          },
          {
            "name": "startIndex",
            "in": "query",
            "description": "start index (1-based)",
            "required": false,
            "type": "integer",
            "default": "1",
            "format": "int32"
          },
          {
            "name": "count",
            "in": "query",
            "description": "page size",
            "required": false,
            "type": "integer",
            "default": "100",
            "format": "int32"
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "schema": {
              "$ref": "#/definitions/UserSearchResponse"
            }
          },
          "400": {
            "description": "bad request",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "401": {
            "description": "authorization failure",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "403": {
            "description": "permissions denied",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "429": {
            "description": "too many requests",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "internal server error",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "x-api-group": "scim/Users",
        "x-app-permission": "ReadAccounts",
        "x-throttling-group": "Light",
        "x-access-level": "Basic"
      },
      "post": {
        "tags": [
          "SCIM"
        ],
        "summary": "create a user",
        "operationId": "createUser",
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "description": "a new user without 'id'",
            "required": false,
            "schema": {
              "$ref": "#/definitions/User"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "successfully created user",
            "schema": {
              "$ref": "#/definitions/UserResponse"
            }
          },
          "400": {
            "description": "bad request",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "401": {
            "description": "authorization failure",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "403": {
            "description": "permissions denied",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "404": {
            "description": "not found",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "409": {
            "description": "duplicate email",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "429": {
            "description": "too many requests",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "internal server error",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "x-api-group": "scim/Users",
        "x-app-permission": "EditAccounts",
        "x-throttling-group": "Heavy",
        "x-request-max-body-size": "10m",
        "x-access-level": "Basic"
      }
    },
    "/scim/v2/Users/.search": {
      "post": {
        "tags": [
          "SCIM"
        ],
        "summary": "search or list users",
        "operationId": "searchViaPost",
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "description": "search parameters",
            "required": false,
            "schema": {
              "$ref": "#/definitions/SearchRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "schema": {
              "$ref": "#/definitions/UserSearchResponse"
            }
          },
          "400": {
            "description": "bad request",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "401": {
            "description": "authorization failure",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "403": {
            "description": "permissions denied",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "429": {
            "description": "too many requests",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "internal server error",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "x-api-group": "scim/Users",
        "x-app-permission": "ReadAccounts",
        "x-throttling-group": "Light",
        "x-access-level": "Basic"
      }
    },
    "/scim/v2/Users/{id}": {
      "get": {
        "tags": [
          "SCIM"
        ],
        "summary": "get a user by id",
        "operationId": "getUserById",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "user id",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "schema": {
              "$ref": "#/definitions/UserResponse"
            }
          },
          "401": {
            "description": "authorization failure",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "403": {
            "description": "permissions denied",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "404": {
            "description": "not found",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "429": {
            "description": "too many requests",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "internal server error",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "x-api-group": "scim/Users",
        "x-app-permission": "ReadAccounts",
        "x-throttling-group": "Light",
        "x-access-level": "Basic"
      },
      "put": {
        "tags": [
          "SCIM"
        ],
        "summary": "fully update/replace a user",
        "operationId": "replaceUser",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "user id",
            "required": true,
            "type": "string"
          },
          {
            "in": "body",
            "name": "body",
            "description": "an existing user",
            "required": false,
            "schema": {
              "$ref": "#/definitions/User"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "successfully fully updated a user",
            "schema": {
              "$ref": "#/definitions/UserResponse"
            }
          },
          "400": {
            "description": "bad request",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "401": {
            "description": "authorization failure",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "403": {
            "description": "permissions denied",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "404": {
            "description": "not found",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "409": {
            "description": "duplicate email",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "429": {
            "description": "too many requests",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "internal server error",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "x-api-group": "scim/Users",
        "x-app-permission": "EditAccounts",
        "x-throttling-group": "Heavy",
        "x-request-max-body-size": "10m",
        "x-access-level": "Basic"
      },
      "delete": {
        "tags": [
          "SCIM"
        ],
        "summary": "delete a user",
        "operationId": "deleteUser",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "user id",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "204": {
            "description": "successfully deleted"
          },
          "401": {
            "description": "authorization failure",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "403": {
            "description": "permissions denied",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "404": {
            "description": "not found",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "429": {
            "description": "too many requests",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "internal server error",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "x-api-group": "scim/Users",
        "x-app-permission": "EditAccounts",
        "x-throttling-group": "Heavy",
        "x-access-level": "Basic"
      }
    }
  },
  "definitions": {
    "GetVersionsResponse": {
      "properties": {
        "uri": {
          "type": "string",
          "description": "Canonical URI of the API version"
        },
        "apiVersions": {
          "type": "array",
          "description": "Full API version information: uri, number, release date",
          "items": {
            "$ref": "#/definitions/VersionInfo"
          }
        },
        "serverVersion": {
          "type": "string",
          "description": "Server version"
        },
        "serverRevision": {
          "type": "string",
          "description": "Server revision"
        }
      },
      "example": {
        "application/json": {
          "uri": "https://platform.ringcentral.com/restapi",
          "apiVersions": [
            {
              "uri": "https://platform.ringcentral.com/restapi/v1.0",
              "versionString": "1.0.34",
              "releaseDate": "2018-02-09T00:00:00.000Z",
              "uriString": "v1.0"
            }
          ],
          "serverVersion": "10.0.4.7854",
          "serverRevision": "32f2a96b769c"
        }
      }
    },
    "GetVersionResponse": {
      "properties": {
        "uri": {
          "type": "string",
          "description": "Canonical URI of the version info resource"
        },
        "versionString": {
          "type": "string",
          "description": "Version of the RingCentral REST API"
        },
        "releaseDate": {
          "type": "string",
          "description": "Release date of this version"
        },
        "uriString": {
          "type": "string",
          "description": "URI part determining the current version"
        }
      },
      "example": {
        "application/json": {
          "uri": "https://platform.ringcentral.com/restapi/v1.0",
          "versionString": "1.0.34",
          "releaseDate": "2018-02-09T00:00:00.000Z",
          "uriString": "v1.0"
        }
      }
    },
    "VersionInfo": {
      "properties": {
        "uri": {
          "type": "string",
          "description": "Canonical URI of API versions"
        },
        "versionString": {
          "type": "string",
          "description": "Version of the RingCentral REST API"
        },
        "releaseDate": {
          "type": "string",
          "description": "Release date of this version"
        },
        "uriString": {
          "type": "string",
          "description": "URI part determining the current version"
        }
      }
    },
    "AccountCallLogResponse": {
      "type": "object",
      "required": [
        "navigation",
        "paging",
        "records"
      ],
      "properties": {
        "records": {
          "type": "array",
          "description": "List of call log records",
          "items": {
            "$ref": "#/definitions/CallLogRecord"
          }
        },
        "navigation": {
          "$ref": "#/definitions/NavigationInfo",
          "description": "Information on navigation"
        },
        "paging": {
          "$ref": "#/definitions/PagingInfo",
          "description": "Information on paging"
        }
      },
      "example": {
        "application/json": {
          "uri": "https://platform.ringcentral.com/account/404350835008/call-log?view=Detailed&showBlocked=true&dateFrom=2016-11-24T12:07:53.175Z&dateTo=2017-11-24T12:07:53.175Z&page=1&perPage=2",
          "records": [
            {
              "uri": "https://platform.ringcentral.com/account/404350835008/call-log/IaDUlfiF_23aKtI?view=Detailed",
              "id": "IaDUlfiF_23aKtI",
              "sessionId": "406540522008",
              "startTime": "2017-04-06T11:19:54.000Z",
              "duration": 4,
              "type": "Voice",
              "direction": "Inbound",
              "action": "Phone Call",
              "result": "Accepted",
              "to": {
                "phoneNumber": "+18882011073"
              },
              "from": {
                "phoneNumber": "+16504445567",
                "location": "Palo Alto, CA"
              },
              "transport": "PSTN",
              "lastModifiedTime": "2017-04-06T11:19:57.001Z",
              "billing": {
                "costIncluded": 1.56,
                "costPurchased": 1.122
              },
              "legs": [
                {
                  "startTime": "2017-04-06T11:19:54.000Z",
                  "duration": 4,
                  "type": "Voice",
                  "direction": "Inbound",
                  "action": "Phone Call",
                  "result": "Accepted",
                  "to": {
                    "phoneNumber": "+18882011073"
                  },
                  "from": {
                    "phoneNumber": "+16504445567",
                    "location": "Palo Alto, CA"
                  },
                  "transport": "PSTN",
                  "billing": {
                    "costIncluded": 0.3,
                    "costPurchased": 0
                  },
                  "legType": "Accept"
                },
                {
                  "startTime": "2017-04-06T11:19:54.000Z",
                  "duration": 4,
                  "type": "Voice",
                  "direction": "Inbound",
                  "action": "Phone Call",
                  "result": "Accepted",
                  "to": {
                    "phoneNumber": "+18882011073",
                    "name": "John Smith"
                  },
                  "from": {
                    "phoneNumber": "+16504445567",
                    "name": "Jane Smith",
                    "location": "Palo Alto, CA"
                  },
                  "transport": "PSTN",
                  "billing": {
                    "costIncluded": 1.26,
                    "costPurchased": 1.222
                  },
                  "legType": "Accept",
                  "extension": {
                    "uri": "https://platform.ringcentral.com/restapi/v1.0/account/404350835008/extension/404350835008",
                    "id": 404350835008
                  }
                }
              ]
            },
            {
              "uri": "https://platform.ringcentral.com/account/404350835008/call-log/IaDUlJVAhxBQKtI?view=Detailed",
              "id": "IaDUlJVAhxBQKtI",
              "sessionId": "406540521008",
              "startTime": "2017-04-06T11:19:54.000Z",
              "duration": 5,
              "type": "Voice",
              "direction": "Outbound",
              "action": "VoIP Call",
              "result": "Call connected",
              "to": {
                "phoneNumber": "+16504445567",
                "location": "Palo Alto, CA"
              },
              "from": {
                "phoneNumber": "+18552011120",
                "name": "John Doe"
              },
              "transport": "VoIP",
              "lastModifiedTime": "2017-04-06T11:19:57.001Z",
              "billing": {
                "costIncluded": 0.34,
                "costPurchased": 0.025
              },
              "legs": [
                {
                  "startTime": "2017-04-06T11:19:54.000Z",
                  "duration": 5,
                  "type": "Voice",
                  "direction": "Outbound",
                  "action": "VoIP Call",
                  "result": "Call connected",
                  "to": {
                    "phoneNumber": "+16504445567",
                    "location": "Palo Alto, CA"
                  },
                  "from": {
                    "phoneNumber": "+18552011120",
                    "name": "John Doe"
                  },
                  "transport": "VoIP",
                  "billing": {
                    "costIncluded": 0.34,
                    "costPurchased": 0.025
                  },
                  "legType": "SipToPstnMetered",
                  "extension": {
                    "uri": "https://platform.ringcentral.com/account/404350835008/extension/404350837008",
                    "id": 404350837008
                  }
                }
              ]
            }
          ],
          "paging": {
            "page": 1,
            "perPage": 2,
            "pageStart": 0,
            "pageEnd": 1
          },
          "navigation": {
            "nextPage": {
              "uri": "https://platform.ringcentral.com/account/404350835008/call-log?view=Detailed&showBlocked=true&dateFrom=2016-11-24T12:07:53.175Z&dateTo=2017-11-24T12:07:53.175Z&page=2&perPage=2"
            },
            "firstPage": {
              "uri": "https://platform.ringcentral.com/account/404350835008/call-log?view=Detailed&showBlocked=true&dateFrom=2016-11-24T12:07:53.175Z&dateTo=2017-11-24T12:07:53.175Z&page=1&perPage=2"
            }
          }
        }
      }
    },
    "GetCallRecordingResponse": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Internal identifier of a call recording"
        },
        "contentUri": {
          "type": "string",
          "description": "Link to a call recording binary content"
        },
        "contentType": {
          "type": "string",
          "description": "Call recording file format. Supported format is audio/x-wav"
        },
        "duration": {
          "type": "integer",
          "description": "Recorded call duration"
        }
      }
    },
    "ExtensionCallLogResponse": {
      "type": "object",
      "required": [
        "navigation",
        "paging",
        "records"
      ],
      "properties": {
        "records": {
          "type": "array",
          "description": "List of call log records",
          "items": {
            "$ref": "#/definitions/CallLogRecord"
          }
        },
        "navigation": {
          "$ref": "#/definitions/NavigationInfo",
          "description": "Information on navigation"
        },
        "paging": {
          "$ref": "#/definitions/PagingInfo",
          "description": "Information on paging"
        }
      },
      "example": {
        "application/json": {
          "uri": "https://platform.ringcentral.com/restapi/v1.0/account/1423308004/extension/1423308004/call-log?view=Detailed&transport=PSTN&showBlocked=true&withRecording=false&dateFrom=2017-12-21T11:31:00.000Z&page=1&perPage=100",
          "records": [
            {
              "uri": "https://platform.ringcentral.com/restapi/v1.0/account/1423308004/extension/1423308004/call-log/X371kImigkjNQA?view=Detailed",
              "id": "X371kImigkjNQA",
              "sessionId": "4509668004",
              "startTime": "2017-12-22T10:29:31.000Z",
              "duration": 4,
              "type": "Voice",
              "direction": "Inbound",
              "action": "Phone Call",
              "result": "Accepted",
              "to": {
                "phoneNumber": "+18552007229",
                "name": "Jane Smith"
              },
              "from": {
                "phoneNumber": "+16504445567",
                "name": "John Smith",
                "location": "Palo Alto, CA"
              },
              "transport": "PSTN",
              "lastModifiedTime": "2017-12-22T10:29:34.001Z",
              "billing": {
                "costIncluded": 0,
                "costPurchased": 0
              },
              "legs": [
                {
                  "startTime": "2017-12-22T10:29:31.000Z",
                  "duration": 4,
                  "type": "Voice",
                  "direction": "Inbound",
                  "action": "Phone Call",
                  "result": "Accepted",
                  "to": {
                    "phoneNumber": "+18552007229",
                    "name": "Jane Smith"
                  },
                  "from": {
                    "phoneNumber": "+16504445567",
                    "name": "John Smith",
                    "location": "Palo Alto, CA"
                  },
                  "transport": "PSTN",
                  "legType": "Accept",
                  "extension": {
                    "uri": "https://platform.ringcentral.com/restapi/v1.0/account/1423308004/extension/1423308004",
                    "id": 1423308004
                  },
                  "master": true
                }
              ]
            },
            {
              "uri": "https://platform.ringcentral.com/restapi/v1.0/account/1423308004/extension/1423308004/call-log/X37gv3eVBzLNQA?view=Detailed",
              "id": "X37gv3eVBzLNQA",
              "sessionId": "4509653004",
              "startTime": "2017-12-22T10:29:28.000Z",
              "duration": 7,
              "type": "Voice",
              "direction": "Inbound",
              "action": "Phone Call",
              "result": "Accepted",
              "to": {
                "phoneNumber": "+18552007229",
                "name": "Jane Smith"
              },
              "from": {
                "phoneNumber": "+16504445566",
                "name": "John Doe",
                "location": "Palo Alto, CA"
              },
              "transport": "PSTN",
              "lastModifiedTime": "2017-12-22T10:29:31.004Z",
              "billing": {
                "costIncluded": 0,
                "costPurchased": 0
              },
              "legs": [
                {
                  "startTime": "2017-12-22T10:29:28.000Z",
                  "duration": 7,
                  "type": "Voice",
                  "direction": "Inbound",
                  "action": "Phone Call",
                  "result": "Accepted",
                  "to": {
                    "phoneNumber": "+18552007229",
                    "name": "Jane Smith"
                  },
                  "from": {
                    "phoneNumber": "+16504445566",
                    "name": "John Doe",
                    "location": "Palo Alto, CA"
                  },
                  "transport": "PSTN",
                  "legType": "Accept",
                  "extension": {
                    "uri": "https://platform.ringcentral.com/restapi/v1.0/account/1423308004/extension/1423308004",
                    "id": 1423308004
                  },
                  "master": true
                }
              ]
            }
          ],
          "paging": {
            "page": 1,
            "perPage": 100,
            "pageStart": 0,
            "pageEnd": 1
          },
          "navigation": {
            "firstPage": {
              "uri": "https://platform.ringcentral.com/restapi/v1.0/account/1423308004/extension/1423308004/call-log?view=Detailed&transport=PSTN&showBlocked=true&withRecording=false&dateFrom=2017-12-21T11:31:00.000Z&page=1&perPage=100"
            }
          }
        }
      }
    },
    "UserCallLogRecord": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Internal identifier of a cal log record"
        },
        "uri": {
          "type": "string",
          "description": "Canonical URI of a call log record"
        },
        "sessionId": {
          "type": "string",
          "description": "Internal identifier of a call session"
        },
        "from": {
          "$ref": "#/definitions/CallLogCallerInfo"
        },
        "to": {
          "$ref": "#/definitions/CallLogCallerInfo"
        },
        "type": {
          "type": "string",
          "description": "Call type = ['Voice', 'Fax']",
          "enum": [
            "Voice",
            "Fax"
          ]
        },
        "direction": {
          "type": "string",
          "description": "Call direction",
          "enum": [
            "Inbound",
            "Outbound"
          ]
        },
        "startTime": {
          "type": "string",
          "description": "The call start datetime in ISO 8601 format including timezone, for example 2016-03-10T18:07:52.534Z"
        },
        "duration": {
          "type": "integer",
          "description": "Call duration in seconds"
        },
        "recording": {
          "$ref": "#/definitions/RecordingInfo"
        }
      },
      "example": {
        "application/json": {
          "uri": "https://platform.ringcentral.com/restapi/v1.0/account/401190149008/extension/401190149008/call-log/IXPCm_tIkCduk4I?view=Simple",
          "id": "IXPCm_tIkCduk4I",
          "sessionId": "404412141008",
          "startTime": "2015-06-25T14:57:30.000Z",
          "duration": 60,
          "type": "Voice",
          "direction": "Inbound",
          "action": "Phone Call",
          "result": "Accepted",
          "to": {
            "phoneNumber": "+18772160007",
            "name": "John Smith"
          },
          "from": {
            "phoneNumber": "+18882400004",
            "name": "Jane Smith"
          },
          "recording": {
            "uri": "https://platform.ringcentral.com/restapi/v1.0/account/401190149008/recording/401547458008",
            "id": "401547458008",
            "type": "OnDemand",
            "contentUri": "https://platform.ringcentral.com/restapi/v1.0/account/401190149008/recording/401547458008/content"
          }
        }
      }
    },
    "ExtensionActiveCallsResponse": {
      "type": "object",
      "required": [
        "navigation",
        "paging",
        "records"
      ],
      "properties": {
        "records": {
          "type": "array",
          "description": "List of call log records",
          "items": {
            "$ref": "#/definitions/CallLogRecord"
          }
        },
        "navigation": {
          "$ref": "#/definitions/NavigationInfo",
          "description": "Information on navigation"
        },
        "paging": {
          "$ref": "#/definitions/PagingInfo",
          "description": "Information on paging"
        }
      },
      "example": {
        "application/json": {
          "uri": "https://platform.ringcentral.com/restapi/v1.0/account/400618687004/extension/400618687004/active-calls?page=1&perPage=100",
          "records": [
            {
              "uri": "https://platform.ringcentral.com/restapi/v1.0/account/400618687004/extension/400618687004/call-log/IV5fj9D8vHjs8fw",
              "id": "IV5fj9D8vHjs8fw",
              "sessionId": "403402173004",
              "startTime": "2014-08-15T15:16:12.000Z",
              "duration": 0,
              "type": "Voice",
              "direction": "Outbound",
              "action": "RingOut Web",
              "result": "Call connected",
              "to": {
                "phoneNumber": "+18556620006",
                "name": "John Smith"
              },
              "from": {
                "name": "Jane Smith"
              }
            }
          ],
          "paging": {
            "page": 1,
            "perPage": 100,
            "pageStart": 0,
            "pageEnd": 0
          },
          "navigation": {
            "firstPage": {
              "uri": "https://platform.ringcentral.com/restapi/v1.0/account/400618687004/extension/400618687004/active-calls?page=1&perPage=100"
            }
          }
        }
      }
    },
    "CallLogRecord": {
      "type": "object",
      "required": [
        "legs"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "Internal identifier of a cal log record"
        },
        "uri": {
          "type": "string",
          "description": "Canonical URI of a call log record"
        },
        "sessionId": {
          "type": "string",
          "description": "Internal identifier of a call session"
        },
        "from": {
          "$ref": "#/definitions/CallLogCallerInfo",
          "description": "Caller information"
        },
        "to": {
          "$ref": "#/definitions/CallLogCallerInfo",
          "description": "Callee information"
        },
        "type": {
          "type": "string",
          "description": "Call type",
          "enum": [
            "Voice",
            "Fax"
          ]
        },
        "direction": {
          "type": "string",
          "description": "Call direction",
          "enum": [
            "Inbound",
            "Outbound"
          ]
        },
        "action": {
          "type": "string",
          "description": "Action description of the call operation",
          "enum": [
            "Unknown",
            "Phone Call",
            "Phone Login",
            "Incoming Fax",
            "Accept Call",
            "FindMe",
            "FollowMe",
            "Outgoing Fax",
            "Call Return",
            "Calling Card",
            "Ring Directly",
            "RingOut Web",
            "VoIP Call",
            "RingOut PC",
            "RingMe",
            "Transfer",
            "411 Info",
            "Emergency",
            "E911 Update",
            "Support",
            "RingOut Mobile"
          ]
        },
        "result": {
          "type": "string",
          "description": "Status description of the call operation",
          "enum": [
            "Unknown",
            "ResultInProgress",
            "Missed",
            "Call accepted",
            "Voicemail",
            "Rejected",
            "Reply",
            "Received",
            "Receive Error",
            "Fax on Demand",
            "Partial Receive",
            "Blocked",
            "Call connected",
            "No Answer",
            "International Disabled",
            "Busy",
            "Send Error",
            "Sent",
            "No fax machine",
            "ResultEmpty",
            "Account",
            "Suspended",
            "Call Failed",
            "Call Failure",
            "Internal Error",
            "IP Phone offline",
            "Restricted Number",
            "Wrong Number",
            "Stopped",
            "Hang up",
            "Poor Line Quality",
            "Partially Sent",
            "International Restriction",
            "Abandoned",
            "Declined",
            "Fax Receipt Error",
            "Fax Send Error"
          ]
        },
        "startTime": {
          "type": "string",
          "format": "date-time",
          "description": "The call start datetime in ISO 8601 format including timezone, for example 2016-03-10T18:07:52.534Z"
        },
        "duration": {
          "type": "integer",
          "description": "Call duration in seconds"
        },
        "recording": {
          "$ref": "#/definitions/RecordingInfo",
          "description": "Call recording data. Returned if the call is recorded, the withRecording parameter is set to 'True' in this case"
        },
        "lastModifiedTime": {
          "type": "string",
          "format": "date-time",
          "description": "For 'Detailed' view only. The datetime when the call log record was modified in ISO 8601 format including timezone, for example 2016-03-10T18:07:52.534Z"
        },
        "transport": {
          "type": "string",
          "description": "For 'Detailed' view only. Call transport",
          "enum": [
            "PSTN",
            "VoIP"
          ]
        },
        "legs": {
          "type": "array",
          "description": "For 'Detailed' view only. Leg description",
          "items": {
            "$ref": "#/definitions/CallLogRecordLegInfo"
          }
        }
      }
    },
    "NavigationInfo": {
      "type": "object",
      "properties": {
        "firstPage": {
          "description": "Canonical URI for the first page of the list",
          "$ref": "#/definitions/NavigationInfoURI"
        },
        "nextPage": {
          "description": "Canonical URI for the next page of the list",
          "$ref": "#/definitions/NavigationInfoURI"
        },
        "previousPage": {
          "description": "Canonical URI for the previous page of the list",
          "$ref": "#/definitions/NavigationInfoURI"
        },
        "lastPage": {
          "description": "Canonical URI for the last page of the list",
          "$ref": "#/definitions/NavigationInfoURI"
        }
      }
    },
    "PagingInfo": {
      "type": "object",
      "properties": {
        "page": {
          "type": "integer",
          "description": "The current page number. 1-indexed, so the first page is 1 by default. May be omitted if result is empty (because non-existent page was specified or perPage=0 was requested)"
        },
        "perPage": {
          "type": "integer",
          "default": "100",
          "description": "Current page size, describes how many items are in each page. Maximum value is 1000. If perPage value in the request is greater than 1000, the maximum value (1000) is applied"
        },
        "pageStart": {
          "type": "integer",
          "description": "The zero-based number of the first element on the current page. Omitted if the page is omitted or result is empty"
        },
        "pageEnd": {
          "type": "integer",
          "description": "The zero-based index of the last element on the current page. Omitted if the page is omitted or result is empty"
        },
        "totalPages": {
          "type": "integer",
          "description": "The total number of pages in a dataset. May be omitted for some resources due to performance reasons"
        },
        "totalElements": {
          "type": "integer",
          "description": "The total number of elements in a dataset. May be omitted for some resource due to performance reasons"
        }
      }
    },
    "CallLogCallerInfo": {
      "type": "object",
      "properties": {
        "phoneNumber": {
          "type": "string",
          "description": "Phone number of a party. Usually it is a plain number including country and area code like 18661234567. But sometimes it could be returned from database with some formatting applied, for example (866)123-4567. This property is filled in all cases where parties communicate by means of global phone numbers, for example when calling to direct numbers or sending/receiving SMS"
        },
        "extensionNumber": {
          "type": "string",
          "description": "Extension short number (usually 3 or 4 digits). This property is filled when parties communicate by means of short internal numbers, for example when calling to other extension or sending/receiving Company Pager message"
        },
        "location": {
          "type": "string",
          "description": "Contains party location (city, state) if one can be determined from phoneNumber. This property is filled only when phoneNumber is not empty and server can calculate location information from it (for example, this information is unavailable for US toll-free numbers)"
        },
        "name": {
          "type": "string",
          "description": "Symbolic name associated with a party. If the phone does not belong to the known extension, only the location is returned, the name is not determined then"
        },
        "device": {
          "$ref": "#/definitions/CallLogRecordDeviceInfo"
        }
      }
    },
    "RecordingInfo": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Internal identifier of the call recording"
        },
        "uri": {
          "type": "string",
          "description": "Link to the call recording metadata resource"
        },
        "type": {
          "type": "string",
          "description": "Indicates recording mode used",
          "enum": [
            "Automatic",
            "OnDemand"
          ]
        },
        "contentUri": {
          "type": "string",
          "description": "Link to the call recording binary content"
        }
      }
    },
    "CallLogRecordLegInfo": {
      "type": "object",
      "properties": {
        "action": {
          "type": "string",
          "description": "Action description of the call operation",
          "enum": [
            "Unknown",
            "Phone Call",
            "Phone Login",
            "Incoming Fax",
            "Accept Call",
            "FindMe",
            "FollowMe",
            "Outgoing Fax",
            "Call Return",
            "Calling Card",
            "Ring Directly",
            "RingOut Web",
            "VoIP Call",
            "RingOut PC",
            "RingMe",
            "Transfer",
            "411 Info",
            "Emergency",
            "E911 Update",
            "Support",
            "RingOut Mobile"
          ]
        },
        "direction": {
          "type": "string",
          "description": "Call direction",
          "enum": [
            "Inbound",
            "Outbound"
          ]
        },
        "duration": {
          "type": "integer",
          "description": "Call duration in seconds"
        },
        "extension": {
          "$ref": "#/definitions/ExtensionInfoCallLog",
          "description": "Information on extension"
        },
        "legType": {
          "type": "string",
          "description": "Leg type"
        },
        "startTime": {
          "type": "string",
          "format": "date-time",
          "description": "The call start datetime in ISO 8601 format including timezone, for example 2016-03-10T18:07:52.534Z"
        },
        "type": {
          "type": "string",
          "description": "Call type",
          "enum": [
            "Voice",
            "Fax"
          ]
        },
        "result": {
          "type": "string",
          "description": "Status description of the call operation",
          "enum": [
            "Unknown",
            "ResultInProgress",
            "Missed",
            "Call accepted",
            "Voicemail",
            "Rejected",
            "Reply",
            "Received",
            "Receive Error",
            "Fax on Demand",
            "Partial Receive",
            "Blocked",
            "Call connected",
            "No Answer",
            "International Disabled",
            "Busy",
            "Send Error",
            "Sent",
            "No fax machine",
            "ResultEmpty",
            "Account",
            "Suspended",
            "Call Failed",
            "Call Failure",
            "Internal Error",
            "IP Phone offline",
            "Restricted Number",
            "Wrong Number",
            "Stopped",
            "Hang up",
            "Poor Line Quality",
            "Partially Sent",
            "International Restriction",
            "Abandoned",
            "Declined",
            "Fax Receipt Error",
            "Fax Send Error"
          ]
        },
        "from": {
          "$ref": "#/definitions/CallLogCallerInfo",
          "description": "Caller information"
        },
        "to": {
          "$ref": "#/definitions/CallLogCallerInfo",
          "description": "Callee information"
        },
        "transport": {
          "type": "string",
          "description": "Call transport",
          "enum": [
            "PSTN",
            "VoIP"
          ]
        },
        "recording": {
          "$ref": "#/definitions/RecordingInfo",
          "description": "Call recording data. Returned if the call is recorded"
        }
      }
    },
    "NavigationInfoURI": {
      "type": "object",
      "properties": {
        "uri": {
          "type": "string"
        }
      }
    },
    "CallLogRecordDeviceInfo": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Internal identifier of a device"
        },
        "uri": {
          "type": "string",
          "description": "string to a device"
        }
      }
    },
    "ExtensionInfoCallLog": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Internal identifier of an extension"
        },
        "uri": {
          "type": "string",
          "description": "Canonical URI of an extension"
        }
      }
    },
    "UpdateMessageRequest": {
      "type": "object",
      "properties": {
        "readStatus": {
          "type": "string",
          "description": "Read status of a message to be changed. Multiple values are accepted",
          "enum": [
            "Read",
            "Unread"
          ]
        }
      },
      "example": {
        "readStatus": "Read"
      }
    },
    "GetMessageSyncResponse": {
      "type": "object",
      "required": [
        "records",
        "syncInfo"
      ],
      "properties": {
        "records": {
          "type": "array",
          "description": "List of message records with synchronization information",
          "items": {
            "$ref": "#/definitions/GetMessageInfoResponse"
          }
        },
        "syncInfo": {
          "description": "Sync type, token and time",
          "$ref": "#/definitions/SyncInfoMessages"
        }
      }
    },
    "CreateSMSMessage": {
      "type": "object",
      "required": [
        "from",
        "text",
        "to"
      ],
      "properties": {
        "from": {
          "description": "Sender of an SMS message. The phoneNumber property must be filled to correspond to one of the account phone numbers which is allowed to send SMS",
          "$ref": "#/definitions/MessageStoreCallerInfoRequest"
        },
        "to": {
          "type": "array",
          "description": "Receiver of an SMS message. The phoneNumber property must be filled",
          "items": {
            "$ref": "#/definitions/MessageStoreCallerInfoRequest"
          }
        },
        "text": {
          "type": "string",
          "description": "Text of a message. Max length is 1000 symbols (2-byte UTF-16 encoded). If a character is encoded in 4 bytes in UTF-16 it is treated as 2 characters, thus restricting the maximum message length to 500 symbols"
        }
      },
      "example": {
        "to": [
          {
            "phoneNumber": "+18551003738"
          }
        ],
        "from": {
          "phoneNumber": "+18559100010}"
        },
        "text": "Test SMS message"
      }
    },
    "GetMessageInfoResponse": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Internal identifier of a message"
        },
        "uri": {
          "type": "string",
          "description": "Canonical URI of a message"
        },
        "attachments": {
          "type": "array",
          "description": "The list of message attachments",
          "items": {
            "$ref": "#/definitions/MessageAttachmentInfo"
          }
        },
        "availability": {
          "type": "string",
          "description": "Message availability status. Message in 'Deleted' state is still preserved with all its attachments and can be restored. 'Purged' means that all attachments are already deleted and the message itself is about to be physically deleted shortly",
          "enum": [
            "Alive",
            "Deleted",
            "Purged"
          ]
        },
        "conversationId": {
          "type": "integer",
          "description": "SMS and Pager only. Identifier of the conversation the message belongs to"
        },
        "creationTime": {
          "type": "string",
          "format": "date-time",
          "description": "Message creation datetime in ISO 8601 format including timezone, for example 2016-03-10T18:07:52.534Z"
        },
        "deliveryErrorCode": {
          "type": "string",
          "description": "SMS only. Delivery error code returned by gateway"
        },
        "direction": {
          "type": "string",
          "description": "Message direction. Note that for some message types not all directions are allowed. For example voicemail messages can be only inbound",
          "enum": [
            "Inbound",
            "Outbound"
          ]
        },
        "faxPageCount": {
          "type": "integer",
          "description": "Fax only. Page count in a fax message"
        },
        "faxResolution": {
          "type": "string",
          "description": "Fax only. Resolution of a fax message. 'High' for black and white image scanned at 200 dpi, 'Low' for black and white image scanned at 100 dpi",
          "enum": [
            "High",
            "Low"
          ]
        },
        "from": {
          "description": "Sender information",
          "$ref": "#/definitions/MessageStoreCallerInfoResponse"
        },
        "lastModifiedTime": {
          "type": "string",
          "format": "date-time",
          "description": "The datetime when the message was modified on server in ISO 8601 format including timezone, for example 2016-03-10T18:07:52.534Z"
        },
        "messageStatus": {
          "type": "string",
          "description": "Message status. Different message types may have different allowed status values.For outbound faxes the aggregated message status is returned: If status for at least one recipient is 'Queued', then 'Queued' value is returned If status for at least one recipient is 'SendingFailed', then 'SendingFailed' value is returned In other cases Sent status is returned",
          "enum": [
            "Queued",
            "Sent",
            "Delivered",
            "DeliveryFailed",
            "SendingFailed",
            "Received"
          ]
        },
        "pgToDepartment": {
          "type": "boolean",
          "description": "Pager only True if at least one of the message recipients is Department extension"
        },
        "priority": {
          "type": "string",
          "description": "Message priority",
          "enum": [
            "Normal",
            "High"
          ]
        },
        "readStatus": {
          "type": "string",
          "description": "Message read status",
          "enum": [
            "Read",
            "Unread"
          ]
        },
        "smsDeliveryTime": {
          "type": "string",
          "format": "date-time",
          "description": "SMS only. The datetime when outbound SMS was delivered to recipient's handset in ISO 8601 format including timezone, for example 2016-03-10T18:07:52.534Z. It is filled only if the carrier sends a delivery receipt to RingCentral"
        },
        "smsSendingAttemptsCount": {
          "type": "integer",
          "description": "SMS only. Number of attempts made to send an outbound SMS to the gateway (if gateway is temporary unavailable)"
        },
        "subject": {
          "type": "string",
          "description": "Message subject. For SMS and Pager messages it replicates message text which is also returned as an attachment"
        },
        "to": {
          "type": "array",
          "description": "Recipient information",
          "items": {
            "$ref": "#/definitions/MessageStoreCallerInfoResponse"
          }
        },
        "type": {
          "type": "string",
          "description": "Message type",
          "enum": [
            "Fax",
            "SMS",
            "VoiceMail",
            "Pager",
            "Text"
          ]
        },
        "vmTranscriptionStatus": {
          "type": "string",
          "description": "Voicemail only. Status of voicemail to text transcription. If VoicemailToText feature is not activated for account, the 'NotAvailable' value is returned",
          "enum": [
            "NotAvailable",
            "InProgress",
            "TimedOut",
            "Completed",
            "CompletedPartially",
            "Failed"
          ]
        }
      }
    },
    "CreatePagerMessageRequest": {
      "type": "object",
      "required": [
        "from",
        "text"
      ],
      "properties": {
        "from": {
          "description": "Sender of a pager message. The extensionNumber property must be filled",
          "$ref": "#/definitions/PagerCallerInfoRequest"
        },
        "replyOn": {
          "type": "integer",
          "description": "Internal identifier of a message this message replies to"
        },
        "text": {
          "type": "string",
          "description": "Text of a pager message. Max length is 1024 symbols (2-byte UTF-16 encoded). If a character is encoded in 4 bytes in UTF-16 it is treated as 2 characters, thus restricting the maximum message length to 512 symbols"
        },
        "to": {
          "type": "array",
          "description": "Optional if replyOn parameter is specified. Receiver of a pager message. The extensionNumber property must be filled",
          "items": {
            "$ref": "#/definitions/PagerCallerInfoRequest"
          }
        }
      },
      "example": {
        "to": [
          {
            "extensionId": "2759654004"
          },
          {
            "extensionId": "2759653004"
          }
        ],
        "from": {
          "extensionId": "2759647004"
        },
        "text": "Hello!"
      }
    },
    "FaxResponse": {
      "type": "object",
      "properties": {
        "id": {
          "type": "integer",
          "format": "int64",
          "description": "Internal identifier of a message"
        },
        "uri": {
          "type": "string",
          "description": "Canonical URI of a message"
        },
        "type": {
          "type": "string",
          "description": "Message type - 'Fax'"
        },
        "from": {
          "description": "Sender information",
          "$ref": "#/definitions/CallerInfoFrom"
        },
        "to": {
          "type": "array",
          "description": "Recipient information",
          "items": {
            "$ref": "#/definitions/CallerInfoTo"
          }
        },
        "creationTime": {
          "type": "string",
          "format": "date-time",
          "description": "Message creation datetime in ISO 8601 format including timezone, for example 2016-03-10T18:07:52.534Z"
        },
        "readStatus": {
          "type": "string",
          "description": "Message read status",
          "enum": [
            "Read",
            "Unread"
          ]
        },
        "priority": {
          "type": "string",
          "description": "Message priority",
          "enum": [
            "Normal",
            "High"
          ]
        },
        "attachments": {
          "type": "array",
          "description": "The list of message attachments",
          "items": {
            "$ref": "#/definitions/MessageAttachmentInfoIntId"
          }
        },
        "direction": {
          "type": "string",
          "description": "Message direction",
          "enum": [
            "Inbound",
            "Outbound"
          ]
        },
        "availability": {
          "type": "string",
          "description": "Message availability status. Message in 'Deleted' state is still preserved with all its attachments and can be restored. 'Purged' means that all attachments are already deleted and the message itself is about to be physically deleted shortly",
          "enum": [
            "Alive",
            "Deleted",
            "Purged"
          ]
        },
        "messageStatus": {
          "type": "string",
          "description": "Message status. 'Queued' - the message is queued for sending; 'Sent' - a message is successfully sent; 'SendingFailed' - a message sending attempt has failed; 'Received' - a message is received (inbound messages have this status by default)",
          "enum": [
            "Queued",
            "Sent",
            "SendingFailed",
            "Received"
          ]
        },
        "faxResolution": {
          "type": "string",
          "description": "Resolution of a fax message. ('High' for black and white image scanned at 200 dpi, 'Low' for black and white image scanned at 100 dpi)",
          "enum": [
            "High",
            "Low"
          ]
        },
        "faxPageCount": {
          "type": "integer",
          "description": "Page count in a fax message"
        },
        "lastModifiedTime": {
          "type": "string",
          "format": "date-time",
          "description": "Datetime when the message was modified on server in ISO 8601 format including timezone, for example 2016-03-10T18:07:52.534Z"
        },
        "coverIndex": {
          "type": "integer",
          "description": "Cover page identifier. For the list of available cover page identifiers please call the method Fax Cover Pages"
        },
        "coverPageText": {
          "type": "string",
          "description": "Cover page text, entered by the fax sender and printed on the cover page. Maximum length is limited to 1024 symbols"
        }
      }
    },
    "GetMessageList": {
      "type": "object",
      "required": [
        "navigation",
        "paging",
        "records"
      ],
      "properties": {
        "records": {
          "type": "array",
          "description": "List of records with message information",
          "items": {
            "$ref": "#/definitions/GetMessageInfoResponse"
          }
        },
        "navigation": {
          "description": "Information on navigation",
          "$ref": "#/definitions/NavigationInfo"
        },
        "paging": {
          "description": "Information on paging",
          "$ref": "#/definitions/PagingInfo"
        }
      }
    },
    "InboundMessageEvent": {
      "type": "object",
      "properties": {
        "aps": {
          "description": "Information on a notification",
          "$ref": "#/definitions/NotificationInfo"
        },
        "messageId": {
          "type": "string",
          "description": "Internal identifier of an message"
        },
        "conversationId": {
          "type": "string",
          "description": "Internal identifier of an conversation"
        },
        "from": {
          "type": "string",
          "description": "Sender phone number"
        },
        "to": {
          "type": "string",
          "description": "Receiver phone number"
        }
      }
    },
    "CallerInfoTo": {
      "type": "object",
      "properties": {
        "phoneNumber": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "location": {
          "type": "string"
        },
        "messageStatus": {
          "type": "string",
          "enum": [
            "Sent",
            "SendingFailed",
            "Queued"
          ]
        },
        "faxErrorCode": {
          "type": "string",
          "enum": [
            "Undefined",
            "NoFaxSendPermission",
            "NoInternationalPermission",
            "NoFaxMachine",
            "OutgoingCallError",
            "RenderingFailed",
            "TooManyPages",
            "ReturnToDBQueue",
            "NoCallTime",
            "WrongNumber",
            "ProhibitedNumber",
            "InternalError",
            "FaxSendingProhibited",
            "ThePhoneIsBlacklisted",
            "UserNotFound",
            "ConvertError",
            "DBGeneralError",
            "SkypeBillingFailed",
            "AccountSuspended",
            "ProhibitedDestination",
            "InternationalDisabled"
          ]
        }
      }
    },
    "MessageStoreCallerInfoRequest": {
      "type": "object",
      "properties": {
        "phoneNumber": {
          "type": "string",
          "description": "Phone number in E.164 format"
        }
      }
    },
    "MessageAttachmentInfo": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Internal identifier of a message attachment"
        },
        "uri": {
          "type": "string",
          "description": "Canonical URI of a message attachment"
        },
        "type": {
          "type": "string",
          "description": "Type of message attachment",
          "enum": [
            "AudioRecording",
            "AudioTranscription",
            "Text",
            "SourceDocument",
            "RenderedDocument",
            "MmsAttachment"
          ]
        },
        "contentType": {
          "type": "string",
          "description": "MIME type for a given attachment, for instance 'audio/wav'"
        },
        "vmDuration": {
          "type": "integer",
          "description": "Voicemail only Duration of the voicemail in seconds"
        },
        "filename": {
          "type": "string",
          "description": "Name of a file attached"
        },
        "size": {
          "type": "integer",
          "description": "Size of attachment in bytes"
        }
      }
    },
    "PagerCallerInfoRequest": {
      "type": "object",
      "properties": {
        "extensionId": {
          "type": "string",
          "description": "Extension identifier"
        }
      }
    },
    "MessageAttachmentInfoIntId": {
      "type": "object",
      "properties": {
        "id": {
          "type": "integer",
          "format": "int64",
          "description": "Internal identifier of a message attachment"
        },
        "uri": {
          "type": "string",
          "description": "Canonical URI of a message attachment"
        },
        "type": {
          "type": "string",
          "description": "Type of message attachment",
          "enum": [
            "AudioRecording",
            "AudioTranscription",
            "Text",
            "SourceDocument",
            "RenderedDocument",
            "MmsAttachment"
          ]
        },
        "contentType": {
          "type": "string",
          "description": "MIME type for a given attachment, for instance 'audio/wav'"
        },
        "vmDuration": {
          "type": "integer",
          "description": "Voicemail only Duration of the voicemail in seconds"
        },
        "filename": {
          "type": "string",
          "description": "Name of a file attached"
        },
        "size": {
          "type": "integer",
          "description": "Size of attachment in bytes"
        }
      }
    },
    "NotificationInfo": {
      "type": "object",
      "properties": {
        "alerts": {
          "description": "Alert information",
          "$ref": "#/definitions/AlertInfo"
        },
        "badge": {
          "type": "string",
          "description": "Number of incoming messages"
        },
        "sound": {
          "type": "string",
          "description": "Message sound"
        },
        "content-available": {
          "type": "string",
          "description": "Content availability"
        },
        "category": {
          "type": "string",
          "description": "Category of a message"
        }
      }
    },
    "SyncInfoMessages": {
      "type": "object",
      "properties": {
        "syncType": {
          "type": "string",
          "description": "Type of synchronization",
          "enum": [
            "FSync",
            "ISync"
          ]
        },
        "syncToken": {
          "type": "string",
          "description": "Synchronization token"
        },
        "syncTime": {
          "type": "string",
          "format": "date-time",
          "description": "Last synchronization datetime in ISO 8601 format including timezone, for example 2016-03-10T18:07:52.534Z"
        }
      }
    },
    "MessageStoreCallerInfoResponse": {
      "type": "object",
      "required": [
        "extensionNumber"
      ],
      "properties": {
        "extensionNumber": {
          "type": "string",
          "description": "Extension short number (usually 3 or 4 digits). This property is filled when parties communicate by means of short internal numbers, for example when calling to other extension or sending/receiving Company Pager message"
        },
        "location": {
          "type": "string",
          "description": "Contains party location (city, state) if one can be determined from phoneNumber. This property is filled only when phoneNumber is not empty and server can calculate location information from it (for example, this information is unavailable for US toll-free numbers)"
        },
        "messageStatus": {
          "type": "string",
          "description": "Status of a message. Returned for outbound fax messages only",
          "enum": [
            "Queued",
            "Sent",
            "Delivered",
            "DeliveryFailed",
            "SendingFailed",
            "Received"
          ]
        },
        "faxErrorCode": {
          "type": "string",
          "description": "Fax only. Error code returned in case of fax sending failure. Returned if messageStatus value is 'SendingFailed'",
          "enum": [
            "Undefined",
            "NoFaxSendPermission",
            "NoInternationalPermission",
            "NoFaxMachine",
            "OutgoingCallError",
            "RenderingFailed",
            "TooManyPages",
            "ReturnToDBQueue",
            "NoCallTime",
            "WrongNumber",
            "ProhibitedNumber",
            "InternalError",
            "FaxSendingProhibited",
            "ThePhoneIsBlacklisted",
            "UserNotFound",
            "ConvertError",
            "DBGeneralError",
            "SkypeBillingFailed",
            "AccountSuspended",
            "ProhibitedDestination",
            "InternationalDisabled"
          ]
        },
        "name": {
          "type": "string",
          "description": "Symbolic name associated with a party. If the phone does not belong to the known extension, only the location is returned, the name is not determined then"
        },
        "phoneNumber": {
          "type": "string",
          "description": "Phone number of a party. Usually it is a plain number including country and area code like 18661234567. But sometimes it could be returned from database with some formatting applied, for example (866)123-4567. This property is filled in all cases where parties communicate by means of global phone numbers, for example when calling to direct numbers or sending/receiving SMS"
        }
      }
    },
    "CallerInfoFrom": {
      "type": "object",
      "properties": {
        "phoneNumber": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "location": {
          "type": "string"
        }
      }
    },
    "AlertInfo": {
      "type": "object",
      "properties": {
        "title": {
          "type": "string",
          "description": "Title of a message"
        },
        "body": {
          "type": "string",
          "description": "Message Description"
        }
      }
    },
    "MakeRingOutRequest": {
      "type": "object",
      "required": [
        "from",
        "to"
      ],
      "properties": {
        "from": {
          "description": "Phone number of the caller. This number corresponds to the 1st leg of the RingOut call. This number can be one of user's configured forwarding numbers or arbitrary number",
          "$ref": "#/definitions/MakeRingOutCallerInfoRequestFrom"
        },
        "to": {
          "description": "Phone number of the called party. This number corresponds to the 2nd leg of a RingOut call",
          "$ref": "#/definitions/MakeRingOutCallerInfoRequestTo"
        },
        "callerId": {
          "description": "The number which will be displayed to the called party",
          "$ref": "#/definitions/MakeRingOutCallerInfoRequestTo"
        },
        "playPrompt": {
          "type": "boolean",
          "description": "The audio prompt that the calling party hears when the call is connected"
        },
        "country": {
          "description": "Optional. Dialing plan country data. If not specified, then extension home country is applied by default",
          "$ref": "#/definitions/MakeRingOutCoutryInfo"
        }
      }
    },
    "GetRingOutStatusResponse": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Internal identifier of a RingOut call"
        },
        "uri": {
          "type": "string"
        },
        "status": {
          "description": "RingOut status information",
          "$ref": "#/definitions/RingOutStatusInfo"
        }
      }
    },
    "GetRingOutStatusResponseIntId": {
      "type": "object",
      "properties": {
        "id": {
          "type": "integer",
          "format": "int64",
          "description": "Internal identifier of a RingOut call"
        },
        "uri": {
          "type": "string"
        },
        "status": {
          "description": "RingOut status information",
          "$ref": "#/definitions/RingOutStatusInfo"
        }
      }
    },
    "MakeRingOutCallerInfoRequestFrom": {
      "type": "object",
      "properties": {
        "phoneNumber": {
          "type": "string",
          "description": "Phone number in E.164 format"
        },
        "forwardingNumberId": {
          "type": "string",
          "description": "Internal identifier of a forwarding number; returned in response as an 'id' field value. Can be specified instead of the phoneNumber attribute"
        }
      }
    },
    "MakeRingOutCallerInfoRequestTo": {
      "type": "object",
      "properties": {
        "phoneNumber": {
          "type": "string",
          "description": "Phone number in E.164 format"
        }
      }
    },
    "MakeRingOutCoutryInfo": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Dialing plan country identifier"
        }
      }
    },
    "RingOutStatusInfo": {
      "type": "object",
      "properties": {
        "callStatus": {
          "type": "string",
          "description": "Status of a call",
          "enum": [
            "Invalid",
            "Success",
            "InProgress",
            "Busy",
            "NoAnswer",
            "Rejected",
            "GenericError",
            "Finished",
            "InternationalDisabled",
            "DestinationBlocked",
            "NotEnoughFunds",
            "NoSuchUser"
          ]
        },
        "callerStatus": {
          "type": "string",
          "description": "Status of a calling party",
          "enum": [
            "Invalid",
            "Success",
            "InProgress",
            "Busy",
            "NoAnswer",
            "Rejected",
            "GenericError",
            "Finished",
            "InternationalDisabled",
            "DestinationBlocked",
            "NotEnoughFunds",
            "NoSuchUser"
          ]
        },
        "calleeStatus": {
          "type": "string",
          "description": "Status of a called party",
          "enum": [
            "Invalid",
            "Success",
            "InProgress",
            "Busy",
            "NoAnswer",
            "Rejected",
            "GenericError",
            "Finished",
            "InternationalDisabled",
            "DestinationBlocked",
            "NotEnoughFunds",
            "NoSuchUser"
          ]
        }
      }
    },
    "ContactList": {
      "type": "object",
      "properties": {
        "records": {
          "type": "array",
          "description": "List of personal contacts from the extension address book",
          "items": {
            "$ref": "#/definitions/PersonalContactResource"
          }
        },
        "navigation": {
          "description": "Information on navigation",
          "$ref": "#/definitions/NavigationInfo"
        },
        "paging": {
          "description": "Information on paging",
          "$ref": "#/definitions/PagingInfo"
        }
      }
    },
    "PersonalContactResource": {
      "type": "object",
      "properties": {
        "uri": {
          "type": "string",
          "format": "uri"
        },
        "availability": {
          "type": "string",
          "enum": [
            "Alive",
            "Deleted",
            "Purged"
          ]
        },
        "id": {
          "type": "string"
        },
        "firstName": {
          "type": "string"
        },
        "lastName": {
          "type": "string"
        },
        "middleName": {
          "type": "string"
        },
        "birthday": {
          "type": "string",
          "format": "date-time"
        },
        "notes": {
          "type": "string"
        },
        "webPage": {
          "type": "string"
        },
        "company": {
          "type": "string"
        },
        "jobTitle": {
          "type": "string"
        },
        "nickName": {
          "type": "string"
        },
        "email": {
          "type": "string"
        },
        "email2": {
          "type": "string"
        },
        "email3": {
          "type": "string"
        },
        "homeAddress": {
          "$ref": "#/definitions/ContactAddressInfo"
        },
        "otherAddress": {
          "$ref": "#/definitions/ContactAddressInfo"
        },
        "homePhone": {
          "type": "string"
        },
        "homePhone2": {
          "type": "string"
        },
        "mobilePhone": {
          "type": "string"
        },
        "businessPhone": {
          "type": "string"
        },
        "callbackPhone": {
          "type": "string"
        },
        "carPhone": {
          "type": "string"
        },
        "companyPhone": {
          "type": "string"
        },
        "otherPhone": {
          "type": "string"
        },
        "businessFax": {
          "type": "string"
        },
        "otherFax": {
          "type": "string"
        },
        "businessAddress": {
          "$ref": "#/definitions/ContactAddressInfo"
        },
        "assistantPhone": {
          "type": "string"
        },
        "businessPhone2": {
          "type": "string"
        }
      }
    },
    "ExtensionFavoritesEvent": {
      "type": "object",
      "properties": {
        "extensionId": {
          "type": "string",
          "description": "Internal identifier of an extension"
        }
      }
    },
    "FavoriteCollection": {
      "type": "object",
      "properties": {
        "uri": {
          "type": "string",
          "format": "uri"
        },
        "records": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/FavoriteContactResource"
          }
        }
      }
    },
    "ContactAddressInfo": {
      "type": "object",
      "properties": {
        "country": {
          "type": "string",
          "description": "Country name of extension user company. Not returned for Address Book"
        },
        "state": {
          "type": "string",
          "description": "State/province name of extension user company"
        },
        "city": {
          "type": "string",
          "description": "City name of extension user company"
        },
        "street": {
          "type": "string",
          "description": "Street address of extension user company"
        },
        "zip": {
          "type": "string",
          "description": "Zip code of extension user company"
        }
      }
    },
    "FavoriteContactResource": {
      "type": "object",
      "properties": {
        "uri": {
          "type": "string",
          "format": "uri"
        },
        "id": {
          "type": "string"
        },
        "extensionId": {
          "type": "string"
        },
        "contactId": {
          "type": "string"
        }
      }
    },
    "ContactDirectoryEvent": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Internal identifier of an extension"
        },
        "eventType": {
          "type": "string",
          "description": "Type of change"
        },
        "type": {
          "type": "string",
          "description": "Extension Type"
        },
        "status": {
          "type": "string",
          "description": "Status of an extension",
          "enum": [
            "Disabled",
            "Enabled",
            "NotActivated"
          ]
        },
        "firstName": {
          "type": "string",
          "description": "First name of an extension user"
        },
        "lastName": {
          "type": "string",
          "description": "Last name of an extension user"
        },
        "department": {
          "type": "string",
          "description": "Department Name"
        },
        "email": {
          "type": "string",
          "description": "Email of an extension user"
        },
        "extensionNumber": {
          "type": "string",
          "description": "Extension number"
        },
        "account": {
          "description": "Account data of an extension",
          "$ref": "#/definitions/CompanyDirectoryAccountInfo"
        },
        "phoneNumbers": {
          "description": "Extension phone number information",
          "$ref": "#/definitions/CompanyDirectoryPhoneNumberInfo"
        },
        "site": {
          "description": "Site Data",
          "$ref": "#/definitions/SiteInfo"
        },
        "profileImage": {
          "description": "Extension profile image information. Not returned if profile images are absent for an extension",
          "$ref": "#/definitions/CompanyDirectoryProfileImageInfo"
        }
      }
    },
    "ContactResource": {
      "type": "object",
      "properties": {
        "account": {
          "$ref": "#/definitions/AccountResource"
        },
        "department": {
          "type": "string"
        },
        "email": {
          "type": "string"
        },
        "extensionNumber": {
          "type": "string"
        },
        "firstName": {
          "type": "string"
        },
        "id": {
          "type": "string"
        },
        "lastName": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "phoneNumbers": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/PhoneNumberResource"
          }
        },
        "profileImage": {
          "$ref": "#/definitions/AccountDirectoryProfileImageResource"
        },
        "site": {
          "$ref": "#/definitions/BusinessSiteResource"
        },
        "status": {
          "type": "string"
        },
        "type": {
          "type": "string"
        }
      }
    },
    "DirectoryResource": {
      "type": "object",
      "properties": {
        "paging": {
          "$ref": "#/definitions/Paging"
        },
        "records": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/ContactResource"
          }
        }
      }
    },
    "ErrorResponse": {
      "type": "object",
      "properties": {
        "errors": {
          "type": "array",
          "description": "Collection of all gathered errors",
          "readOnly": true,
          "items": {
            "$ref": "#/definitions/Error"
          }
        }
      },
      "description": "Format of response in case that any error occured during request processing"
    },
    "CompanyDirectoryPhoneNumberInfo": {
      "type": "object",
      "properties": {
        "phoneNumber": {
          "type": "string",
          "description": "Extension phone number in E.164 format"
        },
        "type": {
          "type": "string",
          "enum": [
            "VoiceFax",
            "FaxOnly",
            "VoiceOnly"
          ],
          "description": "Type of a phone number"
        },
        "hidden": {
          "type": "boolean",
          "description": "Specifies if a phone number should be hidden or not. Returned only if the value is 'True'"
        },
        "usageType": {
          "type": "string",
          "enum": [
            "MobileNumber",
            "ContactNumber",
            "DirectNumber",
            "ForwardedNumber"
          ],
          "description": "Usage type of a phone number"
        }
      }
    },
    "SiteInfo": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Internal Identifier of a site"
        },
        "name": {
          "type": "string",
          "description": "custom name of a site"
        }
      }
    },
    "CompanyDirectoryProfileImageInfo": {
      "type": "object",
      "properties": {
        "uri": {
          "type": "string",
          "description": "Link to a profile image resource"
        },
        "etag": {
          "type": "string",
          "description": "Internal identifier of an image"
        }
      }
    },
    "AccountResource": {
      "type": "object",
      "properties": {
        "companyName": {
          "type": "string"
        },
        "federatedName": {
          "type": "string"
        },
        "id": {
          "type": "string"
        },
        "mainNumber": {
          "$ref": "#/definitions/PhoneNumberResource"
        }
      }
    },
    "BusinessSiteResource": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "code": {
          "type": "string"
        }
      }
    },
    "Paging": {
      "type": "object",
      "properties": {
        "page": {
          "type": "integer",
          "format": "int32"
        },
        "totalPages": {
          "type": "integer",
          "format": "int32"
        },
        "perPage": {
          "type": "integer",
          "format": "int32"
        },
        "totalElements": {
          "type": "integer",
          "format": "int32"
        },
        "pageStart": {
          "type": "integer",
          "format": "int32"
        },
        "pageEnd": {
          "type": "integer",
          "format": "int32"
        }
      }
    },
    "CompanyDirectoryAccountInfo": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Internal identifier of an account"
        }
      }
    },
    "PhoneNumberResource": {
      "type": "object",
      "properties": {
        "formattedPhoneNumber": {
          "type": "string"
        },
        "phoneNumber": {
          "type": "string"
        },
        "type": {
          "type": "string"
        }
      }
    },
    "AccountDirectoryProfileImageResource": {
      "type": "object",
      "properties": {
        "etag": {
          "type": "string"
        },
        "uri": {
          "type": "string"
        }
      }
    },
    "Error": {
      "type": "object",
      "properties": {
        "errorCode": {
          "type": "string",
          "description": "Code that characterizes this error. Code uniqly identifies the source of the error.",
          "readOnly": true,
          "enum": [
            "ErrorCode{code='ADG-000', httpStatus=503, description='Service temporary unavailable.'}",
            "ErrorCode{code='ADG-010', httpStatus=503, description='Federation data temporary unavailable.'}",
            "ErrorCode{code='ADG-001', httpStatus=500, description='Service internal error.'}",
            "ErrorCode{code='ADG-100', httpStatus=403, description='Insufficient permissions.'}",
            "ErrorCode{code='ADG-101', httpStatus=403, description='Unauthorized access.'}",
            "ErrorCode{code='ADG-102', httpStatus=405, description='Method not allowed.'}",
            "ErrorCode{code='ADG-111', httpStatus=400, description='Need Content-Type header.'}",
            "ErrorCode{code='ADG-112', httpStatus=400, description='Request body is invalid.'}",
            "ErrorCode{code='ADG-121', httpStatus=400, description='Parameter [${paramName}] is invalid. ${additionalInfo:-}'}",
            "ErrorCode{code='ADG-115', httpStatus=415, description='Unsupported Media Type.'}",
            "ErrorCode{code='ADG-105', httpStatus=404, description='Current account is not linked to any federation.'}",
            "ErrorCode{code='ADG-107', httpStatus=404, description='Account not found.'}",
            "ErrorCode{code='ADG-122', httpStatus=404, description='Contact not found.'}",
            "ErrorCode{code=''ADG-200'', httpStatus=404, description=''Invalid URI''}"
          ]
        },
        "message": {
          "type": "string",
          "description": "Message that describes the error. This message can be used in UI.",
          "readOnly": true
        }
      },
      "description": "Description of an error occurred during request processing. This data type can be used only in readonly mode, no writing is allowed"
    },
    "MissedCallEvent": {
      "type": "object",
      "properties": {
        "uuid": {
          "type": "string",
          "description": "Universally unique identifier of a notification"
        },
        "pn_apns": {
          "description": "APNS service info",
          "$ref": "#/definitions/APNSInfo"
        },
        "event": {
          "type": "string",
          "description": "Event filter URI"
        },
        "subscriptionId": {
          "type": "string",
          "description": "Internal identifier of a subscription"
        },
        "timestamp": {
          "type": "string",
          "description": "The datetime of a call action in ISO 8601 format including timezone, for example 2016-03-10T18:07:52.534Z",
          "format": "date-time"
        },
        "extensionId": {
          "type": "string",
          "description": "Internal identifier of an extension",
          "default": "~"
        },
        "action": {
          "type": "string",
          "description": "Calling action, for example 'StartRing'"
        },
        "sessionId": {
          "type": "string",
          "description": "Identifier of a call session"
        },
        "serverId": {
          "type": "string",
          "description": "Identifier of a server"
        },
        "from": {
          "type": "string",
          "description": "Phone number of a caller"
        },
        "fromName": {
          "type": "string",
          "description": "Caller name"
        },
        "to": {
          "type": "string",
          "description": "Phone number of a callee"
        },
        "toName": {
          "type": "string",
          "description": "Callee name"
        },
        "sid": {
          "type": "string",
          "description": "Unique identifier of a session"
        },
        "toUrl": {
          "type": "string",
          "description": "SIP proxy registration name"
        },
        "srvLvl": {
          "type": "string",
          "description": "User data"
        },
        "srvLvlExt": {
          "type": "string",
          "description": "User data"
        },
        "recUrl": {
          "type": "string",
          "description": "File containing recorded caller name"
        },
        "pn_ttl": {
          "type": "integer",
          "description": "Notification lifetime value in seconds, the default value is 30 seconds"
        }
      }
    },
    "GetPresenceInfo": {
      "type": "object",
      "properties": {
        "uri": {
          "type": "string",
          "description": "Canonical URI of a presence info resource"
        },
        "allowSeeMyPresence": {
          "type": "boolean",
          "description": "If 'True' enables other extensions to see the extension presence status"
        },
        "dndStatus": {
          "type": "string",
          "description": "Extended DnD (Do not Disturb) status. Cannot be set for Department/Announcement/Voicemail (Take Messages Only)/Fax User/Shared Lines Group/Paging Only Group/IVR Menu/Application Extension/Park Location extensions. The 'DoNotAcceptDepartmentCalls' and 'TakeDepartmentCallsOnly' values are applicable only for extensions - members of a Department; if these values are set for department outsiders, the 400 Bad Request error code is returned. The 'TakeDepartmentCallsOnly' status can be set through the old RingCentral user interface and is available for some migrated accounts only.",
          "enum": [
            "TakeAllCalls",
            "DoNotAcceptAnyCalls",
            "DoNotAcceptDepartmentCalls",
            "TakeDepartmentCallsOnly"
          ]
        },
        "extension": {
          "description": "Information on extension, for which this presence data is returned",
          "$ref": "#/definitions/GetPresenceExtensionInfo"
        },
        "message": {
          "type": "string",
          "description": "Custom status message (as previously published by user)"
        },
        "pickUpCallsOnHold": {
          "type": "boolean",
          "description": "If 'True' enables the extension user to pick up a monitored line on hold"
        },
        "presenceStatus": {
          "type": "string",
          "description": "Aggregated presence status, calculated from a number of sources",
          "enum": [
            "Offline",
            "Busy",
            "Available"
          ]
        },
        "ringOnMonitoredCall": {
          "type": "boolean",
          "description": "If 'True' enables to ring extension phone, if any user monitored by this extension is ringing"
        },
        "telephonyStatus": {
          "type": "string",
          "description": "Telephony presence status",
          "enum": [
            "NoCall",
            "CallConnected",
            "Ringing",
            "OnHold",
            "ParkedCall"
          ]
        },
        "userStatus": {
          "type": "string",
          "description": "User-defined presence status (as previously published by the user)",
          "enum": [
            "Offline",
            "Busy",
            "Available"
          ]
        },
        "activeCalls": {
          "type": "array",
          "description": "Information on active calls",
          "items": {
            "$ref": "#/definitions/ActiveCallInfo"
          }
        }
      }
    },
    "ExtensionPresenceEvent": {
      "type": "object",
      "properties": {
        "extensionId": {
          "type": "string",
          "description": "Internal identifier of an extension. Optional parameter",
          "default": "~"
        },
        "telephonyStatus": {
          "type": "string",
          "description": "Telephony presence status. Returned if telephony status is changed.",
          "enum": [
            "NoCall",
            "CallConnected",
            "Ringing",
            "OnHold",
            "ParkedCall"
          ]
        },
        "sequence": {
          "type": "integer",
          "description": "Order number of a notification to state the chronology"
        },
        "presenceStatus": {
          "type": "string",
          "description": "Aggregated presence status, calculated from a number of sources",
          "enum": [
            "Offline",
            "Busy",
            "Available"
          ]
        },
        "userStatus": {
          "type": "string",
          "description": "User-defined presence status (as previously published by the user)",
          "enum": [
            "Offline",
            "Busy",
            "Available"
          ]
        },
        "dndStatus": {
          "type": "string",
          "description": "Extended DnD (Do not Disturb) status",
          "enum": [
            "TakeAllCalls",
            "DoNotAcceptAnyCalls",
            "DoNotAcceptDepartmentCalls",
            "TakeDepartmentCallsOnly"
          ]
        },
        "allowSeeMyPresence": {
          "type": "boolean",
          "description": "If 'True' enables other extensions to see the extension presence status"
        },
        "ringOnMonitoredCall": {
          "type": "boolean",
          "description": "If 'True' enables to ring extension phone, if any user monitored by this extension is ringing"
        },
        "pickUpCallsOnHold": {
          "type": "boolean",
          "description": "If 'True' enables the extension user to pick up a monitored line on hold"
        }
      }
    },
    "DetailedExtensionPresenceEvent": {
      "type": "object",
      "properties": {
        "extensionId": {
          "type": "string",
          "description": "Internal identifier of an extension. Optional parameter",
          "default": "~"
        },
        "telephonyStatus": {
          "type": "string",
          "description": "Telephony presence status. Returned if telephony status is changed.",
          "enum": [
            "NoCall",
            "CallConnected",
            "Ringing",
            "OnHold",
            "ParkedCall"
          ]
        },
        "activeCalls": {
          "type": "array",
          "description": "Collection of Active Call Info",
          "items": {
            "$ref": "#/definitions/ActiveCallInfoWithoutSIP"
          }
        },
        "sequence": {
          "type": "integer",
          "description": "Order number of a notification to state the chronology"
        },
        "presenceStatus": {
          "type": "string",
          "description": "Aggregated presence status, calculated from a number of sources",
          "enum": [
            "Offline",
            "Busy",
            "Available"
          ]
        },
        "userStatus": {
          "type": "string",
          "description": "User-defined presence status (as previously published by the user)",
          "enum": [
            "Offline",
            "Busy",
            "Available"
          ]
        },
        "dndStatus": {
          "type": "string",
          "description": "Extended DnD (Do not Disturb) status",
          "enum": [
            "TakeAllCalls",
            "DoNotAcceptAnyCalls",
            "DoNotAcceptDepartmentCalls",
            "TakeDepartmentCallsOnly"
          ]
        },
        "allowSeeMyPresence": {
          "type": "boolean",
          "description": "If 'True' enables other extensions to see the extension presence status"
        },
        "ringOnMonitoredCall": {
          "type": "boolean",
          "description": "If 'True' enables to ring extension phone, if any user monitored by this extension is ringing"
        },
        "pickUpCallsOnHold": {
          "type": "boolean",
          "description": "If 'True' enables the extension user to pick up a monitored line on hold"
        }
      }
    },
    "DetailedExtensionPresenceWithSIPEvent": {
      "type": "object",
      "properties": {
        "extensionId": {
          "type": "string",
          "description": "Internal identifier of an extension. Optional parameter",
          "default": "~"
        },
        "telephonyStatus": {
          "type": "string",
          "description": "Telephony presence status. Returned if telephony status is changed.",
          "enum": [
            "NoCall",
            "CallConnected",
            "Ringing",
            "OnHold",
            "ParkedCall"
          ]
        },
        "activeCalls": {
          "type": "array",
          "description": "Collection of Active Call Info",
          "items": {
            "$ref": "#/definitions/ActiveCallInfo"
          }
        },
        "sequence": {
          "type": "integer",
          "description": "Order number of a notification to state the chronology"
        },
        "presenceStatus": {
          "type": "string",
          "description": "Aggregated presence status, calculated from a number of sources",
          "enum": [
            "Offline",
            "Busy",
            "Available"
          ]
        },
        "userStatus": {
          "type": "string",
          "description": "User-defined presence status (as previously published by the user)",
          "enum": [
            "Offline",
            "Busy",
            "Available"
          ]
        },
        "dndStatus": {
          "type": "string",
          "description": "Extended DnD (Do not Disturb) status",
          "enum": [
            "TakeAllCalls",
            "DoNotAcceptAnyCalls",
            "DoNotAcceptDepartmentCalls",
            "TakeDepartmentCallsOnly"
          ]
        },
        "allowSeeMyPresence": {
          "type": "boolean",
          "description": "If 'True' enables other extensions to see the extension presence status"
        },
        "ringOnMonitoredCall": {
          "type": "boolean",
          "description": "If 'True' enables to ring extension phone, if any user monitored by this extension is ringing"
        },
        "pickUpCallsOnHold": {
          "type": "boolean",
          "description": "If 'True' enables the extension user to pick up a monitored line on hold"
        }
      }
    },
    "PresenceInfoResource": {
      "type": "object",
      "properties": {
        "userStatus": {
          "type": "string",
          "enum": [
            "Offline",
            "Busy",
            "Available"
          ]
        },
        "dndStatus": {
          "type": "string",
          "enum": [
            "TakeAllCalls",
            "DoNotAcceptDepartmentCalls",
            "TakeDepartmentCallsOnly",
            "DoNotAcceptAnyCalls",
            "Unknown"
          ]
        },
        "message": {
          "type": "string",
          "minLength": 0,
          "maxLength": 75
        },
        "allowSeeMyPresence": {
          "type": "boolean",
          "default": false
        },
        "ringOnMonitoredCall": {
          "type": "boolean",
          "default": false
        },
        "pickUpCallsOnHold": {
          "type": "boolean",
          "default": false
        },
        "activeCalls": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/ActiveCallInfo"
          }
        }
      }
    },
    "IncomingCallEvent": {
      "type": "object",
      "properties": {
        "aps": {
          "description": "Apple Push Notification Service Info",
          "$ref": "#/definitions/APSInfo"
        },
        "event": {
          "type": "string",
          "description": "Event filter URI"
        },
        "uuid": {
          "type": "string",
          "description": "Universally unique identifier of a notification"
        },
        "subscriptionId": {
          "type": "string",
          "description": "Internal identifier of a subscription"
        },
        "timestamp": {
          "type": "string",
          "description": "The datetime of a call action in ISO 8601 format including timezone, for example 2016-03-10T18:07:52.534Z",
          "format": "date-time"
        },
        "extensionId": {
          "type": "string",
          "description": "Internal identifier of an extension",
          "default": "~"
        },
        "action": {
          "type": "string",
          "description": "Calling action, for example 'StartRing'"
        },
        "sessionId": {
          "type": "string",
          "description": "Identifier of a call session"
        },
        "serverId": {
          "type": "string",
          "description": "Identifier of a server"
        },
        "from": {
          "type": "string",
          "description": "Phone number of a caller"
        },
        "fromName": {
          "type": "string",
          "description": "Caller name"
        },
        "to": {
          "type": "string",
          "description": "Phone number of a callee"
        },
        "toName": {
          "type": "string",
          "description": "Callee name"
        },
        "sid": {
          "type": "string",
          "description": "Unique identifier of a session"
        },
        "toUrl": {
          "type": "string",
          "description": "SIP proxy registration name"
        },
        "srvLvl": {
          "type": "string",
          "description": "User data"
        },
        "srvLvlExt": {
          "type": "string",
          "description": "User data"
        },
        "recUrl": {
          "type": "string",
          "description": "File containing recorded caller name"
        },
        "pn_ttl": {
          "type": "integer",
          "description": "Notification lifetime value in seconds, the default value is 30 seconds"
        }
      }
    },
    "APNSInfo": {
      "type": "object",
      "properties": {
        "aps": {
          "description": "Notification priority data",
          "$ref": "#/definitions/APSInfo"
        }
      }
    },
    "GetPresenceExtensionInfo": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Internal identifier of an extension"
        },
        "uri": {
          "type": "string",
          "description": "Canonical URI of an extension"
        },
        "extensionNumber": {
          "type": "string",
          "description": "Extension number (usually 3 or 4 digits)"
        }
      }
    },
    "ActiveCallInfo": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "direction": {
          "type": "string",
          "enum": [
            "Inbound",
            "Outbound"
          ]
        },
        "from": {
          "type": "string"
        },
        "to": {
          "type": "string"
        },
        "telephonyStatus": {
          "type": "string"
        },
        "sipData": {
          "$ref": "#/definitions/DetailedCallInfo"
        },
        "sessionId": {
          "type": "string"
        },
        "terminationType": {
          "type": "string"
        }
      }
    },
    "ActiveCallInfoWithoutSIP": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Internal identifier of a call"
        },
        "direction": {
          "type": "string",
          "description": "Call direction",
          "enum": [
            "Inbound",
            "Outbound"
          ]
        },
        "from": {
          "type": "string",
          "description": "Phone number or extension number of a caller"
        },
        "to": {
          "type": "string",
          "description": "Phone number or extension number of a callee"
        },
        "telephonyStatus": {
          "type": "string",
          "description": "Telephony call status",
          "enum": [
            "NoCall",
            "CallConnected",
            "Ringing",
            "OnHold",
            "ParkedCall"
          ]
        },
        "sessionId": {
          "type": "string",
          "description": "Internal identifier of a call session"
        },
        "terminationType": {
          "type": "string",
          "description": "Type of call termination. Supported for calls in 'NoCall' status. If the returned termination type is 'intermediate' it means the call is not actually ended, the connection is established on one of the devices",
          "enum": [
            "final",
            "intermediate"
          ]
        }
      }
    },
    "APSInfo": {
      "type": "object",
      "properties": {
        "content-available": {
          "type": "integer",
          "description": "If the value is '1' then notification is turned on even if the application is in background",
          "default": 1
        }
      }
    },
    "DetailedCallInfo": {
      "type": "object",
      "properties": {
        "callId": {
          "type": "string"
        },
        "toTag": {
          "type": "string"
        },
        "fromTag": {
          "type": "string"
        },
        "remoteUri": {
          "type": "string"
        },
        "localUri": {
          "type": "string"
        },
        "rcSessionId": {
          "type": "string"
        }
      }
    },
    "GlipPostInfo": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Internal identifier of a post"
        },
        "groupId": {
          "type": "string",
          "description": "Internal identifier of a group a post belongs to"
        },
        "type": {
          "type": "string",
          "enum": [
            "TextMessage",
            "PersonJoined",
            "PersonsAdded"
          ],
          "description": "Type of a post"
        },
        "text": {
          "type": "string",
          "description": "For 'TextMessage' post type only. Message text"
        },
        "creatorId": {
          "type": "string",
          "description": "Internal identifier of a user - author of a post"
        },
        "addedPersonIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "For PersonsAdded post type only. Identifiers of persons added to a group"
        },
        "creationTime": {
          "type": "string",
          "format": "date-time",
          "description": "Post creation datetime in ISO 8601 format"
        },
        "lastModifiedTime": {
          "type": "string",
          "format": "date-time",
          "description": "Post last modification datetime in ISO 8601 format"
        },
        "attachments": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/GlipMessageAttachmentInfo"
          },
          "description": "List of posted attachments"
        },
        "mentions": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/GlipMentionsInfo"
          }
        },
        "activity": {
          "type": "string",
          "description": "Label of activity type"
        },
        "title": {
          "type": "string",
          "description": "Title of the message. (Can be set for bot's messages only)"
        },
        "iconUri": {
          "type": "string",
          "description": "URI to an image to use as the icon for this message"
        },
        "iconEmoji": {
          "type": "string",
          "description": "Emoji to use as the icon for a message"
        }
      }
    },
    "PostGlipFile": {
      "type": "object",
      "required": [
        "id",
        "contentUri"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "Internal identifier of a file"
        },
        "contentUri": {
          "type": "string",
          "description": "Link to binary content"
        },
        "name": {
          "type": "string",
          "description": "Name of a file"
        }
      }
    },
    "GlipCompany": {
      "type": "object",
      "required": [
        "id",
        "creationTime",
        "lastModifiedTime"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "Internal identifier of an RC account/Glip company, or tilde (~) to indicate a company the current user belongs to"
        },
        "name": {
          "type": "string",
          "description": "Name of a company"
        },
        "domain": {
          "type": "string",
          "description": "Domain name of a company"
        },
        "creationTime": {
          "type": "string",
          "description": "Datetime of creation in ISO 8601 format"
        },
        "lastModifiedTime": {
          "type": "string",
          "description": "Datetime of last modification in ISO 8601 format"
        }
      }
    },
    "GlipGroupList": {
      "type": "object",
      "required": [
        "records"
      ],
      "properties": {
        "records": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/GlipGroupInfo"
          },
          "description": "List of groups/teams/private chats"
        },
        "navigation": {
          "$ref": "#/definitions/GlipNavigationInfo"
        }
      }
    },
    "GlipGroupsEvent": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Internal identifier of a group"
        },
        "type": {
          "type": "string",
          "description": "Type of a group. 'PrivateChat' is a group of 2 members. 'Group' is a chat of 2 and more participants, the membership cannot be changed after group creation. 'Team' is a chat of 1 and more participants, the membership can be modified in future. 'PersonalChat' is a private chat thread of a user",
          "enum": [
            "PrivateChat",
            "Group",
            "Team",
            "PersonalChat"
          ]
        },
        "isPublic": {
          "type": "boolean",
          "description": "For 'Team' group type only. Team access level"
        },
        "name": {
          "type": "string",
          "description": "For 'Team' group type only. Team name"
        },
        "description": {
          "type": "string",
          "description": "For 'Team' group type only. Team description"
        },
        "members": {
          "type": "array",
          "description": "Identifier(s) of group members",
          "items": {
            "type": "string"
          }
        },
        "creationTime": {
          "type": "string",
          "format": "date-time",
          "description": "Group creation datetime in ISO 8601 format"
        },
        "lastModifiedTime": {
          "type": "string",
          "format": "date-time",
          "description": "Group last change datetime in ISO 8601 format"
        },
        "eventType": {
          "type": "string",
          "description": "Type of a group event. Only the person who joined/was added to a group will receive 'GroupJoined' notification. Only the person who left/was removed from a group will receive 'GroupLeft' notification",
          "enum": [
            "GroupRenamed",
            "GroupJoined",
            "GroupLeft",
            "GroupChanged"
          ]
        }
      }
    },
    "GlipGroupInfo": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Internal identifier of a group"
        },
        "type": {
          "type": "string",
          "enum": [
            "PrivateChat",
            "Group",
            "Team"
          ],
          "description": "Type of a group. 'PrivateChat' is a group of 2 members. 'Group' is a chat of 2 and more participants, the membership cannot be changed after group creation. 'Team' is a chat of 1 and more participants, the membership can be modified in future"
        },
        "isPublic": {
          "type": "boolean",
          "description": "For 'Team' group type only. Team access level"
        },
        "name": {
          "type": "string",
          "description": "For 'Team' group type only. Team name"
        },
        "description": {
          "type": "string",
          "description": "For 'Team' group type only. Team description"
        },
        "members": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Identifier(s) of group members"
        },
        "creationTime": {
          "type": "string",
          "format": "date-time",
          "description": "Group creation datetime in ISO 8601 format"
        },
        "lastModifiedTime": {
          "type": "string",
          "format": "date-time",
          "description": "Group last change datetime in ISO 8601 format"
        }
      }
    },
    "EditGroupRequest": {
      "type": "object",
      "properties": {
        "addedPersonIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of users to be added to a team"
        },
        "addedPersonEmails": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of user email addresses to be added to the team (i.e. as guests)"
        },
        "removedPersonIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of users to be removed from the team"
        }
      }
    },
    "GlipCreatePost": {
      "type": "object",
      "properties": {
        "activity": {
          "type": "string",
          "description": "Label of an activity type"
        },
        "title": {
          "type": "string",
          "description": "Title of a message. (Can be set for bot's messages only)."
        },
        "iconUri": {
          "type": "string",
          "description": "URI to an image to use as an icon for a message."
        },
        "iconEmoji": {
          "type": "string",
          "description": "Emoji to use as the icon for a message."
        },
        "text": {
          "type": "string",
          "description": "Text of a post",
          "maximum": 1000
        },
        "attachments": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/GlipMessageAttachmentInfoRequest"
          },
          "description": "List of attachments to be posted"
        }
      }
    },
    "GlipWebhookList": {
      "type": "object",
      "properties": {
        "records": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/GlipWebhookInfo"
          }
        }
      }
    },
    "GlipCreateGroup": {
      "type": "object",
      "required": [
        "type"
      ],
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "PrivateChat",
            "Team"
          ],
          "description": "Type of a group to be created. 'PrivateChat' is a group of 2 members. 'Team' is a chat of 1 and more participants, the membership can be modified in future"
        },
        "isPublic": {
          "type": "boolean",
          "description": "For 'Team' group type only. Team access level"
        },
        "name": {
          "type": "string",
          "description": "For 'Team' group type only. Team name"
        },
        "description": {
          "type": "string",
          "description": "For 'Team' group type only. Team description"
        },
        "members": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Identifier(s) of group members. For 'PrivateChat' group type 2 members only are supported"
        }
      }
    },
    "GlipPosts": {
      "type": "object",
      "required": [
        "records"
      ],
      "properties": {
        "records": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/GlipPostInfo"
          },
          "description": "List of posts"
        },
        "navigation": {
          "$ref": "#/definitions/GlipNavigationInfo"
        }
      }
    },
    "GlipPersonInfo": {
      "type": "object",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "Internal identifier of a user"
        },
        "firstName": {
          "type": "string",
          "description": "First name of a user"
        },
        "lastName": {
          "type": "string",
          "description": "Last name of a user"
        },
        "email": {
          "type": "string",
          "description": "Email of a user"
        },
        "avatar": {
          "type": "string",
          "description": "Photo of a user"
        },
        "companyId": {
          "type": "string",
          "description": "Internal identifier of a company"
        },
        "creationTime": {
          "type": "string",
          "format": "date-time",
          "description": "Time of creation in ISO 8601 format"
        },
        "lastModifiedTime": {
          "type": "string",
          "format": "date-time",
          "description": "Time of last modification in ISO 8601 format"
        }
      }
    },
    "GlipWebhookInfo": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Internal identifier of a webhook"
        },
        "creatorId": {
          "type": "string",
          "description": "Internal identifier of a user who created a webhook"
        },
        "groupsId": {
          "type": "array",
          "description": "IDs of groups where webhook has been created",
          "items": {
            "type": "string"
          }
        },
        "creationTime": {
          "type": "string",
          "description": "Webhook creation time in ISO 8601 format",
          "format": "date-time"
        },
        "lastModifiedTime": {
          "type": "string",
          "description": "Webhook last update time in ISO 8601 format",
          "format": "date-time"
        },
        "uri": {
          "type": "string",
          "description": "Public URL to send a webhook payload"
        },
        "status": {
          "type": "string",
          "description": "Current status of a webhook",
          "enum": [
            "Active",
            "Suspended",
            "Deleted"
          ]
        }
      }
    },
    "GlipMessageAttachmentInfo": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Internal identifier of an attachment"
        },
        "type": {
          "type": "string",
          "description": "Type of an attachment",
          "default": "Card"
        },
        "fallback": {
          "type": "string",
          "description": "A string of default text that will be rendered in case the client does not support Interactive Messages"
        },
        "color": {
          "type": "string",
          "description": "A Hex color code that determines the color of the side border of the Interactive Message"
        },
        "intro": {
          "type": "string",
          "description": "A pretext to a message"
        },
        "author": {
          "description": "Information about the author",
          "$ref": "#/definitions/GlipMessageAttachmentAuthorInfo"
        },
        "title": {
          "type": "string",
          "description": "Message title"
        },
        "text": {
          "type": "string",
          "description": "A large string field (up to 1000 chars) displayed as a body of the message (supports GlipDown)"
        },
        "imageUri": {
          "type": "string",
          "description": "Link to a single image at the bottom of a message"
        },
        "thumbnailUri": {
          "type": "string",
          "description": "Link to a thumbnail to the right of a message (82x82)"
        },
        "fields": {
          "type": "array",
          "description": "Information on navigation",
          "items": {
            "$ref": "#/definitions/GlipMessageAttachmentFieldsInfo"
          }
        },
        "footnote": {
          "description": "Message Footer",
          "$ref": "#/definitions/GlipMessageAttachmentFootnoteInfo"
        }
      }
    },
    "GlipMentionsInfo": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Id of a user"
        },
        "type": {
          "type": "string",
          "description": "Type of mentions",
          "enum": [
            "Person",
            "Team",
            "File",
            "Link",
            "Event",
            "Task",
            "Note",
            "Card"
          ]
        },
        "name": {
          "type": "string",
          "description": "Name of a user"
        }
      }
    },
    "GlipNavigationInfo": {
      "type": "object",
      "properties": {
        "prevPageToken": {
          "type": "string",
          "description": "Previous page token. To get the previous page please pass this token in a new request"
        },
        "nextPageToken": {
          "type": "string",
          "description": "Next page token. To get the next page please pass this token in a new request"
        }
      }
    },
    "GlipMessageAttachmentInfoRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "description": "Type of an attachment",
          "default": "Card"
        },
        "fallback": {
          "type": "string",
          "description": "A string of default text that will be rendered in the case that the client does not support Interactive Messages"
        },
        "color": {
          "type": "string",
          "description": "A Hex color code that determines the color of the side border of the Interactive Message"
        },
        "intro": {
          "type": "string",
          "description": "A pretext to the message"
        },
        "author": {
          "description": "Information about the author",
          "$ref": "#/definitions/GlipMessageAttachmentAuthorInfo"
        },
        "title": {
          "type": "string",
          "description": "Message title"
        },
        "text": {
          "type": "string",
          "description": "A large string field (up to 1000 chars) to be displayed as the body of a message (Supports GlipDown)"
        },
        "imageUri": {
          "type": "string",
          "description": "Link to a single image at the bottom of a message"
        },
        "thumbnailUri": {
          "type": "string",
          "description": "Link to a thumbnail to the right of a message (82x82)"
        },
        "fields": {
          "type": "array",
          "description": "Information on navigation",
          "items": {
            "$ref": "#/definitions/GlipMessageAttachmentFieldsInfo"
          }
        },
        "footnote": {
          "description": "Message Footer",
          "$ref": "#/definitions/GlipMessageAttachmentFootnoteInfo"
        }
      }
    },
    "GlipMessageAttachmentAuthorInfo": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "description": "The author's name"
        },
        "uri": {
          "type": "string",
          "description": "Link to an author's name"
        },
        "iconUri": {
          "type": "string",
          "description": "A url to an image up to 82x82px displayed to the left of an author’s name"
        }
      }
    },
    "GlipMessageAttachmentFieldsInfo": {
      "type": "object",
      "properties": {
        "title": {
          "type": "string",
          "description": "Title of an individual field"
        },
        "value": {
          "type": "string",
          "description": "Field value (supports Markdown)"
        },
        "style": {
          "type": "string",
          "description": "A style used to flag fields that should span the width of a message",
          "default": "Short",
          "enum": [
            "Short",
            "Long"
          ]
        }
      }
    },
    "GlipMessageAttachmentFootnoteInfo": {
      "type": "object",
      "properties": {
        "text": {
          "type": "string",
          "description": "A string used to be displayed as a body of the footer."
        },
        "iconUri": {
          "type": "string",
          "description": "A URL used to display a 32x32px icon to the left of the footer"
        },
        "time": {
          "type": "string",
          "description": "A Unix timestamp to be displayed to the right of the footer (prettified)",
          "format": "date-time"
        }
      }
    },
    "MeetingServiceInfoResource": {
      "type": "object",
      "properties": {
        "uri": {
          "type": "string",
          "format": "uri"
        },
        "supportUri": {
          "type": "string"
        },
        "intlDialInNumbersUri": {
          "type": "string"
        },
        "externalUserInfo": {
          "$ref": "#/definitions/MeetingExternalUserInfoResource"
        },
        "dialInNumbers": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/DialInNumberResource"
          }
        }
      }
    },
    "MeetingsResource": {
      "type": "object",
      "properties": {
        "uri": {
          "type": "string",
          "format": "uri"
        },
        "records": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/MeetingResponseResource"
          }
        },
        "paging": {
          "$ref": "#/definitions/Paging"
        },
        "navigation": {
          "$ref": "#/definitions/Navigation"
        }
      }
    },
    "MeetingRequestResource": {
      "type": "object",
      "properties": {
        "topic": {
          "type": "string"
        },
        "meetingType": {
          "type": "string"
        },
        "schedule": {
          "$ref": "#/definitions/MeetingScheduleResource"
        },
        "password": {
          "type": "string"
        },
        "host": {
          "$ref": "#/definitions/HostInfoRequest"
        },
        "allowJoinBeforeHost": {
          "type": "boolean",
          "default": false
        },
        "startHostVideo": {
          "type": "boolean",
          "default": false
        },
        "startParticipantsVideo": {
          "type": "boolean",
          "default": false
        },
        "audioOptions": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "MeetingResponseResource": {
      "type": "object",
      "properties": {
        "uri": {
          "type": "string",
          "format": "uri"
        },
        "uuid": {
          "type": "string"
        },
        "id": {
          "type": "string"
        },
        "topic": {
          "type": "string"
        },
        "meetingType": {
          "type": "string"
        },
        "password": {
          "type": "string"
        },
        "status": {
          "type": "string"
        },
        "links": {
          "$ref": "#/definitions/MeetingLinks"
        },
        "schedule": {
          "$ref": "#/definitions/MeetingScheduleResource"
        },
        "allowJoinBeforeHost": {
          "type": "boolean",
          "default": false
        },
        "startHostVideo": {
          "type": "boolean",
          "default": false
        },
        "startParticipantsVideo": {
          "type": "boolean",
          "default": false
        },
        "audioOptions": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "MeetingExternalUserInfoResource": {
      "type": "object",
      "properties": {
        "uri": {
          "type": "string",
          "format": "uri"
        },
        "userId": {
          "type": "string"
        },
        "accountId": {
          "type": "string"
        },
        "userType": {
          "type": "integer",
          "format": "int64"
        },
        "userToken": {
          "type": "string"
        }
      }
    },
    "DialInNumberResource": {
      "type": "object",
      "properties": {
        "phoneNumber": {
          "type": "string"
        },
        "formattedNumber": {
          "type": "string"
        },
        "location": {
          "type": "string"
        },
        "country": {
          "$ref": "#/definitions/CountryResource"
        }
      }
    },
    "Navigation": {
      "type": "object",
      "properties": {
        "nextPage": {
          "$ref": "#/definitions/ResourceLink"
        },
        "previousPage": {
          "$ref": "#/definitions/ResourceLink"
        },
        "firstPage": {
          "$ref": "#/definitions/ResourceLink"
        },
        "lastPage": {
          "$ref": "#/definitions/ResourceLink"
        }
      }
    },
    "MeetingScheduleResource": {
      "type": "object",
      "properties": {
        "startTime": {
          "type": "string"
        },
        "durationInMinutes": {
          "type": "integer",
          "format": "int32"
        },
        "timeZone": {
          "$ref": "#/definitions/TimezoneResource"
        }
      }
    },
    "HostInfoRequest": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Internal identifier of an extension which is assigned to be a meeting host. The default value is currently logged-in extension identifier"
        }
      }
    },
    "MeetingLinks": {
      "type": "object",
      "properties": {
        "startUri": {
          "type": "string"
        },
        "joinUri": {
          "type": "string"
        }
      }
    },
    "ResourceLink": {
      "type": "object",
      "properties": {
        "uri": {
          "type": "string",
          "format": "uri"
        }
      }
    },
    "TimezoneResource": {
      "type": "object",
      "properties": {
        "uri": {
          "type": "string",
          "format": "uri"
        },
        "id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "description": {
          "type": "string"
        }
      }
    },
    "CountryResource": {
      "type": "object",
      "properties": {
        "uri": {
          "type": "string",
          "format": "uri"
        },
        "id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "isoCode": {
          "type": "string"
        },
        "callingCode": {
          "type": "string"
        },
        "emergencyCalling": {
          "type": "boolean",
          "default": false
        },
        "numberSelling": {
          "type": "boolean",
          "default": false
        },
        "loginAllowed": {
          "type": "boolean",
          "default": false
        }
      }
    },
    "RecordsCollectionResourceSubscriptionResponse": {
      "type": "object",
      "properties": {
        "uri": {
          "type": "string",
          "format": "uri"
        },
        "records": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/SubscriptionInfo"
          }
        }
      }
    },
    "CreateSubscriptionRequest": {
      "type": "object",
      "required": [
        "deliveryMode"
      ],
      "properties": {
        "eventFilters": {
          "type": "array",
          "description": "Mandatory. Collection of URIs to API resources (see Event Types for details). For APNS transport type only message event filter is available",
          "items": {
            "type": "string"
          }
        },
        "deliveryMode": {
          "description": "Notification delivery settings",
          "$ref": "#/definitions/NotificationDeliveryModeRequest"
        },
        "expiresIn": {
          "type": "integer",
          "description": "Subscription lifetime in seconds. Max value is 7 days (604800 sec)"
        }
      }
    },
    "SubscriptionInfo": {
      "type": "object",
      "required": [
        "deliveryMode"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "Internal identifier of a subscription"
        },
        "uri": {
          "type": "string",
          "description": "Canonical URI of a subscription"
        },
        "eventFilters": {
          "type": "array",
          "description": "Collection of API resources (message-store/presence/detailed presence) corresponding to events the user is subscribed to",
          "items": {
            "type": "string"
          }
        },
        "disabledFilters": {
          "type": "array",
          "description": "Collection of API resources (message-store/presence/detailed presence) corresponding to events the user is not subscribed to due to certain limitations",
          "items": {
            "$ref": "#/definitions/DisabledFilterInfo"
          }
        },
        "expirationTime": {
          "type": "string",
          "format": "date-time",
          "description": "Subscription expiration datetime in ISO 8601 format including timezone, for example 2016-03-10T18:07:52.534Z"
        },
        "expiresIn": {
          "type": "integer",
          "description": "Subscription lifetime in seconds",
          "default": 900
        },
        "status": {
          "type": "string",
          "description": "Subscription status",
          "enum": [
            "Active",
            "Suspended",
            "Blacklisted"
          ]
        },
        "creationTime": {
          "type": "string",
          "format": "date-time",
          "description": "Subscription creation datetime in ISO 8601 format including timezone, for example 2016-03-10T18:07:52.534Z"
        },
        "deliveryMode": {
          "description": "Delivery mode data",
          "$ref": "#/definitions/NotificationDeliveryMode"
        },
        "blacklistedData": {
          "$ref": "#/definitions/NotificationBlacklistedData"
        }
      }
    },
    "ModifySubscriptionRequest": {
      "type": "object",
      "properties": {
        "eventFilters": {
          "type": "array",
          "description": "Collection of URIs to API resources (see Event Types). Mandatory field",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "NotificationDeliveryModeRequest": {
      "type": "object",
      "properties": {
        "transportType": {
          "type": "string",
          "description": "Notifications transportation provider name. 'APNS' (Apple Push Notifications Service)",
          "enum": [
            "PubNub",
            "WebHook",
            "APNS",
            "PubNub/APNS",
            "PubNub/GCM"
          ]
        },
        "address": {
          "type": "string",
          "description": "Mandatory for 'APNS' and 'WebHook' transport types. For 'APNS' - internal identifier of a device 'device_token' for 'WebHook' - URL of a consumer service (cannot be changed during subscription update)"
        },
        "encryption": {
          "type": "boolean",
          "description": "Optional parameter. Specifies if the message will be encrypted or not. If request contains any presence event filter the value by default is 'True' (even if specified as 'false'). If request contains only message event filters the value by default is 'False'"
        },
        "certificateName": {
          "type": "string",
          "description": "For 'PubNub/APNS' and 'PubNub/GCM' transport types. Name of a certificate"
        },
        "registrationId": {
          "type": "string",
          "description": "For 'PubNub/APNS' and 'PubNub/GCM' transport types. Identifier of a registration"
        }
      }
    },
    "DisabledFilterInfo": {
      "type": "object",
      "properties": {
        "filter": {
          "type": "string",
          "description": "Event filter that is disabled for the user"
        },
        "reason": {
          "type": "string",
          "description": "Reason why the filter is disabled for the user"
        },
        "message": {
          "type": "string",
          "description": "Error message"
        }
      }
    },
    "NotificationDeliveryMode": {
      "type": "object",
      "properties": {
        "transportType": {
          "type": "string",
          "description": "Notifications transportation provider name. 'APNS' (Apple Push Notifications Service)",
          "enum": [
            "PubNub",
            "APNS",
            "PubNub/APNS/VoIP"
          ]
        },
        "encryption": {
          "type": "boolean",
          "description": "Optional parameter. Specifies if the message will be encrypted or not. For APNS transport type the value is always  false "
        },
        "address": {
          "type": "string",
          "description": "PubNub channel name. For APNS transport type - internal identifier of a device  device_token "
        },
        "subscriberKey": {
          "type": "string",
          "description": "PubNub subscriber credentials required to subscribe to the channel"
        },
        "secretKey": {
          "type": "string",
          "description": "PubNub subscriber credentials required to subscribe to the channel. Optional (for PubNub transport type only)"
        },
        "encryptionAlgorithm": {
          "type": "string",
          "description": "Encryption algorithm 'AES' (for PubNub transport type only)"
        },
        "encryptionKey": {
          "type": "string",
          "description": "Key for notification message decryption (for PubNub transport type only)"
        }
      }
    },
    "NotificationBlacklistedData": {
      "description": "Returned if WebHook subscription is blacklisted",
      "type": "object",
      "properties": {
        "blacklistedAt": {
          "type": "string",
          "format": "date-time",
          "description": "Time of adding subscrition to a black list in (ISO 8601)[https://en.wikipedia.org/wiki/ISO_8601] format including timezone, for example *2016-03-10T18:07:52.534Z*"
        },
        "reason": {
          "type": "string",
          "description": "Reason of adding subscrition to a black list"
        }
      }
    },
    "AuthProfileResource": {
      "type": "object",
      "properties": {
        "uri": {
          "type": "string",
          "format": "uri"
        },
        "permissions": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/ActivePermissionResource"
          }
        }
      }
    },
    "AuthProfileCheckResource": {
      "type": "object",
      "properties": {
        "uri": {
          "type": "string",
          "format": "uri"
        },
        "successful": {
          "type": "boolean",
          "default": false
        },
        "details": {
          "$ref": "#/definitions/ActivePermissionResource"
        }
      }
    },
    "ActivePermissionResource": {
      "type": "object",
      "properties": {
        "permission": {
          "$ref": "#/definitions/PermissionIdResource"
        },
        "effectiveRole": {
          "$ref": "#/definitions/RoleIdResource"
        },
        "scopes": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "PermissionIdResource": {
      "type": "object",
      "properties": {
        "uri": {
          "type": "string",
          "format": "uri"
        },
        "id": {
          "type": "string"
        },
        "siteCompatible": {
          "type": "string",
          "enum": [
            "Compatible",
            "Incompatible",
            "Independent"
          ],
          "description": "Site compatibility flag set for permission"
        }
      }
    },
    "RoleIdResource": {
      "type": "object",
      "properties": {
        "uri": {
          "type": "string",
          "format": "uri"
        },
        "id": {
          "type": "string"
        }
      }
    },
    "CallRecordingSettingsResource": {
      "type": "object",
      "properties": {
        "onDemand": {
          "$ref": "#/definitions/OnDemandResource"
        },
        "automatic": {
          "$ref": "#/definitions/AutomaticRecordingResource"
        },
        "greetings": {
          "type": "array",
          "description": "Collection of Greeting Info",
          "items": {
            "$ref": "#/definitions/GreetingResource"
          }
        }
      }
    },
    "CompanyBusinessHours": {
      "type": "object",
      "properties": {
        "uri": {
          "type": "string",
          "description": "Canonical URI of a business-hours resource "
        },
        "schedule": {
          "description": "Schedule when an answering rule is applied",
          "$ref": "#/definitions/CompanyBusinessHoursScheduleInfo"
        }
      },
      "example": {
        "uri": "https.../restapi/v1.0/account/401800045008/business-hours",
        "schedule": {
          "weeklyRanges": {
            "wednesday": [
              {
                "from": "09:00",
                "to": "18:00"
              }
            ],
            "friday": [
              {
                "from": "09:00",
                "to": "18:00"
              }
            ],
            "tuesday": [
              {
                "from": "09:00",
                "to": "18:00"
              }
            ],
            "monday": [
              {
                "from": "09:00",
                "to": "18:00"
              }
            ],
            "thursday": [
              {
                "from": "09:00",
                "to": "18:00"
              }
            ]
          }
        }
      }
    },
    "BlockedNumbersList": {
      "type": "object",
      "properties": {
        "records": {
          "type": "array",
          "description": "List of blocked phone numbers",
          "items": {
            "$ref": "#/definitions/BlockedNumberInfo"
          }
        },
        "navigation": {
          "description": "Information on navigation",
          "$ref": "#/definitions/NavigationInfo"
        },
        "paging": {
          "description": "Information on paging",
          "$ref": "#/definitions/PagingInfo"
        }
      }
    },
    "BlockedNumberInfo": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Internal identifier of a blocked number"
        },
        "uri": {
          "type": "string",
          "description": "Canonical URI of a blocked number"
        },
        "name": {
          "type": "string",
          "description": "Name assigned by a user to a blocked phone number"
        },
        "phoneNumber": {
          "type": "string",
          "description": "Phone number to be blocked"
        }
      }
    },
    "DictionaryGreetingInfo": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Internal identifier of a greeting"
        },
        "uri": {
          "type": "string",
          "description": "Link to a greeting"
        },
        "name": {
          "type": "string",
          "description": "Name of a greeting"
        },
        "usageType": {
          "type": "string",
          "description": "Usage type of a greeting, specifying if the greeting is applied for user extension or department extension = ['UserExtensionAnsweringRule', 'ExtensionAnsweringRule', 'DepartmentExtensionAnsweringRule', 'CompanyAnsweringRule', 'CompanyAfterHoursAnsweringRule']",
          "enum": [
            "UserExtensionAnsweringRule",
            "ExtensionAnsweringRule",
            "DepartmentExtensionAnsweringRule",
            "CompanyAnsweringRule",
            "CompanyAfterHoursAnsweringRule"
          ]
        },
        "text": {
          "type": "string",
          "description": "Text of a greeting, if any"
        },
        "contentUri": {
          "type": "string",
          "description": "Link to a greeting content (audio file), if any"
        },
        "type": {
          "type": "string",
          "description": "Type of a greeting, specifying the case when the greeting is played. See Greeting Types = ['Introductory', 'Announcement', 'ConnectingMessage', 'ConnectingAudio', 'Voicemail', 'Unavailable', 'InterruptPrompt', 'HoldMusic', 'Company']",
          "enum": [
            "Introductory",
            "Announcement",
            "ConnectingMessage",
            "ConnectingAudio",
            "Voicemail",
            "Unavailable",
            "InterruptPrompt",
            "HoldMusic",
            "Company"
          ]
        },
        "category": {
          "type": "string",
          "description": "Category of a greeting, specifying data form. The category value 'None' specifies that greetings of a certain type ('Introductory', 'ConnectingAudio', etc.) are switched off for an extension = ['Music', 'Message', 'Ring Tones', 'None']",
          "enum": [
            "Music",
            "Message",
            "Ring Tones",
            "None"
          ]
        },
        "navigation": {
          "description": "Information on navigation",
          "$ref": "#/definitions/NavigationInfo"
        },
        "paging": {
          "description": "Information on paging",
          "$ref": "#/definitions/PagingInfo"
        }
      }
    },
    "GetUserBusinessHoursResponse": {
      "type": "object",
      "properties": {
        "uri": {
          "type": "string",
          "description": "Canonical URI of a business-hours resource"
        },
        "schedule": {
          "description": "Schedule when an answering rule is applied",
          "$ref": "#/definitions/ScheduleInfoUserBusinessHours"
        }
      },
      "example": {
        "uri": "https.../restapi/v1.0/account/401800045008/extension/401800045008/business-hours",
        "schedule": {
          "weeklyRanges": {
            "wednesday": [
              {
                "from": "09:00",
                "to": "18:00"
              }
            ],
            "friday": [
              {
                "from": "09:00",
                "to": "18:00"
              }
            ],
            "tuesday": [
              {
                "from": "09:00",
                "to": "18:00"
              }
            ],
            "monday": [
              {
                "from": "09:00",
                "to": "18:00"
              }
            ],
            "thursday": [
              {
                "from": "09:00",
                "to": "18:00"
              }
            ]
          }
        }
      }
    },
    "CompanyAnsweringRuleUpdate": {
      "type": "object",
      "properties": {
        "enabled": {
          "type": "boolean",
          "description": "Specifies if the rule is active or inactive. The default value is 'True'",
          "default": true
        },
        "name": {
          "type": "string",
          "description": "Name of an answering rule specified by user. Max number of symbols is 30. The default value is 'My Rule N' where 'N' is the first free number"
        },
        "callers": {
          "type": "array",
          "description": "Answering rule will be applied when calls are received from the specified caller(s)",
          "items": {
            "$ref": "#/definitions/CompanyAnsweringRuleCallersInfoRequest"
          }
        },
        "calledNumbers": {
          "type": "array",
          "description": "Answering rule will be applied when calling the specified number(s)",
          "items": {
            "$ref": "#/definitions/CompanyAnsweringRuleCalledNumberInfo"
          }
        },
        "schedule": {
          "description": "Schedule when an answering rule should be applied",
          "$ref": "#/definitions/CompanyAnsweringRuleScheduleInfoRequest"
        },
        "callHandlingAction": {
          "type": "string",
          "description": "Specifies how incoming calls are forwarded. The default value is 'Operator' 'Operator' - play company greeting and forward to operator extension 'Disconnect' - play company greeting and disconnect 'Bypass' - bypass greeting to go to selected extension = ['Operator', 'Disconnect', 'Bypass']",
          "enum": [
            "Operator",
            "Disconnect",
            "Bypass"
          ]
        },
        "extension": {
          "description": "Extension to which the call is forwarded in 'Bypass' mode",
          "$ref": "#/definitions/CompanyAnsweringRuleCallersInfoRequest"
        },
        "greetings": {
          "type": "array",
          "description": "Greetings applied for an answering rule; only predefined greetings can be applied, see Dictionary Greeting List",
          "items": {
            "$ref": "#/definitions/GreetingInfo"
          }
        }
      }
    },
    "CustomCompanyGreetingInfo": {
      "type": "object",
      "properties": {
        "uri": {
          "type": "string",
          "description": "Link to an extension custom greeting"
        },
        "id": {
          "type": "string",
          "description": "Internal identifier of an answering rule"
        },
        "type": {
          "type": "string",
          "description": "Type of a company greeting",
          "enum": [
            "Company",
            "StartRecording",
            "StopRecording",
            "AutomaticRecording"
          ]
        },
        "contentType": {
          "type": "string",
          "description": "Content media type in WAV/MP3 format",
          "enum": [
            "WAV",
            "MP3"
          ]
        },
        "contentUri": {
          "type": "string",
          "description": "Link to a greeting content (audio file)"
        },
        "answeringRule": {
          "description": "Information on an answering rule that the greeting is applied to",
          "$ref": "#/definitions/CustomGreetingAnsweringRuleInfo"
        },
        "language": {
          "description": "Information on a greeting language. Supported for types 'StopRecording', 'StartRecording', 'AutomaticRecording'",
          "$ref": "#/definitions/CustomCompanyGreetingLanguageInfo"
        }
      }
    },
    "UserBusinessHoursUpdate": {
      "type": "object",
      "properties": {
        "uri": {
          "type": "string",
          "description": "Canonical URI of a business-hours resource"
        },
        "schedule": {
          "description": "Schedule when an answering rule is applied",
          "$ref": "#/definitions/UserBusinessHoursScheduleInfo"
        }
      }
    },
    "GetExtensionForwardingNumberListResponse": {
      "type": "object",
      "properties": {
        "records": {
          "type": "array",
          "description": "List of forwarding phone numbers",
          "items": {
            "$ref": "#/definitions/ForwardingNumberInfo"
          }
        },
        "navigation": {
          "description": "Information on navigation",
          "$ref": "#/definitions/NavigationInfo"
        },
        "paging": {
          "description": "Information on paging",
          "$ref": "#/definitions/PagingInfo"
        }
      }
    },
    "DictionaryGreetingList": {
      "type": "object",
      "properties": {
        "uri": {
          "type": "string",
          "description": "Canonical URI of greetings list resource"
        },
        "records": {
          "type": "array",
          "description": "List of greetings",
          "items": {
            "$ref": "#/definitions/DictionaryGreetingInfo"
          }
        }
      }
    },
    "IVRPrompts": {
      "type": "object",
      "properties": {
        "uri": {
          "type": "string",
          "description": "Link to prompts library resource"
        },
        "records": {
          "type": "array",
          "description": "List of Prompts",
          "items": {
            "$ref": "#/definitions/PromptInfo"
          }
        },
        "navigation": {
          "description": "Information on navigation",
          "$ref": "#/definitions/NavigationInfo"
        },
        "paging": {
          "description": "Information on paging",
          "$ref": "#/definitions/PagingInfo"
        }
      }
    },
    "CustomUserGreetingInfo": {
      "type": "object",
      "properties": {
        "uri": {
          "type": "string",
          "description": "Link to a custom user greeting"
        },
        "id": {
          "type": "string",
          "description": "Internal identifier of a custom user greeting"
        },
        "type": {
          "type": "string",
          "description": "Type of a custom user greeting",
          "enum": [
            "Introductory",
            "Announcement",
            "ConnectingAudio",
            "ConnectingMessage",
            "Voicemail",
            "Unavailable",
            "HoldMusic"
          ]
        },
        "contentType": {
          "type": "string",
          "description": "Content media type in WAV/MP3 format",
          "enum": [
            "WAV",
            "MP3"
          ]
        },
        "contentUri": {
          "type": "string",
          "description": "Link to a greeting content (audio file)"
        },
        "answeringRule": {
          "description": "Information on an answering rule that the greeting is applied to",
          "$ref": "#/definitions/CustomGreetingAnsweringRuleInfo"
        }
      }
    },
    "IVRMenuInfo": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Internal identifier of an IVR Menu extension"
        },
        "uri": {
          "type": "string",
          "description": "Link to an IVR Menu extension resource"
        },
        "name": {
          "type": "string",
          "description": "First name of an IVR Menu user"
        },
        "extensionNumber": {
          "type": "string",
          "description": "Number of an IVR Menu extension"
        },
        "prompt": {
          "description": "Prompt metadata",
          "$ref": "#/definitions/IVRMenuPromptInfo"
        },
        "actions": {
          "type": "array",
          "description": "Keys handling settings",
          "items": {
            "$ref": "#/definitions/IVRMenuActionsInfo"
          }
        }
      }
    },
    "UpdateForwardingNumberRequest": {
      "type": "object",
      "properties": {
        "phoneNumber": {
          "type": "string",
          "description": "Forwarding/Call flip phone number"
        },
        "label": {
          "type": "string",
          "description": "Forwarding/Call flip number title"
        },
        "flipNumber": {
          "type": "string",
          "description": "Number assigned to the call flip phone number, corresponds to the shortcut dial number"
        }
      }
    },
    "AnsweringRuleInfo": {
      "type": "object",
      "properties": {
        "uri": {
          "type": "string",
          "description": "Canonical URI to the answering rule resource"
        },
        "id": {
          "type": "string",
          "description": "Internal identifier of an answering rule"
        },
        "type": {
          "type": "string",
          "description": "Type of an answering rule",
          "enum": [
            "BusinessHours",
            "AfterHours",
            "Custom"
          ]
        },
        "name": {
          "type": "string",
          "description": "Name of an answering rule specified by user"
        },
        "enabled": {
          "type": "boolean",
          "description": "Specifies if an answering rule is active or inactive"
        },
        "schedule": {
          "description": "Schedule when an answering rule should be applied",
          "$ref": "#/definitions/ScheduleInfo"
        },
        "calledNumbers": {
          "type": "array",
          "description": "Answering rules are applied when calling to selected number(s)",
          "items": {
            "$ref": "#/definitions/CalledNumberInfo"
          }
        },
        "callers": {
          "type": "array",
          "description": "Answering rules are applied when calls are received from specified caller(s)",
          "items": {
            "$ref": "#/definitions/CallersInfo"
          }
        },
        "callHandlingAction": {
          "type": "string",
          "description": "Specifies how incoming calls are forwarded",
          "enum": [
            "ForwardCalls",
            "UnconditionalForwarding",
            "AgentQueue",
            "TransferToExtension",
            "TakeMessagesOnly",
            "PlayAnnouncementOnly"
          ]
        },
        "forwarding": {
          "description": "Forwarding parameters. Returned if 'ForwardCalls' is specified in 'callHandlingAction'. These settings determine the forwarding numbers to which the call will be forwarded",
          "$ref": "#/definitions/ForwardingInfo"
        },
        "unconditionalForwarding": {
          "description": "Unconditional forwarding parameters. Returned if 'UnconditionalForwarding' is specified in 'callHandlingAction'",
          "$ref": "#/definitions/UnconditionalForwardingInfo"
        },
        "queue": {
          "description": "Queue settings applied for department (call queue) extension type, with the 'AgentQueue' value specified as a call handling action",
          "$ref": "#/definitions/QueueInfo"
        },
        "transfer": {
          "description": "Transfer settings applied for department (call queue) extension type, with 'TransferToExtension' call handling action",
          "$ref": "#/definitions/TransferredExtensionInfo"
        },
        "voicemail": {
          "description": "Specifies whether to take a voicemail and who should do it",
          "$ref": "#/definitions/VoicemailInfo"
        },
        "greetings": {
          "type": "array",
          "description": "Greetings applied for an answering rule; only predefined greetings can be applied, see Dictionary Greeting List",
          "items": {
            "$ref": "#/definitions/GreetingInfo"
          }
        },
        "screening": {
          "type": "string",
          "description": "Call screening status. 'Off' - no call screening; 'NoCallerId' - if caller ID is missing, then callers are asked to say their name before connecting; 'UnknownCallerId' - if caller ID is not in contact list, then callers are asked to say their name before connecting; 'Always' - the callers are always asked to say their name before connecting. The default value is 'Off'",
          "enum": [
            "Off",
            "NoCallerId",
            "UnknownCallerId",
            "Always"
          ]
        }
      }
    },
    "CompanyAnsweringRuleInfo": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Internal identifier of an answering rule"
        },
        "uri": {
          "type": "string",
          "description": "Canonical URI of an answering rule"
        },
        "enabled": {
          "type": "boolean",
          "description": "Specifies if the rule is active or inactive. The default value is 'True'",
          "default": true
        },
        "type": {
          "type": "string",
          "description": "Type of an answering rule, the default value is 'Custom' = ['BusinessHours', 'AfterHours', 'Custom']",
          "enum": [
            "BusinessHours",
            "AfterHours",
            "Custom"
          ]
        },
        "name": {
          "type": "string",
          "description": "Name of an answering rule specified by user. Max number of symbols is 30. The default value is 'My Rule N' where 'N' is the first free number"
        },
        "callers": {
          "type": "array",
          "description": "Answering rule will be applied when calls are received from the specified caller(s)",
          "items": {
            "$ref": "#/definitions/CompanyAnsweringRuleCallersInfoRequest"
          }
        },
        "calledNumbers": {
          "type": "array",
          "description": "Answering rule will be applied when calling the specified number(s)",
          "items": {
            "$ref": "#/definitions/CompanyAnsweringRuleCalledNumberInfoRequest"
          }
        },
        "schedule": {
          "description": "Schedule when an answering rule should be applied ,",
          "$ref": "#/definitions/CompanyAnsweringRuleScheduleInfo"
        },
        "callHandlingAction": {
          "type": "string",
          "description": "Specifies how incoming calls are forwarded. The default value is 'Operator' 'Operator' - play company greeting and forward to operator extension 'Disconnect' - play company greeting and disconnect 'Bypass' - bypass greeting to go to selected extension = ['Operator', 'Disconnect', 'Bypass']",
          "enum": [
            "Operator",
            "Disconnect",
            "Bypass"
          ]
        },
        "extension": {
          "description": "Extension to which the call is forwarded in 'Bypass' mode",
          "$ref": "#/definitions/CompanyAnsweringRuleCallersInfoRequest"
        },
        "greetings": {
          "type": "array",
          "description": "Greetings applied for an answering rule; only predefined greetings can be applied, see Dictionary Greeting List",
          "items": {
            "$ref": "#/definitions/GreetingInfo"
          }
        }
      }
    },
    "CustomCompanyGreetingRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "description": "Type of a greeting",
          "enum": [
            "Company",
            "StartRecording",
            "StopRecording",
            "AutomaticRecording"
          ]
        },
        "answeringRule": {
          "description": "Information on an answering rule that the greeting is applied to",
          "$ref": "#/definitions/CustomCompanyGreetingAnsweringRuleInfo"
        },
        "language": {
          "description": "Information on a greeting language. Supported for types 'StopRecording', 'StartRecording', 'AutomaticRecording'",
          "$ref": "#/definitions/CustomCompanyGreetingLanguageInfoRequest"
        }
      }
    },
    "PromptInfo": {
      "type": "object",
      "properties": {
        "uri": {
          "type": "string",
          "description": "Internal identifier of a prompt"
        },
        "id": {
          "type": "string",
          "description": "Link to a prompt metadata"
        },
        "contentType": {
          "type": "string",
          "description": "Type of a prompt media content"
        },
        "contentUri": {
          "type": "string",
          "description": "Link to a prompt media content"
        },
        "filename": {
          "type": "string",
          "description": "Name of a prompt"
        }
      }
    },
    "CompanyAnsweringRuleList": {
      "type": "object",
      "properties": {
        "uri": {
          "type": "string",
          "description": "Link to an answering rule resource"
        },
        "records": {
          "type": "array",
          "description": "List of company answering rules",
          "items": {
            "$ref": "#/definitions/ListCompanyAnsweringRuleInfo"
          }
        },
        "paging": {
          "description": "Information on paging",
          "$ref": "#/definitions/PagingInfo"
        },
        "navigation": {
          "description": "Information on navigation",
          "$ref": "#/definitions/NavigationInfo"
        }
      }
    },
    "UserBusinessHoursUpdateRequest": {
      "type": "object",
      "properties": {
        "schedule": {
          "description": "Schedule when an answering rule is applied",
          "$ref": "#/definitions/WeeklyScheduleInfo"
        }
      },
      "example": {
        "schedule": {
          "weeklyRanges": {
            "monday": [
              {
                "from": "09:00",
                "to": "18:00"
              }
            ],
            "tuesday": [
              {
                "from": "09:00",
                "to": "18:00"
              }
            ],
            "wednesday": [
              {
                "from": "09:00",
                "to": "18:00"
              }
            ],
            "thursday": [
              {
                "from": "09:00",
                "to": "18:00"
              }
            ],
            "friday": [
              {
                "from": "09:00",
                "to": "18:00"
              }
            ]
          }
        }
      }
    },
    "CompanyBusinessHoursUpdateRequest": {
      "type": "object",
      "properties": {
        "schedule": {
          "description": "Schedule when an answering rule is applied",
          "$ref": "#/definitions/CompanyBusinessHoursScheduleInfo"
        }
      },
      "example": {
        "schedule": {
          "weeklyRanges": {
            "tuesday": [
              {
                "from": "09:00",
                "to": "18:00"
              }
            ],
            "friday": [
              {
                "from": "09:00",
                "to": "18:00"
              }
            ],
            "thursday": [
              {
                "from": "09:00",
                "to": "18:00"
              }
            ],
            "wednesday": [
              {
                "from": "09:00",
                "to": "18:00"
              }
            ],
            "monday": [
              {
                "from": "09:00",
                "to": "18:00"
              }
            ]
          }
        }
      }
    },
    "ForwardingNumberResource": {
      "type": "object",
      "properties": {
        "uri": {
          "type": "string",
          "format": "uri"
        },
        "id": {
          "type": "string"
        },
        "phoneNumber": {
          "type": "string"
        },
        "label": {
          "type": "string"
        },
        "features": {
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "CallFlip",
              "CallForwarding"
            ]
          }
        },
        "flipNumber": {
          "type": "string",
          "pattern": "[1-8]"
        }
      }
    },
    "CompanyAnsweringRuleRequest": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "description": "Name of an answering rule specified by user. Max number of symbols is 30. The default value is 'My Rule N' where 'N' is the first free number"
        },
        "enabled": {
          "type": "boolean",
          "description": "Specifies if the rule is active or inactive. The default value is 'True'",
          "default": true
        },
        "type": {
          "type": "string",
          "description": "Type of an answering rule, the default value is 'Custom' = ['BusinessHours', 'AfterHours', 'Custom']",
          "enum": [
            "BusinessHours",
            "AfterHours",
            "Custom"
          ]
        },
        "callers": {
          "type": "array",
          "description": "Answering rule will be applied when calls are received from the specified caller(s)",
          "items": {
            "$ref": "#/definitions/CompanyAnsweringRuleCallersInfoRequest"
          }
        },
        "calledNumbers": {
          "type": "array",
          "description": "Answering rule will be applied when calling the specified number(s)",
          "items": {
            "$ref": "#/definitions/CompanyAnsweringRuleCalledNumberInfo"
          }
        },
        "schedule": {
          "description": "Schedule when an answering rule should be applied",
          "$ref": "#/definitions/CompanyAnsweringRuleScheduleInfoRequest"
        },
        "callHandlingAction": {
          "type": "string",
          "description": "Specifies how incoming calls are forwarded. The default value is 'Operator' 'Operator' - play company greeting and forward to operator extension 'Disconnect' - play company greeting and disconnect 'Bypass' - bypass greeting to go to selected extension = ['Operator', 'Disconnect', 'Bypass']",
          "enum": [
            "Operator",
            "Disconnect",
            "Bypass"
          ]
        },
        "extension": {
          "description": "Extension to which the call is forwarded in 'Bypass' mode",
          "$ref": "#/definitions/CompanyAnsweringRuleCallersInfoRequest"
        },
        "greetings": {
          "type": "array",
          "description": "Greetings applied for an answering rule; only predefined greetings can be applied, see Dictionary Greeting List",
          "items": {
            "$ref": "#/definitions/GreetingInfo"
          }
        }
      }
    },
    "CreateForwardingNumberRequest": {
      "type": "object",
      "properties": {
        "phoneNumber": {
          "type": "string",
          "description": "Forwarding/Call flip phone number"
        },
        "label": {
          "type": "string",
          "description": "Forwarding/Call flip number title"
        }
      }
    },
    "ForwardingNumberInfo": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Internal identifier of a forwarding/call flip phone number"
        },
        "uri": {
          "type": "string",
          "description": "Canonical URI of a forwarding/call flip phone number"
        },
        "phoneNumber": {
          "type": "string",
          "description": "Forwarding/Call flip phone number"
        },
        "label": {
          "type": "string",
          "description": "Forwarding/Call flip number title"
        },
        "features": {
          "type": "array",
          "description": "Type of option this phone number is used for. Multiple values are accepted",
          "items": {
            "type": "string",
            "enum": [
              "CallFlip",
              "CallForwarding"
            ]
          }
        },
        "flipNumber": {
          "type": "integer",
          "description": "Number assigned to the call flip phone number, corresponds to the shortcut dial number"
        }
      }
    },
    "CreateAnsweringRuleRequest": {
      "type": "object",
      "required": [
        "name",
        "type"
      ],
      "properties": {
        "enabled": {
          "type": "boolean",
          "description": "Specifies if the rule is active or inactive. The default value is 'True'"
        },
        "type": {
          "type": "string",
          "description": "Type of an answering rule. The 'Custom' value should be specified"
        },
        "name": {
          "type": "string",
          "description": "Name of an answering rule specified by user"
        },
        "callers": {
          "type": "array",
          "description": "Answering rule will be applied when calls are received from the specified caller(s)",
          "items": {
            "$ref": "#/definitions/CallersInfoRequest"
          }
        },
        "calledNumbers": {
          "type": "array",
          "description": "Answering rules are applied when calling to selected number(s)",
          "items": {
            "$ref": "#/definitions/CalledNumberInfo"
          }
        },
        "schedule": {
          "description": "Schedule when an answering rule should be applied",
          "$ref": "#/definitions/ScheduleInfo"
        },
        "callHandlingAction": {
          "type": "string",
          "description": "Specifies how incoming calls are forwarded",
          "enum": [
            "ForwardCalls",
            "UnconditionalForwarding",
            "AgentQueue",
            "TransferToExtension",
            "TakeMessagesOnly",
            "PlayAnnouncementOnly"
          ]
        },
        "forwarding": {
          "description": "Forwarding parameters. Returned if 'ForwardCalls' is specified in 'callHandlingAction'. These settings determine the forwarding numbers to which the call will be forwarded",
          "$ref": "#/definitions/ForwardingInfo"
        },
        "unconditionalForwarding": {
          "description": "Unconditional forwarding parameters. Returned if 'UnconditionalForwarding' is specified in 'callHandlingAction'",
          "$ref": "#/definitions/UnconditionalForwardingInfo"
        },
        "queue": {
          "description": "Queue settings applied for department (call queue) extension type, with the 'AgentQueue' value specified as a call handling action",
          "$ref": "#/definitions/QueueInfo"
        },
        "transfer": {
          "description": "Transfer settings applied for department (call queue) extension type, with 'TransferToExtension' call handling action",
          "$ref": "#/definitions/TransferredExtensionInfo"
        },
        "voicemail": {
          "description": "Specifies whether to take a voicemail and who should do it",
          "$ref": "#/definitions/VoicemailInfo"
        },
        "greetings": {
          "type": "array",
          "description": "Greetings applied for an answering rule; only predefined greetings can be applied, see Dictionary Greeting List",
          "items": {
            "$ref": "#/definitions/GreetingInfo"
          }
        },
        "screening": {
          "type": "string",
          "description": "Call screening status. 'Off' - no call screening; 'NoCallerId' - if caller ID is missing, then callers are asked to say their name before connecting; 'UnknownCallerId' - if caller ID is not in contact list, then callers are asked to say their name before connecting; 'Always' - the callers are always asked to say their name before connecting. The default value is 'Off'",
          "enum": [
            "Off",
            "NoCallerId",
            "UnknownCallerId",
            "Always"
          ]
        }
      }
    },
    "UpdateAnsweringRuleRequest": {
      "type": "object",
      "properties": {
        "forwarding": {
          "description": "Forwarding parameters. Returned if 'ForwardCalls' is specified in 'callHandlingAction'. These settings determine the forwarding numbers to which the call will be forwarded",
          "$ref": "#/definitions/ForwardingInfoCreateRuleRequest"
        },
        "enabled": {
          "type": "boolean",
          "description": "Specifies if the rule is active or inactive. The default value is 'True'"
        },
        "name": {
          "type": "string",
          "description": "Name of an answering rule specified by user"
        },
        "callers": {
          "type": "array",
          "description": "Answering rule will be applied when calls are received from the specified caller(s)",
          "items": {
            "$ref": "#/definitions/CallersInfoRequest"
          }
        },
        "calledNumbers": {
          "type": "array",
          "description": "Answering rules are applied when calling to selected number(s)",
          "items": {
            "$ref": "#/definitions/CalledNumberInfo"
          }
        },
        "schedule": {
          "description": "Schedule when an answering rule should be applied",
          "$ref": "#/definitions/ScheduleInfo"
        },
        "callHandlingAction": {
          "type": "string",
          "description": "Specifies how incoming calls are forwarded",
          "enum": [
            "ForwardCalls",
            "UnconditionalForwarding",
            "AgentQueue",
            "TransferToExtension",
            "TakeMessagesOnly",
            "PlayAnnouncementOnly"
          ]
        },
        "unconditionalForwarding": {
          "description": "Unconditional forwarding parameters. Returned if 'UnconditionalForwarding' is specified in 'callHandlingAction'",
          "$ref": "#/definitions/UnconditionalForwardingInfo"
        },
        "queue": {
          "description": "Queue settings applied for department (call queue) extension type, with the 'AgentQueue' value specified as a call handling action",
          "$ref": "#/definitions/QueueInfo"
        },
        "voicemail": {
          "description": "Specifies whether to take a voicemail and who should do it",
          "$ref": "#/definitions/VoicemailInfo"
        },
        "greetings": {
          "type": "array",
          "description": "Greetings applied for an answering rule; only predefined greetings can be applied, see Dictionary Greeting List",
          "items": {
            "$ref": "#/definitions/GreetingInfo"
          }
        },
        "screening": {
          "type": "string",
          "description": "Call screening status. 'Off' - no call screening; 'NoCallerId' - if caller ID is missing, then callers are asked to say their name before connecting; 'UnknownCallerId' - if caller ID is not in contact list, then callers are asked to say their name before connecting; 'Always' - the callers are always asked to say their name before connecting. The default value is 'Off'",
          "enum": [
            "Off",
            "NoCallerId",
            "UnknownCallerId",
            "Always"
          ]
        }
      }
    },
    "CustomGreetingRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "description": "Type of a greeting, specifying the case when the greeting is played. See Greeting Types = ['Introductory', 'Announcement', 'ConnectingMessage', 'ConnectingAudio', 'Voicemail', 'Unavailable', 'HoldMusic']",
          "enum": [
            "Introductory",
            "Announcement",
            "ConnectingMessage",
            "ConnectingAudio",
            "Voicemail",
            "Unavailable",
            "HoldMusic"
          ]
        },
        "answeringRule": {
          "description": "Information on an answering rule that the greeting is applied to",
          "$ref": "#/definitions/CustomGreetingAnsweringRuleInfoRequest"
        }
      }
    },
    "UnconditionalForwardingInfo": {
      "type": "object",
      "properties": {
        "phoneNumber": {
          "type": "string",
          "description": "Phone number to which the call is forwarded"
        }
      }
    },
    "ScheduleInfo": {
      "type": "object",
      "properties": {
        "weeklyRanges": {
          "description": "Weekly schedule",
          "$ref": "#/definitions/WeeklyScheduleInfo"
        },
        "ranges": {
          "description": "Specific data ranges",
          "$ref": "#/definitions/RangesInfo"
        },
        "ref": {
          "type": "string",
          "description": "The user's schedule specified for business hours or after hours; it can also be set/retrieved calling the corresponding method",
          "enum": [
            "BusinessHours",
            "AfterHours"
          ]
        }
      }
    },
    "CalledNumberInfo": {
      "type": "object",
      "properties": {
        "phoneNumber": {
          "type": "string",
          "description": "Called phone number"
        }
      }
    },
    "WeeklyScheduleInfo": {
      "type": "object",
      "properties": {
        "monday": {
          "type": "array",
          "description": "Time intervals for a particular day",
          "items": {
            "$ref": "#/definitions/TimeInterval"
          }
        },
        "tuesday": {
          "type": "array",
          "description": "Time intervals for a particular day",
          "items": {
            "$ref": "#/definitions/TimeInterval"
          }
        },
        "wednesday": {
          "type": "array",
          "description": "Time intervals for a particular day",
          "items": {
            "$ref": "#/definitions/TimeInterval"
          }
        },
        "thursday": {
          "type": "array",
          "description": "Time intervals for a particular day",
          "items": {
            "$ref": "#/definitions/TimeInterval"
          }
        },
        "friday": {
          "type": "array",
          "description": "Time intervals for a particular day",
          "items": {
            "$ref": "#/definitions/TimeInterval"
          }
        },
        "saturday": {
          "type": "array",
          "description": "Time intervals for a particular day",
          "items": {
            "$ref": "#/definitions/TimeInterval"
          }
        },
        "sunday": {
          "type": "array",
          "description": "Time intervals for a particular day",
          "items": {
            "$ref": "#/definitions/TimeInterval"
          }
        }
      }
    },
    "CustomGreetingAnsweringRuleInfoRequest": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Internal identifier of an answering rule"
        }
      }
    },
    "CompanyAnsweringRuleCalledNumberInfo": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Internal identifier of an account phone number"
        }
      }
    },
    "UserBusinessHoursScheduleInfo": {
      "type": "object",
      "properties": {
        "weeklyRanges": {
          "description": "Weekly schedule",
          "$ref": "#/definitions/WeeklyScheduleInfo"
        }
      }
    },
    "CallersInfo": {
      "type": "object",
      "properties": {
        "callerId": {
          "type": "string",
          "description": "Phone number of a caller"
        },
        "name": {
          "type": "string",
          "description": "Contact name of a caller"
        }
      }
    },
    "CompanyAnsweringRuleScheduleInfo": {
      "type": "object",
      "properties": {
        "weeklyRanges": {
          "description": "Weekly schedule. If specified, ranges cannot be specified",
          "$ref": "#/definitions/CompanyAnsweringRuleWeeklyScheduleInfoRequest"
        },
        "ranges": {
          "description": "Specific data ranges. If specified, weeklyRanges cannot be specified",
          "$ref": "#/definitions/RangesInfo"
        },
        "ref": {
          "type": "string",
          "description": "Reference to Business Hours or After Hours schedule = ['BusinessHours', 'AfterHours']",
          "enum": [
            "BusinessHours",
            "AfterHours"
          ]
        }
      }
    },
    "ForwardingInfoCreateRuleRequest": {
      "type": "object",
      "properties": {
        "notifyMySoftPhones": {
          "type": "boolean",
          "description": "Specifies if the first ring on desktop/mobile apps is enabled. The default value is 'True'"
        },
        "notifyAdminSoftPhones": {
          "type": "boolean",
          "description": "Specifies if the administrator's softphone (desktop application) is notified before forwarding the incoming call to desk phones and forwarding numbers. The default value is 'True'"
        },
        "softPhonesRingCount": {
          "type": "integer",
          "description": "Specifies delay between ring on apps and starting of a call forwarding. The default value is 1"
        },
        "ringingMode": {
          "type": "string",
          "description": "Specifies the order in which forwarding numbers ring. 'Sequentially' means that forwarding numbers are ringing one at a time, in order of priority. 'Simultaneously' means that forwarding numbers are ringing all at the same time. The default value is 'Sequentially'",
          "enum": [
            "Sequentially",
            "Simultaneously"
          ]
        },
        "rules": {
          "type": "array",
          "description": "Information on a call forwarding rule",
          "items": {
            "$ref": "#/definitions/RuleInfoCreateRuleRequest"
          }
        }
      }
    },
    "ScheduleInfoUserBusinessHours": {
      "type": "object",
      "properties": {
        "weeklyRanges": {
          "description": "Weekly schedule",
          "$ref": "#/definitions/WeeklyScheduleInfo"
        }
      }
    },
    "IVRMenuPromptInfo": {
      "type": "object",
      "properties": {
        "mode": {
          "type": "string",
          "description": "Prompt mode: custom media or text = ['Audio', 'TextToSpeech']",
          "enum": [
            "Audio",
            "TextToSpeech"
          ]
        },
        "audio": {
          "description": "For 'Audio' mode only. Prompt media reference",
          "$ref": "#/definitions/PromptLanguageInfo"
        },
        "text": {
          "type": "string",
          "description": "For 'TextToSpeech' mode only. Prompt text"
        },
        "language": {
          "description": "For 'TextToSpeech' mode only. Prompt language metadata",
          "$ref": "#/definitions/AudioPromptInfo"
        }
      }
    },
    "OnDemandResource": {
      "type": "object",
      "properties": {
        "enabled": {
          "type": "boolean",
          "description": "Flag for controlling OnDemand Call Recording settings"
        }
      }
    },
    "GreetingResource": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "StartRecording",
            "StopRecording",
            "AutomaticRecording"
          ]
        },
        "mode": {
          "type": "string",
          "enum": [
            "Default",
            "Custom"
          ],
          "description": "'Default' value specifies that all greetings of that type (in all languages) are default, if at least one greeting (in any language) of the specified type is custom, then 'Custom' value is returned."
        }
      }
    },
    "CompanyBusinessHoursScheduleInfo": {
      "type": "object",
      "properties": {
        "weeklyRanges": {
          "$ref": "#/definitions/WeeklyScheduleInfo"
        }
      }
    },
    "CompanyAnsweringRuleCalledNumberInfoRequest": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Internal identifier of an account phone number"
        }
      }
    },
    "AutomaticRecordingResource": {
      "type": "object",
      "properties": {
        "enabled": {
          "type": "boolean",
          "description": "Flag for controling Automatic Call Recording settings"
        },
        "outboundCallTones": {
          "type": "boolean",
          "description": "Flag for controlling 'Play Call Recording Announcement for Outbound Calls' settings"
        },
        "outboundCallAnnouncement": {
          "type": "boolean",
          "description": "Flag for controlling 'Play periodic tones for outbound calls' settings"
        },
        "allowMute": {
          "type": "boolean",
          "description": "Flag for controlling 'Allow mute in auto call recording' settings"
        },
        "extensionCount": {
          "type": "integer",
          "description": "Total amount of extension that are used in call recordings"
        }
      }
    },
    "CustomGreetingAnsweringRuleInfo": {
      "type": "object",
      "properties": {
        "uri": {
          "type": "string",
          "description": "Canonical URI of an answering rule"
        },
        "id": {
          "type": "string",
          "description": "Internal identifier of an answering rule"
        }
      }
    },
    "IVRMenuActionsInfo": {
      "type": "object",
      "properties": {
        "input": {
          "type": "string",
          "description": "Key. The following values are supported: numeric: '1' to '9' Star Hash NoInput "
        },
        "action": {
          "type": "string",
          "description": "Internal identifier of an answering rule",
          "enum": [
            "Connect",
            "Voicemail",
            "DialByName",
            "Transfer",
            "Repeat",
            "ReturnToRoot",
            "ReturnToPrevious",
            "Disconnect"
          ]
        },
        "extension": {
          "description": "For 'Connect' or 'Voicemail' actions only. Extension reference",
          "$ref": "#/definitions/IVRMenuExtensionInfo"
        },
        "phoneNumber": {
          "type": "string",
          "description": "For 'Transfer' action only. PSTN number in E.164 format"
        }
      }
    },
    "QueueInfo": {
      "type": "object",
      "properties": {
        "transferMode": {
          "type": "string",
          "description": "Specifies how calls are transferred to group members",
          "enum": [
            "Rotating",
            "Simultaneous",
            "FixedOrder"
          ]
        },
        "fixedOrderAgents": {
          "type": "array",
          "description": "Information on a call forwarding rule",
          "items": {
            "$ref": "#/definitions/FixedOrderAgents"
          }
        },
        "holdAudioInterruptionMode": {
          "type": "string",
          "description": "Connecting audio interruption mode",
          "enum": [
            "Never",
            "WhenMusicEnds",
            "Periodically"
          ]
        },
        "holdAudioInterruptionPeriod": {
          "type": "integer",
          "description": "Connecting audio interruption message period in seconds"
        },
        "agentTimeout": {
          "type": "integer",
          "description": "Maximum time in seconds to wait for a call queue member before trying the next member"
        },
        "wrapUpTime": {
          "type": "integer",
          "description": "Minimum post-call wrap up time in seconds before agent status is automatically set"
        },
        "holdTime": {
          "type": "integer",
          "description": "Maximum hold time in seconds to wait for an available call queue member"
        },
        "maxCallers": {
          "type": "integer",
          "description": "Maximum count of callers on hold"
        },
        "maxCallersAction": {
          "type": "string",
          "description": "Action which should be taken if count of callers on hold exceeds the maximum",
          "enum": [
            "Voicemail",
            "Announcement"
          ]
        }
      }
    },
    "VoicemailInfo": {
      "type": "object",
      "properties": {
        "enabled": {
          "type": "boolean",
          "description": "If 'True' then voicemails are allowed to be received"
        },
        "recipient": {
          "description": "Recipient data",
          "$ref": "#/definitions/RecipientInfo"
        }
      }
    },
    "CompanyAnsweringRuleCallersInfoRequest": {
      "type": "object",
      "properties": {
        "callerId": {
          "type": "string",
          "description": "Phone number of a caller"
        },
        "name": {
          "type": "string",
          "description": "Displayed name for a caller ID"
        }
      }
    },
    "ForwardingInfo": {
      "type": "object",
      "properties": {
        "notifyMySoftPhones": {
          "type": "boolean",
          "description": "Specifies if the user's softphone(s) are notified before forwarding the incoming call to desk phones and forwarding numbers"
        },
        "notifyAdminSoftPhones": {
          "type": "boolean",
          "description": "Specifies if the administrator's softphone is notified before forwarding the incoming call to desk phones and forwarding numbers. The default value is 'False'"
        },
        "softPhonesRingCount": {
          "type": "integer",
          "description": "Number of rings before forwarding starts"
        },
        "ringingMode": {
          "type": "string",
          "description": "Specifies the order in which forwarding numbers ring. 'Sequentially' means that forwarding numbers are ringing one at a time, in order of priority. 'Simultaneously' means that forwarding numbers are ring all at the same time",
          "enum": [
            "Sequentially",
            "Simultaneously"
          ]
        },
        "rules": {
          "type": "array",
          "description": "Information on a call forwarding rule",
          "items": {
            "$ref": "#/definitions/RuleInfo"
          }
        }
      }
    },
    "TransferredExtensionInfo": {
      "type": "object",
      "properties": {
        "extension": {
          "$ref": "#/definitions/ExtensionInfo"
        }
      }
    },
    "CustomCompanyGreetingLanguageInfoRequest": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Internal identifier of a greeting language"
        }
      }
    },
    "CompanyAnsweringRuleScheduleInfoRequest": {
      "type": "object",
      "properties": {
        "weeklyRanges": {
          "description": "Weekly schedule. If specified, ranges cannot be specified",
          "$ref": "#/definitions/CompanyAnsweringRuleWeeklyScheduleInfoRequest"
        },
        "ranges": {
          "description": "Specific data ranges. If specified, weeklyRanges cannot be specified",
          "$ref": "#/definitions/RangesInfo"
        },
        "ref": {
          "type": "string",
          "description": "Reference to Business Hours or After Hours schedule = ['BusinessHours', 'AfterHours']",
          "enum": [
            "BusinessHours",
            "AfterHours"
          ]
        }
      }
    },
    "CustomCompanyGreetingLanguageInfo": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Internal identifier of a greeting language"
        },
        "uri": {
          "type": "string",
          "description": "Link to a greeting language"
        },
        "name": {
          "type": "string",
          "description": "Name of a greeting language"
        },
        "localeCode": {
          "type": "string",
          "description": "Locale code of a greeting language"
        }
      }
    },
    "ListCompanyAnsweringRuleInfo": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Internal identifier of an answering rule"
        },
        "uri": {
          "type": "string",
          "description": "Canonical URI of an answering rule"
        },
        "enabled": {
          "type": "boolean",
          "description": "Specifies if the rule is active or inactive. The default value is 'True'",
          "default": true
        },
        "type": {
          "type": "string",
          "description": "Type of an answering rule, the default value is 'Custom' = ['BusinessHours', 'AfterHours', 'Custom']",
          "enum": [
            "BusinessHours",
            "AfterHours",
            "Custom"
          ]
        },
        "name": {
          "type": "string",
          "description": "Name of an answering rule specified by user. Max number of symbols is 30. The default value is 'My Rule N' where 'N' is the first free number"
        }
      }
    },
    "CallersInfoRequest": {
      "type": "object",
      "properties": {
        "callerId": {
          "type": "string",
          "description": "Phone number of a caller"
        },
        "name": {
          "type": "string",
          "description": "Contact name of a caller"
        }
      }
    },
    "GreetingInfo": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "description": "Type of a greeting, specifying the case when the greeting is played. See Greeting Types = ['Introductory', 'Announcement', 'ConnectingMessage', 'ConnectingAudio', 'Voicemail', 'Unavailable', 'InterruptPrompt', 'HoldMusic']",
          "enum": [
            "Introductory",
            "Announcement",
            "ConnectingMessage",
            "ConnectingAudio",
            "Voicemail",
            "Unavailable",
            "InterruptPrompt",
            "HoldMusic",
            "Custom",
            "Company",
            "BlockedCallersSpecific",
            "BlockedCallersAll",
            "BlockedNoCallerId",
            "BlockedPayPhones",
            "StartRecording",
            "StopRecording",
            "AutomaticRecording"
          ]
        },
        "usageType": {
          "type": "string",
          "description": "Usage type of a greeting, specifying if the greeting is applied to user extension or department extension = ['UserExtensionAnsweringRule', 'ExtensionAnsweringRule DepartmentExtensionAnsweringRule']",
          "enum": [
            "UserExtensionAnsweringRule",
            "ExtensionAnsweringRule",
            "DepartmentExtensionAnsweringRule"
          ]
        },
        "preset": {
          "$ref": "#/definitions/PresetInfo"
        }
      }
    },
    "CustomCompanyGreetingAnsweringRuleInfo": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Internal identifier of an answering rule"
        }
      }
    },
    "AudioPromptInfo": {
      "type": "object",
      "properties": {
        "uri": {
          "type": "string",
          "description": "Link to an prompt audio file"
        },
        "id": {
          "type": "string",
          "description": "Internal identifier of an prompt"
        }
      }
    },
    "RuleInfo": {
      "type": "object",
      "properties": {
        "index": {
          "type": "integer",
          "description": "Forwarding number (or group) ordinal"
        },
        "ringCount": {
          "type": "integer",
          "description": "Number of rings for a forwarding number (or group)"
        },
        "forwardingNumbers": {
          "type": "array",
          "description": "Forwarding number (or group) data",
          "items": {
            "$ref": "#/definitions/ForwardingNumberInfoRules"
          }
        }
      }
    },
    "RangesInfo": {
      "type": "object",
      "properties": {
        "from": {
          "type": "string",
          "format": "date-time",
          "description": "Date and time in format YYYY-MM-DD hh:mm"
        },
        "to": {
          "type": "string",
          "format": "date-time",
          "description": "Date and time in format YYYY-MM-DD hh:mm"
        }
      }
    },
    "CompanyAnsweringRuleWeeklyScheduleInfoRequest": {
      "type": "object",
      "properties": {
        "monday": {
          "type": "array",
          "description": "Time interval for a particular day",
          "items": {
            "$ref": "#/definitions/CompanyAnsweringRuleTimeIntervalRequest"
          }
        },
        "tuesday": {
          "type": "array",
          "description": "Time interval for a particular day",
          "items": {
            "$ref": "#/definitions/CompanyAnsweringRuleTimeIntervalRequest"
          }
        },
        "wednesday": {
          "type": "array",
          "description": "Time interval for a particular day",
          "items": {
            "$ref": "#/definitions/CompanyAnsweringRuleTimeIntervalRequest"
          }
        },
        "thursday": {
          "type": "array",
          "description": "Time interval for a particular day",
          "items": {
            "$ref": "#/definitions/CompanyAnsweringRuleTimeIntervalRequest"
          }
        },
        "friday": {
          "type": "array",
          "description": "Time interval for a particular day",
          "items": {
            "$ref": "#/definitions/CompanyAnsweringRuleTimeIntervalRequest"
          }
        },
        "saturday": {
          "type": "array",
          "description": "Time interval for a particular day",
          "items": {
            "$ref": "#/definitions/CompanyAnsweringRuleTimeIntervalRequest"
          }
        },
        "sunday": {
          "type": "array",
          "description": "Time interval for a particular day",
          "items": {
            "$ref": "#/definitions/CompanyAnsweringRuleTimeIntervalRequest"
          }
        }
      }
    },
    "RuleInfoCreateRuleRequest": {
      "type": "object",
      "properties": {
        "index": {
          "type": "integer",
          "description": "Forwarding number (or group) ordinal. Not returned for inactive numbers"
        },
        "ringCount": {
          "type": "integer",
          "description": "Number of rings for a forwarding number (or group). For inactive numbers the default value ('4') is returned"
        },
        "enabled": {
          "type": "boolean",
          "description": "Phone number status. Returned only if `showInactiveNumbers` is set to `true`"
        },
        "forwardingNumbers": {
          "type": "array",
          "description": "Forwarding number (or group) data",
          "items": {
            "$ref": "#/definitions/ForwardingNumberInfoRulesCreateRuleRequest"
          }
        }
      }
    },
    "FixedOrderAgents": {
      "type": "object",
      "properties": {
        "extension": {
          "$ref": "#/definitions/ExtensionInfo"
        },
        "index": {
          "type": "integer",
          "description": "Ordinal of an agent (call queue member)"
        }
      }
    },
    "RecipientInfo": {
      "type": "object",
      "properties": {
        "uri": {
          "type": "string",
          "description": "Link to a recipient extension resource"
        },
        "id": {
          "type": "string",
          "description": "Internal identifier of a recipient extension"
        }
      }
    },
    "ExtensionInfo": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Internal identifier of an extension"
        },
        "uri": {
          "type": "string",
          "description": "Canonical URI of an extension"
        },
        "extensionNumber": {
          "type": "string",
          "description": "Number of department extension"
        },
        "partnerId": {
          "type": "string",
          "description": "For Partner Applications Internal identifier of an extension created by partner. The RingCentral supports the mapping of accounts and stores the corresponding account ID/extension ID for each partner ID of a client application. In request URIs partner IDs are accepted instead of regular RingCentral native IDs as path parameters using pid = XXX clause. Though in response URIs contain the corresponding account IDs and extension IDs. In all request and response bodies these values are reflected via partnerId attributes of account and extension"
        }
      }
    },
    "PresetInfo": {
      "type": "object",
      "properties": {
        "uri": {
          "type": "string",
          "description": "Link to a greeting resource"
        },
        "id": {
          "type": "string",
          "description": "Internal identifier of greeting"
        },
        "name": {
          "type": "string",
          "description": "Name of a greeting"
        }
      }
    },
    "TimeInterval": {
      "type": "object",
      "properties": {
        "from": {
          "type": "string",
          "format": "date-time",
          "description": "Time in format hh:mm"
        },
        "to": {
          "type": "string",
          "format": "date-time",
          "description": "Time in format hh:mm"
        }
      }
    },
    "PromptLanguageInfo": {
      "type": "object",
      "properties": {
        "uri": {
          "type": "string",
          "description": "Link to prompt language"
        },
        "id": {
          "type": "string",
          "description": "Internal identifier of an language"
        },
        "name": {
          "type": "string",
          "description": "Language name"
        },
        "localeCode": {
          "type": "string",
          "description": "Language locale code"
        }
      }
    },
    "IVRMenuExtensionInfo": {
      "type": "object",
      "properties": {
        "uri": {
          "type": "string",
          "description": "Link to an extension resource"
        },
        "id": {
          "type": "string",
          "description": "Internal identifier of an extension"
        }
      }
    },
    "ForwardingNumberInfoRules": {
      "type": "object",
      "properties": {
        "uri": {
          "type": "string",
          "description": "Link to a forwarding number resource"
        },
        "id": {
          "type": "string",
          "description": "Internal identifier of a forwarding number"
        },
        "phoneNumber": {
          "type": "string",
          "description": "Phone number to which the call is forwarded"
        },
        "label": {
          "type": "string",
          "description": "Title of a forwarding number"
        }
      }
    },
    "CompanyAnsweringRuleTimeIntervalRequest": {
      "type": "object",
      "properties": {
        "from": {
          "type": "string",
          "description": "Time in format hh:mm"
        },
        "to": {
          "type": "string",
          "description": "Time in format hh:mm"
        }
      }
    },
    "ForwardingNumberInfoRulesCreateRuleRequest": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Internal identifier of a forwarding number"
        },
        "type": {
          "type": "string",
          "description": "Forwarding phone number type",
          "enum": [
            "Home",
            "Mobile",
            "Work",
            "PhoneLine",
            "Outage",
            "Other"
          ]
        }
      }
    },
    "CreateSipRegistrationRequest": {
      "type": "object",
      "required": [
        "device",
        "sipInfo"
      ],
      "properties": {
        "device": {
          "type": "array",
          "description": "Device unique description",
          "items": {
            "$ref": "#/definitions/DeviceInfoRequest"
          }
        },
        "sipInfo": {
          "type": "array",
          "description": "SIP settings for device",
          "items": {
            "$ref": "#/definitions/SIPInfoRequest"
          }
        }
      }
    },
    "CreateSipRegistrationResponse": {
      "type": "object",
      "required": [
        "sipFlags",
        "sipInfo"
      ],
      "properties": {
        "sipInfo": {
          "type": "array",
          "description": "SIP settings for device",
          "items": {
            "$ref": "#/definitions/SIPInfoResponse"
          }
        },
        "sipFlags": {
          "type": "array",
          "description": "SIP flags data",
          "items": {
            "$ref": "#/definitions/SIPFlagsRespones"
          }
        }
      }
    },
    "DeviceInfoRequest": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Device unique identifier, retrieved on previous session (if any)"
        },
        "appExternalId": {
          "type": "string",
          "description": "For iOS devices only Certificate name (used by iOS applications for APNS subscription)"
        },
        "computerName": {
          "type": "string",
          "description": "For SoftPhone only Computer name"
        }
      }
    },
    "SIPInfoRequest": {
      "type": "object",
      "properties": {
        "transport": {
          "type": "string",
          "description": "Supported transport. SIP info will be returned for this transport if supported",
          "enum": [
            "UDP",
            "TCP",
            "TLS",
            "WS",
            "WSS"
          ]
        }
      }
    },
    "SIPInfoResponse": {
      "type": "object",
      "properties": {
        "username": {
          "type": "string",
          "description": "User credentials"
        },
        "password": {
          "type": "string",
          "description": "User password"
        },
        "authorizationId": {
          "type": "string",
          "description": "Identifier for SIP authorization"
        },
        "domain": {
          "type": "string",
          "description": "SIP domain"
        },
        "outboundProxy": {
          "type": "string",
          "description": "SIP outbound proxy"
        },
        "transport": {
          "type": "string",
          "description": "Preferred transport. SIP info will be returned for this transport if supported",
          "enum": [
            "UDP",
            "TCP",
            "TLS",
            "WS",
            "WSS"
          ]
        },
        "certificate": {
          "type": "string",
          "description": "For TLS transport only Base64 encoded certificate"
        }
      }
    },
    "SIPFlagsRespones": {
      "type": "object",
      "properties": {
        "voipFeatureEnabled": {
          "type": "string",
          "description": "If 'True' VoIP calling feature is enabled",
          "enum": [
            "True",
            "False"
          ]
        },
        "voipCountryBlocked": {
          "type": "string",
          "description": "If 'True' the request is sent from IP address of a country blocked for VoIP calling",
          "enum": [
            "True",
            "False"
          ]
        },
        "outboundCallsEnabled": {
          "type": "string",
          "description": "If 'True' outbound calls are enabled",
          "enum": [
            "True",
            "False"
          ]
        }
      }
    },
    "GetAccountInfoResponse": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Internal identifier of an account"
        },
        "uri": {
          "type": "string",
          "description": "Canonical URI of an account"
        },
        "mainNumber": {
          "type": "string",
          "description": "Main phone number of the current account"
        },
        "operator": {
          "description": "Operator's extension information. This extension will receive all calls and messages intended for the operator",
          "$ref": "#/definitions/GetExtensionInfoResponse"
        },
        "partnerId": {
          "type": "string",
          "description": "Additional account identifier, developed and applied by the client"
        },
        "serviceInfo": {
          "description": "Account service information, including brand, service plan and billing plan",
          "$ref": "#/definitions/ServiceInfo"
        },
        "setupWizardState": {
          "type": "string",
          "description": "Specifies account configuration wizard state (web service setup). The default value is 'NotStarted'",
          "enum": [
            "NotStarted",
            "Incomplete",
            "Completed"
          ]
        },
        "status": {
          "type": "string",
          "description": "Status of the current account",
          "enum": [
            "Confirmed",
            "Disabled"
          ]
        },
        "statusInfo": {
          "description": "Status information (reason, comment, lifetime). Returned for 'Disabled' status only",
          "$ref": "#/definitions/AccountStatusInfo"
        },
        "regionalSettings": {
          "description": "Account level region data (web service Auto-Receptionist settings)",
          "$ref": "#/definitions/RegionalSettings"
        },
        "federated": {
          "description": "Specifies whether an account is included into any federation of accounts or not",
          "type": "boolean"
        },
        "cfid": {
          "type": "string",
          "description": "Customer facing identifier. Returned for accounts with the turned off PBX features. Equals to main company number in E.164 format without a '+'"
        }
      }
    },
    "GetLocationListResponse": {
      "type": "object",
      "required": [
        "navigation",
        "paging"
      ],
      "properties": {
        "records": {
          "type": "array",
          "description": "List of locations",
          "items": {
            "$ref": "#/definitions/LocationInfo"
          }
        },
        "navigation": {
          "description": "Information on navigation",
          "$ref": "#/definitions/NavigationInfo"
        },
        "paging": {
          "description": "Information on paging",
          "$ref": "#/definitions/PagingInfo"
        }
      }
    },
    "DepartmentBulkAssignResource": {
      "type": "object",
      "properties": {
        "items": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/BulkAssignItem"
          }
        }
      }
    },
    "CallMonitoringGroups": {
      "type": "object",
      "required": [
        "navigation",
        "paging",
        "records",
        "uri"
      ],
      "properties": {
        "uri": {
          "type": "string",
          "description": "Link to a call monitoring groups resource"
        },
        "records": {
          "type": "array",
          "description": "List of call monitoring group members",
          "items": {
            "$ref": "#/definitions/CallMonitoringGroupInfo"
          }
        },
        "navigation": {
          "description": "Information on navigation",
          "$ref": "#/definitions/NavigationInfo"
        },
        "paging": {
          "description": "Information on paging",
          "$ref": "#/definitions/PagingInfo"
        }
      }
    },
    "GetExtensionPhoneNumbersResponse": {
      "type": "object",
      "required": [
        "navigation",
        "paging",
        "records"
      ],
      "properties": {
        "records": {
          "type": "array",
          "description": "List of phone numbers",
          "items": {
            "$ref": "#/definitions/PhoneNumberInfo"
          }
        },
        "navigation": {
          "description": "Information on navigation",
          "$ref": "#/definitions/NavigationInfo"
        },
        "paging": {
          "description": "Information on paging",
          "$ref": "#/definitions/PagingInfo"
        }
      }
    },
    "NotificationSettings": {
      "type": "object",
      "properties": {
        "uri": {
          "type": "string",
          "description": "Canonical URI of notifications settings resource"
        },
        "emailAddresses": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of notification recipient email addresses"
        },
        "smsEmailAddresses": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of notification recipient email addresses"
        },
        "advancedMode": {
          "type": "boolean",
          "description": "Specifies notifications settings mode. If 'True' then advanced mode is on, it allows using different emails and/or phone numbers for each notification type. If 'False' then basic mode is on. Advanced mode settings are returned in both modes, if specified once, but if basic mode is switched on, they are not applied "
        },
        "voicemails": {
          "$ref": "#/definitions/VoicemailsInfo"
        },
        "inboundFaxes": {
          "$ref": "#/definitions/InboundFaxesInfo"
        },
        "outboundFaxes": {
          "$ref": "#/definitions/OutboundFaxesInfo"
        },
        "inboundTexts": {
          "$ref": "#/definitions/InboundTextsInfo"
        },
        "missedCalls": {
          "$ref": "#/definitions/MissedCallsInfo"
        }
      }
    },
    "GetExtensionListResponse": {
      "type": "object",
      "required": [
        "navigation",
        "paging",
        "records"
      ],
      "properties": {
        "records": {
          "type": "array",
          "description": "List of extensions with extension information",
          "items": {
            "$ref": "#/definitions/GetExtensionInfoResponse"
          }
        },
        "navigation": {
          "description": "Information on navigation",
          "$ref": "#/definitions/NavigationInfo"
        },
        "paging": {
          "description": "Information on paging",
          "$ref": "#/definitions/PagingInfo"
        }
      }
    },
    "CallQueueBulkAssignResource": {
      "type": "object",
      "properties": {
        "addedExtensionIds": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "removedExtensionIds": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "AccountPhoneNumbers": {
      "type": "object",
      "properties": {
        "records": {
          "type": "array",
          "description": "List of account phone numbers",
          "items": {
            "$ref": "#/definitions/PhoneNumberInfo"
          }
        },
        "navigation": {
          "description": "Information on navigation",
          "$ref": "#/definitions/NavigationInfo"
        },
        "paging": {
          "description": "Information on paging",
          "$ref": "#/definitions/PagingInfo"
        }
      }
    },
    "PhoneNumberInfo": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Internal identifier of a phone number"
        },
        "country": {
          "description": "Brief information on a phone number country",
          "$ref": "#/definitions/CountryInfo"
        },
        "extension": {
          "description": "Information on the extension, to which the phone number is assigned. Returned only for the request of Account phone number list",
          "$ref": "#/definitions/ExtensionInfo"
        },
        "label": {
          "type": "string",
          "description": "Custom user name of a phone number, if any. Supported for numbers assigned to Auto-Receptionist, with usage type 'CompanyNumber'"
        },
        "location": {
          "type": "string",
          "description": "Location (City, State). Filled for local US numbers"
        },
        "paymentType": {
          "type": "string",
          "description": "Payment type. 'External' is returned for forwarded numbers which are not terminated in the RingCentral phone system",
          "enum": [
            "External",
            "TollFree",
            "Local"
          ]
        },
        "phoneNumber": {
          "type": "string",
          "description": "Phone number"
        },
        "status": {
          "type": "string",
          "description": "Status of a phone number. If the value is 'Normal', the phone number is ready to be used. Otherwise it is an external number not yet ported to RingCentral"
        },
        "type": {
          "type": "string",
          "description": "Phone number type",
          "enum": [
            "VoiceFax",
            "FaxOnly",
            "VoiceOnly"
          ]
        },
        "usageType": {
          "type": "string",
          "description": "Usage type of a phone number",
          "enum": [
            "MainCompanyNumber",
            "AdditionalCompanyNumber",
            "CompanyNumber",
            "DirectNumber",
            "CompanyFaxNumber",
            "ForwardedNumber",
            "ForwardedCompanyNumber",
            "ContactCenterNumber",
            "ConferencingNumber"
          ]
        }
      }
    },
    "UpdateConferencingInfoRequest": {
      "type": "object",
      "properties": {
        "phoneNumbers": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/ConferencePhoneNumberInfo"
          },
          "description": "Multiple dial-in phone numbers to connect to audio conference service, relevant for user's brand. Each number is given with the country and location information, in order to let the user choose the less expensive way to connect to a conference. The first number in the list is the primary conference number, that is default and domestic"
        },
        "allowJoinBeforeHost": {
          "type": "boolean",
          "description": "Determines if host user allows conference participants to join before the host"
        }
      }
    },
    "GetStateInfoResponse": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Internal identifier of a state"
        },
        "uri": {
          "type": "string",
          "description": "Canonical URI of a state"
        },
        "country": {
          "description": "Information on a country the state belongs to",
          "$ref": "#/definitions/GetCountryInfoState"
        },
        "isoCode": {
          "type": "string",
          "description": "Short code for a state (2-letter usually)"
        },
        "name": {
          "type": "string",
          "description": "Official name of a state"
        }
      }
    },
    "CallQueueMembers": {
      "type": "object",
      "required": [
        "navigation",
        "paging",
        "records",
        "uri"
      ],
      "properties": {
        "uri": {
          "type": "string",
          "description": "Link to a call queue members resource"
        },
        "records": {
          "type": "array",
          "description": "List of call queue members",
          "items": {
            "$ref": "#/definitions/CallQueueMemberInfo"
          }
        },
        "navigation": {
          "description": "Information on navigation",
          "$ref": "#/definitions/NavigationInfo"
        },
        "paging": {
          "description": "Information on paging",
          "$ref": "#/definitions/PagingInfo"
        }
      }
    },
    "GetExtensionInfoResponse": {
      "type": "object",
      "required": [
        "id",
        "profileImage",
        "status",
        "type",
        "uri"
      ],
      "properties": {
        "id": {
          "type": "integer",
          "format": "int64",
          "description": "Internal identifier of an extension"
        },
        "uri": {
          "type": "string",
          "description": "Canonical URI of an extension"
        },
        "contact": {
          "description": "Contact detailed information",
          "$ref": "#/definitions/ContactInfo"
        },
        "departments": {
          "type": "array",
          "description": "Information on department extension(s), to which the requested extension belongs. Returned only for user extensions, members of department, requested by single extensionId",
          "items": {
            "$ref": "#/definitions/DepartmentInfo"
          }
        },
        "extensionNumber": {
          "type": "string",
          "description": "Number of department extension"
        },
        "name": {
          "type": "string",
          "description": "Extension user name"
        },
        "partnerId": {
          "type": "string",
          "description": "For Partner Applications Internal identifier of an extension created by partner. The RingCentral supports the mapping of accounts and stores the corresponding account ID/extension ID for each partner ID of a client application. In request URIs partner IDs are accepted instead of regular RingCentral native IDs as path parameters using pid = XXX clause. Though in response URIs contain the corresponding account IDs and extension IDs. In all request and response bodies these values are reflected via partnerId attributes of account and extension"
        },
        "permissions": {
          "$ref": "#/definitions/ExtensionPermissions"
        },
        "profileImage": {
          "description": "Information on profile image",
          "$ref": "#/definitions/ProfileImageInfo"
        },
        "references": {
          "type": "array",
          "description": "List of non-RC internal identifiers assigned to an extension",
          "items": {
            "$ref": "#/definitions/ReferenceInfo"
          }
        },
        "regionalSettings": {
          "description": "Extension region data (timezone, home country, language)",
          "$ref": "#/definitions/RegionalSettings"
        },
        "serviceFeatures": {
          "type": "array",
          "description": "Extension service features returned in response only when the logged-in user requests his/her own extension info, see also Extension Service Features",
          "items": {
            "$ref": "#/definitions/ExtensionServiceFeatureInfo"
          }
        },
        "setupWizardState": {
          "type": "string",
          "description": "Specifies extension configuration wizard state (web service setup). The default value is 'NotStarted'",
          "enum": [
            "NotStarted",
            "Incomplete",
            "Completed"
          ]
        },
        "status": {
          "type": "string",
          "description": "Extension current state. If the status is 'Unassigned'. Returned for all extensions",
          "enum": [
            "Enabled",
            "Disabled",
            "NotActivated",
            "Unassigned"
          ]
        },
        "statusInfo": {
          "description": "Status information (reason, comment). Returned for 'Disabled' status only",
          "$ref": "#/definitions/ExtensionStatusInfo"
        },
        "type": {
          "type": "string",
          "description": "Extension type",
          "enum": [
            "User",
            "FaxUser",
            "VirtualUser",
            "DigitalUser",
            "Department",
            "Announcement",
            "Voicemail",
            "SharedLinesGroup",
            "PagingOnlyGroup",
            "IvrMenu",
            "ApplicationExtension",
            "ParkLocation"
          ]
        },
        "callQueueExtensionInfo": {
          "description": "For Department extension type only. Call queue settings",
          "$ref": "#/definitions/CallQueueExtensionInfo"
        },
        "hidden": {
          "type": "boolean",
          "description": "Hides extension from showing in company directory. Supported for extensions of User type only"
        }
      }
    },
    "ExtensionCallerIdInfo": {
      "type": "object",
      "properties": {
        "uri": {
          "type": "string",
          "description": "Canonical URL of a caller ID resource"
        },
        "byDevice": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/CallerIdByDevice",
            "description": "Caller ID settings by device"
          }
        },
        "byFeature": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/CallerIdByFeature",
            "description": "Caller ID settings by feature"
          }
        }
      }
    },
    "GetConferencingInfoResponse": {
      "type": "object",
      "properties": {
        "uri": {
          "type": "string",
          "description": "Canonical URI of a conferencing"
        },
        "allowJoinBeforeHost": {
          "type": "boolean",
          "description": "Determines if host user allows conference participants to join before the host"
        },
        "hostCode": {
          "type": "string",
          "description": "Access code for a host user"
        },
        "mode": {
          "type": "string",
          "description": "Internal parameter specifying conferencing engine"
        },
        "participantCode": {
          "type": "string",
          "description": "Access code for any participant"
        },
        "phoneNumber": {
          "type": "string",
          "description": "Primary conference phone number for user's home country returned in E.164 (11-digits) format"
        },
        "tapToJoinUri": {
          "type": "string",
          "description": "Short URL leading to the service web page Tap to Join for audio conference bridge"
        },
        "phoneNumbers": {
          "type": "array",
          "description": "List of multiple dial-in phone numbers to connect to audio conference service, relevant for user's brand. Each number is given with the country and location information, in order to let the user choose the less expensive way to connect to a conference. The first number in the list is the primary conference number, that is default and domestic",
          "items": {
            "$ref": "#/definitions/PhoneNumberInfoConferencing"
          }
        }
      }
    },
    "LanguageInfo": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Internal identifier of a language"
        },
        "uri": {
          "type": "string",
          "description": "Canonical URI of a language"
        },
        "greeting": {
          "type": "boolean",
          "description": "Indicates whether a language is available as greeting language"
        },
        "formattingLocale": {
          "type": "boolean",
          "description": "Indicates whether a language is available as formatting locale"
        },
        "localeCode": {
          "type": "string",
          "description": "Localization code of a language"
        },
        "name": {
          "type": "string",
          "description": "Official name of a language"
        },
        "ui": {
          "type": "boolean",
          "description": "Indicates whether a language is available as UI language"
        }
      }
    },
    "GetCountryInfoDictionaryResponse": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Internal identifier of a country"
        },
        "uri": {
          "type": "string",
          "description": "Canonical URI of a country"
        },
        "callingCode": {
          "type": "string",
          "description": "Country calling code defined by ITU-T recommendations E.123 and E.164, see Calling Codes"
        },
        "emergencyCalling": {
          "type": "boolean",
          "description": "Emergency calling feature availability/emergency address requirement indicator"
        },
        "isoCode": {
          "type": "string",
          "description": "Country code according to the ISO standard, see ISO 3166"
        },
        "name": {
          "type": "string",
          "description": "Official name of a country"
        },
        "numberSelling": {
          "type": "boolean",
          "description": "Determines whether phone numbers are available for a country"
        },
        "loginAllowed": {
          "type": "boolean",
          "description": "Specifies whether login with the phone numbers of this country is enabled or not"
        },
        "signupAllowed": {
          "type": "boolean",
          "description": "Indicates whether signup/billing is allowed for a country"
        },
        "freeSoftphoneLine": {
          "type": "boolean",
          "description": "Specifies if free phone line for softphone is available for a country or not"
        }
      }
    },
    "GetStateListResponse": {
      "type": "object",
      "required": [
        "navigation",
        "paging",
        "records"
      ],
      "properties": {
        "records": {
          "type": "array",
          "description": "List of states",
          "items": {
            "$ref": "#/definitions/GetStateInfoResponse"
          }
        },
        "navigation": {
          "description": "Information on navigation",
          "$ref": "#/definitions/NavigationInfo"
        },
        "paging": {
          "description": "Information on paging",
          "$ref": "#/definitions/PagingInfo"
        }
      }
    },
    "CallMonitoringGroupMemberList": {
      "type": "object",
      "required": [
        "navigation",
        "paging",
        "records",
        "uri"
      ],
      "properties": {
        "uri": {
          "type": "string",
          "description": "Link to a call monitoring group members resource"
        },
        "records": {
          "type": "array",
          "description": "List of a call monitoring group members",
          "items": {
            "$ref": "#/definitions/CallMonitoringGroupMemberInfo"
          }
        },
        "navigation": {
          "description": "Information on navigation",
          "$ref": "#/definitions/NavigationInfo"
        },
        "paging": {
          "description": "Information on paging",
          "$ref": "#/definitions/PagingInfo"
        }
      }
    },
    "ExtensionInfoEvent": {
      "type": "object",
      "properties": {
        "extensionId": {
          "type": "string",
          "description": "Internal identifier of an extension"
        },
        "eventType": {
          "type": "string",
          "description": "Type of extension info change",
          "enum": [
            "Update",
            "Delete"
          ]
        },
        "hints": {
          "type": "array",
          "description": "Returned for 'Update' event type only. The possible values are: /nAccountInfo - change of account parameters/nExtensionInfo - change of contact info, service features, departments, status/nPhoneNumber - change of phone numbers/nRole - change of permissions/nProfileImage - change of profile image",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "ExtensionGrantListEvent": {
      "type": "object",
      "properties": {
        "extensionId": {
          "type": "string",
          "description": "Internal identifier of an extension"
        }
      }
    },
    "Binary": {
      "type": "object",
      "properties": {
        "data": {
          "type": "string",
          "description": "Required Binary Data",
          "format": "binary"
        }
      }
    },
    "DepartmentMemberList": {
      "type": "object",
      "properties": {
        "records": {
          "type": "array",
          "description": "List of department members extensions",
          "items": {
            "$ref": "#/definitions/ExtensionInfo"
          }
        },
        "navigation": {
          "description": "Information on navigation",
          "$ref": "#/definitions/NavigationInfo"
        },
        "paging": {
          "description": "Information on paging",
          "$ref": "#/definitions/PagingInfo"
        }
      }
    },
    "LanguageList": {
      "type": "object",
      "properties": {
        "uri": {
          "type": "string",
          "description": "Canonical URI of the language list resource"
        },
        "records": {
          "type": "array",
          "description": "Language data",
          "items": {
            "$ref": "#/definitions/LanguageInfo"
          }
        },
        "navigation": {
          "description": "Information on navigation",
          "$ref": "#/definitions/NavigationInfo"
        },
        "paging": {
          "description": "Information on paging",
          "$ref": "#/definitions/PagingInfo"
        }
      }
    },
    "GetCountryListResponse": {
      "type": "object",
      "required": [
        "navigation",
        "paging",
        "records"
      ],
      "properties": {
        "records": {
          "type": "array",
          "description": "List of countries with the country data",
          "items": {
            "$ref": "#/definitions/GetCountryInfoDictionaryResponse"
          }
        },
        "navigation": {
          "description": "Information on navigation",
          "$ref": "#/definitions/NavigationInfo"
        },
        "paging": {
          "description": "Information on paging",
          "$ref": "#/definitions/PagingInfo"
        }
      }
    },
    "PagingOnlyGroupUsers": {
      "type": "object",
      "properties": {
        "records": {
          "type": "array",
          "description": "List of users allowed to page this group",
          "items": {
            "$ref": "#/definitions/PagingGroupExtensionInfo"
          }
        },
        "navigation": {
          "description": "Information on navigation",
          "$ref": "#/definitions/NavigationInfo"
        },
        "paging": {
          "description": "Information on paging",
          "$ref": "#/definitions/PagingInfo"
        }
      }
    },
    "PagingOnlyGroupDevices": {
      "type": "object",
      "properties": {
        "records": {
          "type": "array",
          "description": "List of paging devices assigned to this group",
          "items": {
            "$ref": "#/definitions/PagingDeviceInfo"
          }
        },
        "navigation": {
          "description": "Information on navigation",
          "$ref": "#/definitions/NavigationInfo"
        },
        "paging": {
          "description": "Information on paging",
          "$ref": "#/definitions/PagingInfo"
        }
      }
    },
    "GetExtensionGrantListResponse": {
      "type": "object",
      "required": [
        "navigation",
        "paging",
        "records"
      ],
      "properties": {
        "records": {
          "type": "array",
          "description": "List of extension grants with the data",
          "items": {
            "$ref": "#/definitions/GrantInfo"
          }
        },
        "navigation": {
          "description": "Information on navigation",
          "$ref": "#/definitions/NavigationInfo"
        },
        "paging": {
          "description": "Information on paging",
          "$ref": "#/definitions/PagingInfo"
        }
      }
    },
    "NotificationSettingsUpdateRequest": {
      "type": "object",
      "properties": {
        "emailAddresses": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of notification recipient email addresses"
        },
        "smsEmailAddresses": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of notification recipient email addresses"
        },
        "advancedMode": {
          "type": "boolean",
          "description": "Specifies notifications settings mode. If 'True' then advanced mode is on, it allows using different emails and/or phone numbers for each notification type. If 'False' then basic mode is on. Advanced mode settings are returned in both modes, if specified once, but if basic mode is switched on, they are not applied "
        },
        "voicemails": {
          "$ref": "#/definitions/VoicemailsInfo"
        },
        "inboundFaxes": {
          "$ref": "#/definitions/InboundFaxesInfo"
        },
        "outboundFaxes": {
          "$ref": "#/definitions/OutboundFaxesInfo"
        },
        "inboundTexts": {
          "$ref": "#/definitions/InboundTextsInfo"
        },
        "missedCalls": {
          "$ref": "#/definitions/MissedCallsInfo"
        }
      }
    },
    "CallQueues": {
      "type": "object",
      "required": [
        "navigation",
        "paging",
        "records",
        "uri"
      ],
      "properties": {
        "uri": {
          "type": "string",
          "description": "Link to a call queues resource"
        },
        "records": {
          "type": "array",
          "description": "List of call queues",
          "items": {
            "$ref": "#/definitions/CallQueueInfo"
          }
        },
        "navigation": {
          "description": "Information on navigation",
          "$ref": "#/definitions/NavigationInfo"
        },
        "paging": {
          "description": "Information on paging",
          "$ref": "#/definitions/PagingInfo"
        }
      }
    },
    "GetTimezoneListResponse": {
      "type": "object",
      "required": [
        "navigation",
        "paging",
        "records"
      ],
      "properties": {
        "records": {
          "type": "array",
          "description": "List of timezones",
          "items": {
            "$ref": "#/definitions/GetTimezoneInfoResponse"
          }
        },
        "navigation": {
          "description": "Information on navigation",
          "$ref": "#/definitions/NavigationInfo"
        },
        "paging": {
          "description": "Information on paging",
          "$ref": "#/definitions/PagingInfo"
        }
      }
    },
    "ExtensionListEvent": {
      "type": "object",
      "properties": {
        "extensionId": {
          "type": "string",
          "description": "Internal identifier of an extension"
        },
        "eventType": {
          "type": "string",
          "description": "Type of extension info change",
          "enum": [
            "Create",
            "Update",
            "Delete"
          ]
        }
      }
    },
    "GetTimezoneInfoResponse": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Internal identifier of a timezone"
        },
        "uri": {
          "type": "string",
          "description": "Canonical URI of a timezone"
        },
        "name": {
          "type": "string",
          "description": "Short name of a timezone"
        },
        "description": {
          "type": "string",
          "description": "Description of a timezone"
        }
      }
    },
    "EditPagingGroupRequest": {
      "type": "object",
      "properties": {
        "addedUserIds": {
          "type": "array",
          "description": "List of users that will be allowed to page a group specified",
          "items": {
            "type": "string"
          }
        },
        "removedUserIds": {
          "type": "array",
          "description": "List of users that will be unallowed to page a group specified",
          "items": {
            "type": "string"
          }
        },
        "addedDeviceIds": {
          "type": "array",
          "description": "List of account devices that will be assigned to a paging group specified",
          "items": {
            "type": "string"
          }
        },
        "removedDeviceIds": {
          "type": "array",
          "description": "List of account devices that will be unassigned from a paging group specified",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "InboundTextsInfo": {
      "type": "object",
      "properties": {
        "notifyByEmail": {
          "type": "boolean",
          "description": "Email notification flag"
        },
        "notifyBySms": {
          "type": "boolean",
          "description": "SMS notification flag"
        },
        "advancedEmailAddresses": {
          "type": "array",
          "description": "List of recipient email addresses for inbound text message notifications. Returned if specified, in both modes (advanced/basic). Applied in advanced mode only",
          "items": {
            "type": "string"
          }
        },
        "advancedSmsEmailAddresses": {
          "type": "array",
          "description": "List of recipient phone numbers for inbound text message notifications. Returned if specified, in both modes (advanced/basic). Applied in advanced mode only",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "ContactInfo": {
      "type": "object",
      "properties": {
        "firstName": {
          "type": "string",
          "description": "For User extension type only. Extension user first name"
        },
        "lastName": {
          "type": "string",
          "description": "For User extension type only. Extension user last name"
        },
        "company": {
          "type": "string",
          "description": "Extension user company name"
        },
        "email": {
          "type": "string",
          "description": "Email of extension user"
        },
        "businessPhone": {
          "type": "string",
          "description": "Extension user contact phone number"
        },
        "businessAddress": {
          "description": "Business address of extension user company",
          "$ref": "#/definitions/ContactAddressInfo"
        }
      }
    },
    "PagingDeviceInfo": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Internal identifier of a paging device"
        },
        "uri": {
          "type": "string",
          "description": "Link to a paging device resource"
        },
        "name": {
          "type": "string",
          "description": "Name of a paging device"
        }
      }
    },
    "ServiceInfo": {
      "type": "object",
      "properties": {
        "uri": {
          "type": "string",
          "description": "Canonical URI of a service info resource"
        },
        "billingPlan": {
          "description": "Information on account billing plan",
          "$ref": "#/definitions/BillingPlanInfo"
        },
        "brand": {
          "description": "Information on account brand",
          "$ref": "#/definitions/BrandInfo"
        },
        "servicePlan": {
          "description": "Information on account service plan",
          "$ref": "#/definitions/ServicePlanInfo"
        },
        "targetServicePlan": {
          "description": "Information on account target service plan",
          "$ref": "#/definitions/TargetServicePlanInfo"
        }
      }
    },
    "MissedCallsInfo": {
      "type": "object",
      "properties": {
        "notifyByEmail": {
          "type": "boolean",
          "description": "Email notification flag"
        },
        "notifyBySms": {
          "type": "boolean",
          "description": "SMS notification flag"
        },
        "advancedEmailAddresses": {
          "type": "array",
          "description": "List of recipient email addresses for missed call notifications. Returned if specified, in both modes (advanced/basic). Applied in advanced mode only",
          "items": {
            "type": "string"
          }
        },
        "advancedSmsEmailAddresses": {
          "type": "array",
          "description": "List of recipient phone numbers for missed call notifications. Returned if specified, in both modes (advanced/basic). Applied in advanced mode only",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "ReferenceInfo": {
      "type": "object",
      "properties": {
        "ref": {
          "type": "string",
          "description": "Non-RC identifier of an extension"
        },
        "type": {
          "type": "string",
          "description": "Type of external identifier",
          "enum": [
            "PartnerId",
            "CustomerDirectoryId"
          ]
        }
      }
    },
    "CallerIdByDevice": {
      "type": "object",
      "properties": {
        "device": {
          "$ref": "#/definitions/CallerIdDeviceInfo"
        },
        "callerId": {
          "$ref": "#/definitions/CallerIdByDeviceInfo"
        }
      }
    },
    "BulkAssignItem": {
      "type": "object",
      "properties": {
        "departmentId": {
          "type": "string"
        },
        "addedExtensionIds": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "removedExtensionIds": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "CallMonitoringGroupInfo": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Internal identifier of a group"
        },
        "name": {
          "type": "string",
          "description": "Name of a group"
        }
      }
    },
    "ExtensionPermissions": {
      "type": "object",
      "description": "[Deprecated] Extension permissions, corresponding to the Service Web permissions 'Admin' and 'InternationalCalling'",
      "properties": {
        "admin": {
          "description": "Admin permission",
          "$ref": "#/definitions/PermissionInfo"
        },
        "internationalCalling": {
          "description": "International Calling permission",
          "$ref": "#/definitions/PermissionInfo"
        }
      }
    },
    "GrantInfo": {
      "type": "object",
      "properties": {
        "uri": {
          "type": "string",
          "description": "Canonical URI of a grant"
        },
        "extension": {
          "description": "Extension information",
          "$ref": "#/definitions/ExtensionInfoGrants"
        },
        "callPickup": {
          "type": "boolean",
          "description": "Specifies if picking up of other extensions' calls is allowed for the extension. If 'Presence' feature is disabled for the given extension, the flag is not returned"
        },
        "callMonitoring": {
          "type": "boolean",
          "description": "Specifies if monitoring of other extensions' calls is allowed for the extension. If 'CallMonitoring' feature is disabled for the given extension, the flag is not returned"
        }
      }
    },
    "CallQueueInfo": {
      "type": "object",
      "properties": {
        "uri": {
          "type": "string",
          "description": "Link to a call queue"
        },
        "id": {
          "type": "string",
          "description": "Internal identifier of a call queue"
        },
        "extensionNumber": {
          "type": "string",
          "description": "Extension number of a call queue"
        },
        "name": {
          "type": "string",
          "description": "Name of a call queue"
        }
      }
    },
    "ExtensionServiceFeatureInfo": {
      "type": "object",
      "properties": {
        "enabled": {
          "type": "boolean",
          "description": "Feature status; shows feature availability for an extension"
        },
        "featureName": {
          "type": "string",
          "enum": [
            "AccountFederation",
            "AutomaticCallRecordingMute",
            "AutomaticInboundCallRecording",
            "AutomaticOutboundCallRecording",
            "BlockedMessageForwarding",
            "Calendar",
            "CallerIdControl",
            "CallForwarding",
            "CallPark",
            "CallParkLocations",
            "CallSupervision",
            "CallSwitch",
            "CallQualitySurvey",
            "Conferencing",
            "DeveloperPortal",
            "DND",
            "EmergencyCalling",
            "EncryptionAtRest",
            "ExternalDirectoryIntegration",
            "Fax",
            "FaxReceiving",
            "FreeSoftPhoneLines",
            "HDVoice",
            "HipaaCompliance",
            "Intercom",
            "InternationalCalling",
            "InternationalSMS",
            "LinkedSoftphoneLines",
            "MMS",
            "OnDemandCallRecording",
            "Pager",
            "PagerReceiving",
            "Paging",
            "PasswordAuth",
            "PromoMessage",
            "Reports",
            "Presence",
            "RCTeams",
            "RingOut",
            "SalesForce",
            "SingleExtensionUI",
            "SiteCodes",
            "SMS",
            "SMSReceiving",
            "SoftPhoneUpdate",
            "UserManagement",
            "VideoConferencing",
            "VoipCalling",
            "VoipCallingOnMobile",
            "Voicemail",
            "VoicemailToText",
            "WebPhone"
          ],
          "description": "Feature name"
        },
        "reason": {
          "type": "string",
          "description": "Reason of limitation for a particular service feature. Returned only if the enabled parameter value is 'False', see Service Feature Limitations and Reasons. When retrieving service features for an extension, the reasons for the limitations, if any, are returned in response"
        }
      }
    },
    "CallMonitoringGroupMemberInfo": {
      "type": "object",
      "properties": {
        "uri": {
          "type": "string",
          "description": "Link to a call monitoring group member"
        },
        "id": {
          "type": "string",
          "description": "Internal identifier of a call monitoring group member"
        },
        "extensionNumber": {
          "type": "string",
          "description": "Extension number of a call monitoring group member"
        },
        "permissions": {
          "type": "string",
          "enum": [
            "Monitoring",
            "Monitored"
          ],
          "description": "Call monitoring permission; mltiple values allowed: * \"Monitoring\" - User can monitor a group * \"Monitored\" - User can be monitored\n"
        }
      }
    },
    "InboundFaxesInfo": {
      "type": "object",
      "properties": {
        "notifyByEmail": {
          "type": "boolean",
          "description": "Email notification flag"
        },
        "notifyBySms": {
          "type": "boolean",
          "description": "SMS notification flag"
        },
        "advancedEmailAddresses": {
          "type": "array",
          "description": "List of recipient email addresses for inbound fax notifications. Returned if specified, in both modes (advanced/basic). Applied in advanced mode only",
          "items": {
            "type": "string"
          }
        },
        "advancedSmsEmailAddresses": {
          "type": "array",
          "description": "List of recipient phone numbers for inbound fax notifications. Returned if specified, in both modes (advanced/basic). Applied in advanced mode only",
          "items": {
            "type": "string"
          }
        },
        "includeAttachment": {
          "type": "boolean",
          "description": "Indicates whether fax should be attached to email"
        },
        "markAsRead": {
          "type": "boolean",
          "description": "Indicates whether email should be automatically marked as read"
        }
      }
    },
    "ConferencePhoneNumberInfo": {
      "type": "object",
      "properties": {
        "phoneNumber": {
          "type": "string",
          "description": "Dial-in phone number to connect to a conference"
        },
        "default": {
          "type": "boolean",
          "description": "'True' if the number is default for the conference. Default conference number is a domestic number that can be set by user (otherwise it is set by the system). Only one default number per country is allowed"
        }
      }
    },
    "CallQueueMemberInfo": {
      "type": "object",
      "properties": {
        "uri": {
          "type": "string",
          "description": "Link to a call queue member"
        },
        "id": {
          "type": "string",
          "description": "Internal identifier of a call queue member"
        },
        "extensionNumber": {
          "type": "string",
          "description": "Extension number of a call queue member"
        }
      }
    },
    "CallQueueExtensionInfo": {
      "type": "object",
      "properties": {
        "slaGoal": {
          "type": "integer",
          "description": "Target percentage of calls that must be answered by agents within the service level time threshold"
        },
        "slaThresholdSeconds": {
          "type": "integer",
          "description": "Period of time in seconds that is considered to be an acceptable service level"
        },
        "includeAbandonedCalls": {
          "type": "boolean",
          "description": "If 'True' abandoned calls (hanged up prior to being served) are included into service level calculation"
        },
        "abandonedThresholdSeconds": {
          "type": "integer",
          "description": "Period of time in seconds specifying abandoned calls duration - calls that are shorter will not be included into the calculation of service level.; zero value means that abandoned calls of any duration will be included into calculation"
        }
      }
    },
    "PagingGroupExtensionInfo": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Internal identifier of a paging group user extension"
        },
        "uri": {
          "type": "string",
          "description": "Link to a paging group user extension"
        },
        "extensionNumber": {
          "type": "string",
          "description": "Extension number of a paging group user"
        },
        "name": {
          "type": "string",
          "description": "Name of a paging group user"
        }
      }
    },
    "AccountStatusInfo": {
      "type": "object",
      "properties": {
        "comment": {
          "type": "string",
          "description": "A free-form user comment, describing the status change reason"
        },
        "reason": {
          "type": "string",
          "description": "Type of suspension",
          "enum": [
            "Voluntarily",
            "Involuntarily"
          ]
        },
        "till": {
          "type": "string",
          "description": "Date until which the account will get deleted. The default value is 30 days since current date"
        }
      }
    },
    "RegionalSettings": {
      "type": "object",
      "properties": {
        "homeCountry": {
          "description": "Extension country information",
          "$ref": "#/definitions/CountryInfo"
        },
        "timezone": {
          "description": "Extension timezone information",
          "$ref": "#/definitions/TimezoneInfo"
        },
        "language": {
          "description": "User interface language data",
          "$ref": "#/definitions/LanguageInfo"
        },
        "greetingLanguage": {
          "description": "Information on language used for telephony greetings",
          "$ref": "#/definitions/GreetingLanguageInfo"
        },
        "formattingLocale": {
          "description": "Formatting language preferences for numbers, dates and currencies",
          "$ref": "#/definitions/FormattingLocaleInfo"
        },
        "timeFormat": {
          "type": "string",
          "description": "Time format setting. The default value is '12h' = ['12h', '24h']",
          "enum": [
            "12h",
            "24h"
          ]
        }
      }
    },
    "GetCountryInfoState": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Internal identifier of a state"
        },
        "uri": {
          "type": "string",
          "description": "Canonical URI of a state"
        }
      }
    },
    "ProfileImageInfo": {
      "type": "object",
      "required": [
        "uri"
      ],
      "properties": {
        "uri": {
          "type": "string",
          "description": "Link to a profile image. If an image is not uploaded for an extension, only uri is returned"
        },
        "etag": {
          "type": "string",
          "description": "Identifier of an image"
        },
        "lastModified": {
          "type": "string",
          "format": "date-time",
          "description": "The datetime when an image was last updated in ISO 8601 format, for example 2016-03-10T18:07:52.534Z"
        },
        "contentType": {
          "type": "string",
          "description": "The type of an image"
        },
        "scales": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/ProfileImageInfoURI"
          },
          "description": "List of URIs to profile images in different dimensions"
        }
      }
    },
    "ExtensionStatusInfo": {
      "type": "object",
      "properties": {
        "comment": {
          "type": "string",
          "description": "A free-form user comment, describing the status change reason"
        },
        "reason": {
          "type": "string",
          "description": "Type of suspension",
          "enum": [
            "Voluntarily",
            "Involuntarily"
          ]
        }
      }
    },
    "CallerIdByFeature": {
      "type": "object",
      "properties": {
        "feature": {
          "type": "string",
          "enum": [
            "RingOut",
            "RingMe",
            "CallFlip",
            "FaxNumber",
            "AdditionalSoftphone",
            "Alternate",
            "CommonPhone",
            "MobileApp"
          ]
        },
        "callerId": {
          "$ref": "#/definitions/CallerIdByFeatureInfo"
        }
      }
    },
    "PhoneNumberInfoConferencing": {
      "type": "object",
      "properties": {
        "country": {
          "description": "Information on a home country of a conference phone number",
          "$ref": "#/definitions/GetCountryInfoConferencing"
        },
        "default": {
          "type": "boolean",
          "description": "'True' if the number is default for the conference. Default conference number is a domestic number that can be set by user (otherwise it is set by the system). Only one default number per country is allowed"
        },
        "hasGreeting": {
          "type": "boolean",
          "description": "'True' if the greeting message is played on this number"
        },
        "location": {
          "type": "string",
          "description": "Location (city, region, state) of a conference phone number"
        },
        "phoneNumber": {
          "type": "string",
          "description": "Dial-in phone number to connect to a conference"
        }
      }
    },
    "LocationInfo": {
      "type": "object",
      "properties": {
        "uri": {
          "type": "string",
          "description": "Canonical URI of a location"
        },
        "areaCode": {
          "type": "string",
          "description": "Area code of the location"
        },
        "city": {
          "type": "string",
          "description": "Official name of the city, belonging to the certain state"
        },
        "npa": {
          "type": "string",
          "description": "Area code of the location (3-digit usually), according to the NANP number format, that can be summarized as NPA-NXX-xxxx and covers Canada, the United States, parts of the Caribbean Sea, and some Atlantic and Pacific islands. See for details North American Numbering Plan"
        },
        "nxx": {
          "type": "string",
          "description": "Central office code of the location, according to the NANP number format, that can be summarized as NPA-NXX-xxxx and covers Canada, the United States, parts of the Caribbean Sea, and some Atlantic and Pacific islands. See for details North American Numbering Plan"
        },
        "state": {
          "type": "string",
          "description": "ID and URI of the state this location belongs to, see State Info"
        }
      }
    },
    "VoicemailsInfo": {
      "type": "object",
      "properties": {
        "notifyByEmail": {
          "type": "boolean",
          "description": "Email notification flag"
        },
        "notifyBySms": {
          "type": "boolean",
          "description": "SMS notification flag"
        },
        "advancedEmailAddresses": {
          "type": "array",
          "description": "List of recipient email addresses for voicemail notifications. Returned if specified, in both modes (advanced/basic). Applied in advanced mode only",
          "items": {
            "type": "string"
          }
        },
        "advancedSmsEmailAddresses": {
          "type": "array",
          "description": "List of recipient phone numbers for voicemail notifications. Returned if specified, in both modes (advanced/basic). Applied in advanced mode only",
          "items": {
            "type": "string"
          }
        },
        "includeAttachment": {
          "type": "boolean",
          "description": "Indicates whether voicemail should be attached to email"
        },
        "markAsRead": {
          "type": "boolean",
          "description": "Indicates whether email should be automatically marked as read"
        }
      }
    },
    "OutboundFaxesInfo": {
      "type": "object",
      "properties": {
        "notifyByEmail": {
          "type": "boolean",
          "description": "Email notification flag"
        },
        "notifyBySms": {
          "type": "boolean",
          "description": "SMS notification flag"
        },
        "advancedEmailAddresses": {
          "type": "array",
          "description": "List of recipient email addresses for outbound fax notifications. Returned if specified, in both modes (advanced/basic). Applied in advanced mode only",
          "items": {
            "type": "string"
          }
        },
        "advancedSmsEmailAddresses": {
          "type": "array",
          "description": "List of recipient phone numbers for outbound fax notifications. Returned if specified, in both modes (advanced/basic). Applied in advanced mode only",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "CountryInfo": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Internal identifier of a home country"
        },
        "uri": {
          "type": "string",
          "description": "Canonical URI of a home country"
        },
        "name": {
          "type": "string",
          "description": "Official name of a home country"
        }
      }
    },
    "DepartmentInfo": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Internal identifier of a department extension"
        },
        "uri": {
          "type": "string",
          "description": "Canonical URI of a department extension"
        },
        "extensionNumber": {
          "type": "string",
          "description": "Number of a department extension"
        }
      }
    },
    "FormattingLocaleInfo": {
      "type": "object",
      "description": "Official name of a formatting language",
      "properties": {
        "id": {
          "type": "string",
          "description": "Internal identifier of a formatting language"
        },
        "localeCode": {
          "type": "string",
          "description": "Localization code of a formatting language"
        },
        "name": {
          "type": "string"
        }
      }
    },
    "TargetServicePlanInfo": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Internal identifier of a target service plan"
        },
        "name": {
          "type": "string",
          "description": "Name of a target service plan"
        }
      }
    },
    "PermissionInfo": {
      "type": "object",
      "properties": {
        "enabled": {
          "type": "boolean",
          "description": "Specifies if a permission is enabled or not"
        }
      }
    },
    "ServicePlanInfo": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Internal identifier of a service plan"
        },
        "name": {
          "type": "string",
          "description": "Name of a service plan"
        },
        "edition": {
          "type": "string",
          "description": "Edition of a service plan"
        }
      }
    },
    "ExtensionInfoGrants": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Internal identifier of an extension"
        },
        "uri": {
          "type": "string",
          "description": "Canonical URI of an extension"
        },
        "extensionNumber": {
          "type": "string",
          "description": "Extension short number (usually 3 or 4 digits)"
        },
        "type": {
          "type": "string",
          "description": "Extension type",
          "enum": [
            "User",
            "Fax User",
            "VirtualUser",
            "DigitalUser",
            "Department",
            "Announcement",
            "Voicemail",
            "SharedLinesGroup",
            "PagingOnly",
            "IvrMenu",
            "ApplicationExtension",
            "Park Location"
          ]
        }
      }
    },
    "GetCountryInfoConferencing": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Internal identifier of a country"
        },
        "uri": {
          "type": "string",
          "description": "Canonical URI of a country"
        },
        "callingCode": {
          "type": "string",
          "description": "Country calling code defined by ITU-T recommendations E.123 and E.164, see Calling Codes"
        },
        "emergencyCalling": {
          "type": "boolean",
          "description": "Emergency calling feature availability/emergency address requirement indicator"
        },
        "isoCode": {
          "type": "string",
          "description": "Country code according to the ISO standard, see ISO 3166"
        },
        "name": {
          "type": "string",
          "description": "Official name of a country"
        }
      }
    },
    "GreetingLanguageInfo": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Internal identifier of a greeting language"
        },
        "localeCode": {
          "type": "string",
          "description": "Localization code of a greeting language"
        },
        "name": {
          "type": "string",
          "description": "Official name of a greeting language"
        }
      }
    },
    "CallerIdByFeatureInfo": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "description": "If 'PhoneNumber' value is specified, then a certain phone number is shown as a caller ID when using this telephony feature. If 'Blocked' value is specified, then a caller ID is hidden. The value 'CurrentLocation' can be specified for 'RingOut' feature only. The default is 'PhoneNumber' = ['PhoneNumber', 'Blocked', 'CurrentLocation']"
        },
        "phoneInfo": {
          "$ref": "#/definitions/CallerIdPhoneInfo"
        }
      }
    },
    "CallerIdDeviceInfo": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Internal identifier of a device"
        },
        "uri": {
          "type": "string",
          "description": "Link to a device resource"
        },
        "phoneNumber": {
          "type": "string",
          "description": "Name of a device"
        }
      }
    },
    "CallerIdByDeviceInfo": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "description": "If 'PhoneNumber' value is specified, then a certain phone number is shown as a caller ID when using this telephony feature. If 'Blocked' value is specified, then a caller ID is hidden. The value 'CurrentLocation' can be specified for 'RingOut' feature only. The default is 'PhoneNumber' = ['PhoneNumber', 'Blocked', 'CurrentLocation']"
        },
        "phoneInfo": {
          "$ref": "#/definitions/CallerIdPhoneInfo"
        }
      }
    },
    "TimezoneInfo": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Internal identifier of a timezone"
        },
        "uri": {
          "type": "string",
          "description": "Canonical URI of a timezone"
        },
        "name": {
          "type": "string",
          "description": "Short name of a timezone"
        },
        "description": {
          "type": "string",
          "description": "Meaningful description of the timezone"
        }
      }
    },
    "BillingPlanInfo": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Internal identifier of a billing plan"
        },
        "name": {
          "type": "string",
          "description": "Billing plan name"
        },
        "durationUnit": {
          "type": "string",
          "description": "Duration period",
          "enum": [
            "Month",
            "Day"
          ]
        },
        "duration": {
          "type": "string",
          "description": "Number of duration units"
        },
        "type": {
          "type": "string",
          "description": "Billing plan type",
          "enum": [
            "Initial",
            "Regular",
            "Suspended",
            "Trial",
            "TrialNoCC",
            "Free"
          ]
        }
      }
    },
    "BrandInfo": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Internal identifier of a brand"
        },
        "name": {
          "type": "string",
          "description": "Brand name, for example  RingCentral UK ,  ClearFax "
        },
        "homeCountry": {
          "description": "Home country information",
          "$ref": "#/definitions/CountryInfo"
        }
      }
    },
    "ProfileImageInfoURI": {
      "type": "object",
      "properties": {
        "uri": {
          "type": "string"
        }
      }
    },
    "CallerIdPhoneInfo": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Internal identifier of a phone number"
        },
        "uri": {
          "type": "string",
          "description": "Link to a phone number resource"
        },
        "phoneNumber": {
          "type": "string",
          "description": "Phone number in E.164 (with '+' sign) format"
        }
      }
    },
    "ParsePhoneNumberResponse": {
      "type": "object",
      "required": [
        "homeCountry",
        "phoneNumbers"
      ],
      "properties": {
        "uri": {
          "type": "string",
          "description": "Canonical URI of a resource"
        },
        "homeCountry": {
          "type": "array",
          "description": "Information on a user home country",
          "items": {
            "$ref": "#/definitions/GetCountryInfoNumberParser"
          }
        },
        "phoneNumbers": {
          "type": "array",
          "description": "Parsed phone numbers data",
          "items": {
            "$ref": "#/definitions/PhoneNumberInfoNumberParser"
          }
        }
      }
    },
    "ParsePhoneNumberRequest": {
      "type": "object",
      "properties": {
        "originalStrings": {
          "type": "string",
          "description": "Phone numbers passed in a string. The maximum value of phone numbers is limited to 64. The maximum number of symbols in each phone number in a string is 64"
        }
      }
    },
    "GetCountryInfoNumberParser": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Internal identifier of a country"
        },
        "uri": {
          "type": "string",
          "description": "Canonical URI of a country"
        },
        "callingCode": {
          "type": "string",
          "description": "Country calling code defined by ITU-T recommendations E.123 and E.164, see Calling Codes"
        },
        "emergencyCalling": {
          "type": "boolean",
          "description": "Emergency calling feature availability/emergency address requirement indicator"
        },
        "isoCode": {
          "type": "string",
          "description": "Country code according to the ISO standard, see ISO 3166"
        },
        "name": {
          "type": "string",
          "description": "Official name of a country"
        }
      }
    },
    "PhoneNumberInfoNumberParser": {
      "type": "object",
      "properties": {
        "areaCode": {
          "type": "string",
          "description": "Area code of the location (3-digit usually), according to the NANP number format, that can be summarized as NPA-NXX-xxxx and covers Canada, the United States, parts of the Caribbean Sea, and some Atlantic and Pacific islands. See North American Numbering Plan for details"
        },
        "country": {
          "type": "array",
          "description": "Information on a country the phone number belongs to",
          "items": {
            "$ref": "#/definitions/GetCountryInfoNumberParser"
          }
        },
        "dialable": {
          "type": "string",
          "description": "Dialing format of a phone number"
        },
        "e164": {
          "type": "string",
          "description": "E.164 (11-digits) format of a phone number"
        },
        "formattedInternational": {
          "type": "string",
          "description": "International format of a phone number"
        },
        "formattedNational": {
          "type": "string",
          "description": "Domestic format of a phone number"
        },
        "originalString": {
          "type": "string",
          "description": "One of the numbers to be parsed, passed as a string in response"
        },
        "special": {
          "type": "boolean",
          "description": " 'True'  if the number is in a special format (for example N11 code)"
        },
        "normalized": {
          "type": "string",
          "description": "E.164 (11-digits) format of a phone number without the plus sign ('+')"
        }
      }
    },
    "UserPatch": {
      "type": "object",
      "required": [
        "Operations",
        "schemas"
      ],
      "properties": {
        "Operations": {
          "type": "array",
          "description": "patch operations list",
          "items": {
            "$ref": "#/definitions/PatchOperation"
          }
        },
        "schemas": {
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "urn:ietf:params:scim:api:messages:2.0:PatchOp"
            ]
          }
        }
      }
    },
    "ServiceProviderConfig": {
      "type": "object",
      "properties": {
        "authenticationSchemes": {
          "$ref": "#/definitions/AuthenticationSchemes"
        },
        "bulk": {
          "$ref": "#/definitions/BulkSupported"
        },
        "changePassword": {
          "$ref": "#/definitions/Supported"
        },
        "etag": {
          "$ref": "#/definitions/Supported"
        },
        "filter": {
          "$ref": "#/definitions/FilterSupported"
        },
        "patch": {
          "$ref": "#/definitions/Supported"
        },
        "schemas": {
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "urn:ietf:params:scim:schemas:core:2.0:ServiceProviderConfig"
            ]
          }
        },
        "sort": {
          "$ref": "#/definitions/Supported"
        },
        "xmlDataFormat": {
          "$ref": "#/definitions/Supported"
        }
      }
    },
    "UserSearchResponse": {
      "type": "object",
      "properties": {
        "Resources": {
          "type": "array",
          "description": "user list",
          "items": {
            "$ref": "#/definitions/UserResponse"
          }
        },
        "itemsPerPage": {
          "type": "integer",
          "format": "int64"
        },
        "schemas": {
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "urn:ietf:params:scim:api:messages:2.0:ListResponse"
            ]
          }
        },
        "startIndex": {
          "type": "integer",
          "format": "int64"
        },
        "totalResults": {
          "type": "integer",
          "format": "int64"
        }
      }
    },
    "User": {
      "type": "object",
      "required": [
        "emails",
        "name",
        "schemas",
        "userName"
      ],
      "properties": {
        "active": {
          "type": "boolean",
          "description": "user status",
          "default": false
        },
        "addresses": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Address"
          }
        },
        "emails": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Email"
          }
        },
        "externalId": {
          "type": "string",
          "description": "external unique resource id defined by provisioning client"
        },
        "id": {
          "type": "string",
          "description": "unique resource id defined by RingCentral"
        },
        "name": {
          "$ref": "#/definitions/Name"
        },
        "phoneNumbers": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/PhoneNumber"
          }
        },
        "photos": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Photo"
          }
        },
        "schemas": {
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "urn:ietf:params:scim:schemas:core:2.0:User"
            ]
          }
        },
        "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User": {
          "$ref": "#/definitions/EnterpriseUser"
        },
        "userName": {
          "type": "string",
          "description": "MUST be same as work type email address"
        }
      }
    },
    "UserResponse": {
      "type": "object",
      "required": [
        "emails",
        "name",
        "schemas",
        "userName"
      ],
      "properties": {
        "active": {
          "type": "boolean",
          "description": "user status",
          "default": false
        },
        "addresses": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Address"
          }
        },
        "emails": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Email"
          }
        },
        "externalId": {
          "type": "string",
          "description": "external unique resource id defined by provisioning client"
        },
        "id": {
          "type": "string",
          "description": "unique resource id defined by RingCentral"
        },
        "name": {
          "$ref": "#/definitions/Name"
        },
        "phoneNumbers": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/PhoneNumber"
          }
        },
        "photos": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Photo"
          }
        },
        "schemas": {
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "urn:ietf:params:scim:schemas:core:2.0:User"
            ]
          }
        },
        "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User": {
          "$ref": "#/definitions/EnterpriseUser"
        },
        "userName": {
          "type": "string",
          "description": "MUST be same as work type email address"
        },
        "meta": {
          "$ref": "#/definitions/Meta"
        }
      }
    },
    "SearchRequest": {
      "type": "object",
      "properties": {
        "count": {
          "type": "integer",
          "format": "int32",
          "description": "page size"
        },
        "filter": {
          "type": "string",
          "description": "only support 'userName' or 'email' filter expressions for now"
        },
        "schemas": {
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "urn:ietf:params:scim:api:messages:2.0:SearchRequest"
            ]
          }
        },
        "startIndex": {
          "type": "integer",
          "format": "int32",
          "description": "start index (1-based)"
        }
      }
    },
    "EnterpriseUser": {
      "type": "object",
      "properties": {
        "department": {
          "type": "string"
        }
      }
    },
    "AuthenticationSchemes": {
      "type": "object",
      "properties": {
        "authenticationSchemes": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/AuthenticationScheme"
          }
        }
      }
    },
    "BulkSupported": {
      "type": "object",
      "properties": {
        "maxOperations": {
          "type": "integer",
          "format": "int32"
        },
        "maxPayloadSize": {
          "type": "integer",
          "format": "int32"
        },
        "supported": {
          "type": "boolean",
          "default": false
        }
      }
    },
    "Email": {
      "type": "object",
      "required": [
        "type",
        "value"
      ],
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "work"
          ]
        },
        "value": {
          "type": "string"
        }
      }
    },
    "Name": {
      "type": "object",
      "required": [
        "familyName",
        "givenName"
      ],
      "properties": {
        "familyName": {
          "type": "string"
        },
        "givenName": {
          "type": "string"
        }
      }
    },
    "PhoneNumber": {
      "type": "object",
      "required": [
        "type",
        "value"
      ],
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "work",
            "mobile",
            "other"
          ]
        },
        "value": {
          "type": "string"
        }
      }
    },
    "Meta": {
      "type": "object",
      "properties": {
        "created": {
          "type": "string",
          "format": "date-time"
        },
        "lastModified": {
          "type": "string",
          "format": "date-time"
        },
        "location": {
          "type": "string",
          "description": "resource location URI"
        },
        "resourceType": {
          "type": "string",
          "enum": [
            "User",
            "Group"
          ]
        }
      },
      "description": "resource metadata"
    },
    "PatchOperation": {
      "type": "object",
      "required": [
        "op"
      ],
      "properties": {
        "op": {
          "type": "string",
          "enum": [
            "add",
            "replace",
            "remove"
          ]
        },
        "path": {
          "type": "string"
        },
        "value": {
          "type": "object",
          "description": "corresponding 'value' of that field specified by 'path'"
        }
      }
    },
    "Supported": {
      "type": "object",
      "properties": {
        "supported": {
          "type": "boolean",
          "default": false
        }
      }
    },
    "FilterSupported": {
      "type": "object",
      "properties": {
        "maxResults": {
          "type": "integer",
          "format": "int32"
        },
        "supported": {
          "type": "boolean",
          "default": false
        }
      }
    },
    "Address": {
      "type": "object",
      "required": [
        "type"
      ],
      "properties": {
        "country": {
          "type": "string"
        },
        "locality": {
          "type": "string"
        },
        "postalCode": {
          "type": "string"
        },
        "region": {
          "type": "string"
        },
        "streetAddress": {
          "type": "string"
        },
        "type": {
          "type": "string",
          "enum": [
            "work"
          ]
        }
      }
    },
    "Photo": {
      "type": "object",
      "required": [
        "type",
        "value"
      ],
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "photo"
          ]
        },
        "value": {
          "type": "string"
        }
      }
    },
    "AuthenticationScheme": {
      "type": "object",
      "properties": {
        "description": {
          "type": "string"
        },
        "documentationUrl": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "specUrl": {
          "type": "string"
        }
      }
    }
  }
}

以上是关于json ringcentral-的OpenAPI的主要内容,如果未能解决你的问题,请参考以下文章

json OpenAPI的-spec.json

如何从 OpenAPI 3.0 yaml 文件生成 JSON 示例?

json Yelp的-的OpenAPI

json 圣 - 弗朗西斯科-511-的OpenAPI

json ID登录-的OpenAPI

json lisk-的OpenAPI