diff --git a/.release-please-manifest.json b/.release-please-manifest.json
index 90d43a69c..a19d358bd 100644
--- a/.release-please-manifest.json
+++ b/.release-please-manifest.json
@@ -1,3 +1,3 @@
{
- ".": "6.85.0"
+ ".": "6.86.0"
}
diff --git a/.stats.yml b/.stats.yml
index 707fc41ea..84e5d6572 100644
--- a/.stats.yml
+++ b/.stats.yml
@@ -1 +1 @@
-configured_endpoints: 1222
+configured_endpoints: 1233
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 3c367df81..69c4dec6b 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,12 @@
# Changelog
+## [6.86.0](https://github.com/team-telnyx/telnyx-java/compare/v6.85.0...v6.86.0) (2026-08-14)
+
+
+### Features
+
+* promote from staging 4b164ce ([63147f6](https://github.com/team-telnyx/telnyx-java/commit/63147f69840b04f8e5d5901efce4f3f460275142))
+
## [6.85.0](https://github.com/team-telnyx/telnyx-java/compare/v6.84.0...v6.85.0) (2026-08-11)
diff --git a/README.md b/README.md
index 0b9afbf00..38511b5fb 100644
--- a/README.md
+++ b/README.md
@@ -2,7 +2,7 @@
-[](https://central.sonatype.com/artifact/com.telnyx.sdk/telnyx/6.85.0)
+[](https://central.sonatype.com/artifact/com.telnyx.sdk/telnyx/6.86.0)
@@ -17,7 +17,7 @@ It is generated with [Stainless](https://www.stainless.com/).
### Gradle
```kotlin
-implementation("com.telnyx.sdk:telnyx:6.85.0")
+implementation("com.telnyx.sdk:telnyx:6.86.0")
```
### Maven
@@ -26,7 +26,7 @@ implementation("com.telnyx.sdk:telnyx:6.85.0")
com.telnyx.sdk
telnyx
- 6.85.0
+ 6.86.0
```
diff --git a/api.md b/api.md
new file mode 100644
index 000000000..00fb506ef
--- /dev/null
+++ b/api.md
@@ -0,0 +1,3074 @@
+# Legacy
+
+## Reporting
+
+### BatchDetailRecords
+
+#### Messaging
+
+Methods:
+
+- client.legacy().reporting().batchDetailRecords().messaging().create(params)
+- client.legacy().reporting().batchDetailRecords().messaging().retrieve(params)
+- client.legacy().reporting().batchDetailRecords().messaging().list()
+- client.legacy().reporting().batchDetailRecords().messaging().delete(params)
+
+#### SpeechToText
+
+Methods:
+
+- client.legacy().reporting().batchDetailRecords().speechToText().create(params)
+- client.legacy().reporting().batchDetailRecords().speechToText().retrieve(params)
+- client.legacy().reporting().batchDetailRecords().speechToText().list()
+- client.legacy().reporting().batchDetailRecords().speechToText().delete(params)
+
+#### Voice
+
+Methods:
+
+- client.legacy().reporting().batchDetailRecords().voice().create(params)
+- client.legacy().reporting().batchDetailRecords().voice().retrieve(params)
+- client.legacy().reporting().batchDetailRecords().voice().list()
+- client.legacy().reporting().batchDetailRecords().voice().delete(params)
+- client.legacy().reporting().batchDetailRecords().voice().retrieveFields()
+
+### UsageReports
+
+Methods:
+
+- client.legacy().reporting().usageReports().retrieveSpeechToText(params)
+
+#### Messaging
+
+Methods:
+
+- client.legacy().reporting().usageReports().messaging().create(params)
+- client.legacy().reporting().usageReports().messaging().retrieve(params)
+- client.legacy().reporting().usageReports().messaging().list(params)
+- client.legacy().reporting().usageReports().messaging().delete(params)
+
+#### NumberLookup
+
+Methods:
+
+- client.legacy().reporting().usageReports().numberLookup().create(params)
+- client.legacy().reporting().usageReports().numberLookup().retrieve(params)
+- client.legacy().reporting().usageReports().numberLookup().list(params)
+- client.legacy().reporting().usageReports().numberLookup().delete(params)
+
+#### Voice
+
+Methods:
+
+- client.legacy().reporting().usageReports().voice().create(params)
+- client.legacy().reporting().usageReports().voice().retrieve(params)
+- client.legacy().reporting().usageReports().voice().list(params)
+- client.legacy().reporting().usageReports().voice().delete(params)
+
+# OAuth
+
+Methods:
+
+- client.oauth().retrieve(params)
+- client.oauth().grants(params)
+- client.oauth().introspect(params)
+- client.oauth().register(params)
+- client.oauth().retrieveAuthorize(params)
+- client.oauth().retrieveJwks()
+- client.oauth().token(params)
+
+# OAuthClients
+
+Methods:
+
+- client.oauthClients().create(params)
+- client.oauthClients().retrieve(params)
+- client.oauthClients().update(params)
+- client.oauthClients().list(params)
+- client.oauthClients().delete(params)
+
+# OAuthGrants
+
+Methods:
+
+- client.oauthGrants().retrieve(params)
+- client.oauthGrants().list(params)
+- client.oauthGrants().delete(params)
+
+# AccessIpAddress
+
+Methods:
+
+- client.accessIpAddress().create(params)
+- client.accessIpAddress().retrieve(params)
+- client.accessIpAddress().list(params)
+- client.accessIpAddress().delete(params)
+
+# AccessIpRanges
+
+Methods:
+
+- client.accessIpRanges().create(params)
+- client.accessIpRanges().list(params)
+- client.accessIpRanges().delete(params)
+
+# Actions
+
+## Purchase
+
+Methods:
+
+- client.actions().purchase().create(params)
+
+## Register
+
+Methods:
+
+- client.actions().register().create(params)
+
+# Addresses
+
+Methods:
+
+- client.addresses().create(params)
+- client.addresses().retrieve(params)
+- client.addresses().list(params)
+- client.addresses().delete(params)
+
+## Actions
+
+Methods:
+
+- client.addresses().actions().acceptSuggestions(params)
+- client.addresses().actions().validate(params)
+
+# AdvancedOrders
+
+Methods:
+
+- client.advancedOrders().create(params)
+- client.advancedOrders().retrieve(params)
+- client.advancedOrders().list()
+- client.advancedOrders().updateRequirementGroup(params)
+
+# Ai
+
+Methods:
+
+- client.ai().retrieveConversationHistories(params)
+- client.ai().summarize(params)
+
+## Assistants
+
+Methods:
+
+- client.ai().assistants().create(params)
+- client.ai().assistants().retrieve(params)
+- client.ai().assistants().update(params)
+- client.ai().assistants().list()
+- client.ai().assistants().delete(params)
+- client.ai().assistants().chat(params)
+- client.ai().assistants().clone(params)
+- client.ai().assistants().getTexml(params)
+- client.ai().assistants().imports(params)
+- client.ai().assistants().sendSms(params)
+
+### Tests
+
+Methods:
+
+- client.ai().assistants().tests().create(params)
+- client.ai().assistants().tests().retrieve(params)
+- client.ai().assistants().tests().update(params)
+- client.ai().assistants().tests().list(params)
+- client.ai().assistants().tests().delete(params)
+
+#### TestSuites
+
+Methods:
+
+- client.ai().assistants().tests().testSuites().list()
+
+##### Runs
+
+Methods:
+
+- client.ai().assistants().tests().testSuites().runs().list(params)
+- client.ai().assistants().tests().testSuites().runs().trigger(params)
+
+#### Runs
+
+Methods:
+
+- client.ai().assistants().tests().runs().retrieve(params)
+- client.ai().assistants().tests().runs().list(params)
+- client.ai().assistants().tests().runs().trigger(params)
+
+### CanaryDeploys
+
+Methods:
+
+- client.ai().assistants().canaryDeploys().create(params)
+- client.ai().assistants().canaryDeploys().retrieve(params)
+- client.ai().assistants().canaryDeploys().update(params)
+- client.ai().assistants().canaryDeploys().delete(params)
+
+### ScheduledEvents
+
+Methods:
+
+- client.ai().assistants().scheduledEvents().create(params)
+- client.ai().assistants().scheduledEvents().retrieve(params)
+- client.ai().assistants().scheduledEvents().list(params)
+- client.ai().assistants().scheduledEvents().delete(params)
+
+### Tools
+
+Methods:
+
+- client.ai().assistants().tools().add(params)
+- client.ai().assistants().tools().remove(params)
+- client.ai().assistants().tools().test(params)
+
+### Versions
+
+Methods:
+
+- client.ai().assistants().versions().retrieve(params)
+- client.ai().assistants().versions().update(params)
+- client.ai().assistants().versions().list(params)
+- client.ai().assistants().versions().delete(params)
+- client.ai().assistants().versions().promote(params)
+
+### Tags
+
+Methods:
+
+- client.ai().assistants().tags().list()
+- client.ai().assistants().tags().add(params)
+- client.ai().assistants().tags().remove(params)
+
+### Instructions
+
+Methods:
+
+- client.ai().assistants().instructions().enhance(params)
+
+## Audio
+
+Methods:
+
+- client.ai().audio().transcribe(params)
+
+## Clusters
+
+Methods:
+
+- client.ai().clusters().retrieve(params)
+- client.ai().clusters().list(params)
+- client.ai().clusters().delete(params)
+- client.ai().clusters().compute(params)
+- client.ai().clusters().fetchGraph(params)
+
+## Collections
+
+Methods:
+
+- client.ai().collections().create(params)
+- client.ai().collections().retrieve(params)
+- client.ai().collections().update(params)
+- client.ai().collections().list(params)
+- client.ai().collections().delete(params)
+- client.ai().collections().retrieveById(params)
+- client.ai().collections().retrieveDocuments(params)
+
+### Settings
+
+Methods:
+
+- client.ai().collections().settings().create(params)
+- client.ai().collections().settings().list(params)
+- client.ai().collections().settings().patchAll(params)
+
+### Sources
+
+Methods:
+
+- client.ai().collections().sources().create(params)
+- client.ai().collections().sources().list(params)
+- client.ai().collections().sources().delete(params)
+- client.ai().collections().sources().replace(params)
+
+## Conversations
+
+Methods:
+
+- client.ai().conversations().create(params)
+- client.ai().conversations().retrieve(params)
+- client.ai().conversations().update(params)
+- client.ai().conversations().list(params)
+- client.ai().conversations().delete(params)
+- client.ai().conversations().addMessage(params)
+- client.ai().conversations().retrieveConversationsInsights(params)
+
+### InsightGroups
+
+Methods:
+
+- client.ai().conversations().insightGroups().retrieve(params)
+- client.ai().conversations().insightGroups().update(params)
+- client.ai().conversations().insightGroups().delete(params)
+- client.ai().conversations().insightGroups().insightGroups(params)
+- client.ai().conversations().insightGroups().retrieveInsightGroups(params)
+
+#### Insights
+
+Methods:
+
+- client.ai().conversations().insightGroups().insights().assign(params)
+- client.ai().conversations().insightGroups().insights().deleteUnassign(params)
+
+### Insights
+
+Methods:
+
+- client.ai().conversations().insights().create(params)
+- client.ai().conversations().insights().retrieve(params)
+- client.ai().conversations().insights().update(params)
+- client.ai().conversations().insights().list(params)
+- client.ai().conversations().insights().delete(params)
+
+### Messages
+
+Methods:
+
+- client.ai().conversations().messages().list(params)
+
+### ConversationInsights
+
+Methods:
+
+- client.ai().conversations().conversationInsights().retrieveAggregates(params)
+
+## Embeddings
+
+Methods:
+
+- client.ai().embeddings().create(params)
+- client.ai().embeddings().retrieve(params)
+- client.ai().embeddings().list(params)
+- client.ai().embeddings().similaritySearch(params)
+- client.ai().embeddings().url(params)
+
+### Buckets
+
+Methods:
+
+- client.ai().embeddings().buckets().retrieve(params)
+- client.ai().embeddings().buckets().list()
+- client.ai().embeddings().buckets().delete(params)
+
+## FineTuning
+
+### Jobs
+
+Methods:
+
+- client.ai().fineTuning().jobs().create(params)
+- client.ai().fineTuning().jobs().retrieve(params)
+- client.ai().fineTuning().jobs().list()
+- client.ai().fineTuning().jobs().cancel(params)
+
+## Integrations
+
+Methods:
+
+- client.ai().integrations().retrieve(params)
+- client.ai().integrations().list()
+
+### Connections
+
+Methods:
+
+- client.ai().integrations().connections().retrieve(params)
+- client.ai().integrations().connections().list()
+- client.ai().integrations().connections().delete(params)
+
+## McpServers
+
+Methods:
+
+- client.ai().mcpServers().create(params)
+- client.ai().mcpServers().retrieve(params)
+- client.ai().mcpServers().update(params)
+- client.ai().mcpServers().list(params)
+- client.ai().mcpServers().delete(params)
+
+## Missions
+
+Methods:
+
+- client.ai().missions().create(params)
+- client.ai().missions().retrieve(params)
+- client.ai().missions().list(params)
+- client.ai().missions().cloneMission(params)
+- client.ai().missions().deleteMission(params)
+- client.ai().missions().listEvents(params)
+- client.ai().missions().updateMission(params)
+
+### Runs
+
+Methods:
+
+- client.ai().missions().runs().create(params)
+- client.ai().missions().runs().retrieve(params)
+- client.ai().missions().runs().update(params)
+- client.ai().missions().runs().list(params)
+- client.ai().missions().runs().cancelRun(params)
+- client.ai().missions().runs().listRuns(params)
+- client.ai().missions().runs().pauseRun(params)
+- client.ai().missions().runs().resumeRun(params)
+
+#### Events
+
+Methods:
+
+- client.ai().missions().runs().events().list(params)
+- client.ai().missions().runs().events().getEventDetails(params)
+- client.ai().missions().runs().events().log(params)
+
+#### Plan
+
+Methods:
+
+- client.ai().missions().runs().plan().create(params)
+- client.ai().missions().runs().plan().retrieve(params)
+- client.ai().missions().runs().plan().addStepsToPlan(params)
+- client.ai().missions().runs().plan().getStepDetails(params)
+- client.ai().missions().runs().plan().updateStep(params)
+
+#### TelnyxAgents
+
+Methods:
+
+- client.ai().missions().runs().telnyxAgents().list(params)
+- client.ai().missions().runs().telnyxAgents().link(params)
+- client.ai().missions().runs().telnyxAgents().unlink(params)
+
+### KnowledgeBases
+
+Methods:
+
+- client.ai().missions().knowledgeBases().createKnowledgeBase(params)
+- client.ai().missions().knowledgeBases().deleteKnowledgeBase(params)
+- client.ai().missions().knowledgeBases().getKnowledgeBase(params)
+- client.ai().missions().knowledgeBases().listKnowledgeBases(params)
+- client.ai().missions().knowledgeBases().updateKnowledgeBase(params)
+
+### McpServers
+
+Methods:
+
+- client.ai().missions().mcpServers().createMcpServer(params)
+- client.ai().missions().mcpServers().deleteMcpServer(params)
+- client.ai().missions().mcpServers().getMcpServer(params)
+- client.ai().missions().mcpServers().listMcpServers(params)
+- client.ai().missions().mcpServers().updateMcpServer(params)
+
+### Tools
+
+Methods:
+
+- client.ai().missions().tools().createTool(params)
+- client.ai().missions().tools().deleteTool(params)
+- client.ai().missions().tools().getTool(params)
+- client.ai().missions().tools().listTools(params)
+- client.ai().missions().tools().updateTool(params)
+
+## OpenAI
+
+Methods:
+
+- client.ai().openai().createResponse(params)
+- client.ai().openai().listModels()
+
+### Embeddings
+
+Methods:
+
+- client.ai().openai().embeddings().createEmbeddings(params)
+- client.ai().openai().embeddings().listEmbeddingModels()
+
+### Chat
+
+Methods:
+
+- client.ai().openai().chat().createCompletion(params)
+
+## Tools
+
+Methods:
+
+- client.ai().tools().create(params)
+- client.ai().tools().retrieve(params)
+- client.ai().tools().update(params)
+- client.ai().tools().list(params)
+- client.ai().tools().delete(params)
+
+## Anthropic
+
+### V1
+
+Methods:
+
+- client.ai().anthropic().v1().messages(params)
+
+# AuditEvents
+
+Methods:
+
+- client.auditEvents().list(params)
+
+# AuthenticationProviders
+
+Methods:
+
+- client.authenticationProviders().create(params)
+- client.authenticationProviders().retrieve(params)
+- client.authenticationProviders().update(params)
+- client.authenticationProviders().list(params)
+- client.authenticationProviders().delete(params)
+
+# AvailablePhoneNumberBlocks
+
+Methods:
+
+- client.availablePhoneNumberBlocks().list(params)
+
+# AvailablePhoneNumbers
+
+Methods:
+
+- client.availablePhoneNumbers().list(params)
+
+# Balance
+
+Methods:
+
+- client.balance().retrieve()
+
+# BillingGroups
+
+Methods:
+
+- client.billingGroups().create(params)
+- client.billingGroups().retrieve(params)
+- client.billingGroups().update(params)
+- client.billingGroups().list(params)
+- client.billingGroups().delete(params)
+
+# BulkSimCardActions
+
+Methods:
+
+- client.bulkSimCardActions().retrieve(params)
+- client.bulkSimCardActions().list(params)
+
+# BundlePricing
+
+## BillingBundles
+
+Methods:
+
+- client.bundlePricing().billingBundles().retrieve(params)
+- client.bundlePricing().billingBundles().list(params)
+
+## UserBundles
+
+Methods:
+
+- client.bundlePricing().userBundles().create(params)
+- client.bundlePricing().userBundles().retrieve(params)
+- client.bundlePricing().userBundles().list(params)
+- client.bundlePricing().userBundles().deactivate(params)
+- client.bundlePricing().userBundles().listResources(params)
+- client.bundlePricing().userBundles().listUnused(params)
+
+# CallControlApplications
+
+Methods:
+
+- client.callControlApplications().create(params)
+- client.callControlApplications().retrieve(params)
+- client.callControlApplications().update(params)
+- client.callControlApplications().list(params)
+- client.callControlApplications().delete(params)
+
+# CallEvents
+
+Methods:
+
+- client.callEvents().list(params)
+
+# Calls
+
+Methods:
+
+- client.calls().dial(params)
+- client.calls().retrieveStatus(params)
+
+## Actions
+
+Methods:
+
+- client.calls().actions().addAiAssistantMessages(params)
+- client.calls().actions().answer(params)
+- client.calls().actions().bridge(params)
+- client.calls().actions().enqueue(params)
+- client.calls().actions().gather(params)
+- client.calls().actions().gatherUsingAi(params)
+- client.calls().actions().gatherUsingAudio(params)
+- client.calls().actions().gatherUsingSpeak(params)
+- client.calls().actions().hangup(params)
+- client.calls().actions().joinAiAssistant(params)
+- client.calls().actions().leaveQueue(params)
+- client.calls().actions().pauseRecording(params)
+- client.calls().actions().pay(params)
+- client.calls().actions().refer(params)
+- client.calls().actions().reject(params)
+- client.calls().actions().resumeRecording(params)
+- client.calls().actions().sendDtmf(params)
+- client.calls().actions().sendSipInfo(params)
+- client.calls().actions().speak(params)
+- client.calls().actions().startAiAssistant(params)
+- client.calls().actions().startConversationRelay(params)
+- client.calls().actions().startForking(params)
+- client.calls().actions().startNoiseSuppression(params)
+- client.calls().actions().startPlayback(params)
+- client.calls().actions().startRecording(params)
+- client.calls().actions().startSiprec(params)
+- client.calls().actions().startStreaming(params)
+- client.calls().actions().startTranscription(params)
+- client.calls().actions().stopAiAssistant(params)
+- client.calls().actions().stopConversationRelay(params)
+- client.calls().actions().stopForking(params)
+- client.calls().actions().stopGather(params)
+- client.calls().actions().stopNoiseSuppression(params)
+- client.calls().actions().stopPlayback(params)
+- client.calls().actions().stopRecording(params)
+- client.calls().actions().stopSiprec(params)
+- client.calls().actions().stopStreaming(params)
+- client.calls().actions().stopTranscription(params)
+- client.calls().actions().switchSupervisorRole(params)
+- client.calls().actions().transfer(params)
+- client.calls().actions().updateClientState(params)
+
+# ChannelZones
+
+Methods:
+
+- client.channelZones().update(params)
+- client.channelZones().list(params)
+
+# ChargesBreakdown
+
+Methods:
+
+- client.chargesBreakdown().retrieve(params)
+
+# ChargesSummary
+
+Methods:
+
+- client.chargesSummary().retrieve(params)
+
+# Comments
+
+Methods:
+
+- client.comments().create(params)
+- client.comments().retrieve(params)
+- client.comments().list(params)
+- client.comments().markAsRead(params)
+
+# Conferences
+
+Methods:
+
+- client.conferences().create(params)
+- client.conferences().retrieve(params)
+- client.conferences().list(params)
+- client.conferences().listParticipants(params)
+- client.conferences().retrieveParticipant(params)
+- client.conferences().updateParticipant(params)
+
+## Actions
+
+Methods:
+
+- client.conferences().actions().update(params)
+- client.conferences().actions().endConference(params)
+- client.conferences().actions().gatherDtmfAudio(params)
+- client.conferences().actions().hold(params)
+- client.conferences().actions().join(params)
+- client.conferences().actions().leave(params)
+- client.conferences().actions().mute(params)
+- client.conferences().actions().play(params)
+- client.conferences().actions().recordPause(params)
+- client.conferences().actions().recordResume(params)
+- client.conferences().actions().recordStart(params)
+- client.conferences().actions().recordStop(params)
+- client.conferences().actions().sendDtmf(params)
+- client.conferences().actions().speak(params)
+- client.conferences().actions().stop(params)
+- client.conferences().actions().unhold(params)
+- client.conferences().actions().unmute(params)
+
+# Connections
+
+Methods:
+
+- client.connections().retrieve(params)
+- client.connections().list(params)
+- client.connections().listActiveCalls(params)
+
+# CountryCoverage
+
+Methods:
+
+- client.countryCoverage().retrieve()
+- client.countryCoverage().retrieveCountry(params)
+
+# CredentialConnections
+
+Methods:
+
+- client.credentialConnections().create(params)
+- client.credentialConnections().retrieve(params)
+- client.credentialConnections().update(params)
+- client.credentialConnections().list(params)
+- client.credentialConnections().delete(params)
+
+## Actions
+
+Methods:
+
+- client.credentialConnections().actions().checkRegistrationStatus(params)
+
+# CustomStorageCredentials
+
+Methods:
+
+- client.customStorageCredentials().create(params)
+- client.customStorageCredentials().retrieve(params)
+- client.customStorageCredentials().update(params)
+- client.customStorageCredentials().delete(params)
+
+# CustomerServiceRecords
+
+Methods:
+
+- client.customerServiceRecords().create(params)
+- client.customerServiceRecords().retrieve(params)
+- client.customerServiceRecords().list(params)
+- client.customerServiceRecords().verifyPhoneNumberCoverage(params)
+
+# DetailRecords
+
+Methods:
+
+- client.detailRecords().list(params)
+
+# DialogflowConnections
+
+Methods:
+
+- client.dialogflowConnections().create(params)
+- client.dialogflowConnections().retrieve(params)
+- client.dialogflowConnections().update(params)
+- client.dialogflowConnections().delete(params)
+
+# DocumentLinks
+
+Methods:
+
+- client.documentLinks().list(params)
+
+# Documents
+
+Methods:
+
+- client.documents().retrieve(params)
+- client.documents().update(params)
+- client.documents().list(params)
+- client.documents().delete(params)
+- client.documents().download(params)
+- client.documents().generateDownloadLink(params)
+- client.documents().upload(params)
+- client.documents().uploadJson(params)
+
+# DynamicEmergencyAddresses
+
+Methods:
+
+- client.dynamicEmergencyAddresses().create(params)
+- client.dynamicEmergencyAddresses().retrieve(params)
+- client.dynamicEmergencyAddresses().list(params)
+- client.dynamicEmergencyAddresses().delete(params)
+
+# DynamicEmergencyEndpoints
+
+Methods:
+
+- client.dynamicEmergencyEndpoints().create(params)
+- client.dynamicEmergencyEndpoints().retrieve(params)
+- client.dynamicEmergencyEndpoints().list(params)
+- client.dynamicEmergencyEndpoints().delete(params)
+
+# ExternalConnections
+
+Methods:
+
+- client.externalConnections().create(params)
+- client.externalConnections().retrieve(params)
+- client.externalConnections().update(params)
+- client.externalConnections().list(params)
+- client.externalConnections().delete(params)
+- client.externalConnections().updateLocation(params)
+
+## LogMessages
+
+Methods:
+
+- client.externalConnections().logMessages().retrieve(params)
+- client.externalConnections().logMessages().list(params)
+- client.externalConnections().logMessages().dismiss(params)
+
+## CivicAddresses
+
+Methods:
+
+- client.externalConnections().civicAddresses().retrieve(params)
+- client.externalConnections().civicAddresses().list(params)
+
+## PhoneNumbers
+
+Methods:
+
+- client.externalConnections().phoneNumbers().retrieve(params)
+- client.externalConnections().phoneNumbers().update(params)
+- client.externalConnections().phoneNumbers().list(params)
+
+## Releases
+
+Methods:
+
+- client.externalConnections().releases().retrieve(params)
+- client.externalConnections().releases().list(params)
+
+## Uploads
+
+Methods:
+
+- client.externalConnections().uploads().create(params)
+- client.externalConnections().uploads().retrieve(params)
+- client.externalConnections().uploads().list(params)
+- client.externalConnections().uploads().pendingCount(params)
+- client.externalConnections().uploads().refreshStatus(params)
+- client.externalConnections().uploads().retry(params)
+
+# FaxApplications
+
+Methods:
+
+- client.faxApplications().create(params)
+- client.faxApplications().retrieve(params)
+- client.faxApplications().update(params)
+- client.faxApplications().list(params)
+- client.faxApplications().delete(params)
+
+# Faxes
+
+Methods:
+
+- client.faxes().create(params)
+- client.faxes().retrieve(params)
+- client.faxes().list(params)
+- client.faxes().delete(params)
+
+## Actions
+
+Methods:
+
+- client.faxes().actions().cancel(params)
+- client.faxes().actions().refresh(params)
+
+# FqdnConnections
+
+Methods:
+
+- client.fqdnConnections().create(params)
+- client.fqdnConnections().retrieve(params)
+- client.fqdnConnections().update(params)
+- client.fqdnConnections().list(params)
+- client.fqdnConnections().delete(params)
+
+## FqdnAuthentication
+
+Methods:
+
+- client.fqdnConnections().fqdnAuthentication().list(params)
+- client.fqdnConnections().fqdnAuthentication().patchAll(params)
+
+# Fqdns
+
+Methods:
+
+- client.fqdns().create(params)
+- client.fqdns().retrieve(params)
+- client.fqdns().update(params)
+- client.fqdns().list(params)
+- client.fqdns().delete(params)
+
+# GlobalIpAllowedPorts
+
+Methods:
+
+- client.globalIpAllowedPorts().list()
+
+# GlobalIpAssignmentHealth
+
+Methods:
+
+- client.globalIpAssignmentHealth().retrieve(params)
+
+# GlobalIpAssignments
+
+Methods:
+
+- client.globalIpAssignments().create(params)
+- client.globalIpAssignments().retrieve(params)
+- client.globalIpAssignments().update(params)
+- client.globalIpAssignments().list(params)
+- client.globalIpAssignments().delete(params)
+
+# GlobalIpAssignmentsUsage
+
+Methods:
+
+- client.globalIpAssignmentsUsage().retrieve(params)
+
+# GlobalIpHealthCheckTypes
+
+Methods:
+
+- client.globalIpHealthCheckTypes().list()
+
+# GlobalIpHealthChecks
+
+Methods:
+
+- client.globalIpHealthChecks().create(params)
+- client.globalIpHealthChecks().retrieve(params)
+- client.globalIpHealthChecks().list(params)
+- client.globalIpHealthChecks().delete(params)
+
+# GlobalIpLatency
+
+Methods:
+
+- client.globalIpLatency().retrieve(params)
+
+# GlobalIpProtocols
+
+Methods:
+
+- client.globalIpProtocols().list()
+
+# GlobalIpUsage
+
+Methods:
+
+- client.globalIpUsage().retrieve(params)
+
+# GlobalIps
+
+Methods:
+
+- client.globalIps().create(params)
+- client.globalIps().retrieve(params)
+- client.globalIps().list(params)
+- client.globalIps().delete(params)
+
+# InboundChannels
+
+Methods:
+
+- client.inboundChannels().update(params)
+- client.inboundChannels().list()
+
+# IntegrationSecrets
+
+Methods:
+
+- client.integrationSecrets().create(params)
+- client.integrationSecrets().list(params)
+- client.integrationSecrets().delete(params)
+
+# InventoryCoverage
+
+Methods:
+
+- client.inventoryCoverage().list(params)
+
+# Invoices
+
+Methods:
+
+- client.invoices().retrieve(params)
+- client.invoices().list(params)
+
+# IpConnections
+
+Methods:
+
+- client.ipConnections().create(params)
+- client.ipConnections().retrieve(params)
+- client.ipConnections().update(params)
+- client.ipConnections().list(params)
+- client.ipConnections().delete(params)
+
+# Ips
+
+Methods:
+
+- client.ips().create(params)
+- client.ips().retrieve(params)
+- client.ips().update(params)
+- client.ips().list(params)
+- client.ips().delete(params)
+
+# LedgerBillingGroupReports
+
+Methods:
+
+- client.ledgerBillingGroupReports().create(params)
+- client.ledgerBillingGroupReports().retrieve(params)
+
+# List
+
+Methods:
+
+- client.list().retrieveAll()
+- client.list().retrieveByZone(params)
+
+# ManagedAccounts
+
+Methods:
+
+- client.managedAccounts().create(params)
+- client.managedAccounts().retrieve(params)
+- client.managedAccounts().update(params)
+- client.managedAccounts().list(params)
+- client.managedAccounts().getAllocatableGlobalOutboundChannels()
+- client.managedAccounts().updateGlobalChannelLimit(params)
+
+## Actions
+
+Methods:
+
+- client.managedAccounts().actions().disable(params)
+- client.managedAccounts().actions().enable(params)
+
+# Media
+
+Methods:
+
+- client.media().retrieve(params)
+- client.media().update(params)
+- client.media().list(params)
+- client.media().delete(params)
+- client.media().download(params)
+- client.media().upload(params)
+
+# Messages
+
+Methods:
+
+- client.messages().retrieve(params)
+- client.messages().cancelScheduled(params)
+- client.messages().retrieveGroupMessages(params)
+- client.messages().schedule(params)
+- client.messages().send(params)
+- client.messages().sendGroupMms(params)
+- client.messages().sendLongCode(params)
+- client.messages().sendNumberPool(params)
+- client.messages().sendShortCode(params)
+- client.messages().sendWithAlphanumericSender(params)
+- client.messages().whatsapp(params)
+
+## Rcs
+
+Methods:
+
+- client.messages().rcs().generateDeeplink(params)
+- client.messages().rcs().send(params)
+
+# Messaging
+
+## Rcs
+
+Methods:
+
+- client.messaging().rcs().inviteTestNumber(params)
+- client.messaging().rcs().listBulkCapabilities(params)
+- client.messaging().rcs().retrieveCapabilities(params)
+
+### Agents
+
+Methods:
+
+- client.messaging().rcs().agents().retrieve(params)
+- client.messaging().rcs().agents().update(params)
+- client.messaging().rcs().agents().list(params)
+
+# MessagingHostedNumberOrders
+
+Methods:
+
+- client.messagingHostedNumberOrders().create(params)
+- client.messagingHostedNumberOrders().retrieve(params)
+- client.messagingHostedNumberOrders().list(params)
+- client.messagingHostedNumberOrders().delete(params)
+- client.messagingHostedNumberOrders().checkEligibility(params)
+- client.messagingHostedNumberOrders().createVerificationCodes(params)
+- client.messagingHostedNumberOrders().validateCodes(params)
+
+## Actions
+
+Methods:
+
+- client.messagingHostedNumberOrders().actions().uploadFile(params)
+
+# MessagingHostedNumbers
+
+Methods:
+
+- client.messagingHostedNumbers().retrieve(params)
+- client.messagingHostedNumbers().update(params)
+- client.messagingHostedNumbers().list(params)
+- client.messagingHostedNumbers().delete(params)
+
+# MessagingNumbersBulkUpdates
+
+Methods:
+
+- client.messagingNumbersBulkUpdates().create(params)
+- client.messagingNumbersBulkUpdates().retrieve(params)
+
+# MessagingOptouts
+
+Methods:
+
+- client.messagingOptouts().list(params)
+
+# MessagingProfiles
+
+Methods:
+
+- client.messagingProfiles().create(params)
+- client.messagingProfiles().retrieve(params)
+- client.messagingProfiles().update(params)
+- client.messagingProfiles().list(params)
+- client.messagingProfiles().delete(params)
+- client.messagingProfiles().listAlphanumericSenderIds(params)
+- client.messagingProfiles().listPhoneNumbers(params)
+- client.messagingProfiles().listShortCodes(params)
+- client.messagingProfiles().retrieveMetrics(params)
+
+## AutorespConfigs
+
+Methods:
+
+- client.messagingProfiles().autorespConfigs().create(params)
+- client.messagingProfiles().autorespConfigs().retrieve(params)
+- client.messagingProfiles().autorespConfigs().update(params)
+- client.messagingProfiles().autorespConfigs().list(params)
+- client.messagingProfiles().autorespConfigs().delete(params)
+
+## Actions
+
+Methods:
+
+- client.messagingProfiles().actions().regenerateSecret(params)
+
+# MessagingTollfree
+
+## Verification
+
+### Requests
+
+Methods:
+
+- client.messagingTollfree().verification().requests().create(params)
+- client.messagingTollfree().verification().requests().retrieve(params)
+- client.messagingTollfree().verification().requests().update(params)
+- client.messagingTollfree().verification().requests().list(params)
+- client.messagingTollfree().verification().requests().delete(params)
+- client.messagingTollfree().verification().requests().retrieveStatusHistory(params)
+
+# MessagingUrlDomains
+
+Methods:
+
+- client.messagingUrlDomains().list(params)
+
+# MobileNetworkOperators
+
+Methods:
+
+- client.mobileNetworkOperators().list(params)
+
+# MobilePushCredentials
+
+Methods:
+
+- client.mobilePushCredentials().create(params)
+- client.mobilePushCredentials().retrieve(params)
+- client.mobilePushCredentials().list(params)
+- client.mobilePushCredentials().delete(params)
+
+# NetworkCoverage
+
+Methods:
+
+- client.networkCoverage().list(params)
+
+# Networks
+
+Methods:
+
+- client.networks().create(params)
+- client.networks().retrieve(params)
+- client.networks().update(params)
+- client.networks().list(params)
+- client.networks().delete(params)
+- client.networks().listInterfaces(params)
+
+## DefaultGateway
+
+Methods:
+
+- client.networks().defaultGateway().create(params)
+- client.networks().defaultGateway().retrieve(params)
+- client.networks().defaultGateway().delete(params)
+
+# NotificationChannels
+
+Methods:
+
+- client.notificationChannels().create(params)
+- client.notificationChannels().retrieve(params)
+- client.notificationChannels().update(params)
+- client.notificationChannels().list(params)
+- client.notificationChannels().delete(params)
+
+# NotificationEventConditions
+
+Methods:
+
+- client.notificationEventConditions().list(params)
+
+# NotificationEvents
+
+Methods:
+
+- client.notificationEvents().list(params)
+
+# NotificationProfiles
+
+Methods:
+
+- client.notificationProfiles().create(params)
+- client.notificationProfiles().retrieve(params)
+- client.notificationProfiles().update(params)
+- client.notificationProfiles().list(params)
+- client.notificationProfiles().delete(params)
+
+# NotificationSettings
+
+Methods:
+
+- client.notificationSettings().create(params)
+- client.notificationSettings().retrieve(params)
+- client.notificationSettings().list(params)
+- client.notificationSettings().delete(params)
+
+# NumberBlockOrders
+
+Methods:
+
+- client.numberBlockOrders().create(params)
+- client.numberBlockOrders().retrieve(params)
+- client.numberBlockOrders().list(params)
+
+# NumberLookup
+
+Methods:
+
+- client.numberLookup().retrieve(params)
+
+# NumberOrderPhoneNumbers
+
+Methods:
+
+- client.numberOrderPhoneNumbers().retrieve(params)
+- client.numberOrderPhoneNumbers().list(params)
+- client.numberOrderPhoneNumbers().updateRequirementGroup(params)
+- client.numberOrderPhoneNumbers().updateRequirements(params)
+
+# NumberOrders
+
+Methods:
+
+- client.numberOrders().create(params)
+- client.numberOrders().retrieve(params)
+- client.numberOrders().update(params)
+- client.numberOrders().list(params)
+
+# NumberReservations
+
+Methods:
+
+- client.numberReservations().create(params)
+- client.numberReservations().retrieve(params)
+- client.numberReservations().list(params)
+
+## Actions
+
+Methods:
+
+- client.numberReservations().actions().extend(params)
+
+# NumbersFeatures
+
+Methods:
+
+- client.numbersFeatures().create(params)
+
+# OperatorConnect
+
+## Actions
+
+Methods:
+
+- client.operatorConnect().actions().refresh()
+
+# OtaUpdates
+
+Methods:
+
+- client.otaUpdates().retrieve(params)
+- client.otaUpdates().list(params)
+
+# OutboundVoiceProfiles
+
+Methods:
+
+- client.outboundVoiceProfiles().create(params)
+- client.outboundVoiceProfiles().retrieve(params)
+- client.outboundVoiceProfiles().update(params)
+- client.outboundVoiceProfiles().list(params)
+- client.outboundVoiceProfiles().delete(params)
+
+# Payment
+
+Methods:
+
+- client.payment().createStoredPaymentTransaction(params)
+
+## AutoRechargePrefs
+
+Methods:
+
+- client.payment().autoRechargePrefs().update(params)
+- client.payment().autoRechargePrefs().list()
+
+# PhoneNumberBlocks
+
+## Jobs
+
+Methods:
+
+- client.phoneNumberBlocks().jobs().retrieve(params)
+- client.phoneNumberBlocks().jobs().list(params)
+- client.phoneNumberBlocks().jobs().deletePhoneNumberBlock(params)
+
+# PhoneNumbers
+
+Methods:
+
+- client.phoneNumbers().retrieve(params)
+- client.phoneNumbers().update(params)
+- client.phoneNumbers().list(params)
+- client.phoneNumbers().delete(params)
+- client.phoneNumbers().slimList(params)
+
+## Actions
+
+Methods:
+
+- client.phoneNumbers().actions().changeBundleStatus(params)
+- client.phoneNumbers().actions().enableEmergency(params)
+- client.phoneNumbers().actions().verifyOwnership(params)
+
+## CsvDownloads
+
+Methods:
+
+- client.phoneNumbers().csvDownloads().create(params)
+- client.phoneNumbers().csvDownloads().retrieve(params)
+- client.phoneNumbers().csvDownloads().list(params)
+
+## Jobs
+
+Methods:
+
+- client.phoneNumbers().jobs().retrieve(params)
+- client.phoneNumbers().jobs().list(params)
+- client.phoneNumbers().jobs().deleteBatch(params)
+- client.phoneNumbers().jobs().updateBatch(params)
+- client.phoneNumbers().jobs().updateEmergencySettingsBatch(params)
+
+## Messaging
+
+Methods:
+
+- client.phoneNumbers().messaging().retrieve(params)
+- client.phoneNumbers().messaging().update(params)
+- client.phoneNumbers().messaging().list(params)
+
+## Voice
+
+Methods:
+
+- client.phoneNumbers().voice().retrieve(params)
+- client.phoneNumbers().voice().update(params)
+- client.phoneNumbers().voice().list(params)
+
+## Voicemail
+
+Methods:
+
+- client.phoneNumbers().voicemail().create(params)
+- client.phoneNumbers().voicemail().retrieve(params)
+- client.phoneNumbers().voicemail().update(params)
+
+# PhoneNumbersRegulatoryRequirements
+
+Methods:
+
+- client.phoneNumbersRegulatoryRequirements().retrieve(params)
+
+# PortabilityChecks
+
+Methods:
+
+- client.portabilityChecks().run(params)
+
+# Porting
+
+Methods:
+
+- client.porting().listUkCarriers()
+
+## Events
+
+Methods:
+
+- client.porting().events().retrieve(params)
+- client.porting().events().list(params)
+- client.porting().events().republish(params)
+
+## Reports
+
+Methods:
+
+- client.porting().reports().create(params)
+- client.porting().reports().retrieve(params)
+- client.porting().reports().list(params)
+
+## LoaConfigurations
+
+Methods:
+
+- client.porting().loaConfigurations().create(params)
+- client.porting().loaConfigurations().retrieve(params)
+- client.porting().loaConfigurations().update(params)
+- client.porting().loaConfigurations().list(params)
+- client.porting().loaConfigurations().delete(params)
+- client.porting().loaConfigurations().preview(params)
+- client.porting().loaConfigurations().preview0(params)
+- client.porting().loaConfigurations().preview1(params)
+
+# PortingOrders
+
+Methods:
+
+- client.portingOrders().create(params)
+- client.portingOrders().retrieve(params)
+- client.portingOrders().update(params)
+- client.portingOrders().list(params)
+- client.portingOrders().delete(params)
+- client.portingOrders().retrieveAllowedFocWindows(params)
+- client.portingOrders().retrieveExceptionTypes()
+- client.portingOrders().retrieveLoaTemplate(params)
+- client.portingOrders().retrieveRequirements(params)
+- client.portingOrders().retrieveSubRequest(params)
+
+## PhoneNumberConfigurations
+
+Methods:
+
+- client.portingOrders().phoneNumberConfigurations().create(params)
+- client.portingOrders().phoneNumberConfigurations().list(params)
+
+## Actions
+
+Methods:
+
+- client.portingOrders().actions().activate(params)
+- client.portingOrders().actions().cancel(params)
+- client.portingOrders().actions().confirm(params)
+- client.portingOrders().actions().share(params)
+
+## ActivationJobs
+
+Methods:
+
+- client.portingOrders().activationJobs().retrieve(params)
+- client.portingOrders().activationJobs().update(params)
+- client.portingOrders().activationJobs().list(params)
+
+## AdditionalDocuments
+
+Methods:
+
+- client.portingOrders().additionalDocuments().create(params)
+- client.portingOrders().additionalDocuments().list(params)
+- client.portingOrders().additionalDocuments().delete(params)
+
+## Comments
+
+Methods:
+
+- client.portingOrders().comments().create(params)
+- client.portingOrders().comments().list(params)
+
+## VerificationCodes
+
+Methods:
+
+- client.portingOrders().verificationCodes().list(params)
+- client.portingOrders().verificationCodes().send(params)
+- client.portingOrders().verificationCodes().verify(params)
+
+## ActionRequirements
+
+Methods:
+
+- client.portingOrders().actionRequirements().list(params)
+- client.portingOrders().actionRequirements().initiate(params)
+
+## AssociatedPhoneNumbers
+
+Methods:
+
+- client.portingOrders().associatedPhoneNumbers().create(params)
+- client.portingOrders().associatedPhoneNumbers().list(params)
+- client.portingOrders().associatedPhoneNumbers().delete(params)
+
+## PhoneNumberBlocks
+
+Methods:
+
+- client.portingOrders().phoneNumberBlocks().create(params)
+- client.portingOrders().phoneNumberBlocks().list(params)
+- client.portingOrders().phoneNumberBlocks().delete(params)
+
+## PhoneNumberExtensions
+
+Methods:
+
+- client.portingOrders().phoneNumberExtensions().create(params)
+- client.portingOrders().phoneNumberExtensions().list(params)
+- client.portingOrders().phoneNumberExtensions().delete(params)
+
+# PortingPhoneNumbers
+
+Methods:
+
+- client.portingPhoneNumbers().list(params)
+
+# Portouts
+
+Methods:
+
+- client.portouts().retrieve(params)
+- client.portouts().list(params)
+- client.portouts().listRejectionCodes(params)
+- client.portouts().updateStatus(params)
+
+## Events
+
+Methods:
+
+- client.portouts().events().retrieve(params)
+- client.portouts().events().list(params)
+- client.portouts().events().republish(params)
+
+## Reports
+
+Methods:
+
+- client.portouts().reports().create(params)
+- client.portouts().reports().retrieve(params)
+- client.portouts().reports().list(params)
+
+## Comments
+
+Methods:
+
+- client.portouts().comments().create(params)
+- client.portouts().comments().list(params)
+
+## SupportingDocuments
+
+Methods:
+
+- client.portouts().supportingDocuments().create(params)
+- client.portouts().supportingDocuments().list(params)
+
+# PrivateWirelessGateways
+
+Methods:
+
+- client.privateWirelessGateways().create(params)
+- client.privateWirelessGateways().retrieve(params)
+- client.privateWirelessGateways().list(params)
+- client.privateWirelessGateways().delete(params)
+
+# PublicInternetGateways
+
+Methods:
+
+- client.publicInternetGateways().create(params)
+- client.publicInternetGateways().retrieve(params)
+- client.publicInternetGateways().list(params)
+- client.publicInternetGateways().delete(params)
+
+# Queues
+
+Methods:
+
+- client.queues().create(params)
+- client.queues().retrieve(params)
+- client.queues().update(params)
+- client.queues().list(params)
+- client.queues().delete(params)
+
+## Calls
+
+Methods:
+
+- client.queues().calls().retrieve(params)
+- client.queues().calls().update(params)
+- client.queues().calls().list(params)
+- client.queues().calls().remove(params)
+
+# Rcs
+
+## Agents
+
+Methods:
+
+- client.rcs().agents().create(params)
+- client.rcs().agents().retrieve(params)
+- client.rcs().agents().update(params)
+- client.rcs().agents().list(params)
+- client.rcs().agents().launch(params)
+- client.rcs().agents().retrieveCarrierApprovals(params)
+- client.rcs().agents().submit(params)
+
+### TestDevices
+
+Methods:
+
+- client.rcs().agents().testDevices().create(params)
+- client.rcs().agents().testDevices().list(params)
+- client.rcs().agents().testDevices().delete(params)
+
+## Brands
+
+Methods:
+
+- client.rcs().brands().create(params)
+- client.rcs().brands().retrieve(params)
+- client.rcs().brands().update(params)
+- client.rcs().brands().list()
+- client.rcs().brands().submit(params)
+
+# RecordingTranscriptions
+
+Methods:
+
+- client.recordingTranscriptions().retrieve(params)
+- client.recordingTranscriptions().list(params)
+- client.recordingTranscriptions().delete(params)
+
+# Recordings
+
+Methods:
+
+- client.recordings().retrieve(params)
+- client.recordings().list(params)
+- client.recordings().delete(params)
+
+## Actions
+
+Methods:
+
+- client.recordings().actions().delete(params)
+
+# Regions
+
+Methods:
+
+- client.regions().list()
+
+# RegulatoryRequirements
+
+Methods:
+
+- client.regulatoryRequirements().retrieve(params)
+
+# Reports
+
+Methods:
+
+- client.reports().listMdrs(params)
+- client.reports().listWdrs(params)
+
+## CdrUsageReports
+
+Methods:
+
+- client.reports().cdrUsageReports().fetchSync(params)
+
+## MdrUsageReports
+
+Methods:
+
+- client.reports().mdrUsageReports().create(params)
+- client.reports().mdrUsageReports().retrieve(params)
+- client.reports().mdrUsageReports().list(params)
+- client.reports().mdrUsageReports().delete(params)
+- client.reports().mdrUsageReports().fetchSync(params)
+
+# SpeechToText
+
+Methods:
+
+- client.speechToText().listProviders(params)
+- client.speechToText().retrieveTranscription(params)
+
+# RequirementGroups
+
+Methods:
+
+- client.requirementGroups().create(params)
+- client.requirementGroups().retrieve(params)
+- client.requirementGroups().update(params)
+- client.requirementGroups().list(params)
+- client.requirementGroups().delete(params)
+- client.requirementGroups().submitForApproval(params)
+
+# RequirementTypes
+
+Methods:
+
+- client.requirementTypes().retrieve(params)
+- client.requirementTypes().list(params)
+
+# Requirements
+
+Methods:
+
+- client.requirements().retrieve(params)
+- client.requirements().list(params)
+
+# RoomCompositions
+
+Methods:
+
+- client.roomCompositions().create(params)
+- client.roomCompositions().retrieve(params)
+- client.roomCompositions().list(params)
+- client.roomCompositions().delete(params)
+
+# RoomParticipants
+
+Methods:
+
+- client.roomParticipants().retrieve(params)
+- client.roomParticipants().list(params)
+
+# RoomRecordings
+
+Methods:
+
+- client.roomRecordings().retrieve(params)
+- client.roomRecordings().list(params)
+- client.roomRecordings().delete(params)
+- client.roomRecordings().deleteBulk(params)
+
+# Rooms
+
+Methods:
+
+- client.rooms().create(params)
+- client.rooms().retrieve(params)
+- client.rooms().update(params)
+- client.rooms().list(params)
+- client.rooms().delete(params)
+
+## Actions
+
+Methods:
+
+- client.rooms().actions().generateJoinClientToken(params)
+- client.rooms().actions().refreshClientToken(params)
+
+## Sessions
+
+Methods:
+
+- client.rooms().sessions().retrieve(params)
+- client.rooms().sessions().list0(params)
+- client.rooms().sessions().list1(params)
+- client.rooms().sessions().retrieveParticipants(params)
+
+### Actions
+
+Methods:
+
+- client.rooms().sessions().actions().end(params)
+- client.rooms().sessions().actions().kick(params)
+- client.rooms().sessions().actions().mute(params)
+- client.rooms().sessions().actions().unmute(params)
+
+# Seti
+
+Methods:
+
+- client.seti().retrieveBlackBoxTestResults(params)
+
+# ShortCodes
+
+Methods:
+
+- client.shortCodes().retrieve(params)
+- client.shortCodes().update(params)
+- client.shortCodes().list(params)
+
+# SimCardDataUsageNotifications
+
+Methods:
+
+- client.simCardDataUsageNotifications().create(params)
+- client.simCardDataUsageNotifications().retrieve(params)
+- client.simCardDataUsageNotifications().update(params)
+- client.simCardDataUsageNotifications().list(params)
+- client.simCardDataUsageNotifications().delete(params)
+
+# SimCardGroups
+
+Methods:
+
+- client.simCardGroups().create(params)
+- client.simCardGroups().retrieve(params)
+- client.simCardGroups().update(params)
+- client.simCardGroups().list(params)
+- client.simCardGroups().delete(params)
+
+## Actions
+
+Methods:
+
+- client.simCardGroups().actions().retrieve(params)
+- client.simCardGroups().actions().list(params)
+- client.simCardGroups().actions().removePrivateWirelessGateway(params)
+- client.simCardGroups().actions().removeWirelessBlocklist(params)
+- client.simCardGroups().actions().setPrivateWirelessGateway(params)
+- client.simCardGroups().actions().setWirelessBlocklist(params)
+
+# SimCardOrderPreview
+
+Methods:
+
+- client.simCardOrderPreview().preview(params)
+
+# SimCardOrders
+
+Methods:
+
+- client.simCardOrders().create(params)
+- client.simCardOrders().retrieve(params)
+- client.simCardOrders().list(params)
+
+# SimCards
+
+Methods:
+
+- client.simCards().retrieve(params)
+- client.simCards().update(params)
+- client.simCards().list(params)
+- client.simCards().delete(params)
+- client.simCards().getActivationCode(params)
+- client.simCards().getDeviceDetails(params)
+- client.simCards().getPublicIp(params)
+- client.simCards().listWirelessConnectivityLogs(params)
+
+## Actions
+
+Methods:
+
+- client.simCards().actions().retrieve(params)
+- client.simCards().actions().list(params)
+- client.simCards().actions().bulkDisableVoice(params)
+- client.simCards().actions().bulkEnableVoice(params)
+- client.simCards().actions().bulkSetPublicIps(params)
+- client.simCards().actions().disable(params)
+- client.simCards().actions().disableVoice(params)
+- client.simCards().actions().enable(params)
+- client.simCards().actions().enableVoice(params)
+- client.simCards().actions().removePublicIp(params)
+- client.simCards().actions().setPublicIp(params)
+- client.simCards().actions().setStandby(params)
+- client.simCards().actions().validateRegistrationCodes(params)
+
+# SiprecConnectors
+
+Methods:
+
+- client.siprecConnectors().create(params)
+- client.siprecConnectors().retrieve(params)
+- client.siprecConnectors().update(params)
+- client.siprecConnectors().delete(params)
+
+# Storage
+
+Methods:
+
+- client.storage().listMigrationSourceCoverage()
+
+## Buckets
+
+Methods:
+
+- client.storage().buckets().createPresignedUrl(params)
+
+### SslCertificate
+
+Methods:
+
+- client.storage().buckets().sslCertificate().create(params)
+- client.storage().buckets().sslCertificate().retrieve(params)
+- client.storage().buckets().sslCertificate().delete(params)
+
+### Usage
+
+Methods:
+
+- client.storage().buckets().usage().getApiUsage(params)
+- client.storage().buckets().usage().getBucketUsage(params)
+
+## MigrationSources
+
+Methods:
+
+- client.storage().migrationSources().create(params)
+- client.storage().migrationSources().retrieve(params)
+- client.storage().migrationSources().list()
+- client.storage().migrationSources().delete(params)
+
+## Migrations
+
+Methods:
+
+- client.storage().migrations().create(params)
+- client.storage().migrations().retrieve(params)
+- client.storage().migrations().list()
+
+### Actions
+
+Methods:
+
+- client.storage().migrations().actions().stop(params)
+
+## Kvs
+
+Methods:
+
+- client.storage().kvs().create(params)
+- client.storage().kvs().retrieve(params)
+- client.storage().kvs().list(params)
+- client.storage().kvs().delete(params)
+
+### Keys
+
+Methods:
+
+- client.storage().kvs().keys().retrieve(params)
+- client.storage().kvs().keys().update(params)
+- client.storage().kvs().keys().list(params)
+- client.storage().kvs().keys().delete(params)
+
+## Cloudfs
+
+Methods:
+
+- client.storage().cloudfs().create(params)
+- client.storage().cloudfs().retrieve(params)
+- client.storage().cloudfs().update(params)
+- client.storage().cloudfs().list(params)
+- client.storage().cloudfs().delete(params)
+
+### Actions
+
+Methods:
+
+- client.storage().cloudfs().actions().rotateMetaToken(params)
+
+## Sqldbs
+
+Methods:
+
+- client.storage().sqldbs().create(params)
+- client.storage().sqldbs().retrieve(params)
+- client.storage().sqldbs().list(params)
+- client.storage().sqldbs().delete(params)
+
+### Actions
+
+Methods:
+
+- client.storage().sqldbs().actions().query(params)
+
+# SubNumberOrders
+
+Methods:
+
+- client.subNumberOrders().retrieve(params)
+- client.subNumberOrders().update(params)
+- client.subNumberOrders().list(params)
+- client.subNumberOrders().cancel(params)
+- client.subNumberOrders().updateRequirementGroup(params)
+
+# SubNumberOrdersReport
+
+Methods:
+
+- client.subNumberOrdersReport().create(params)
+- client.subNumberOrdersReport().retrieve(params)
+- client.subNumberOrdersReport().download(params)
+
+# TelephonyCredentials
+
+Methods:
+
+- client.telephonyCredentials().create(params)
+- client.telephonyCredentials().retrieve(params)
+- client.telephonyCredentials().update(params)
+- client.telephonyCredentials().list(params)
+- client.telephonyCredentials().delete(params)
+- client.telephonyCredentials().createToken(params)
+
+# Texml
+
+Methods:
+
+- client.texml().initiateAiCall(params)
+- client.texml().secrets(params)
+
+## Accounts
+
+Methods:
+
+- client.texml().accounts().retrieveRecordingsJson(params)
+- client.texml().accounts().retrieveTranscriptionsJson(params)
+
+### Calls
+
+Methods:
+
+- client.texml().accounts().calls().retrieve(params)
+- client.texml().accounts().calls().update(params)
+- client.texml().accounts().calls().calls(params)
+- client.texml().accounts().calls().retrieveCalls(params)
+- client.texml().accounts().calls().siprecJson(params)
+- client.texml().accounts().calls().streamsJson(params)
+
+#### RecordingsJson
+
+Methods:
+
+- client.texml().accounts().calls().recordingsJson().recordingsJson(params)
+- client.texml().accounts().calls().recordingsJson().retrieveRecordingsJson(params)
+
+#### Recordings
+
+Methods:
+
+- client.texml().accounts().calls().recordings().recordingSidJson(params)
+
+#### Siprec
+
+Methods:
+
+- client.texml().accounts().calls().siprec().siprecSidJson(params)
+
+#### Streams
+
+Methods:
+
+- client.texml().accounts().calls().streams().streamingSidJson(params)
+
+### Conferences
+
+Methods:
+
+- client.texml().accounts().conferences().retrieve(params)
+- client.texml().accounts().conferences().update(params)
+- client.texml().accounts().conferences().retrieveConferences(params)
+- client.texml().accounts().conferences().retrieveRecordings(params)
+- client.texml().accounts().conferences().retrieveRecordingsJson(params)
+
+#### Participants
+
+Methods:
+
+- client.texml().accounts().conferences().participants().retrieve(params)
+- client.texml().accounts().conferences().participants().update(params)
+- client.texml().accounts().conferences().participants().delete(params)
+- client.texml().accounts().conferences().participants().participants(params)
+- client.texml().accounts().conferences().participants().retrieveParticipants(params)
+
+### Recordings
+
+#### Json
+
+Methods:
+
+- client.texml().accounts().recordings().json().deleteRecordingSidJson(params)
+- client.texml().accounts().recordings().json().retrieveRecordingSidJson(params)
+
+### Transcriptions
+
+#### Json
+
+Methods:
+
+- client.texml().accounts().transcriptions().json().deleteRecordingTranscriptionSidJson(params)
+- client.texml().accounts().transcriptions().json().retrieveRecordingTranscriptionSidJson(params)
+
+### Queues
+
+Methods:
+
+- client.texml().accounts().queues().create(params)
+- client.texml().accounts().queues().retrieve(params)
+- client.texml().accounts().queues().update(params)
+- client.texml().accounts().queues().list(params)
+- client.texml().accounts().queues().delete(params)
+
+# TexmlApplications
+
+Methods:
+
+- client.texmlApplications().create(params)
+- client.texmlApplications().retrieve(params)
+- client.texmlApplications().update(params)
+- client.texmlApplications().list(params)
+- client.texmlApplications().delete(params)
+
+# TextToSpeech
+
+Methods:
+
+- client.textToSpeech().generateSpeech(params)
+- client.textToSpeech().listVoices(params)
+- client.textToSpeech().retrieveSpeech(params)
+
+# UsageReports
+
+Methods:
+
+- client.usageReports().list(params)
+- client.usageReports().getOptions(params)
+
+# UserAddresses
+
+Methods:
+
+- client.userAddresses().create(params)
+- client.userAddresses().retrieve(params)
+- client.userAddresses().list(params)
+
+# UserTags
+
+Methods:
+
+- client.userTags().list(params)
+
+# Verifications
+
+Methods:
+
+- client.verifications().retrieve(params)
+- client.verifications().triggerCall(params)
+- client.verifications().triggerFlashcall(params)
+- client.verifications().triggerSms(params)
+- client.verifications().triggerWhatsappVerification(params)
+
+## ByPhoneNumber
+
+Methods:
+
+- client.verifications().byPhoneNumber().list(params)
+
+### Actions
+
+Methods:
+
+- client.verifications().byPhoneNumber().actions().verify(params)
+
+## Actions
+
+Methods:
+
+- client.verifications().actions().verify(params)
+
+# VerifiedNumbers
+
+Methods:
+
+- client.verifiedNumbers().create(params)
+- client.verifiedNumbers().retrieve(params)
+- client.verifiedNumbers().list(params)
+- client.verifiedNumbers().delete(params)
+
+## Actions
+
+Methods:
+
+- client.verifiedNumbers().actions().submitVerificationCode(params)
+
+# VerifyProfiles
+
+Methods:
+
+- client.verifyProfiles().create(params)
+- client.verifyProfiles().retrieve(params)
+- client.verifyProfiles().update(params)
+- client.verifyProfiles().list(params)
+- client.verifyProfiles().delete(params)
+- client.verifyProfiles().createTemplate(params)
+- client.verifyProfiles().retrieveTemplates()
+- client.verifyProfiles().updateTemplate(params)
+
+# VirtualCrossConnects
+
+Methods:
+
+- client.virtualCrossConnects().create(params)
+- client.virtualCrossConnects().retrieve(params)
+- client.virtualCrossConnects().update(params)
+- client.virtualCrossConnects().list(params)
+- client.virtualCrossConnects().delete(params)
+
+# VirtualCrossConnectsCoverage
+
+Methods:
+
+- client.virtualCrossConnectsCoverage().list(params)
+
+# WebhookDeliveries
+
+Methods:
+
+- client.webhookDeliveries().retrieve(params)
+- client.webhookDeliveries().list(params)
+
+# WireguardInterfaces
+
+Methods:
+
+- client.wireguardInterfaces().create(params)
+- client.wireguardInterfaces().retrieve(params)
+- client.wireguardInterfaces().list(params)
+- client.wireguardInterfaces().delete(params)
+
+# WireguardPeers
+
+Methods:
+
+- client.wireguardPeers().create(params)
+- client.wireguardPeers().retrieve(params)
+- client.wireguardPeers().update(params)
+- client.wireguardPeers().list(params)
+- client.wireguardPeers().delete(params)
+- client.wireguardPeers().retrieveConfig(params)
+
+# Wireless
+
+Methods:
+
+- client.wireless().retrieveRegions(params)
+
+## DetailRecordsReports
+
+Methods:
+
+- client.wireless().detailRecordsReports().create(params)
+- client.wireless().detailRecordsReports().retrieve(params)
+- client.wireless().detailRecordsReports().list(params)
+- client.wireless().detailRecordsReports().delete(params)
+
+# WirelessBlocklistValues
+
+Methods:
+
+- client.wirelessBlocklistValues().list(params)
+
+# WirelessBlocklists
+
+Methods:
+
+- client.wirelessBlocklists().create(params)
+- client.wirelessBlocklists().retrieve(params)
+- client.wirelessBlocklists().update(params)
+- client.wirelessBlocklists().list(params)
+- client.wirelessBlocklists().delete(params)
+
+# WellKnown
+
+Methods:
+
+- client.wellKnown().retrieveAuthorizationServerMetadata()
+- client.wellKnown().retrieveProtectedResourceMetadata()
+
+# InexplicitNumberOrders
+
+Methods:
+
+- client.inexplicitNumberOrders().create(params)
+- client.inexplicitNumberOrders().retrieve(params)
+- client.inexplicitNumberOrders().list(params)
+
+# MobilePhoneNumbers
+
+Methods:
+
+- client.mobilePhoneNumbers().retrieve(params)
+- client.mobilePhoneNumbers().update(params)
+- client.mobilePhoneNumbers().list(params)
+
+## Messaging
+
+Methods:
+
+- client.mobilePhoneNumbers().messaging().retrieve(params)
+- client.mobilePhoneNumbers().messaging().list(params)
+
+# MobileVoiceConnections
+
+Methods:
+
+- client.mobileVoiceConnections().create(params)
+- client.mobileVoiceConnections().retrieve(params)
+- client.mobileVoiceConnections().update(params)
+- client.mobileVoiceConnections().list(params)
+- client.mobileVoiceConnections().delete(params)
+
+# Messaging10dlc
+
+Methods:
+
+- client.messaging10dlc().getEnum(params)
+
+## Brand
+
+Methods:
+
+- client.messaging10dlc().brand().create(params)
+- client.messaging10dlc().brand().retrieve(params)
+- client.messaging10dlc().brand().update(params)
+- client.messaging10dlc().brand().list(params)
+- client.messaging10dlc().brand().delete(params)
+- client.messaging10dlc().brand().getFeedback(params)
+- client.messaging10dlc().brand().getSmsOtpByReference(params)
+- client.messaging10dlc().brand().resend2faEmail(params)
+- client.messaging10dlc().brand().retrieveSmsOtpStatus(params)
+- client.messaging10dlc().brand().revet(params)
+- client.messaging10dlc().brand().triggerSmsOtp(params)
+- client.messaging10dlc().brand().verifySmsOtp(params)
+
+### ExternalVetting
+
+Methods:
+
+- client.messaging10dlc().brand().externalVetting().list(params)
+- client.messaging10dlc().brand().externalVetting().imports(params)
+- client.messaging10dlc().brand().externalVetting().order(params)
+
+## Campaign
+
+Methods:
+
+- client.messaging10dlc().campaign().retrieve(params)
+- client.messaging10dlc().campaign().update(params)
+- client.messaging10dlc().campaign().list(params)
+- client.messaging10dlc().campaign().acceptSharing(params)
+- client.messaging10dlc().campaign().deactivate(params)
+- client.messaging10dlc().campaign().getMnoMetadata(params)
+- client.messaging10dlc().campaign().getOperationStatus(params)
+- client.messaging10dlc().campaign().getSharingStatus(params)
+- client.messaging10dlc().campaign().submitAppeal(params)
+
+### Usecase
+
+Methods:
+
+- client.messaging10dlc().campaign().usecase().getCost(params)
+
+### Osr
+
+Methods:
+
+- client.messaging10dlc().campaign().osr().getAttributes(params)
+
+## CampaignBuilder
+
+Methods:
+
+- client.messaging10dlc().campaignBuilder().submit(params)
+
+### Brand
+
+Methods:
+
+- client.messaging10dlc().campaignBuilder().brand().qualifyByUsecase(params)
+
+## PartnerCampaigns
+
+Methods:
+
+- client.messaging10dlc().partnerCampaigns().retrieve(params)
+- client.messaging10dlc().partnerCampaigns().update(params)
+- client.messaging10dlc().partnerCampaigns().list(params)
+- client.messaging10dlc().partnerCampaigns().listSharedByMe(params)
+- client.messaging10dlc().partnerCampaigns().retrieveSharingStatus(params)
+
+## PhoneNumberCampaigns
+
+Methods:
+
+- client.messaging10dlc().phoneNumberCampaigns().create(params)
+- client.messaging10dlc().phoneNumberCampaigns().retrieve(params)
+- client.messaging10dlc().phoneNumberCampaigns().update(params)
+- client.messaging10dlc().phoneNumberCampaigns().list(params)
+- client.messaging10dlc().phoneNumberCampaigns().delete(params)
+
+## PhoneNumberAssignmentByProfile
+
+Methods:
+
+- client.messaging10dlc().phoneNumberAssignmentByProfile().assign(params)
+- client.messaging10dlc().phoneNumberAssignmentByProfile().listPhoneNumberStatus(params)
+- client.messaging10dlc().phoneNumberAssignmentByProfile().retrievePhoneNumberStatus(params)
+- client.messaging10dlc().phoneNumberAssignmentByProfile().retrieveStatus(params)
+
+# Organizations
+
+## Users
+
+Methods:
+
+- client.organizations().users().retrieve(params)
+- client.organizations().users().list(params)
+- client.organizations().users().getGroupsReport(params)
+
+### Actions
+
+Methods:
+
+- client.organizations().users().actions().remove(params)
+
+# AlphanumericSenderIds
+
+Methods:
+
+- client.alphanumericSenderIds().create(params)
+- client.alphanumericSenderIds().retrieve(params)
+- client.alphanumericSenderIds().list(params)
+- client.alphanumericSenderIds().delete(params)
+
+# MessagingProfileMetrics
+
+Methods:
+
+- client.messagingProfileMetrics().list(params)
+
+# SessionAnalysis
+
+Methods:
+
+- client.sessionAnalysis().retrieve(params)
+
+## Metadata
+
+Methods:
+
+- client.sessionAnalysis().metadata().retrieve()
+- client.sessionAnalysis().metadata().retrieveRecordType(params)
+
+# Whatsapp
+
+## BusinessAccounts
+
+Methods:
+
+- client.whatsapp().businessAccounts().retrieve(params)
+- client.whatsapp().businessAccounts().list(params)
+- client.whatsapp().businessAccounts().delete(params)
+
+### PhoneNumbers
+
+Methods:
+
+- client.whatsapp().businessAccounts().phoneNumbers().list(params)
+- client.whatsapp().businessAccounts().phoneNumbers().initializeVerification(params)
+
+### Settings
+
+Methods:
+
+- client.whatsapp().businessAccounts().settings().retrieve(params)
+- client.whatsapp().businessAccounts().settings().update(params)
+
+## Templates
+
+Methods:
+
+- client.whatsapp().templates().create(params)
+- client.whatsapp().templates().list(params)
+
+## PhoneNumbers
+
+Methods:
+
+- client.whatsapp().phoneNumbers().list(params)
+- client.whatsapp().phoneNumbers().delete(params)
+- client.whatsapp().phoneNumbers().get(params)
+- client.whatsapp().phoneNumbers().resendVerification(params)
+- client.whatsapp().phoneNumbers().retrieveConversationWindow(params)
+- client.whatsapp().phoneNumbers().verify(params)
+
+### CallingSettings
+
+Methods:
+
+- client.whatsapp().phoneNumbers().callingSettings().retrieve(params)
+- client.whatsapp().phoneNumbers().callingSettings().update(params)
+
+### Profile
+
+Methods:
+
+- client.whatsapp().phoneNumbers().profile().retrieve(params)
+- client.whatsapp().phoneNumbers().profile().update(params)
+
+#### Photo
+
+Methods:
+
+- client.whatsapp().phoneNumbers().profile().photo().retrieve(params)
+- client.whatsapp().phoneNumbers().profile().photo().delete(params)
+- client.whatsapp().phoneNumbers().profile().photo().upload(params)
+
+### ConversationalComponents
+
+Methods:
+
+- client.whatsapp().phoneNumbers().conversationalComponents().list(params)
+- client.whatsapp().phoneNumbers().conversationalComponents().patchAll(params)
+
+## UserData
+
+Methods:
+
+- client.whatsapp().userData().retrieve()
+- client.whatsapp().userData().update(params)
+
+# WhatsappMessageTemplates
+
+Methods:
+
+- client.whatsappMessageTemplates().retrieve(params)
+- client.whatsappMessageTemplates().update(params)
+- client.whatsappMessageTemplates().delete(params)
+
+# X402
+
+## CreditAccount
+
+Methods:
+
+- client.x402().creditAccount().createQuote(params)
+- client.x402().creditAccount().settle(params)
+
+# VoiceClones
+
+Methods:
+
+- client.voiceClones().create(params)
+- client.voiceClones().update(params)
+- client.voiceClones().list(params)
+- client.voiceClones().delete(params)
+- client.voiceClones().createFromUpload(params)
+- client.voiceClones().downloadSample(params)
+
+# VoiceDesigns
+
+Methods:
+
+- client.voiceDesigns().create(params)
+- client.voiceDesigns().retrieve(params)
+- client.voiceDesigns().list(params)
+- client.voiceDesigns().delete(params)
+- client.voiceDesigns().deleteVersion(params)
+- client.voiceDesigns().downloadSample(params)
+- client.voiceDesigns().rename(params)
+
+# TrafficPolicyProfiles
+
+Methods:
+
+- client.trafficPolicyProfiles().create(params)
+- client.trafficPolicyProfiles().retrieve(params)
+- client.trafficPolicyProfiles().update(params)
+- client.trafficPolicyProfiles().list(params)
+- client.trafficPolicyProfiles().delete(params)
+- client.trafficPolicyProfiles().listServices(params)
+
+# Enterprises
+
+Methods:
+
+- client.enterprises().create(params)
+- client.enterprises().retrieve(params)
+- client.enterprises().update(params)
+- client.enterprises().list(params)
+- client.enterprises().delete(params)
+- client.enterprises().brandedCalling(params)
+
+## Reputation
+
+Methods:
+
+- client.enterprises().reputation().retrieve(params)
+- client.enterprises().reputation().disable(params)
+- client.enterprises().reputation().enable(params)
+- client.enterprises().reputation().updateFrequency(params)
+
+### Numbers
+
+Methods:
+
+- client.enterprises().reputation().numbers().retrieve(params)
+- client.enterprises().reputation().numbers().list(params)
+- client.enterprises().reputation().numbers().associate(params)
+- client.enterprises().reputation().numbers().disassociate(params)
+- client.enterprises().reputation().numbers().refresh(params)
+
+### Loa
+
+Methods:
+
+- client.enterprises().reputation().loa().update(params)
+- client.enterprises().reputation().loa().render(params)
+
+### Remediation
+
+Methods:
+
+- client.enterprises().reputation().remediation().create(params)
+- client.enterprises().reputation().remediation().retrieve(params)
+- client.enterprises().reputation().remediation().list(params)
+
+## Dir
+
+Methods:
+
+- client.enterprises().dir().create(params)
+- client.enterprises().dir().list(params)
+
+# Reputation
+
+## Numbers
+
+Methods:
+
+- client.reputation().numbers().retrieve(params)
+- client.reputation().numbers().list(params)
+- client.reputation().numbers().delete(params)
+
+# TermsOfService
+
+Methods:
+
+- client.termsOfService().retrieveInfo(params)
+- client.termsOfService().retrieveStatus(params)
+
+## NumberReputation
+
+Methods:
+
+- client.termsOfService().numberReputation().agree()
+
+## Agreements
+
+Methods:
+
+- client.termsOfService().agreements().retrieve(params)
+- client.termsOfService().agreements().list(params)
+
+## BrandedCalling
+
+Methods:
+
+- client.termsOfService().brandedCalling().agree()
+
+# PronunciationDicts
+
+Methods:
+
+- client.pronunciationDicts().create(params)
+- client.pronunciationDicts().retrieve(params)
+- client.pronunciationDicts().update(params)
+- client.pronunciationDicts().list(params)
+- client.pronunciationDicts().delete(params)
+
+# UacConnections
+
+Methods:
+
+- client.uacConnections().create(params)
+- client.uacConnections().retrieve(params)
+- client.uacConnections().update(params)
+- client.uacConnections().list(params)
+- client.uacConnections().delete(params)
+
+## Actions
+
+Methods:
+
+- client.uacConnections().actions().checkRegistrationStatus(params)
+
+# VoiceSdkCallReports
+
+Methods:
+
+- client.voiceSdkCallReports().retrieve(params)
+- client.voiceSdkCallReports().list(params)
+
+# SipRegistrationStatus
+
+Methods:
+
+- client.sipRegistrationStatus().retrieve(params)
+
+# CallReasons
+
+Methods:
+
+- client.callReasons().list(params)
+- client.callReasons().validate(params)
+
+# Dir
+
+Methods:
+
+- client.dir().retrieve(params)
+- client.dir().update(params)
+- client.dir().list(params)
+- client.dir().delete(params)
+- client.dir().listDocumentTypes()
+- client.dir().listInfringementClaims(params)
+- client.dir().newLoa(params)
+- client.dir().submit(params)
+- client.dir().updateInfringement(params)
+
+## Comments
+
+Methods:
+
+- client.dir().comments().create(params)
+- client.dir().comments().list(params)
+
+## PhoneNumberBatches
+
+Methods:
+
+- client.dir().phoneNumberBatches().retrieve(params)
+- client.dir().phoneNumberBatches().list(params)
+
+## PhoneNumbers
+
+Methods:
+
+- client.dir().phoneNumbers().list(params)
+- client.dir().phoneNumbers().add(params)
+- client.dir().phoneNumbers().remove(params)
+
+## References
+
+Methods:
+
+- client.dir().references().create(params)
+- client.dir().references().update(params)
+- client.dir().references().list(params)
+
+## VerifyEmail
+
+Methods:
+
+- client.dir().verifyEmail().create(params)
+- client.dir().verifyEmail().list(params)
+- client.dir().verifyEmail().confirm(params)
+
+# InfringementClaims
+
+Methods:
+
+- client.infringementClaims().retrieve(params)
+- client.infringementClaims().contest(params)
+
+# EmailBlocks
+
+Methods:
+
+- client.emailBlocks().create(params)
+- client.emailBlocks().retrieve(params)
+- client.emailBlocks().list(params)
+- client.emailBlocks().delete(params)
+- client.emailBlocks().retrieveEvents(params)
+- client.emailBlocks().retrieveExport(params)
+
+## Import
+
+Methods:
+
+- client.emailBlocks().import\_().create(params)
+- client.emailBlocks().import\_().retrieve(params)
+
+# EmailDomains
+
+Methods:
+
+- client.emailDomains().create(params)
+- client.emailDomains().retrieve(params)
+- client.emailDomains().update(params)
+- client.emailDomains().list(params)
+- client.emailDomains().delete(params)
+- client.emailDomains().retrieveDnsRecords(params)
+- client.emailDomains().retrieveHealth(params)
+- client.emailDomains().verify(params)
+
+## Webhooks
+
+Methods:
+
+- client.emailDomains().webhooks().create(params)
+- client.emailDomains().webhooks().retrieve(params)
+- client.emailDomains().webhooks().update(params)
+- client.emailDomains().webhooks().list(params)
+- client.emailDomains().webhooks().delete(params)
+
+# EmailEvents
+
+Methods:
+
+- client.emailEvents().list(params)
+- client.emailEvents().retrieveStats(params)
+
+# EmailInboxes
+
+Methods:
+
+- client.emailInboxes().create(params)
+- client.emailInboxes().retrieve(params)
+- client.emailInboxes().list(params)
+- client.emailInboxes().delete(params)
+
+## Drafts
+
+Methods:
+
+- client.emailInboxes().drafts().create(params)
+- client.emailInboxes().drafts().retrieve(params)
+- client.emailInboxes().drafts().update(params)
+- client.emailInboxes().drafts().list(params)
+- client.emailInboxes().drafts().delete(params)
+- client.emailInboxes().drafts().patch(params)
+- client.emailInboxes().drafts().send(params)
+
+## Filters
+
+Methods:
+
+- client.emailInboxes().filters().list(params)
+- client.emailInboxes().filters().add(params)
+- client.emailInboxes().filters().deleteAll(params)
+- client.emailInboxes().filters().replace(params)
+
+## Messages
+
+Methods:
+
+- client.emailInboxes().messages().update(params)
+- client.emailInboxes().messages().list(params)
+- client.emailInboxes().messages().drafts(params)
+
+### Actions
+
+Methods:
+
+- client.emailInboxes().messages().actions().forward(params)
+- client.emailInboxes().messages().actions().reply(params)
+- client.emailInboxes().messages().actions().replyAll(params)
+
+### Labels
+
+Methods:
+
+- client.emailInboxes().messages().labels().create(params)
+- client.emailInboxes().messages().labels().deleteAll(params)
+
+## Threads
+
+Methods:
+
+- client.emailInboxes().threads().retrieve(params)
+- client.emailInboxes().threads().list(params)
+
+### Labels
+
+Methods:
+
+- client.emailInboxes().threads().labels().create(params)
+- client.emailInboxes().threads().labels().deleteAll(params)
+
+# EmailMessages
+
+Methods:
+
+- client.emailMessages().create(params)
+- client.emailMessages().retrieve(params)
+- client.emailMessages().list(params)
+- client.emailMessages().delete(params)
+- client.emailMessages().batch(params)
+- client.emailMessages().deleteAll(params)
+- client.emailMessages().deleteSchedule(params)
+- client.emailMessages().retrieveEvents(params)
+
+## Recipients
+
+Methods:
+
+- client.emailMessages().recipients().retrieve(params)
+- client.emailMessages().recipients().list(params)
+
+# EmailTemplates
+
+Methods:
+
+- client.emailTemplates().create(params)
+- client.emailTemplates().retrieve(params)
+- client.emailTemplates().update(params)
+- client.emailTemplates().list(params)
+- client.emailTemplates().delete(params)
+- client.emailTemplates().render(params)
+- client.emailTemplates().replace(params)
+
+# EmailThreads
+
+Methods:
+
+- client.emailThreads().retrieve(params)
+- client.emailThreads().list(params)
+
+# EmailUnsubscribeGroups
+
+Methods:
+
+- client.emailUnsubscribeGroups().create(params)
+- client.emailUnsubscribeGroups().retrieve(params)
+- client.emailUnsubscribeGroups().update(params)
+- client.emailUnsubscribeGroups().list(params)
+- client.emailUnsubscribeGroups().delete(params)
+
+## Suppressions
+
+Methods:
+
+- client.emailUnsubscribeGroups().suppressions().create(params)
+- client.emailUnsubscribeGroups().suppressions().list(params)
+- client.emailUnsubscribeGroups().suppressions().delete(params)
+
+# EmailValidations
+
+Methods:
+
+- client.emailValidations().create(params)
+
+## Batch
+
+Methods:
+
+- client.emailValidations().batch().create(params)
+- client.emailValidations().batch().retrieve(params)
+
+# Pricing
+
+## Products
+
+Methods:
+
+- client.pricing().products().retrieve(params)
+- client.pricing().products().list(params)
+
+# WebSearch
+
+Methods:
+
+- client.webSearch().create(params)
+- client.webSearch().contents(params)
+
+## Research
+
+Methods:
+
+- client.webSearch().research().create(params)
+- client.webSearch().research().retrieve(params)
diff --git a/build.gradle.kts b/build.gradle.kts
index 0f528f08b..5be148378 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -1,6 +1,6 @@
allprojects {
group = "com.telnyx.sdk"
- version = "6.85.0" // x-release-please-version
+ version = "6.86.0" // x-release-please-version
}
subprojects {
diff --git a/gradle.properties b/gradle.properties
index 6680f9ce9..bc7b5ee37 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -4,8 +4,8 @@ org.gradle.parallel=true
org.gradle.daemon=false
# These options improve our compilation and test performance. They are inherited by the Kotlin daemon.
org.gradle.jvmargs=\
- -Xms2g \
- -Xmx8g \
+ -Xms12g \
+ -Xmx12g \
-XX:+UseParallelGC \
-XX:InitialCodeCacheSize=256m \
-XX:ReservedCodeCacheSize=1G \
diff --git a/telnyx-core/src/main/kotlin/com/telnyx/sdk/client/TelnyxClient.kt b/telnyx-core/src/main/kotlin/com/telnyx/sdk/client/TelnyxClient.kt
index 84e83bb61..7b661c1e7 100644
--- a/telnyx-core/src/main/kotlin/com/telnyx/sdk/client/TelnyxClient.kt
+++ b/telnyx-core/src/main/kotlin/com/telnyx/sdk/client/TelnyxClient.kt
@@ -172,6 +172,7 @@ import com.telnyx.sdk.services.blocking.VirtualCrossConnectsCoverageService
import com.telnyx.sdk.services.blocking.VoiceCloneService
import com.telnyx.sdk.services.blocking.VoiceDesignService
import com.telnyx.sdk.services.blocking.VoiceSdkCallReportService
+import com.telnyx.sdk.services.blocking.WebSearchService
import com.telnyx.sdk.services.blocking.WebhookDeliveryService
import com.telnyx.sdk.services.blocking.WebhookService
import com.telnyx.sdk.services.blocking.WellKnownService
@@ -750,6 +751,8 @@ interface TelnyxClient {
fun pricing(): PricingService
+ fun webSearch(): WebSearchService
+
/**
* Closes this client, relinquishing any underlying resources.
*
@@ -1305,5 +1308,7 @@ interface TelnyxClient {
fun emailValidations(): EmailValidationService.WithRawResponse
fun pricing(): PricingService.WithRawResponse
+
+ fun webSearch(): WebSearchService.WithRawResponse
}
}
diff --git a/telnyx-core/src/main/kotlin/com/telnyx/sdk/client/TelnyxClientAsync.kt b/telnyx-core/src/main/kotlin/com/telnyx/sdk/client/TelnyxClientAsync.kt
index f838cf014..044534c89 100644
--- a/telnyx-core/src/main/kotlin/com/telnyx/sdk/client/TelnyxClientAsync.kt
+++ b/telnyx-core/src/main/kotlin/com/telnyx/sdk/client/TelnyxClientAsync.kt
@@ -172,6 +172,7 @@ import com.telnyx.sdk.services.async.VirtualCrossConnectsCoverageServiceAsync
import com.telnyx.sdk.services.async.VoiceCloneServiceAsync
import com.telnyx.sdk.services.async.VoiceDesignServiceAsync
import com.telnyx.sdk.services.async.VoiceSdkCallReportServiceAsync
+import com.telnyx.sdk.services.async.WebSearchServiceAsync
import com.telnyx.sdk.services.async.WebhookDeliveryServiceAsync
import com.telnyx.sdk.services.async.WebhookServiceAsync
import com.telnyx.sdk.services.async.WellKnownServiceAsync
@@ -750,6 +751,8 @@ interface TelnyxClientAsync {
fun pricing(): PricingServiceAsync
+ fun webSearch(): WebSearchServiceAsync
+
/**
* Closes this client, relinquishing any underlying resources.
*
@@ -1308,5 +1311,7 @@ interface TelnyxClientAsync {
fun emailValidations(): EmailValidationServiceAsync.WithRawResponse
fun pricing(): PricingServiceAsync.WithRawResponse
+
+ fun webSearch(): WebSearchServiceAsync.WithRawResponse
}
}
diff --git a/telnyx-core/src/main/kotlin/com/telnyx/sdk/client/TelnyxClientAsyncImpl.kt b/telnyx-core/src/main/kotlin/com/telnyx/sdk/client/TelnyxClientAsyncImpl.kt
index 48becfe0a..13ae10920 100644
--- a/telnyx-core/src/main/kotlin/com/telnyx/sdk/client/TelnyxClientAsyncImpl.kt
+++ b/telnyx-core/src/main/kotlin/com/telnyx/sdk/client/TelnyxClientAsyncImpl.kt
@@ -342,6 +342,8 @@ import com.telnyx.sdk.services.async.VoiceDesignServiceAsync
import com.telnyx.sdk.services.async.VoiceDesignServiceAsyncImpl
import com.telnyx.sdk.services.async.VoiceSdkCallReportServiceAsync
import com.telnyx.sdk.services.async.VoiceSdkCallReportServiceAsyncImpl
+import com.telnyx.sdk.services.async.WebSearchServiceAsync
+import com.telnyx.sdk.services.async.WebSearchServiceAsyncImpl
import com.telnyx.sdk.services.async.WebhookDeliveryServiceAsync
import com.telnyx.sdk.services.async.WebhookDeliveryServiceAsyncImpl
import com.telnyx.sdk.services.async.WebhookServiceAsync
@@ -1082,6 +1084,10 @@ class TelnyxClientAsyncImpl(private val clientOptions: ClientOptions) : TelnyxCl
PricingServiceAsyncImpl(clientOptionsWithUserAgent)
}
+ private val webSearch: WebSearchServiceAsync by lazy {
+ WebSearchServiceAsyncImpl(clientOptionsWithUserAgent)
+ }
+
override fun sync(): TelnyxClient = sync
override fun withRawResponse(): TelnyxClientAsync.WithRawResponse = withRawResponse
@@ -1648,6 +1654,8 @@ class TelnyxClientAsyncImpl(private val clientOptions: ClientOptions) : TelnyxCl
override fun pricing(): PricingServiceAsync = pricing
+ override fun webSearch(): WebSearchServiceAsync = webSearch
+
override fun close() = clientOptions.close()
class WithRawResponseImpl internal constructor(private val clientOptions: ClientOptions) :
@@ -2412,6 +2420,10 @@ class TelnyxClientAsyncImpl(private val clientOptions: ClientOptions) : TelnyxCl
PricingServiceAsyncImpl.WithRawResponseImpl(clientOptions)
}
+ private val webSearch: WebSearchServiceAsync.WithRawResponse by lazy {
+ WebSearchServiceAsyncImpl.WithRawResponseImpl(clientOptions)
+ }
+
override fun withOptions(
modifier: Consumer
): TelnyxClientAsync.WithRawResponse =
@@ -3035,5 +3047,7 @@ class TelnyxClientAsyncImpl(private val clientOptions: ClientOptions) : TelnyxCl
emailValidations
override fun pricing(): PricingServiceAsync.WithRawResponse = pricing
+
+ override fun webSearch(): WebSearchServiceAsync.WithRawResponse = webSearch
}
}
diff --git a/telnyx-core/src/main/kotlin/com/telnyx/sdk/client/TelnyxClientImpl.kt b/telnyx-core/src/main/kotlin/com/telnyx/sdk/client/TelnyxClientImpl.kt
index e062d1630..c437b14ca 100644
--- a/telnyx-core/src/main/kotlin/com/telnyx/sdk/client/TelnyxClientImpl.kt
+++ b/telnyx-core/src/main/kotlin/com/telnyx/sdk/client/TelnyxClientImpl.kt
@@ -342,6 +342,8 @@ import com.telnyx.sdk.services.blocking.VoiceDesignService
import com.telnyx.sdk.services.blocking.VoiceDesignServiceImpl
import com.telnyx.sdk.services.blocking.VoiceSdkCallReportService
import com.telnyx.sdk.services.blocking.VoiceSdkCallReportServiceImpl
+import com.telnyx.sdk.services.blocking.WebSearchService
+import com.telnyx.sdk.services.blocking.WebSearchServiceImpl
import com.telnyx.sdk.services.blocking.WebhookDeliveryService
import com.telnyx.sdk.services.blocking.WebhookDeliveryServiceImpl
import com.telnyx.sdk.services.blocking.WebhookService
@@ -1038,6 +1040,10 @@ class TelnyxClientImpl(private val clientOptions: ClientOptions) : TelnyxClient
private val pricing: PricingService by lazy { PricingServiceImpl(clientOptionsWithUserAgent) }
+ private val webSearch: WebSearchService by lazy {
+ WebSearchServiceImpl(clientOptionsWithUserAgent)
+ }
+
override fun async(): TelnyxClientAsync = async
override fun withRawResponse(): TelnyxClient.WithRawResponse = withRawResponse
@@ -1589,6 +1595,8 @@ class TelnyxClientImpl(private val clientOptions: ClientOptions) : TelnyxClient
override fun pricing(): PricingService = pricing
+ override fun webSearch(): WebSearchService = webSearch
+
override fun close() = clientOptions.close()
class WithRawResponseImpl internal constructor(private val clientOptions: ClientOptions) :
@@ -2329,6 +2337,10 @@ class TelnyxClientImpl(private val clientOptions: ClientOptions) : TelnyxClient
PricingServiceImpl.WithRawResponseImpl(clientOptions)
}
+ private val webSearch: WebSearchService.WithRawResponse by lazy {
+ WebSearchServiceImpl.WithRawResponseImpl(clientOptions)
+ }
+
override fun withOptions(
modifier: Consumer
): TelnyxClient.WithRawResponse =
@@ -2938,5 +2950,7 @@ class TelnyxClientImpl(private val clientOptions: ClientOptions) : TelnyxClient
override fun emailValidations(): EmailValidationService.WithRawResponse = emailValidations
override fun pricing(): PricingService.WithRawResponse = pricing
+
+ override fun webSearch(): WebSearchService.WithRawResponse = webSearch
}
}
diff --git a/telnyx-core/src/main/kotlin/com/telnyx/sdk/models/calls/CallDialParams.kt b/telnyx-core/src/main/kotlin/com/telnyx/sdk/models/calls/CallDialParams.kt
index e5e0712d5..5c3a43757 100644
--- a/telnyx-core/src/main/kotlin/com/telnyx/sdk/models/calls/CallDialParams.kt
+++ b/telnyx-core/src/main/kotlin/com/telnyx/sdk/models/calls/CallDialParams.kt
@@ -655,9 +655,9 @@ private constructor(
fun webhookUrlMethod(): Optional = body.webhookUrlMethod()
/**
- * A map of event types to webhook URLs. When an event of the specified type occurs, the webhook
- * URL associated with that event type will be called instead of the default webhook URL. Events
- * not mapped here will use the default webhook URL.
+ * A map of event types to arrays of webhook URLs. When an event of the specified type occurs,
+ * the webhook URLs associated with that event type will be called instead of the default
+ * webhook URL. Events not mapped here will use the default webhook URL.
*
* @throws TelnyxInvalidDataException if the JSON field has an unexpected type (e.g. if the
* server responded with an unexpected value).
@@ -2309,9 +2309,9 @@ private constructor(
}
/**
- * A map of event types to webhook URLs. When an event of the specified type occurs, the
- * webhook URL associated with that event type will be called instead of the default webhook
- * URL. Events not mapped here will use the default webhook URL.
+ * A map of event types to arrays of webhook URLs. When an event of the specified type
+ * occurs, the webhook URLs associated with that event type will be called instead of the
+ * default webhook URL. Events not mapped here will use the default webhook URL.
*/
fun webhookUrls(webhookUrls: WebhookUrls) = apply { body.webhookUrls(webhookUrls) }
@@ -3426,9 +3426,9 @@ private constructor(
webhookUrlMethod.getOptional("webhook_url_method")
/**
- * A map of event types to webhook URLs. When an event of the specified type occurs, the
- * webhook URL associated with that event type will be called instead of the default webhook
- * URL. Events not mapped here will use the default webhook URL.
+ * A map of event types to arrays of webhook URLs. When an event of the specified type
+ * occurs, the webhook URLs associated with that event type will be called instead of the
+ * default webhook URL. Events not mapped here will use the default webhook URL.
*
* @throws TelnyxInvalidDataException if the JSON field has an unexpected type (e.g. if the
* server responded with an unexpected value).
@@ -5328,9 +5328,9 @@ private constructor(
}
/**
- * A map of event types to webhook URLs. When an event of the specified type occurs, the
- * webhook URL associated with that event type will be called instead of the default
- * webhook URL. Events not mapped here will use the default webhook URL.
+ * A map of event types to arrays of webhook URLs. When an event of the specified type
+ * occurs, the webhook URLs associated with that event type will be called instead of
+ * the default webhook URL. Events not mapped here will use the default webhook URL.
*/
fun webhookUrls(webhookUrls: WebhookUrls) = webhookUrls(JsonField.of(webhookUrls))
@@ -10005,9 +10005,9 @@ private constructor(
}
/**
- * A map of event types to webhook URLs. When an event of the specified type occurs, the webhook
- * URL associated with that event type will be called instead of the default webhook URL. Events
- * not mapped here will use the default webhook URL.
+ * A map of event types to arrays of webhook URLs. When an event of the specified type occurs,
+ * the webhook URLs associated with that event type will be called instead of the default
+ * webhook URL. Events not mapped here will use the default webhook URL.
*/
class WebhookUrls
@JsonCreator
diff --git a/telnyx-core/src/main/kotlin/com/telnyx/sdk/models/calls/actions/ActionAnswerParams.kt b/telnyx-core/src/main/kotlin/com/telnyx/sdk/models/calls/actions/ActionAnswerParams.kt
index 37bf807a9..cfb80a752 100644
--- a/telnyx-core/src/main/kotlin/com/telnyx/sdk/models/calls/actions/ActionAnswerParams.kt
+++ b/telnyx-core/src/main/kotlin/com/telnyx/sdk/models/calls/actions/ActionAnswerParams.kt
@@ -323,9 +323,9 @@ private constructor(
fun webhookUrlMethod(): Optional = body.webhookUrlMethod()
/**
- * A map of event types to webhook URLs. When an event of the specified type occurs, the webhook
- * URL associated with that event type will be called instead of `webhook_url`. Events not
- * mapped here will use the default `webhook_url`.
+ * A map of event types to arrays of webhook URLs. When an event of the specified type occurs,
+ * the webhook URLs associated with that event type will be called instead of `webhook_url`.
+ * Events not mapped here will use the default `webhook_url`.
*
* @throws TelnyxInvalidDataException if the JSON field has an unexpected type (e.g. if the
* server responded with an unexpected value).
@@ -1155,9 +1155,9 @@ private constructor(
}
/**
- * A map of event types to webhook URLs. When an event of the specified type occurs, the
- * webhook URL associated with that event type will be called instead of `webhook_url`.
- * Events not mapped here will use the default `webhook_url`.
+ * A map of event types to arrays of webhook URLs. When an event of the specified type
+ * occurs, the webhook URLs associated with that event type will be called instead of
+ * `webhook_url`. Events not mapped here will use the default `webhook_url`.
*/
fun webhookUrls(webhookUrls: WebhookUrls) = apply { body.webhookUrls(webhookUrls) }
@@ -1783,9 +1783,9 @@ private constructor(
webhookUrlMethod.getOptional("webhook_url_method")
/**
- * A map of event types to webhook URLs. When an event of the specified type occurs, the
- * webhook URL associated with that event type will be called instead of `webhook_url`.
- * Events not mapped here will use the default `webhook_url`.
+ * A map of event types to arrays of webhook URLs. When an event of the specified type
+ * occurs, the webhook URLs associated with that event type will be called instead of
+ * `webhook_url`. Events not mapped here will use the default `webhook_url`.
*
* @throws TelnyxInvalidDataException if the JSON field has an unexpected type (e.g. if the
* server responded with an unexpected value).
@@ -2723,9 +2723,9 @@ private constructor(
}
/**
- * A map of event types to webhook URLs. When an event of the specified type occurs, the
- * webhook URL associated with that event type will be called instead of `webhook_url`.
- * Events not mapped here will use the default `webhook_url`.
+ * A map of event types to arrays of webhook URLs. When an event of the specified type
+ * occurs, the webhook URLs associated with that event type will be called instead of
+ * `webhook_url`. Events not mapped here will use the default `webhook_url`.
*/
fun webhookUrls(webhookUrls: WebhookUrls) = webhookUrls(JsonField.of(webhookUrls))
@@ -4481,9 +4481,9 @@ private constructor(
}
/**
- * A map of event types to webhook URLs. When an event of the specified type occurs, the webhook
- * URL associated with that event type will be called instead of `webhook_url`. Events not
- * mapped here will use the default `webhook_url`.
+ * A map of event types to arrays of webhook URLs. When an event of the specified type occurs,
+ * the webhook URLs associated with that event type will be called instead of `webhook_url`.
+ * Events not mapped here will use the default `webhook_url`.
*/
class WebhookUrls
@JsonCreator
diff --git a/telnyx-core/src/main/kotlin/com/telnyx/sdk/models/calls/actions/ActionTransferParams.kt b/telnyx-core/src/main/kotlin/com/telnyx/sdk/models/calls/actions/ActionTransferParams.kt
index e1fb0bf11..4f48e31ea 100644
--- a/telnyx-core/src/main/kotlin/com/telnyx/sdk/models/calls/actions/ActionTransferParams.kt
+++ b/telnyx-core/src/main/kotlin/com/telnyx/sdk/models/calls/actions/ActionTransferParams.kt
@@ -423,9 +423,9 @@ private constructor(
fun webhookUrlMethod(): Optional = body.webhookUrlMethod()
/**
- * A map of event types to webhook URLs. When an event of the specified type occurs, the webhook
- * URL associated with that event type will be called instead of `webhook_url`. Events not
- * mapped here will use the default `webhook_url`.
+ * A map of event types to arrays of webhook URLs. When an event of the specified type occurs,
+ * the webhook URLs associated with that event type will be called instead of `webhook_url`.
+ * Events not mapped here will use the default `webhook_url`.
*
* @throws TelnyxInvalidDataException if the JSON field has an unexpected type (e.g. if the
* server responded with an unexpected value).
@@ -1470,9 +1470,9 @@ private constructor(
}
/**
- * A map of event types to webhook URLs. When an event of the specified type occurs, the
- * webhook URL associated with that event type will be called instead of `webhook_url`.
- * Events not mapped here will use the default `webhook_url`.
+ * A map of event types to arrays of webhook URLs. When an event of the specified type
+ * occurs, the webhook URLs associated with that event type will be called instead of
+ * `webhook_url`. Events not mapped here will use the default `webhook_url`.
*/
fun webhookUrls(webhookUrls: WebhookUrls) = apply { body.webhookUrls(webhookUrls) }
@@ -2244,9 +2244,9 @@ private constructor(
webhookUrlMethod.getOptional("webhook_url_method")
/**
- * A map of event types to webhook URLs. When an event of the specified type occurs, the
- * webhook URL associated with that event type will be called instead of `webhook_url`.
- * Events not mapped here will use the default `webhook_url`.
+ * A map of event types to arrays of webhook URLs. When an event of the specified type
+ * occurs, the webhook URLs associated with that event type will be called instead of
+ * `webhook_url`. Events not mapped here will use the default `webhook_url`.
*
* @throws TelnyxInvalidDataException if the JSON field has an unexpected type (e.g. if the
* server responded with an unexpected value).
@@ -3434,9 +3434,9 @@ private constructor(
}
/**
- * A map of event types to webhook URLs. When an event of the specified type occurs, the
- * webhook URL associated with that event type will be called instead of `webhook_url`.
- * Events not mapped here will use the default `webhook_url`.
+ * A map of event types to arrays of webhook URLs. When an event of the specified type
+ * occurs, the webhook URLs associated with that event type will be called instead of
+ * `webhook_url`. Events not mapped here will use the default `webhook_url`.
*/
fun webhookUrls(webhookUrls: WebhookUrls) = webhookUrls(JsonField.of(webhookUrls))
@@ -6242,9 +6242,9 @@ private constructor(
}
/**
- * A map of event types to webhook URLs. When an event of the specified type occurs, the webhook
- * URL associated with that event type will be called instead of `webhook_url`. Events not
- * mapped here will use the default `webhook_url`.
+ * A map of event types to arrays of webhook URLs. When an event of the specified type occurs,
+ * the webhook URLs associated with that event type will be called instead of `webhook_url`.
+ * Events not mapped here will use the default `webhook_url`.
*/
class WebhookUrls
@JsonCreator
diff --git a/telnyx-core/src/main/kotlin/com/telnyx/sdk/models/phonenumbers/voicemail/VoicemailCreateParams.kt b/telnyx-core/src/main/kotlin/com/telnyx/sdk/models/phonenumbers/voicemail/VoicemailCreateParams.kt
index 1a03735bf..eff7705f4 100644
--- a/telnyx-core/src/main/kotlin/com/telnyx/sdk/models/phonenumbers/voicemail/VoicemailCreateParams.kt
+++ b/telnyx-core/src/main/kotlin/com/telnyx/sdk/models/phonenumbers/voicemail/VoicemailCreateParams.kt
@@ -10,7 +10,12 @@ import java.util.Objects
import java.util.Optional
import kotlin.jvm.optionals.getOrNull
-/** Create voicemail settings for a phone number */
+/**
+ * Create voicemail settings for a phone number. You can also configure a custom greeting by setting
+ * the `greeting` object: use `mode` `custom_greeting` together with a `media_name` that points to
+ * an audio file uploaded through the Media Storage API, or `mode` `default` to use the standard
+ * system greeting.
+ */
class VoicemailCreateParams
private constructor(
private val phoneNumberId: String?,
diff --git a/telnyx-core/src/main/kotlin/com/telnyx/sdk/models/phonenumbers/voicemail/VoicemailPrefResponse.kt b/telnyx-core/src/main/kotlin/com/telnyx/sdk/models/phonenumbers/voicemail/VoicemailPrefResponse.kt
index b627dc30a..b83d37040 100644
--- a/telnyx-core/src/main/kotlin/com/telnyx/sdk/models/phonenumbers/voicemail/VoicemailPrefResponse.kt
+++ b/telnyx-core/src/main/kotlin/com/telnyx/sdk/models/phonenumbers/voicemail/VoicemailPrefResponse.kt
@@ -6,6 +6,7 @@ import com.fasterxml.jackson.annotation.JsonAnyGetter
import com.fasterxml.jackson.annotation.JsonAnySetter
import com.fasterxml.jackson.annotation.JsonCreator
import com.fasterxml.jackson.annotation.JsonProperty
+import com.telnyx.sdk.core.Enum
import com.telnyx.sdk.core.ExcludeMissing
import com.telnyx.sdk.core.JsonField
import com.telnyx.sdk.core.JsonMissing
@@ -14,11 +15,13 @@ import com.telnyx.sdk.errors.TelnyxInvalidDataException
import java.util.Collections
import java.util.Objects
import java.util.Optional
+import kotlin.jvm.optionals.getOrNull
class VoicemailPrefResponse
@JsonCreator(mode = JsonCreator.Mode.DISABLED)
private constructor(
private val enabled: JsonField,
+ private val greeting: JsonField,
private val pin: JsonField,
private val additionalProperties: MutableMap,
) {
@@ -26,8 +29,9 @@ private constructor(
@JsonCreator
private constructor(
@JsonProperty("enabled") @ExcludeMissing enabled: JsonField = JsonMissing.of(),
+ @JsonProperty("greeting") @ExcludeMissing greeting: JsonField = JsonMissing.of(),
@JsonProperty("pin") @ExcludeMissing pin: JsonField = JsonMissing.of(),
- ) : this(enabled, pin, mutableMapOf())
+ ) : this(enabled, greeting, pin, mutableMapOf())
/**
* Whether voicemail is enabled.
@@ -37,6 +41,17 @@ private constructor(
*/
fun enabled(): Optional = enabled.getOptional("enabled")
+ /**
+ * Controls the greeting a caller hears before leaving a voicemail. Set `mode` to `default` to
+ * play the standard system greeting, or to `custom_greeting` to play your own audio. When
+ * `mode` is `custom_greeting`, `media_name` is required and must reference an audio file
+ * already uploaded to your account through the Media Storage API.
+ *
+ * @throws TelnyxInvalidDataException if the JSON field has an unexpected type (e.g. if the
+ * server responded with an unexpected value).
+ */
+ fun greeting(): Optional = greeting.getOptional("greeting")
+
/**
* The pin used for the voicemail.
*
@@ -52,6 +67,13 @@ private constructor(
*/
@JsonProperty("enabled") @ExcludeMissing fun _enabled(): JsonField = enabled
+ /**
+ * Returns the raw JSON value of [greeting].
+ *
+ * Unlike [greeting], this method doesn't throw if the JSON field has an unexpected type.
+ */
+ @JsonProperty("greeting") @ExcludeMissing fun _greeting(): JsonField = greeting
+
/**
* Returns the raw JSON value of [pin].
*
@@ -81,12 +103,14 @@ private constructor(
class Builder internal constructor() {
private var enabled: JsonField = JsonMissing.of()
+ private var greeting: JsonField = JsonMissing.of()
private var pin: JsonField = JsonMissing.of()
private var additionalProperties: MutableMap = mutableMapOf()
@JvmSynthetic
internal fun from(voicemailPrefResponse: VoicemailPrefResponse) = apply {
enabled = voicemailPrefResponse.enabled
+ greeting = voicemailPrefResponse.greeting
pin = voicemailPrefResponse.pin
additionalProperties = voicemailPrefResponse.additionalProperties.toMutableMap()
}
@@ -102,6 +126,23 @@ private constructor(
*/
fun enabled(enabled: JsonField) = apply { this.enabled = enabled }
+ /**
+ * Controls the greeting a caller hears before leaving a voicemail. Set `mode` to `default`
+ * to play the standard system greeting, or to `custom_greeting` to play your own audio.
+ * When `mode` is `custom_greeting`, `media_name` is required and must reference an audio
+ * file already uploaded to your account through the Media Storage API.
+ */
+ fun greeting(greeting: Greeting) = greeting(JsonField.of(greeting))
+
+ /**
+ * Sets [Builder.greeting] to an arbitrary JSON value.
+ *
+ * You should usually call [Builder.greeting] with a well-typed [Greeting] value instead.
+ * This method is primarily for setting the field to an undocumented or not yet supported
+ * value.
+ */
+ fun greeting(greeting: JsonField) = apply { this.greeting = greeting }
+
/** The pin used for the voicemail. */
fun pin(pin: String) = pin(JsonField.of(pin))
@@ -138,7 +179,7 @@ private constructor(
* Further updates to this [Builder] will not mutate the returned instance.
*/
fun build(): VoicemailPrefResponse =
- VoicemailPrefResponse(enabled, pin, additionalProperties.toMutableMap())
+ VoicemailPrefResponse(enabled, greeting, pin, additionalProperties.toMutableMap())
}
private var validated: Boolean = false
@@ -157,6 +198,7 @@ private constructor(
}
enabled()
+ greeting().ifPresent { it.validate() }
pin()
validated = true
}
@@ -176,7 +218,359 @@ private constructor(
*/
@JvmSynthetic
internal fun validity(): Int =
- (if (enabled.asKnown().isPresent) 1 else 0) + (if (pin.asKnown().isPresent) 1 else 0)
+ (if (enabled.asKnown().isPresent) 1 else 0) +
+ (greeting.asKnown().getOrNull()?.validity() ?: 0) +
+ (if (pin.asKnown().isPresent) 1 else 0)
+
+ /**
+ * Controls the greeting a caller hears before leaving a voicemail. Set `mode` to `default` to
+ * play the standard system greeting, or to `custom_greeting` to play your own audio. When
+ * `mode` is `custom_greeting`, `media_name` is required and must reference an audio file
+ * already uploaded to your account through the Media Storage API.
+ */
+ class Greeting
+ @JsonCreator(mode = JsonCreator.Mode.DISABLED)
+ private constructor(
+ private val mediaName: JsonField,
+ private val mode: JsonField,
+ private val additionalProperties: MutableMap,
+ ) {
+
+ @JsonCreator
+ private constructor(
+ @JsonProperty("media_name")
+ @ExcludeMissing
+ mediaName: JsonField = JsonMissing.of(),
+ @JsonProperty("mode") @ExcludeMissing mode: JsonField = JsonMissing.of(),
+ ) : this(mediaName, mode, mutableMapOf())
+
+ /**
+ * The name of the media file to play as the greeting. Required when `mode` is
+ * `custom_greeting`; ignored when `mode` is `default`. The value must match the
+ * `media_name` of a file you previously uploaded with the Media Storage API (`POST
+ * /v2/media`).
+ *
+ * @throws TelnyxInvalidDataException if the JSON field has an unexpected type (e.g. if the
+ * server responded with an unexpected value).
+ */
+ fun mediaName(): Optional = mediaName.getOptional("media_name")
+
+ /**
+ * The greeting mode. `default` plays the standard system greeting. `custom_greeting` plays
+ * the audio referenced by `media_name`.
+ *
+ * @throws TelnyxInvalidDataException if the JSON field has an unexpected type (e.g. if the
+ * server responded with an unexpected value).
+ */
+ fun mode(): Optional = mode.getOptional("mode")
+
+ /**
+ * Returns the raw JSON value of [mediaName].
+ *
+ * Unlike [mediaName], this method doesn't throw if the JSON field has an unexpected type.
+ */
+ @JsonProperty("media_name") @ExcludeMissing fun _mediaName(): JsonField = mediaName
+
+ /**
+ * Returns the raw JSON value of [mode].
+ *
+ * Unlike [mode], this method doesn't throw if the JSON field has an unexpected type.
+ */
+ @JsonProperty("mode") @ExcludeMissing fun _mode(): JsonField = mode
+
+ @JsonAnySetter
+ private fun putAdditionalProperty(key: String, value: JsonValue) {
+ additionalProperties.put(key, value)
+ }
+
+ @JsonAnyGetter
+ @ExcludeMissing
+ fun _additionalProperties(): Map =
+ Collections.unmodifiableMap(additionalProperties)
+
+ fun toBuilder() = Builder().from(this)
+
+ companion object {
+
+ /** Returns a mutable builder for constructing an instance of [Greeting]. */
+ @JvmStatic fun builder() = Builder()
+ }
+
+ /** A builder for [Greeting]. */
+ class Builder internal constructor() {
+
+ private var mediaName: JsonField = JsonMissing.of()
+ private var mode: JsonField = JsonMissing.of()
+ private var additionalProperties: MutableMap = mutableMapOf()
+
+ @JvmSynthetic
+ internal fun from(greeting: Greeting) = apply {
+ mediaName = greeting.mediaName
+ mode = greeting.mode
+ additionalProperties = greeting.additionalProperties.toMutableMap()
+ }
+
+ /**
+ * The name of the media file to play as the greeting. Required when `mode` is
+ * `custom_greeting`; ignored when `mode` is `default`. The value must match the
+ * `media_name` of a file you previously uploaded with the Media Storage API (`POST
+ * /v2/media`).
+ */
+ fun mediaName(mediaName: String?) = mediaName(JsonField.ofNullable(mediaName))
+
+ /** Alias for calling [Builder.mediaName] with `mediaName.orElse(null)`. */
+ fun mediaName(mediaName: Optional) = mediaName(mediaName.getOrNull())
+
+ /**
+ * Sets [Builder.mediaName] to an arbitrary JSON value.
+ *
+ * You should usually call [Builder.mediaName] with a well-typed [String] value instead.
+ * This method is primarily for setting the field to an undocumented or not yet
+ * supported value.
+ */
+ fun mediaName(mediaName: JsonField) = apply { this.mediaName = mediaName }
+
+ /**
+ * The greeting mode. `default` plays the standard system greeting. `custom_greeting`
+ * plays the audio referenced by `media_name`.
+ */
+ fun mode(mode: Mode) = mode(JsonField.of(mode))
+
+ /**
+ * Sets [Builder.mode] to an arbitrary JSON value.
+ *
+ * You should usually call [Builder.mode] with a well-typed [Mode] value instead. This
+ * method is primarily for setting the field to an undocumented or not yet supported
+ * value.
+ */
+ fun mode(mode: JsonField) = apply { this.mode = mode }
+
+ fun additionalProperties(additionalProperties: Map) = apply {
+ this.additionalProperties.clear()
+ putAllAdditionalProperties(additionalProperties)
+ }
+
+ fun putAdditionalProperty(key: String, value: JsonValue) = apply {
+ additionalProperties.put(key, value)
+ }
+
+ fun putAllAdditionalProperties(additionalProperties: Map) = apply {
+ this.additionalProperties.putAll(additionalProperties)
+ }
+
+ fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) }
+
+ fun removeAllAdditionalProperties(keys: Set) = apply {
+ keys.forEach(::removeAdditionalProperty)
+ }
+
+ /**
+ * Returns an immutable instance of [Greeting].
+ *
+ * Further updates to this [Builder] will not mutate the returned instance.
+ */
+ fun build(): Greeting = Greeting(mediaName, mode, additionalProperties.toMutableMap())
+ }
+
+ private var validated: Boolean = false
+
+ /**
+ * Validates that the types of all values in this object match their expected types
+ * recursively.
+ *
+ * This method is _not_ forwards compatible with new types from the API for existing fields.
+ *
+ * @throws TelnyxInvalidDataException if any value type in this object doesn't match its
+ * expected type.
+ */
+ fun validate(): Greeting = apply {
+ if (validated) {
+ return@apply
+ }
+
+ mediaName()
+ mode().ifPresent { it.validate() }
+ validated = true
+ }
+
+ fun isValid(): Boolean =
+ try {
+ validate()
+ true
+ } catch (e: TelnyxInvalidDataException) {
+ false
+ }
+
+ /**
+ * Returns a score indicating how many valid values are contained in this object
+ * recursively.
+ *
+ * Used for best match union deserialization.
+ */
+ @JvmSynthetic
+ internal fun validity(): Int =
+ (if (mediaName.asKnown().isPresent) 1 else 0) +
+ (mode.asKnown().getOrNull()?.validity() ?: 0)
+
+ /**
+ * The greeting mode. `default` plays the standard system greeting. `custom_greeting` plays
+ * the audio referenced by `media_name`.
+ */
+ class Mode @JsonCreator private constructor(private val value: JsonField) : Enum {
+
+ /**
+ * Returns this class instance's raw value.
+ *
+ * This is usually only useful if this instance was deserialized from data that doesn't
+ * match any known member, and you want to know that value. For example, if the SDK is
+ * on an older version than the API, then the API may respond with new members that the
+ * SDK is unaware of.
+ */
+ @com.fasterxml.jackson.annotation.JsonValue fun _value(): JsonField = value
+
+ companion object {
+
+ @JvmField val DEFAULT = of("default")
+
+ @JvmField val CUSTOM_GREETING = of("custom_greeting")
+
+ @JvmStatic fun of(value: String) = Mode(JsonField.of(value))
+ }
+
+ /** An enum containing [Mode]'s known values. */
+ enum class Known {
+ DEFAULT,
+ CUSTOM_GREETING,
+ }
+
+ /**
+ * An enum containing [Mode]'s known values, as well as an [_UNKNOWN] member.
+ *
+ * An instance of [Mode] can contain an unknown value in a couple of cases:
+ * - It was deserialized from data that doesn't match any known member. For example, if
+ * the SDK is on an older version than the API, then the API may respond with new
+ * members that the SDK is unaware of.
+ * - It was constructed with an arbitrary value using the [of] method.
+ */
+ enum class Value {
+ DEFAULT,
+ CUSTOM_GREETING,
+ /** An enum member indicating that [Mode] was instantiated with an unknown value. */
+ _UNKNOWN,
+ }
+
+ /**
+ * Returns an enum member corresponding to this class instance's value, or
+ * [Value._UNKNOWN] if the class was instantiated with an unknown value.
+ *
+ * Use the [known] method instead if you're certain the value is always known or if you
+ * want to throw for the unknown case.
+ */
+ fun value(): Value =
+ when (this) {
+ DEFAULT -> Value.DEFAULT
+ CUSTOM_GREETING -> Value.CUSTOM_GREETING
+ else -> Value._UNKNOWN
+ }
+
+ /**
+ * Returns an enum member corresponding to this class instance's value.
+ *
+ * Use the [value] method instead if you're uncertain the value is always known and
+ * don't want to throw for the unknown case.
+ *
+ * @throws TelnyxInvalidDataException if this class instance's value is a not a known
+ * member.
+ */
+ fun known(): Known =
+ when (this) {
+ DEFAULT -> Known.DEFAULT
+ CUSTOM_GREETING -> Known.CUSTOM_GREETING
+ else -> throw TelnyxInvalidDataException("Unknown Mode: $value")
+ }
+
+ /**
+ * Returns this class instance's primitive wire representation.
+ *
+ * This differs from the [toString] method because that method is primarily for
+ * debugging and generally doesn't throw.
+ *
+ * @throws TelnyxInvalidDataException if this class instance's value does not have the
+ * expected primitive type.
+ */
+ fun asString(): String =
+ _value().asString().orElseThrow {
+ TelnyxInvalidDataException("Value is not a String")
+ }
+
+ private var validated: Boolean = false
+
+ /**
+ * Validates that the types of all values in this object match their expected types
+ * recursively.
+ *
+ * This method is _not_ forwards compatible with new types from the API for existing
+ * fields.
+ *
+ * @throws TelnyxInvalidDataException if any value type in this object doesn't match its
+ * expected type.
+ */
+ fun validate(): Mode = apply {
+ if (validated) {
+ return@apply
+ }
+
+ known()
+ validated = true
+ }
+
+ fun isValid(): Boolean =
+ try {
+ validate()
+ true
+ } catch (e: TelnyxInvalidDataException) {
+ false
+ }
+
+ /**
+ * Returns a score indicating how many valid values are contained in this object
+ * recursively.
+ *
+ * Used for best match union deserialization.
+ */
+ @JvmSynthetic internal fun validity(): Int = if (value() == Value._UNKNOWN) 0 else 1
+
+ override fun equals(other: Any?): Boolean {
+ if (this === other) {
+ return true
+ }
+
+ return other is Mode && value == other.value
+ }
+
+ override fun hashCode() = value.hashCode()
+
+ override fun toString() = value.toString()
+ }
+
+ override fun equals(other: Any?): Boolean {
+ if (this === other) {
+ return true
+ }
+
+ return other is Greeting &&
+ mediaName == other.mediaName &&
+ mode == other.mode &&
+ additionalProperties == other.additionalProperties
+ }
+
+ private val hashCode: Int by lazy { Objects.hash(mediaName, mode, additionalProperties) }
+
+ override fun hashCode(): Int = hashCode
+
+ override fun toString() =
+ "Greeting{mediaName=$mediaName, mode=$mode, additionalProperties=$additionalProperties}"
+ }
override fun equals(other: Any?): Boolean {
if (this === other) {
@@ -185,14 +579,15 @@ private constructor(
return other is VoicemailPrefResponse &&
enabled == other.enabled &&
+ greeting == other.greeting &&
pin == other.pin &&
additionalProperties == other.additionalProperties
}
- private val hashCode: Int by lazy { Objects.hash(enabled, pin, additionalProperties) }
+ private val hashCode: Int by lazy { Objects.hash(enabled, greeting, pin, additionalProperties) }
override fun hashCode(): Int = hashCode
override fun toString() =
- "VoicemailPrefResponse{enabled=$enabled, pin=$pin, additionalProperties=$additionalProperties}"
+ "VoicemailPrefResponse{enabled=$enabled, greeting=$greeting, pin=$pin, additionalProperties=$additionalProperties}"
}
diff --git a/telnyx-core/src/main/kotlin/com/telnyx/sdk/models/phonenumbers/voicemail/VoicemailRequest.kt b/telnyx-core/src/main/kotlin/com/telnyx/sdk/models/phonenumbers/voicemail/VoicemailRequest.kt
index 5cc5693e2..da0629e25 100644
--- a/telnyx-core/src/main/kotlin/com/telnyx/sdk/models/phonenumbers/voicemail/VoicemailRequest.kt
+++ b/telnyx-core/src/main/kotlin/com/telnyx/sdk/models/phonenumbers/voicemail/VoicemailRequest.kt
@@ -6,6 +6,7 @@ import com.fasterxml.jackson.annotation.JsonAnyGetter
import com.fasterxml.jackson.annotation.JsonAnySetter
import com.fasterxml.jackson.annotation.JsonCreator
import com.fasterxml.jackson.annotation.JsonProperty
+import com.telnyx.sdk.core.Enum
import com.telnyx.sdk.core.ExcludeMissing
import com.telnyx.sdk.core.JsonField
import com.telnyx.sdk.core.JsonMissing
@@ -14,11 +15,13 @@ import com.telnyx.sdk.errors.TelnyxInvalidDataException
import java.util.Collections
import java.util.Objects
import java.util.Optional
+import kotlin.jvm.optionals.getOrNull
class VoicemailRequest
@JsonCreator(mode = JsonCreator.Mode.DISABLED)
private constructor(
private val enabled: JsonField,
+ private val greeting: JsonField,
private val pin: JsonField,
private val additionalProperties: MutableMap,
) {
@@ -26,8 +29,9 @@ private constructor(
@JsonCreator
private constructor(
@JsonProperty("enabled") @ExcludeMissing enabled: JsonField = JsonMissing.of(),
+ @JsonProperty("greeting") @ExcludeMissing greeting: JsonField = JsonMissing.of(),
@JsonProperty("pin") @ExcludeMissing pin: JsonField = JsonMissing.of(),
- ) : this(enabled, pin, mutableMapOf())
+ ) : this(enabled, greeting, pin, mutableMapOf())
/**
* Whether voicemail is enabled.
@@ -37,6 +41,17 @@ private constructor(
*/
fun enabled(): Optional = enabled.getOptional("enabled")
+ /**
+ * Controls the greeting a caller hears before leaving a voicemail. Set `mode` to `default` to
+ * play the standard system greeting, or to `custom_greeting` to play your own audio. When
+ * `mode` is `custom_greeting`, `media_name` is required and must reference an audio file
+ * already uploaded to your account through the Media Storage API.
+ *
+ * @throws TelnyxInvalidDataException if the JSON field has an unexpected type (e.g. if the
+ * server responded with an unexpected value).
+ */
+ fun greeting(): Optional = greeting.getOptional("greeting")
+
/**
* The pin used for voicemail
*
@@ -52,6 +67,13 @@ private constructor(
*/
@JsonProperty("enabled") @ExcludeMissing fun _enabled(): JsonField = enabled
+ /**
+ * Returns the raw JSON value of [greeting].
+ *
+ * Unlike [greeting], this method doesn't throw if the JSON field has an unexpected type.
+ */
+ @JsonProperty("greeting") @ExcludeMissing fun _greeting(): JsonField = greeting
+
/**
* Returns the raw JSON value of [pin].
*
@@ -81,12 +103,14 @@ private constructor(
class Builder internal constructor() {
private var enabled: JsonField = JsonMissing.of()
+ private var greeting: JsonField = JsonMissing.of()
private var pin: JsonField = JsonMissing.of()
private var additionalProperties: MutableMap = mutableMapOf()
@JvmSynthetic
internal fun from(voicemailRequest: VoicemailRequest) = apply {
enabled = voicemailRequest.enabled
+ greeting = voicemailRequest.greeting
pin = voicemailRequest.pin
additionalProperties = voicemailRequest.additionalProperties.toMutableMap()
}
@@ -102,6 +126,23 @@ private constructor(
*/
fun enabled(enabled: JsonField) = apply { this.enabled = enabled }
+ /**
+ * Controls the greeting a caller hears before leaving a voicemail. Set `mode` to `default`
+ * to play the standard system greeting, or to `custom_greeting` to play your own audio.
+ * When `mode` is `custom_greeting`, `media_name` is required and must reference an audio
+ * file already uploaded to your account through the Media Storage API.
+ */
+ fun greeting(greeting: Greeting) = greeting(JsonField.of(greeting))
+
+ /**
+ * Sets [Builder.greeting] to an arbitrary JSON value.
+ *
+ * You should usually call [Builder.greeting] with a well-typed [Greeting] value instead.
+ * This method is primarily for setting the field to an undocumented or not yet supported
+ * value.
+ */
+ fun greeting(greeting: JsonField) = apply { this.greeting = greeting }
+
/** The pin used for voicemail */
fun pin(pin: String) = pin(JsonField.of(pin))
@@ -138,7 +179,7 @@ private constructor(
* Further updates to this [Builder] will not mutate the returned instance.
*/
fun build(): VoicemailRequest =
- VoicemailRequest(enabled, pin, additionalProperties.toMutableMap())
+ VoicemailRequest(enabled, greeting, pin, additionalProperties.toMutableMap())
}
private var validated: Boolean = false
@@ -157,6 +198,7 @@ private constructor(
}
enabled()
+ greeting().ifPresent { it.validate() }
pin()
validated = true
}
@@ -176,7 +218,359 @@ private constructor(
*/
@JvmSynthetic
internal fun validity(): Int =
- (if (enabled.asKnown().isPresent) 1 else 0) + (if (pin.asKnown().isPresent) 1 else 0)
+ (if (enabled.asKnown().isPresent) 1 else 0) +
+ (greeting.asKnown().getOrNull()?.validity() ?: 0) +
+ (if (pin.asKnown().isPresent) 1 else 0)
+
+ /**
+ * Controls the greeting a caller hears before leaving a voicemail. Set `mode` to `default` to
+ * play the standard system greeting, or to `custom_greeting` to play your own audio. When
+ * `mode` is `custom_greeting`, `media_name` is required and must reference an audio file
+ * already uploaded to your account through the Media Storage API.
+ */
+ class Greeting
+ @JsonCreator(mode = JsonCreator.Mode.DISABLED)
+ private constructor(
+ private val mediaName: JsonField,
+ private val mode: JsonField,
+ private val additionalProperties: MutableMap,
+ ) {
+
+ @JsonCreator
+ private constructor(
+ @JsonProperty("media_name")
+ @ExcludeMissing
+ mediaName: JsonField = JsonMissing.of(),
+ @JsonProperty("mode") @ExcludeMissing mode: JsonField = JsonMissing.of(),
+ ) : this(mediaName, mode, mutableMapOf())
+
+ /**
+ * The name of the media file to play as the greeting. Required when `mode` is
+ * `custom_greeting`; ignored when `mode` is `default`. The value must match the
+ * `media_name` of a file you previously uploaded with the Media Storage API (`POST
+ * /v2/media`).
+ *
+ * @throws TelnyxInvalidDataException if the JSON field has an unexpected type (e.g. if the
+ * server responded with an unexpected value).
+ */
+ fun mediaName(): Optional = mediaName.getOptional("media_name")
+
+ /**
+ * The greeting mode. `default` plays the standard system greeting. `custom_greeting` plays
+ * the audio referenced by `media_name`.
+ *
+ * @throws TelnyxInvalidDataException if the JSON field has an unexpected type (e.g. if the
+ * server responded with an unexpected value).
+ */
+ fun mode(): Optional = mode.getOptional("mode")
+
+ /**
+ * Returns the raw JSON value of [mediaName].
+ *
+ * Unlike [mediaName], this method doesn't throw if the JSON field has an unexpected type.
+ */
+ @JsonProperty("media_name") @ExcludeMissing fun _mediaName(): JsonField = mediaName
+
+ /**
+ * Returns the raw JSON value of [mode].
+ *
+ * Unlike [mode], this method doesn't throw if the JSON field has an unexpected type.
+ */
+ @JsonProperty("mode") @ExcludeMissing fun _mode(): JsonField = mode
+
+ @JsonAnySetter
+ private fun putAdditionalProperty(key: String, value: JsonValue) {
+ additionalProperties.put(key, value)
+ }
+
+ @JsonAnyGetter
+ @ExcludeMissing
+ fun _additionalProperties(): Map =
+ Collections.unmodifiableMap(additionalProperties)
+
+ fun toBuilder() = Builder().from(this)
+
+ companion object {
+
+ /** Returns a mutable builder for constructing an instance of [Greeting]. */
+ @JvmStatic fun builder() = Builder()
+ }
+
+ /** A builder for [Greeting]. */
+ class Builder internal constructor() {
+
+ private var mediaName: JsonField = JsonMissing.of()
+ private var mode: JsonField = JsonMissing.of()
+ private var additionalProperties: MutableMap = mutableMapOf()
+
+ @JvmSynthetic
+ internal fun from(greeting: Greeting) = apply {
+ mediaName = greeting.mediaName
+ mode = greeting.mode
+ additionalProperties = greeting.additionalProperties.toMutableMap()
+ }
+
+ /**
+ * The name of the media file to play as the greeting. Required when `mode` is
+ * `custom_greeting`; ignored when `mode` is `default`. The value must match the
+ * `media_name` of a file you previously uploaded with the Media Storage API (`POST
+ * /v2/media`).
+ */
+ fun mediaName(mediaName: String?) = mediaName(JsonField.ofNullable(mediaName))
+
+ /** Alias for calling [Builder.mediaName] with `mediaName.orElse(null)`. */
+ fun mediaName(mediaName: Optional) = mediaName(mediaName.getOrNull())
+
+ /**
+ * Sets [Builder.mediaName] to an arbitrary JSON value.
+ *
+ * You should usually call [Builder.mediaName] with a well-typed [String] value instead.
+ * This method is primarily for setting the field to an undocumented or not yet
+ * supported value.
+ */
+ fun mediaName(mediaName: JsonField) = apply { this.mediaName = mediaName }
+
+ /**
+ * The greeting mode. `default` plays the standard system greeting. `custom_greeting`
+ * plays the audio referenced by `media_name`.
+ */
+ fun mode(mode: Mode) = mode(JsonField.of(mode))
+
+ /**
+ * Sets [Builder.mode] to an arbitrary JSON value.
+ *
+ * You should usually call [Builder.mode] with a well-typed [Mode] value instead. This
+ * method is primarily for setting the field to an undocumented or not yet supported
+ * value.
+ */
+ fun mode(mode: JsonField) = apply { this.mode = mode }
+
+ fun additionalProperties(additionalProperties: Map) = apply {
+ this.additionalProperties.clear()
+ putAllAdditionalProperties(additionalProperties)
+ }
+
+ fun putAdditionalProperty(key: String, value: JsonValue) = apply {
+ additionalProperties.put(key, value)
+ }
+
+ fun putAllAdditionalProperties(additionalProperties: Map) = apply {
+ this.additionalProperties.putAll(additionalProperties)
+ }
+
+ fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) }
+
+ fun removeAllAdditionalProperties(keys: Set) = apply {
+ keys.forEach(::removeAdditionalProperty)
+ }
+
+ /**
+ * Returns an immutable instance of [Greeting].
+ *
+ * Further updates to this [Builder] will not mutate the returned instance.
+ */
+ fun build(): Greeting = Greeting(mediaName, mode, additionalProperties.toMutableMap())
+ }
+
+ private var validated: Boolean = false
+
+ /**
+ * Validates that the types of all values in this object match their expected types
+ * recursively.
+ *
+ * This method is _not_ forwards compatible with new types from the API for existing fields.
+ *
+ * @throws TelnyxInvalidDataException if any value type in this object doesn't match its
+ * expected type.
+ */
+ fun validate(): Greeting = apply {
+ if (validated) {
+ return@apply
+ }
+
+ mediaName()
+ mode().ifPresent { it.validate() }
+ validated = true
+ }
+
+ fun isValid(): Boolean =
+ try {
+ validate()
+ true
+ } catch (e: TelnyxInvalidDataException) {
+ false
+ }
+
+ /**
+ * Returns a score indicating how many valid values are contained in this object
+ * recursively.
+ *
+ * Used for best match union deserialization.
+ */
+ @JvmSynthetic
+ internal fun validity(): Int =
+ (if (mediaName.asKnown().isPresent) 1 else 0) +
+ (mode.asKnown().getOrNull()?.validity() ?: 0)
+
+ /**
+ * The greeting mode. `default` plays the standard system greeting. `custom_greeting` plays
+ * the audio referenced by `media_name`.
+ */
+ class Mode @JsonCreator private constructor(private val value: JsonField) : Enum {
+
+ /**
+ * Returns this class instance's raw value.
+ *
+ * This is usually only useful if this instance was deserialized from data that doesn't
+ * match any known member, and you want to know that value. For example, if the SDK is
+ * on an older version than the API, then the API may respond with new members that the
+ * SDK is unaware of.
+ */
+ @com.fasterxml.jackson.annotation.JsonValue fun _value(): JsonField = value
+
+ companion object {
+
+ @JvmField val DEFAULT = of("default")
+
+ @JvmField val CUSTOM_GREETING = of("custom_greeting")
+
+ @JvmStatic fun of(value: String) = Mode(JsonField.of(value))
+ }
+
+ /** An enum containing [Mode]'s known values. */
+ enum class Known {
+ DEFAULT,
+ CUSTOM_GREETING,
+ }
+
+ /**
+ * An enum containing [Mode]'s known values, as well as an [_UNKNOWN] member.
+ *
+ * An instance of [Mode] can contain an unknown value in a couple of cases:
+ * - It was deserialized from data that doesn't match any known member. For example, if
+ * the SDK is on an older version than the API, then the API may respond with new
+ * members that the SDK is unaware of.
+ * - It was constructed with an arbitrary value using the [of] method.
+ */
+ enum class Value {
+ DEFAULT,
+ CUSTOM_GREETING,
+ /** An enum member indicating that [Mode] was instantiated with an unknown value. */
+ _UNKNOWN,
+ }
+
+ /**
+ * Returns an enum member corresponding to this class instance's value, or
+ * [Value._UNKNOWN] if the class was instantiated with an unknown value.
+ *
+ * Use the [known] method instead if you're certain the value is always known or if you
+ * want to throw for the unknown case.
+ */
+ fun value(): Value =
+ when (this) {
+ DEFAULT -> Value.DEFAULT
+ CUSTOM_GREETING -> Value.CUSTOM_GREETING
+ else -> Value._UNKNOWN
+ }
+
+ /**
+ * Returns an enum member corresponding to this class instance's value.
+ *
+ * Use the [value] method instead if you're uncertain the value is always known and
+ * don't want to throw for the unknown case.
+ *
+ * @throws TelnyxInvalidDataException if this class instance's value is a not a known
+ * member.
+ */
+ fun known(): Known =
+ when (this) {
+ DEFAULT -> Known.DEFAULT
+ CUSTOM_GREETING -> Known.CUSTOM_GREETING
+ else -> throw TelnyxInvalidDataException("Unknown Mode: $value")
+ }
+
+ /**
+ * Returns this class instance's primitive wire representation.
+ *
+ * This differs from the [toString] method because that method is primarily for
+ * debugging and generally doesn't throw.
+ *
+ * @throws TelnyxInvalidDataException if this class instance's value does not have the
+ * expected primitive type.
+ */
+ fun asString(): String =
+ _value().asString().orElseThrow {
+ TelnyxInvalidDataException("Value is not a String")
+ }
+
+ private var validated: Boolean = false
+
+ /**
+ * Validates that the types of all values in this object match their expected types
+ * recursively.
+ *
+ * This method is _not_ forwards compatible with new types from the API for existing
+ * fields.
+ *
+ * @throws TelnyxInvalidDataException if any value type in this object doesn't match its
+ * expected type.
+ */
+ fun validate(): Mode = apply {
+ if (validated) {
+ return@apply
+ }
+
+ known()
+ validated = true
+ }
+
+ fun isValid(): Boolean =
+ try {
+ validate()
+ true
+ } catch (e: TelnyxInvalidDataException) {
+ false
+ }
+
+ /**
+ * Returns a score indicating how many valid values are contained in this object
+ * recursively.
+ *
+ * Used for best match union deserialization.
+ */
+ @JvmSynthetic internal fun validity(): Int = if (value() == Value._UNKNOWN) 0 else 1
+
+ override fun equals(other: Any?): Boolean {
+ if (this === other) {
+ return true
+ }
+
+ return other is Mode && value == other.value
+ }
+
+ override fun hashCode() = value.hashCode()
+
+ override fun toString() = value.toString()
+ }
+
+ override fun equals(other: Any?): Boolean {
+ if (this === other) {
+ return true
+ }
+
+ return other is Greeting &&
+ mediaName == other.mediaName &&
+ mode == other.mode &&
+ additionalProperties == other.additionalProperties
+ }
+
+ private val hashCode: Int by lazy { Objects.hash(mediaName, mode, additionalProperties) }
+
+ override fun hashCode(): Int = hashCode
+
+ override fun toString() =
+ "Greeting{mediaName=$mediaName, mode=$mode, additionalProperties=$additionalProperties}"
+ }
override fun equals(other: Any?): Boolean {
if (this === other) {
@@ -185,14 +579,15 @@ private constructor(
return other is VoicemailRequest &&
enabled == other.enabled &&
+ greeting == other.greeting &&
pin == other.pin &&
additionalProperties == other.additionalProperties
}
- private val hashCode: Int by lazy { Objects.hash(enabled, pin, additionalProperties) }
+ private val hashCode: Int by lazy { Objects.hash(enabled, greeting, pin, additionalProperties) }
override fun hashCode(): Int = hashCode
override fun toString() =
- "VoicemailRequest{enabled=$enabled, pin=$pin, additionalProperties=$additionalProperties}"
+ "VoicemailRequest{enabled=$enabled, greeting=$greeting, pin=$pin, additionalProperties=$additionalProperties}"
}
diff --git a/telnyx-core/src/main/kotlin/com/telnyx/sdk/models/phonenumbers/voicemail/VoicemailUpdateParams.kt b/telnyx-core/src/main/kotlin/com/telnyx/sdk/models/phonenumbers/voicemail/VoicemailUpdateParams.kt
index 110121556..43fb4c1f2 100644
--- a/telnyx-core/src/main/kotlin/com/telnyx/sdk/models/phonenumbers/voicemail/VoicemailUpdateParams.kt
+++ b/telnyx-core/src/main/kotlin/com/telnyx/sdk/models/phonenumbers/voicemail/VoicemailUpdateParams.kt
@@ -10,7 +10,12 @@ import java.util.Objects
import java.util.Optional
import kotlin.jvm.optionals.getOrNull
-/** Update voicemail settings for a phone number */
+/**
+ * Update voicemail settings for a phone number. You can also configure a custom greeting by setting
+ * the `greeting` object: use `mode` `custom_greeting` together with a `media_name` that points to
+ * an audio file uploaded through the Media Storage API, or `mode` `default` to use the standard
+ * system greeting.
+ */
class VoicemailUpdateParams
private constructor(
private val phoneNumberId: String?,
diff --git a/telnyx-core/src/main/kotlin/com/telnyx/sdk/models/privatewirelessgateways/PrivateWirelessGatewayStatus.kt b/telnyx-core/src/main/kotlin/com/telnyx/sdk/models/privatewirelessgateways/PrivateWirelessGatewayStatus.kt
index 58ed6f9a0..55cfece84 100644
--- a/telnyx-core/src/main/kotlin/com/telnyx/sdk/models/privatewirelessgateways/PrivateWirelessGatewayStatus.kt
+++ b/telnyx-core/src/main/kotlin/com/telnyx/sdk/models/privatewirelessgateways/PrivateWirelessGatewayStatus.kt
@@ -40,8 +40,8 @@ private constructor(
/**
* This attribute is an
- * [error code](https://developers.telnyx.com/development/api-fundamentals/api-errors) related
- * to the failure reason.
+ * [error code](https://developers.telnyx.com/docs/development/api-fundamentals/api-errors)
+ * related to the failure reason.
*
* @throws TelnyxInvalidDataException if the JSON field has an unexpected type (e.g. if the
* server responded with an unexpected value).
@@ -136,7 +136,7 @@ private constructor(
/**
* This attribute is an
- * [error code](https://developers.telnyx.com/development/api-fundamentals/api-errors)
+ * [error code](https://developers.telnyx.com/docs/development/api-fundamentals/api-errors)
* related to the failure reason.
*/
fun errorCode(errorCode: String?) = errorCode(JsonField.ofNullable(errorCode))
diff --git a/telnyx-core/src/main/kotlin/com/telnyx/sdk/models/simcards/actions/ActionBulkEnableVoiceParams.kt b/telnyx-core/src/main/kotlin/com/telnyx/sdk/models/simcards/actions/ActionBulkEnableVoiceParams.kt
index c801e8fd4..cba362d01 100644
--- a/telnyx-core/src/main/kotlin/com/telnyx/sdk/models/simcards/actions/ActionBulkEnableVoiceParams.kt
+++ b/telnyx-core/src/main/kotlin/com/telnyx/sdk/models/simcards/actions/ActionBulkEnableVoiceParams.kt
@@ -16,6 +16,7 @@ import com.telnyx.sdk.core.http.QueryParams
import com.telnyx.sdk.errors.TelnyxInvalidDataException
import java.util.Collections
import java.util.Objects
+import java.util.Optional
/**
* This API triggers an asynchronous operation to enable voice on SIM cards belonging to a specified
@@ -41,6 +42,16 @@ private constructor(
*/
fun simCardGroupId(): String = body.simCardGroupId()
+ /**
+ * The identifier of the Mobile Voice Connection to associate with the SIM cards. The connection
+ * must be owned by the same user and of type mobile_voice. If omitted, voice is
+ * enabled without a connection association.
+ *
+ * @throws TelnyxInvalidDataException if the JSON field has an unexpected type (e.g. if the
+ * server responded with an unexpected value).
+ */
+ fun connectionId(): Optional = body.connectionId()
+
/**
* Returns the raw JSON value of [simCardGroupId].
*
@@ -48,6 +59,13 @@ private constructor(
*/
fun _simCardGroupId(): JsonField = body._simCardGroupId()
+ /**
+ * Returns the raw JSON value of [connectionId].
+ *
+ * Unlike [connectionId], this method doesn't throw if the JSON field has an unexpected type.
+ */
+ fun _connectionId(): JsonField = body._connectionId()
+
fun _additionalBodyProperties(): Map = body._additionalProperties()
/** Additional headers to send with the request. */
@@ -92,6 +110,7 @@ private constructor(
* This is generally only useful if you are already constructing the body separately.
* Otherwise, it's more convenient to use the top-level setters instead:
* - [simCardGroupId]
+ * - [connectionId]
*/
fun body(body: Body) = apply { this.body = body.toBuilder() }
@@ -108,6 +127,24 @@ private constructor(
body.simCardGroupId(simCardGroupId)
}
+ /**
+ * The identifier of the Mobile Voice Connection to associate with the SIM cards. The
+ * connection must be owned by the same user and of type mobile_voice. If
+ * omitted, voice is enabled without a connection association.
+ */
+ fun connectionId(connectionId: String) = apply { body.connectionId(connectionId) }
+
+ /**
+ * Sets [Builder.connectionId] to an arbitrary JSON value.
+ *
+ * You should usually call [Builder.connectionId] with a well-typed [String] value instead.
+ * This method is primarily for setting the field to an undocumented or not yet supported
+ * value.
+ */
+ fun connectionId(connectionId: JsonField) = apply {
+ body.connectionId(connectionId)
+ }
+
fun additionalBodyProperties(additionalBodyProperties: Map) = apply {
body.additionalProperties(additionalBodyProperties)
}
@@ -256,6 +293,7 @@ private constructor(
@JsonCreator(mode = JsonCreator.Mode.DISABLED)
private constructor(
private val simCardGroupId: JsonField,
+ private val connectionId: JsonField,
private val additionalProperties: MutableMap,
) {
@@ -263,8 +301,11 @@ private constructor(
private constructor(
@JsonProperty("sim_card_group_id")
@ExcludeMissing
- simCardGroupId: JsonField = JsonMissing.of()
- ) : this(simCardGroupId, mutableMapOf())
+ simCardGroupId: JsonField = JsonMissing.of(),
+ @JsonProperty("connection_id")
+ @ExcludeMissing
+ connectionId: JsonField = JsonMissing.of(),
+ ) : this(simCardGroupId, connectionId, mutableMapOf())
/**
* @throws TelnyxInvalidDataException if the JSON field has an unexpected type or is
@@ -272,6 +313,16 @@ private constructor(
*/
fun simCardGroupId(): String = simCardGroupId.getRequired("sim_card_group_id")
+ /**
+ * The identifier of the Mobile Voice Connection to associate with the SIM cards. The
+ * connection must be owned by the same user and of type mobile_voice. If
+ * omitted, voice is enabled without a connection association.
+ *
+ * @throws TelnyxInvalidDataException if the JSON field has an unexpected type (e.g. if the
+ * server responded with an unexpected value).
+ */
+ fun connectionId(): Optional = connectionId.getOptional("connection_id")
+
/**
* Returns the raw JSON value of [simCardGroupId].
*
@@ -282,6 +333,16 @@ private constructor(
@ExcludeMissing
fun _simCardGroupId(): JsonField = simCardGroupId
+ /**
+ * Returns the raw JSON value of [connectionId].
+ *
+ * Unlike [connectionId], this method doesn't throw if the JSON field has an unexpected
+ * type.
+ */
+ @JsonProperty("connection_id")
+ @ExcludeMissing
+ fun _connectionId(): JsonField = connectionId
+
@JsonAnySetter
private fun putAdditionalProperty(key: String, value: JsonValue) {
additionalProperties.put(key, value)
@@ -311,11 +372,13 @@ private constructor(
class Builder internal constructor() {
private var simCardGroupId: JsonField? = null
+ private var connectionId: JsonField = JsonMissing.of()
private var additionalProperties: MutableMap = mutableMapOf()
@JvmSynthetic
internal fun from(body: Body) = apply {
simCardGroupId = body.simCardGroupId
+ connectionId = body.connectionId
additionalProperties = body.additionalProperties.toMutableMap()
}
@@ -333,6 +396,24 @@ private constructor(
this.simCardGroupId = simCardGroupId
}
+ /**
+ * The identifier of the Mobile Voice Connection to associate with the SIM cards. The
+ * connection must be owned by the same user and of type mobile_voice. If
+ * omitted, voice is enabled without a connection association.
+ */
+ fun connectionId(connectionId: String) = connectionId(JsonField.of(connectionId))
+
+ /**
+ * Sets [Builder.connectionId] to an arbitrary JSON value.
+ *
+ * You should usually call [Builder.connectionId] with a well-typed [String] value
+ * instead. This method is primarily for setting the field to an undocumented or not yet
+ * supported value.
+ */
+ fun connectionId(connectionId: JsonField) = apply {
+ this.connectionId = connectionId
+ }
+
fun additionalProperties(additionalProperties: Map) = apply {
this.additionalProperties.clear()
putAllAdditionalProperties(additionalProperties)
@@ -367,6 +448,7 @@ private constructor(
fun build(): Body =
Body(
checkRequired("simCardGroupId", simCardGroupId),
+ connectionId,
additionalProperties.toMutableMap(),
)
}
@@ -388,6 +470,7 @@ private constructor(
}
simCardGroupId()
+ connectionId()
validated = true
}
@@ -406,7 +489,9 @@ private constructor(
* Used for best match union deserialization.
*/
@JvmSynthetic
- internal fun validity(): Int = (if (simCardGroupId.asKnown().isPresent) 1 else 0)
+ internal fun validity(): Int =
+ (if (simCardGroupId.asKnown().isPresent) 1 else 0) +
+ (if (connectionId.asKnown().isPresent) 1 else 0)
override fun equals(other: Any?): Boolean {
if (this === other) {
@@ -415,15 +500,18 @@ private constructor(
return other is Body &&
simCardGroupId == other.simCardGroupId &&
+ connectionId == other.connectionId &&
additionalProperties == other.additionalProperties
}
- private val hashCode: Int by lazy { Objects.hash(simCardGroupId, additionalProperties) }
+ private val hashCode: Int by lazy {
+ Objects.hash(simCardGroupId, connectionId, additionalProperties)
+ }
override fun hashCode(): Int = hashCode
override fun toString() =
- "Body{simCardGroupId=$simCardGroupId, additionalProperties=$additionalProperties}"
+ "Body{simCardGroupId=$simCardGroupId, connectionId=$connectionId, additionalProperties=$additionalProperties}"
}
override fun equals(other: Any?): Boolean {
diff --git a/telnyx-core/src/main/kotlin/com/telnyx/sdk/models/simcards/actions/ActionDisableVoiceParams.kt b/telnyx-core/src/main/kotlin/com/telnyx/sdk/models/simcards/actions/ActionDisableVoiceParams.kt
new file mode 100644
index 000000000..aa20511c0
--- /dev/null
+++ b/telnyx-core/src/main/kotlin/com/telnyx/sdk/models/simcards/actions/ActionDisableVoiceParams.kt
@@ -0,0 +1,237 @@
+// File generated from our OpenAPI spec by Stainless.
+
+package com.telnyx.sdk.models.simcards.actions
+
+import com.telnyx.sdk.core.JsonValue
+import com.telnyx.sdk.core.Params
+import com.telnyx.sdk.core.http.QueryParams
+import com.telnyx.sdk.core.toImmutable
+import java.util.Objects
+import java.util.Optional
+import kotlin.jvm.optionals.getOrNull
+
+/**
+ * This API disables voice calling on a SIM card. The SIM card will no longer be able to make or
+ * receive calls.
The API will trigger an asynchronous operation called a SIM Card Action. The
+ * status of the SIM Card Action can be followed through the
+ * [List SIM Card Action](https://developers.telnyx.com/api-reference/sim-card-actions/list-sim-card-actions)
+ * API.
+ */
+class ActionDisableVoiceParams
+private constructor(
+ private val id: String?,
+ private val additionalHeaders: com.telnyx.sdk.core.http.Headers,
+ private val additionalQueryParams: QueryParams,
+ private val additionalBodyProperties: Map,
+) : Params {
+
+ fun id(): Optional = Optional.ofNullable(id)
+
+ /** Additional body properties to send with the request. */
+ fun _additionalBodyProperties(): Map = additionalBodyProperties
+
+ /** Additional headers to send with the request. */
+ fun _additionalHeaders(): com.telnyx.sdk.core.http.Headers = additionalHeaders
+
+ /** Additional query param to send with the request. */
+ fun _additionalQueryParams(): QueryParams = additionalQueryParams
+
+ fun toBuilder() = Builder().from(this)
+
+ companion object {
+
+ @JvmStatic fun none(): ActionDisableVoiceParams = builder().build()
+
+ /** Returns a mutable builder for constructing an instance of [ActionDisableVoiceParams]. */
+ @JvmStatic fun builder() = Builder()
+ }
+
+ /** A builder for [ActionDisableVoiceParams]. */
+ class Builder internal constructor() {
+
+ private var id: String? = null
+ private var additionalHeaders: com.telnyx.sdk.core.http.Headers.Builder =
+ com.telnyx.sdk.core.http.Headers.builder()
+ private var additionalQueryParams: QueryParams.Builder = QueryParams.builder()
+ private var additionalBodyProperties: MutableMap = mutableMapOf()
+
+ @JvmSynthetic
+ internal fun from(actionDisableVoiceParams: ActionDisableVoiceParams) = apply {
+ id = actionDisableVoiceParams.id
+ additionalHeaders = actionDisableVoiceParams.additionalHeaders.toBuilder()
+ additionalQueryParams = actionDisableVoiceParams.additionalQueryParams.toBuilder()
+ additionalBodyProperties =
+ actionDisableVoiceParams.additionalBodyProperties.toMutableMap()
+ }
+
+ fun id(id: String?) = apply { this.id = id }
+
+ /** Alias for calling [Builder.id] with `id.orElse(null)`. */
+ fun id(id: Optional) = id(id.getOrNull())
+
+ fun additionalHeaders(additionalHeaders: com.telnyx.sdk.core.http.Headers) = apply {
+ this.additionalHeaders.clear()
+ putAllAdditionalHeaders(additionalHeaders)
+ }
+
+ fun additionalHeaders(additionalHeaders: Map>) = apply {
+ this.additionalHeaders.clear()
+ putAllAdditionalHeaders(additionalHeaders)
+ }
+
+ fun putAdditionalHeader(name: String, value: String) = apply {
+ additionalHeaders.put(name, value)
+ }
+
+ fun putAdditionalHeaders(name: String, values: Iterable) = apply {
+ additionalHeaders.put(name, values)
+ }
+
+ fun putAllAdditionalHeaders(additionalHeaders: com.telnyx.sdk.core.http.Headers) = apply {
+ this.additionalHeaders.putAll(additionalHeaders)
+ }
+
+ fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply {
+ this.additionalHeaders.putAll(additionalHeaders)
+ }
+
+ fun replaceAdditionalHeaders(name: String, value: String) = apply {
+ additionalHeaders.replace(name, value)
+ }
+
+ fun replaceAdditionalHeaders(name: String, values: Iterable) = apply {
+ additionalHeaders.replace(name, values)
+ }
+
+ fun replaceAllAdditionalHeaders(additionalHeaders: com.telnyx.sdk.core.http.Headers) =
+ apply {
+ this.additionalHeaders.replaceAll(additionalHeaders)
+ }
+
+ fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply {
+ this.additionalHeaders.replaceAll(additionalHeaders)
+ }
+
+ fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) }
+
+ fun removeAllAdditionalHeaders(names: Set) = apply {
+ additionalHeaders.removeAll(names)
+ }
+
+ fun additionalQueryParams(additionalQueryParams: QueryParams) = apply {
+ this.additionalQueryParams.clear()
+ putAllAdditionalQueryParams(additionalQueryParams)
+ }
+
+ fun additionalQueryParams(additionalQueryParams: Map>) = apply {
+ this.additionalQueryParams.clear()
+ putAllAdditionalQueryParams(additionalQueryParams)
+ }
+
+ fun putAdditionalQueryParam(key: String, value: String) = apply {
+ additionalQueryParams.put(key, value)
+ }
+
+ fun putAdditionalQueryParams(key: String, values: Iterable) = apply {
+ additionalQueryParams.put(key, values)
+ }
+
+ fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply {
+ this.additionalQueryParams.putAll(additionalQueryParams)
+ }
+
+ fun putAllAdditionalQueryParams(additionalQueryParams: Map>) =
+ apply {
+ this.additionalQueryParams.putAll(additionalQueryParams)
+ }
+
+ fun replaceAdditionalQueryParams(key: String, value: String) = apply {
+ additionalQueryParams.replace(key, value)
+ }
+
+ fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply {
+ additionalQueryParams.replace(key, values)
+ }
+
+ fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply {
+ this.additionalQueryParams.replaceAll(additionalQueryParams)
+ }
+
+ fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) =
+ apply {
+ this.additionalQueryParams.replaceAll(additionalQueryParams)
+ }
+
+ fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) }
+
+ fun removeAllAdditionalQueryParams(keys: Set) = apply {
+ additionalQueryParams.removeAll(keys)
+ }
+
+ fun additionalBodyProperties(additionalBodyProperties: Map) = apply {
+ this.additionalBodyProperties.clear()
+ putAllAdditionalBodyProperties(additionalBodyProperties)
+ }
+
+ fun putAdditionalBodyProperty(key: String, value: JsonValue) = apply {
+ additionalBodyProperties.put(key, value)
+ }
+
+ fun putAllAdditionalBodyProperties(additionalBodyProperties: Map) =
+ apply {
+ this.additionalBodyProperties.putAll(additionalBodyProperties)
+ }
+
+ fun removeAdditionalBodyProperty(key: String) = apply {
+ additionalBodyProperties.remove(key)
+ }
+
+ fun removeAllAdditionalBodyProperties(keys: Set) = apply {
+ keys.forEach(::removeAdditionalBodyProperty)
+ }
+
+ /**
+ * Returns an immutable instance of [ActionDisableVoiceParams].
+ *
+ * Further updates to this [Builder] will not mutate the returned instance.
+ */
+ fun build(): ActionDisableVoiceParams =
+ ActionDisableVoiceParams(
+ id,
+ additionalHeaders.build(),
+ additionalQueryParams.build(),
+ additionalBodyProperties.toImmutable(),
+ )
+ }
+
+ fun _body(): Optional