diff --git a/fern/apis/api/openapi.json b/fern/apis/api/openapi.json index f16a81b3..3d974589 100644 --- a/fern/apis/api/openapi.json +++ b/fern/apis/api/openapi.json @@ -7839,6 +7839,13 @@ "description": "If enabled, requests will originate from a static set of IPs owned and managed by Vapi.\n\n@default false", "example": false }, + "encryptedPaths": { + "type": "array", + "description": "This is the paths to encrypt in the request body if credentialId and encryptionPlan are defined.", + "items": { + "type": "string" + } + }, "url": { "type": "string", "description": "This is where the request will be sent." @@ -8838,7 +8845,7 @@ }, "numeralStyle": { "type": "string", - "description": "This controls how numbers are formatted in the transcription output.\n\n@default 'written'", + "description": "This controls how numbers, dates, currencies, and other entities are formatted in the transcription output.\n\n@default 'written'", "example": "spoken", "enum": [ "written", @@ -8846,12 +8853,6 @@ ], "default": "written" }, - "enableEntities": { - "type": "boolean", - "description": "This enables detection of non-speech audio events like music, applause, and laughter.\n\n@default false", - "example": true, - "default": false - }, "endOfTurnSensitivity": { "type": "number", "description": "This is the sensitivity level for end-of-turn detection, which determines when a speaker has finished talking. Higher values are more sensitive.\n\n@default 0.5", @@ -10628,7 +10629,7 @@ }, "numeralStyle": { "type": "string", - "description": "This controls how numbers are formatted in the transcription output.\n\n@default 'written'", + "description": "This controls how numbers, dates, currencies, and other entities are formatted in the transcription output.\n\n@default 'written'", "example": "spoken", "enum": [ "written", @@ -10636,12 +10637,6 @@ ], "default": "written" }, - "enableEntities": { - "type": "boolean", - "description": "This enables detection of non-speech audio events like music, applause, and laughter.\n\n@default false", - "example": true, - "default": false - }, "endOfTurnSensitivity": { "type": "number", "description": "This is the sensitivity level for end-of-turn detection, which determines when a speaker has finished talking. Higher values are more sensitive.\n\n@default 0.5", @@ -15671,6 +15666,7 @@ "type": "string", "description": "This is the OpenAI model that will be used.\n\nWhen using Vapi OpenAI or your own Azure Credentials, you have the option to specify the region for the selected model. This shouldn't be specified unless you have a specific reason to do so. Vapi will automatically find the fastest region that make sense.\nThis is helpful when you are required to comply with Data Residency rules. Learn more about Azure regions here https://azure.microsoft.com/en-us/explore/global-infrastructure/data-residency/.\n\n@default undefined", "enum": [ + "gpt-5.2", "gpt-5.1", "gpt-5.1-chat-latest", "gpt-5", @@ -15716,12 +15712,20 @@ "gpt-4.1-2025-04-14:westus3", "gpt-4.1-2025-04-14:northcentralus", "gpt-4.1-2025-04-14:southcentralus", + "gpt-4.1-2025-04-14:westeurope", + "gpt-4.1-2025-04-14:germanywestcentral", + "gpt-4.1-2025-04-14:polandcentral", + "gpt-4.1-2025-04-14:spaincentral", "gpt-4.1-mini-2025-04-14:westus", "gpt-4.1-mini-2025-04-14:eastus2", "gpt-4.1-mini-2025-04-14:eastus", "gpt-4.1-mini-2025-04-14:westus3", "gpt-4.1-mini-2025-04-14:northcentralus", "gpt-4.1-mini-2025-04-14:southcentralus", + "gpt-4.1-mini-2025-04-14:westeurope", + "gpt-4.1-mini-2025-04-14:germanywestcentral", + "gpt-4.1-mini-2025-04-14:polandcentral", + "gpt-4.1-mini-2025-04-14:spaincentral", "gpt-4.1-nano-2025-04-14:westus", "gpt-4.1-nano-2025-04-14:eastus2", "gpt-4.1-nano-2025-04-14:westus3", @@ -15733,6 +15737,10 @@ "gpt-4o-2024-11-20:eastus", "gpt-4o-2024-11-20:westus3", "gpt-4o-2024-11-20:southcentralus", + "gpt-4o-2024-11-20:westeurope", + "gpt-4o-2024-11-20:germanywestcentral", + "gpt-4o-2024-11-20:polandcentral", + "gpt-4o-2024-11-20:spaincentral", "gpt-4o-2024-08-06:westus", "gpt-4o-2024-08-06:westus3", "gpt-4o-2024-08-06:eastus", @@ -15782,6 +15790,7 @@ "items": { "type": "string", "enum": [ + "gpt-5.2", "gpt-5.1", "gpt-5.1-chat-latest", "gpt-5", @@ -15827,12 +15836,20 @@ "gpt-4.1-2025-04-14:westus3", "gpt-4.1-2025-04-14:northcentralus", "gpt-4.1-2025-04-14:southcentralus", + "gpt-4.1-2025-04-14:westeurope", + "gpt-4.1-2025-04-14:germanywestcentral", + "gpt-4.1-2025-04-14:polandcentral", + "gpt-4.1-2025-04-14:spaincentral", "gpt-4.1-mini-2025-04-14:westus", "gpt-4.1-mini-2025-04-14:eastus2", "gpt-4.1-mini-2025-04-14:eastus", "gpt-4.1-mini-2025-04-14:westus3", "gpt-4.1-mini-2025-04-14:northcentralus", "gpt-4.1-mini-2025-04-14:southcentralus", + "gpt-4.1-mini-2025-04-14:westeurope", + "gpt-4.1-mini-2025-04-14:germanywestcentral", + "gpt-4.1-mini-2025-04-14:polandcentral", + "gpt-4.1-mini-2025-04-14:spaincentral", "gpt-4.1-nano-2025-04-14:westus", "gpt-4.1-nano-2025-04-14:eastus2", "gpt-4.1-nano-2025-04-14:westus3", @@ -15844,6 +15861,10 @@ "gpt-4o-2024-11-20:eastus", "gpt-4o-2024-11-20:westus3", "gpt-4o-2024-11-20:southcentralus", + "gpt-4o-2024-11-20:westeurope", + "gpt-4o-2024-11-20:germanywestcentral", + "gpt-4o-2024-11-20:polandcentral", + "gpt-4o-2024-11-20:spaincentral", "gpt-4o-2024-08-06:westus", "gpt-4o-2024-08-06:westus3", "gpt-4o-2024-08-06:eastus", @@ -15894,7 +15915,7 @@ }, "promptCacheRetention": { "type": "string", - "description": "This controls the prompt cache retention policy for models that support extended caching (GPT-4.1, GPT-5 series).\n\n- `in_memory`: Default behavior, cache retained in GPU memory only\n- `24h`: Extended caching, keeps cached prefixes active for up to 24 hours by offloading to GPU-local storage\n\nOnly applies to models: gpt-5.1, gpt-5.1-codex, gpt-5.1-codex-mini, gpt-5.1-chat-latest, gpt-5, gpt-5-codex, gpt-4.1\n\n@default undefined (uses API default which is 'in_memory')", + "description": "This controls the prompt cache retention policy for models that support extended caching (GPT-4.1, GPT-5 series).\n\n- `in_memory`: Default behavior, cache retained in GPU memory only\n- `24h`: Extended caching, keeps cached prefixes active for up to 24 hours by offloading to GPU-local storage\n\nOnly applies to models: gpt-5.2, gpt-5.1, gpt-5.1-codex, gpt-5.1-codex-mini, gpt-5.1-chat-latest, gpt-5, gpt-5-codex, gpt-4.1\n\n@default undefined (uses API default which is 'in_memory')", "enum": [ "in_memory", "24h" @@ -16439,6 +16460,7 @@ "description": "This is the OpenAI model that will be used.\n\nWhen using Vapi OpenAI or your own Azure Credentials, you have the option to specify the region for the selected model. This shouldn't be specified unless you have a specific reason to do so. Vapi will automatically find the fastest region that make sense.\nThis is helpful when you are required to comply with Data Residency rules. Learn more about Azure regions here https://azure.microsoft.com/en-us/explore/global-infrastructure/data-residency/.", "maxLength": 100, "enum": [ + "gpt-5.2", "gpt-5.1", "gpt-5.1-chat-latest", "gpt-5", @@ -16480,12 +16502,20 @@ "gpt-4.1-2025-04-14:westus3", "gpt-4.1-2025-04-14:northcentralus", "gpt-4.1-2025-04-14:southcentralus", + "gpt-4.1-2025-04-14:westeurope", + "gpt-4.1-2025-04-14:germanywestcentral", + "gpt-4.1-2025-04-14:polandcentral", + "gpt-4.1-2025-04-14:spaincentral", "gpt-4.1-mini-2025-04-14:westus", "gpt-4.1-mini-2025-04-14:eastus2", "gpt-4.1-mini-2025-04-14:eastus", "gpt-4.1-mini-2025-04-14:westus3", "gpt-4.1-mini-2025-04-14:northcentralus", "gpt-4.1-mini-2025-04-14:southcentralus", + "gpt-4.1-mini-2025-04-14:westeurope", + "gpt-4.1-mini-2025-04-14:germanywestcentral", + "gpt-4.1-mini-2025-04-14:polandcentral", + "gpt-4.1-mini-2025-04-14:spaincentral", "gpt-4.1-nano-2025-04-14:westus", "gpt-4.1-nano-2025-04-14:eastus2", "gpt-4.1-nano-2025-04-14:westus3", @@ -16497,6 +16527,10 @@ "gpt-4o-2024-11-20:eastus", "gpt-4o-2024-11-20:westus3", "gpt-4o-2024-11-20:southcentralus", + "gpt-4o-2024-11-20:westeurope", + "gpt-4o-2024-11-20:germanywestcentral", + "gpt-4o-2024-11-20:polandcentral", + "gpt-4o-2024-11-20:spaincentral", "gpt-4o-2024-08-06:westus", "gpt-4o-2024-08-06:westus3", "gpt-4o-2024-08-06:eastus", @@ -18445,7 +18479,7 @@ }, "fullMessageHistoryEnabled": { "type": "boolean", - "description": "This determines whether the artifact contains the full message history, even after handoff context engineering. Defaults to true.", + "description": "This determines whether the artifact contains the full message history, even after handoff context engineering. Defaults to false.", "example": false }, "pcapEnabled": { @@ -24582,16 +24616,20 @@ "eastus2", "eastus", "france", + "germanywestcentral", "india", "japaneast", "japanwest", - "uaenorth", "northcentralus", "norway", + "polandcentral", "southcentralus", + "spaincentral", "swedencentral", "switzerland", + "uaenorth", "uk", + "westeurope", "westus", "westus3" ] @@ -24644,16 +24682,20 @@ "eastus2", "eastus", "france", + "germanywestcentral", "india", "japaneast", "japanwest", - "uaenorth", "northcentralus", "norway", + "polandcentral", "southcentralus", + "spaincentral", "swedencentral", "switzerland", + "uaenorth", "uk", + "westeurope", "westus", "westus3" ] @@ -24661,6 +24703,7 @@ "models": { "type": "array", "enum": [ + "gpt-5.2", "gpt-5.1", "gpt-5.1-chat", "gpt-5", @@ -24687,6 +24730,7 @@ "items": { "type": "string", "enum": [ + "gpt-5.2", "gpt-5.1", "gpt-5.1-chat", "gpt-5", @@ -37794,6 +37838,13 @@ "description": "The credential ID for API request authentication", "example": "550e8400-e29b-41d4-a716-446655440000" }, + "encryptedPaths": { + "type": "array", + "description": "This is the paths to encrypt in the request body if credentialId and encryptionPlan are defined.", + "items": { + "type": "string" + } + }, "id": { "type": "string", "description": "This is the unique identifier for the tool." @@ -39775,6 +39826,13 @@ "description": "The credential ID for API request authentication", "example": "550e8400-e29b-41d4-a716-446655440000" }, + "encryptedPaths": { + "type": "array", + "description": "This is the paths to encrypt in the request body if credentialId and encryptionPlan are defined.", + "items": { + "type": "string" + } + }, "name": { "type": "string", "description": "This is the name of the tool. This will be passed to the model.\n\nMust be a-z, A-Z, 0-9, or contain underscores and dashes, with a maximum length of 40.", @@ -40310,6 +40368,13 @@ "description": "The credential ID for API request authentication", "example": "550e8400-e29b-41d4-a716-446655440000" }, + "encryptedPaths": { + "type": "array", + "description": "This is the paths to encrypt in the request body if credentialId and encryptionPlan are defined.", + "items": { + "type": "string" + } + }, "rejectionPlan": { "description": "This is the plan to reject a tool call based on the conversation state.\n\n// Example 1: Reject endCall if user didn't say goodbye\n```json\n{\n conditions: [{\n type: 'regex',\n regex: '(?i)\\\\b(bye|goodbye|farewell|see you later|take care)\\\\b',\n target: { position: -1, role: 'user' },\n negate: true // Reject if pattern does NOT match\n }]\n}\n```\n\n// Example 2: Reject transfer if user is actually asking a question\n```json\n{\n conditions: [{\n type: 'regex',\n regex: '\\\\?',\n target: { position: -1, role: 'user' }\n }]\n}\n```\n\n// Example 3: Reject transfer if user didn't mention transfer recently\n```json\n{\n conditions: [{\n type: 'liquid',\n liquid: `{% assign recentMessages = messages | last: 5 %}\n{% assign userMessages = recentMessages | where: 'role', 'user' %}\n{% assign mentioned = false %}\n{% for msg in userMessages %}\n {% if msg.content contains 'transfer' or msg.content contains 'connect' or msg.content contains 'speak to' %}\n {% assign mentioned = true %}\n {% break %}\n {% endif %}\n{% endfor %}\n{% if mentioned %}\n false\n{% else %}\n true\n{% endif %}`\n }]\n}\n```\n\n// Example 4: Reject endCall if the bot is looping and trying to exit\n```json\n{\n conditions: [{\n type: 'liquid',\n liquid: `{% assign recentMessages = messages | last: 6 %}\n{% assign userMessages = recentMessages | where: 'role', 'user' | reverse %}\n{% if userMessages.size < 3 %}\n false\n{% else %}\n {% assign msg1 = userMessages[0].content | downcase %}\n {% assign msg2 = userMessages[1].content | downcase %}\n {% assign msg3 = userMessages[2].content | downcase %}\n {% comment %} Check for repetitive messages {% endcomment %}\n {% if msg1 == msg2 or msg1 == msg3 or msg2 == msg3 %}\n true\n {% comment %} Check for common loop phrases {% endcomment %}\n {% elsif msg1 contains 'cool thanks' or msg2 contains 'cool thanks' or msg3 contains 'cool thanks' %}\n true\n {% elsif msg1 contains 'okay thanks' or msg2 contains 'okay thanks' or msg3 contains 'okay thanks' %}\n true\n {% elsif msg1 contains 'got it' or msg2 contains 'got it' or msg3 contains 'got it' %}\n true\n {% else %}\n false\n {% endif %}\n{% endif %}`\n }]\n}\n```", "allOf": [ @@ -45187,6 +45252,7 @@ "description": "This is the OpenAI model that will be used.\n\nWhen using Vapi OpenAI or your own Azure Credentials, you have the option to specify the region for the selected model. This shouldn't be specified unless you have a specific reason to do so. Vapi will automatically find the fastest region that make sense.\nThis is helpful when you are required to comply with Data Residency rules. Learn more about Azure regions here https://azure.microsoft.com/en-us/explore/global-infrastructure/data-residency/.", "maxLength": 100, "enum": [ + "gpt-5.2", "gpt-5.1", "gpt-5.1-chat-latest", "gpt-5", @@ -45228,12 +45294,20 @@ "gpt-4.1-2025-04-14:westus3", "gpt-4.1-2025-04-14:northcentralus", "gpt-4.1-2025-04-14:southcentralus", + "gpt-4.1-2025-04-14:westeurope", + "gpt-4.1-2025-04-14:germanywestcentral", + "gpt-4.1-2025-04-14:polandcentral", + "gpt-4.1-2025-04-14:spaincentral", "gpt-4.1-mini-2025-04-14:westus", "gpt-4.1-mini-2025-04-14:eastus2", "gpt-4.1-mini-2025-04-14:eastus", "gpt-4.1-mini-2025-04-14:westus3", "gpt-4.1-mini-2025-04-14:northcentralus", "gpt-4.1-mini-2025-04-14:southcentralus", + "gpt-4.1-mini-2025-04-14:westeurope", + "gpt-4.1-mini-2025-04-14:germanywestcentral", + "gpt-4.1-mini-2025-04-14:polandcentral", + "gpt-4.1-mini-2025-04-14:spaincentral", "gpt-4.1-nano-2025-04-14:westus", "gpt-4.1-nano-2025-04-14:eastus2", "gpt-4.1-nano-2025-04-14:westus3", @@ -45245,6 +45319,10 @@ "gpt-4o-2024-11-20:eastus", "gpt-4o-2024-11-20:westus3", "gpt-4o-2024-11-20:southcentralus", + "gpt-4o-2024-11-20:westeurope", + "gpt-4o-2024-11-20:germanywestcentral", + "gpt-4o-2024-11-20:polandcentral", + "gpt-4o-2024-11-20:spaincentral", "gpt-4o-2024-08-06:westus", "gpt-4o-2024-08-06:westus3", "gpt-4o-2024-08-06:eastus", @@ -47226,16 +47304,20 @@ "eastus2", "eastus", "france", + "germanywestcentral", "india", "japaneast", "japanwest", - "uaenorth", "northcentralus", "norway", + "polandcentral", "southcentralus", + "spaincentral", "swedencentral", "switzerland", + "uaenorth", "uk", + "westeurope", "westus", "westus3" ] @@ -47310,16 +47392,20 @@ "eastus2", "eastus", "france", + "germanywestcentral", "india", "japaneast", "japanwest", - "uaenorth", "northcentralus", "norway", + "polandcentral", "southcentralus", + "spaincentral", "swedencentral", "switzerland", + "uaenorth", "uk", + "westeurope", "westus", "westus3" ] @@ -47327,6 +47413,7 @@ "models": { "type": "array", "enum": [ + "gpt-5.2", "gpt-5.1", "gpt-5.1-chat", "gpt-5", @@ -47353,6 +47440,7 @@ "items": { "type": "string", "enum": [ + "gpt-5.2", "gpt-5.1", "gpt-5.1-chat", "gpt-5", @@ -49437,6 +49525,74 @@ "authenticationSession" ] }, + "SpkiPemPublicKeyConfig": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Optional name of the key for identification purposes.", + "maxLength": 100 + }, + "format": { + "type": "string", + "description": "The format of the public key.", + "enum": [ + "spki-pem" + ] + }, + "pem": { + "type": "string", + "description": "The PEM-encoded public key." + } + }, + "required": [ + "format", + "pem" + ] + }, + "PublicKeyEncryptionPlan": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "The type of encryption plan.", + "enum": [ + "public-key" + ] + }, + "algorithm": { + "type": "string", + "description": "The encryption algorithm to use.", + "enum": [ + "RSA-OAEP-256" + ] + }, + "publicKey": { + "description": "The public key configuration.", + "oneOf": [ + { + "$ref": "#/components/schemas/SpkiPemPublicKeyConfig" + } + ], + "discriminator": { + "propertyName": "format", + "mapping": { + "spki-pem": "#/components/schemas/SpkiPemPublicKeyConfig" + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/SpkiPemPublicKeyConfig" + } + ] + } + }, + "required": [ + "type", + "algorithm", + "publicKey" + ] + }, "CustomCredential": { "type": "object", "properties": { @@ -49468,6 +49624,25 @@ } } }, + "encryptionPlan": { + "description": "This is the encryption plan for encrypting sensitive data. Currently supports public-key encryption.", + "oneOf": [ + { + "$ref": "#/components/schemas/PublicKeyEncryptionPlan" + } + ], + "discriminator": { + "propertyName": "type", + "mapping": { + "public-key": "#/components/schemas/PublicKeyEncryptionPlan" + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/PublicKeyEncryptionPlan" + } + ] + }, "id": { "type": "string", "description": "This is the unique identifier for the credential." @@ -50106,6 +50281,25 @@ } } }, + "encryptionPlan": { + "description": "This is the encryption plan for encrypting sensitive data. Currently supports public-key encryption.", + "oneOf": [ + { + "$ref": "#/components/schemas/PublicKeyEncryptionPlan" + } + ], + "discriminator": { + "propertyName": "type", + "mapping": { + "public-key": "#/components/schemas/PublicKeyEncryptionPlan" + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/PublicKeyEncryptionPlan" + } + ] + }, "name": { "type": "string", "description": "This is the name of credential. This is just for your reference.", @@ -50242,16 +50436,20 @@ "eastus2", "eastus", "france", + "germanywestcentral", "india", "japaneast", "japanwest", - "uaenorth", "northcentralus", "norway", + "polandcentral", "southcentralus", + "spaincentral", "swedencentral", "switzerland", + "uaenorth", "uk", + "westeurope", "westus", "westus3" ] @@ -50294,16 +50492,20 @@ "eastus2", "eastus", "france", + "germanywestcentral", "india", "japaneast", "japanwest", - "uaenorth", "northcentralus", "norway", + "polandcentral", "southcentralus", + "spaincentral", "swedencentral", "switzerland", + "uaenorth", "uk", + "westeurope", "westus", "westus3" ] @@ -50311,6 +50513,7 @@ "models": { "type": "array", "enum": [ + "gpt-5.2", "gpt-5.1", "gpt-5.1-chat", "gpt-5", @@ -50337,6 +50540,7 @@ "items": { "type": "string", "enum": [ + "gpt-5.2", "gpt-5.1", "gpt-5.1-chat", "gpt-5", @@ -51077,6 +51281,25 @@ } } }, + "encryptionPlan": { + "description": "This is the encryption plan for encrypting sensitive data. Currently supports public-key encryption.", + "oneOf": [ + { + "$ref": "#/components/schemas/PublicKeyEncryptionPlan" + } + ], + "discriminator": { + "propertyName": "type", + "mapping": { + "public-key": "#/components/schemas/PublicKeyEncryptionPlan" + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/PublicKeyEncryptionPlan" + } + ] + }, "name": { "type": "string", "description": "This is the name of credential. This is just for your reference.", @@ -51206,6 +51429,10 @@ "CredentialEndUser": { "type": "object", "properties": { + "endUserEmail": { + "type": "string", + "nullable": true + }, "endUserId": { "type": "string" },