Skip to content

Commit 86d8a9a

Browse files
🌿 ✨ [Scheduled] Update API Spec (#248)
* fix(openapi): add keypad input plan and remove TrieveKnowledgeBaseCreate references * feat(openapi): add support for Supabase storage and Anthropic thinking config This commit adds support for Supabase storage and Anthropic thinking configuration in the OpenAPI specification. It introduces new fields for Supabase credentials, bucket plans, and Anthropic thinking budget tokens. It also updates the description for the "model" field to include the new "claude-3-7-sonnet-20250219" model. * feat(openapi): add support for Hume AI voices and GPT-4.5-preview model * feat(openapi.json): added Vapi as a voice provider and fallback voice * feat(openapi): add QueryTool to OpenAPI spec * fix(fern/apis/api/openapi.json): Update model and provider field types and values This commit makes changes to the `openapi.json` file in the `fern/apis/api` directory. Specifically, it updates the schema of the `model` and `provider` fields. The `model` field type is changed from `string` to `object`, and an enum of possible model values is added, including various versions of "Gemini" and "Google". The `provider` field now has an enum specifying "google" as the only possible value. * feat(openapi): add and update voicemail detection and invoice plan --------- Co-authored-by: fern-api[bot] <115122769+fern-api[bot]@users.noreply.github.com>
1 parent 6921631 commit 86d8a9a

File tree

1 file changed

+148
-45
lines changed

1 file changed

+148
-45
lines changed

fern/apis/api/openapi.json

Lines changed: 148 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -10827,7 +10827,12 @@
1082710827
"type": "string",
1082810828
"description": "The voices provided by Vapi",
1082910829
"enum": [
10830-
"Jordan"
10830+
"Jordan",
10831+
"Adi",
10832+
"Julia",
10833+
"Maibri (Web)",
10834+
"Maibri (Phone)",
10835+
"Ashley"
1083110836
]
1083210837
},
1083310838
"chunkPlan": {
@@ -12337,7 +12342,7 @@
1233712342
"type"
1233812343
]
1233912344
},
12340-
"TwilioVoicemailDetection": {
12345+
"TwilioVoicemailDetectionPlan": {
1234112346
"type": "object",
1234212347
"properties": {
1234312348
"provider": {
@@ -12409,6 +12414,29 @@
1240912414
"provider"
1241012415
]
1241112416
},
12417+
"GoogleVoicemailDetectionPlan": {
12418+
"type": "object",
12419+
"properties": {
12420+
"provider": {
12421+
"type": "string",
12422+
"description": "This is the provider to use for voicemail detection.",
12423+
"enum": [
12424+
"google"
12425+
]
12426+
},
12427+
"voicemailExpectedDurationSeconds": {
12428+
"type": "number",
12429+
"description": "This is how long should we listen in order to determine if we were sent to voicemail or not?\n\n@default 15",
12430+
"minimum": 5,
12431+
"maximum": 60,
12432+
"default": 15
12433+
}
12434+
},
12435+
"required": [
12436+
"provider",
12437+
"voicemailExpectedDurationSeconds"
12438+
]
12439+
},
1241212440
"CompliancePlan": {
1241312441
"type": "object",
1241412442
"properties": {
@@ -13027,15 +13055,7 @@
1302713055
"#",
1302813056
"*",
1302913057
""
13030-
],
13031-
"x-fern-enum": {
13032-
"#": {
13033-
"name": "Hash"
13034-
},
13035-
"*": {
13036-
"name": "Asterisk"
13037-
}
13038-
}
13058+
]
1303913059
}
1304013060
}
1304113061
},
@@ -13204,6 +13224,10 @@
1320413224
],
1320513225
"example": "assistant-speaks-first"
1320613226
},
13227+
"voicemailDetection": {
13228+
"type": "object",
13229+
"description": "These are the settings to configure or disable voicemail detection. Alternatively, voicemail detection can be configured using the model.tools=[VoicemailTool].\nThis uses Twilio's built-in detection while the VoicemailTool relies on the model to detect if a voicemail was reached.\nYou can use neither of them, one of them, or both of them. By default, Twilio built-in detection is enabled while VoicemailTool is not."
13230+
},
1320713231
"clientMessages": {
1320813232
"type": "array",
1320913233
"enum": [
@@ -13512,14 +13536,6 @@
1351213536
"description": "This is the name of the assistant.\n\nThis is required when you want to transfer between assistants in a call.",
1351313537
"maxLength": 40
1351413538
},
13515-
"voicemailDetection": {
13516-
"description": "These are the settings to configure or disable voicemail detection. Alternatively, voicemail detection can be configured using the model.tools=[VoicemailTool].\nThis uses Twilio's built-in detection while the VoicemailTool relies on the model to detect if a voicemail was reached.\nYou can use neither of them, one of them, or both of them. By default, Twilio built-in detection is enabled while VoicemailTool is not.",
13517-
"allOf": [
13518-
{
13519-
"$ref": "#/components/schemas/TwilioVoicemailDetection"
13520-
}
13521-
]
13522-
},
1352313539
"voicemailMessage": {
1352413540
"type": "string",
1352513541
"description": "This is the message that the assistant will say if the call is forwarded to voicemail.\n\nIf unspecified, it will hang up.",
@@ -13786,6 +13802,10 @@
1378613802
],
1378713803
"example": "assistant-speaks-first"
1378813804
},
13805+
"voicemailDetection": {
13806+
"type": "object",
13807+
"description": "These are the settings to configure or disable voicemail detection. Alternatively, voicemail detection can be configured using the model.tools=[VoicemailTool].\nThis uses Twilio's built-in detection while the VoicemailTool relies on the model to detect if a voicemail was reached.\nYou can use neither of them, one of them, or both of them. By default, Twilio built-in detection is enabled while VoicemailTool is not."
13808+
},
1378913809
"clientMessages": {
1379013810
"type": "array",
1379113811
"enum": [
@@ -14098,14 +14118,6 @@
1409814118
"description": "This is the name of the assistant.\n\nThis is required when you want to transfer between assistants in a call.",
1409914119
"maxLength": 40
1410014120
},
14101-
"voicemailDetection": {
14102-
"description": "These are the settings to configure or disable voicemail detection. Alternatively, voicemail detection can be configured using the model.tools=[VoicemailTool].\nThis uses Twilio's built-in detection while the VoicemailTool relies on the model to detect if a voicemail was reached.\nYou can use neither of them, one of them, or both of them. By default, Twilio built-in detection is enabled while VoicemailTool is not.",
14103-
"allOf": [
14104-
{
14105-
"$ref": "#/components/schemas/TwilioVoicemailDetection"
14106-
}
14107-
]
14108-
},
1410914121
"voicemailMessage": {
1411014122
"type": "string",
1411114123
"description": "This is the message that the assistant will say if the call is forwarded to voicemail.\n\nIf unspecified, it will hang up.",
@@ -14661,6 +14673,10 @@
1466114673
"$ref": "#/components/schemas/VapiCost",
1466214674
"title": "VapiCost"
1466314675
},
14676+
{
14677+
"$ref": "#/components/schemas/VoicemailDetectionCost",
14678+
"title": "VoicemailDetectionCost"
14679+
},
1466414680
{
1466514681
"$ref": "#/components/schemas/AnalysisCost",
1466614682
"title": "AnalysisCost"
@@ -15429,6 +15445,10 @@
1542915445
],
1543015446
"example": "assistant-speaks-first"
1543115447
},
15448+
"voicemailDetection": {
15449+
"type": "object",
15450+
"description": "These are the settings to configure or disable voicemail detection. Alternatively, voicemail detection can be configured using the model.tools=[VoicemailTool].\nThis uses Twilio's built-in detection while the VoicemailTool relies on the model to detect if a voicemail was reached.\nYou can use neither of them, one of them, or both of them. By default, Twilio built-in detection is enabled while VoicemailTool is not."
15451+
},
1543215452
"clientMessages": {
1543315453
"type": "array",
1543415454
"enum": [
@@ -15737,14 +15757,6 @@
1573715757
"description": "This is the name of the assistant.\n\nThis is required when you want to transfer between assistants in a call.",
1573815758
"maxLength": 40
1573915759
},
15740-
"voicemailDetection": {
15741-
"description": "These are the settings to configure or disable voicemail detection. Alternatively, voicemail detection can be configured using the model.tools=[VoicemailTool].\nThis uses Twilio's built-in detection while the VoicemailTool relies on the model to detect if a voicemail was reached.\nYou can use neither of them, one of them, or both of them. By default, Twilio built-in detection is enabled while VoicemailTool is not.",
15742-
"allOf": [
15743-
{
15744-
"$ref": "#/components/schemas/TwilioVoicemailDetection"
15745-
}
15746-
]
15747-
},
1574815760
"voicemailMessage": {
1574915761
"type": "string",
1575015762
"description": "This is the message that the assistant will say if the call is forwarded to voicemail.\n\nIf unspecified, it will hang up.",
@@ -16035,6 +16047,10 @@
1603516047
],
1603616048
"example": "assistant-speaks-first"
1603716049
},
16050+
"voicemailDetection": {
16051+
"type": "object",
16052+
"description": "These are the settings to configure or disable voicemail detection. Alternatively, voicemail detection can be configured using the model.tools=[VoicemailTool].\nThis uses Twilio's built-in detection while the VoicemailTool relies on the model to detect if a voicemail was reached.\nYou can use neither of them, one of them, or both of them. By default, Twilio built-in detection is enabled while VoicemailTool is not."
16053+
},
1603816054
"clientMessages": {
1603916055
"type": "array",
1604016056
"enum": [
@@ -16343,14 +16359,6 @@
1634316359
"description": "This is the name of the assistant.\n\nThis is required when you want to transfer between assistants in a call.",
1634416360
"maxLength": 40
1634516361
},
16346-
"voicemailDetection": {
16347-
"description": "These are the settings to configure or disable voicemail detection. Alternatively, voicemail detection can be configured using the model.tools=[VoicemailTool].\nThis uses Twilio's built-in detection while the VoicemailTool relies on the model to detect if a voicemail was reached.\nYou can use neither of them, one of them, or both of them. By default, Twilio built-in detection is enabled while VoicemailTool is not.",
16348-
"allOf": [
16349-
{
16350-
"$ref": "#/components/schemas/TwilioVoicemailDetection"
16351-
}
16352-
]
16353-
},
1635416362
"voicemailMessage": {
1635516363
"type": "string",
1635616364
"description": "This is the message that the assistant will say if the call is forwarded to voicemail.\n\nIf unspecified, it will hang up.",
@@ -20672,8 +20680,9 @@
2067220680
},
2067320681
"status": {
2067420682
"enum": [
20675-
"indexed",
20676-
"not_indexed"
20683+
"processing",
20684+
"done",
20685+
"failed"
2067720686
],
2067820687
"type": "string"
2067920688
},
@@ -20706,6 +20715,12 @@
2070620715
"url": {
2070720716
"type": "string"
2070820717
},
20718+
"parsedTextUrl": {
20719+
"type": "string"
20720+
},
20721+
"parsedTextBytes": {
20722+
"type": "number"
20723+
},
2070920724
"metadata": {
2071020725
"type": "object"
2071120726
},
@@ -24619,6 +24634,27 @@
2461924634
"threshold"
2462024635
]
2462124636
},
24637+
"InvoicePlan": {
24638+
"type": "object",
24639+
"properties": {
24640+
"companyName": {
24641+
"type": "string",
24642+
"description": "This is the name of the company."
24643+
},
24644+
"companyAddress": {
24645+
"type": "string",
24646+
"description": "This is the address of the company."
24647+
},
24648+
"companyTaxId": {
24649+
"type": "string",
24650+
"description": "This is the tax ID of the company."
24651+
},
24652+
"companyEmail": {
24653+
"type": "string",
24654+
"description": "This is the preferred invoicing email of the company. If not specified, defaults to the subscription's email."
24655+
}
24656+
}
24657+
},
2462224658
"Subscription": {
2462324659
"type": "object",
2462424660
"properties": {
@@ -24785,6 +24821,14 @@
2478524821
"couponUsageLeft": {
2478624822
"type": "string",
2478724823
"description": "This is the number of credits left obtained from a coupon."
24824+
},
24825+
"invoicePlan": {
24826+
"description": "This is the invoice plan for the subscription.",
24827+
"allOf": [
24828+
{
24829+
"$ref": "#/components/schemas/InvoicePlan"
24830+
}
24831+
]
2478824832
}
2478924833
},
2479024834
"required": [
@@ -27292,6 +27336,10 @@
2729227336
"$ref": "#/components/schemas/VapiCost",
2729327337
"title": "VapiCost"
2729427338
},
27339+
{
27340+
"$ref": "#/components/schemas/VoicemailDetectionCost",
27341+
"title": "VoicemailDetectionCost"
27342+
},
2729527343
{
2729627344
"$ref": "#/components/schemas/AnalysisCost",
2729727345
"title": "AnalysisCost"
@@ -29721,6 +29769,61 @@
2972129769
"cost"
2972229770
]
2972329771
},
29772+
"VoicemailDetectionCost": {
29773+
"type": "object",
29774+
"properties": {
29775+
"type": {
29776+
"type": "string",
29777+
"description": "This is the type of cost, always 'voicemail-detection' for this class.",
29778+
"enum": [
29779+
"voicemail-detection"
29780+
]
29781+
},
29782+
"model": {
29783+
"type": "object",
29784+
"description": "This is the model that was used to perform the analysis."
29785+
},
29786+
"provider": {
29787+
"type": "string",
29788+
"description": "This is the provider that was used to detect the voicemail.",
29789+
"enum": [
29790+
"twilio",
29791+
"google",
29792+
"openai"
29793+
]
29794+
},
29795+
"promptTextTokens": {
29796+
"type": "number",
29797+
"description": "This is the number of prompt text tokens used in the voicemail detection."
29798+
},
29799+
"promptAudioTokens": {
29800+
"type": "number",
29801+
"description": "This is the number of prompt audio tokens used in the voicemail detection."
29802+
},
29803+
"completionTextTokens": {
29804+
"type": "number",
29805+
"description": "This is the number of completion text tokens used in the voicemail detection."
29806+
},
29807+
"completionAudioTokens": {
29808+
"type": "number",
29809+
"description": "This is the number of completion audio tokens used in the voicemail detection."
29810+
},
29811+
"cost": {
29812+
"type": "number",
29813+
"description": "This is the cost of the component in USD."
29814+
}
29815+
},
29816+
"required": [
29817+
"type",
29818+
"model",
29819+
"provider",
29820+
"promptTextTokens",
29821+
"promptAudioTokens",
29822+
"completionTextTokens",
29823+
"completionAudioTokens",
29824+
"cost"
29825+
]
29826+
},
2972429827
"FunctionToolWithToolCall": {
2972529828
"type": "object",
2972629829
"properties": {

0 commit comments

Comments
 (0)