diff --git a/.fern/metadata.json b/.fern/metadata.json index a4d1e254..2ee9c1a1 100644 --- a/.fern/metadata.json +++ b/.fern/metadata.json @@ -1,5 +1,5 @@ { - "cliVersion": "4.62.4", + "cliVersion": "4.107.0", "generatorName": "fernapi/fern-python-sdk", "generatorVersion": "4.42.0", "generatorConfig": { @@ -55,5 +55,5 @@ } ] }, - "originGitCommit": "6ac7251b36877c1630a1a8f045d4dd9d6f4a9ea6" + "originGitCommit": "431acd167947399155f09552b0251a29e7c52320" } \ No newline at end of file diff --git a/pyproject.toml b/pyproject.toml index 1ab827b3..de934dbc 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ dynamic = ["version"] [tool.poetry] name = "elevenlabs" -version = "2.45.0" +version = "2.46.0" description = "" readme = "README.md" authors = [] diff --git a/reference.md b/reference.md index 50236b31..b305e465 100644 --- a/reference.md +++ b/reference.md @@ -1720,11 +1720,11 @@ client = ElevenLabs( client.text_to_dialogue.convert( inputs=[ DialogueInput( - text="Knock knock", + text="[giggling] Knock knock", voice_id="JBFqnCBsd6RMkjVDRZzb", ), DialogueInput( - text="Who is there?", + text="[curious] Who is there?", voice_id="Aw4FAjKCGjjNkVhN1Xmq", ), ], @@ -1857,11 +1857,11 @@ client = ElevenLabs( client.text_to_dialogue.stream( inputs=[ DialogueInput( - text="Knock knock", + text="[giggling] Knock knock", voice_id="JBFqnCBsd6RMkjVDRZzb", ), DialogueInput( - text="Who is there?", + text="[curious] Who is there?", voice_id="Aw4FAjKCGjjNkVhN1Xmq", ), ], @@ -2748,7 +2748,7 @@ client.text_to_voice.create(
-**generated_voice_id:** `str` — The generated_voice_id to create, call POST /v1/text-to-voice/create-previews and fetch the generated_voice_id from the response header if don't have one yet. +**generated_voice_id:** `str` — The generated_voice_id to create; obtain it from POST /v1/text-to-voice/design, POST /v1/text-to-voice/:voice_id/remix, or the response headers when generating previews.
@@ -3201,7 +3201,7 @@ client.user.get()
-Returns a list of all available voices for a user. +Returns a list of all available voices for a user. Stops working once the user's workspace exceeds 500 voices.
@@ -3302,6 +3302,7 @@ client.voices.search( fine_tuning_state="fine_tuning_state", collection_id="collection_id", include_total_count=True, + voice_ids=["voice_ids"], ) ``` @@ -3817,6 +3818,8 @@ client.voices.get_shared( language="language", locale="locale", search="search", + use_cases=["use_cases"], + descriptives=["descriptives"], featured=True, min_notice_period_days=1, include_custom_rates=True, @@ -8073,11 +8076,20 @@ client.conversational_ai.conversations.list( rating_min=1, has_feedback_comment=True, user_id="user_id", + evaluation_params=["evaluation_params"], + data_collection_params=["data_collection_params"], + tool_names=["tool_names"], + tool_names_successful=["tool_names_successful"], + tool_names_errored=["tool_names_errored"], + main_languages=["main_languages"], page_size=1, summary_mode="exclude", search="search", conversation_initiation_source="unknown", branch_id="branch_id", + topic_ids=["topic_ids"], + exclude_statuses=["initiated"], + tag_ids=["tag_ids"], ) ``` @@ -8278,6 +8290,27 @@ client.conversational_ai.conversations.list(
+**exclude_statuses:** `typing.Optional[ + typing.Union[ + ConversationsListRequestExcludeStatusesItem, + typing.Sequence[ConversationsListRequestExcludeStatusesItem], + ] +]` — Exclude conversations with the given statuses. Useful for hiding in-progress / processing conversations from list views. + +
+
+ +
+
+ +**tag_ids:** `typing.Optional[typing.Union[str, typing.Sequence[str]]]` — Filter conversations by conversation tag IDs assigned via the conversation-tags endpoints. + +
+
+ +
+
+ **request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
@@ -8426,6 +8459,94 @@ client.conversational_ai.conversations.delete(
+ + + + +
client.conversational_ai.conversations.get_sip_messages(...) +
+
+ +#### 📝 Description + +
+
+ +
+
+ +Get SIP messages associated with a conversation's phone call +
+
+
+
+ +#### 🔌 Usage + +
+
+ +
+
+ +```python +from elevenlabs import ElevenLabs + +client = ElevenLabs( + api_key="YOUR_API_KEY", +) +client.conversational_ai.conversations.get_sip_messages( + conversation_id="21m00Tcm4TlvDq8ikWAM", + page_size=1, + cursor="cursor", +) + +``` +
+
+
+
+ +#### ⚙️ Parameters + +
+
+ +
+
+ +**conversation_id:** `str` — The id of the conversation you're taking the action on. + +
+
+ +
+
+ +**page_size:** `typing.Optional[int]` + +
+
+ +
+
+ +**cursor:** `typing.Optional[str]` — Used for fetching next page. Cursor is returned in the response. + +
+
+ +
+
+ +**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration. + +
+
+
+
+ +
@@ -10305,6 +10426,7 @@ client.conversational_ai.tests.list( page_size=1, search="search", parent_folder_id="parent_folder_id", + types=["llm"], include_folders=True, sort_mode="default", sharing_mode="all", @@ -10911,6 +11033,102 @@ client.conversational_ai.phone_numbers.update(
+**store_sip_messages:** `typing.Optional[bool]` + +
+
+ +
+
+ +**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration. + +
+
+ + + + + + + + +
client.conversational_ai.phone_numbers.get_sip_messages(...) +
+
+ +#### 📝 Description + +
+
+ +
+
+ +Get SIP messages for a phone number +
+
+
+
+ +#### 🔌 Usage + +
+
+ +
+
+ +```python +from elevenlabs import ElevenLabs + +client = ElevenLabs( + api_key="YOUR_API_KEY", +) +client.conversational_ai.phone_numbers.get_sip_messages( + phone_number_id="TeaqRRdTcIfIu2i7BYfT", + page_size=1, + cursor="cursor", +) + +``` +
+
+
+
+ +#### ⚙️ Parameters + +
+
+ +
+
+ +**phone_number_id:** `str` — The id of an agent. This is returned on agent creation. + +
+
+ +
+
+ +**page_size:** `typing.Optional[int]` + +
+
+ +
+
+ +**cursor:** `typing.Optional[str]` — Used for fetching next page. Cursor is returned in the response. + +
+
+ +
+
+ **request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
@@ -11111,6 +11329,7 @@ client.conversational_ai.knowledge_base.list( search="search", show_only_owned_documents=True, created_by_user_id="created_by_user_id", + types=["file"], parent_folder_id="parent_folder_id", ancestor_folder_id="ancestor_folder_id", folders_first=True, @@ -11348,6 +11567,7 @@ client = ElevenLabs( client.conversational_ai.knowledge_base.search( query="query", page_size=1, + types=["file"], cursor="cursor", ) @@ -11451,6 +11671,7 @@ client.conversational_ai.tools.list( page_size=1, show_only_owned_documents=True, created_by_user_id="created_by_user_id", + types=["webhook"], sort_direction="asc", sort_by="name", cursor="cursor", @@ -12811,6 +13032,7 @@ client = ElevenLabs( client.conversational_ai.batch_calls.list( limit=1, last_doc="last_doc", + agent_id="agent_id", ) ``` @@ -12843,6 +13065,14 @@ client.conversational_ai.batch_calls.list(
+**agent_id:** `typing.Optional[str]` — Filter batch calls to a single agent. + +
+
+ +
+
+ **request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
@@ -14013,7 +14243,9 @@ from elevenlabs import ElevenLabs client = ElevenLabs( api_key="YOUR_API_KEY", ) -client.conversational_ai.agents.summaries.get() +client.conversational_ai.agents.summaries.get( + agent_ids=["agent_ids"], +) ```
@@ -15600,6 +15832,12 @@ client.conversational_ai.conversations.messages.text_search( rating_min=1, has_feedback_comment=True, user_id="user_id", + evaluation_params=["evaluation_params"], + data_collection_params=["data_collection_params"], + tool_names=["tool_names"], + tool_names_successful=["tool_names_successful"], + tool_names_errored=["tool_names_errored"], + main_languages=["main_languages"], page_size=1, summary_mode="exclude", conversation_initiation_source="unknown", @@ -15622,7 +15860,588 @@ client.conversational_ai.conversations.messages.text_search(
-**text_query:** `str` — The search query text for full-text and fuzzy matching +**text_query:** `str` — The search query text for full-text and fuzzy matching + +
+
+ +
+
+ +**agent_id:** `typing.Optional[str]` — The id of the agent you're taking the action on. + +
+
+ +
+
+ +**call_successful:** `typing.Optional[EvaluationSuccessResult]` — The result of the success evaluation + +
+
+ +
+
+ +**call_start_before_unix:** `typing.Optional[int]` — Unix timestamp (in seconds) to filter conversations up to this start date. + +
+
+ +
+
+ +**call_start_after_unix:** `typing.Optional[int]` — Unix timestamp (in seconds) to filter conversations after to this start date. + +
+
+ +
+
+ +**call_duration_min_secs:** `typing.Optional[int]` — Minimum call duration in seconds. + +
+
+ +
+
+ +**call_duration_max_secs:** `typing.Optional[int]` — Maximum call duration in seconds. + +
+
+ +
+
+ +**rating_max:** `typing.Optional[int]` — Maximum overall rating (1-5). + +
+
+ +
+
+ +**rating_min:** `typing.Optional[int]` — Minimum overall rating (1-5). + +
+
+ +
+
+ +**has_feedback_comment:** `typing.Optional[bool]` — Filter conversations with user feedback comments. + +
+
+ +
+
+ +**user_id:** `typing.Optional[str]` — Filter conversations by the user ID who initiated them. + +
+
+ +
+
+ +**evaluation_params:** `typing.Optional[typing.Union[str, typing.Sequence[str]]]` — Evaluation filters. Repeat param. Format: criteria_id:result. Example: eval=value_framing:success + +
+
+ +
+
+ +**data_collection_params:** `typing.Optional[typing.Union[str, typing.Sequence[str]]]` — Data collection filters. Repeat param. Format: id:op:value where op is one of eq|neq|gt|gte|lt|lte|in|exists|missing. For in, pipe-delimit values. + +
+
+ +
+
+ +**tool_names:** `typing.Optional[typing.Union[str, typing.Sequence[str]]]` — Filter conversations by tool names used during the call. + +
+
+ +
+
+ +**tool_names_successful:** `typing.Optional[typing.Union[str, typing.Sequence[str]]]` — Filter conversations by tool names that had successful calls. + +
+
+ +
+
+ +**tool_names_errored:** `typing.Optional[typing.Union[str, typing.Sequence[str]]]` — Filter conversations by tool names that had errored calls. + +
+
+ +
+
+ +**main_languages:** `typing.Optional[typing.Union[str, typing.Sequence[str]]]` — Filter conversations by detected main language (language code). + +
+
+ +
+
+ +**page_size:** `typing.Optional[int]` — Number of results per page. Max 50. + +
+
+ +
+
+ +**summary_mode:** `typing.Optional[MessagesTextSearchRequestSummaryMode]` — Whether to include transcript summaries in the response. + +
+
+ +
+
+ +**conversation_initiation_source:** `typing.Optional[ConversationInitiationSource]` + +
+
+ +
+
+ +**branch_id:** `typing.Optional[str]` — Filter conversations by branch ID. + +
+
+ +
+
+ +**sort_by:** `typing.Optional[MessageSearchSortBy]` — Sort order for search results. 'search_score' sorts by search score, 'created_at' sorts by conversation start time. + +
+
+ +
+
+ +**cursor:** `typing.Optional[str]` — Used for fetching next page. Cursor is returned in the response. + +
+
+ +
+
+ +**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration. + +
+
+
+
+ + + + +
+ +
client.conversational_ai.conversations.messages.search(...) +
+
+ +#### 📝 Description + +
+
+ +
+
+ +Search conversation transcripts by semantic similarity to surface relevant messages based on meaning and intent, rather than exact keyword matches +
+
+
+
+ +#### 🔌 Usage + +
+
+ +
+
+ +```python +from elevenlabs import ElevenLabs + +client = ElevenLabs( + api_key="YOUR_API_KEY", +) +client.conversational_ai.conversations.messages.search( + text_query="Customer asking to cancel and get money back", + agent_id="agent_id", + page_size=1, + cursor="cursor", +) + +``` +
+
+
+
+ +#### ⚙️ Parameters + +
+
+ +
+
+ +**text_query:** `str` — The search query text for semantic similarity matching + +
+
+ +
+
+ +**agent_id:** `typing.Optional[str]` — The id of the agent you're taking the action on. + +
+
+ +
+
+ +**page_size:** `typing.Optional[int]` — Number of results per page. Max 50. + +
+
+ +
+
+ +**cursor:** `typing.Optional[str]` — Used for fetching next page. Cursor is returned in the response. + +
+
+ +
+
+ +**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration. + +
+
+
+
+ + +
+
+
+ +## ConversationalAi Conversations Tags +
client.conversational_ai.conversations.tags.assign(...) +
+
+ +#### 📝 Description + +
+
+ +
+
+ +Assign one or more conversation tags to a conversation. Tags that are already assigned are ignored. Tags must belong to the same workspace. +
+
+
+
+ +#### 🔌 Usage + +
+
+ +
+
+ +```python +from elevenlabs import ElevenLabs + +client = ElevenLabs( + api_key="YOUR_API_KEY", +) +client.conversational_ai.conversations.tags.assign( + conversation_id="conversation_id", + tag_ids=["tag_ids"], +) + +``` +
+
+
+
+ +#### ⚙️ Parameters + +
+
+ +
+
+ +**conversation_id:** `str` + +
+
+ +
+
+ +**tag_ids:** `typing.Sequence[str]` — Tag IDs to add to the conversation. Re-assigning an existing tag is a no-op. + +
+
+ +
+
+ +**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration. + +
+
+
+
+ + +
+
+
+ +
client.conversational_ai.conversations.tags.unassign(...) +
+
+ +#### 📝 Description + +
+
+ +
+
+ +Remove a single conversation tag from a conversation. +
+
+
+
+ +#### 🔌 Usage + +
+
+ +
+
+ +```python +from elevenlabs import ElevenLabs + +client = ElevenLabs( + api_key="YOUR_API_KEY", +) +client.conversational_ai.conversations.tags.unassign( + conversation_id="conversation_id", + tag_id="tag_id", +) + +``` +
+
+
+
+ +#### ⚙️ Parameters + +
+
+ +
+
+ +**conversation_id:** `str` + +
+
+ +
+
+ +**tag_id:** `str` + +
+
+ +
+
+ +**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration. + +
+
+
+
+ + +
+
+
+ +
client.conversational_ai.conversations.tags.list(...) +
+
+ +#### 📝 Description + +
+
+ +
+
+ +List conversation tags for the workspace, ordered by most recently created first. +
+
+
+
+ +#### 🔌 Usage + +
+
+ +
+
+ +```python +from elevenlabs import ElevenLabs + +client = ElevenLabs( + api_key="YOUR_API_KEY", +) +client.conversational_ai.conversations.tags.list( + page_size=1, + cursor="cursor", +) + +``` +
+
+
+
+ +#### ⚙️ Parameters + +
+
+ +
+
+ +**page_size:** `typing.Optional[int]` — How many conversation tags to return. Can not exceed 100. + +
+
+ +
+
+ +**cursor:** `typing.Optional[str]` — Used for fetching next page. Cursor is returned in the response. + +
+
+ +
+
+ +**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration. + +
+
+
+
+ + +
+
+
+ +
client.conversational_ai.conversations.tags.create(...) +
+
+ +#### 📝 Description + +
+
+ +
+
+ +Create a new conversation tag for the workspace. +
+
+
+
+ +#### 🔌 Usage + +
+
+ +
+
+ +```python +from elevenlabs import ElevenLabs + +client = ElevenLabs( + api_key="YOUR_API_KEY", +) +client.conversational_ai.conversations.tags.create( + title="title", +) + +``` +
+
+
+
+ +#### ⚙️ Parameters + +
+
+ +
+
+ +**title:** `str` — Display title of the tag.
@@ -15630,7 +16449,7 @@ client.conversational_ai.conversations.messages.text_search(
-**agent_id:** `typing.Optional[str]` — The id of the agent you're taking the action on. +**description:** `typing.Optional[str]` — Optional free-text description.
@@ -15638,95 +16457,69 @@ client.conversational_ai.conversations.messages.text_search(
-**call_successful:** `typing.Optional[EvaluationSuccessResult]` — The result of the success evaluation +**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
- -
-
- -**call_start_before_unix:** `typing.Optional[int]` — Unix timestamp (in seconds) to filter conversations up to this start date. -
-
-
-**call_start_after_unix:** `typing.Optional[int]` — Unix timestamp (in seconds) to filter conversations after to this start date. -
+
+
client.conversational_ai.conversations.tags.get(...)
-**call_duration_min_secs:** `typing.Optional[int]` — Minimum call duration in seconds. - -
-
+#### 📝 Description
-**call_duration_max_secs:** `typing.Optional[int]` — Maximum call duration in seconds. - -
-
-
-**rating_max:** `typing.Optional[int]` — Maximum overall rating (1-5). - +Get a conversation tag by ID.
- -
-
- -**rating_min:** `typing.Optional[int]` — Minimum overall rating (1-5). -
+#### 🔌 Usage +
-**has_feedback_comment:** `typing.Optional[bool]` — Filter conversations with user feedback comments. - -
-
-
-**user_id:** `typing.Optional[str]` — Filter conversations by the user ID who initiated them. - -
-
+```python +from elevenlabs import ElevenLabs -
-
+client = ElevenLabs( + api_key="YOUR_API_KEY", +) +client.conversational_ai.conversations.tags.get( + tag_id="tag_id", +) -**evaluation_params:** `typing.Optional[typing.Union[str, typing.Sequence[str]]]` — Evaluation filters. Repeat param. Format: criteria_id:result. Example: eval=value_framing:success - +``` +
+
+#### ⚙️ Parameters +
-**data_collection_params:** `typing.Optional[typing.Union[str, typing.Sequence[str]]]` — Data collection filters. Repeat param. Format: id:op:value where op is one of eq|neq|gt|gte|lt|lte|in|exists|missing. For in, pipe-delimit values. - -
-
-
-**tool_names:** `typing.Optional[typing.Union[str, typing.Sequence[str]]]` — Filter conversations by tool names used during the call. +**tag_id:** `str`
@@ -15734,71 +16527,69 @@ client.conversational_ai.conversations.messages.text_search(
-**tool_names_successful:** `typing.Optional[typing.Union[str, typing.Sequence[str]]]` — Filter conversations by tool names that had successful calls. +**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
+ + -
-
-**tool_names_errored:** `typing.Optional[typing.Union[str, typing.Sequence[str]]]` — Filter conversations by tool names that had errored calls. -
+
+
client.conversational_ai.conversations.tags.delete(...)
-**main_languages:** `typing.Optional[typing.Union[str, typing.Sequence[str]]]` — Filter conversations by detected main language (language code). - -
-
+#### 📝 Description
-**page_size:** `typing.Optional[int]` — Number of results per page. Max 50. - -
-
-
-**summary_mode:** `typing.Optional[MessagesTextSearchRequestSummaryMode]` — Whether to include transcript summaries in the response. - +Delete a conversation tag. Restricted to the tag owner or a workspace admin. +
+
+#### 🔌 Usage +
-**conversation_initiation_source:** `typing.Optional[ConversationInitiationSource]` - -
-
-
-**branch_id:** `typing.Optional[str]` — Filter conversations by branch ID. - +```python +from elevenlabs import ElevenLabs + +client = ElevenLabs( + api_key="YOUR_API_KEY", +) +client.conversational_ai.conversations.tags.delete( + tag_id="tag_id", +) + +``` +
+
+#### ⚙️ Parameters +
-**sort_by:** `typing.Optional[MessageSearchSortBy]` — Sort order for search results. 'search_score' sorts by search score, 'created_at' sorts by conversation start time. - -
-
-
-**cursor:** `typing.Optional[str]` — Used for fetching next page. Cursor is returned in the response. +**tag_id:** `str`
@@ -15818,7 +16609,7 @@ client.conversational_ai.conversations.messages.text_search(
-
client.conversational_ai.conversations.messages.search(...) +
client.conversational_ai.conversations.tags.update(...)
@@ -15830,7 +16621,7 @@ client.conversational_ai.conversations.messages.text_search(
-Search conversation transcripts by semantic similarity to surface relevant messages based on meaning and intent, rather than exact keyword matches +Update a conversation tag's title and/or description. Restricted to the tag owner or a workspace admin.
@@ -15850,11 +16641,8 @@ from elevenlabs import ElevenLabs client = ElevenLabs( api_key="YOUR_API_KEY", ) -client.conversational_ai.conversations.messages.search( - text_query="Customer asking to cancel and get money back", - agent_id="agent_id", - page_size=1, - cursor="cursor", +client.conversational_ai.conversations.tags.update( + tag_id="tag_id", ) ``` @@ -15871,15 +16659,7 @@ client.conversational_ai.conversations.messages.search(
-**text_query:** `str` — The search query text for semantic similarity matching - -
-
- -
-
- -**agent_id:** `typing.Optional[str]` — The id of the agent you're taking the action on. +**tag_id:** `str`
@@ -15887,7 +16667,7 @@ client.conversational_ai.conversations.messages.search(
-**page_size:** `typing.Optional[int]` — Number of results per page. Max 50. +**title:** `typing.Optional[str]` — If provided, replaces the tag title. Omit to leave unchanged.
@@ -15895,7 +16675,7 @@ client.conversational_ai.conversations.messages.search(
-**cursor:** `typing.Optional[str]` — Used for fetching next page. Cursor is returned in the response. +**description:** `typing.Optional[str]` — If provided, replaces the tag description. Omit to leave unchanged.
@@ -17528,7 +18308,9 @@ from elevenlabs import ElevenLabs client = ElevenLabs( api_key="YOUR_API_KEY", ) -client.conversational_ai.knowledge_base.documents.summaries.get() +client.conversational_ai.knowledge_base.documents.summaries.get( + document_ids=["21m00Tcm4TlvDq8ikWAM", "31n11Udm5UmwEr9jkXBN"], +) ``` @@ -18839,7 +19621,7 @@ client.conversational_ai.tests.invocations.list(
-**agent_id:** `str` — Filter by agent ID +**agent_id:** `typing.Optional[str]` — Filter by agent ID
@@ -25450,6 +26232,131 @@ client.voices.samples.audio.get(
+ + +
+ +## Workspace AuditLogs +
client.workspace.audit_logs.list(...) +
+
+ +#### 📝 Description + +
+
+ +
+
+ +Returns the audit log for the workspace. Requires enterprise tier and the audit_log_read permission. +
+
+
+
+ +#### 🔌 Usage + +
+
+ +
+
+ +```python +from elevenlabs import ElevenLabs + +client = ElevenLabs( + api_key="YOUR_API_KEY", +) +client.workspace.audit_logs.list( + limit=1, + cursor="cursor", + time_from_unix_ms=1, + time_to_unix_ms=1, + actor_uid="actor_uid", + class_name="class_name", + activity_name="activity_name", +) + +``` +
+
+
+
+ +#### ⚙️ Parameters + +
+
+ +
+
+ +**limit:** `typing.Optional[int]` — Maximum number of entries per page + +
+
+ +
+
+ +**cursor:** `typing.Optional[str]` — Cursor for the next page (from previous response) + +
+
+ +
+
+ +**time_from_unix_ms:** `typing.Optional[int]` — Only include entries at or after this time (ms since epoch) + +
+
+ +
+
+ +**time_to_unix_ms:** `typing.Optional[int]` — Only include entries at or before this time (ms since epoch) + +
+
+ +
+
+ +**actor_uid:** `typing.Optional[str]` — Filter by actor user ID + +
+
+ +
+
+ +**class_name:** `typing.Optional[str]` — Filter by OCSF event class name (e.g. Account Change) + +
+
+ +
+
+ +**activity_name:** `typing.Optional[str]` — Filter by audit activity name (e.g. Subscription Creation) + +
+
+ +
+
+ +**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration. + +
+
+
+
+ +
diff --git a/src/elevenlabs/__init__.py b/src/elevenlabs/__init__.py index 4958add5..6da9d089 100644 --- a/src/elevenlabs/__init__.py +++ b/src/elevenlabs/__init__.py @@ -10,6 +10,8 @@ sys.setrecursionlimit(10000) if typing.TYPE_CHECKING: from .types import ( + AccountChangeActivityId, + ActorModel, AddChapterResponseModel, AddKnowledgeBaseResponseModel, AddProjectRequest, @@ -83,8 +85,11 @@ AnalysisPropertyConstantValue, AnalysisPropertyType, AnalysisScope, + ApiIntegrationDocResponse, ApiIntegrationOAuth2AuthCodeResponse, ApiIntegrationOAuth2AuthCodeResponseScopeSeparator, + ApiIntegrationOAuth2CustomAppResponse, + ApiIntegrationOAuth2CustomAppResponseScopeSeparator, ApiIntegrationWebhookOverrides, ApiIntegrationWebhookOverridesRequestHeadersValue, ApiIntegrationWebhookOverridesSchemaOverridesValue, @@ -214,8 +219,13 @@ AuthConnectionDependenciesToolsItem_Unknown, AuthConnectionLocator, AuthSettings, + AuthenticationActivityId, AuthorizationMethod, AutoSyncInfo, + BackgroundMusicConfig, + BackgroundMusicConfigWorkflowOverride, + BackgroundMusicPresetId, + BackgroundMusicSourceType, BackupLlmDefault, BackupLlmDisabled, BackupLlmOverride, @@ -235,6 +245,9 @@ BuiltInToolsOutput, BuiltInToolsWorkflowOverrideInput, BuiltInToolsWorkflowOverrideOutput, + CancelCalendarEventParams, + CancelGroupSessionForAllParams, + CancelGroupSessionRegistrationParams, CanvasPlacement, CaptionStyleCharacterAnimationModel, CaptionStyleCharacterAnimationModelEnterType, @@ -312,6 +325,7 @@ ContentGuardrailOutputTriggerAction_Retry, ContentThresholdGuardrail, ContentThresholdGuardrailThreshold, + ContextualUpdateInfo, Contributor, ConvAiDynamicVariable, ConvAiEnvVarLocator, @@ -330,15 +344,18 @@ ConvAiUserSecretDbModel, ConvAiWebhooks, ConvAiWorkspaceStoredSecretConfig, + ConversationAsrUsageModel, ConversationChargingCommonModel, - ConversationConfig, ConversationConfigClientOverrideConfigInput, ConversationConfigClientOverrideConfigOutput, ConversationConfigClientOverrideInput, ConversationConfigClientOverrideOutput, + ConversationConfigInput, + ConversationConfigOutput, ConversationConfigOverride, ConversationConfigOverrideConfig, - ConversationConfigWorkflowOverride, + ConversationConfigWorkflowOverrideInput, + ConversationConfigWorkflowOverrideOutput, ConversationDeletionSettings, ConversationFeedbackType, ConversationHistoryAnalysisCommonModel, @@ -373,6 +390,7 @@ ConversationHistoryTranscriptSystemToolResultCommonModelInput, ConversationHistoryTranscriptSystemToolResultCommonModelInputResult, ConversationHistoryTranscriptSystemToolResultCommonModelInputResult_EndCallSuccess, + ConversationHistoryTranscriptSystemToolResultCommonModelInputResult_KnowledgeBaseRagSuccess, ConversationHistoryTranscriptSystemToolResultCommonModelInputResult_LanguageDetectionSuccess, ConversationHistoryTranscriptSystemToolResultCommonModelInputResult_PlayDtmfError, ConversationHistoryTranscriptSystemToolResultCommonModelInputResult_PlayDtmfSuccess, @@ -387,6 +405,7 @@ ConversationHistoryTranscriptSystemToolResultCommonModelOutput, ConversationHistoryTranscriptSystemToolResultCommonModelOutputResult, ConversationHistoryTranscriptSystemToolResultCommonModelOutputResult_EndCallSuccess, + ConversationHistoryTranscriptSystemToolResultCommonModelOutputResult_KnowledgeBaseRagSuccess, ConversationHistoryTranscriptSystemToolResultCommonModelOutputResult_LanguageDetectionSuccess, ConversationHistoryTranscriptSystemToolResultCommonModelOutputResult_PlayDtmfError, ConversationHistoryTranscriptSystemToolResultCommonModelOutputResult_PlayDtmfSuccess, @@ -432,10 +451,14 @@ ConversationSource, ConversationSummaryResponseModel, ConversationSummaryResponseModelStatus, + ConversationTagResponseModel, ConversationTokenDbModel, ConversationTokenPurpose, + ConversationTtsUsageModel, ConversationTurnMetrics, ConversationUserResponseModel, + ConversationVoiceRewardModel, + ConversationVoiceUsageModel, ConversationalConfig, ConversationalConfigApiModelWorkflowOverrideInput, ConversationalConfigApiModelWorkflowOverrideOutput, @@ -460,6 +483,7 @@ CreateOAuth2ClientCredsRequest, CreateOAuth2JwtRequest, CreateOAuth2JwtRequestAlgorithm, + CreateOAuth2JwtRequestTokenResponseField, CreatePhoneNumberResponseModel, CreatePreviouslyGeneratedVoiceRequest, CreatePrivateKeyJwtRequest, @@ -506,6 +530,7 @@ DeleteClientInteractionParams, DeleteClientParams, DeleteDubbingResponseModel, + DeleteGroupSessionParams, DeleteHistoryItemResponse, DeleteHolidayParams, DeleteLocationParams, @@ -534,6 +559,7 @@ DependentUnknownToolIdentifier, DetailedMusicResponse, DetectedEntity, + DeviceModel, DialogueInput, DialogueInputResponseModel, DialogueTextAlignment, @@ -552,7 +578,6 @@ DubbingMediaReference, DubbingMetadataPageResponseModel, DubbingMetadataResponse, - DubbingModel, DubbingRenderResponseModel, DubbingResource, DubbingTranscript, @@ -583,6 +608,7 @@ EndCallToolConfig, EndCallToolResultModel, EndCallTriggerAction, + EntityManagementActivityId, EnvironmentAuthConnectionLocator, EnvironmentVariableAuthConnectionValue, EnvironmentVariableAuthConnectionValueRequest, @@ -654,6 +680,7 @@ GetConvAiSettingsResponseModel, GetConversationResponseModel, GetConversationResponseModelStatus, + GetConversationTagsPageResponseModel, GetConversationUsersPageResponseModel, GetConversationsPageResponseModel, GetKnowledgeBaseDependentAgentsResponseModel, @@ -718,6 +745,7 @@ GetSecretDependenciesResponseModelDependenciesZeroItem_Available, GetSecretDependenciesResponseModelDependenciesZeroItem_Unknown, GetSimulationTestResponseModel, + GetSipLogMessagesResponse, GetSpeechHistoryResponse, GetTestInvocationsPageResponseModel, GetTestSuiteInvocationResponseModel, @@ -733,6 +761,7 @@ GetVoicesV2Response, GetWhatsAppAccountResponse, GetWorkspaceSecretsResponseModel, + GroupManagementActivityId, GuardrailExecutionMode, GuardrailsV1Input, GuardrailsV1Output, @@ -740,9 +769,14 @@ HistoryAlignmentsResponseModel, HistoryItemResponse, HtmlExportOptions, + HttpRequestModel, HttpValidationError, Icon, + ImageAnalysis, + ImageAnalysisResult, + ImageAnalysisStatus, ImageAvatar, + ImageSubject, InboundSipTrunkConfigRequestModel, InitialiseContext, InitializeConnection, @@ -767,6 +801,9 @@ KnowledgeBaseFolderPathSegmentResponseModel, KnowledgeBaseFolderPathSegmentSummaryResponseModel, KnowledgeBaseLocator, + KnowledgeBaseRagToolConfig, + KnowledgeBaseRagToolResultModel, + KnowledgeBaseRagToolStatus, KnowledgeBaseSortBy, KnowledgeBaseSourceFileUrlResponseModel, KnowledgeBaseSummaryBatchSuccessfulResponseModel, @@ -782,6 +819,7 @@ LanguagePresetOutput, LanguagePresetTranslation, LanguageResponse, + LeaveMessageParams, LibraryVoiceResponse, LibraryVoiceResponseModelCategory, ListAgentRulesParams, @@ -789,6 +827,7 @@ ListAuthConnectionsResponse, ListAuthConnectionsResponseAuthConnectionsItem, ListAuthConnectionsResponseAuthConnectionsItem_ApiIntegrationOauth2AuthCode, + ListAuthConnectionsResponseAuthConnectionsItem_ApiIntegrationOauth2CustomApp, ListAuthConnectionsResponseAuthConnectionsItem_BasicAuth, ListAuthConnectionsResponseAuthConnectionsItem_BearerAuth, ListAuthConnectionsResponseAuthConnectionsItem_CustomHeaderAuth, @@ -800,11 +839,13 @@ ListCalendarEventsParams, ListClientInteractionsParams, ListClientsParams, + ListGroupSessionsParams, ListHolidaysParams, ListLocationsParams, ListMcpToolsResponseModel, ListProductsParams, ListResponseAgentBranchSummary, + ListResponseApiIntegrationDocResponse, ListResponseMeta, ListServicesParams, ListStaffParams, @@ -893,6 +934,7 @@ OAuth2ClientCredsResponse, OAuth2JwtResponse, OAuth2JwtResponseAlgorithm, + OAuth2JwtResponseTokenResponseField, OAuthConnectionStatus, ObjectJsonSchemaPropertyInput, ObjectJsonSchemaPropertyInputPropertiesValue, @@ -948,6 +990,7 @@ PostWorkspaceSecretResponseModel, PreToolSpeechMode, PreviewAudioDbModel, + Price, PrivacyConfigInput, PrivacyConfigOutput, PrivateKeyJwtResponse, @@ -1073,6 +1116,7 @@ ReferencedToolCommonModelType, RegexParameterEvaluationStrategy, RegionConfigRequest, + RegisterForGroupSessionParams, RemoveMemberFromGroupRequest, Render, RenderStatus, @@ -1081,6 +1125,7 @@ RequiredConstraint, RequiredConstraints, ResourceAccessInfo, + ResourceAccessInfoAnonymousAccessLevelOverride, ResourceAccessInfoRole, ResourceMetadataResponseModel, ResourceMetadataResponseModelAnonymousAccessLevelOverride, @@ -1103,6 +1148,7 @@ SayNodeLiteralMessageOutput, SayNodePromptMessageInput, SayNodePromptMessageOutput, + ScheduleGroupSessionParams, ScopedAnalysisResult, ScribeAuthErrorPayload, ScribeChunkSizeExceededErrorPayload, @@ -1138,6 +1184,7 @@ SessionStartedPayloadConfig, SessionStartedPayloadConfigCommitStrategy, SetBookingSlugParams, + SeverityId, SfxSourceContext, ShareOptionResponseModel, ShareOptionResponseModelType, @@ -1148,6 +1195,8 @@ SingleTestRunRequestModel, SingleUseTokenResponseModel, SingleUseTokenType, + SipLogMessage, + SipLogMessageDirection, SipMediaEncryptionEnum, SipTrunkCredentialsRequestModel, SipTrunkOutboundCallResponse, @@ -1156,6 +1205,8 @@ SipUriTransferDestination, SkipTurnToolConfig, SkipTurnToolResponseModel, + SmsConversationInfo, + SmsConversationInfoDirection, SoftTimeoutConfig, SoftTimeoutConfigOverride, SoftTimeoutConfigOverrideConfig, @@ -1172,6 +1223,8 @@ SpeakerSeparationResponseModelStatus, SpeakerTrack, SpeakerUpdatedResponse, + SpeechEngineConfig, + SpeechEngineConfigRequestHeadersValue, SpeechHistoryItemResponse, SpeechHistoryItemResponseModelSource, SpeechHistoryItemResponseModelVoiceCategory, @@ -1184,6 +1237,7 @@ SrtExportOptions, StartPvcVoiceTrainingResponseModel, StartSpeakerSeparationResponseModel, + StatusId, StreamingAudioChunkWithTimestampsAndVoiceSegmentsResponseModel, StreamingAudioChunkWithTimestampsResponse, StudioAgentSettingsModel, @@ -1201,6 +1255,7 @@ SystemToolConfigInput, SystemToolConfigInputParams, SystemToolConfigInputParams_EndCall, + SystemToolConfigInputParams_KnowledgeBaseRag, SystemToolConfigInputParams_LanguageDetection, SystemToolConfigInputParams_PlayKeypadTouchTone, SystemToolConfigInputParams_SkipTurn, @@ -1210,6 +1265,7 @@ SystemToolConfigOutput, SystemToolConfigOutputParams, SystemToolConfigOutputParams_EndCall, + SystemToolConfigOutputParams_KnowledgeBaseRag, SystemToolConfigOutputParams_LanguageDetection, SystemToolConfigOutputParams_PlayKeypadTouchTone, SystemToolConfigOutputParams_SkipTurn, @@ -1345,6 +1401,7 @@ UpdateChapterRequest, UpdateClientParams, UpdateCustomerFacingConfigParams, + UpdateGroupSessionSeatsParams, UpdateHolidayParams, UpdateLocationParams, UpdateProductParams, @@ -1357,11 +1414,15 @@ UpdateToolCallUnitTestRequest, UpdateWorkspaceMemberResponseModel, UrlAvatar, + UrlModel, UsageAggregationInterval, UsageCharactersResponseModel, User, + UserAccessManagementActivityId, UserFeedback, UserFeedbackScore, + UserModel, + UserTypeId, UsersSortBy, UtteranceResponseModel, VadConfig, @@ -1416,6 +1477,7 @@ WebhookToolApiSchemaConfigOutputRequestHeadersValue, WebhookToolConfigInput, WebhookToolConfigOutput, + WebhookTranscriptFormat, WebhookUsageType, WebsocketTtsClientMessageMulti, WebsocketTtsServerMessageMulti, @@ -1554,6 +1616,9 @@ WorkspaceAnalyticsQueryResponseModelRowsItemItem, WorkspaceApiKeyListResponseModel, WorkspaceApiKeyResponseModel, + WorkspaceAuditLogEntryResponse, + WorkspaceAuditLogEntryResponseActivityId, + WorkspaceAuditLogsPageResponse, WorkspaceBatchCallsResponse, WorkspaceCreateApiKeyResponseModel, WorkspaceCreateWebhookResponseModel, @@ -1698,6 +1763,8 @@ from .version import __version__ from .voices import VoicesGetSharedRequestCategory, VoicesUpdateRequestLabels _dynamic_imports: typing.Dict[str, str] = { + "AccountChangeActivityId": ".types", + "ActorModel": ".types", "AddChapterResponseModel": ".types", "AddKnowledgeBaseResponseModel": ".types", "AddProjectRequest": ".types", @@ -1771,8 +1838,11 @@ "AnalysisPropertyConstantValue": ".types", "AnalysisPropertyType": ".types", "AnalysisScope": ".types", + "ApiIntegrationDocResponse": ".types", "ApiIntegrationOAuth2AuthCodeResponse": ".types", "ApiIntegrationOAuth2AuthCodeResponseScopeSeparator": ".types", + "ApiIntegrationOAuth2CustomAppResponse": ".types", + "ApiIntegrationOAuth2CustomAppResponseScopeSeparator": ".types", "ApiIntegrationWebhookOverrides": ".types", "ApiIntegrationWebhookOverridesRequestHeadersValue": ".types", "ApiIntegrationWebhookOverridesSchemaOverridesValue": ".types", @@ -1907,8 +1977,13 @@ "AuthConnectionDependenciesToolsItem_Unknown": ".types", "AuthConnectionLocator": ".types", "AuthSettings": ".types", + "AuthenticationActivityId": ".types", "AuthorizationMethod": ".types", "AutoSyncInfo": ".types", + "BackgroundMusicConfig": ".types", + "BackgroundMusicConfigWorkflowOverride": ".types", + "BackgroundMusicPresetId": ".types", + "BackgroundMusicSourceType": ".types", "BackupLlmDefault": ".types", "BackupLlmDisabled": ".types", "BackupLlmOverride": ".types", @@ -1950,6 +2025,9 @@ "BuiltInToolsOutput": ".types", "BuiltInToolsWorkflowOverrideInput": ".types", "BuiltInToolsWorkflowOverrideOutput": ".types", + "CancelCalendarEventParams": ".types", + "CancelGroupSessionForAllParams": ".types", + "CancelGroupSessionRegistrationParams": ".types", "CanvasPlacement": ".types", "CaptionStyleCharacterAnimationModel": ".types", "CaptionStyleCharacterAnimationModelEnterType": ".types", @@ -2029,6 +2107,7 @@ "ContentGuardrailOutputTriggerAction_Retry": ".types", "ContentThresholdGuardrail": ".types", "ContentThresholdGuardrailThreshold": ".types", + "ContextualUpdateInfo": ".types", "Contributor": ".types", "ConvAiDynamicVariable": ".types", "ConvAiEnvVarLocator": ".types", @@ -2047,15 +2126,18 @@ "ConvAiUserSecretDbModel": ".types", "ConvAiWebhooks": ".types", "ConvAiWorkspaceStoredSecretConfig": ".types", + "ConversationAsrUsageModel": ".types", "ConversationChargingCommonModel": ".types", - "ConversationConfig": ".types", "ConversationConfigClientOverrideConfigInput": ".types", "ConversationConfigClientOverrideConfigOutput": ".types", "ConversationConfigClientOverrideInput": ".types", "ConversationConfigClientOverrideOutput": ".types", + "ConversationConfigInput": ".types", + "ConversationConfigOutput": ".types", "ConversationConfigOverride": ".types", "ConversationConfigOverrideConfig": ".types", - "ConversationConfigWorkflowOverride": ".types", + "ConversationConfigWorkflowOverrideInput": ".types", + "ConversationConfigWorkflowOverrideOutput": ".types", "ConversationDeletionSettings": ".types", "ConversationFeedbackType": ".types", "ConversationHistoryAnalysisCommonModel": ".types", @@ -2090,6 +2172,7 @@ "ConversationHistoryTranscriptSystemToolResultCommonModelInput": ".types", "ConversationHistoryTranscriptSystemToolResultCommonModelInputResult": ".types", "ConversationHistoryTranscriptSystemToolResultCommonModelInputResult_EndCallSuccess": ".types", + "ConversationHistoryTranscriptSystemToolResultCommonModelInputResult_KnowledgeBaseRagSuccess": ".types", "ConversationHistoryTranscriptSystemToolResultCommonModelInputResult_LanguageDetectionSuccess": ".types", "ConversationHistoryTranscriptSystemToolResultCommonModelInputResult_PlayDtmfError": ".types", "ConversationHistoryTranscriptSystemToolResultCommonModelInputResult_PlayDtmfSuccess": ".types", @@ -2104,6 +2187,7 @@ "ConversationHistoryTranscriptSystemToolResultCommonModelOutput": ".types", "ConversationHistoryTranscriptSystemToolResultCommonModelOutputResult": ".types", "ConversationHistoryTranscriptSystemToolResultCommonModelOutputResult_EndCallSuccess": ".types", + "ConversationHistoryTranscriptSystemToolResultCommonModelOutputResult_KnowledgeBaseRagSuccess": ".types", "ConversationHistoryTranscriptSystemToolResultCommonModelOutputResult_LanguageDetectionSuccess": ".types", "ConversationHistoryTranscriptSystemToolResultCommonModelOutputResult_PlayDtmfError": ".types", "ConversationHistoryTranscriptSystemToolResultCommonModelOutputResult_PlayDtmfSuccess": ".types", @@ -2149,10 +2233,14 @@ "ConversationSource": ".types", "ConversationSummaryResponseModel": ".types", "ConversationSummaryResponseModelStatus": ".types", + "ConversationTagResponseModel": ".types", "ConversationTokenDbModel": ".types", "ConversationTokenPurpose": ".types", + "ConversationTtsUsageModel": ".types", "ConversationTurnMetrics": ".types", "ConversationUserResponseModel": ".types", + "ConversationVoiceRewardModel": ".types", + "ConversationVoiceUsageModel": ".types", "ConversationalConfig": ".types", "ConversationalConfigApiModelWorkflowOverrideInput": ".types", "ConversationalConfigApiModelWorkflowOverrideOutput": ".types", @@ -2177,6 +2265,7 @@ "CreateOAuth2ClientCredsRequest": ".types", "CreateOAuth2JwtRequest": ".types", "CreateOAuth2JwtRequestAlgorithm": ".types", + "CreateOAuth2JwtRequestTokenResponseField": ".types", "CreatePhoneNumberResponseModel": ".types", "CreatePreviouslyGeneratedVoiceRequest": ".types", "CreatePrivateKeyJwtRequest": ".types", @@ -2223,6 +2312,7 @@ "DeleteClientInteractionParams": ".types", "DeleteClientParams": ".types", "DeleteDubbingResponseModel": ".types", + "DeleteGroupSessionParams": ".types", "DeleteHistoryItemResponse": ".types", "DeleteHolidayParams": ".types", "DeleteLocationParams": ".types", @@ -2251,6 +2341,7 @@ "DependentUnknownToolIdentifier": ".types", "DetailedMusicResponse": ".types", "DetectedEntity": ".types", + "DeviceModel": ".types", "DialogueInput": ".types", "DialogueInputResponseModel": ".types", "DialogueTextAlignment": ".types", @@ -2273,7 +2364,6 @@ "DubbingMediaReference": ".types", "DubbingMetadataPageResponseModel": ".types", "DubbingMetadataResponse": ".types", - "DubbingModel": ".types", "DubbingRenderResponseModel": ".types", "DubbingResource": ".types", "DubbingTranscript": ".types", @@ -2306,6 +2396,7 @@ "EndCallToolConfig": ".types", "EndCallToolResultModel": ".types", "EndCallTriggerAction": ".types", + "EntityManagementActivityId": ".types", "EnvironmentAuthConnectionLocator": ".types", "EnvironmentVariableAuthConnectionValue": ".types", "EnvironmentVariableAuthConnectionValueRequest": ".types", @@ -2383,6 +2474,7 @@ "GetConvAiSettingsResponseModel": ".types", "GetConversationResponseModel": ".types", "GetConversationResponseModelStatus": ".types", + "GetConversationTagsPageResponseModel": ".types", "GetConversationUsersPageResponseModel": ".types", "GetConversationsPageResponseModel": ".types", "GetKnowledgeBaseDependentAgentsResponseModel": ".types", @@ -2447,6 +2539,7 @@ "GetSecretDependenciesResponseModelDependenciesZeroItem_Available": ".types", "GetSecretDependenciesResponseModelDependenciesZeroItem_Unknown": ".types", "GetSimulationTestResponseModel": ".types", + "GetSipLogMessagesResponse": ".types", "GetSpeechHistoryResponse": ".types", "GetTestInvocationsPageResponseModel": ".types", "GetTestSuiteInvocationResponseModel": ".types", @@ -2462,6 +2555,7 @@ "GetVoicesV2Response": ".types", "GetWhatsAppAccountResponse": ".types", "GetWorkspaceSecretsResponseModel": ".types", + "GroupManagementActivityId": ".types", "GuardrailExecutionMode": ".types", "GuardrailsV1Input": ".types", "GuardrailsV1Output": ".types", @@ -2471,9 +2565,14 @@ "HistoryListRequestSortDirection": ".history", "HistoryListRequestSource": ".history", "HtmlExportOptions": ".types", + "HttpRequestModel": ".types", "HttpValidationError": ".types", "Icon": ".types", + "ImageAnalysis": ".types", + "ImageAnalysisResult": ".types", + "ImageAnalysisStatus": ".types", "ImageAvatar": ".types", + "ImageSubject": ".types", "InboundSipTrunkConfigRequestModel": ".types", "InitialiseContext": ".types", "InitializeConnection": ".types", @@ -2498,6 +2597,9 @@ "KnowledgeBaseFolderPathSegmentResponseModel": ".types", "KnowledgeBaseFolderPathSegmentSummaryResponseModel": ".types", "KnowledgeBaseLocator": ".types", + "KnowledgeBaseRagToolConfig": ".types", + "KnowledgeBaseRagToolResultModel": ".types", + "KnowledgeBaseRagToolStatus": ".types", "KnowledgeBaseSortBy": ".types", "KnowledgeBaseSourceFileUrlResponseModel": ".types", "KnowledgeBaseSummaryBatchSuccessfulResponseModel": ".types", @@ -2513,6 +2615,7 @@ "LanguagePresetOutput": ".types", "LanguagePresetTranslation": ".types", "LanguageResponse": ".types", + "LeaveMessageParams": ".types", "LibraryVoiceResponse": ".types", "LibraryVoiceResponseModelCategory": ".types", "ListAgentRulesParams": ".types", @@ -2520,6 +2623,7 @@ "ListAuthConnectionsResponse": ".types", "ListAuthConnectionsResponseAuthConnectionsItem": ".types", "ListAuthConnectionsResponseAuthConnectionsItem_ApiIntegrationOauth2AuthCode": ".types", + "ListAuthConnectionsResponseAuthConnectionsItem_ApiIntegrationOauth2CustomApp": ".types", "ListAuthConnectionsResponseAuthConnectionsItem_BasicAuth": ".types", "ListAuthConnectionsResponseAuthConnectionsItem_BearerAuth": ".types", "ListAuthConnectionsResponseAuthConnectionsItem_CustomHeaderAuth": ".types", @@ -2531,11 +2635,13 @@ "ListCalendarEventsParams": ".types", "ListClientInteractionsParams": ".types", "ListClientsParams": ".types", + "ListGroupSessionsParams": ".types", "ListHolidaysParams": ".types", "ListLocationsParams": ".types", "ListMcpToolsResponseModel": ".types", "ListProductsParams": ".types", "ListResponseAgentBranchSummary": ".types", + "ListResponseApiIntegrationDocResponse": ".types", "ListResponseMeta": ".types", "ListServicesParams": ".types", "ListStaffParams": ".types", @@ -2626,6 +2732,7 @@ "OAuth2ClientCredsResponse": ".types", "OAuth2JwtResponse": ".types", "OAuth2JwtResponseAlgorithm": ".types", + "OAuth2JwtResponseTokenResponseField": ".types", "OAuthConnectionStatus": ".types", "ObjectJsonSchemaPropertyInput": ".types", "ObjectJsonSchemaPropertyInputPropertiesValue": ".types", @@ -2681,6 +2788,7 @@ "PostWorkspaceSecretResponseModel": ".types", "PreToolSpeechMode": ".types", "PreviewAudioDbModel": ".types", + "Price": ".types", "PrivacyConfigInput": ".types", "PrivacyConfigOutput": ".types", "PrivateKeyJwtResponse": ".types", @@ -2816,6 +2924,7 @@ "ReferencedToolCommonModelType": ".types", "RegexParameterEvaluationStrategy": ".types", "RegionConfigRequest": ".types", + "RegisterForGroupSessionParams": ".types", "RemoveMemberFromGroupRequest": ".types", "Render": ".types", "RenderStatus": ".types", @@ -2824,6 +2933,7 @@ "RequiredConstraint": ".types", "RequiredConstraints": ".types", "ResourceAccessInfo": ".types", + "ResourceAccessInfoAnonymousAccessLevelOverride": ".types", "ResourceAccessInfoRole": ".types", "ResourceMetadataResponseModel": ".types", "ResourceMetadataResponseModelAnonymousAccessLevelOverride": ".types", @@ -2846,6 +2956,7 @@ "SayNodeLiteralMessageOutput": ".types", "SayNodePromptMessageInput": ".types", "SayNodePromptMessageOutput": ".types", + "ScheduleGroupSessionParams": ".types", "ScopedAnalysisResult": ".types", "ScribeAuthErrorPayload": ".types", "ScribeChunkSizeExceededErrorPayload": ".types", @@ -2883,6 +2994,7 @@ "SessionStartedPayloadConfig": ".types", "SessionStartedPayloadConfigCommitStrategy": ".types", "SetBookingSlugParams": ".types", + "SeverityId": ".types", "SfxSourceContext": ".types", "ShareOptionResponseModel": ".types", "ShareOptionResponseModelType": ".types", @@ -2893,6 +3005,8 @@ "SingleTestRunRequestModel": ".types", "SingleUseTokenResponseModel": ".types", "SingleUseTokenType": ".types", + "SipLogMessage": ".types", + "SipLogMessageDirection": ".types", "SipMediaEncryptionEnum": ".types", "SipTrunkCredentialsRequestModel": ".types", "SipTrunkOutboundCallResponse": ".types", @@ -2901,6 +3015,8 @@ "SipUriTransferDestination": ".types", "SkipTurnToolConfig": ".types", "SkipTurnToolResponseModel": ".types", + "SmsConversationInfo": ".types", + "SmsConversationInfoDirection": ".types", "SoftTimeoutConfig": ".types", "SoftTimeoutConfigOverride": ".types", "SoftTimeoutConfigOverrideConfig": ".types", @@ -2917,6 +3033,8 @@ "SpeakerSeparationResponseModelStatus": ".types", "SpeakerTrack": ".types", "SpeakerUpdatedResponse": ".types", + "SpeechEngineConfig": ".types", + "SpeechEngineConfigRequestHeadersValue": ".types", "SpeechHistoryItemResponse": ".types", "SpeechHistoryItemResponseModelSource": ".types", "SpeechHistoryItemResponseModelVoiceCategory": ".types", @@ -2940,6 +3058,7 @@ "SrtExportOptions": ".types", "StartPvcVoiceTrainingResponseModel": ".types", "StartSpeakerSeparationResponseModel": ".types", + "StatusId": ".types", "StreamingAudioChunkWithTimestampsAndVoiceSegmentsResponseModel": ".types", "StreamingAudioChunkWithTimestampsResponse": ".types", "StudioAgentSettingsModel": ".types", @@ -2957,6 +3076,7 @@ "SystemToolConfigInput": ".types", "SystemToolConfigInputParams": ".types", "SystemToolConfigInputParams_EndCall": ".types", + "SystemToolConfigInputParams_KnowledgeBaseRag": ".types", "SystemToolConfigInputParams_LanguageDetection": ".types", "SystemToolConfigInputParams_PlayKeypadTouchTone": ".types", "SystemToolConfigInputParams_SkipTurn": ".types", @@ -2966,6 +3086,7 @@ "SystemToolConfigOutput": ".types", "SystemToolConfigOutputParams": ".types", "SystemToolConfigOutputParams_EndCall": ".types", + "SystemToolConfigOutputParams_KnowledgeBaseRag": ".types", "SystemToolConfigOutputParams_LanguageDetection": ".types", "SystemToolConfigOutputParams_PlayKeypadTouchTone": ".types", "SystemToolConfigOutputParams_SkipTurn": ".types", @@ -3112,6 +3233,7 @@ "UpdateClientParams": ".types", "UpdateCustomerFacingConfigParams": ".types", "UpdateEnvironmentVariableRequestValuesValue": ".environment_variables", + "UpdateGroupSessionSeatsParams": ".types", "UpdateHolidayParams": ".types", "UpdateLocationParams": ".types", "UpdateProductParams": ".types", @@ -3124,11 +3246,15 @@ "UpdateToolCallUnitTestRequest": ".types", "UpdateWorkspaceMemberResponseModel": ".types", "UrlAvatar": ".types", + "UrlModel": ".types", "UsageAggregationInterval": ".types", "UsageCharactersResponseModel": ".types", "User": ".types", + "UserAccessManagementActivityId": ".types", "UserFeedback": ".types", "UserFeedbackScore": ".types", + "UserModel": ".types", + "UserTypeId": ".types", "UsersSortBy": ".types", "UtteranceResponseModel": ".types", "VadConfig": ".types", @@ -3186,6 +3312,7 @@ "WebhookToolApiSchemaConfigOutputRequestHeadersValue": ".types", "WebhookToolConfigInput": ".types", "WebhookToolConfigOutput": ".types", + "WebhookTranscriptFormat": ".types", "WebhookUsageType": ".types", "WebsocketTtsClientMessageMulti": ".types", "WebsocketTtsServerMessageMulti": ".types", @@ -3324,6 +3451,9 @@ "WorkspaceAnalyticsQueryResponseModelRowsItemItem": ".types", "WorkspaceApiKeyListResponseModel": ".types", "WorkspaceApiKeyResponseModel": ".types", + "WorkspaceAuditLogEntryResponse": ".types", + "WorkspaceAuditLogEntryResponseActivityId": ".types", + "WorkspaceAuditLogsPageResponse": ".types", "WorkspaceBatchCallsResponse": ".types", "WorkspaceCreateApiKeyResponseModel": ".types", "WorkspaceCreateWebhookResponseModel": ".types", @@ -3396,6 +3526,8 @@ def __dir__(): __all__ = [ + "AccountChangeActivityId", + "ActorModel", "AddChapterResponseModel", "AddKnowledgeBaseResponseModel", "AddProjectRequest", @@ -3469,8 +3601,11 @@ def __dir__(): "AnalysisPropertyConstantValue", "AnalysisPropertyType", "AnalysisScope", + "ApiIntegrationDocResponse", "ApiIntegrationOAuth2AuthCodeResponse", "ApiIntegrationOAuth2AuthCodeResponseScopeSeparator", + "ApiIntegrationOAuth2CustomAppResponse", + "ApiIntegrationOAuth2CustomAppResponseScopeSeparator", "ApiIntegrationWebhookOverrides", "ApiIntegrationWebhookOverridesRequestHeadersValue", "ApiIntegrationWebhookOverridesSchemaOverridesValue", @@ -3605,8 +3740,13 @@ def __dir__(): "AuthConnectionDependenciesToolsItem_Unknown", "AuthConnectionLocator", "AuthSettings", + "AuthenticationActivityId", "AuthorizationMethod", "AutoSyncInfo", + "BackgroundMusicConfig", + "BackgroundMusicConfigWorkflowOverride", + "BackgroundMusicPresetId", + "BackgroundMusicSourceType", "BackupLlmDefault", "BackupLlmDisabled", "BackupLlmOverride", @@ -3648,6 +3788,9 @@ def __dir__(): "BuiltInToolsOutput", "BuiltInToolsWorkflowOverrideInput", "BuiltInToolsWorkflowOverrideOutput", + "CancelCalendarEventParams", + "CancelGroupSessionForAllParams", + "CancelGroupSessionRegistrationParams", "CanvasPlacement", "CaptionStyleCharacterAnimationModel", "CaptionStyleCharacterAnimationModelEnterType", @@ -3727,6 +3870,7 @@ def __dir__(): "ContentGuardrailOutputTriggerAction_Retry", "ContentThresholdGuardrail", "ContentThresholdGuardrailThreshold", + "ContextualUpdateInfo", "Contributor", "ConvAiDynamicVariable", "ConvAiEnvVarLocator", @@ -3745,15 +3889,18 @@ def __dir__(): "ConvAiUserSecretDbModel", "ConvAiWebhooks", "ConvAiWorkspaceStoredSecretConfig", + "ConversationAsrUsageModel", "ConversationChargingCommonModel", - "ConversationConfig", "ConversationConfigClientOverrideConfigInput", "ConversationConfigClientOverrideConfigOutput", "ConversationConfigClientOverrideInput", "ConversationConfigClientOverrideOutput", + "ConversationConfigInput", + "ConversationConfigOutput", "ConversationConfigOverride", "ConversationConfigOverrideConfig", - "ConversationConfigWorkflowOverride", + "ConversationConfigWorkflowOverrideInput", + "ConversationConfigWorkflowOverrideOutput", "ConversationDeletionSettings", "ConversationFeedbackType", "ConversationHistoryAnalysisCommonModel", @@ -3788,6 +3935,7 @@ def __dir__(): "ConversationHistoryTranscriptSystemToolResultCommonModelInput", "ConversationHistoryTranscriptSystemToolResultCommonModelInputResult", "ConversationHistoryTranscriptSystemToolResultCommonModelInputResult_EndCallSuccess", + "ConversationHistoryTranscriptSystemToolResultCommonModelInputResult_KnowledgeBaseRagSuccess", "ConversationHistoryTranscriptSystemToolResultCommonModelInputResult_LanguageDetectionSuccess", "ConversationHistoryTranscriptSystemToolResultCommonModelInputResult_PlayDtmfError", "ConversationHistoryTranscriptSystemToolResultCommonModelInputResult_PlayDtmfSuccess", @@ -3802,6 +3950,7 @@ def __dir__(): "ConversationHistoryTranscriptSystemToolResultCommonModelOutput", "ConversationHistoryTranscriptSystemToolResultCommonModelOutputResult", "ConversationHistoryTranscriptSystemToolResultCommonModelOutputResult_EndCallSuccess", + "ConversationHistoryTranscriptSystemToolResultCommonModelOutputResult_KnowledgeBaseRagSuccess", "ConversationHistoryTranscriptSystemToolResultCommonModelOutputResult_LanguageDetectionSuccess", "ConversationHistoryTranscriptSystemToolResultCommonModelOutputResult_PlayDtmfError", "ConversationHistoryTranscriptSystemToolResultCommonModelOutputResult_PlayDtmfSuccess", @@ -3847,10 +3996,14 @@ def __dir__(): "ConversationSource", "ConversationSummaryResponseModel", "ConversationSummaryResponseModelStatus", + "ConversationTagResponseModel", "ConversationTokenDbModel", "ConversationTokenPurpose", + "ConversationTtsUsageModel", "ConversationTurnMetrics", "ConversationUserResponseModel", + "ConversationVoiceRewardModel", + "ConversationVoiceUsageModel", "ConversationalConfig", "ConversationalConfigApiModelWorkflowOverrideInput", "ConversationalConfigApiModelWorkflowOverrideOutput", @@ -3875,6 +4028,7 @@ def __dir__(): "CreateOAuth2ClientCredsRequest", "CreateOAuth2JwtRequest", "CreateOAuth2JwtRequestAlgorithm", + "CreateOAuth2JwtRequestTokenResponseField", "CreatePhoneNumberResponseModel", "CreatePreviouslyGeneratedVoiceRequest", "CreatePrivateKeyJwtRequest", @@ -3921,6 +4075,7 @@ def __dir__(): "DeleteClientInteractionParams", "DeleteClientParams", "DeleteDubbingResponseModel", + "DeleteGroupSessionParams", "DeleteHistoryItemResponse", "DeleteHolidayParams", "DeleteLocationParams", @@ -3949,6 +4104,7 @@ def __dir__(): "DependentUnknownToolIdentifier", "DetailedMusicResponse", "DetectedEntity", + "DeviceModel", "DialogueInput", "DialogueInputResponseModel", "DialogueTextAlignment", @@ -3971,7 +4127,6 @@ def __dir__(): "DubbingMediaReference", "DubbingMetadataPageResponseModel", "DubbingMetadataResponse", - "DubbingModel", "DubbingRenderResponseModel", "DubbingResource", "DubbingTranscript", @@ -4004,6 +4159,7 @@ def __dir__(): "EndCallToolConfig", "EndCallToolResultModel", "EndCallTriggerAction", + "EntityManagementActivityId", "EnvironmentAuthConnectionLocator", "EnvironmentVariableAuthConnectionValue", "EnvironmentVariableAuthConnectionValueRequest", @@ -4081,6 +4237,7 @@ def __dir__(): "GetConvAiSettingsResponseModel", "GetConversationResponseModel", "GetConversationResponseModelStatus", + "GetConversationTagsPageResponseModel", "GetConversationUsersPageResponseModel", "GetConversationsPageResponseModel", "GetKnowledgeBaseDependentAgentsResponseModel", @@ -4145,6 +4302,7 @@ def __dir__(): "GetSecretDependenciesResponseModelDependenciesZeroItem_Available", "GetSecretDependenciesResponseModelDependenciesZeroItem_Unknown", "GetSimulationTestResponseModel", + "GetSipLogMessagesResponse", "GetSpeechHistoryResponse", "GetTestInvocationsPageResponseModel", "GetTestSuiteInvocationResponseModel", @@ -4160,6 +4318,7 @@ def __dir__(): "GetVoicesV2Response", "GetWhatsAppAccountResponse", "GetWorkspaceSecretsResponseModel", + "GroupManagementActivityId", "GuardrailExecutionMode", "GuardrailsV1Input", "GuardrailsV1Output", @@ -4169,9 +4328,14 @@ def __dir__(): "HistoryListRequestSortDirection", "HistoryListRequestSource", "HtmlExportOptions", + "HttpRequestModel", "HttpValidationError", "Icon", + "ImageAnalysis", + "ImageAnalysisResult", + "ImageAnalysisStatus", "ImageAvatar", + "ImageSubject", "InboundSipTrunkConfigRequestModel", "InitialiseContext", "InitializeConnection", @@ -4196,6 +4360,9 @@ def __dir__(): "KnowledgeBaseFolderPathSegmentResponseModel", "KnowledgeBaseFolderPathSegmentSummaryResponseModel", "KnowledgeBaseLocator", + "KnowledgeBaseRagToolConfig", + "KnowledgeBaseRagToolResultModel", + "KnowledgeBaseRagToolStatus", "KnowledgeBaseSortBy", "KnowledgeBaseSourceFileUrlResponseModel", "KnowledgeBaseSummaryBatchSuccessfulResponseModel", @@ -4211,6 +4378,7 @@ def __dir__(): "LanguagePresetOutput", "LanguagePresetTranslation", "LanguageResponse", + "LeaveMessageParams", "LibraryVoiceResponse", "LibraryVoiceResponseModelCategory", "ListAgentRulesParams", @@ -4218,6 +4386,7 @@ def __dir__(): "ListAuthConnectionsResponse", "ListAuthConnectionsResponseAuthConnectionsItem", "ListAuthConnectionsResponseAuthConnectionsItem_ApiIntegrationOauth2AuthCode", + "ListAuthConnectionsResponseAuthConnectionsItem_ApiIntegrationOauth2CustomApp", "ListAuthConnectionsResponseAuthConnectionsItem_BasicAuth", "ListAuthConnectionsResponseAuthConnectionsItem_BearerAuth", "ListAuthConnectionsResponseAuthConnectionsItem_CustomHeaderAuth", @@ -4229,11 +4398,13 @@ def __dir__(): "ListCalendarEventsParams", "ListClientInteractionsParams", "ListClientsParams", + "ListGroupSessionsParams", "ListHolidaysParams", "ListLocationsParams", "ListMcpToolsResponseModel", "ListProductsParams", "ListResponseAgentBranchSummary", + "ListResponseApiIntegrationDocResponse", "ListResponseMeta", "ListServicesParams", "ListStaffParams", @@ -4324,6 +4495,7 @@ def __dir__(): "OAuth2ClientCredsResponse", "OAuth2JwtResponse", "OAuth2JwtResponseAlgorithm", + "OAuth2JwtResponseTokenResponseField", "OAuthConnectionStatus", "ObjectJsonSchemaPropertyInput", "ObjectJsonSchemaPropertyInputPropertiesValue", @@ -4379,6 +4551,7 @@ def __dir__(): "PostWorkspaceSecretResponseModel", "PreToolSpeechMode", "PreviewAudioDbModel", + "Price", "PrivacyConfigInput", "PrivacyConfigOutput", "PrivateKeyJwtResponse", @@ -4514,6 +4687,7 @@ def __dir__(): "ReferencedToolCommonModelType", "RegexParameterEvaluationStrategy", "RegionConfigRequest", + "RegisterForGroupSessionParams", "RemoveMemberFromGroupRequest", "Render", "RenderStatus", @@ -4522,6 +4696,7 @@ def __dir__(): "RequiredConstraint", "RequiredConstraints", "ResourceAccessInfo", + "ResourceAccessInfoAnonymousAccessLevelOverride", "ResourceAccessInfoRole", "ResourceMetadataResponseModel", "ResourceMetadataResponseModelAnonymousAccessLevelOverride", @@ -4544,6 +4719,7 @@ def __dir__(): "SayNodeLiteralMessageOutput", "SayNodePromptMessageInput", "SayNodePromptMessageOutput", + "ScheduleGroupSessionParams", "ScopedAnalysisResult", "ScribeAuthErrorPayload", "ScribeChunkSizeExceededErrorPayload", @@ -4581,6 +4757,7 @@ def __dir__(): "SessionStartedPayloadConfig", "SessionStartedPayloadConfigCommitStrategy", "SetBookingSlugParams", + "SeverityId", "SfxSourceContext", "ShareOptionResponseModel", "ShareOptionResponseModelType", @@ -4591,6 +4768,8 @@ def __dir__(): "SingleTestRunRequestModel", "SingleUseTokenResponseModel", "SingleUseTokenType", + "SipLogMessage", + "SipLogMessageDirection", "SipMediaEncryptionEnum", "SipTrunkCredentialsRequestModel", "SipTrunkOutboundCallResponse", @@ -4599,6 +4778,8 @@ def __dir__(): "SipUriTransferDestination", "SkipTurnToolConfig", "SkipTurnToolResponseModel", + "SmsConversationInfo", + "SmsConversationInfoDirection", "SoftTimeoutConfig", "SoftTimeoutConfigOverride", "SoftTimeoutConfigOverrideConfig", @@ -4615,6 +4796,8 @@ def __dir__(): "SpeakerSeparationResponseModelStatus", "SpeakerTrack", "SpeakerUpdatedResponse", + "SpeechEngineConfig", + "SpeechEngineConfigRequestHeadersValue", "SpeechHistoryItemResponse", "SpeechHistoryItemResponseModelSource", "SpeechHistoryItemResponseModelVoiceCategory", @@ -4638,6 +4821,7 @@ def __dir__(): "SrtExportOptions", "StartPvcVoiceTrainingResponseModel", "StartSpeakerSeparationResponseModel", + "StatusId", "StreamingAudioChunkWithTimestampsAndVoiceSegmentsResponseModel", "StreamingAudioChunkWithTimestampsResponse", "StudioAgentSettingsModel", @@ -4655,6 +4839,7 @@ def __dir__(): "SystemToolConfigInput", "SystemToolConfigInputParams", "SystemToolConfigInputParams_EndCall", + "SystemToolConfigInputParams_KnowledgeBaseRag", "SystemToolConfigInputParams_LanguageDetection", "SystemToolConfigInputParams_PlayKeypadTouchTone", "SystemToolConfigInputParams_SkipTurn", @@ -4664,6 +4849,7 @@ def __dir__(): "SystemToolConfigOutput", "SystemToolConfigOutputParams", "SystemToolConfigOutputParams_EndCall", + "SystemToolConfigOutputParams_KnowledgeBaseRag", "SystemToolConfigOutputParams_LanguageDetection", "SystemToolConfigOutputParams_PlayKeypadTouchTone", "SystemToolConfigOutputParams_SkipTurn", @@ -4810,6 +4996,7 @@ def __dir__(): "UpdateClientParams", "UpdateCustomerFacingConfigParams", "UpdateEnvironmentVariableRequestValuesValue", + "UpdateGroupSessionSeatsParams", "UpdateHolidayParams", "UpdateLocationParams", "UpdateProductParams", @@ -4822,11 +5009,15 @@ def __dir__(): "UpdateToolCallUnitTestRequest", "UpdateWorkspaceMemberResponseModel", "UrlAvatar", + "UrlModel", "UsageAggregationInterval", "UsageCharactersResponseModel", "User", + "UserAccessManagementActivityId", "UserFeedback", "UserFeedbackScore", + "UserModel", + "UserTypeId", "UsersSortBy", "UtteranceResponseModel", "VadConfig", @@ -4884,6 +5075,7 @@ def __dir__(): "WebhookToolApiSchemaConfigOutputRequestHeadersValue", "WebhookToolConfigInput", "WebhookToolConfigOutput", + "WebhookTranscriptFormat", "WebhookUsageType", "WebsocketTtsClientMessageMulti", "WebsocketTtsServerMessageMulti", @@ -5022,6 +5214,9 @@ def __dir__(): "WorkspaceAnalyticsQueryResponseModelRowsItemItem", "WorkspaceApiKeyListResponseModel", "WorkspaceApiKeyResponseModel", + "WorkspaceAuditLogEntryResponse", + "WorkspaceAuditLogEntryResponseActivityId", + "WorkspaceAuditLogsPageResponse", "WorkspaceBatchCallsResponse", "WorkspaceCreateApiKeyResponseModel", "WorkspaceCreateWebhookResponseModel", diff --git a/src/elevenlabs/conversational_ai/__init__.py b/src/elevenlabs/conversational_ai/__init__.py index b9d8bd0d..457ea3fb 100644 --- a/src/elevenlabs/conversational_ai/__init__.py +++ b/src/elevenlabs/conversational_ai/__init__.py @@ -27,7 +27,7 @@ whatsapp, whatsapp_accounts, ) - from .conversations import ConversationsListRequestSummaryMode + from .conversations import ConversationsListRequestExcludeStatusesItem, ConversationsListRequestSummaryMode from .knowledge_base import ( KnowledgeBaseGetOrCreateRagIndexesResponseValue, KnowledgeBaseGetOrCreateRagIndexesResponseValue_Failure, @@ -81,6 +81,7 @@ "BodySendAnOutboundMessageViaWhatsAppV1ConvaiWhatsappOutboundMessagePostTemplateParamsItem_Body": ".whatsapp", "BodySendAnOutboundMessageViaWhatsAppV1ConvaiWhatsappOutboundMessagePostTemplateParamsItem_Button": ".whatsapp", "BodySendAnOutboundMessageViaWhatsAppV1ConvaiWhatsappOutboundMessagePostTemplateParamsItem_Header": ".whatsapp", + "ConversationsListRequestExcludeStatusesItem": ".conversations", "ConversationsListRequestSummaryMode": ".conversations", "KnowledgeBaseGetOrCreateRagIndexesResponseValue": ".knowledge_base", "KnowledgeBaseGetOrCreateRagIndexesResponseValue_Failure": ".knowledge_base", @@ -164,6 +165,7 @@ def __dir__(): "BodySendAnOutboundMessageViaWhatsAppV1ConvaiWhatsappOutboundMessagePostTemplateParamsItem_Body", "BodySendAnOutboundMessageViaWhatsAppV1ConvaiWhatsappOutboundMessagePostTemplateParamsItem_Button", "BodySendAnOutboundMessageViaWhatsAppV1ConvaiWhatsappOutboundMessagePostTemplateParamsItem_Header", + "ConversationsListRequestExcludeStatusesItem", "ConversationsListRequestSummaryMode", "KnowledgeBaseGetOrCreateRagIndexesResponseValue", "KnowledgeBaseGetOrCreateRagIndexesResponseValue_Failure", diff --git a/src/elevenlabs/conversational_ai/agents/summaries/client.py b/src/elevenlabs/conversational_ai/agents/summaries/client.py index 89a34eb0..905af664 100644 --- a/src/elevenlabs/conversational_ai/agents/summaries/client.py +++ b/src/elevenlabs/conversational_ai/agents/summaries/client.py @@ -52,7 +52,9 @@ def get( client = ElevenLabs( api_key="YOUR_API_KEY", ) - client.conversational_ai.agents.summaries.get() + client.conversational_ai.agents.summaries.get( + agent_ids=["agent_ids"], + ) """ _response = self._raw_client.get(agent_ids=agent_ids, request_options=request_options) return _response.data @@ -107,7 +109,9 @@ async def get( async def main() -> None: - await client.conversational_ai.agents.summaries.get() + await client.conversational_ai.agents.summaries.get( + agent_ids=["agent_ids"], + ) asyncio.run(main()) diff --git a/src/elevenlabs/conversational_ai/batch_calls/client.py b/src/elevenlabs/conversational_ai/batch_calls/client.py index 9308d49e..b3a17c0b 100644 --- a/src/elevenlabs/conversational_ai/batch_calls/client.py +++ b/src/elevenlabs/conversational_ai/batch_calls/client.py @@ -117,6 +117,7 @@ def list( *, limit: typing.Optional[int] = None, last_doc: typing.Optional[str] = None, + agent_id: typing.Optional[str] = None, request_options: typing.Optional[RequestOptions] = None, ) -> WorkspaceBatchCallsResponse: """ @@ -128,6 +129,9 @@ def list( last_doc : typing.Optional[str] + agent_id : typing.Optional[str] + Filter batch calls to a single agent. + request_options : typing.Optional[RequestOptions] Request-specific configuration. @@ -146,9 +150,12 @@ def list( client.conversational_ai.batch_calls.list( limit=1, last_doc="last_doc", + agent_id="agent_id", ) """ - _response = self._raw_client.list(limit=limit, last_doc=last_doc, request_options=request_options) + _response = self._raw_client.list( + limit=limit, last_doc=last_doc, agent_id=agent_id, request_options=request_options + ) return _response.data def get( @@ -382,6 +389,7 @@ async def list( *, limit: typing.Optional[int] = None, last_doc: typing.Optional[str] = None, + agent_id: typing.Optional[str] = None, request_options: typing.Optional[RequestOptions] = None, ) -> WorkspaceBatchCallsResponse: """ @@ -393,6 +401,9 @@ async def list( last_doc : typing.Optional[str] + agent_id : typing.Optional[str] + Filter batch calls to a single agent. + request_options : typing.Optional[RequestOptions] Request-specific configuration. @@ -416,12 +427,15 @@ async def main() -> None: await client.conversational_ai.batch_calls.list( limit=1, last_doc="last_doc", + agent_id="agent_id", ) asyncio.run(main()) """ - _response = await self._raw_client.list(limit=limit, last_doc=last_doc, request_options=request_options) + _response = await self._raw_client.list( + limit=limit, last_doc=last_doc, agent_id=agent_id, request_options=request_options + ) return _response.data async def get( diff --git a/src/elevenlabs/conversational_ai/batch_calls/raw_client.py b/src/elevenlabs/conversational_ai/batch_calls/raw_client.py index c6de9b1d..b1b5666f 100644 --- a/src/elevenlabs/conversational_ai/batch_calls/raw_client.py +++ b/src/elevenlabs/conversational_ai/batch_calls/raw_client.py @@ -137,6 +137,7 @@ def list( *, limit: typing.Optional[int] = None, last_doc: typing.Optional[str] = None, + agent_id: typing.Optional[str] = None, request_options: typing.Optional[RequestOptions] = None, ) -> HttpResponse[WorkspaceBatchCallsResponse]: """ @@ -148,6 +149,9 @@ def list( last_doc : typing.Optional[str] + agent_id : typing.Optional[str] + Filter batch calls to a single agent. + request_options : typing.Optional[RequestOptions] Request-specific configuration. @@ -162,6 +166,7 @@ def list( params={ "limit": limit, "last_doc": last_doc, + "agent_id": agent_id, }, request_options=request_options, ) @@ -493,6 +498,7 @@ async def list( *, limit: typing.Optional[int] = None, last_doc: typing.Optional[str] = None, + agent_id: typing.Optional[str] = None, request_options: typing.Optional[RequestOptions] = None, ) -> AsyncHttpResponse[WorkspaceBatchCallsResponse]: """ @@ -504,6 +510,9 @@ async def list( last_doc : typing.Optional[str] + agent_id : typing.Optional[str] + Filter batch calls to a single agent. + request_options : typing.Optional[RequestOptions] Request-specific configuration. @@ -518,6 +527,7 @@ async def list( params={ "limit": limit, "last_doc": last_doc, + "agent_id": agent_id, }, request_options=request_options, ) diff --git a/src/elevenlabs/conversational_ai/conversations/__init__.py b/src/elevenlabs/conversational_ai/conversations/__init__.py index 4b3ad4a2..7c3388e8 100644 --- a/src/elevenlabs/conversational_ai/conversations/__init__.py +++ b/src/elevenlabs/conversational_ai/conversations/__init__.py @@ -6,10 +6,11 @@ from importlib import import_module if typing.TYPE_CHECKING: - from .types import ConversationsListRequestSummaryMode - from . import analysis, audio, feedback, files, messages, topics + from .types import ConversationsListRequestExcludeStatusesItem, ConversationsListRequestSummaryMode + from . import analysis, audio, feedback, files, messages, tags, topics from .messages import MessagesTextSearchRequestSummaryMode _dynamic_imports: typing.Dict[str, str] = { + "ConversationsListRequestExcludeStatusesItem": ".types", "ConversationsListRequestSummaryMode": ".types", "MessagesTextSearchRequestSummaryMode": ".messages", "analysis": ".analysis", @@ -17,6 +18,7 @@ "feedback": ".feedback", "files": ".files", "messages": ".messages", + "tags": ".tags", "topics": ".topics", } @@ -43,6 +45,7 @@ def __dir__(): __all__ = [ + "ConversationsListRequestExcludeStatusesItem", "ConversationsListRequestSummaryMode", "MessagesTextSearchRequestSummaryMode", "analysis", @@ -50,5 +53,6 @@ def __dir__(): "feedback", "files", "messages", + "tags", "topics", ] diff --git a/src/elevenlabs/conversational_ai/conversations/client.py b/src/elevenlabs/conversational_ai/conversations/client.py index 5248a79b..84cadd48 100644 --- a/src/elevenlabs/conversational_ai/conversations/client.py +++ b/src/elevenlabs/conversational_ai/conversations/client.py @@ -11,8 +11,10 @@ from ...types.evaluation_success_result import EvaluationSuccessResult from ...types.get_conversation_response_model import GetConversationResponseModel from ...types.get_conversations_page_response_model import GetConversationsPageResponseModel +from ...types.get_sip_log_messages_response import GetSipLogMessagesResponse from ...types.token_response_model import TokenResponseModel from .raw_client import AsyncRawConversationsClient, RawConversationsClient +from .types.conversations_list_request_exclude_statuses_item import ConversationsListRequestExcludeStatusesItem from .types.conversations_list_request_summary_mode import ConversationsListRequestSummaryMode if typing.TYPE_CHECKING: @@ -21,6 +23,7 @@ from .feedback.client import AsyncFeedbackClient, FeedbackClient from .files.client import AsyncFilesClient, FilesClient from .messages.client import AsyncMessagesClient, MessagesClient + from .tags.client import AsyncTagsClient, TagsClient from .topics.client import AsyncTopicsClient, TopicsClient @@ -31,6 +34,7 @@ def __init__(self, *, client_wrapper: SyncClientWrapper): self._audio: typing.Optional[AudioClient] = None self._feedback: typing.Optional[FeedbackClient] = None self._messages: typing.Optional[MessagesClient] = None + self._tags: typing.Optional[TagsClient] = None self._files: typing.Optional[FilesClient] = None self._topics: typing.Optional[TopicsClient] = None self._analysis: typing.Optional[AnalysisClient] = None @@ -186,6 +190,13 @@ def list( conversation_initiation_source: typing.Optional[ConversationInitiationSource] = None, branch_id: typing.Optional[str] = None, topic_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None, + exclude_statuses: typing.Optional[ + typing.Union[ + ConversationsListRequestExcludeStatusesItem, + typing.Sequence[ConversationsListRequestExcludeStatusesItem], + ] + ] = None, + tag_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None, request_options: typing.Optional[RequestOptions] = None, ) -> GetConversationsPageResponseModel: """ @@ -261,6 +272,12 @@ def list( topic_ids : typing.Optional[typing.Union[str, typing.Sequence[str]]] Filter conversations by topic IDs assigned during topic discovery. + exclude_statuses : typing.Optional[typing.Union[ConversationsListRequestExcludeStatusesItem, typing.Sequence[ConversationsListRequestExcludeStatusesItem]]] + Exclude conversations with the given statuses. Useful for hiding in-progress / processing conversations from list views. + + tag_ids : typing.Optional[typing.Union[str, typing.Sequence[str]]] + Filter conversations by conversation tag IDs assigned via the conversation-tags endpoints. + request_options : typing.Optional[RequestOptions] Request-specific configuration. @@ -288,11 +305,20 @@ def list( rating_min=1, has_feedback_comment=True, user_id="user_id", + evaluation_params=["evaluation_params"], + data_collection_params=["data_collection_params"], + tool_names=["tool_names"], + tool_names_successful=["tool_names_successful"], + tool_names_errored=["tool_names_errored"], + main_languages=["main_languages"], page_size=1, summary_mode="exclude", search="search", conversation_initiation_source="unknown", branch_id="branch_id", + topic_ids=["topic_ids"], + exclude_statuses=["initiated"], + tag_ids=["tag_ids"], ) """ _response = self._raw_client.list( @@ -319,6 +345,8 @@ def list( conversation_initiation_source=conversation_initiation_source, branch_id=branch_id, topic_ids=topic_ids, + exclude_statuses=exclude_statuses, + tag_ids=tag_ids, request_options=request_options, ) return _response.data @@ -387,6 +415,53 @@ def delete(self, conversation_id: str, *, request_options: typing.Optional[Reque _response = self._raw_client.delete(conversation_id, request_options=request_options) return _response.data + def get_sip_messages( + self, + conversation_id: str, + *, + page_size: typing.Optional[int] = None, + cursor: typing.Optional[str] = None, + request_options: typing.Optional[RequestOptions] = None, + ) -> GetSipLogMessagesResponse: + """ + Get SIP messages associated with a conversation's phone call + + Parameters + ---------- + conversation_id : str + The id of the conversation you're taking the action on. + + page_size : typing.Optional[int] + + cursor : typing.Optional[str] + Used for fetching next page. Cursor is returned in the response. + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + GetSipLogMessagesResponse + Successful Response + + Examples + -------- + from elevenlabs import ElevenLabs + + client = ElevenLabs( + api_key="YOUR_API_KEY", + ) + client.conversational_ai.conversations.get_sip_messages( + conversation_id="21m00Tcm4TlvDq8ikWAM", + page_size=1, + cursor="cursor", + ) + """ + _response = self._raw_client.get_sip_messages( + conversation_id, page_size=page_size, cursor=cursor, request_options=request_options + ) + return _response.data + @property def audio(self): if self._audio is None: @@ -411,6 +486,14 @@ def messages(self): self._messages = MessagesClient(client_wrapper=self._client_wrapper) return self._messages + @property + def tags(self): + if self._tags is None: + from .tags.client import TagsClient # noqa: E402 + + self._tags = TagsClient(client_wrapper=self._client_wrapper) + return self._tags + @property def files(self): if self._files is None: @@ -443,6 +526,7 @@ def __init__(self, *, client_wrapper: AsyncClientWrapper): self._audio: typing.Optional[AsyncAudioClient] = None self._feedback: typing.Optional[AsyncFeedbackClient] = None self._messages: typing.Optional[AsyncMessagesClient] = None + self._tags: typing.Optional[AsyncTagsClient] = None self._files: typing.Optional[AsyncFilesClient] = None self._topics: typing.Optional[AsyncTopicsClient] = None self._analysis: typing.Optional[AsyncAnalysisClient] = None @@ -614,6 +698,13 @@ async def list( conversation_initiation_source: typing.Optional[ConversationInitiationSource] = None, branch_id: typing.Optional[str] = None, topic_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None, + exclude_statuses: typing.Optional[ + typing.Union[ + ConversationsListRequestExcludeStatusesItem, + typing.Sequence[ConversationsListRequestExcludeStatusesItem], + ] + ] = None, + tag_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None, request_options: typing.Optional[RequestOptions] = None, ) -> GetConversationsPageResponseModel: """ @@ -689,6 +780,12 @@ async def list( topic_ids : typing.Optional[typing.Union[str, typing.Sequence[str]]] Filter conversations by topic IDs assigned during topic discovery. + exclude_statuses : typing.Optional[typing.Union[ConversationsListRequestExcludeStatusesItem, typing.Sequence[ConversationsListRequestExcludeStatusesItem]]] + Exclude conversations with the given statuses. Useful for hiding in-progress / processing conversations from list views. + + tag_ids : typing.Optional[typing.Union[str, typing.Sequence[str]]] + Filter conversations by conversation tag IDs assigned via the conversation-tags endpoints. + request_options : typing.Optional[RequestOptions] Request-specific configuration. @@ -721,11 +818,20 @@ async def main() -> None: rating_min=1, has_feedback_comment=True, user_id="user_id", + evaluation_params=["evaluation_params"], + data_collection_params=["data_collection_params"], + tool_names=["tool_names"], + tool_names_successful=["tool_names_successful"], + tool_names_errored=["tool_names_errored"], + main_languages=["main_languages"], page_size=1, summary_mode="exclude", search="search", conversation_initiation_source="unknown", branch_id="branch_id", + topic_ids=["topic_ids"], + exclude_statuses=["initiated"], + tag_ids=["tag_ids"], ) @@ -755,6 +861,8 @@ async def main() -> None: conversation_initiation_source=conversation_initiation_source, branch_id=branch_id, topic_ids=topic_ids, + exclude_statuses=exclude_statuses, + tag_ids=tag_ids, request_options=request_options, ) return _response.data @@ -841,6 +949,61 @@ async def main() -> None: _response = await self._raw_client.delete(conversation_id, request_options=request_options) return _response.data + async def get_sip_messages( + self, + conversation_id: str, + *, + page_size: typing.Optional[int] = None, + cursor: typing.Optional[str] = None, + request_options: typing.Optional[RequestOptions] = None, + ) -> GetSipLogMessagesResponse: + """ + Get SIP messages associated with a conversation's phone call + + Parameters + ---------- + conversation_id : str + The id of the conversation you're taking the action on. + + page_size : typing.Optional[int] + + cursor : typing.Optional[str] + Used for fetching next page. Cursor is returned in the response. + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + GetSipLogMessagesResponse + Successful Response + + Examples + -------- + import asyncio + + from elevenlabs import AsyncElevenLabs + + client = AsyncElevenLabs( + api_key="YOUR_API_KEY", + ) + + + async def main() -> None: + await client.conversational_ai.conversations.get_sip_messages( + conversation_id="21m00Tcm4TlvDq8ikWAM", + page_size=1, + cursor="cursor", + ) + + + asyncio.run(main()) + """ + _response = await self._raw_client.get_sip_messages( + conversation_id, page_size=page_size, cursor=cursor, request_options=request_options + ) + return _response.data + @property def audio(self): if self._audio is None: @@ -865,6 +1028,14 @@ def messages(self): self._messages = AsyncMessagesClient(client_wrapper=self._client_wrapper) return self._messages + @property + def tags(self): + if self._tags is None: + from .tags.client import AsyncTagsClient # noqa: E402 + + self._tags = AsyncTagsClient(client_wrapper=self._client_wrapper) + return self._tags + @property def files(self): if self._files is None: diff --git a/src/elevenlabs/conversational_ai/conversations/messages/client.py b/src/elevenlabs/conversational_ai/conversations/messages/client.py index 5b38b41e..236c2888 100644 --- a/src/elevenlabs/conversational_ai/conversations/messages/client.py +++ b/src/elevenlabs/conversational_ai/conversations/messages/client.py @@ -155,6 +155,12 @@ def text_search( rating_min=1, has_feedback_comment=True, user_id="user_id", + evaluation_params=["evaluation_params"], + data_collection_params=["data_collection_params"], + tool_names=["tool_names"], + tool_names_successful=["tool_names_successful"], + tool_names_errored=["tool_names_errored"], + main_languages=["main_languages"], page_size=1, summary_mode="exclude", conversation_initiation_source="unknown", @@ -397,6 +403,12 @@ async def main() -> None: rating_min=1, has_feedback_comment=True, user_id="user_id", + evaluation_params=["evaluation_params"], + data_collection_params=["data_collection_params"], + tool_names=["tool_names"], + tool_names_successful=["tool_names_successful"], + tool_names_errored=["tool_names_errored"], + main_languages=["main_languages"], page_size=1, summary_mode="exclude", conversation_initiation_source="unknown", diff --git a/src/elevenlabs/conversational_ai/conversations/raw_client.py b/src/elevenlabs/conversational_ai/conversations/raw_client.py index f4ca6b05..da14c101 100644 --- a/src/elevenlabs/conversational_ai/conversations/raw_client.py +++ b/src/elevenlabs/conversational_ai/conversations/raw_client.py @@ -15,7 +15,9 @@ from ...types.evaluation_success_result import EvaluationSuccessResult from ...types.get_conversation_response_model import GetConversationResponseModel from ...types.get_conversations_page_response_model import GetConversationsPageResponseModel +from ...types.get_sip_log_messages_response import GetSipLogMessagesResponse from ...types.token_response_model import TokenResponseModel +from .types.conversations_list_request_exclude_statuses_item import ConversationsListRequestExcludeStatusesItem from .types.conversations_list_request_summary_mode import ConversationsListRequestSummaryMode @@ -191,6 +193,13 @@ def list( conversation_initiation_source: typing.Optional[ConversationInitiationSource] = None, branch_id: typing.Optional[str] = None, topic_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None, + exclude_statuses: typing.Optional[ + typing.Union[ + ConversationsListRequestExcludeStatusesItem, + typing.Sequence[ConversationsListRequestExcludeStatusesItem], + ] + ] = None, + tag_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None, request_options: typing.Optional[RequestOptions] = None, ) -> HttpResponse[GetConversationsPageResponseModel]: """ @@ -266,6 +275,12 @@ def list( topic_ids : typing.Optional[typing.Union[str, typing.Sequence[str]]] Filter conversations by topic IDs assigned during topic discovery. + exclude_statuses : typing.Optional[typing.Union[ConversationsListRequestExcludeStatusesItem, typing.Sequence[ConversationsListRequestExcludeStatusesItem]]] + Exclude conversations with the given statuses. Useful for hiding in-progress / processing conversations from list views. + + tag_ids : typing.Optional[typing.Union[str, typing.Sequence[str]]] + Filter conversations by conversation tag IDs assigned via the conversation-tags endpoints. + request_options : typing.Optional[RequestOptions] Request-specific configuration. @@ -301,6 +316,8 @@ def list( "conversation_initiation_source": conversation_initiation_source, "branch_id": branch_id, "topic_ids": topic_ids, + "exclude_statuses": exclude_statuses, + "tag_ids": tag_ids, }, request_options=request_options, ) @@ -432,6 +449,70 @@ def delete( raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) + def get_sip_messages( + self, + conversation_id: str, + *, + page_size: typing.Optional[int] = None, + cursor: typing.Optional[str] = None, + request_options: typing.Optional[RequestOptions] = None, + ) -> HttpResponse[GetSipLogMessagesResponse]: + """ + Get SIP messages associated with a conversation's phone call + + Parameters + ---------- + conversation_id : str + The id of the conversation you're taking the action on. + + page_size : typing.Optional[int] + + cursor : typing.Optional[str] + Used for fetching next page. Cursor is returned in the response. + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + HttpResponse[GetSipLogMessagesResponse] + Successful Response + """ + _response = self._client_wrapper.httpx_client.request( + f"v1/convai/conversations/{jsonable_encoder(conversation_id)}/sip-messages", + method="GET", + params={ + "page_size": page_size, + "cursor": cursor, + }, + request_options=request_options, + ) + try: + if 200 <= _response.status_code < 300: + _data = typing.cast( + GetSipLogMessagesResponse, + construct_type( + type_=GetSipLogMessagesResponse, # type: ignore + object_=_response.json(), + ), + ) + return HttpResponse(response=_response, data=_data) + if _response.status_code == 422: + raise UnprocessableEntityError( + headers=dict(_response.headers), + body=typing.cast( + typing.Any, + construct_type( + type_=typing.Any, # type: ignore + object_=_response.json(), + ), + ), + ) + _response_json = _response.json() + except JSONDecodeError: + raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) + raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) + class AsyncRawConversationsClient: def __init__(self, *, client_wrapper: AsyncClientWrapper): @@ -605,6 +686,13 @@ async def list( conversation_initiation_source: typing.Optional[ConversationInitiationSource] = None, branch_id: typing.Optional[str] = None, topic_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None, + exclude_statuses: typing.Optional[ + typing.Union[ + ConversationsListRequestExcludeStatusesItem, + typing.Sequence[ConversationsListRequestExcludeStatusesItem], + ] + ] = None, + tag_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None, request_options: typing.Optional[RequestOptions] = None, ) -> AsyncHttpResponse[GetConversationsPageResponseModel]: """ @@ -680,6 +768,12 @@ async def list( topic_ids : typing.Optional[typing.Union[str, typing.Sequence[str]]] Filter conversations by topic IDs assigned during topic discovery. + exclude_statuses : typing.Optional[typing.Union[ConversationsListRequestExcludeStatusesItem, typing.Sequence[ConversationsListRequestExcludeStatusesItem]]] + Exclude conversations with the given statuses. Useful for hiding in-progress / processing conversations from list views. + + tag_ids : typing.Optional[typing.Union[str, typing.Sequence[str]]] + Filter conversations by conversation tag IDs assigned via the conversation-tags endpoints. + request_options : typing.Optional[RequestOptions] Request-specific configuration. @@ -715,6 +809,8 @@ async def list( "conversation_initiation_source": conversation_initiation_source, "branch_id": branch_id, "topic_ids": topic_ids, + "exclude_statuses": exclude_statuses, + "tag_ids": tag_ids, }, request_options=request_options, ) @@ -845,3 +941,67 @@ async def delete( except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) + + async def get_sip_messages( + self, + conversation_id: str, + *, + page_size: typing.Optional[int] = None, + cursor: typing.Optional[str] = None, + request_options: typing.Optional[RequestOptions] = None, + ) -> AsyncHttpResponse[GetSipLogMessagesResponse]: + """ + Get SIP messages associated with a conversation's phone call + + Parameters + ---------- + conversation_id : str + The id of the conversation you're taking the action on. + + page_size : typing.Optional[int] + + cursor : typing.Optional[str] + Used for fetching next page. Cursor is returned in the response. + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + AsyncHttpResponse[GetSipLogMessagesResponse] + Successful Response + """ + _response = await self._client_wrapper.httpx_client.request( + f"v1/convai/conversations/{jsonable_encoder(conversation_id)}/sip-messages", + method="GET", + params={ + "page_size": page_size, + "cursor": cursor, + }, + request_options=request_options, + ) + try: + if 200 <= _response.status_code < 300: + _data = typing.cast( + GetSipLogMessagesResponse, + construct_type( + type_=GetSipLogMessagesResponse, # type: ignore + object_=_response.json(), + ), + ) + return AsyncHttpResponse(response=_response, data=_data) + if _response.status_code == 422: + raise UnprocessableEntityError( + headers=dict(_response.headers), + body=typing.cast( + typing.Any, + construct_type( + type_=typing.Any, # type: ignore + object_=_response.json(), + ), + ), + ) + _response_json = _response.json() + except JSONDecodeError: + raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) + raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/elevenlabs/conversational_ai/conversations/tags/__init__.py b/src/elevenlabs/conversational_ai/conversations/tags/__init__.py new file mode 100644 index 00000000..5cde0202 --- /dev/null +++ b/src/elevenlabs/conversational_ai/conversations/tags/__init__.py @@ -0,0 +1,4 @@ +# This file was auto-generated by Fern from our API Definition. + +# isort: skip_file + diff --git a/src/elevenlabs/conversational_ai/conversations/tags/client.py b/src/elevenlabs/conversational_ai/conversations/tags/client.py new file mode 100644 index 00000000..ae1b0162 --- /dev/null +++ b/src/elevenlabs/conversational_ai/conversations/tags/client.py @@ -0,0 +1,620 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +from ....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper +from ....core.request_options import RequestOptions +from ....types.conversation_tag_response_model import ConversationTagResponseModel +from ....types.get_conversation_tags_page_response_model import GetConversationTagsPageResponseModel +from .raw_client import AsyncRawTagsClient, RawTagsClient + +# this is used as the default value for optional parameters +OMIT = typing.cast(typing.Any, ...) + + +class TagsClient: + def __init__(self, *, client_wrapper: SyncClientWrapper): + self._raw_client = RawTagsClient(client_wrapper=client_wrapper) + + @property + def with_raw_response(self) -> RawTagsClient: + """ + Retrieves a raw implementation of this client that returns raw responses. + + Returns + ------- + RawTagsClient + """ + return self._raw_client + + def assign( + self, + conversation_id: str, + *, + tag_ids: typing.Sequence[str], + request_options: typing.Optional[RequestOptions] = None, + ) -> None: + """ + Assign one or more conversation tags to a conversation. Tags that are already assigned are ignored. Tags must belong to the same workspace. + + Parameters + ---------- + conversation_id : str + + tag_ids : typing.Sequence[str] + Tag IDs to add to the conversation. Re-assigning an existing tag is a no-op. + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + None + + Examples + -------- + from elevenlabs import ElevenLabs + + client = ElevenLabs( + api_key="YOUR_API_KEY", + ) + client.conversational_ai.conversations.tags.assign( + conversation_id="conversation_id", + tag_ids=["tag_ids"], + ) + """ + _response = self._raw_client.assign(conversation_id, tag_ids=tag_ids, request_options=request_options) + return _response.data + + def unassign( + self, conversation_id: str, tag_id: str, *, request_options: typing.Optional[RequestOptions] = None + ) -> None: + """ + Remove a single conversation tag from a conversation. + + Parameters + ---------- + conversation_id : str + + tag_id : str + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + None + + Examples + -------- + from elevenlabs import ElevenLabs + + client = ElevenLabs( + api_key="YOUR_API_KEY", + ) + client.conversational_ai.conversations.tags.unassign( + conversation_id="conversation_id", + tag_id="tag_id", + ) + """ + _response = self._raw_client.unassign(conversation_id, tag_id, request_options=request_options) + return _response.data + + def list( + self, + *, + page_size: typing.Optional[int] = None, + cursor: typing.Optional[str] = None, + request_options: typing.Optional[RequestOptions] = None, + ) -> GetConversationTagsPageResponseModel: + """ + List conversation tags for the workspace, ordered by most recently created first. + + Parameters + ---------- + page_size : typing.Optional[int] + How many conversation tags to return. Can not exceed 100. + + cursor : typing.Optional[str] + Used for fetching next page. Cursor is returned in the response. + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + GetConversationTagsPageResponseModel + Successful Response + + Examples + -------- + from elevenlabs import ElevenLabs + + client = ElevenLabs( + api_key="YOUR_API_KEY", + ) + client.conversational_ai.conversations.tags.list( + page_size=1, + cursor="cursor", + ) + """ + _response = self._raw_client.list(page_size=page_size, cursor=cursor, request_options=request_options) + return _response.data + + def create( + self, + *, + title: str, + description: typing.Optional[str] = OMIT, + request_options: typing.Optional[RequestOptions] = None, + ) -> ConversationTagResponseModel: + """ + Create a new conversation tag for the workspace. + + Parameters + ---------- + title : str + Display title of the tag. + + description : typing.Optional[str] + Optional free-text description. + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + ConversationTagResponseModel + Successful Response + + Examples + -------- + from elevenlabs import ElevenLabs + + client = ElevenLabs( + api_key="YOUR_API_KEY", + ) + client.conversational_ai.conversations.tags.create( + title="title", + ) + """ + _response = self._raw_client.create(title=title, description=description, request_options=request_options) + return _response.data + + def get( + self, tag_id: str, *, request_options: typing.Optional[RequestOptions] = None + ) -> ConversationTagResponseModel: + """ + Get a conversation tag by ID. + + Parameters + ---------- + tag_id : str + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + ConversationTagResponseModel + Successful Response + + Examples + -------- + from elevenlabs import ElevenLabs + + client = ElevenLabs( + api_key="YOUR_API_KEY", + ) + client.conversational_ai.conversations.tags.get( + tag_id="tag_id", + ) + """ + _response = self._raw_client.get(tag_id, request_options=request_options) + return _response.data + + def delete(self, tag_id: str, *, request_options: typing.Optional[RequestOptions] = None) -> None: + """ + Delete a conversation tag. Restricted to the tag owner or a workspace admin. + + Parameters + ---------- + tag_id : str + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + None + + Examples + -------- + from elevenlabs import ElevenLabs + + client = ElevenLabs( + api_key="YOUR_API_KEY", + ) + client.conversational_ai.conversations.tags.delete( + tag_id="tag_id", + ) + """ + _response = self._raw_client.delete(tag_id, request_options=request_options) + return _response.data + + def update( + self, + tag_id: str, + *, + title: typing.Optional[str] = OMIT, + description: typing.Optional[str] = OMIT, + request_options: typing.Optional[RequestOptions] = None, + ) -> ConversationTagResponseModel: + """ + Update a conversation tag's title and/or description. Restricted to the tag owner or a workspace admin. + + Parameters + ---------- + tag_id : str + + title : typing.Optional[str] + If provided, replaces the tag title. Omit to leave unchanged. + + description : typing.Optional[str] + If provided, replaces the tag description. Omit to leave unchanged. + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + ConversationTagResponseModel + Successful Response + + Examples + -------- + from elevenlabs import ElevenLabs + + client = ElevenLabs( + api_key="YOUR_API_KEY", + ) + client.conversational_ai.conversations.tags.update( + tag_id="tag_id", + ) + """ + _response = self._raw_client.update( + tag_id, title=title, description=description, request_options=request_options + ) + return _response.data + + +class AsyncTagsClient: + def __init__(self, *, client_wrapper: AsyncClientWrapper): + self._raw_client = AsyncRawTagsClient(client_wrapper=client_wrapper) + + @property + def with_raw_response(self) -> AsyncRawTagsClient: + """ + Retrieves a raw implementation of this client that returns raw responses. + + Returns + ------- + AsyncRawTagsClient + """ + return self._raw_client + + async def assign( + self, + conversation_id: str, + *, + tag_ids: typing.Sequence[str], + request_options: typing.Optional[RequestOptions] = None, + ) -> None: + """ + Assign one or more conversation tags to a conversation. Tags that are already assigned are ignored. Tags must belong to the same workspace. + + Parameters + ---------- + conversation_id : str + + tag_ids : typing.Sequence[str] + Tag IDs to add to the conversation. Re-assigning an existing tag is a no-op. + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + None + + Examples + -------- + import asyncio + + from elevenlabs import AsyncElevenLabs + + client = AsyncElevenLabs( + api_key="YOUR_API_KEY", + ) + + + async def main() -> None: + await client.conversational_ai.conversations.tags.assign( + conversation_id="conversation_id", + tag_ids=["tag_ids"], + ) + + + asyncio.run(main()) + """ + _response = await self._raw_client.assign(conversation_id, tag_ids=tag_ids, request_options=request_options) + return _response.data + + async def unassign( + self, conversation_id: str, tag_id: str, *, request_options: typing.Optional[RequestOptions] = None + ) -> None: + """ + Remove a single conversation tag from a conversation. + + Parameters + ---------- + conversation_id : str + + tag_id : str + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + None + + Examples + -------- + import asyncio + + from elevenlabs import AsyncElevenLabs + + client = AsyncElevenLabs( + api_key="YOUR_API_KEY", + ) + + + async def main() -> None: + await client.conversational_ai.conversations.tags.unassign( + conversation_id="conversation_id", + tag_id="tag_id", + ) + + + asyncio.run(main()) + """ + _response = await self._raw_client.unassign(conversation_id, tag_id, request_options=request_options) + return _response.data + + async def list( + self, + *, + page_size: typing.Optional[int] = None, + cursor: typing.Optional[str] = None, + request_options: typing.Optional[RequestOptions] = None, + ) -> GetConversationTagsPageResponseModel: + """ + List conversation tags for the workspace, ordered by most recently created first. + + Parameters + ---------- + page_size : typing.Optional[int] + How many conversation tags to return. Can not exceed 100. + + cursor : typing.Optional[str] + Used for fetching next page. Cursor is returned in the response. + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + GetConversationTagsPageResponseModel + Successful Response + + Examples + -------- + import asyncio + + from elevenlabs import AsyncElevenLabs + + client = AsyncElevenLabs( + api_key="YOUR_API_KEY", + ) + + + async def main() -> None: + await client.conversational_ai.conversations.tags.list( + page_size=1, + cursor="cursor", + ) + + + asyncio.run(main()) + """ + _response = await self._raw_client.list(page_size=page_size, cursor=cursor, request_options=request_options) + return _response.data + + async def create( + self, + *, + title: str, + description: typing.Optional[str] = OMIT, + request_options: typing.Optional[RequestOptions] = None, + ) -> ConversationTagResponseModel: + """ + Create a new conversation tag for the workspace. + + Parameters + ---------- + title : str + Display title of the tag. + + description : typing.Optional[str] + Optional free-text description. + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + ConversationTagResponseModel + Successful Response + + Examples + -------- + import asyncio + + from elevenlabs import AsyncElevenLabs + + client = AsyncElevenLabs( + api_key="YOUR_API_KEY", + ) + + + async def main() -> None: + await client.conversational_ai.conversations.tags.create( + title="title", + ) + + + asyncio.run(main()) + """ + _response = await self._raw_client.create(title=title, description=description, request_options=request_options) + return _response.data + + async def get( + self, tag_id: str, *, request_options: typing.Optional[RequestOptions] = None + ) -> ConversationTagResponseModel: + """ + Get a conversation tag by ID. + + Parameters + ---------- + tag_id : str + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + ConversationTagResponseModel + Successful Response + + Examples + -------- + import asyncio + + from elevenlabs import AsyncElevenLabs + + client = AsyncElevenLabs( + api_key="YOUR_API_KEY", + ) + + + async def main() -> None: + await client.conversational_ai.conversations.tags.get( + tag_id="tag_id", + ) + + + asyncio.run(main()) + """ + _response = await self._raw_client.get(tag_id, request_options=request_options) + return _response.data + + async def delete(self, tag_id: str, *, request_options: typing.Optional[RequestOptions] = None) -> None: + """ + Delete a conversation tag. Restricted to the tag owner or a workspace admin. + + Parameters + ---------- + tag_id : str + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + None + + Examples + -------- + import asyncio + + from elevenlabs import AsyncElevenLabs + + client = AsyncElevenLabs( + api_key="YOUR_API_KEY", + ) + + + async def main() -> None: + await client.conversational_ai.conversations.tags.delete( + tag_id="tag_id", + ) + + + asyncio.run(main()) + """ + _response = await self._raw_client.delete(tag_id, request_options=request_options) + return _response.data + + async def update( + self, + tag_id: str, + *, + title: typing.Optional[str] = OMIT, + description: typing.Optional[str] = OMIT, + request_options: typing.Optional[RequestOptions] = None, + ) -> ConversationTagResponseModel: + """ + Update a conversation tag's title and/or description. Restricted to the tag owner or a workspace admin. + + Parameters + ---------- + tag_id : str + + title : typing.Optional[str] + If provided, replaces the tag title. Omit to leave unchanged. + + description : typing.Optional[str] + If provided, replaces the tag description. Omit to leave unchanged. + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + ConversationTagResponseModel + Successful Response + + Examples + -------- + import asyncio + + from elevenlabs import AsyncElevenLabs + + client = AsyncElevenLabs( + api_key="YOUR_API_KEY", + ) + + + async def main() -> None: + await client.conversational_ai.conversations.tags.update( + tag_id="tag_id", + ) + + + asyncio.run(main()) + """ + _response = await self._raw_client.update( + tag_id, title=title, description=description, request_options=request_options + ) + return _response.data diff --git a/src/elevenlabs/conversational_ai/conversations/tags/raw_client.py b/src/elevenlabs/conversational_ai/conversations/tags/raw_client.py new file mode 100644 index 00000000..dec5f3fe --- /dev/null +++ b/src/elevenlabs/conversational_ai/conversations/tags/raw_client.py @@ -0,0 +1,789 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing +from json.decoder import JSONDecodeError + +from ....core.api_error import ApiError +from ....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper +from ....core.http_response import AsyncHttpResponse, HttpResponse +from ....core.jsonable_encoder import jsonable_encoder +from ....core.request_options import RequestOptions +from ....core.unchecked_base_model import construct_type +from ....errors.unprocessable_entity_error import UnprocessableEntityError +from ....types.conversation_tag_response_model import ConversationTagResponseModel +from ....types.get_conversation_tags_page_response_model import GetConversationTagsPageResponseModel + +# this is used as the default value for optional parameters +OMIT = typing.cast(typing.Any, ...) + + +class RawTagsClient: + def __init__(self, *, client_wrapper: SyncClientWrapper): + self._client_wrapper = client_wrapper + + def assign( + self, + conversation_id: str, + *, + tag_ids: typing.Sequence[str], + request_options: typing.Optional[RequestOptions] = None, + ) -> HttpResponse[None]: + """ + Assign one or more conversation tags to a conversation. Tags that are already assigned are ignored. Tags must belong to the same workspace. + + Parameters + ---------- + conversation_id : str + + tag_ids : typing.Sequence[str] + Tag IDs to add to the conversation. Re-assigning an existing tag is a no-op. + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + HttpResponse[None] + """ + _response = self._client_wrapper.httpx_client.request( + f"v1/convai/conversations/{jsonable_encoder(conversation_id)}/tags", + method="POST", + json={ + "tag_ids": tag_ids, + }, + headers={ + "content-type": "application/json", + }, + request_options=request_options, + omit=OMIT, + ) + try: + if 200 <= _response.status_code < 300: + return HttpResponse(response=_response, data=None) + if _response.status_code == 422: + raise UnprocessableEntityError( + headers=dict(_response.headers), + body=typing.cast( + typing.Any, + construct_type( + type_=typing.Any, # type: ignore + object_=_response.json(), + ), + ), + ) + _response_json = _response.json() + except JSONDecodeError: + raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) + raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) + + def unassign( + self, conversation_id: str, tag_id: str, *, request_options: typing.Optional[RequestOptions] = None + ) -> HttpResponse[None]: + """ + Remove a single conversation tag from a conversation. + + Parameters + ---------- + conversation_id : str + + tag_id : str + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + HttpResponse[None] + """ + _response = self._client_wrapper.httpx_client.request( + f"v1/convai/conversations/{jsonable_encoder(conversation_id)}/tags/{jsonable_encoder(tag_id)}", + method="DELETE", + request_options=request_options, + ) + try: + if 200 <= _response.status_code < 300: + return HttpResponse(response=_response, data=None) + if _response.status_code == 422: + raise UnprocessableEntityError( + headers=dict(_response.headers), + body=typing.cast( + typing.Any, + construct_type( + type_=typing.Any, # type: ignore + object_=_response.json(), + ), + ), + ) + _response_json = _response.json() + except JSONDecodeError: + raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) + raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) + + def list( + self, + *, + page_size: typing.Optional[int] = None, + cursor: typing.Optional[str] = None, + request_options: typing.Optional[RequestOptions] = None, + ) -> HttpResponse[GetConversationTagsPageResponseModel]: + """ + List conversation tags for the workspace, ordered by most recently created first. + + Parameters + ---------- + page_size : typing.Optional[int] + How many conversation tags to return. Can not exceed 100. + + cursor : typing.Optional[str] + Used for fetching next page. Cursor is returned in the response. + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + HttpResponse[GetConversationTagsPageResponseModel] + Successful Response + """ + _response = self._client_wrapper.httpx_client.request( + "v1/convai/tags", + method="GET", + params={ + "page_size": page_size, + "cursor": cursor, + }, + request_options=request_options, + ) + try: + if 200 <= _response.status_code < 300: + _data = typing.cast( + GetConversationTagsPageResponseModel, + construct_type( + type_=GetConversationTagsPageResponseModel, # type: ignore + object_=_response.json(), + ), + ) + return HttpResponse(response=_response, data=_data) + if _response.status_code == 422: + raise UnprocessableEntityError( + headers=dict(_response.headers), + body=typing.cast( + typing.Any, + construct_type( + type_=typing.Any, # type: ignore + object_=_response.json(), + ), + ), + ) + _response_json = _response.json() + except JSONDecodeError: + raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) + raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) + + def create( + self, + *, + title: str, + description: typing.Optional[str] = OMIT, + request_options: typing.Optional[RequestOptions] = None, + ) -> HttpResponse[ConversationTagResponseModel]: + """ + Create a new conversation tag for the workspace. + + Parameters + ---------- + title : str + Display title of the tag. + + description : typing.Optional[str] + Optional free-text description. + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + HttpResponse[ConversationTagResponseModel] + Successful Response + """ + _response = self._client_wrapper.httpx_client.request( + "v1/convai/tags", + method="POST", + json={ + "title": title, + "description": description, + }, + headers={ + "content-type": "application/json", + }, + request_options=request_options, + omit=OMIT, + ) + try: + if 200 <= _response.status_code < 300: + _data = typing.cast( + ConversationTagResponseModel, + construct_type( + type_=ConversationTagResponseModel, # type: ignore + object_=_response.json(), + ), + ) + return HttpResponse(response=_response, data=_data) + if _response.status_code == 422: + raise UnprocessableEntityError( + headers=dict(_response.headers), + body=typing.cast( + typing.Any, + construct_type( + type_=typing.Any, # type: ignore + object_=_response.json(), + ), + ), + ) + _response_json = _response.json() + except JSONDecodeError: + raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) + raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) + + def get( + self, tag_id: str, *, request_options: typing.Optional[RequestOptions] = None + ) -> HttpResponse[ConversationTagResponseModel]: + """ + Get a conversation tag by ID. + + Parameters + ---------- + tag_id : str + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + HttpResponse[ConversationTagResponseModel] + Successful Response + """ + _response = self._client_wrapper.httpx_client.request( + f"v1/convai/tags/{jsonable_encoder(tag_id)}", + method="GET", + request_options=request_options, + ) + try: + if 200 <= _response.status_code < 300: + _data = typing.cast( + ConversationTagResponseModel, + construct_type( + type_=ConversationTagResponseModel, # type: ignore + object_=_response.json(), + ), + ) + return HttpResponse(response=_response, data=_data) + if _response.status_code == 422: + raise UnprocessableEntityError( + headers=dict(_response.headers), + body=typing.cast( + typing.Any, + construct_type( + type_=typing.Any, # type: ignore + object_=_response.json(), + ), + ), + ) + _response_json = _response.json() + except JSONDecodeError: + raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) + raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) + + def delete(self, tag_id: str, *, request_options: typing.Optional[RequestOptions] = None) -> HttpResponse[None]: + """ + Delete a conversation tag. Restricted to the tag owner or a workspace admin. + + Parameters + ---------- + tag_id : str + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + HttpResponse[None] + """ + _response = self._client_wrapper.httpx_client.request( + f"v1/convai/tags/{jsonable_encoder(tag_id)}", + method="DELETE", + request_options=request_options, + ) + try: + if 200 <= _response.status_code < 300: + return HttpResponse(response=_response, data=None) + if _response.status_code == 422: + raise UnprocessableEntityError( + headers=dict(_response.headers), + body=typing.cast( + typing.Any, + construct_type( + type_=typing.Any, # type: ignore + object_=_response.json(), + ), + ), + ) + _response_json = _response.json() + except JSONDecodeError: + raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) + raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) + + def update( + self, + tag_id: str, + *, + title: typing.Optional[str] = OMIT, + description: typing.Optional[str] = OMIT, + request_options: typing.Optional[RequestOptions] = None, + ) -> HttpResponse[ConversationTagResponseModel]: + """ + Update a conversation tag's title and/or description. Restricted to the tag owner or a workspace admin. + + Parameters + ---------- + tag_id : str + + title : typing.Optional[str] + If provided, replaces the tag title. Omit to leave unchanged. + + description : typing.Optional[str] + If provided, replaces the tag description. Omit to leave unchanged. + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + HttpResponse[ConversationTagResponseModel] + Successful Response + """ + _response = self._client_wrapper.httpx_client.request( + f"v1/convai/tags/{jsonable_encoder(tag_id)}", + method="PATCH", + json={ + "title": title, + "description": description, + }, + headers={ + "content-type": "application/json", + }, + request_options=request_options, + omit=OMIT, + ) + try: + if 200 <= _response.status_code < 300: + _data = typing.cast( + ConversationTagResponseModel, + construct_type( + type_=ConversationTagResponseModel, # type: ignore + object_=_response.json(), + ), + ) + return HttpResponse(response=_response, data=_data) + if _response.status_code == 422: + raise UnprocessableEntityError( + headers=dict(_response.headers), + body=typing.cast( + typing.Any, + construct_type( + type_=typing.Any, # type: ignore + object_=_response.json(), + ), + ), + ) + _response_json = _response.json() + except JSONDecodeError: + raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) + raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) + + +class AsyncRawTagsClient: + def __init__(self, *, client_wrapper: AsyncClientWrapper): + self._client_wrapper = client_wrapper + + async def assign( + self, + conversation_id: str, + *, + tag_ids: typing.Sequence[str], + request_options: typing.Optional[RequestOptions] = None, + ) -> AsyncHttpResponse[None]: + """ + Assign one or more conversation tags to a conversation. Tags that are already assigned are ignored. Tags must belong to the same workspace. + + Parameters + ---------- + conversation_id : str + + tag_ids : typing.Sequence[str] + Tag IDs to add to the conversation. Re-assigning an existing tag is a no-op. + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + AsyncHttpResponse[None] + """ + _response = await self._client_wrapper.httpx_client.request( + f"v1/convai/conversations/{jsonable_encoder(conversation_id)}/tags", + method="POST", + json={ + "tag_ids": tag_ids, + }, + headers={ + "content-type": "application/json", + }, + request_options=request_options, + omit=OMIT, + ) + try: + if 200 <= _response.status_code < 300: + return AsyncHttpResponse(response=_response, data=None) + if _response.status_code == 422: + raise UnprocessableEntityError( + headers=dict(_response.headers), + body=typing.cast( + typing.Any, + construct_type( + type_=typing.Any, # type: ignore + object_=_response.json(), + ), + ), + ) + _response_json = _response.json() + except JSONDecodeError: + raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) + raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) + + async def unassign( + self, conversation_id: str, tag_id: str, *, request_options: typing.Optional[RequestOptions] = None + ) -> AsyncHttpResponse[None]: + """ + Remove a single conversation tag from a conversation. + + Parameters + ---------- + conversation_id : str + + tag_id : str + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + AsyncHttpResponse[None] + """ + _response = await self._client_wrapper.httpx_client.request( + f"v1/convai/conversations/{jsonable_encoder(conversation_id)}/tags/{jsonable_encoder(tag_id)}", + method="DELETE", + request_options=request_options, + ) + try: + if 200 <= _response.status_code < 300: + return AsyncHttpResponse(response=_response, data=None) + if _response.status_code == 422: + raise UnprocessableEntityError( + headers=dict(_response.headers), + body=typing.cast( + typing.Any, + construct_type( + type_=typing.Any, # type: ignore + object_=_response.json(), + ), + ), + ) + _response_json = _response.json() + except JSONDecodeError: + raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) + raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) + + async def list( + self, + *, + page_size: typing.Optional[int] = None, + cursor: typing.Optional[str] = None, + request_options: typing.Optional[RequestOptions] = None, + ) -> AsyncHttpResponse[GetConversationTagsPageResponseModel]: + """ + List conversation tags for the workspace, ordered by most recently created first. + + Parameters + ---------- + page_size : typing.Optional[int] + How many conversation tags to return. Can not exceed 100. + + cursor : typing.Optional[str] + Used for fetching next page. Cursor is returned in the response. + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + AsyncHttpResponse[GetConversationTagsPageResponseModel] + Successful Response + """ + _response = await self._client_wrapper.httpx_client.request( + "v1/convai/tags", + method="GET", + params={ + "page_size": page_size, + "cursor": cursor, + }, + request_options=request_options, + ) + try: + if 200 <= _response.status_code < 300: + _data = typing.cast( + GetConversationTagsPageResponseModel, + construct_type( + type_=GetConversationTagsPageResponseModel, # type: ignore + object_=_response.json(), + ), + ) + return AsyncHttpResponse(response=_response, data=_data) + if _response.status_code == 422: + raise UnprocessableEntityError( + headers=dict(_response.headers), + body=typing.cast( + typing.Any, + construct_type( + type_=typing.Any, # type: ignore + object_=_response.json(), + ), + ), + ) + _response_json = _response.json() + except JSONDecodeError: + raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) + raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) + + async def create( + self, + *, + title: str, + description: typing.Optional[str] = OMIT, + request_options: typing.Optional[RequestOptions] = None, + ) -> AsyncHttpResponse[ConversationTagResponseModel]: + """ + Create a new conversation tag for the workspace. + + Parameters + ---------- + title : str + Display title of the tag. + + description : typing.Optional[str] + Optional free-text description. + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + AsyncHttpResponse[ConversationTagResponseModel] + Successful Response + """ + _response = await self._client_wrapper.httpx_client.request( + "v1/convai/tags", + method="POST", + json={ + "title": title, + "description": description, + }, + headers={ + "content-type": "application/json", + }, + request_options=request_options, + omit=OMIT, + ) + try: + if 200 <= _response.status_code < 300: + _data = typing.cast( + ConversationTagResponseModel, + construct_type( + type_=ConversationTagResponseModel, # type: ignore + object_=_response.json(), + ), + ) + return AsyncHttpResponse(response=_response, data=_data) + if _response.status_code == 422: + raise UnprocessableEntityError( + headers=dict(_response.headers), + body=typing.cast( + typing.Any, + construct_type( + type_=typing.Any, # type: ignore + object_=_response.json(), + ), + ), + ) + _response_json = _response.json() + except JSONDecodeError: + raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) + raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) + + async def get( + self, tag_id: str, *, request_options: typing.Optional[RequestOptions] = None + ) -> AsyncHttpResponse[ConversationTagResponseModel]: + """ + Get a conversation tag by ID. + + Parameters + ---------- + tag_id : str + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + AsyncHttpResponse[ConversationTagResponseModel] + Successful Response + """ + _response = await self._client_wrapper.httpx_client.request( + f"v1/convai/tags/{jsonable_encoder(tag_id)}", + method="GET", + request_options=request_options, + ) + try: + if 200 <= _response.status_code < 300: + _data = typing.cast( + ConversationTagResponseModel, + construct_type( + type_=ConversationTagResponseModel, # type: ignore + object_=_response.json(), + ), + ) + return AsyncHttpResponse(response=_response, data=_data) + if _response.status_code == 422: + raise UnprocessableEntityError( + headers=dict(_response.headers), + body=typing.cast( + typing.Any, + construct_type( + type_=typing.Any, # type: ignore + object_=_response.json(), + ), + ), + ) + _response_json = _response.json() + except JSONDecodeError: + raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) + raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) + + async def delete( + self, tag_id: str, *, request_options: typing.Optional[RequestOptions] = None + ) -> AsyncHttpResponse[None]: + """ + Delete a conversation tag. Restricted to the tag owner or a workspace admin. + + Parameters + ---------- + tag_id : str + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + AsyncHttpResponse[None] + """ + _response = await self._client_wrapper.httpx_client.request( + f"v1/convai/tags/{jsonable_encoder(tag_id)}", + method="DELETE", + request_options=request_options, + ) + try: + if 200 <= _response.status_code < 300: + return AsyncHttpResponse(response=_response, data=None) + if _response.status_code == 422: + raise UnprocessableEntityError( + headers=dict(_response.headers), + body=typing.cast( + typing.Any, + construct_type( + type_=typing.Any, # type: ignore + object_=_response.json(), + ), + ), + ) + _response_json = _response.json() + except JSONDecodeError: + raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) + raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) + + async def update( + self, + tag_id: str, + *, + title: typing.Optional[str] = OMIT, + description: typing.Optional[str] = OMIT, + request_options: typing.Optional[RequestOptions] = None, + ) -> AsyncHttpResponse[ConversationTagResponseModel]: + """ + Update a conversation tag's title and/or description. Restricted to the tag owner or a workspace admin. + + Parameters + ---------- + tag_id : str + + title : typing.Optional[str] + If provided, replaces the tag title. Omit to leave unchanged. + + description : typing.Optional[str] + If provided, replaces the tag description. Omit to leave unchanged. + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + AsyncHttpResponse[ConversationTagResponseModel] + Successful Response + """ + _response = await self._client_wrapper.httpx_client.request( + f"v1/convai/tags/{jsonable_encoder(tag_id)}", + method="PATCH", + json={ + "title": title, + "description": description, + }, + headers={ + "content-type": "application/json", + }, + request_options=request_options, + omit=OMIT, + ) + try: + if 200 <= _response.status_code < 300: + _data = typing.cast( + ConversationTagResponseModel, + construct_type( + type_=ConversationTagResponseModel, # type: ignore + object_=_response.json(), + ), + ) + return AsyncHttpResponse(response=_response, data=_data) + if _response.status_code == 422: + raise UnprocessableEntityError( + headers=dict(_response.headers), + body=typing.cast( + typing.Any, + construct_type( + type_=typing.Any, # type: ignore + object_=_response.json(), + ), + ), + ) + _response_json = _response.json() + except JSONDecodeError: + raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) + raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/elevenlabs/conversational_ai/conversations/types/__init__.py b/src/elevenlabs/conversational_ai/conversations/types/__init__.py index ef16c77c..21fb0c26 100644 --- a/src/elevenlabs/conversational_ai/conversations/types/__init__.py +++ b/src/elevenlabs/conversational_ai/conversations/types/__init__.py @@ -6,9 +6,11 @@ from importlib import import_module if typing.TYPE_CHECKING: + from .conversations_list_request_exclude_statuses_item import ConversationsListRequestExcludeStatusesItem from .conversations_list_request_summary_mode import ConversationsListRequestSummaryMode _dynamic_imports: typing.Dict[str, str] = { - "ConversationsListRequestSummaryMode": ".conversations_list_request_summary_mode" + "ConversationsListRequestExcludeStatusesItem": ".conversations_list_request_exclude_statuses_item", + "ConversationsListRequestSummaryMode": ".conversations_list_request_summary_mode", } @@ -33,4 +35,4 @@ def __dir__(): return sorted(lazy_attrs) -__all__ = ["ConversationsListRequestSummaryMode"] +__all__ = ["ConversationsListRequestExcludeStatusesItem", "ConversationsListRequestSummaryMode"] diff --git a/src/elevenlabs/conversational_ai/conversations/types/conversations_list_request_exclude_statuses_item.py b/src/elevenlabs/conversational_ai/conversations/types/conversations_list_request_exclude_statuses_item.py new file mode 100644 index 00000000..f6edfd87 --- /dev/null +++ b/src/elevenlabs/conversational_ai/conversations/types/conversations_list_request_exclude_statuses_item.py @@ -0,0 +1,7 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +ConversationsListRequestExcludeStatusesItem = typing.Union[ + typing.Literal["initiated", "in-progress", "processing", "done", "failed"], typing.Any +] diff --git a/src/elevenlabs/conversational_ai/knowledge_base/client.py b/src/elevenlabs/conversational_ai/knowledge_base/client.py index 42f7abdf..c8adff2f 100644 --- a/src/elevenlabs/conversational_ai/knowledge_base/client.py +++ b/src/elevenlabs/conversational_ai/knowledge_base/client.py @@ -118,6 +118,7 @@ def list( search="search", show_only_owned_documents=True, created_by_user_id="created_by_user_id", + types=["file"], parent_folder_id="parent_folder_id", ancestor_folder_id="ancestor_folder_id", folders_first=True, @@ -230,6 +231,7 @@ def search( client.conversational_ai.knowledge_base.search( query="query", page_size=1, + types=["file"], cursor="cursor", ) """ @@ -354,6 +356,7 @@ async def main() -> None: search="search", show_only_owned_documents=True, created_by_user_id="created_by_user_id", + types=["file"], parent_folder_id="parent_folder_id", ancestor_folder_id="ancestor_folder_id", folders_first=True, @@ -482,6 +485,7 @@ async def main() -> None: await client.conversational_ai.knowledge_base.search( query="query", page_size=1, + types=["file"], cursor="cursor", ) diff --git a/src/elevenlabs/conversational_ai/knowledge_base/documents/summaries/client.py b/src/elevenlabs/conversational_ai/knowledge_base/documents/summaries/client.py index 914c2250..166d9069 100644 --- a/src/elevenlabs/conversational_ai/knowledge_base/documents/summaries/client.py +++ b/src/elevenlabs/conversational_ai/knowledge_base/documents/summaries/client.py @@ -52,7 +52,9 @@ def get( client = ElevenLabs( api_key="YOUR_API_KEY", ) - client.conversational_ai.knowledge_base.documents.summaries.get() + client.conversational_ai.knowledge_base.documents.summaries.get( + document_ids=["21m00Tcm4TlvDq8ikWAM", "31n11Udm5UmwEr9jkXBN"], + ) """ _response = self._raw_client.get(document_ids=document_ids, request_options=request_options) return _response.data @@ -107,7 +109,9 @@ async def get( async def main() -> None: - await client.conversational_ai.knowledge_base.documents.summaries.get() + await client.conversational_ai.knowledge_base.documents.summaries.get( + document_ids=["21m00Tcm4TlvDq8ikWAM", "31n11Udm5UmwEr9jkXBN"], + ) asyncio.run(main()) diff --git a/src/elevenlabs/conversational_ai/phone_numbers/client.py b/src/elevenlabs/conversational_ai/phone_numbers/client.py index 2426792f..0c99ffdf 100644 --- a/src/elevenlabs/conversational_ai/phone_numbers/client.py +++ b/src/elevenlabs/conversational_ai/phone_numbers/client.py @@ -5,6 +5,7 @@ from ...core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from ...core.request_options import RequestOptions from ...types.create_phone_number_response_model import CreatePhoneNumberResponseModel +from ...types.get_sip_log_messages_response import GetSipLogMessagesResponse from ...types.inbound_sip_trunk_config_request_model import InboundSipTrunkConfigRequestModel from ...types.livekit_stack_type import LivekitStackType from ...types.outbound_sip_trunk_config_request_model import OutboundSipTrunkConfigRequestModel @@ -174,6 +175,7 @@ def update( inbound_trunk_config: typing.Optional[InboundSipTrunkConfigRequestModel] = OMIT, outbound_trunk_config: typing.Optional[OutboundSipTrunkConfigRequestModel] = OMIT, livekit_stack: typing.Optional[LivekitStackType] = OMIT, + store_sip_messages: typing.Optional[bool] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> PhoneNumbersUpdateResponse: """ @@ -194,6 +196,8 @@ def update( livekit_stack : typing.Optional[LivekitStackType] + store_sip_messages : typing.Optional[bool] + request_options : typing.Optional[RequestOptions] Request-specific configuration. @@ -220,10 +224,58 @@ def update( inbound_trunk_config=inbound_trunk_config, outbound_trunk_config=outbound_trunk_config, livekit_stack=livekit_stack, + store_sip_messages=store_sip_messages, request_options=request_options, ) return _response.data + def get_sip_messages( + self, + phone_number_id: str, + *, + page_size: typing.Optional[int] = None, + cursor: typing.Optional[str] = None, + request_options: typing.Optional[RequestOptions] = None, + ) -> GetSipLogMessagesResponse: + """ + Get SIP messages for a phone number + + Parameters + ---------- + phone_number_id : str + The id of an agent. This is returned on agent creation. + + page_size : typing.Optional[int] + + cursor : typing.Optional[str] + Used for fetching next page. Cursor is returned in the response. + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + GetSipLogMessagesResponse + Successful Response + + Examples + -------- + from elevenlabs import ElevenLabs + + client = ElevenLabs( + api_key="YOUR_API_KEY", + ) + client.conversational_ai.phone_numbers.get_sip_messages( + phone_number_id="TeaqRRdTcIfIu2i7BYfT", + page_size=1, + cursor="cursor", + ) + """ + _response = self._raw_client.get_sip_messages( + phone_number_id, page_size=page_size, cursor=cursor, request_options=request_options + ) + return _response.data + class AsyncPhoneNumbersClient: def __init__(self, *, client_wrapper: AsyncClientWrapper): @@ -415,6 +467,7 @@ async def update( inbound_trunk_config: typing.Optional[InboundSipTrunkConfigRequestModel] = OMIT, outbound_trunk_config: typing.Optional[OutboundSipTrunkConfigRequestModel] = OMIT, livekit_stack: typing.Optional[LivekitStackType] = OMIT, + store_sip_messages: typing.Optional[bool] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> PhoneNumbersUpdateResponse: """ @@ -435,6 +488,8 @@ async def update( livekit_stack : typing.Optional[LivekitStackType] + store_sip_messages : typing.Optional[bool] + request_options : typing.Optional[RequestOptions] Request-specific configuration. @@ -469,6 +524,62 @@ async def main() -> None: inbound_trunk_config=inbound_trunk_config, outbound_trunk_config=outbound_trunk_config, livekit_stack=livekit_stack, + store_sip_messages=store_sip_messages, request_options=request_options, ) return _response.data + + async def get_sip_messages( + self, + phone_number_id: str, + *, + page_size: typing.Optional[int] = None, + cursor: typing.Optional[str] = None, + request_options: typing.Optional[RequestOptions] = None, + ) -> GetSipLogMessagesResponse: + """ + Get SIP messages for a phone number + + Parameters + ---------- + phone_number_id : str + The id of an agent. This is returned on agent creation. + + page_size : typing.Optional[int] + + cursor : typing.Optional[str] + Used for fetching next page. Cursor is returned in the response. + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + GetSipLogMessagesResponse + Successful Response + + Examples + -------- + import asyncio + + from elevenlabs import AsyncElevenLabs + + client = AsyncElevenLabs( + api_key="YOUR_API_KEY", + ) + + + async def main() -> None: + await client.conversational_ai.phone_numbers.get_sip_messages( + phone_number_id="TeaqRRdTcIfIu2i7BYfT", + page_size=1, + cursor="cursor", + ) + + + asyncio.run(main()) + """ + _response = await self._raw_client.get_sip_messages( + phone_number_id, page_size=page_size, cursor=cursor, request_options=request_options + ) + return _response.data diff --git a/src/elevenlabs/conversational_ai/phone_numbers/raw_client.py b/src/elevenlabs/conversational_ai/phone_numbers/raw_client.py index d44a2d0a..1d8574c7 100644 --- a/src/elevenlabs/conversational_ai/phone_numbers/raw_client.py +++ b/src/elevenlabs/conversational_ai/phone_numbers/raw_client.py @@ -12,6 +12,7 @@ from ...core.unchecked_base_model import construct_type from ...errors.unprocessable_entity_error import UnprocessableEntityError from ...types.create_phone_number_response_model import CreatePhoneNumberResponseModel +from ...types.get_sip_log_messages_response import GetSipLogMessagesResponse from ...types.inbound_sip_trunk_config_request_model import InboundSipTrunkConfigRequestModel from ...types.livekit_stack_type import LivekitStackType from ...types.outbound_sip_trunk_config_request_model import OutboundSipTrunkConfigRequestModel @@ -242,6 +243,7 @@ def update( inbound_trunk_config: typing.Optional[InboundSipTrunkConfigRequestModel] = OMIT, outbound_trunk_config: typing.Optional[OutboundSipTrunkConfigRequestModel] = OMIT, livekit_stack: typing.Optional[LivekitStackType] = OMIT, + store_sip_messages: typing.Optional[bool] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> HttpResponse[PhoneNumbersUpdateResponse]: """ @@ -262,6 +264,8 @@ def update( livekit_stack : typing.Optional[LivekitStackType] + store_sip_messages : typing.Optional[bool] + request_options : typing.Optional[RequestOptions] Request-specific configuration. @@ -283,6 +287,7 @@ def update( object_=outbound_trunk_config, annotation=OutboundSipTrunkConfigRequestModel, direction="write" ), "livekit_stack": livekit_stack, + "store_sip_messages": store_sip_messages, }, headers={ "content-type": "application/json", @@ -316,6 +321,70 @@ def update( raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) + def get_sip_messages( + self, + phone_number_id: str, + *, + page_size: typing.Optional[int] = None, + cursor: typing.Optional[str] = None, + request_options: typing.Optional[RequestOptions] = None, + ) -> HttpResponse[GetSipLogMessagesResponse]: + """ + Get SIP messages for a phone number + + Parameters + ---------- + phone_number_id : str + The id of an agent. This is returned on agent creation. + + page_size : typing.Optional[int] + + cursor : typing.Optional[str] + Used for fetching next page. Cursor is returned in the response. + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + HttpResponse[GetSipLogMessagesResponse] + Successful Response + """ + _response = self._client_wrapper.httpx_client.request( + f"v1/convai/phone-numbers/{jsonable_encoder(phone_number_id)}/sip-messages", + method="GET", + params={ + "page_size": page_size, + "cursor": cursor, + }, + request_options=request_options, + ) + try: + if 200 <= _response.status_code < 300: + _data = typing.cast( + GetSipLogMessagesResponse, + construct_type( + type_=GetSipLogMessagesResponse, # type: ignore + object_=_response.json(), + ), + ) + return HttpResponse(response=_response, data=_data) + if _response.status_code == 422: + raise UnprocessableEntityError( + headers=dict(_response.headers), + body=typing.cast( + typing.Any, + construct_type( + type_=typing.Any, # type: ignore + object_=_response.json(), + ), + ), + ) + _response_json = _response.json() + except JSONDecodeError: + raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) + raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) + class AsyncRawPhoneNumbersClient: def __init__(self, *, client_wrapper: AsyncClientWrapper): @@ -535,6 +604,7 @@ async def update( inbound_trunk_config: typing.Optional[InboundSipTrunkConfigRequestModel] = OMIT, outbound_trunk_config: typing.Optional[OutboundSipTrunkConfigRequestModel] = OMIT, livekit_stack: typing.Optional[LivekitStackType] = OMIT, + store_sip_messages: typing.Optional[bool] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> AsyncHttpResponse[PhoneNumbersUpdateResponse]: """ @@ -555,6 +625,8 @@ async def update( livekit_stack : typing.Optional[LivekitStackType] + store_sip_messages : typing.Optional[bool] + request_options : typing.Optional[RequestOptions] Request-specific configuration. @@ -576,6 +648,7 @@ async def update( object_=outbound_trunk_config, annotation=OutboundSipTrunkConfigRequestModel, direction="write" ), "livekit_stack": livekit_stack, + "store_sip_messages": store_sip_messages, }, headers={ "content-type": "application/json", @@ -608,3 +681,67 @@ async def update( except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) + + async def get_sip_messages( + self, + phone_number_id: str, + *, + page_size: typing.Optional[int] = None, + cursor: typing.Optional[str] = None, + request_options: typing.Optional[RequestOptions] = None, + ) -> AsyncHttpResponse[GetSipLogMessagesResponse]: + """ + Get SIP messages for a phone number + + Parameters + ---------- + phone_number_id : str + The id of an agent. This is returned on agent creation. + + page_size : typing.Optional[int] + + cursor : typing.Optional[str] + Used for fetching next page. Cursor is returned in the response. + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + AsyncHttpResponse[GetSipLogMessagesResponse] + Successful Response + """ + _response = await self._client_wrapper.httpx_client.request( + f"v1/convai/phone-numbers/{jsonable_encoder(phone_number_id)}/sip-messages", + method="GET", + params={ + "page_size": page_size, + "cursor": cursor, + }, + request_options=request_options, + ) + try: + if 200 <= _response.status_code < 300: + _data = typing.cast( + GetSipLogMessagesResponse, + construct_type( + type_=GetSipLogMessagesResponse, # type: ignore + object_=_response.json(), + ), + ) + return AsyncHttpResponse(response=_response, data=_data) + if _response.status_code == 422: + raise UnprocessableEntityError( + headers=dict(_response.headers), + body=typing.cast( + typing.Any, + construct_type( + type_=typing.Any, # type: ignore + object_=_response.json(), + ), + ), + ) + _response_json = _response.json() + except JSONDecodeError: + raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) + raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/elevenlabs/conversational_ai/phone_numbers/types/phone_numbers_get_response.py b/src/elevenlabs/conversational_ai/phone_numbers/types/phone_numbers_get_response.py index e65c5546..63867927 100644 --- a/src/elevenlabs/conversational_ai/phone_numbers/types/phone_numbers_get_response.py +++ b/src/elevenlabs/conversational_ai/phone_numbers/types/phone_numbers_get_response.py @@ -49,6 +49,7 @@ class PhoneNumbersGetResponse_SipTrunk(UncheckedBaseModel): outbound_trunk: typing.Optional[GetPhoneNumberOutboundSipTrunkConfigResponseModel] = None inbound_trunk: typing.Optional[GetPhoneNumberInboundSipTrunkConfigResponseModel] = None livekit_stack: LivekitStackType + store_sip_messages: typing.Optional[bool] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/elevenlabs/conversational_ai/phone_numbers/types/phone_numbers_list_response_item.py b/src/elevenlabs/conversational_ai/phone_numbers/types/phone_numbers_list_response_item.py index 90526d95..02cb26e9 100644 --- a/src/elevenlabs/conversational_ai/phone_numbers/types/phone_numbers_list_response_item.py +++ b/src/elevenlabs/conversational_ai/phone_numbers/types/phone_numbers_list_response_item.py @@ -49,6 +49,7 @@ class PhoneNumbersListResponseItem_SipTrunk(UncheckedBaseModel): outbound_trunk: typing.Optional[GetPhoneNumberOutboundSipTrunkConfigResponseModel] = None inbound_trunk: typing.Optional[GetPhoneNumberInboundSipTrunkConfigResponseModel] = None livekit_stack: LivekitStackType + store_sip_messages: typing.Optional[bool] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/elevenlabs/conversational_ai/phone_numbers/types/phone_numbers_update_response.py b/src/elevenlabs/conversational_ai/phone_numbers/types/phone_numbers_update_response.py index 2ce845b9..6c7caba1 100644 --- a/src/elevenlabs/conversational_ai/phone_numbers/types/phone_numbers_update_response.py +++ b/src/elevenlabs/conversational_ai/phone_numbers/types/phone_numbers_update_response.py @@ -49,6 +49,7 @@ class PhoneNumbersUpdateResponse_SipTrunk(UncheckedBaseModel): outbound_trunk: typing.Optional[GetPhoneNumberOutboundSipTrunkConfigResponseModel] = None inbound_trunk: typing.Optional[GetPhoneNumberInboundSipTrunkConfigResponseModel] = None livekit_stack: LivekitStackType + store_sip_messages: typing.Optional[bool] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/elevenlabs/conversational_ai/tests/client.py b/src/elevenlabs/conversational_ai/tests/client.py index a87345b3..966b0f2f 100644 --- a/src/elevenlabs/conversational_ai/tests/client.py +++ b/src/elevenlabs/conversational_ai/tests/client.py @@ -314,6 +314,7 @@ def list( page_size=1, search="search", parent_folder_id="parent_folder_id", + types=["llm"], include_folders=True, sort_mode="default", sharing_mode="all", @@ -691,6 +692,7 @@ async def main() -> None: page_size=1, search="search", parent_folder_id="parent_folder_id", + types=["llm"], include_folders=True, sort_mode="default", sharing_mode="all", diff --git a/src/elevenlabs/conversational_ai/tests/invocations/client.py b/src/elevenlabs/conversational_ai/tests/invocations/client.py index 2597fdc5..9912441f 100644 --- a/src/elevenlabs/conversational_ai/tests/invocations/client.py +++ b/src/elevenlabs/conversational_ai/tests/invocations/client.py @@ -31,7 +31,7 @@ def with_raw_response(self) -> RawInvocationsClient: def list( self, *, - agent_id: str, + agent_id: typing.Optional[str] = None, page_size: typing.Optional[int] = None, cursor: typing.Optional[str] = None, request_options: typing.Optional[RequestOptions] = None, @@ -41,7 +41,7 @@ def list( Parameters ---------- - agent_id : str + agent_id : typing.Optional[str] Filter by agent ID page_size : typing.Optional[int] @@ -189,7 +189,7 @@ def with_raw_response(self) -> AsyncRawInvocationsClient: async def list( self, *, - agent_id: str, + agent_id: typing.Optional[str] = None, page_size: typing.Optional[int] = None, cursor: typing.Optional[str] = None, request_options: typing.Optional[RequestOptions] = None, @@ -199,7 +199,7 @@ async def list( Parameters ---------- - agent_id : str + agent_id : typing.Optional[str] Filter by agent ID page_size : typing.Optional[int] diff --git a/src/elevenlabs/conversational_ai/tests/invocations/raw_client.py b/src/elevenlabs/conversational_ai/tests/invocations/raw_client.py index 07b5e673..77d2238d 100644 --- a/src/elevenlabs/conversational_ai/tests/invocations/raw_client.py +++ b/src/elevenlabs/conversational_ai/tests/invocations/raw_client.py @@ -26,7 +26,7 @@ def __init__(self, *, client_wrapper: SyncClientWrapper): def list( self, *, - agent_id: str, + agent_id: typing.Optional[str] = None, page_size: typing.Optional[int] = None, cursor: typing.Optional[str] = None, request_options: typing.Optional[RequestOptions] = None, @@ -36,7 +36,7 @@ def list( Parameters ---------- - agent_id : str + agent_id : typing.Optional[str] Filter by agent ID page_size : typing.Optional[int] @@ -232,7 +232,7 @@ def __init__(self, *, client_wrapper: AsyncClientWrapper): async def list( self, *, - agent_id: str, + agent_id: typing.Optional[str] = None, page_size: typing.Optional[int] = None, cursor: typing.Optional[str] = None, request_options: typing.Optional[RequestOptions] = None, @@ -242,7 +242,7 @@ async def list( Parameters ---------- - agent_id : str + agent_id : typing.Optional[str] Filter by agent ID page_size : typing.Optional[int] diff --git a/src/elevenlabs/conversational_ai/tests/types/tests_create_request_body.py b/src/elevenlabs/conversational_ai/tests/types/tests_create_request_body.py index d25288c1..a51e96a8 100644 --- a/src/elevenlabs/conversational_ai/tests/types/tests_create_request_body.py +++ b/src/elevenlabs/conversational_ai/tests/types/tests_create_request_body.py @@ -12,6 +12,7 @@ from ....types.agent_successful_response_example import AgentSuccessfulResponseExample from ....types.conversation_history_transcript_common_model_input import ConversationHistoryTranscriptCommonModelInput from ....types.dynamic_variable_value_type_input import DynamicVariableValueTypeInput +from ....types.llm import Llm from ....types.simulation_tool_mock_behavior_config import SimulationToolMockBehaviorConfig from ....types.test_from_conversation_metadata_input import TestFromConversationMetadataInput from ....types.unit_test_tool_call_evaluation_model_input import UnitTestToolCallEvaluationModelInput @@ -80,6 +81,8 @@ class TestsCreateRequestBody_Simulation(UncheckedBaseModel): simulation_max_turns: typing.Optional[int] = None simulation_environment: typing.Optional[str] = None tool_mock_config: typing.Optional[SimulationToolMockBehaviorConfig] = None + evaluation_model: typing.Optional[Llm] = None + simulated_user_model: typing.Optional[Llm] = None name: str parent_folder_id: typing.Optional[str] = None diff --git a/src/elevenlabs/conversational_ai/tests/types/tests_get_response.py b/src/elevenlabs/conversational_ai/tests/types/tests_get_response.py index c555c03b..3df06f99 100644 --- a/src/elevenlabs/conversational_ai/tests/types/tests_get_response.py +++ b/src/elevenlabs/conversational_ai/tests/types/tests_get_response.py @@ -12,6 +12,7 @@ from ....types.agent_successful_response_example import AgentSuccessfulResponseExample from ....types.conversation_history_transcript_common_model_output import ConversationHistoryTranscriptCommonModelOutput from ....types.dynamic_variable_value_type_output import DynamicVariableValueTypeOutput +from ....types.llm import Llm from ....types.simulation_tool_mock_behavior_config import SimulationToolMockBehaviorConfig from ....types.test_from_conversation_metadata_output import TestFromConversationMetadataOutput from ....types.unit_test_tool_call_evaluation_model_output import UnitTestToolCallEvaluationModelOutput @@ -68,6 +69,8 @@ class TestsGetResponse_Simulation(UncheckedBaseModel): simulation_max_turns: typing.Optional[int] = None simulation_environment: typing.Optional[str] = None tool_mock_config: typing.Optional[SimulationToolMockBehaviorConfig] = None + evaluation_model: typing.Optional[Llm] = None + simulated_user_model: typing.Optional[Llm] = None id: str name: str diff --git a/src/elevenlabs/conversational_ai/tests/types/tests_update_request_body.py b/src/elevenlabs/conversational_ai/tests/types/tests_update_request_body.py index d0644765..d76578b9 100644 --- a/src/elevenlabs/conversational_ai/tests/types/tests_update_request_body.py +++ b/src/elevenlabs/conversational_ai/tests/types/tests_update_request_body.py @@ -12,6 +12,7 @@ from ....types.agent_successful_response_example import AgentSuccessfulResponseExample from ....types.conversation_history_transcript_common_model_input import ConversationHistoryTranscriptCommonModelInput from ....types.dynamic_variable_value_type_input import DynamicVariableValueTypeInput +from ....types.llm import Llm from ....types.simulation_tool_mock_behavior_config import SimulationToolMockBehaviorConfig from ....types.test_from_conversation_metadata_input import TestFromConversationMetadataInput from ....types.unit_test_tool_call_evaluation_model_input import UnitTestToolCallEvaluationModelInput @@ -80,6 +81,8 @@ class TestsUpdateRequestBody_Simulation(UncheckedBaseModel): simulation_max_turns: typing.Optional[int] = None simulation_environment: typing.Optional[str] = None tool_mock_config: typing.Optional[SimulationToolMockBehaviorConfig] = None + evaluation_model: typing.Optional[Llm] = None + simulated_user_model: typing.Optional[Llm] = None name: str parent_folder_id: typing.Optional[str] = None diff --git a/src/elevenlabs/conversational_ai/tests/types/tests_update_response.py b/src/elevenlabs/conversational_ai/tests/types/tests_update_response.py index 22a8b3df..324a9e31 100644 --- a/src/elevenlabs/conversational_ai/tests/types/tests_update_response.py +++ b/src/elevenlabs/conversational_ai/tests/types/tests_update_response.py @@ -12,6 +12,7 @@ from ....types.agent_successful_response_example import AgentSuccessfulResponseExample from ....types.conversation_history_transcript_common_model_output import ConversationHistoryTranscriptCommonModelOutput from ....types.dynamic_variable_value_type_output import DynamicVariableValueTypeOutput +from ....types.llm import Llm from ....types.simulation_tool_mock_behavior_config import SimulationToolMockBehaviorConfig from ....types.test_from_conversation_metadata_output import TestFromConversationMetadataOutput from ....types.unit_test_tool_call_evaluation_model_output import UnitTestToolCallEvaluationModelOutput @@ -68,6 +69,8 @@ class TestsUpdateResponse_Simulation(UncheckedBaseModel): simulation_max_turns: typing.Optional[int] = None simulation_environment: typing.Optional[str] = None tool_mock_config: typing.Optional[SimulationToolMockBehaviorConfig] = None + evaluation_model: typing.Optional[Llm] = None + simulated_user_model: typing.Optional[Llm] = None id: str name: str diff --git a/src/elevenlabs/conversational_ai/tools/client.py b/src/elevenlabs/conversational_ai/tools/client.py index 91e14645..a10d4bbc 100644 --- a/src/elevenlabs/conversational_ai/tools/client.py +++ b/src/elevenlabs/conversational_ai/tools/client.py @@ -100,6 +100,7 @@ def list( page_size=1, show_only_owned_documents=True, created_by_user_id="created_by_user_id", + types=["webhook"], sort_direction="asc", sort_by="name", cursor="cursor", @@ -419,6 +420,7 @@ async def main() -> None: page_size=1, show_only_owned_documents=True, created_by_user_id="created_by_user_id", + types=["webhook"], sort_direction="asc", sort_by="name", cursor="cursor", diff --git a/src/elevenlabs/core/client_wrapper.py b/src/elevenlabs/core/client_wrapper.py index e0235b57..720db7b8 100644 --- a/src/elevenlabs/core/client_wrapper.py +++ b/src/elevenlabs/core/client_wrapper.py @@ -22,10 +22,10 @@ def __init__( def get_headers(self) -> typing.Dict[str, str]: headers: typing.Dict[str, str] = { - "User-Agent": "elevenlabs/2.45.0", + "User-Agent": "elevenlabs/2.46.0", "X-Fern-Language": "Python", "X-Fern-SDK-Name": "elevenlabs", - "X-Fern-SDK-Version": "2.45.0", + "X-Fern-SDK-Version": "2.46.0", **(self.get_custom_headers() or {}), } if self._api_key is not None: diff --git a/src/elevenlabs/text_to_dialogue/client.py b/src/elevenlabs/text_to_dialogue/client.py index 954f0a98..83baac9b 100644 --- a/src/elevenlabs/text_to_dialogue/client.py +++ b/src/elevenlabs/text_to_dialogue/client.py @@ -115,11 +115,11 @@ def convert( client.text_to_dialogue.convert( inputs=[ DialogueInput( - text="Knock knock", + text="[giggling] Knock knock", voice_id="JBFqnCBsd6RMkjVDRZzb", ), DialogueInput( - text="Who is there?", + text="[curious] Who is there?", voice_id="Aw4FAjKCGjjNkVhN1Xmq", ), ], @@ -202,11 +202,11 @@ def stream( client.text_to_dialogue.stream( inputs=[ DialogueInput( - text="Knock knock", + text="[giggling] Knock knock", voice_id="JBFqnCBsd6RMkjVDRZzb", ), DialogueInput( - text="Who is there?", + text="[curious] Who is there?", voice_id="Aw4FAjKCGjjNkVhN1Xmq", ), ], @@ -484,11 +484,11 @@ async def main() -> None: await client.text_to_dialogue.convert( inputs=[ DialogueInput( - text="Knock knock", + text="[giggling] Knock knock", voice_id="JBFqnCBsd6RMkjVDRZzb", ), DialogueInput( - text="Who is there?", + text="[curious] Who is there?", voice_id="Aw4FAjKCGjjNkVhN1Xmq", ), ], @@ -580,11 +580,11 @@ async def main() -> None: await client.text_to_dialogue.stream( inputs=[ DialogueInput( - text="Knock knock", + text="[giggling] Knock knock", voice_id="JBFqnCBsd6RMkjVDRZzb", ), DialogueInput( - text="Who is there?", + text="[curious] Who is there?", voice_id="Aw4FAjKCGjjNkVhN1Xmq", ), ], diff --git a/src/elevenlabs/text_to_voice/client.py b/src/elevenlabs/text_to_voice/client.py index f209d2ee..2aa7c00f 100644 --- a/src/elevenlabs/text_to_voice/client.py +++ b/src/elevenlabs/text_to_voice/client.py @@ -137,7 +137,7 @@ def create( Description to use for the created voice. generated_voice_id : str - The generated_voice_id to create, call POST /v1/text-to-voice/create-previews and fetch the generated_voice_id from the response header if don't have one yet. + The generated_voice_id to create; obtain it from POST /v1/text-to-voice/design, POST /v1/text-to-voice/:voice_id/remix, or the response headers when generating previews. labels : typing.Optional[typing.Dict[str, typing.Optional[str]]] Optional, metadata to add to the created voice. Defaults to None. @@ -518,7 +518,7 @@ async def create( Description to use for the created voice. generated_voice_id : str - The generated_voice_id to create, call POST /v1/text-to-voice/create-previews and fetch the generated_voice_id from the response header if don't have one yet. + The generated_voice_id to create; obtain it from POST /v1/text-to-voice/design, POST /v1/text-to-voice/:voice_id/remix, or the response headers when generating previews. labels : typing.Optional[typing.Dict[str, typing.Optional[str]]] Optional, metadata to add to the created voice. Defaults to None. diff --git a/src/elevenlabs/text_to_voice/raw_client.py b/src/elevenlabs/text_to_voice/raw_client.py index 1710cd73..d0fb00b4 100644 --- a/src/elevenlabs/text_to_voice/raw_client.py +++ b/src/elevenlabs/text_to_voice/raw_client.py @@ -147,7 +147,7 @@ def create( Description to use for the created voice. generated_voice_id : str - The generated_voice_id to create, call POST /v1/text-to-voice/create-previews and fetch the generated_voice_id from the response header if don't have one yet. + The generated_voice_id to create; obtain it from POST /v1/text-to-voice/design, POST /v1/text-to-voice/:voice_id/remix, or the response headers when generating previews. labels : typing.Optional[typing.Dict[str, typing.Optional[str]]] Optional, metadata to add to the created voice. Defaults to None. @@ -582,7 +582,7 @@ async def create( Description to use for the created voice. generated_voice_id : str - The generated_voice_id to create, call POST /v1/text-to-voice/create-previews and fetch the generated_voice_id from the response header if don't have one yet. + The generated_voice_id to create; obtain it from POST /v1/text-to-voice/design, POST /v1/text-to-voice/:voice_id/remix, or the response headers when generating previews. labels : typing.Optional[typing.Dict[str, typing.Optional[str]]] Optional, metadata to add to the created voice. Defaults to None. diff --git a/src/elevenlabs/types/__init__.py b/src/elevenlabs/types/__init__.py index 2723e5d4..8412a2d9 100644 --- a/src/elevenlabs/types/__init__.py +++ b/src/elevenlabs/types/__init__.py @@ -6,6 +6,8 @@ from importlib import import_module if typing.TYPE_CHECKING: + from .account_change_activity_id import AccountChangeActivityId + from .actor_model import ActorModel from .add_chapter_response_model import AddChapterResponseModel from .add_knowledge_base_response_model import AddKnowledgeBaseResponseModel from .add_project_request import AddProjectRequest @@ -85,10 +87,15 @@ from .analysis_property_constant_value import AnalysisPropertyConstantValue from .analysis_property_type import AnalysisPropertyType from .analysis_scope import AnalysisScope + from .api_integration_doc_response import ApiIntegrationDocResponse from .api_integration_o_auth_2_auth_code_response import ApiIntegrationOAuth2AuthCodeResponse from .api_integration_o_auth_2_auth_code_response_scope_separator import ( ApiIntegrationOAuth2AuthCodeResponseScopeSeparator, ) + from .api_integration_o_auth_2_custom_app_response import ApiIntegrationOAuth2CustomAppResponse + from .api_integration_o_auth_2_custom_app_response_scope_separator import ( + ApiIntegrationOAuth2CustomAppResponseScopeSeparator, + ) from .api_integration_webhook_overrides import ApiIntegrationWebhookOverrides from .api_integration_webhook_overrides_request_headers_value import ( ApiIntegrationWebhookOverridesRequestHeadersValue, @@ -232,8 +239,13 @@ ) from .auth_connection_locator import AuthConnectionLocator from .auth_settings import AuthSettings + from .authentication_activity_id import AuthenticationActivityId from .authorization_method import AuthorizationMethod from .auto_sync_info import AutoSyncInfo + from .background_music_config import BackgroundMusicConfig + from .background_music_config_workflow_override import BackgroundMusicConfigWorkflowOverride + from .background_music_preset_id import BackgroundMusicPresetId + from .background_music_source_type import BackgroundMusicSourceType from .backup_llm_default import BackupLlmDefault from .backup_llm_disabled import BackupLlmDisabled from .backup_llm_override import BackupLlmOverride @@ -253,6 +265,9 @@ from .built_in_tools_output import BuiltInToolsOutput from .built_in_tools_workflow_override_input import BuiltInToolsWorkflowOverrideInput from .built_in_tools_workflow_override_output import BuiltInToolsWorkflowOverrideOutput + from .cancel_calendar_event_params import CancelCalendarEventParams + from .cancel_group_session_for_all_params import CancelGroupSessionForAllParams + from .cancel_group_session_registration_params import CancelGroupSessionRegistrationParams from .canvas_placement import CanvasPlacement from .caption_style_character_animation_model import CaptionStyleCharacterAnimationModel from .caption_style_character_animation_model_enter_type import CaptionStyleCharacterAnimationModelEnterType @@ -336,6 +351,7 @@ ) from .content_threshold_guardrail import ContentThresholdGuardrail from .content_threshold_guardrail_threshold import ContentThresholdGuardrailThreshold + from .contextual_update_info import ContextualUpdateInfo from .contributor import Contributor from .conv_ai_dynamic_variable import ConvAiDynamicVariable from .conv_ai_env_var_locator import ConvAiEnvVarLocator @@ -360,15 +376,18 @@ from .conv_ai_user_secret_db_model import ConvAiUserSecretDbModel from .conv_ai_webhooks import ConvAiWebhooks from .conv_ai_workspace_stored_secret_config import ConvAiWorkspaceStoredSecretConfig + from .conversation_asr_usage_model import ConversationAsrUsageModel from .conversation_charging_common_model import ConversationChargingCommonModel - from .conversation_config import ConversationConfig from .conversation_config_client_override_config_input import ConversationConfigClientOverrideConfigInput from .conversation_config_client_override_config_output import ConversationConfigClientOverrideConfigOutput from .conversation_config_client_override_input import ConversationConfigClientOverrideInput from .conversation_config_client_override_output import ConversationConfigClientOverrideOutput + from .conversation_config_input import ConversationConfigInput + from .conversation_config_output import ConversationConfigOutput from .conversation_config_override import ConversationConfigOverride from .conversation_config_override_config import ConversationConfigOverrideConfig - from .conversation_config_workflow_override import ConversationConfigWorkflowOverride + from .conversation_config_workflow_override_input import ConversationConfigWorkflowOverrideInput + from .conversation_config_workflow_override_output import ConversationConfigWorkflowOverrideOutput from .conversation_deletion_settings import ConversationDeletionSettings from .conversation_feedback_type import ConversationFeedbackType from .conversation_history_analysis_common_model import ConversationHistoryAnalysisCommonModel @@ -430,6 +449,7 @@ from .conversation_history_transcript_system_tool_result_common_model_input_result import ( ConversationHistoryTranscriptSystemToolResultCommonModelInputResult, ConversationHistoryTranscriptSystemToolResultCommonModelInputResult_EndCallSuccess, + ConversationHistoryTranscriptSystemToolResultCommonModelInputResult_KnowledgeBaseRagSuccess, ConversationHistoryTranscriptSystemToolResultCommonModelInputResult_LanguageDetectionSuccess, ConversationHistoryTranscriptSystemToolResultCommonModelInputResult_PlayDtmfError, ConversationHistoryTranscriptSystemToolResultCommonModelInputResult_PlayDtmfSuccess, @@ -448,6 +468,7 @@ from .conversation_history_transcript_system_tool_result_common_model_output_result import ( ConversationHistoryTranscriptSystemToolResultCommonModelOutputResult, ConversationHistoryTranscriptSystemToolResultCommonModelOutputResult_EndCallSuccess, + ConversationHistoryTranscriptSystemToolResultCommonModelOutputResult_KnowledgeBaseRagSuccess, ConversationHistoryTranscriptSystemToolResultCommonModelOutputResult_LanguageDetectionSuccess, ConversationHistoryTranscriptSystemToolResultCommonModelOutputResult_PlayDtmfError, ConversationHistoryTranscriptSystemToolResultCommonModelOutputResult_PlayDtmfSuccess, @@ -516,10 +537,14 @@ from .conversation_source import ConversationSource from .conversation_summary_response_model import ConversationSummaryResponseModel from .conversation_summary_response_model_status import ConversationSummaryResponseModelStatus + from .conversation_tag_response_model import ConversationTagResponseModel from .conversation_token_db_model import ConversationTokenDbModel from .conversation_token_purpose import ConversationTokenPurpose + from .conversation_tts_usage_model import ConversationTtsUsageModel from .conversation_turn_metrics import ConversationTurnMetrics from .conversation_user_response_model import ConversationUserResponseModel + from .conversation_voice_reward_model import ConversationVoiceRewardModel + from .conversation_voice_usage_model import ConversationVoiceUsageModel from .conversational_config import ConversationalConfig from .conversational_config_api_model_workflow_override_input import ( ConversationalConfigApiModelWorkflowOverrideInput, @@ -548,6 +573,7 @@ from .create_o_auth_2_client_creds_request import CreateOAuth2ClientCredsRequest from .create_o_auth_2_jwt_request import CreateOAuth2JwtRequest from .create_o_auth_2_jwt_request_algorithm import CreateOAuth2JwtRequestAlgorithm + from .create_o_auth_2_jwt_request_token_response_field import CreateOAuth2JwtRequestTokenResponseField from .create_phone_number_response_model import CreatePhoneNumberResponseModel from .create_previously_generated_voice_request import CreatePreviouslyGeneratedVoiceRequest from .create_private_key_jwt_request import CreatePrivateKeyJwtRequest @@ -596,6 +622,7 @@ from .delete_client_interaction_params import DeleteClientInteractionParams from .delete_client_params import DeleteClientParams from .delete_dubbing_response_model import DeleteDubbingResponseModel + from .delete_group_session_params import DeleteGroupSessionParams from .delete_history_item_response import DeleteHistoryItemResponse from .delete_holiday_params import DeleteHolidayParams from .delete_location_params import DeleteLocationParams @@ -624,6 +651,7 @@ from .dependent_unknown_tool_identifier import DependentUnknownToolIdentifier from .detailed_music_response import DetailedMusicResponse from .detected_entity import DetectedEntity + from .device_model import DeviceModel from .dialogue_input import DialogueInput from .dialogue_input_response_model import DialogueInputResponseModel from .dialogue_text_alignment import DialogueTextAlignment @@ -642,7 +670,6 @@ from .dubbing_media_reference import DubbingMediaReference from .dubbing_metadata_page_response_model import DubbingMetadataPageResponseModel from .dubbing_metadata_response import DubbingMetadataResponse - from .dubbing_model import DubbingModel from .dubbing_render_response_model import DubbingRenderResponseModel from .dubbing_resource import DubbingResource from .dubbing_transcript import DubbingTranscript @@ -673,6 +700,7 @@ from .end_call_tool_config import EndCallToolConfig from .end_call_tool_result_model import EndCallToolResultModel from .end_call_trigger_action import EndCallTriggerAction + from .entity_management_activity_id import EntityManagementActivityId from .environment_auth_connection_locator import EnvironmentAuthConnectionLocator from .environment_variable_auth_connection_value import EnvironmentVariableAuthConnectionValue from .environment_variable_auth_connection_value_request import EnvironmentVariableAuthConnectionValueRequest @@ -752,6 +780,7 @@ from .get_conv_ai_settings_response_model import GetConvAiSettingsResponseModel from .get_conversation_response_model import GetConversationResponseModel from .get_conversation_response_model_status import GetConversationResponseModelStatus + from .get_conversation_tags_page_response_model import GetConversationTagsPageResponseModel from .get_conversation_users_page_response_model import GetConversationUsersPageResponseModel from .get_conversations_page_response_model import GetConversationsPageResponseModel from .get_knowledge_base_dependent_agents_response_model import GetKnowledgeBaseDependentAgentsResponseModel @@ -844,6 +873,7 @@ GetSecretDependenciesResponseModelDependenciesZeroItem_Unknown, ) from .get_simulation_test_response_model import GetSimulationTestResponseModel + from .get_sip_log_messages_response import GetSipLogMessagesResponse from .get_speech_history_response import GetSpeechHistoryResponse from .get_test_invocations_page_response_model import GetTestInvocationsPageResponseModel from .get_test_suite_invocation_response_model import GetTestSuiteInvocationResponseModel @@ -861,6 +891,7 @@ from .get_voices_v_2_response import GetVoicesV2Response from .get_whats_app_account_response import GetWhatsAppAccountResponse from .get_workspace_secrets_response_model import GetWorkspaceSecretsResponseModel + from .group_management_activity_id import GroupManagementActivityId from .guardrail_execution_mode import GuardrailExecutionMode from .guardrails_v_1_input import GuardrailsV1Input from .guardrails_v_1_output import GuardrailsV1Output @@ -868,9 +899,14 @@ from .history_alignments_response_model import HistoryAlignmentsResponseModel from .history_item_response import HistoryItemResponse from .html_export_options import HtmlExportOptions + from .http_request_model import HttpRequestModel from .http_validation_error import HttpValidationError from .icon import Icon + from .image_analysis import ImageAnalysis + from .image_analysis_result import ImageAnalysisResult + from .image_analysis_status import ImageAnalysisStatus from .image_avatar import ImageAvatar + from .image_subject import ImageSubject from .inbound_sip_trunk_config_request_model import InboundSipTrunkConfigRequestModel from .initialise_context import InitialiseContext from .initialize_connection import InitializeConnection @@ -899,6 +935,9 @@ KnowledgeBaseFolderPathSegmentSummaryResponseModel, ) from .knowledge_base_locator import KnowledgeBaseLocator + from .knowledge_base_rag_tool_config import KnowledgeBaseRagToolConfig + from .knowledge_base_rag_tool_result_model import KnowledgeBaseRagToolResultModel + from .knowledge_base_rag_tool_status import KnowledgeBaseRagToolStatus from .knowledge_base_sort_by import KnowledgeBaseSortBy from .knowledge_base_source_file_url_response_model import KnowledgeBaseSourceFileUrlResponseModel from .knowledge_base_summary_batch_successful_response_model import KnowledgeBaseSummaryBatchSuccessfulResponseModel @@ -916,6 +955,7 @@ from .language_preset_output import LanguagePresetOutput from .language_preset_translation import LanguagePresetTranslation from .language_response import LanguageResponse + from .leave_message_params import LeaveMessageParams from .library_voice_response import LibraryVoiceResponse from .library_voice_response_model_category import LibraryVoiceResponseModelCategory from .list_agent_rules_params import ListAgentRulesParams @@ -924,6 +964,7 @@ from .list_auth_connections_response_auth_connections_item import ( ListAuthConnectionsResponseAuthConnectionsItem, ListAuthConnectionsResponseAuthConnectionsItem_ApiIntegrationOauth2AuthCode, + ListAuthConnectionsResponseAuthConnectionsItem_ApiIntegrationOauth2CustomApp, ListAuthConnectionsResponseAuthConnectionsItem_BasicAuth, ListAuthConnectionsResponseAuthConnectionsItem_BearerAuth, ListAuthConnectionsResponseAuthConnectionsItem_CustomHeaderAuth, @@ -936,11 +977,13 @@ from .list_calendar_events_params import ListCalendarEventsParams from .list_client_interactions_params import ListClientInteractionsParams from .list_clients_params import ListClientsParams + from .list_group_sessions_params import ListGroupSessionsParams from .list_holidays_params import ListHolidaysParams from .list_locations_params import ListLocationsParams from .list_mcp_tools_response_model import ListMcpToolsResponseModel from .list_products_params import ListProductsParams from .list_response_agent_branch_summary import ListResponseAgentBranchSummary + from .list_response_api_integration_doc_response import ListResponseApiIntegrationDocResponse from .list_response_meta import ListResponseMeta from .list_services_params import ListServicesParams from .list_staff_params import ListStaffParams @@ -1035,6 +1078,7 @@ from .o_auth_2_client_creds_response import OAuth2ClientCredsResponse from .o_auth_2_jwt_response import OAuth2JwtResponse from .o_auth_2_jwt_response_algorithm import OAuth2JwtResponseAlgorithm + from .o_auth_2_jwt_response_token_response_field import OAuth2JwtResponseTokenResponseField from .o_auth_connection_status import OAuthConnectionStatus from .object_json_schema_property_input import ObjectJsonSchemaPropertyInput from .object_json_schema_property_input_properties_value import ObjectJsonSchemaPropertyInputPropertiesValue @@ -1096,6 +1140,7 @@ from .post_workspace_secret_response_model import PostWorkspaceSecretResponseModel from .pre_tool_speech_mode import PreToolSpeechMode from .preview_audio_db_model import PreviewAudioDbModel + from .price import Price from .privacy_config_input import PrivacyConfigInput from .privacy_config_output import PrivacyConfigOutput from .private_key_jwt_response import PrivateKeyJwtResponse @@ -1245,6 +1290,7 @@ from .referenced_tool_common_model_type import ReferencedToolCommonModelType from .regex_parameter_evaluation_strategy import RegexParameterEvaluationStrategy from .region_config_request import RegionConfigRequest + from .register_for_group_session_params import RegisterForGroupSessionParams from .remove_member_from_group_request import RemoveMemberFromGroupRequest from .render import Render from .render_status import RenderStatus @@ -1253,6 +1299,7 @@ from .required_constraint import RequiredConstraint from .required_constraints import RequiredConstraints from .resource_access_info import ResourceAccessInfo + from .resource_access_info_anonymous_access_level_override import ResourceAccessInfoAnonymousAccessLevelOverride from .resource_access_info_role import ResourceAccessInfoRole from .resource_metadata_response_model import ResourceMetadataResponseModel from .resource_metadata_response_model_anonymous_access_level_override import ( @@ -1277,6 +1324,7 @@ from .say_node_literal_message_output import SayNodeLiteralMessageOutput from .say_node_prompt_message_input import SayNodePromptMessageInput from .say_node_prompt_message_output import SayNodePromptMessageOutput + from .schedule_group_session_params import ScheduleGroupSessionParams from .scoped_analysis_result import ScopedAnalysisResult from .scribe_auth_error_payload import ScribeAuthErrorPayload from .scribe_chunk_size_exceeded_error_payload import ScribeChunkSizeExceededErrorPayload @@ -1312,6 +1360,7 @@ from .session_started_payload_config import SessionStartedPayloadConfig from .session_started_payload_config_commit_strategy import SessionStartedPayloadConfigCommitStrategy from .set_booking_slug_params import SetBookingSlugParams + from .severity_id import SeverityId from .sfx_source_context import SfxSourceContext from .share_option_response_model import ShareOptionResponseModel from .share_option_response_model_type import ShareOptionResponseModelType @@ -1322,6 +1371,8 @@ from .single_test_run_request_model import SingleTestRunRequestModel from .single_use_token_response_model import SingleUseTokenResponseModel from .single_use_token_type import SingleUseTokenType + from .sip_log_message import SipLogMessage + from .sip_log_message_direction import SipLogMessageDirection from .sip_media_encryption_enum import SipMediaEncryptionEnum from .sip_trunk_credentials_request_model import SipTrunkCredentialsRequestModel from .sip_trunk_outbound_call_response import SipTrunkOutboundCallResponse @@ -1330,6 +1381,8 @@ from .sip_uri_transfer_destination import SipUriTransferDestination from .skip_turn_tool_config import SkipTurnToolConfig from .skip_turn_tool_response_model import SkipTurnToolResponseModel + from .sms_conversation_info import SmsConversationInfo + from .sms_conversation_info_direction import SmsConversationInfoDirection from .soft_timeout_config import SoftTimeoutConfig from .soft_timeout_config_override import SoftTimeoutConfigOverride from .soft_timeout_config_override_config import SoftTimeoutConfigOverrideConfig @@ -1346,6 +1399,8 @@ from .speaker_separation_response_model_status import SpeakerSeparationResponseModelStatus from .speaker_track import SpeakerTrack from .speaker_updated_response import SpeakerUpdatedResponse + from .speech_engine_config import SpeechEngineConfig + from .speech_engine_config_request_headers_value import SpeechEngineConfigRequestHeadersValue from .speech_history_item_response import SpeechHistoryItemResponse from .speech_history_item_response_model_source import SpeechHistoryItemResponseModelSource from .speech_history_item_response_model_voice_category import SpeechHistoryItemResponseModelVoiceCategory @@ -1358,6 +1413,7 @@ from .srt_export_options import SrtExportOptions from .start_pvc_voice_training_response_model import StartPvcVoiceTrainingResponseModel from .start_speaker_separation_response_model import StartSpeakerSeparationResponseModel + from .status_id import StatusId from .streaming_audio_chunk_with_timestamps_and_voice_segments_response_model import ( StreamingAudioChunkWithTimestampsAndVoiceSegmentsResponseModel, ) @@ -1378,6 +1434,7 @@ from .system_tool_config_input_params import ( SystemToolConfigInputParams, SystemToolConfigInputParams_EndCall, + SystemToolConfigInputParams_KnowledgeBaseRag, SystemToolConfigInputParams_LanguageDetection, SystemToolConfigInputParams_PlayKeypadTouchTone, SystemToolConfigInputParams_SkipTurn, @@ -1389,6 +1446,7 @@ from .system_tool_config_output_params import ( SystemToolConfigOutputParams, SystemToolConfigOutputParams_EndCall, + SystemToolConfigOutputParams_KnowledgeBaseRag, SystemToolConfigOutputParams_LanguageDetection, SystemToolConfigOutputParams_PlayKeypadTouchTone, SystemToolConfigOutputParams_SkipTurn, @@ -1539,6 +1597,7 @@ from .update_chapter_request import UpdateChapterRequest from .update_client_params import UpdateClientParams from .update_customer_facing_config_params import UpdateCustomerFacingConfigParams + from .update_group_session_seats_params import UpdateGroupSessionSeatsParams from .update_holiday_params import UpdateHolidayParams from .update_location_params import UpdateLocationParams from .update_product_params import UpdateProductParams @@ -1551,11 +1610,15 @@ from .update_tool_call_unit_test_request import UpdateToolCallUnitTestRequest from .update_workspace_member_response_model import UpdateWorkspaceMemberResponseModel from .url_avatar import UrlAvatar + from .url_model import UrlModel from .usage_aggregation_interval import UsageAggregationInterval from .usage_characters_response_model import UsageCharactersResponseModel from .user import User + from .user_access_management_activity_id import UserAccessManagementActivityId from .user_feedback import UserFeedback from .user_feedback_score import UserFeedbackScore + from .user_model import UserModel + from .user_type_id import UserTypeId from .users_sort_by import UsersSortBy from .utterance_response_model import UtteranceResponseModel from .vad_config import VadConfig @@ -1614,6 +1677,7 @@ ) from .webhook_tool_config_input import WebhookToolConfigInput from .webhook_tool_config_output import WebhookToolConfigOutput + from .webhook_transcript_format import WebhookTranscriptFormat from .webhook_usage_type import WebhookUsageType from .websocket_tts_client_message_multi import WebsocketTtsClientMessageMulti from .websocket_tts_server_message_multi import WebsocketTtsServerMessageMulti @@ -1792,6 +1856,9 @@ ) from .workspace_api_key_list_response_model import WorkspaceApiKeyListResponseModel from .workspace_api_key_response_model import WorkspaceApiKeyResponseModel + from .workspace_audit_log_entry_response import WorkspaceAuditLogEntryResponse + from .workspace_audit_log_entry_response_activity_id import WorkspaceAuditLogEntryResponseActivityId + from .workspace_audit_logs_page_response import WorkspaceAuditLogsPageResponse from .workspace_batch_calls_response import WorkspaceBatchCallsResponse from .workspace_create_api_key_response_model import WorkspaceCreateApiKeyResponseModel from .workspace_create_webhook_response_model import WorkspaceCreateWebhookResponseModel @@ -1807,6 +1874,8 @@ from .workspace_webhook_response_model import WorkspaceWebhookResponseModel from .workspace_webhook_usage_response_model import WorkspaceWebhookUsageResponseModel _dynamic_imports: typing.Dict[str, str] = { + "AccountChangeActivityId": ".account_change_activity_id", + "ActorModel": ".actor_model", "AddChapterResponseModel": ".add_chapter_response_model", "AddKnowledgeBaseResponseModel": ".add_knowledge_base_response_model", "AddProjectRequest": ".add_project_request", @@ -1880,8 +1949,11 @@ "AnalysisPropertyConstantValue": ".analysis_property_constant_value", "AnalysisPropertyType": ".analysis_property_type", "AnalysisScope": ".analysis_scope", + "ApiIntegrationDocResponse": ".api_integration_doc_response", "ApiIntegrationOAuth2AuthCodeResponse": ".api_integration_o_auth_2_auth_code_response", "ApiIntegrationOAuth2AuthCodeResponseScopeSeparator": ".api_integration_o_auth_2_auth_code_response_scope_separator", + "ApiIntegrationOAuth2CustomAppResponse": ".api_integration_o_auth_2_custom_app_response", + "ApiIntegrationOAuth2CustomAppResponseScopeSeparator": ".api_integration_o_auth_2_custom_app_response_scope_separator", "ApiIntegrationWebhookOverrides": ".api_integration_webhook_overrides", "ApiIntegrationWebhookOverridesRequestHeadersValue": ".api_integration_webhook_overrides_request_headers_value", "ApiIntegrationWebhookOverridesSchemaOverridesValue": ".api_integration_webhook_overrides_schema_overrides_value", @@ -2011,8 +2083,13 @@ "AuthConnectionDependenciesToolsItem_Unknown": ".auth_connection_dependencies_tools_item", "AuthConnectionLocator": ".auth_connection_locator", "AuthSettings": ".auth_settings", + "AuthenticationActivityId": ".authentication_activity_id", "AuthorizationMethod": ".authorization_method", "AutoSyncInfo": ".auto_sync_info", + "BackgroundMusicConfig": ".background_music_config", + "BackgroundMusicConfigWorkflowOverride": ".background_music_config_workflow_override", + "BackgroundMusicPresetId": ".background_music_preset_id", + "BackgroundMusicSourceType": ".background_music_source_type", "BackupLlmDefault": ".backup_llm_default", "BackupLlmDisabled": ".backup_llm_disabled", "BackupLlmOverride": ".backup_llm_override", @@ -2032,6 +2109,9 @@ "BuiltInToolsOutput": ".built_in_tools_output", "BuiltInToolsWorkflowOverrideInput": ".built_in_tools_workflow_override_input", "BuiltInToolsWorkflowOverrideOutput": ".built_in_tools_workflow_override_output", + "CancelCalendarEventParams": ".cancel_calendar_event_params", + "CancelGroupSessionForAllParams": ".cancel_group_session_for_all_params", + "CancelGroupSessionRegistrationParams": ".cancel_group_session_registration_params", "CanvasPlacement": ".canvas_placement", "CaptionStyleCharacterAnimationModel": ".caption_style_character_animation_model", "CaptionStyleCharacterAnimationModelEnterType": ".caption_style_character_animation_model_enter_type", @@ -2109,6 +2189,7 @@ "ContentGuardrailOutputTriggerAction_Retry": ".content_guardrail_output_trigger_action", "ContentThresholdGuardrail": ".content_threshold_guardrail", "ContentThresholdGuardrailThreshold": ".content_threshold_guardrail_threshold", + "ContextualUpdateInfo": ".contextual_update_info", "Contributor": ".contributor", "ConvAiDynamicVariable": ".conv_ai_dynamic_variable", "ConvAiEnvVarLocator": ".conv_ai_env_var_locator", @@ -2127,15 +2208,18 @@ "ConvAiUserSecretDbModel": ".conv_ai_user_secret_db_model", "ConvAiWebhooks": ".conv_ai_webhooks", "ConvAiWorkspaceStoredSecretConfig": ".conv_ai_workspace_stored_secret_config", + "ConversationAsrUsageModel": ".conversation_asr_usage_model", "ConversationChargingCommonModel": ".conversation_charging_common_model", - "ConversationConfig": ".conversation_config", "ConversationConfigClientOverrideConfigInput": ".conversation_config_client_override_config_input", "ConversationConfigClientOverrideConfigOutput": ".conversation_config_client_override_config_output", "ConversationConfigClientOverrideInput": ".conversation_config_client_override_input", "ConversationConfigClientOverrideOutput": ".conversation_config_client_override_output", + "ConversationConfigInput": ".conversation_config_input", + "ConversationConfigOutput": ".conversation_config_output", "ConversationConfigOverride": ".conversation_config_override", "ConversationConfigOverrideConfig": ".conversation_config_override_config", - "ConversationConfigWorkflowOverride": ".conversation_config_workflow_override", + "ConversationConfigWorkflowOverrideInput": ".conversation_config_workflow_override_input", + "ConversationConfigWorkflowOverrideOutput": ".conversation_config_workflow_override_output", "ConversationDeletionSettings": ".conversation_deletion_settings", "ConversationFeedbackType": ".conversation_feedback_type", "ConversationHistoryAnalysisCommonModel": ".conversation_history_analysis_common_model", @@ -2170,6 +2254,7 @@ "ConversationHistoryTranscriptSystemToolResultCommonModelInput": ".conversation_history_transcript_system_tool_result_common_model_input", "ConversationHistoryTranscriptSystemToolResultCommonModelInputResult": ".conversation_history_transcript_system_tool_result_common_model_input_result", "ConversationHistoryTranscriptSystemToolResultCommonModelInputResult_EndCallSuccess": ".conversation_history_transcript_system_tool_result_common_model_input_result", + "ConversationHistoryTranscriptSystemToolResultCommonModelInputResult_KnowledgeBaseRagSuccess": ".conversation_history_transcript_system_tool_result_common_model_input_result", "ConversationHistoryTranscriptSystemToolResultCommonModelInputResult_LanguageDetectionSuccess": ".conversation_history_transcript_system_tool_result_common_model_input_result", "ConversationHistoryTranscriptSystemToolResultCommonModelInputResult_PlayDtmfError": ".conversation_history_transcript_system_tool_result_common_model_input_result", "ConversationHistoryTranscriptSystemToolResultCommonModelInputResult_PlayDtmfSuccess": ".conversation_history_transcript_system_tool_result_common_model_input_result", @@ -2184,6 +2269,7 @@ "ConversationHistoryTranscriptSystemToolResultCommonModelOutput": ".conversation_history_transcript_system_tool_result_common_model_output", "ConversationHistoryTranscriptSystemToolResultCommonModelOutputResult": ".conversation_history_transcript_system_tool_result_common_model_output_result", "ConversationHistoryTranscriptSystemToolResultCommonModelOutputResult_EndCallSuccess": ".conversation_history_transcript_system_tool_result_common_model_output_result", + "ConversationHistoryTranscriptSystemToolResultCommonModelOutputResult_KnowledgeBaseRagSuccess": ".conversation_history_transcript_system_tool_result_common_model_output_result", "ConversationHistoryTranscriptSystemToolResultCommonModelOutputResult_LanguageDetectionSuccess": ".conversation_history_transcript_system_tool_result_common_model_output_result", "ConversationHistoryTranscriptSystemToolResultCommonModelOutputResult_PlayDtmfError": ".conversation_history_transcript_system_tool_result_common_model_output_result", "ConversationHistoryTranscriptSystemToolResultCommonModelOutputResult_PlayDtmfSuccess": ".conversation_history_transcript_system_tool_result_common_model_output_result", @@ -2229,10 +2315,14 @@ "ConversationSource": ".conversation_source", "ConversationSummaryResponseModel": ".conversation_summary_response_model", "ConversationSummaryResponseModelStatus": ".conversation_summary_response_model_status", + "ConversationTagResponseModel": ".conversation_tag_response_model", "ConversationTokenDbModel": ".conversation_token_db_model", "ConversationTokenPurpose": ".conversation_token_purpose", + "ConversationTtsUsageModel": ".conversation_tts_usage_model", "ConversationTurnMetrics": ".conversation_turn_metrics", "ConversationUserResponseModel": ".conversation_user_response_model", + "ConversationVoiceRewardModel": ".conversation_voice_reward_model", + "ConversationVoiceUsageModel": ".conversation_voice_usage_model", "ConversationalConfig": ".conversational_config", "ConversationalConfigApiModelWorkflowOverrideInput": ".conversational_config_api_model_workflow_override_input", "ConversationalConfigApiModelWorkflowOverrideOutput": ".conversational_config_api_model_workflow_override_output", @@ -2257,6 +2347,7 @@ "CreateOAuth2ClientCredsRequest": ".create_o_auth_2_client_creds_request", "CreateOAuth2JwtRequest": ".create_o_auth_2_jwt_request", "CreateOAuth2JwtRequestAlgorithm": ".create_o_auth_2_jwt_request_algorithm", + "CreateOAuth2JwtRequestTokenResponseField": ".create_o_auth_2_jwt_request_token_response_field", "CreatePhoneNumberResponseModel": ".create_phone_number_response_model", "CreatePreviouslyGeneratedVoiceRequest": ".create_previously_generated_voice_request", "CreatePrivateKeyJwtRequest": ".create_private_key_jwt_request", @@ -2303,6 +2394,7 @@ "DeleteClientInteractionParams": ".delete_client_interaction_params", "DeleteClientParams": ".delete_client_params", "DeleteDubbingResponseModel": ".delete_dubbing_response_model", + "DeleteGroupSessionParams": ".delete_group_session_params", "DeleteHistoryItemResponse": ".delete_history_item_response", "DeleteHolidayParams": ".delete_holiday_params", "DeleteLocationParams": ".delete_location_params", @@ -2331,6 +2423,7 @@ "DependentUnknownToolIdentifier": ".dependent_unknown_tool_identifier", "DetailedMusicResponse": ".detailed_music_response", "DetectedEntity": ".detected_entity", + "DeviceModel": ".device_model", "DialogueInput": ".dialogue_input", "DialogueInputResponseModel": ".dialogue_input_response_model", "DialogueTextAlignment": ".dialogue_text_alignment", @@ -2349,7 +2442,6 @@ "DubbingMediaReference": ".dubbing_media_reference", "DubbingMetadataPageResponseModel": ".dubbing_metadata_page_response_model", "DubbingMetadataResponse": ".dubbing_metadata_response", - "DubbingModel": ".dubbing_model", "DubbingRenderResponseModel": ".dubbing_render_response_model", "DubbingResource": ".dubbing_resource", "DubbingTranscript": ".dubbing_transcript", @@ -2380,6 +2472,7 @@ "EndCallToolConfig": ".end_call_tool_config", "EndCallToolResultModel": ".end_call_tool_result_model", "EndCallTriggerAction": ".end_call_trigger_action", + "EntityManagementActivityId": ".entity_management_activity_id", "EnvironmentAuthConnectionLocator": ".environment_auth_connection_locator", "EnvironmentVariableAuthConnectionValue": ".environment_variable_auth_connection_value", "EnvironmentVariableAuthConnectionValueRequest": ".environment_variable_auth_connection_value_request", @@ -2451,6 +2544,7 @@ "GetConvAiSettingsResponseModel": ".get_conv_ai_settings_response_model", "GetConversationResponseModel": ".get_conversation_response_model", "GetConversationResponseModelStatus": ".get_conversation_response_model_status", + "GetConversationTagsPageResponseModel": ".get_conversation_tags_page_response_model", "GetConversationUsersPageResponseModel": ".get_conversation_users_page_response_model", "GetConversationsPageResponseModel": ".get_conversations_page_response_model", "GetKnowledgeBaseDependentAgentsResponseModel": ".get_knowledge_base_dependent_agents_response_model", @@ -2515,6 +2609,7 @@ "GetSecretDependenciesResponseModelDependenciesZeroItem_Available": ".get_secret_dependencies_response_model_dependencies_zero_item", "GetSecretDependenciesResponseModelDependenciesZeroItem_Unknown": ".get_secret_dependencies_response_model_dependencies_zero_item", "GetSimulationTestResponseModel": ".get_simulation_test_response_model", + "GetSipLogMessagesResponse": ".get_sip_log_messages_response", "GetSpeechHistoryResponse": ".get_speech_history_response", "GetTestInvocationsPageResponseModel": ".get_test_invocations_page_response_model", "GetTestSuiteInvocationResponseModel": ".get_test_suite_invocation_response_model", @@ -2530,6 +2625,7 @@ "GetVoicesV2Response": ".get_voices_v_2_response", "GetWhatsAppAccountResponse": ".get_whats_app_account_response", "GetWorkspaceSecretsResponseModel": ".get_workspace_secrets_response_model", + "GroupManagementActivityId": ".group_management_activity_id", "GuardrailExecutionMode": ".guardrail_execution_mode", "GuardrailsV1Input": ".guardrails_v_1_input", "GuardrailsV1Output": ".guardrails_v_1_output", @@ -2537,9 +2633,14 @@ "HistoryAlignmentsResponseModel": ".history_alignments_response_model", "HistoryItemResponse": ".history_item_response", "HtmlExportOptions": ".html_export_options", + "HttpRequestModel": ".http_request_model", "HttpValidationError": ".http_validation_error", "Icon": ".icon", + "ImageAnalysis": ".image_analysis", + "ImageAnalysisResult": ".image_analysis_result", + "ImageAnalysisStatus": ".image_analysis_status", "ImageAvatar": ".image_avatar", + "ImageSubject": ".image_subject", "InboundSipTrunkConfigRequestModel": ".inbound_sip_trunk_config_request_model", "InitialiseContext": ".initialise_context", "InitializeConnection": ".initialize_connection", @@ -2564,6 +2665,9 @@ "KnowledgeBaseFolderPathSegmentResponseModel": ".knowledge_base_folder_path_segment_response_model", "KnowledgeBaseFolderPathSegmentSummaryResponseModel": ".knowledge_base_folder_path_segment_summary_response_model", "KnowledgeBaseLocator": ".knowledge_base_locator", + "KnowledgeBaseRagToolConfig": ".knowledge_base_rag_tool_config", + "KnowledgeBaseRagToolResultModel": ".knowledge_base_rag_tool_result_model", + "KnowledgeBaseRagToolStatus": ".knowledge_base_rag_tool_status", "KnowledgeBaseSortBy": ".knowledge_base_sort_by", "KnowledgeBaseSourceFileUrlResponseModel": ".knowledge_base_source_file_url_response_model", "KnowledgeBaseSummaryBatchSuccessfulResponseModel": ".knowledge_base_summary_batch_successful_response_model", @@ -2579,6 +2683,7 @@ "LanguagePresetOutput": ".language_preset_output", "LanguagePresetTranslation": ".language_preset_translation", "LanguageResponse": ".language_response", + "LeaveMessageParams": ".leave_message_params", "LibraryVoiceResponse": ".library_voice_response", "LibraryVoiceResponseModelCategory": ".library_voice_response_model_category", "ListAgentRulesParams": ".list_agent_rules_params", @@ -2586,6 +2691,7 @@ "ListAuthConnectionsResponse": ".list_auth_connections_response", "ListAuthConnectionsResponseAuthConnectionsItem": ".list_auth_connections_response_auth_connections_item", "ListAuthConnectionsResponseAuthConnectionsItem_ApiIntegrationOauth2AuthCode": ".list_auth_connections_response_auth_connections_item", + "ListAuthConnectionsResponseAuthConnectionsItem_ApiIntegrationOauth2CustomApp": ".list_auth_connections_response_auth_connections_item", "ListAuthConnectionsResponseAuthConnectionsItem_BasicAuth": ".list_auth_connections_response_auth_connections_item", "ListAuthConnectionsResponseAuthConnectionsItem_BearerAuth": ".list_auth_connections_response_auth_connections_item", "ListAuthConnectionsResponseAuthConnectionsItem_CustomHeaderAuth": ".list_auth_connections_response_auth_connections_item", @@ -2597,11 +2703,13 @@ "ListCalendarEventsParams": ".list_calendar_events_params", "ListClientInteractionsParams": ".list_client_interactions_params", "ListClientsParams": ".list_clients_params", + "ListGroupSessionsParams": ".list_group_sessions_params", "ListHolidaysParams": ".list_holidays_params", "ListLocationsParams": ".list_locations_params", "ListMcpToolsResponseModel": ".list_mcp_tools_response_model", "ListProductsParams": ".list_products_params", "ListResponseAgentBranchSummary": ".list_response_agent_branch_summary", + "ListResponseApiIntegrationDocResponse": ".list_response_api_integration_doc_response", "ListResponseMeta": ".list_response_meta", "ListServicesParams": ".list_services_params", "ListStaffParams": ".list_staff_params", @@ -2690,6 +2798,7 @@ "OAuth2ClientCredsResponse": ".o_auth_2_client_creds_response", "OAuth2JwtResponse": ".o_auth_2_jwt_response", "OAuth2JwtResponseAlgorithm": ".o_auth_2_jwt_response_algorithm", + "OAuth2JwtResponseTokenResponseField": ".o_auth_2_jwt_response_token_response_field", "OAuthConnectionStatus": ".o_auth_connection_status", "ObjectJsonSchemaPropertyInput": ".object_json_schema_property_input", "ObjectJsonSchemaPropertyInputPropertiesValue": ".object_json_schema_property_input_properties_value", @@ -2745,6 +2854,7 @@ "PostWorkspaceSecretResponseModel": ".post_workspace_secret_response_model", "PreToolSpeechMode": ".pre_tool_speech_mode", "PreviewAudioDbModel": ".preview_audio_db_model", + "Price": ".price", "PrivacyConfigInput": ".privacy_config_input", "PrivacyConfigOutput": ".privacy_config_output", "PrivateKeyJwtResponse": ".private_key_jwt_response", @@ -2870,6 +2980,7 @@ "ReferencedToolCommonModelType": ".referenced_tool_common_model_type", "RegexParameterEvaluationStrategy": ".regex_parameter_evaluation_strategy", "RegionConfigRequest": ".region_config_request", + "RegisterForGroupSessionParams": ".register_for_group_session_params", "RemoveMemberFromGroupRequest": ".remove_member_from_group_request", "Render": ".render", "RenderStatus": ".render_status", @@ -2878,6 +2989,7 @@ "RequiredConstraint": ".required_constraint", "RequiredConstraints": ".required_constraints", "ResourceAccessInfo": ".resource_access_info", + "ResourceAccessInfoAnonymousAccessLevelOverride": ".resource_access_info_anonymous_access_level_override", "ResourceAccessInfoRole": ".resource_access_info_role", "ResourceMetadataResponseModel": ".resource_metadata_response_model", "ResourceMetadataResponseModelAnonymousAccessLevelOverride": ".resource_metadata_response_model_anonymous_access_level_override", @@ -2900,6 +3012,7 @@ "SayNodeLiteralMessageOutput": ".say_node_literal_message_output", "SayNodePromptMessageInput": ".say_node_prompt_message_input", "SayNodePromptMessageOutput": ".say_node_prompt_message_output", + "ScheduleGroupSessionParams": ".schedule_group_session_params", "ScopedAnalysisResult": ".scoped_analysis_result", "ScribeAuthErrorPayload": ".scribe_auth_error_payload", "ScribeChunkSizeExceededErrorPayload": ".scribe_chunk_size_exceeded_error_payload", @@ -2935,6 +3048,7 @@ "SessionStartedPayloadConfig": ".session_started_payload_config", "SessionStartedPayloadConfigCommitStrategy": ".session_started_payload_config_commit_strategy", "SetBookingSlugParams": ".set_booking_slug_params", + "SeverityId": ".severity_id", "SfxSourceContext": ".sfx_source_context", "ShareOptionResponseModel": ".share_option_response_model", "ShareOptionResponseModelType": ".share_option_response_model_type", @@ -2945,6 +3059,8 @@ "SingleTestRunRequestModel": ".single_test_run_request_model", "SingleUseTokenResponseModel": ".single_use_token_response_model", "SingleUseTokenType": ".single_use_token_type", + "SipLogMessage": ".sip_log_message", + "SipLogMessageDirection": ".sip_log_message_direction", "SipMediaEncryptionEnum": ".sip_media_encryption_enum", "SipTrunkCredentialsRequestModel": ".sip_trunk_credentials_request_model", "SipTrunkOutboundCallResponse": ".sip_trunk_outbound_call_response", @@ -2953,6 +3069,8 @@ "SipUriTransferDestination": ".sip_uri_transfer_destination", "SkipTurnToolConfig": ".skip_turn_tool_config", "SkipTurnToolResponseModel": ".skip_turn_tool_response_model", + "SmsConversationInfo": ".sms_conversation_info", + "SmsConversationInfoDirection": ".sms_conversation_info_direction", "SoftTimeoutConfig": ".soft_timeout_config", "SoftTimeoutConfigOverride": ".soft_timeout_config_override", "SoftTimeoutConfigOverrideConfig": ".soft_timeout_config_override_config", @@ -2969,6 +3087,8 @@ "SpeakerSeparationResponseModelStatus": ".speaker_separation_response_model_status", "SpeakerTrack": ".speaker_track", "SpeakerUpdatedResponse": ".speaker_updated_response", + "SpeechEngineConfig": ".speech_engine_config", + "SpeechEngineConfigRequestHeadersValue": ".speech_engine_config_request_headers_value", "SpeechHistoryItemResponse": ".speech_history_item_response", "SpeechHistoryItemResponseModelSource": ".speech_history_item_response_model_source", "SpeechHistoryItemResponseModelVoiceCategory": ".speech_history_item_response_model_voice_category", @@ -2981,6 +3101,7 @@ "SrtExportOptions": ".srt_export_options", "StartPvcVoiceTrainingResponseModel": ".start_pvc_voice_training_response_model", "StartSpeakerSeparationResponseModel": ".start_speaker_separation_response_model", + "StatusId": ".status_id", "StreamingAudioChunkWithTimestampsAndVoiceSegmentsResponseModel": ".streaming_audio_chunk_with_timestamps_and_voice_segments_response_model", "StreamingAudioChunkWithTimestampsResponse": ".streaming_audio_chunk_with_timestamps_response", "StudioAgentSettingsModel": ".studio_agent_settings_model", @@ -2998,6 +3119,7 @@ "SystemToolConfigInput": ".system_tool_config_input", "SystemToolConfigInputParams": ".system_tool_config_input_params", "SystemToolConfigInputParams_EndCall": ".system_tool_config_input_params", + "SystemToolConfigInputParams_KnowledgeBaseRag": ".system_tool_config_input_params", "SystemToolConfigInputParams_LanguageDetection": ".system_tool_config_input_params", "SystemToolConfigInputParams_PlayKeypadTouchTone": ".system_tool_config_input_params", "SystemToolConfigInputParams_SkipTurn": ".system_tool_config_input_params", @@ -3007,6 +3129,7 @@ "SystemToolConfigOutput": ".system_tool_config_output", "SystemToolConfigOutputParams": ".system_tool_config_output_params", "SystemToolConfigOutputParams_EndCall": ".system_tool_config_output_params", + "SystemToolConfigOutputParams_KnowledgeBaseRag": ".system_tool_config_output_params", "SystemToolConfigOutputParams_LanguageDetection": ".system_tool_config_output_params", "SystemToolConfigOutputParams_PlayKeypadTouchTone": ".system_tool_config_output_params", "SystemToolConfigOutputParams_SkipTurn": ".system_tool_config_output_params", @@ -3142,6 +3265,7 @@ "UpdateChapterRequest": ".update_chapter_request", "UpdateClientParams": ".update_client_params", "UpdateCustomerFacingConfigParams": ".update_customer_facing_config_params", + "UpdateGroupSessionSeatsParams": ".update_group_session_seats_params", "UpdateHolidayParams": ".update_holiday_params", "UpdateLocationParams": ".update_location_params", "UpdateProductParams": ".update_product_params", @@ -3154,11 +3278,15 @@ "UpdateToolCallUnitTestRequest": ".update_tool_call_unit_test_request", "UpdateWorkspaceMemberResponseModel": ".update_workspace_member_response_model", "UrlAvatar": ".url_avatar", + "UrlModel": ".url_model", "UsageAggregationInterval": ".usage_aggregation_interval", "UsageCharactersResponseModel": ".usage_characters_response_model", "User": ".user", + "UserAccessManagementActivityId": ".user_access_management_activity_id", "UserFeedback": ".user_feedback", "UserFeedbackScore": ".user_feedback_score", + "UserModel": ".user_model", + "UserTypeId": ".user_type_id", "UsersSortBy": ".users_sort_by", "UtteranceResponseModel": ".utterance_response_model", "VadConfig": ".vad_config", @@ -3213,6 +3341,7 @@ "WebhookToolApiSchemaConfigOutputRequestHeadersValue": ".webhook_tool_api_schema_config_output_request_headers_value", "WebhookToolConfigInput": ".webhook_tool_config_input", "WebhookToolConfigOutput": ".webhook_tool_config_output", + "WebhookTranscriptFormat": ".webhook_transcript_format", "WebhookUsageType": ".webhook_usage_type", "WebsocketTtsClientMessageMulti": ".websocket_tts_client_message_multi", "WebsocketTtsServerMessageMulti": ".websocket_tts_server_message_multi", @@ -3351,6 +3480,9 @@ "WorkspaceAnalyticsQueryResponseModelRowsItemItem": ".workspace_analytics_query_response_model_rows_item_item", "WorkspaceApiKeyListResponseModel": ".workspace_api_key_list_response_model", "WorkspaceApiKeyResponseModel": ".workspace_api_key_response_model", + "WorkspaceAuditLogEntryResponse": ".workspace_audit_log_entry_response", + "WorkspaceAuditLogEntryResponseActivityId": ".workspace_audit_log_entry_response_activity_id", + "WorkspaceAuditLogsPageResponse": ".workspace_audit_logs_page_response", "WorkspaceBatchCallsResponse": ".workspace_batch_calls_response", "WorkspaceCreateApiKeyResponseModel": ".workspace_create_api_key_response_model", "WorkspaceCreateWebhookResponseModel": ".workspace_create_webhook_response_model", @@ -3390,6 +3522,8 @@ def __dir__(): __all__ = [ + "AccountChangeActivityId", + "ActorModel", "AddChapterResponseModel", "AddKnowledgeBaseResponseModel", "AddProjectRequest", @@ -3463,8 +3597,11 @@ def __dir__(): "AnalysisPropertyConstantValue", "AnalysisPropertyType", "AnalysisScope", + "ApiIntegrationDocResponse", "ApiIntegrationOAuth2AuthCodeResponse", "ApiIntegrationOAuth2AuthCodeResponseScopeSeparator", + "ApiIntegrationOAuth2CustomAppResponse", + "ApiIntegrationOAuth2CustomAppResponseScopeSeparator", "ApiIntegrationWebhookOverrides", "ApiIntegrationWebhookOverridesRequestHeadersValue", "ApiIntegrationWebhookOverridesSchemaOverridesValue", @@ -3594,8 +3731,13 @@ def __dir__(): "AuthConnectionDependenciesToolsItem_Unknown", "AuthConnectionLocator", "AuthSettings", + "AuthenticationActivityId", "AuthorizationMethod", "AutoSyncInfo", + "BackgroundMusicConfig", + "BackgroundMusicConfigWorkflowOverride", + "BackgroundMusicPresetId", + "BackgroundMusicSourceType", "BackupLlmDefault", "BackupLlmDisabled", "BackupLlmOverride", @@ -3615,6 +3757,9 @@ def __dir__(): "BuiltInToolsOutput", "BuiltInToolsWorkflowOverrideInput", "BuiltInToolsWorkflowOverrideOutput", + "CancelCalendarEventParams", + "CancelGroupSessionForAllParams", + "CancelGroupSessionRegistrationParams", "CanvasPlacement", "CaptionStyleCharacterAnimationModel", "CaptionStyleCharacterAnimationModelEnterType", @@ -3692,6 +3837,7 @@ def __dir__(): "ContentGuardrailOutputTriggerAction_Retry", "ContentThresholdGuardrail", "ContentThresholdGuardrailThreshold", + "ContextualUpdateInfo", "Contributor", "ConvAiDynamicVariable", "ConvAiEnvVarLocator", @@ -3710,15 +3856,18 @@ def __dir__(): "ConvAiUserSecretDbModel", "ConvAiWebhooks", "ConvAiWorkspaceStoredSecretConfig", + "ConversationAsrUsageModel", "ConversationChargingCommonModel", - "ConversationConfig", "ConversationConfigClientOverrideConfigInput", "ConversationConfigClientOverrideConfigOutput", "ConversationConfigClientOverrideInput", "ConversationConfigClientOverrideOutput", + "ConversationConfigInput", + "ConversationConfigOutput", "ConversationConfigOverride", "ConversationConfigOverrideConfig", - "ConversationConfigWorkflowOverride", + "ConversationConfigWorkflowOverrideInput", + "ConversationConfigWorkflowOverrideOutput", "ConversationDeletionSettings", "ConversationFeedbackType", "ConversationHistoryAnalysisCommonModel", @@ -3753,6 +3902,7 @@ def __dir__(): "ConversationHistoryTranscriptSystemToolResultCommonModelInput", "ConversationHistoryTranscriptSystemToolResultCommonModelInputResult", "ConversationHistoryTranscriptSystemToolResultCommonModelInputResult_EndCallSuccess", + "ConversationHistoryTranscriptSystemToolResultCommonModelInputResult_KnowledgeBaseRagSuccess", "ConversationHistoryTranscriptSystemToolResultCommonModelInputResult_LanguageDetectionSuccess", "ConversationHistoryTranscriptSystemToolResultCommonModelInputResult_PlayDtmfError", "ConversationHistoryTranscriptSystemToolResultCommonModelInputResult_PlayDtmfSuccess", @@ -3767,6 +3917,7 @@ def __dir__(): "ConversationHistoryTranscriptSystemToolResultCommonModelOutput", "ConversationHistoryTranscriptSystemToolResultCommonModelOutputResult", "ConversationHistoryTranscriptSystemToolResultCommonModelOutputResult_EndCallSuccess", + "ConversationHistoryTranscriptSystemToolResultCommonModelOutputResult_KnowledgeBaseRagSuccess", "ConversationHistoryTranscriptSystemToolResultCommonModelOutputResult_LanguageDetectionSuccess", "ConversationHistoryTranscriptSystemToolResultCommonModelOutputResult_PlayDtmfError", "ConversationHistoryTranscriptSystemToolResultCommonModelOutputResult_PlayDtmfSuccess", @@ -3812,10 +3963,14 @@ def __dir__(): "ConversationSource", "ConversationSummaryResponseModel", "ConversationSummaryResponseModelStatus", + "ConversationTagResponseModel", "ConversationTokenDbModel", "ConversationTokenPurpose", + "ConversationTtsUsageModel", "ConversationTurnMetrics", "ConversationUserResponseModel", + "ConversationVoiceRewardModel", + "ConversationVoiceUsageModel", "ConversationalConfig", "ConversationalConfigApiModelWorkflowOverrideInput", "ConversationalConfigApiModelWorkflowOverrideOutput", @@ -3840,6 +3995,7 @@ def __dir__(): "CreateOAuth2ClientCredsRequest", "CreateOAuth2JwtRequest", "CreateOAuth2JwtRequestAlgorithm", + "CreateOAuth2JwtRequestTokenResponseField", "CreatePhoneNumberResponseModel", "CreatePreviouslyGeneratedVoiceRequest", "CreatePrivateKeyJwtRequest", @@ -3886,6 +4042,7 @@ def __dir__(): "DeleteClientInteractionParams", "DeleteClientParams", "DeleteDubbingResponseModel", + "DeleteGroupSessionParams", "DeleteHistoryItemResponse", "DeleteHolidayParams", "DeleteLocationParams", @@ -3914,6 +4071,7 @@ def __dir__(): "DependentUnknownToolIdentifier", "DetailedMusicResponse", "DetectedEntity", + "DeviceModel", "DialogueInput", "DialogueInputResponseModel", "DialogueTextAlignment", @@ -3932,7 +4090,6 @@ def __dir__(): "DubbingMediaReference", "DubbingMetadataPageResponseModel", "DubbingMetadataResponse", - "DubbingModel", "DubbingRenderResponseModel", "DubbingResource", "DubbingTranscript", @@ -3963,6 +4120,7 @@ def __dir__(): "EndCallToolConfig", "EndCallToolResultModel", "EndCallTriggerAction", + "EntityManagementActivityId", "EnvironmentAuthConnectionLocator", "EnvironmentVariableAuthConnectionValue", "EnvironmentVariableAuthConnectionValueRequest", @@ -4034,6 +4192,7 @@ def __dir__(): "GetConvAiSettingsResponseModel", "GetConversationResponseModel", "GetConversationResponseModelStatus", + "GetConversationTagsPageResponseModel", "GetConversationUsersPageResponseModel", "GetConversationsPageResponseModel", "GetKnowledgeBaseDependentAgentsResponseModel", @@ -4098,6 +4257,7 @@ def __dir__(): "GetSecretDependenciesResponseModelDependenciesZeroItem_Available", "GetSecretDependenciesResponseModelDependenciesZeroItem_Unknown", "GetSimulationTestResponseModel", + "GetSipLogMessagesResponse", "GetSpeechHistoryResponse", "GetTestInvocationsPageResponseModel", "GetTestSuiteInvocationResponseModel", @@ -4113,6 +4273,7 @@ def __dir__(): "GetVoicesV2Response", "GetWhatsAppAccountResponse", "GetWorkspaceSecretsResponseModel", + "GroupManagementActivityId", "GuardrailExecutionMode", "GuardrailsV1Input", "GuardrailsV1Output", @@ -4120,9 +4281,14 @@ def __dir__(): "HistoryAlignmentsResponseModel", "HistoryItemResponse", "HtmlExportOptions", + "HttpRequestModel", "HttpValidationError", "Icon", + "ImageAnalysis", + "ImageAnalysisResult", + "ImageAnalysisStatus", "ImageAvatar", + "ImageSubject", "InboundSipTrunkConfigRequestModel", "InitialiseContext", "InitializeConnection", @@ -4147,6 +4313,9 @@ def __dir__(): "KnowledgeBaseFolderPathSegmentResponseModel", "KnowledgeBaseFolderPathSegmentSummaryResponseModel", "KnowledgeBaseLocator", + "KnowledgeBaseRagToolConfig", + "KnowledgeBaseRagToolResultModel", + "KnowledgeBaseRagToolStatus", "KnowledgeBaseSortBy", "KnowledgeBaseSourceFileUrlResponseModel", "KnowledgeBaseSummaryBatchSuccessfulResponseModel", @@ -4162,6 +4331,7 @@ def __dir__(): "LanguagePresetOutput", "LanguagePresetTranslation", "LanguageResponse", + "LeaveMessageParams", "LibraryVoiceResponse", "LibraryVoiceResponseModelCategory", "ListAgentRulesParams", @@ -4169,6 +4339,7 @@ def __dir__(): "ListAuthConnectionsResponse", "ListAuthConnectionsResponseAuthConnectionsItem", "ListAuthConnectionsResponseAuthConnectionsItem_ApiIntegrationOauth2AuthCode", + "ListAuthConnectionsResponseAuthConnectionsItem_ApiIntegrationOauth2CustomApp", "ListAuthConnectionsResponseAuthConnectionsItem_BasicAuth", "ListAuthConnectionsResponseAuthConnectionsItem_BearerAuth", "ListAuthConnectionsResponseAuthConnectionsItem_CustomHeaderAuth", @@ -4180,11 +4351,13 @@ def __dir__(): "ListCalendarEventsParams", "ListClientInteractionsParams", "ListClientsParams", + "ListGroupSessionsParams", "ListHolidaysParams", "ListLocationsParams", "ListMcpToolsResponseModel", "ListProductsParams", "ListResponseAgentBranchSummary", + "ListResponseApiIntegrationDocResponse", "ListResponseMeta", "ListServicesParams", "ListStaffParams", @@ -4273,6 +4446,7 @@ def __dir__(): "OAuth2ClientCredsResponse", "OAuth2JwtResponse", "OAuth2JwtResponseAlgorithm", + "OAuth2JwtResponseTokenResponseField", "OAuthConnectionStatus", "ObjectJsonSchemaPropertyInput", "ObjectJsonSchemaPropertyInputPropertiesValue", @@ -4328,6 +4502,7 @@ def __dir__(): "PostWorkspaceSecretResponseModel", "PreToolSpeechMode", "PreviewAudioDbModel", + "Price", "PrivacyConfigInput", "PrivacyConfigOutput", "PrivateKeyJwtResponse", @@ -4453,6 +4628,7 @@ def __dir__(): "ReferencedToolCommonModelType", "RegexParameterEvaluationStrategy", "RegionConfigRequest", + "RegisterForGroupSessionParams", "RemoveMemberFromGroupRequest", "Render", "RenderStatus", @@ -4461,6 +4637,7 @@ def __dir__(): "RequiredConstraint", "RequiredConstraints", "ResourceAccessInfo", + "ResourceAccessInfoAnonymousAccessLevelOverride", "ResourceAccessInfoRole", "ResourceMetadataResponseModel", "ResourceMetadataResponseModelAnonymousAccessLevelOverride", @@ -4483,6 +4660,7 @@ def __dir__(): "SayNodeLiteralMessageOutput", "SayNodePromptMessageInput", "SayNodePromptMessageOutput", + "ScheduleGroupSessionParams", "ScopedAnalysisResult", "ScribeAuthErrorPayload", "ScribeChunkSizeExceededErrorPayload", @@ -4518,6 +4696,7 @@ def __dir__(): "SessionStartedPayloadConfig", "SessionStartedPayloadConfigCommitStrategy", "SetBookingSlugParams", + "SeverityId", "SfxSourceContext", "ShareOptionResponseModel", "ShareOptionResponseModelType", @@ -4528,6 +4707,8 @@ def __dir__(): "SingleTestRunRequestModel", "SingleUseTokenResponseModel", "SingleUseTokenType", + "SipLogMessage", + "SipLogMessageDirection", "SipMediaEncryptionEnum", "SipTrunkCredentialsRequestModel", "SipTrunkOutboundCallResponse", @@ -4536,6 +4717,8 @@ def __dir__(): "SipUriTransferDestination", "SkipTurnToolConfig", "SkipTurnToolResponseModel", + "SmsConversationInfo", + "SmsConversationInfoDirection", "SoftTimeoutConfig", "SoftTimeoutConfigOverride", "SoftTimeoutConfigOverrideConfig", @@ -4552,6 +4735,8 @@ def __dir__(): "SpeakerSeparationResponseModelStatus", "SpeakerTrack", "SpeakerUpdatedResponse", + "SpeechEngineConfig", + "SpeechEngineConfigRequestHeadersValue", "SpeechHistoryItemResponse", "SpeechHistoryItemResponseModelSource", "SpeechHistoryItemResponseModelVoiceCategory", @@ -4564,6 +4749,7 @@ def __dir__(): "SrtExportOptions", "StartPvcVoiceTrainingResponseModel", "StartSpeakerSeparationResponseModel", + "StatusId", "StreamingAudioChunkWithTimestampsAndVoiceSegmentsResponseModel", "StreamingAudioChunkWithTimestampsResponse", "StudioAgentSettingsModel", @@ -4581,6 +4767,7 @@ def __dir__(): "SystemToolConfigInput", "SystemToolConfigInputParams", "SystemToolConfigInputParams_EndCall", + "SystemToolConfigInputParams_KnowledgeBaseRag", "SystemToolConfigInputParams_LanguageDetection", "SystemToolConfigInputParams_PlayKeypadTouchTone", "SystemToolConfigInputParams_SkipTurn", @@ -4590,6 +4777,7 @@ def __dir__(): "SystemToolConfigOutput", "SystemToolConfigOutputParams", "SystemToolConfigOutputParams_EndCall", + "SystemToolConfigOutputParams_KnowledgeBaseRag", "SystemToolConfigOutputParams_LanguageDetection", "SystemToolConfigOutputParams_PlayKeypadTouchTone", "SystemToolConfigOutputParams_SkipTurn", @@ -4725,6 +4913,7 @@ def __dir__(): "UpdateChapterRequest", "UpdateClientParams", "UpdateCustomerFacingConfigParams", + "UpdateGroupSessionSeatsParams", "UpdateHolidayParams", "UpdateLocationParams", "UpdateProductParams", @@ -4737,11 +4926,15 @@ def __dir__(): "UpdateToolCallUnitTestRequest", "UpdateWorkspaceMemberResponseModel", "UrlAvatar", + "UrlModel", "UsageAggregationInterval", "UsageCharactersResponseModel", "User", + "UserAccessManagementActivityId", "UserFeedback", "UserFeedbackScore", + "UserModel", + "UserTypeId", "UsersSortBy", "UtteranceResponseModel", "VadConfig", @@ -4796,6 +4989,7 @@ def __dir__(): "WebhookToolApiSchemaConfigOutputRequestHeadersValue", "WebhookToolConfigInput", "WebhookToolConfigOutput", + "WebhookTranscriptFormat", "WebhookUsageType", "WebsocketTtsClientMessageMulti", "WebsocketTtsServerMessageMulti", @@ -4934,6 +5128,9 @@ def __dir__(): "WorkspaceAnalyticsQueryResponseModelRowsItemItem", "WorkspaceApiKeyListResponseModel", "WorkspaceApiKeyResponseModel", + "WorkspaceAuditLogEntryResponse", + "WorkspaceAuditLogEntryResponseActivityId", + "WorkspaceAuditLogsPageResponse", "WorkspaceBatchCallsResponse", "WorkspaceCreateApiKeyResponseModel", "WorkspaceCreateWebhookResponseModel", diff --git a/src/elevenlabs/types/account_change_activity_id.py b/src/elevenlabs/types/account_change_activity_id.py new file mode 100644 index 00000000..5dedd649 --- /dev/null +++ b/src/elevenlabs/types/account_change_activity_id.py @@ -0,0 +1,3 @@ +# This file was auto-generated by Fern from our API Definition. + +AccountChangeActivityId = int diff --git a/src/elevenlabs/types/actor_model.py b/src/elevenlabs/types/actor_model.py new file mode 100644 index 00000000..92f60445 --- /dev/null +++ b/src/elevenlabs/types/actor_model.py @@ -0,0 +1,45 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +from ..core.unchecked_base_model import UncheckedBaseModel +from .user_model import UserModel + + +class ActorModel(UncheckedBaseModel): + """ + OCSF Actor object - describes the entity that performed the action. + + Spec: https://schema.ocsf.io/1.6.0/objects/actor + """ + + user: UserModel = pydantic.Field() + """ + User who performed the action + """ + + app_name: typing.Optional[str] = pydantic.Field(default=None) + """ + Client application or service name + """ + + app_uid: typing.Optional[str] = pydantic.Field(default=None) + """ + Client application unique identifier + """ + + session: typing.Optional[typing.Dict[str, typing.Any]] = pydantic.Field(default=None) + """ + Session information + """ + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/elevenlabs/types/api_integration_doc_response.py b/src/elevenlabs/types/api_integration_doc_response.py new file mode 100644 index 00000000..2e1021ea --- /dev/null +++ b/src/elevenlabs/types/api_integration_doc_response.py @@ -0,0 +1,33 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +from ..core.unchecked_base_model import UncheckedBaseModel + + +class ApiIntegrationDocResponse(UncheckedBaseModel): + id: str = pydantic.Field() + """ + Integration identifier + """ + + name: str = pydantic.Field() + """ + Display name of the integration + """ + + doc_mdx: str = pydantic.Field() + """ + Full MDX documentation content for the integration + """ + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/elevenlabs/types/api_integration_o_auth_2_custom_app_response.py b/src/elevenlabs/types/api_integration_o_auth_2_custom_app_response.py new file mode 100644 index 00000000..02e81182 --- /dev/null +++ b/src/elevenlabs/types/api_integration_o_auth_2_custom_app_response.py @@ -0,0 +1,66 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +from ..core.unchecked_base_model import UncheckedBaseModel +from .api_integration_o_auth_2_custom_app_response_scope_separator import ( + ApiIntegrationOAuth2CustomAppResponseScopeSeparator, +) +from .auth_connection_dependencies import AuthConnectionDependencies +from .o_auth_connection_status import OAuthConnectionStatus + + +class ApiIntegrationOAuth2CustomAppResponse(UncheckedBaseModel): + """ + Response model for user-owned OAuth2 Custom App auth connections + """ + + name: str + provider: str + token_url: str + scopes: typing.Optional[typing.List[str]] = None + scope_separator: typing.Optional[ApiIntegrationOAuth2CustomAppResponseScopeSeparator] = pydantic.Field(default=None) + """ + Separator for scopes + """ + + expires_at: str = pydantic.Field() + """ + ISO 8601 timestamp of when the access token expires + """ + + integration_id: str + credential_id: str + status: typing.Optional[OAuthConnectionStatus] = pydantic.Field(default=None) + """ + Current health status of the OAuth connection + """ + + status_detail: typing.Optional[str] = pydantic.Field(default=None) + """ + Human-readable detail about the current status, e.g. the error message on refresh failure + """ + + status_updated_at: typing.Optional[str] = pydantic.Field(default=None) + """ + ISO 8601 timestamp of the last status change + """ + + client_id: str = pydantic.Field() + """ + OAuth client ID (rendered from template if credential uses templated credentials, None for legacy connections) + """ + + id: str + used_by: typing.Optional[AuthConnectionDependencies] = None + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/elevenlabs/types/api_integration_o_auth_2_custom_app_response_scope_separator.py b/src/elevenlabs/types/api_integration_o_auth_2_custom_app_response_scope_separator.py new file mode 100644 index 00000000..e09d4cc5 --- /dev/null +++ b/src/elevenlabs/types/api_integration_o_auth_2_custom_app_response_scope_separator.py @@ -0,0 +1,5 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +ApiIntegrationOAuth2CustomAppResponseScopeSeparator = typing.Union[typing.Literal[" ", ","], typing.Any] diff --git a/src/elevenlabs/types/authentication_activity_id.py b/src/elevenlabs/types/authentication_activity_id.py new file mode 100644 index 00000000..f2c00a67 --- /dev/null +++ b/src/elevenlabs/types/authentication_activity_id.py @@ -0,0 +1,3 @@ +# This file was auto-generated by Fern from our API Definition. + +AuthenticationActivityId = int diff --git a/src/elevenlabs/types/authorization_method.py b/src/elevenlabs/types/authorization_method.py index 2e41dc23..6f4a2004 100644 --- a/src/elevenlabs/types/authorization_method.py +++ b/src/elevenlabs/types/authorization_method.py @@ -13,6 +13,7 @@ "livekit_token_website", "genesys_api_key", "whatsapp", + "sms", ], typing.Any, ] diff --git a/src/elevenlabs/types/background_music_config.py b/src/elevenlabs/types/background_music_config.py new file mode 100644 index 00000000..9898fd1c --- /dev/null +++ b/src/elevenlabs/types/background_music_config.py @@ -0,0 +1,40 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +from ..core.unchecked_base_model import UncheckedBaseModel +from .background_music_preset_id import BackgroundMusicPresetId +from .background_music_source_type import BackgroundMusicSourceType + + +class BackgroundMusicConfig(UncheckedBaseModel): + source_type: typing.Optional[BackgroundMusicSourceType] = pydantic.Field(default=None) + """ + The type of background music source. + """ + + source_id: typing.Optional[BackgroundMusicPresetId] = pydantic.Field(default=None) + """ + Identifier for the music source. + """ + + volume: typing.Optional[float] = pydantic.Field(default=None) + """ + Volume level for background music (0.01 to 1.0). + """ + + crossfade_loop: typing.Optional[bool] = pydantic.Field(default=None) + """ + Apply a crossfade at the loop boundary to avoid audible pops when the music loops. + """ + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/elevenlabs/types/background_music_config_workflow_override.py b/src/elevenlabs/types/background_music_config_workflow_override.py new file mode 100644 index 00000000..4e92952b --- /dev/null +++ b/src/elevenlabs/types/background_music_config_workflow_override.py @@ -0,0 +1,40 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +from ..core.unchecked_base_model import UncheckedBaseModel +from .background_music_preset_id import BackgroundMusicPresetId +from .background_music_source_type import BackgroundMusicSourceType + + +class BackgroundMusicConfigWorkflowOverride(UncheckedBaseModel): + source_type: typing.Optional[BackgroundMusicSourceType] = pydantic.Field(default=None) + """ + The type of background music source. + """ + + source_id: typing.Optional[BackgroundMusicPresetId] = pydantic.Field(default=None) + """ + Identifier for the music source. + """ + + volume: typing.Optional[float] = pydantic.Field(default=None) + """ + Volume level for background music (0.01 to 1.0). + """ + + crossfade_loop: typing.Optional[bool] = pydantic.Field(default=None) + """ + Apply a crossfade at the loop boundary to avoid audible pops when the music loops. + """ + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/elevenlabs/types/background_music_preset_id.py b/src/elevenlabs/types/background_music_preset_id.py new file mode 100644 index 00000000..78ee8e68 --- /dev/null +++ b/src/elevenlabs/types/background_music_preset_id.py @@ -0,0 +1,7 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +BackgroundMusicPresetId = typing.Union[ + typing.Literal["typing", "elevator1", "elevator2", "elevator3", "elevator4"], typing.Any +] diff --git a/src/elevenlabs/types/background_music_source_type.py b/src/elevenlabs/types/background_music_source_type.py new file mode 100644 index 00000000..1d07915b --- /dev/null +++ b/src/elevenlabs/types/background_music_source_type.py @@ -0,0 +1,5 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +BackgroundMusicSourceType = typing.Literal["preset"] diff --git a/src/elevenlabs/types/cancel_calendar_event_params.py b/src/elevenlabs/types/cancel_calendar_event_params.py new file mode 100644 index 00000000..c330c724 --- /dev/null +++ b/src/elevenlabs/types/cancel_calendar_event_params.py @@ -0,0 +1,20 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +from ..core.unchecked_base_model import UncheckedBaseModel + + +class CancelCalendarEventParams(UncheckedBaseModel): + smb_tool_type: typing.Optional[typing.Literal["cancel_calendar_event"]] = None + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/elevenlabs/types/cancel_group_session_for_all_params.py b/src/elevenlabs/types/cancel_group_session_for_all_params.py new file mode 100644 index 00000000..0c0e1bf5 --- /dev/null +++ b/src/elevenlabs/types/cancel_group_session_for_all_params.py @@ -0,0 +1,26 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +from ..core.unchecked_base_model import UncheckedBaseModel + + +class CancelGroupSessionForAllParams(UncheckedBaseModel): + """ + Cancel an entire group session and notify every registered participant. + Destructive -- prefer ``cancel_group_session_registration`` for cancelling + a single attendee. + """ + + smb_tool_type: typing.Optional[typing.Literal["cancel_group_session_for_all"]] = None + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/elevenlabs/types/cancel_group_session_registration_params.py b/src/elevenlabs/types/cancel_group_session_registration_params.py new file mode 100644 index 00000000..515a6ee8 --- /dev/null +++ b/src/elevenlabs/types/cancel_group_session_registration_params.py @@ -0,0 +1,24 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +from ..core.unchecked_base_model import UncheckedBaseModel + + +class CancelGroupSessionRegistrationParams(UncheckedBaseModel): + """ + Cancel a single client's registration for a group session. + """ + + smb_tool_type: typing.Optional[typing.Literal["cancel_group_session_registration"]] = None + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/elevenlabs/types/column_unit.py b/src/elevenlabs/types/column_unit.py index 12f5d636..49b72881 100644 --- a/src/elevenlabs/types/column_unit.py +++ b/src/elevenlabs/types/column_unit.py @@ -3,5 +3,5 @@ import typing ColumnUnit = typing.Union[ - typing.Literal["ms", "s", "min", "duration", "credits", "usd", "eur", "inr", "ratio", "rating"], typing.Any + typing.Literal["ms", "s", "min", "duration", "credits", "usd", "eur", "inr", "pln", "ratio", "rating"], typing.Any ] diff --git a/src/elevenlabs/types/contextual_update_info.py b/src/elevenlabs/types/contextual_update_info.py new file mode 100644 index 00000000..d811a36e --- /dev/null +++ b/src/elevenlabs/types/contextual_update_info.py @@ -0,0 +1,28 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +from ..core.unchecked_base_model import UncheckedBaseModel + + +class ContextualUpdateInfo(UncheckedBaseModel): + context_id: str = pydantic.Field() + """ + Client-supplied identifier grouping related contextual updates. + """ + + is_superseded: typing.Optional[bool] = pydantic.Field(default=None) + """ + True when this contextual update has been replaced by a newer update with the same context_id. + """ + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/elevenlabs/types/conv_ai_webhooks.py b/src/elevenlabs/types/conv_ai_webhooks.py index 1bb5110a..7dc0741d 100644 --- a/src/elevenlabs/types/conv_ai_webhooks.py +++ b/src/elevenlabs/types/conv_ai_webhooks.py @@ -6,6 +6,7 @@ from ..core.pydantic_utilities import IS_PYDANTIC_V2 from ..core.unchecked_base_model import UncheckedBaseModel from .webhook_event_type import WebhookEventType +from .webhook_transcript_format import WebhookTranscriptFormat class ConvAiWebhooks(UncheckedBaseModel): @@ -15,6 +16,11 @@ class ConvAiWebhooks(UncheckedBaseModel): List of event types to send via webhook. Options: transcript, audio, call_initiation_failure. """ + transcript_format: typing.Optional[WebhookTranscriptFormat] = pydantic.Field(default=None) + """ + Format for transcript webhooks. + """ + send_audio: typing.Optional[bool] = pydantic.Field(default=None) """ DEPRECATED: Use 'events' field instead. Whether to send audio data with post-call webhooks for ConvAI conversations diff --git a/src/elevenlabs/types/conversation_asr_usage_model.py b/src/elevenlabs/types/conversation_asr_usage_model.py new file mode 100644 index 00000000..8b6c1914 --- /dev/null +++ b/src/elevenlabs/types/conversation_asr_usage_model.py @@ -0,0 +1,26 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +from ..core.unchecked_base_model import UncheckedBaseModel + + +class ConversationAsrUsageModel(UncheckedBaseModel): + """ + Aggregated ASR usage for a conversation (analytics-only, not billing). + """ + + asr_model: typing.Optional[str] = None + total_transcription_calls: typing.Optional[int] = None + total_audio_input_seconds: typing.Optional[float] = None + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/elevenlabs/types/conversation_charging_common_model.py b/src/elevenlabs/types/conversation_charging_common_model.py index 39304e18..38939d7c 100644 --- a/src/elevenlabs/types/conversation_charging_common_model.py +++ b/src/elevenlabs/types/conversation_charging_common_model.py @@ -5,6 +5,8 @@ import pydantic from ..core.pydantic_utilities import IS_PYDANTIC_V2 from ..core.unchecked_base_model import UncheckedBaseModel +from .conversation_asr_usage_model import ConversationAsrUsageModel +from .conversation_tts_usage_model import ConversationTtsUsageModel from .llm_category_usage import LlmCategoryUsage @@ -18,6 +20,8 @@ class ConversationChargingCommonModel(UncheckedBaseModel): call_charge: typing.Optional[int] = None free_minutes_consumed: typing.Optional[float] = None free_llm_dollars_consumed: typing.Optional[float] = None + tts_usage: typing.Optional[ConversationTtsUsageModel] = None + asr_usage: typing.Optional[ConversationAsrUsageModel] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/elevenlabs/types/conversation_config.py b/src/elevenlabs/types/conversation_config_input.py similarity index 97% rename from src/elevenlabs/types/conversation_config.py rename to src/elevenlabs/types/conversation_config_input.py index b9115e41..f883f46d 100644 --- a/src/elevenlabs/types/conversation_config.py +++ b/src/elevenlabs/types/conversation_config_input.py @@ -9,7 +9,7 @@ from .file_input_config import FileInputConfig -class ConversationConfig(UncheckedBaseModel): +class ConversationConfigInput(UncheckedBaseModel): text_only: typing.Optional[bool] = pydantic.Field(default=None) """ If enabled audio will not be processed and only text will be used, use to avoid audio pricing. diff --git a/src/elevenlabs/types/conversation_config_output.py b/src/elevenlabs/types/conversation_config_output.py new file mode 100644 index 00000000..a919cbd2 --- /dev/null +++ b/src/elevenlabs/types/conversation_config_output.py @@ -0,0 +1,55 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +from ..core.unchecked_base_model import UncheckedBaseModel +from .client_event import ClientEvent +from .file_input_config import FileInputConfig + + +class ConversationConfigOutput(UncheckedBaseModel): + text_only: typing.Optional[bool] = pydantic.Field(default=None) + """ + If enabled audio will not be processed and only text will be used, use to avoid audio pricing. + """ + + max_duration_seconds: typing.Optional[int] = pydantic.Field(default=None) + """ + The maximum duration of a conversation in seconds + """ + + client_events: typing.Optional[typing.List[ClientEvent]] = pydantic.Field(default=None) + """ + The events that will be sent to the client + """ + + file_input: typing.Optional[FileInputConfig] = pydantic.Field(default=None) + """ + Configuration for file input (image/PDF uploads) during conversations. + """ + + monitoring_enabled: typing.Optional[bool] = pydantic.Field(default=None) + """ + Enable real-time monitoring of conversations via WebSocket + """ + + monitoring_events: typing.Optional[typing.List[ClientEvent]] = pydantic.Field(default=None) + """ + The events that will be sent to monitoring connections. + """ + + source_attribution: typing.Optional[bool] = pydantic.Field(default=None) + """ + When enabled and knowledge base content is present, the LLM is instructed to report which sources it used. + """ + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/elevenlabs/types/conversation_config_workflow_override.py b/src/elevenlabs/types/conversation_config_workflow_override_input.py similarity index 96% rename from src/elevenlabs/types/conversation_config_workflow_override.py rename to src/elevenlabs/types/conversation_config_workflow_override_input.py index 2dd84505..610f27ee 100644 --- a/src/elevenlabs/types/conversation_config_workflow_override.py +++ b/src/elevenlabs/types/conversation_config_workflow_override_input.py @@ -9,7 +9,7 @@ from .file_input_config_workflow_override import FileInputConfigWorkflowOverride -class ConversationConfigWorkflowOverride(UncheckedBaseModel): +class ConversationConfigWorkflowOverrideInput(UncheckedBaseModel): text_only: typing.Optional[bool] = pydantic.Field(default=None) """ If enabled audio will not be processed and only text will be used, use to avoid audio pricing. diff --git a/src/elevenlabs/types/conversation_config_workflow_override_output.py b/src/elevenlabs/types/conversation_config_workflow_override_output.py new file mode 100644 index 00000000..c51fc1c1 --- /dev/null +++ b/src/elevenlabs/types/conversation_config_workflow_override_output.py @@ -0,0 +1,55 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +from ..core.unchecked_base_model import UncheckedBaseModel +from .client_event import ClientEvent +from .file_input_config_workflow_override import FileInputConfigWorkflowOverride + + +class ConversationConfigWorkflowOverrideOutput(UncheckedBaseModel): + text_only: typing.Optional[bool] = pydantic.Field(default=None) + """ + If enabled audio will not be processed and only text will be used, use to avoid audio pricing. + """ + + max_duration_seconds: typing.Optional[int] = pydantic.Field(default=None) + """ + The maximum duration of a conversation in seconds + """ + + client_events: typing.Optional[typing.List[ClientEvent]] = pydantic.Field(default=None) + """ + The events that will be sent to the client + """ + + file_input: typing.Optional[FileInputConfigWorkflowOverride] = pydantic.Field(default=None) + """ + Configuration for file input (image/PDF uploads) during conversations. + """ + + monitoring_enabled: typing.Optional[bool] = pydantic.Field(default=None) + """ + Enable real-time monitoring of conversations via WebSocket + """ + + monitoring_events: typing.Optional[typing.List[ClientEvent]] = pydantic.Field(default=None) + """ + The events that will be sent to monitoring connections. + """ + + source_attribution: typing.Optional[bool] = pydantic.Field(default=None) + """ + When enabled and knowledge base content is present, the LLM is instructed to report which sources it used. + """ + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/elevenlabs/types/conversation_history_metadata_common_model.py b/src/elevenlabs/types/conversation_history_metadata_common_model.py index b6611211..b3d6def5 100644 --- a/src/elevenlabs/types/conversation_history_metadata_common_model.py +++ b/src/elevenlabs/types/conversation_history_metadata_common_model.py @@ -17,7 +17,9 @@ from .conversation_history_metadata_common_model_phone_call import ConversationHistoryMetadataCommonModelPhoneCall from .conversation_history_rag_usage_common_model import ConversationHistoryRagUsageCommonModel from .conversation_initiation_source import ConversationInitiationSource +from .conversation_voice_reward_model import ConversationVoiceRewardModel from .features_usage_common_model import FeaturesUsageCommonModel +from .sms_conversation_info import SmsConversationInfo from .whats_app_conversation_info import WhatsAppConversationInfo @@ -46,8 +48,10 @@ class ConversationHistoryMetadataCommonModel(UncheckedBaseModel): timezone: typing.Optional[str] = None async_metadata: typing.Optional[AsyncConversationMetadata] = None whatsapp: typing.Optional[WhatsAppConversationInfo] = None + sms: typing.Optional[SmsConversationInfo] = None agent_created_from: typing.Optional[AgentDefinitionSource] = None agent_last_updated_from: typing.Optional[AgentDefinitionSource] = None + voice_rewards: typing.Optional[typing.List[ConversationVoiceRewardModel]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/elevenlabs/types/conversation_history_metadata_common_model_phone_call.py b/src/elevenlabs/types/conversation_history_metadata_common_model_phone_call.py index 19fff03c..c1f73f1b 100644 --- a/src/elevenlabs/types/conversation_history_metadata_common_model_phone_call.py +++ b/src/elevenlabs/types/conversation_history_metadata_common_model_phone_call.py @@ -17,6 +17,7 @@ class ConversationHistoryMetadataCommonModelPhoneCall_SipTrunking(UncheckedBaseM phone_number_id: str agent_number: str external_number: str + call_id: typing.Optional[str] = None call_sid: str sip_header_dynamic_variables: typing.Optional[typing.Dict[str, str]] = None diff --git a/src/elevenlabs/types/conversation_history_sip_trunking_phone_call_model.py b/src/elevenlabs/types/conversation_history_sip_trunking_phone_call_model.py index 95d1b69a..eea73ca5 100644 --- a/src/elevenlabs/types/conversation_history_sip_trunking_phone_call_model.py +++ b/src/elevenlabs/types/conversation_history_sip_trunking_phone_call_model.py @@ -13,6 +13,7 @@ class ConversationHistorySipTrunkingPhoneCallModel(UncheckedBaseModel): phone_number_id: str agent_number: str external_number: str + call_id: typing.Optional[str] = None call_sid: str sip_header_dynamic_variables: typing.Optional[typing.Dict[str, str]] = None diff --git a/src/elevenlabs/types/conversation_history_transcript_response_model.py b/src/elevenlabs/types/conversation_history_transcript_response_model.py index fec5af6f..87f5c7ad 100644 --- a/src/elevenlabs/types/conversation_history_transcript_response_model.py +++ b/src/elevenlabs/types/conversation_history_transcript_response_model.py @@ -9,6 +9,7 @@ from ..core.unchecked_base_model import UncheckedBaseModel from .agent_metadata import AgentMetadata from .chat_source_medium import ChatSourceMedium +from .contextual_update_info import ContextualUpdateInfo from .conversation_history_multivoice_message_model import ConversationHistoryMultivoiceMessageModel from .conversation_history_transcript_file_input_response_model import ( ConversationHistoryTranscriptFileInputResponseModel, @@ -45,6 +46,7 @@ class ConversationHistoryTranscriptResponseModel(UncheckedBaseModel): source_event_id: typing.Optional[int] = None used_static_kb_document_ids: typing.Optional[typing.List[str]] = None file_input: typing.Optional[ConversationHistoryTranscriptFileInputResponseModel] = None + contextual_update_info: typing.Optional[ContextualUpdateInfo] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/elevenlabs/types/conversation_history_transcript_system_tool_result_common_model_input_result.py b/src/elevenlabs/types/conversation_history_transcript_system_tool_result_common_model_input_result.py index 5f09ca82..71ed96a1 100644 --- a/src/elevenlabs/types/conversation_history_transcript_system_tool_result_common_model_input_result.py +++ b/src/elevenlabs/types/conversation_history_transcript_system_tool_result_common_model_input_result.py @@ -8,6 +8,7 @@ import typing_extensions from ..core.pydantic_utilities import IS_PYDANTIC_V2 from ..core.unchecked_base_model import UncheckedBaseModel, UnionMetadata +from .knowledge_base_rag_tool_status import KnowledgeBaseRagToolStatus from .transfer_to_agent_tool_result_success_model_branch_info import TransferToAgentToolResultSuccessModelBranchInfo @@ -27,6 +28,22 @@ class Config: extra = pydantic.Extra.allow +class ConversationHistoryTranscriptSystemToolResultCommonModelInputResult_KnowledgeBaseRagSuccess(UncheckedBaseModel): + result_type: typing.Literal["knowledge_base_rag_success"] = "knowledge_base_rag_success" + status: typing.Optional[KnowledgeBaseRagToolStatus] = None + chunk_count: typing.Optional[int] = None + message: typing.Optional[str] = None + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow + + class ConversationHistoryTranscriptSystemToolResultCommonModelInputResult_LanguageDetectionSuccess(UncheckedBaseModel): result_type: typing.Literal["language_detection_success"] = "language_detection_success" status: typing.Optional[typing.Literal["success"]] = None @@ -219,6 +236,7 @@ class Config: ConversationHistoryTranscriptSystemToolResultCommonModelInputResult = typing_extensions.Annotated[ typing.Union[ ConversationHistoryTranscriptSystemToolResultCommonModelInputResult_EndCallSuccess, + ConversationHistoryTranscriptSystemToolResultCommonModelInputResult_KnowledgeBaseRagSuccess, ConversationHistoryTranscriptSystemToolResultCommonModelInputResult_LanguageDetectionSuccess, ConversationHistoryTranscriptSystemToolResultCommonModelInputResult_PlayDtmfError, ConversationHistoryTranscriptSystemToolResultCommonModelInputResult_PlayDtmfSuccess, diff --git a/src/elevenlabs/types/conversation_history_transcript_system_tool_result_common_model_output_result.py b/src/elevenlabs/types/conversation_history_transcript_system_tool_result_common_model_output_result.py index da335eda..cb5fd413 100644 --- a/src/elevenlabs/types/conversation_history_transcript_system_tool_result_common_model_output_result.py +++ b/src/elevenlabs/types/conversation_history_transcript_system_tool_result_common_model_output_result.py @@ -8,6 +8,7 @@ import typing_extensions from ..core.pydantic_utilities import IS_PYDANTIC_V2 from ..core.unchecked_base_model import UncheckedBaseModel, UnionMetadata +from .knowledge_base_rag_tool_status import KnowledgeBaseRagToolStatus from .transfer_to_agent_tool_result_success_model_branch_info import TransferToAgentToolResultSuccessModelBranchInfo @@ -27,6 +28,22 @@ class Config: extra = pydantic.Extra.allow +class ConversationHistoryTranscriptSystemToolResultCommonModelOutputResult_KnowledgeBaseRagSuccess(UncheckedBaseModel): + result_type: typing.Literal["knowledge_base_rag_success"] = "knowledge_base_rag_success" + status: typing.Optional[KnowledgeBaseRagToolStatus] = None + chunk_count: typing.Optional[int] = None + message: typing.Optional[str] = None + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow + + class ConversationHistoryTranscriptSystemToolResultCommonModelOutputResult_LanguageDetectionSuccess(UncheckedBaseModel): result_type: typing.Literal["language_detection_success"] = "language_detection_success" status: typing.Optional[typing.Literal["success"]] = None @@ -221,6 +238,7 @@ class Config: ConversationHistoryTranscriptSystemToolResultCommonModelOutputResult = typing_extensions.Annotated[ typing.Union[ ConversationHistoryTranscriptSystemToolResultCommonModelOutputResult_EndCallSuccess, + ConversationHistoryTranscriptSystemToolResultCommonModelOutputResult_KnowledgeBaseRagSuccess, ConversationHistoryTranscriptSystemToolResultCommonModelOutputResult_LanguageDetectionSuccess, ConversationHistoryTranscriptSystemToolResultCommonModelOutputResult_PlayDtmfError, ConversationHistoryTranscriptSystemToolResultCommonModelOutputResult_PlayDtmfSuccess, diff --git a/src/elevenlabs/types/conversation_initiation_source.py b/src/elevenlabs/types/conversation_initiation_source.py index 28b12729..217d7e11 100644 --- a/src/elevenlabs/types/conversation_initiation_source.py +++ b/src/elevenlabs/types/conversation_initiation_source.py @@ -17,6 +17,7 @@ "genesys", "swift_sdk", "whatsapp", + "twilio_sms", "flutter_sdk", "zendesk_integration", "slack_integration", diff --git a/src/elevenlabs/types/conversation_tag_response_model.py b/src/elevenlabs/types/conversation_tag_response_model.py new file mode 100644 index 00000000..f5c82822 --- /dev/null +++ b/src/elevenlabs/types/conversation_tag_response_model.py @@ -0,0 +1,25 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +from ..core.unchecked_base_model import UncheckedBaseModel + + +class ConversationTagResponseModel(UncheckedBaseModel): + tag_id: str + workspace_id: str + owner_user_id: str + title: str + description: typing.Optional[str] = None + created_at_unix_secs: int + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/elevenlabs/types/conversation_tts_usage_model.py b/src/elevenlabs/types/conversation_tts_usage_model.py new file mode 100644 index 00000000..4256dbf8 --- /dev/null +++ b/src/elevenlabs/types/conversation_tts_usage_model.py @@ -0,0 +1,28 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +from ..core.unchecked_base_model import UncheckedBaseModel +from .conversation_voice_usage_model import ConversationVoiceUsageModel + + +class ConversationTtsUsageModel(UncheckedBaseModel): + """ + Aggregated TTS usage for a conversation (analytics-only, not billing). + """ + + primary_tts_model: typing.Optional[str] = None + total_audio_output_seconds: typing.Optional[float] = None + total_characters: typing.Optional[int] = None + per_voice_usage: typing.Optional[typing.List[ConversationVoiceUsageModel]] = None + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/elevenlabs/types/conversation_voice_reward_model.py b/src/elevenlabs/types/conversation_voice_reward_model.py new file mode 100644 index 00000000..256f0612 --- /dev/null +++ b/src/elevenlabs/types/conversation_voice_reward_model.py @@ -0,0 +1,21 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +from ..core.unchecked_base_model import UncheckedBaseModel + + +class ConversationVoiceRewardModel(UncheckedBaseModel): + voice_id: str + reward_usd_cents: float + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/elevenlabs/types/conversation_voice_usage_model.py b/src/elevenlabs/types/conversation_voice_usage_model.py new file mode 100644 index 00000000..3ba20b78 --- /dev/null +++ b/src/elevenlabs/types/conversation_voice_usage_model.py @@ -0,0 +1,21 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +from ..core.unchecked_base_model import UncheckedBaseModel + + +class ConversationVoiceUsageModel(UncheckedBaseModel): + voice_id: str + audio_output_seconds: typing.Optional[float] = None + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/elevenlabs/types/conversational_config.py b/src/elevenlabs/types/conversational_config.py index 94653ec0..c4c6ebd9 100644 --- a/src/elevenlabs/types/conversational_config.py +++ b/src/elevenlabs/types/conversational_config.py @@ -9,7 +9,7 @@ from ..core.unchecked_base_model import UncheckedBaseModel from .agent_config import AgentConfig from .asr_conversational_config import AsrConversationalConfig -from .conversation_config import ConversationConfig +from .conversation_config_output import ConversationConfigOutput from .language_preset_output import LanguagePresetOutput from .tts_conversational_config_output import TtsConversationalConfigOutput from .turn_config import TurnConfig @@ -32,7 +32,7 @@ class ConversationalConfig(UncheckedBaseModel): Configuration for conversational text to speech """ - conversation: typing.Optional[ConversationConfig] = pydantic.Field(default=None) + conversation: typing.Optional[ConversationConfigOutput] = pydantic.Field(default=None) """ Configuration for conversational events """ diff --git a/src/elevenlabs/types/conversational_config_api_model_workflow_override_input.py b/src/elevenlabs/types/conversational_config_api_model_workflow_override_input.py index e29a56da..5efa8577 100644 --- a/src/elevenlabs/types/conversational_config_api_model_workflow_override_input.py +++ b/src/elevenlabs/types/conversational_config_api_model_workflow_override_input.py @@ -9,7 +9,7 @@ from ..core.unchecked_base_model import UncheckedBaseModel from .agent_config_api_model_workflow_override_input import AgentConfigApiModelWorkflowOverrideInput from .asr_conversational_config_workflow_override import AsrConversationalConfigWorkflowOverride -from .conversation_config_workflow_override import ConversationConfigWorkflowOverride +from .conversation_config_workflow_override_input import ConversationConfigWorkflowOverrideInput from .language_preset_input import LanguagePresetInput from .tts_conversational_config_workflow_override_input import TtsConversationalConfigWorkflowOverrideInput from .turn_config_workflow_override import TurnConfigWorkflowOverride @@ -32,7 +32,7 @@ class ConversationalConfigApiModelWorkflowOverrideInput(UncheckedBaseModel): Configuration for conversational text to speech """ - conversation: typing.Optional[ConversationConfigWorkflowOverride] = pydantic.Field(default=None) + conversation: typing.Optional[ConversationConfigWorkflowOverrideInput] = pydantic.Field(default=None) """ Configuration for conversational events """ diff --git a/src/elevenlabs/types/conversational_config_api_model_workflow_override_output.py b/src/elevenlabs/types/conversational_config_api_model_workflow_override_output.py index 699b51a1..4051452b 100644 --- a/src/elevenlabs/types/conversational_config_api_model_workflow_override_output.py +++ b/src/elevenlabs/types/conversational_config_api_model_workflow_override_output.py @@ -9,7 +9,7 @@ from ..core.unchecked_base_model import UncheckedBaseModel from .agent_config_api_model_workflow_override_output import AgentConfigApiModelWorkflowOverrideOutput from .asr_conversational_config_workflow_override import AsrConversationalConfigWorkflowOverride -from .conversation_config_workflow_override import ConversationConfigWorkflowOverride +from .conversation_config_workflow_override_output import ConversationConfigWorkflowOverrideOutput from .language_preset_output import LanguagePresetOutput from .tts_conversational_config_workflow_override_output import TtsConversationalConfigWorkflowOverrideOutput from .turn_config_workflow_override import TurnConfigWorkflowOverride @@ -32,7 +32,7 @@ class ConversationalConfigApiModelWorkflowOverrideOutput(UncheckedBaseModel): Configuration for conversational text to speech """ - conversation: typing.Optional[ConversationConfigWorkflowOverride] = pydantic.Field(default=None) + conversation: typing.Optional[ConversationConfigWorkflowOverrideOutput] = pydantic.Field(default=None) """ Configuration for conversational events """ diff --git a/src/elevenlabs/types/create_o_auth_2_jwt_request.py b/src/elevenlabs/types/create_o_auth_2_jwt_request.py index 690843a6..d229e3b2 100644 --- a/src/elevenlabs/types/create_o_auth_2_jwt_request.py +++ b/src/elevenlabs/types/create_o_auth_2_jwt_request.py @@ -6,6 +6,7 @@ from ..core.pydantic_utilities import IS_PYDANTIC_V2 from ..core.unchecked_base_model import UncheckedBaseModel from .create_o_auth_2_jwt_request_algorithm import CreateOAuth2JwtRequestAlgorithm +from .create_o_auth_2_jwt_request_token_response_field import CreateOAuth2JwtRequestTokenResponseField class CreateOAuth2JwtRequest(UncheckedBaseModel): @@ -60,6 +61,11 @@ class CreateOAuth2JwtRequest(UncheckedBaseModel): OAuth2 scopes to request when exchanging JWT for access token """ + token_response_field: typing.Optional[CreateOAuth2JwtRequestTokenResponseField] = pydantic.Field(default=None) + """ + Token field to extract from the token endpoint response. + """ + secret_key: str if IS_PYDANTIC_V2: diff --git a/src/elevenlabs/types/create_o_auth_2_jwt_request_token_response_field.py b/src/elevenlabs/types/create_o_auth_2_jwt_request_token_response_field.py new file mode 100644 index 00000000..ca2aab47 --- /dev/null +++ b/src/elevenlabs/types/create_o_auth_2_jwt_request_token_response_field.py @@ -0,0 +1,5 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +CreateOAuth2JwtRequestTokenResponseField = typing.Union[typing.Literal["access_token", "id_token"], typing.Any] diff --git a/src/elevenlabs/types/create_service_params.py b/src/elevenlabs/types/create_service_params.py index e16cd8b4..1d0f18d5 100644 --- a/src/elevenlabs/types/create_service_params.py +++ b/src/elevenlabs/types/create_service_params.py @@ -9,7 +9,7 @@ class CreateServiceParams(UncheckedBaseModel): """ - Create a new service (classic or rental) in the system. + Create a new service (classic, rental, or group) in the system. """ smb_tool_type: typing.Optional[typing.Literal["create_service"]] = None diff --git a/src/elevenlabs/types/create_simulation_test_request.py b/src/elevenlabs/types/create_simulation_test_request.py index 0a8ac3ff..9d2932d6 100644 --- a/src/elevenlabs/types/create_simulation_test_request.py +++ b/src/elevenlabs/types/create_simulation_test_request.py @@ -9,6 +9,7 @@ from ..core.unchecked_base_model import UncheckedBaseModel from .conversation_history_transcript_common_model_input import ConversationHistoryTranscriptCommonModelInput from .dynamic_variable_value_type_input import DynamicVariableValueTypeInput +from .llm import Llm from .simulation_tool_mock_behavior_config import SimulationToolMockBehaviorConfig from .test_from_conversation_metadata_input import TestFromConversationMetadataInput @@ -52,6 +53,16 @@ class CreateSimulationTestRequest(UncheckedBaseModel): Configuration for which tools to mock and fallback behavior. """ + evaluation_model: typing.Optional[Llm] = pydantic.Field(default=None) + """ + LLM model to use for evaluating simulation results. Defaults to Claude Sonnet 4.6. + """ + + simulated_user_model: typing.Optional[Llm] = pydantic.Field(default=None) + """ + LLM model for the simulated user. Defaults to Claude Sonnet 4.6. + """ + name: str parent_folder_id: typing.Optional[str] = pydantic.Field(default=None) """ diff --git a/src/elevenlabs/types/currency.py b/src/elevenlabs/types/currency.py index a78023dc..c6bcd789 100644 --- a/src/elevenlabs/types/currency.py +++ b/src/elevenlabs/types/currency.py @@ -2,4 +2,4 @@ import typing -Currency = typing.Union[typing.Literal["usd", "eur", "inr"], typing.Any] +Currency = typing.Union[typing.Literal["usd", "eur", "inr", "pln"], typing.Any] diff --git a/src/elevenlabs/types/delete_calendar_event_params.py b/src/elevenlabs/types/delete_calendar_event_params.py index 60fedda7..809f79eb 100644 --- a/src/elevenlabs/types/delete_calendar_event_params.py +++ b/src/elevenlabs/types/delete_calendar_event_params.py @@ -8,6 +8,14 @@ class DeleteCalendarEventParams(UncheckedBaseModel): + """ + Permanently remove a previously-cancelled calendar event. + + This delete tool is the irreversible follow-up to cancel_calendar_event. + The backend rejects the call (422) if the event hasn't been + cancelled yet, so the only safe path is cancel-then-delete. + """ + smb_tool_type: typing.Optional[typing.Literal["delete_calendar_event"]] = None if IS_PYDANTIC_V2: diff --git a/src/elevenlabs/types/delete_group_session_params.py b/src/elevenlabs/types/delete_group_session_params.py new file mode 100644 index 00000000..bc35cc4d --- /dev/null +++ b/src/elevenlabs/types/delete_group_session_params.py @@ -0,0 +1,31 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +from ..core.unchecked_base_model import UncheckedBaseModel + + +class DeleteGroupSessionParams(UncheckedBaseModel): + """ + Permanently remove a previously-cancelled group session. + + Group analogue of ``delete_calendar_event``: cancel + (``cancel_group_session_for_all``) is the soft, history-preserving step; + this tool is the irreversible follow-up that drops the row from Mongo + and the staff Google Calendar entirely. The backend rejects the call + (422) if the session hasn't been cancelled yet, so the only safe path + is cancel-then-delete. + """ + + smb_tool_type: typing.Optional[typing.Literal["delete_group_session"]] = None + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/elevenlabs/types/device_model.py b/src/elevenlabs/types/device_model.py new file mode 100644 index 00000000..2b98d50b --- /dev/null +++ b/src/elevenlabs/types/device_model.py @@ -0,0 +1,39 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +from ..core.unchecked_base_model import UncheckedBaseModel + + +class DeviceModel(UncheckedBaseModel): + """ + Device information. + + Spec: https://schema.ocsf.io/1.6.0/objects/device + """ + + ip: typing.Optional[str] = pydantic.Field(default=None) + """ + IP address + """ + + hostname: typing.Optional[str] = pydantic.Field(default=None) + """ + Device hostname + """ + + type_id: typing.Optional[int] = pydantic.Field(default=None) + """ + Device type ID (99 = Unknown) + """ + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/elevenlabs/types/direct_publishing_read_response_model.py b/src/elevenlabs/types/direct_publishing_read_response_model.py index 55bb4477..2f50ea30 100644 --- a/src/elevenlabs/types/direct_publishing_read_response_model.py +++ b/src/elevenlabs/types/direct_publishing_read_response_model.py @@ -68,6 +68,7 @@ class DirectPublishingReadResponseModel(UncheckedBaseModel): review: typing.Optional[ReviewResponseModel] = None voice_id: typing.Optional[str] = None can_use_assistant: typing.Optional[bool] = None + is_voice_changer_on: typing.Optional[bool] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/elevenlabs/types/dubbing_model.py b/src/elevenlabs/types/dubbing_model.py deleted file mode 100644 index 326648ac..00000000 --- a/src/elevenlabs/types/dubbing_model.py +++ /dev/null @@ -1,7 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -DubbingModel = typing.Union[ - typing.Literal["dubbing_v1_tts_v3", "dubbing_v2", "dubbing_v3", "dubbing_e2e_v1"], typing.Any -] diff --git a/src/elevenlabs/types/entity_management_activity_id.py b/src/elevenlabs/types/entity_management_activity_id.py new file mode 100644 index 00000000..d7c1b801 --- /dev/null +++ b/src/elevenlabs/types/entity_management_activity_id.py @@ -0,0 +1,3 @@ +# This file was auto-generated by Fern from our API Definition. + +EntityManagementActivityId = int diff --git a/src/elevenlabs/types/generation_source_context.py b/src/elevenlabs/types/generation_source_context.py index 01ca86a1..015f6285 100644 --- a/src/elevenlabs/types/generation_source_context.py +++ b/src/elevenlabs/types/generation_source_context.py @@ -16,11 +16,6 @@ class GenerationSourceContext(UncheckedBaseModel): model_provider: typing.Optional[str] = None generation_session_id: typing.Optional[str] = None session_iteration_id: typing.Optional[str] = None - altered_prompt: typing.Optional[str] = pydantic.Field(default=None) - """ - Modified/enhanced prompt if different from original - """ - model_parameters: typing.Optional[typing.Dict[str, typing.Any]] = None extend_video: typing.Optional[ReferenceVideo] = None diff --git a/src/elevenlabs/types/get_agent_response_model_phone_numbers_item.py b/src/elevenlabs/types/get_agent_response_model_phone_numbers_item.py index f25828bd..4ad5701e 100644 --- a/src/elevenlabs/types/get_agent_response_model_phone_numbers_item.py +++ b/src/elevenlabs/types/get_agent_response_model_phone_numbers_item.py @@ -26,6 +26,7 @@ class GetAgentResponseModelPhoneNumbersItem_SipTrunk(UncheckedBaseModel): outbound_trunk: typing.Optional[GetPhoneNumberOutboundSipTrunkConfigResponseModel] = None inbound_trunk: typing.Optional[GetPhoneNumberInboundSipTrunkConfigResponseModel] = None livekit_stack: LivekitStackType + store_sip_messages: typing.Optional[bool] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/elevenlabs/types/get_client_appointments_params.py b/src/elevenlabs/types/get_client_appointments_params.py index 889278bd..3a16e648 100644 --- a/src/elevenlabs/types/get_client_appointments_params.py +++ b/src/elevenlabs/types/get_client_appointments_params.py @@ -9,6 +9,7 @@ class GetClientAppointmentsParams(UncheckedBaseModel): smb_tool_type: typing.Optional[typing.Literal["get_client_appointments"]] = None + include_cancelled: typing.Optional[bool] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/elevenlabs/types/get_conversation_response_model.py b/src/elevenlabs/types/get_conversation_response_model.py index e01ee2e4..17a6d318 100644 --- a/src/elevenlabs/types/get_conversation_response_model.py +++ b/src/elevenlabs/types/get_conversation_response_model.py @@ -36,6 +36,10 @@ class GetConversationResponseModel(UncheckedBaseModel): has_user_audio: bool has_response_audio: bool transcript: typing.List[ConversationHistoryTranscriptResponseModel] + tag_ids: typing.Optional[typing.List[str]] = pydantic.Field(default=None) + """ + Conversation tag ids assigned to this conversation. + """ if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/elevenlabs/types/get_conversation_tags_page_response_model.py b/src/elevenlabs/types/get_conversation_tags_page_response_model.py new file mode 100644 index 00000000..f19be04f --- /dev/null +++ b/src/elevenlabs/types/get_conversation_tags_page_response_model.py @@ -0,0 +1,23 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +from ..core.unchecked_base_model import UncheckedBaseModel +from .conversation_tag_response_model import ConversationTagResponseModel + + +class GetConversationTagsPageResponseModel(UncheckedBaseModel): + conversation_tags: typing.List[ConversationTagResponseModel] + next_cursor: typing.Optional[str] = None + has_more: bool + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/elevenlabs/types/get_phone_number_sip_trunk_response_model.py b/src/elevenlabs/types/get_phone_number_sip_trunk_response_model.py index b866952e..4d48b29c 100644 --- a/src/elevenlabs/types/get_phone_number_sip_trunk_response_model.py +++ b/src/elevenlabs/types/get_phone_number_sip_trunk_response_model.py @@ -58,6 +58,11 @@ class GetPhoneNumberSipTrunkResponseModel(UncheckedBaseModel): Type of Livekit stack used for this number. """ + store_sip_messages: typing.Optional[bool] = pydantic.Field(default=None) + """ + Whether to store SIP messages for this phone number. + """ + if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 else: diff --git a/src/elevenlabs/types/get_simulation_test_response_model.py b/src/elevenlabs/types/get_simulation_test_response_model.py index 9558b007..2df72fd7 100644 --- a/src/elevenlabs/types/get_simulation_test_response_model.py +++ b/src/elevenlabs/types/get_simulation_test_response_model.py @@ -9,6 +9,7 @@ from ..core.unchecked_base_model import UncheckedBaseModel from .conversation_history_transcript_common_model_output import ConversationHistoryTranscriptCommonModelOutput from .dynamic_variable_value_type_output import DynamicVariableValueTypeOutput +from .llm import Llm from .simulation_tool_mock_behavior_config import SimulationToolMockBehaviorConfig from .test_from_conversation_metadata_output import TestFromConversationMetadataOutput @@ -52,6 +53,16 @@ class GetSimulationTestResponseModel(UncheckedBaseModel): Configuration for which tools to mock and fallback behavior. """ + evaluation_model: typing.Optional[Llm] = pydantic.Field(default=None) + """ + LLM model to use for evaluating simulation results. Defaults to Claude Sonnet 4.6. + """ + + simulated_user_model: typing.Optional[Llm] = pydantic.Field(default=None) + """ + LLM model for the simulated user. Defaults to Claude Sonnet 4.6. + """ + id: str name: str diff --git a/src/elevenlabs/types/get_sip_log_messages_response.py b/src/elevenlabs/types/get_sip_log_messages_response.py new file mode 100644 index 00000000..9b0606d5 --- /dev/null +++ b/src/elevenlabs/types/get_sip_log_messages_response.py @@ -0,0 +1,23 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +from ..core.unchecked_base_model import UncheckedBaseModel +from .sip_log_message import SipLogMessage + + +class GetSipLogMessagesResponse(UncheckedBaseModel): + sip_messages: typing.List[SipLogMessage] + next_cursor: typing.Optional[str] = None + has_more: typing.Optional[bool] = None + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/elevenlabs/types/group_management_activity_id.py b/src/elevenlabs/types/group_management_activity_id.py new file mode 100644 index 00000000..7534a1a3 --- /dev/null +++ b/src/elevenlabs/types/group_management_activity_id.py @@ -0,0 +1,3 @@ +# This file was auto-generated by Fern from our API Definition. + +GroupManagementActivityId = int diff --git a/src/elevenlabs/types/http_request_model.py b/src/elevenlabs/types/http_request_model.py new file mode 100644 index 00000000..c09ffacf --- /dev/null +++ b/src/elevenlabs/types/http_request_model.py @@ -0,0 +1,45 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +from ..core.unchecked_base_model import UncheckedBaseModel +from .url_model import UrlModel + + +class HttpRequestModel(UncheckedBaseModel): + """ + HTTP request details. + + Spec: https://schema.ocsf.io/1.6.0/objects/http_request + """ + + http_method: str = pydantic.Field() + """ + HTTP method (GET, POST, etc.) + """ + + url: UrlModel = pydantic.Field() + """ + Request URL object + """ + + user_agent: typing.Optional[str] = pydantic.Field(default=None) + """ + User agent string + """ + + x_forwarded_for: typing.Optional[typing.List[str]] = pydantic.Field(default=None) + """ + X-Forwarded-For header as a list + """ + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/elevenlabs/types/image_analysis.py b/src/elevenlabs/types/image_analysis.py new file mode 100644 index 00000000..5f6e48ac --- /dev/null +++ b/src/elevenlabs/types/image_analysis.py @@ -0,0 +1,24 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +from ..core.unchecked_base_model import UncheckedBaseModel +from .image_analysis_result import ImageAnalysisResult +from .image_analysis_status import ImageAnalysisStatus + + +class ImageAnalysis(UncheckedBaseModel): + status: ImageAnalysisStatus + data: typing.Optional[ImageAnalysisResult] = None + updated_at_ms: typing.Optional[int] = None + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/elevenlabs/types/image_analysis_result.py b/src/elevenlabs/types/image_analysis_result.py new file mode 100644 index 00000000..70cf860e --- /dev/null +++ b/src/elevenlabs/types/image_analysis_result.py @@ -0,0 +1,31 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +from ..core.unchecked_base_model import UncheckedBaseModel +from .image_subject import ImageSubject + + +class ImageAnalysisResult(UncheckedBaseModel): + title: str + description: str + content_type: typing.Optional[str] = None + mood_and_style: typing.Optional[str] = None + composition_notes: typing.Optional[str] = None + visible_text: typing.Optional[str] = pydantic.Field(default=None) + """ + Readable text overlaid or shown in the image, if any. + """ + + subjects: typing.Optional[typing.List[ImageSubject]] = None + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/elevenlabs/types/image_analysis_status.py b/src/elevenlabs/types/image_analysis_status.py new file mode 100644 index 00000000..c43a46e9 --- /dev/null +++ b/src/elevenlabs/types/image_analysis_status.py @@ -0,0 +1,5 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +ImageAnalysisStatus = typing.Union[typing.Literal["processing", "completed", "failed"], typing.Any] diff --git a/src/elevenlabs/types/image_subject.py b/src/elevenlabs/types/image_subject.py new file mode 100644 index 00000000..ed083e53 --- /dev/null +++ b/src/elevenlabs/types/image_subject.py @@ -0,0 +1,21 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +from ..core.unchecked_base_model import UncheckedBaseModel + + +class ImageSubject(UncheckedBaseModel): + name: str + description: str + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/elevenlabs/types/knowledge_base_rag_tool_config.py b/src/elevenlabs/types/knowledge_base_rag_tool_config.py new file mode 100644 index 00000000..12825ab8 --- /dev/null +++ b/src/elevenlabs/types/knowledge_base_rag_tool_config.py @@ -0,0 +1,18 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +from ..core.unchecked_base_model import UncheckedBaseModel + + +class KnowledgeBaseRagToolConfig(UncheckedBaseModel): + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/elevenlabs/types/knowledge_base_rag_tool_result_model.py b/src/elevenlabs/types/knowledge_base_rag_tool_result_model.py new file mode 100644 index 00000000..b52a23f4 --- /dev/null +++ b/src/elevenlabs/types/knowledge_base_rag_tool_result_model.py @@ -0,0 +1,30 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +from ..core.unchecked_base_model import UncheckedBaseModel +from .knowledge_base_rag_tool_status import KnowledgeBaseRagToolStatus + + +class KnowledgeBaseRagToolResultModel(UncheckedBaseModel): + status: typing.Optional[KnowledgeBaseRagToolStatus] = None + chunk_count: typing.Optional[int] = pydantic.Field(default=None) + """ + Number of relevant chunks retrieved + """ + + message: typing.Optional[str] = pydantic.Field(default=None) + """ + Human-readable status for the LLM about the search results + """ + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/elevenlabs/types/knowledge_base_rag_tool_status.py b/src/elevenlabs/types/knowledge_base_rag_tool_status.py new file mode 100644 index 00000000..1b540ced --- /dev/null +++ b/src/elevenlabs/types/knowledge_base_rag_tool_status.py @@ -0,0 +1,5 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +KnowledgeBaseRagToolStatus = typing.Union[typing.Literal["success", "no_documents", "no_results"], typing.Any] diff --git a/src/elevenlabs/types/leave_message_params.py b/src/elevenlabs/types/leave_message_params.py new file mode 100644 index 00000000..a3c80380 --- /dev/null +++ b/src/elevenlabs/types/leave_message_params.py @@ -0,0 +1,20 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +from ..core.unchecked_base_model import UncheckedBaseModel + + +class LeaveMessageParams(UncheckedBaseModel): + smb_tool_type: typing.Optional[typing.Literal["leave_message"]] = None + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/elevenlabs/types/list_auth_connections_response_auth_connections_item.py b/src/elevenlabs/types/list_auth_connections_response_auth_connections_item.py index 01011b73..e81af7c3 100644 --- a/src/elevenlabs/types/list_auth_connections_response_auth_connections_item.py +++ b/src/elevenlabs/types/list_auth_connections_response_auth_connections_item.py @@ -11,8 +11,12 @@ from .api_integration_o_auth_2_auth_code_response_scope_separator import ( ApiIntegrationOAuth2AuthCodeResponseScopeSeparator, ) +from .api_integration_o_auth_2_custom_app_response_scope_separator import ( + ApiIntegrationOAuth2CustomAppResponseScopeSeparator, +) from .auth_connection_dependencies import AuthConnectionDependencies from .o_auth_2_jwt_response_algorithm import OAuth2JwtResponseAlgorithm +from .o_auth_2_jwt_response_token_response_field import OAuth2JwtResponseTokenResponseField from .o_auth_connection_status import OAuthConnectionStatus from .private_key_jwt_response_algorithm import PrivateKeyJwtResponseAlgorithm @@ -47,6 +51,37 @@ class Config: extra = pydantic.Extra.allow +class ListAuthConnectionsResponseAuthConnectionsItem_ApiIntegrationOauth2CustomApp(UncheckedBaseModel): + """ + The type of auth connection config + """ + + auth_type: typing.Literal["api_integration_oauth2_custom_app"] = "api_integration_oauth2_custom_app" + name: str + provider: str + token_url: str + scopes: typing.Optional[typing.List[str]] = None + scope_separator: typing.Optional[ApiIntegrationOAuth2CustomAppResponseScopeSeparator] = None + expires_at: str + integration_id: str + credential_id: str + status: typing.Optional[OAuthConnectionStatus] = None + status_detail: typing.Optional[str] = None + status_updated_at: typing.Optional[str] = None + client_id: str + id: str + used_by: typing.Optional[AuthConnectionDependencies] = None + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow + + class ListAuthConnectionsResponseAuthConnectionsItem_BasicAuth(UncheckedBaseModel): """ The type of auth connection config @@ -176,6 +211,7 @@ class ListAuthConnectionsResponseAuthConnectionsItem_Oauth2Jwt(UncheckedBaseMode extra_params: typing.Optional[typing.Dict[str, str]] = None token_url: str scopes: typing.Optional[typing.List[str]] = None + token_response_field: typing.Optional[OAuth2JwtResponseTokenResponseField] = None id: str used_by: typing.Optional[AuthConnectionDependencies] = None @@ -242,6 +278,7 @@ class Config: ListAuthConnectionsResponseAuthConnectionsItem = typing_extensions.Annotated[ typing.Union[ ListAuthConnectionsResponseAuthConnectionsItem_ApiIntegrationOauth2AuthCode, + ListAuthConnectionsResponseAuthConnectionsItem_ApiIntegrationOauth2CustomApp, ListAuthConnectionsResponseAuthConnectionsItem_BasicAuth, ListAuthConnectionsResponseAuthConnectionsItem_BearerAuth, ListAuthConnectionsResponseAuthConnectionsItem_CustomHeaderAuth, diff --git a/src/elevenlabs/types/list_calendar_events_params.py b/src/elevenlabs/types/list_calendar_events_params.py index a577f88c..0dbb0cd5 100644 --- a/src/elevenlabs/types/list_calendar_events_params.py +++ b/src/elevenlabs/types/list_calendar_events_params.py @@ -9,6 +9,7 @@ class ListCalendarEventsParams(UncheckedBaseModel): smb_tool_type: typing.Optional[typing.Literal["list_calendar_events"]] = None + include_cancelled: typing.Optional[bool] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/elevenlabs/types/list_group_sessions_params.py b/src/elevenlabs/types/list_group_sessions_params.py new file mode 100644 index 00000000..08d9d0d0 --- /dev/null +++ b/src/elevenlabs/types/list_group_sessions_params.py @@ -0,0 +1,28 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +from ..core.unchecked_base_model import UncheckedBaseModel + + +class ListGroupSessionsParams(UncheckedBaseModel): + """ + List scheduled group sessions for a group service in a date range. + + Group services are scheduled in advance (e.g. yoga classes, workshops) and + callers register against an existing session. Use this for group services; + use ``check_service_availability`` for appointment / rental services. + """ + + smb_tool_type: typing.Optional[typing.Literal["list_group_sessions"]] = None + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/elevenlabs/types/list_response_api_integration_doc_response.py b/src/elevenlabs/types/list_response_api_integration_doc_response.py new file mode 100644 index 00000000..6aa4c7da --- /dev/null +++ b/src/elevenlabs/types/list_response_api_integration_doc_response.py @@ -0,0 +1,23 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +from ..core.unchecked_base_model import UncheckedBaseModel +from .api_integration_doc_response import ApiIntegrationDocResponse +from .list_response_meta import ListResponseMeta + + +class ListResponseApiIntegrationDocResponse(UncheckedBaseModel): + meta: typing.Optional[ListResponseMeta] = None + results: typing.List[ApiIntegrationDocResponse] + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/elevenlabs/types/llm.py b/src/elevenlabs/types/llm.py index dacefb22..c040cf19 100644 --- a/src/elevenlabs/types/llm.py +++ b/src/elevenlabs/types/llm.py @@ -15,6 +15,8 @@ "gpt-5.1", "gpt-5.2", "gpt-5.2-chat-latest", + "gpt-5.4", + "gpt-5.5", "gpt-5-mini", "gpt-5-nano", "gpt-3.5-turbo", @@ -29,6 +31,7 @@ "gemini-3.1-pro-preview", "gemini-3.1-flash-lite-preview", "claude-sonnet-4-5", + "claude-opus-4-7", "claude-sonnet-4-6", "claude-sonnet-4", "claude-haiku-4-5", @@ -40,6 +43,7 @@ "custom-llm", "qwen3-4b", "qwen3-30b-a3b", + "qwen36-35b-a3b", "gpt-oss-20b", "gpt-oss-120b", "glm-45-air-fp8", @@ -64,6 +68,8 @@ "gpt-5-2025-08-07", "gpt-5.1-2025-11-13", "gpt-5.2-2025-12-11", + "gpt-5.4-2026-03-05", + "gpt-5.5-2026-04-23", "gpt-5-mini-2025-08-07", "gpt-5-nano-2025-08-07", "gpt-4.1-2025-04-14", diff --git a/src/elevenlabs/types/mcp_server_config_input.py b/src/elevenlabs/types/mcp_server_config_input.py index a75c1362..e332bdd6 100644 --- a/src/elevenlabs/types/mcp_server_config_input.py +++ b/src/elevenlabs/types/mcp_server_config_input.py @@ -87,7 +87,7 @@ class McpServerConfigInput(UncheckedBaseModel): response_timeout_secs: typing.Optional[int] = pydantic.Field(default=None) """ - The maximum time in seconds to wait for each MCP tool call to complete. Must be between 5 and 120 seconds (inclusive). + The maximum time in seconds to wait for each MCP tool call to complete. Must be between 5 and 300 seconds (inclusive). """ tool_config_overrides: typing.Optional[typing.List[McpToolConfigOverrideInput]] = pydantic.Field(default=None) diff --git a/src/elevenlabs/types/mcp_server_config_output.py b/src/elevenlabs/types/mcp_server_config_output.py index dff2a3c3..9861287e 100644 --- a/src/elevenlabs/types/mcp_server_config_output.py +++ b/src/elevenlabs/types/mcp_server_config_output.py @@ -87,7 +87,7 @@ class McpServerConfigOutput(UncheckedBaseModel): response_timeout_secs: typing.Optional[int] = pydantic.Field(default=None) """ - The maximum time in seconds to wait for each MCP tool call to complete. Must be between 5 and 120 seconds (inclusive). + The maximum time in seconds to wait for each MCP tool call to complete. Must be between 5 and 300 seconds (inclusive). """ tool_config_overrides: typing.Optional[typing.List[McpToolConfigOverrideOutput]] = pydantic.Field(default=None) diff --git a/src/elevenlabs/types/o_auth_2_jwt_response.py b/src/elevenlabs/types/o_auth_2_jwt_response.py index 927a3e9f..787c0651 100644 --- a/src/elevenlabs/types/o_auth_2_jwt_response.py +++ b/src/elevenlabs/types/o_auth_2_jwt_response.py @@ -7,6 +7,7 @@ from ..core.unchecked_base_model import UncheckedBaseModel from .auth_connection_dependencies import AuthConnectionDependencies from .o_auth_2_jwt_response_algorithm import OAuth2JwtResponseAlgorithm +from .o_auth_2_jwt_response_token_response_field import OAuth2JwtResponseTokenResponseField class OAuth2JwtResponse(UncheckedBaseModel): @@ -61,6 +62,11 @@ class OAuth2JwtResponse(UncheckedBaseModel): OAuth2 scopes to request when exchanging JWT for access token """ + token_response_field: typing.Optional[OAuth2JwtResponseTokenResponseField] = pydantic.Field(default=None) + """ + Token field to extract from the token endpoint response. + """ + id: str used_by: typing.Optional[AuthConnectionDependencies] = None diff --git a/src/elevenlabs/types/o_auth_2_jwt_response_token_response_field.py b/src/elevenlabs/types/o_auth_2_jwt_response_token_response_field.py new file mode 100644 index 00000000..c3359791 --- /dev/null +++ b/src/elevenlabs/types/o_auth_2_jwt_response_token_response_field.py @@ -0,0 +1,5 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +OAuth2JwtResponseTokenResponseField = typing.Union[typing.Literal["access_token", "id_token"], typing.Any] diff --git a/src/elevenlabs/types/price.py b/src/elevenlabs/types/price.py new file mode 100644 index 00000000..1619fff0 --- /dev/null +++ b/src/elevenlabs/types/price.py @@ -0,0 +1,26 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +from ..core.unchecked_base_model import UncheckedBaseModel +from .currency import Currency + + +class Price(UncheckedBaseModel): + """ + Currency/amount pair. + """ + + amount: str + currency: Currency + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/elevenlabs/types/project_extended_response_model_assets_item.py b/src/elevenlabs/types/project_extended_response_model_assets_item.py index 42dbaace..0478c441 100644 --- a/src/elevenlabs/types/project_extended_response_model_assets_item.py +++ b/src/elevenlabs/types/project_extended_response_model_assets_item.py @@ -13,6 +13,7 @@ from .canvas_placement import CanvasPlacement from .clip_animation import ClipAnimation from .generation_source_context import GenerationSourceContext +from .image_analysis import ImageAnalysis from .pending_blocks_metadata_model import PendingBlocksMetadataModel from .pending_clip_task import PendingClipTask from .pending_external_audios_metadata_model import PendingExternalAudiosMetadataModel @@ -44,14 +45,13 @@ class ProjectExtendedResponseModelAssetsItem_Video(UncheckedBaseModel): thumbnail_size: typing.List[int] thumbnail_sheets: typing.List[ProjectVideoThumbnailSheetResponseModel] start_time_ms: int - end_time_ms: int + end_time_ms: typing.Optional[int] = None asset_preview_signed_url: typing.Optional[str] = None source_video_id: typing.Optional[str] = None source_asset_id: typing.Optional[str] = None + source_platform_asset_id: typing.Optional[str] = None pending_blocks_metadata: typing.Optional[PendingBlocksMetadataModel] = None pending_external_audios_metadata: typing.Optional[PendingExternalAudiosMetadataModel] = None - pending_block_ids: typing.List[str] - pending_external_audio_ids: typing.List[str] speech_imported: typing.Optional[bool] = None pending_task: typing.Optional[PendingClipTask] = None audio_track_ready: typing.Optional[bool] = None @@ -86,7 +86,7 @@ class ProjectExtendedResponseModelAssetsItem_Audio(UncheckedBaseModel): offset_ms: int duration_ms: int start_time_ms: int - end_time_ms: int + end_time_ms: typing.Optional[int] = None order: str track_id: str created_at_ms: int @@ -97,8 +97,7 @@ class ProjectExtendedResponseModelAssetsItem_Audio(UncheckedBaseModel): fade_out_ms: typing.Optional[int] = None source_external_audio_id: typing.Optional[str] = None source_asset_id: typing.Optional[str] = None - pending_block_ids: typing.List[str] - pending_external_audio_ids: typing.List[str] + source_platform_asset_id: typing.Optional[str] = None pending_blocks_metadata: typing.Optional[PendingBlocksMetadataModel] = None pending_external_audios_metadata: typing.Optional[PendingExternalAudiosMetadataModel] = None speech_imported: typing.Optional[bool] = None @@ -124,8 +123,8 @@ class ProjectExtendedResponseModelAssetsItem_Image(UncheckedBaseModel): type: typing.Literal["image"] = "image" image_id: str filename: str - signed_url: str - thumbnail_signed_url: str + signed_url: typing.Optional[str] = None + thumbnail_signed_url: typing.Optional[str] = None source: typing.Optional[typing.Literal["upload"]] = None file_size_bytes: int width: int @@ -141,6 +140,10 @@ class ProjectExtendedResponseModelAssetsItem_Image(UncheckedBaseModel): updated_at_ms: int current_snapshot_id: typing.Optional[str] = None source_asset_id: typing.Optional[str] = None + source_platform_asset_id: typing.Optional[str] = None + error: typing.Optional[str] = None + pending_task: typing.Optional[PendingClipTask] = None + analysis: typing.Optional[ImageAnalysis] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/elevenlabs/types/project_external_audio_response_model.py b/src/elevenlabs/types/project_external_audio_response_model.py index c9bb69ad..b7fff0e3 100644 --- a/src/elevenlabs/types/project_external_audio_response_model.py +++ b/src/elevenlabs/types/project_external_audio_response_model.py @@ -20,7 +20,7 @@ class ProjectExternalAudioResponseModel(UncheckedBaseModel): offset_ms: int duration_ms: int start_time_ms: int - end_time_ms: int + end_time_ms: typing.Optional[int] = None order: str track_id: str created_at_ms: int @@ -31,8 +31,7 @@ class ProjectExternalAudioResponseModel(UncheckedBaseModel): fade_out_ms: typing.Optional[int] = None source_external_audio_id: typing.Optional[str] = None source_asset_id: typing.Optional[str] = None - pending_block_ids: typing.List[str] - pending_external_audio_ids: typing.List[str] + source_platform_asset_id: typing.Optional[str] = None pending_blocks_metadata: typing.Optional[PendingBlocksMetadataModel] = None pending_external_audios_metadata: typing.Optional[PendingExternalAudiosMetadataModel] = None speech_imported: typing.Optional[bool] = None diff --git a/src/elevenlabs/types/project_image_response_model.py b/src/elevenlabs/types/project_image_response_model.py index 184d92ce..feff4059 100644 --- a/src/elevenlabs/types/project_image_response_model.py +++ b/src/elevenlabs/types/project_image_response_model.py @@ -7,13 +7,15 @@ from ..core.unchecked_base_model import UncheckedBaseModel from .canvas_placement import CanvasPlacement from .clip_animation import ClipAnimation +from .image_analysis import ImageAnalysis +from .pending_clip_task import PendingClipTask class ProjectImageResponseModel(UncheckedBaseModel): image_id: str filename: str - signed_url: str - thumbnail_signed_url: str + signed_url: typing.Optional[str] = None + thumbnail_signed_url: typing.Optional[str] = None source: typing.Optional[typing.Literal["upload"]] = None file_size_bytes: int width: int @@ -29,6 +31,10 @@ class ProjectImageResponseModel(UncheckedBaseModel): updated_at_ms: int current_snapshot_id: typing.Optional[str] = None source_asset_id: typing.Optional[str] = None + source_platform_asset_id: typing.Optional[str] = None + error: typing.Optional[str] = None + pending_task: typing.Optional[PendingClipTask] = None + analysis: typing.Optional[ImageAnalysis] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/elevenlabs/types/project_video_response_model.py b/src/elevenlabs/types/project_video_response_model.py index 94f9f546..154f8533 100644 --- a/src/elevenlabs/types/project_video_response_model.py +++ b/src/elevenlabs/types/project_video_response_model.py @@ -38,14 +38,13 @@ class ProjectVideoResponseModel(UncheckedBaseModel): thumbnail_size: typing.List[int] thumbnail_sheets: typing.List[ProjectVideoThumbnailSheetResponseModel] start_time_ms: int - end_time_ms: int + end_time_ms: typing.Optional[int] = None asset_preview_signed_url: typing.Optional[str] = None source_video_id: typing.Optional[str] = None source_asset_id: typing.Optional[str] = None + source_platform_asset_id: typing.Optional[str] = None pending_blocks_metadata: typing.Optional[PendingBlocksMetadataModel] = None pending_external_audios_metadata: typing.Optional[PendingExternalAudiosMetadataModel] = None - pending_block_ids: typing.List[str] - pending_external_audio_ids: typing.List[str] speech_imported: typing.Optional[bool] = None pending_task: typing.Optional[PendingClipTask] = None audio_track_ready: typing.Optional[bool] = None diff --git a/src/elevenlabs/types/register_for_group_session_params.py b/src/elevenlabs/types/register_for_group_session_params.py new file mode 100644 index 00000000..7a4ab061 --- /dev/null +++ b/src/elevenlabs/types/register_for_group_session_params.py @@ -0,0 +1,24 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +from ..core.unchecked_base_model import UncheckedBaseModel + + +class RegisterForGroupSessionParams(UncheckedBaseModel): + """ + Register a client for a scheduled group session. + """ + + smb_tool_type: typing.Optional[typing.Literal["register_for_group_session"]] = None + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/elevenlabs/types/resource_access_info.py b/src/elevenlabs/types/resource_access_info.py index 2bfdead5..44d81d93 100644 --- a/src/elevenlabs/types/resource_access_info.py +++ b/src/elevenlabs/types/resource_access_info.py @@ -5,6 +5,7 @@ import pydantic from ..core.pydantic_utilities import IS_PYDANTIC_V2 from ..core.unchecked_base_model import UncheckedBaseModel +from .resource_access_info_anonymous_access_level_override import ResourceAccessInfoAnonymousAccessLevelOverride from .resource_access_info_role import ResourceAccessInfoRole @@ -29,6 +30,13 @@ class ResourceAccessInfo(UncheckedBaseModel): The role of the user making the request """ + anonymous_access_level_override: typing.Optional[ResourceAccessInfoAnonymousAccessLevelOverride] = pydantic.Field( + default=None + ) + """ + The access level for anonymous users. If None, the resource is not shared publicly. + """ + if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 else: diff --git a/src/elevenlabs/types/resource_access_info_anonymous_access_level_override.py b/src/elevenlabs/types/resource_access_info_anonymous_access_level_override.py new file mode 100644 index 00000000..0198d8f9 --- /dev/null +++ b/src/elevenlabs/types/resource_access_info_anonymous_access_level_override.py @@ -0,0 +1,7 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +ResourceAccessInfoAnonymousAccessLevelOverride = typing.Union[ + typing.Literal["admin", "editor", "commenter", "viewer"], typing.Any +] diff --git a/src/elevenlabs/types/review_response_model.py b/src/elevenlabs/types/review_response_model.py index 86c57e34..86dfb9e2 100644 --- a/src/elevenlabs/types/review_response_model.py +++ b/src/elevenlabs/types/review_response_model.py @@ -16,6 +16,7 @@ class ReviewResponseModel(UncheckedBaseModel): reject_reasons: typing.Optional[typing.List[ReviewResponseModelRejectReasonsItem]] = None scores_breakdown: typing.Optional[typing.Dict[str, typing.Optional[int]]] = None rejected_details: typing.Optional[str] = None + explanation: typing.Optional[str] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/elevenlabs/types/schedule_group_session_params.py b/src/elevenlabs/types/schedule_group_session_params.py new file mode 100644 index 00000000..161247f5 --- /dev/null +++ b/src/elevenlabs/types/schedule_group_session_params.py @@ -0,0 +1,29 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +from ..core.unchecked_base_model import UncheckedBaseModel + + +class ScheduleGroupSessionParams(UncheckedBaseModel): + """ + Schedule a single instance of a group service. + + The session's duration is derived from the parent service so the assistant + only has to pin start time, the (optional) instructor / room, and the + location. Participants register separately via + ``register_for_group_session``. + """ + + smb_tool_type: typing.Optional[typing.Literal["schedule_group_session"]] = None + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/elevenlabs/types/severity_id.py b/src/elevenlabs/types/severity_id.py new file mode 100644 index 00000000..c3a8cd0e --- /dev/null +++ b/src/elevenlabs/types/severity_id.py @@ -0,0 +1,3 @@ +# This file was auto-generated by Fern from our API Definition. + +SeverityId = int diff --git a/src/elevenlabs/types/simulation_test_model.py b/src/elevenlabs/types/simulation_test_model.py index b43edb69..001a14c0 100644 --- a/src/elevenlabs/types/simulation_test_model.py +++ b/src/elevenlabs/types/simulation_test_model.py @@ -9,6 +9,7 @@ from ..core.unchecked_base_model import UncheckedBaseModel from .conversation_history_transcript_common_model_output import ConversationHistoryTranscriptCommonModelOutput from .dynamic_variable_value_type_output import DynamicVariableValueTypeOutput +from .llm import Llm from .simulation_tool_mock_behavior_config import SimulationToolMockBehaviorConfig from .test_from_conversation_metadata_output import TestFromConversationMetadataOutput @@ -52,6 +53,16 @@ class SimulationTestModel(UncheckedBaseModel): Configuration for which tools to mock and fallback behavior. """ + evaluation_model: typing.Optional[Llm] = pydantic.Field(default=None) + """ + LLM model to use for evaluating simulation results. Defaults to Claude Sonnet 4.6. + """ + + simulated_user_model: typing.Optional[Llm] = pydantic.Field(default=None) + """ + LLM model for the simulated user. Defaults to Claude Sonnet 4.6. + """ + if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 else: diff --git a/src/elevenlabs/types/sip_log_message.py b/src/elevenlabs/types/sip_log_message.py new file mode 100644 index 00000000..0094322b --- /dev/null +++ b/src/elevenlabs/types/sip_log_message.py @@ -0,0 +1,29 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +from ..core.unchecked_base_model import UncheckedBaseModel +from .sip_log_message_direction import SipLogMessageDirection + + +class SipLogMessage(UncheckedBaseModel): + call_id: str + phone_numbers: typing.List[str] + local_address: str + remote_address: str + transport: str + raw_message: str + error_message: str + direction: SipLogMessageDirection + created_at_unix_micro: int + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/elevenlabs/types/sip_log_message_direction.py b/src/elevenlabs/types/sip_log_message_direction.py new file mode 100644 index 00000000..f246ce8f --- /dev/null +++ b/src/elevenlabs/types/sip_log_message_direction.py @@ -0,0 +1,5 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +SipLogMessageDirection = typing.Union[typing.Literal["in", "out"], typing.Any] diff --git a/src/elevenlabs/types/sms_conversation_info.py b/src/elevenlabs/types/sms_conversation_info.py new file mode 100644 index 00000000..258bab7f --- /dev/null +++ b/src/elevenlabs/types/sms_conversation_info.py @@ -0,0 +1,24 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +from ..core.unchecked_base_model import UncheckedBaseModel +from .sms_conversation_info_direction import SmsConversationInfoDirection + + +class SmsConversationInfo(UncheckedBaseModel): + direction: SmsConversationInfoDirection + phone_number_id: typing.Optional[str] = None + sms_user_phone_number: str + agent_phone_number: typing.Optional[str] = None + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/elevenlabs/types/sms_conversation_info_direction.py b/src/elevenlabs/types/sms_conversation_info_direction.py new file mode 100644 index 00000000..ea6b8b6d --- /dev/null +++ b/src/elevenlabs/types/sms_conversation_info_direction.py @@ -0,0 +1,5 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +SmsConversationInfoDirection = typing.Union[typing.Literal["inbound", "outbound"], typing.Any] diff --git a/src/elevenlabs/types/speech_engine_config.py b/src/elevenlabs/types/speech_engine_config.py new file mode 100644 index 00000000..3ed5a0bf --- /dev/null +++ b/src/elevenlabs/types/speech_engine_config.py @@ -0,0 +1,31 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +from ..core.unchecked_base_model import UncheckedBaseModel +from .speech_engine_config_request_headers_value import SpeechEngineConfigRequestHeadersValue + + +class SpeechEngineConfig(UncheckedBaseModel): + ws_url: str = pydantic.Field() + """ + The WebSocket URL for the transcript server + """ + + request_headers: typing.Optional[typing.Dict[str, SpeechEngineConfigRequestHeadersValue]] = pydantic.Field( + default=None + ) + """ + Headers to include in the WebSocket connection request + """ + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/elevenlabs/types/speech_engine_config_request_headers_value.py b/src/elevenlabs/types/speech_engine_config_request_headers_value.py new file mode 100644 index 00000000..483ba0ed --- /dev/null +++ b/src/elevenlabs/types/speech_engine_config_request_headers_value.py @@ -0,0 +1,8 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +from .conv_ai_dynamic_variable import ConvAiDynamicVariable +from .conv_ai_secret_locator import ConvAiSecretLocator + +SpeechEngineConfigRequestHeadersValue = typing.Union[str, ConvAiSecretLocator, ConvAiDynamicVariable] diff --git a/src/elevenlabs/types/status_id.py b/src/elevenlabs/types/status_id.py new file mode 100644 index 00000000..f060a45c --- /dev/null +++ b/src/elevenlabs/types/status_id.py @@ -0,0 +1,3 @@ +# This file was auto-generated by Fern from our API Definition. + +StatusId = int diff --git a/src/elevenlabs/types/subscription.py b/src/elevenlabs/types/subscription.py index 61eae19d..c0898ec1 100644 --- a/src/elevenlabs/types/subscription.py +++ b/src/elevenlabs/types/subscription.py @@ -13,6 +13,7 @@ ) from .extended_subscription_response_model_pending_change import ExtendedSubscriptionResponseModelPendingChange from .invoice_response import InvoiceResponse +from .price import Price from .subscription_status_type import SubscriptionStatusType @@ -107,6 +108,11 @@ class Subscription(UncheckedBaseModel): The currency of the user's subscription. """ + current_overage: Price = pydantic.Field() + """ + The current usage-based overage cost. + """ + status: SubscriptionStatusType = pydantic.Field() """ The status of the user's subscription. diff --git a/src/elevenlabs/types/subscription_response.py b/src/elevenlabs/types/subscription_response.py index 19ef2312..f5479513 100644 --- a/src/elevenlabs/types/subscription_response.py +++ b/src/elevenlabs/types/subscription_response.py @@ -8,6 +8,7 @@ from .billing_period import BillingPeriod from .character_refresh_period import CharacterRefreshPeriod from .currency import Currency +from .price import Price from .subscription_response_model_max_credit_limit_extension import SubscriptionResponseModelMaxCreditLimitExtension from .subscription_status_type import SubscriptionStatusType @@ -103,6 +104,11 @@ class SubscriptionResponse(UncheckedBaseModel): The currency of the user's subscription. """ + current_overage: Price = pydantic.Field() + """ + The current usage-based overage cost. + """ + status: SubscriptionStatusType = pydantic.Field() """ The status of the user's subscription. diff --git a/src/elevenlabs/types/system_tool_config_input_params.py b/src/elevenlabs/types/system_tool_config_input_params.py index efeeaf30..4c074b48 100644 --- a/src/elevenlabs/types/system_tool_config_input_params.py +++ b/src/elevenlabs/types/system_tool_config_input_params.py @@ -25,6 +25,19 @@ class Config: extra = pydantic.Extra.allow +class SystemToolConfigInputParams_KnowledgeBaseRag(UncheckedBaseModel): + system_tool_type: typing.Literal["knowledge_base_rag"] = "knowledge_base_rag" + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow + + class SystemToolConfigInputParams_LanguageDetection(UncheckedBaseModel): system_tool_type: typing.Literal["language_detection"] = "language_detection" @@ -112,6 +125,7 @@ class Config: SystemToolConfigInputParams = typing_extensions.Annotated[ typing.Union[ SystemToolConfigInputParams_EndCall, + SystemToolConfigInputParams_KnowledgeBaseRag, SystemToolConfigInputParams_LanguageDetection, SystemToolConfigInputParams_PlayKeypadTouchTone, SystemToolConfigInputParams_SkipTurn, diff --git a/src/elevenlabs/types/system_tool_config_output_params.py b/src/elevenlabs/types/system_tool_config_output_params.py index 90cbd91f..14080047 100644 --- a/src/elevenlabs/types/system_tool_config_output_params.py +++ b/src/elevenlabs/types/system_tool_config_output_params.py @@ -25,6 +25,19 @@ class Config: extra = pydantic.Extra.allow +class SystemToolConfigOutputParams_KnowledgeBaseRag(UncheckedBaseModel): + system_tool_type: typing.Literal["knowledge_base_rag"] = "knowledge_base_rag" + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow + + class SystemToolConfigOutputParams_LanguageDetection(UncheckedBaseModel): system_tool_type: typing.Literal["language_detection"] = "language_detection" @@ -112,6 +125,7 @@ class Config: SystemToolConfigOutputParams = typing_extensions.Annotated[ typing.Union[ SystemToolConfigOutputParams_EndCall, + SystemToolConfigOutputParams_KnowledgeBaseRag, SystemToolConfigOutputParams_LanguageDetection, SystemToolConfigOutputParams_PlayKeypadTouchTone, SystemToolConfigOutputParams_SkipTurn, diff --git a/src/elevenlabs/types/unit_test_run_response_model_test_info.py b/src/elevenlabs/types/unit_test_run_response_model_test_info.py index 01694977..7d80df9b 100644 --- a/src/elevenlabs/types/unit_test_run_response_model_test_info.py +++ b/src/elevenlabs/types/unit_test_run_response_model_test_info.py @@ -12,6 +12,7 @@ from .agent_successful_response_example import AgentSuccessfulResponseExample from .conversation_history_transcript_common_model_output import ConversationHistoryTranscriptCommonModelOutput from .dynamic_variable_value_type_output import DynamicVariableValueTypeOutput +from .llm import Llm from .simulation_tool_mock_behavior_config import SimulationToolMockBehaviorConfig from .test_from_conversation_metadata_output import TestFromConversationMetadataOutput from .unit_test_tool_call_evaluation_model_output import UnitTestToolCallEvaluationModelOutput @@ -46,6 +47,8 @@ class UnitTestRunResponseModelTestInfo_Simulation(UncheckedBaseModel): simulation_max_turns: typing.Optional[int] = None simulation_environment: typing.Optional[str] = None tool_mock_config: typing.Optional[SimulationToolMockBehaviorConfig] = None + evaluation_model: typing.Optional[Llm] = None + simulated_user_model: typing.Optional[Llm] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/elevenlabs/types/update_group_session_seats_params.py b/src/elevenlabs/types/update_group_session_seats_params.py new file mode 100644 index 00000000..2fc4cda0 --- /dev/null +++ b/src/elevenlabs/types/update_group_session_seats_params.py @@ -0,0 +1,24 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +from ..core.unchecked_base_model import UncheckedBaseModel + + +class UpdateGroupSessionSeatsParams(UncheckedBaseModel): + """ + Change the seat count of an existing group session registration. + """ + + smb_tool_type: typing.Optional[typing.Literal["update_group_session_seats"]] = None + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/elevenlabs/types/update_simulation_test_request.py b/src/elevenlabs/types/update_simulation_test_request.py index fd1bd2ad..5a207bad 100644 --- a/src/elevenlabs/types/update_simulation_test_request.py +++ b/src/elevenlabs/types/update_simulation_test_request.py @@ -9,6 +9,7 @@ from ..core.unchecked_base_model import UncheckedBaseModel from .conversation_history_transcript_common_model_input import ConversationHistoryTranscriptCommonModelInput from .dynamic_variable_value_type_input import DynamicVariableValueTypeInput +from .llm import Llm from .simulation_tool_mock_behavior_config import SimulationToolMockBehaviorConfig from .test_from_conversation_metadata_input import TestFromConversationMetadataInput @@ -52,6 +53,16 @@ class UpdateSimulationTestRequest(UncheckedBaseModel): Configuration for which tools to mock and fallback behavior. """ + evaluation_model: typing.Optional[Llm] = pydantic.Field(default=None) + """ + LLM model to use for evaluating simulation results. Defaults to Claude Sonnet 4.6. + """ + + simulated_user_model: typing.Optional[Llm] = pydantic.Field(default=None) + """ + LLM model for the simulated user. Defaults to Claude Sonnet 4.6. + """ + name: str parent_folder_id: typing.Optional[str] = pydantic.Field(default=None) """ diff --git a/src/elevenlabs/types/url_model.py b/src/elevenlabs/types/url_model.py new file mode 100644 index 00000000..1060023c --- /dev/null +++ b/src/elevenlabs/types/url_model.py @@ -0,0 +1,54 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +from ..core.unchecked_base_model import UncheckedBaseModel + + +class UrlModel(UncheckedBaseModel): + """ + OCSF URL object. + + Spec: https://schema.ocsf.io/1.6.0/objects/url + """ + + url_string: typing.Optional[str] = pydantic.Field(default=None) + """ + Full URL string + """ + + scheme: typing.Optional[str] = pydantic.Field(default=None) + """ + URL scheme (e.g., https) + """ + + hostname: typing.Optional[str] = pydantic.Field(default=None) + """ + URL hostname + """ + + port: typing.Optional[int] = pydantic.Field(default=None) + """ + URL port + """ + + path: typing.Optional[str] = pydantic.Field(default=None) + """ + URL path + """ + + query_string: typing.Optional[str] = pydantic.Field(default=None) + """ + URL query string + """ + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/elevenlabs/types/user_access_management_activity_id.py b/src/elevenlabs/types/user_access_management_activity_id.py new file mode 100644 index 00000000..9cf52f30 --- /dev/null +++ b/src/elevenlabs/types/user_access_management_activity_id.py @@ -0,0 +1,3 @@ +# This file was auto-generated by Fern from our API Definition. + +UserAccessManagementActivityId = int diff --git a/src/elevenlabs/types/user_model.py b/src/elevenlabs/types/user_model.py new file mode 100644 index 00000000..9849cb57 --- /dev/null +++ b/src/elevenlabs/types/user_model.py @@ -0,0 +1,60 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +from ..core.unchecked_base_model import UncheckedBaseModel +from .user_type_id import UserTypeId + + +class UserModel(UncheckedBaseModel): + """ + OCSF User object. + + Spec: https://schema.ocsf.io/1.6.0/objects/user + """ + + name: typing.Optional[str] = pydantic.Field(default=None) + """ + Username + """ + + uid: typing.Optional[str] = pydantic.Field(default=None) + """ + Unique user identifier + """ + + type_id: typing.Optional[UserTypeId] = pydantic.Field(default=None) + """ + Account type identifier + """ + + type: typing.Optional[str] = pydantic.Field(default=None) + """ + Account type description + """ + + email_addr: typing.Optional[str] = pydantic.Field(default=None) + """ + User email address + """ + + full_name: typing.Optional[str] = pydantic.Field(default=None) + """ + Full name of the user + """ + + domain: typing.Optional[str] = pydantic.Field(default=None) + """ + User's domain + """ + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/elevenlabs/types/user_type_id.py b/src/elevenlabs/types/user_type_id.py new file mode 100644 index 00000000..0891b82c --- /dev/null +++ b/src/elevenlabs/types/user_type_id.py @@ -0,0 +1,3 @@ +# This file was auto-generated by Fern from our API Definition. + +UserTypeId = int diff --git a/src/elevenlabs/types/webhook_transcript_format.py b/src/elevenlabs/types/webhook_transcript_format.py new file mode 100644 index 00000000..2263caf8 --- /dev/null +++ b/src/elevenlabs/types/webhook_transcript_format.py @@ -0,0 +1,5 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +WebhookTranscriptFormat = typing.Union[typing.Literal["json", "opentelemetry"], typing.Any] diff --git a/src/elevenlabs/types/widget_config_response.py b/src/elevenlabs/types/widget_config_response.py index 409260fa..5f67d408 100644 --- a/src/elevenlabs/types/widget_config_response.py +++ b/src/elevenlabs/types/widget_config_response.py @@ -7,6 +7,7 @@ from ..core.unchecked_base_model import UncheckedBaseModel from .allowlist_item import AllowlistItem from .embed_variant import EmbedVariant +from .file_input_config import FileInputConfig from .widget_config_response_model_avatar import WidgetConfigResponseModelAvatar from .widget_config_response_model_syntax_highlight_theme import WidgetConfigResponseModelSyntaxHighlightTheme from .widget_end_feedback_config import WidgetEndFeedbackConfig @@ -264,6 +265,11 @@ class WidgetConfigResponse(UncheckedBaseModel): Whether to use WebRTC for conversation connections """ + file_input_config: typing.Optional[FileInputConfig] = pydantic.Field(default=None) + """ + Configuration for file upload in the widget + """ + if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 else: diff --git a/src/elevenlabs/types/workspace_audit_log_entry_response.py b/src/elevenlabs/types/workspace_audit_log_entry_response.py new file mode 100644 index 00000000..d8ca003e --- /dev/null +++ b/src/elevenlabs/types/workspace_audit_log_entry_response.py @@ -0,0 +1,123 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +from ..core.unchecked_base_model import UncheckedBaseModel +from .actor_model import ActorModel +from .device_model import DeviceModel +from .http_request_model import HttpRequestModel +from .severity_id import SeverityId +from .status_id import StatusId +from .workspace_audit_log_entry_response_activity_id import WorkspaceAuditLogEntryResponseActivityId + + +class WorkspaceAuditLogEntryResponse(UncheckedBaseModel): + """ + Audit log entry with Firestore document ID for API responses. + """ + + metadata: typing.Optional[typing.Dict[str, typing.Any]] = pydantic.Field(default=None) + """ + Event metadata + """ + + time: typing.Optional[int] = pydantic.Field(default=None) + """ + Event time in milliseconds since epoch + """ + + activity_id: WorkspaceAuditLogEntryResponseActivityId = pydantic.Field() + """ + Activity ID + """ + + activity_name: str = pydantic.Field() + """ + Activity name + """ + + category_name: typing.Optional[str] = pydantic.Field(default=None) + """ + Event category + """ + + category_uid: typing.Optional[int] = pydantic.Field(default=None) + """ + Category UID for IAM + """ + + class_name: typing.Optional[str] = pydantic.Field(default=None) + """ + Event class name + """ + + class_uid: typing.Optional[int] = pydantic.Field(default=None) + """ + Event class UID + """ + + severity_id: typing.Optional[SeverityId] = pydantic.Field(default=None) + """ + Severity level + """ + + status_id: StatusId = pydantic.Field() + """ + Status of the action + """ + + actor: ActorModel = pydantic.Field() + """ + Actor performing the action + """ + + device: typing.Optional[DeviceModel] = pydantic.Field(default=None) + """ + Device information + """ + + http_request: typing.Optional[HttpRequestModel] = pydantic.Field(default=None) + """ + HTTP request details + """ + + message: str = pydantic.Field() + """ + Human-readable event description + """ + + unmapped: typing.Optional[typing.Dict[str, typing.Any]] = pydantic.Field(default=None) + """ + Attributes not mapped to OCSF + """ + + id: str = pydantic.Field() + """ + Firestore document ID + """ + + time_dt: typing.Optional[str] = pydantic.Field(default=None) + """ + Event time in human-readable RFC 3339 format, derived from 'time'. + """ + + type_uid: typing.Optional[int] = pydantic.Field(default=None) + """ + OCSF type_uid is class_uid * 100 + activity_id. + """ + + type_name: typing.Optional[str] = pydantic.Field(default=None) + """ + OCSF type_name combines class_name and activity_name. + """ + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/elevenlabs/types/workspace_audit_log_entry_response_activity_id.py b/src/elevenlabs/types/workspace_audit_log_entry_response_activity_id.py new file mode 100644 index 00000000..d1778932 --- /dev/null +++ b/src/elevenlabs/types/workspace_audit_log_entry_response_activity_id.py @@ -0,0 +1,17 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +from .account_change_activity_id import AccountChangeActivityId +from .authentication_activity_id import AuthenticationActivityId +from .entity_management_activity_id import EntityManagementActivityId +from .group_management_activity_id import GroupManagementActivityId +from .user_access_management_activity_id import UserAccessManagementActivityId + +WorkspaceAuditLogEntryResponseActivityId = typing.Union[ + AccountChangeActivityId, + AuthenticationActivityId, + EntityManagementActivityId, + UserAccessManagementActivityId, + GroupManagementActivityId, +] diff --git a/src/elevenlabs/types/workspace_audit_logs_page_response.py b/src/elevenlabs/types/workspace_audit_logs_page_response.py new file mode 100644 index 00000000..fd61c9a1 --- /dev/null +++ b/src/elevenlabs/types/workspace_audit_logs_page_response.py @@ -0,0 +1,27 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +from ..core.unchecked_base_model import UncheckedBaseModel +from .workspace_audit_log_entry_response import WorkspaceAuditLogEntryResponse + + +class WorkspaceAuditLogsPageResponse(UncheckedBaseModel): + """ + Paginated workspace audit log response. + """ + + entries: typing.List[WorkspaceAuditLogEntryResponse] + has_more: bool + next_cursor: typing.Optional[str] = None + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/elevenlabs/types/workspace_group_response_model.py b/src/elevenlabs/types/workspace_group_response_model.py index f0d10d06..b0e0a992 100644 --- a/src/elevenlabs/types/workspace_group_response_model.py +++ b/src/elevenlabs/types/workspace_group_response_model.py @@ -19,6 +19,7 @@ class WorkspaceGroupResponseModel(UncheckedBaseModel): group_pvc_limit: typing.Optional[WorkspaceGroupResponseModelGroupPvcLimit] = None character_count: typing.Optional[int] = None scim_external_id: typing.Optional[str] = None + is_scim_synced: typing.Optional[bool] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/elevenlabs/types/workspace_resource_type.py b/src/elevenlabs/types/workspace_resource_type.py index 4fd41477..8ded826e 100644 --- a/src/elevenlabs/types/workspace_resource_type.py +++ b/src/elevenlabs/types/workspace_resource_type.py @@ -40,6 +40,7 @@ "songs", "avatars", "avatar_video_generations", + "resource_collection", ], typing.Any, ] diff --git a/src/elevenlabs/voices/client.py b/src/elevenlabs/voices/client.py index c96f9cb4..9933585b 100644 --- a/src/elevenlabs/voices/client.py +++ b/src/elevenlabs/voices/client.py @@ -51,7 +51,7 @@ def get_all( self, *, show_legacy: typing.Optional[bool] = None, request_options: typing.Optional[RequestOptions] = None ) -> GetVoicesResponse: """ - Returns a list of all available voices for a user. + Returns a list of all available voices for a user. Stops working once the user's workspace exceeds 500 voices. Parameters ---------- @@ -160,6 +160,7 @@ def search( fine_tuning_state="fine_tuning_state", collection_id="collection_id", include_total_count=True, + voice_ids=["voice_ids"], ) """ _response = self._raw_client.search( @@ -473,6 +474,8 @@ def get_shared( language="language", locale="locale", search="search", + use_cases=["use_cases"], + descriptives=["descriptives"], featured=True, min_notice_period_days=1, include_custom_rates=True, @@ -610,7 +613,7 @@ async def get_all( self, *, show_legacy: typing.Optional[bool] = None, request_options: typing.Optional[RequestOptions] = None ) -> GetVoicesResponse: """ - Returns a list of all available voices for a user. + Returns a list of all available voices for a user. Stops working once the user's workspace exceeds 500 voices. Parameters ---------- @@ -732,6 +735,7 @@ async def main() -> None: fine_tuning_state="fine_tuning_state", collection_id="collection_id", include_total_count=True, + voice_ids=["voice_ids"], ) @@ -1085,6 +1089,8 @@ async def main() -> None: language="language", locale="locale", search="search", + use_cases=["use_cases"], + descriptives=["descriptives"], featured=True, min_notice_period_days=1, include_custom_rates=True, diff --git a/src/elevenlabs/voices/raw_client.py b/src/elevenlabs/voices/raw_client.py index 72935d33..34995eb1 100644 --- a/src/elevenlabs/voices/raw_client.py +++ b/src/elevenlabs/voices/raw_client.py @@ -33,7 +33,7 @@ def get_all( self, *, show_legacy: typing.Optional[bool] = None, request_options: typing.Optional[RequestOptions] = None ) -> HttpResponse[GetVoicesResponse]: """ - Returns a list of all available voices for a user. + Returns a list of all available voices for a user. Stops working once the user's workspace exceeds 500 voices. Parameters ---------- @@ -673,7 +673,7 @@ async def get_all( self, *, show_legacy: typing.Optional[bool] = None, request_options: typing.Optional[RequestOptions] = None ) -> AsyncHttpResponse[GetVoicesResponse]: """ - Returns a list of all available voices for a user. + Returns a list of all available voices for a user. Stops working once the user's workspace exceeds 500 voices. Parameters ---------- diff --git a/src/elevenlabs/workspace/__init__.py b/src/elevenlabs/workspace/__init__.py index 12a4335e..8d449464 100644 --- a/src/elevenlabs/workspace/__init__.py +++ b/src/elevenlabs/workspace/__init__.py @@ -7,7 +7,7 @@ if typing.TYPE_CHECKING: from .resources import BodyShareWorkspaceResourceV1WorkspaceResourcesResourceIdSharePostRole - from . import auth_connections, groups, invites, members, resources, usage + from . import audit_logs, auth_connections, groups, invites, members, resources, usage from .auth_connections import ( AuthConnectionsCreateRequestBody, AuthConnectionsCreateRequestBody_BasicAuth, @@ -18,6 +18,7 @@ AuthConnectionsCreateRequestBody_PrivateKeyJwt, AuthConnectionsCreateResponse, AuthConnectionsCreateResponse_ApiIntegrationOauth2AuthCode, + AuthConnectionsCreateResponse_ApiIntegrationOauth2CustomApp, AuthConnectionsCreateResponse_BasicAuth, AuthConnectionsCreateResponse_BearerAuth, AuthConnectionsCreateResponse_CustomHeaderAuth, @@ -38,6 +39,7 @@ "AuthConnectionsCreateRequestBody_PrivateKeyJwt": ".auth_connections", "AuthConnectionsCreateResponse": ".auth_connections", "AuthConnectionsCreateResponse_ApiIntegrationOauth2AuthCode": ".auth_connections", + "AuthConnectionsCreateResponse_ApiIntegrationOauth2CustomApp": ".auth_connections", "AuthConnectionsCreateResponse_BasicAuth": ".auth_connections", "AuthConnectionsCreateResponse_BearerAuth": ".auth_connections", "AuthConnectionsCreateResponse_CustomHeaderAuth": ".auth_connections", @@ -48,6 +50,7 @@ "AuthConnectionsCreateResponse_WhatsappAuth": ".auth_connections", "BodyGetWorkspaceUsageV1WorkspaceAnalyticsQueryUsageByProductOverTimePostGroupByItem": ".usage", "BodyShareWorkspaceResourceV1WorkspaceResourcesResourceIdSharePostRole": ".resources", + "audit_logs": ".audit_logs", "auth_connections": ".auth_connections", "groups": ".groups", "invites": ".invites", @@ -88,6 +91,7 @@ def __dir__(): "AuthConnectionsCreateRequestBody_PrivateKeyJwt", "AuthConnectionsCreateResponse", "AuthConnectionsCreateResponse_ApiIntegrationOauth2AuthCode", + "AuthConnectionsCreateResponse_ApiIntegrationOauth2CustomApp", "AuthConnectionsCreateResponse_BasicAuth", "AuthConnectionsCreateResponse_BearerAuth", "AuthConnectionsCreateResponse_CustomHeaderAuth", @@ -98,6 +102,7 @@ def __dir__(): "AuthConnectionsCreateResponse_WhatsappAuth", "BodyGetWorkspaceUsageV1WorkspaceAnalyticsQueryUsageByProductOverTimePostGroupByItem", "BodyShareWorkspaceResourceV1WorkspaceResourcesResourceIdSharePostRole", + "audit_logs", "auth_connections", "groups", "invites", diff --git a/src/elevenlabs/workspace/audit_logs/__init__.py b/src/elevenlabs/workspace/audit_logs/__init__.py new file mode 100644 index 00000000..5cde0202 --- /dev/null +++ b/src/elevenlabs/workspace/audit_logs/__init__.py @@ -0,0 +1,4 @@ +# This file was auto-generated by Fern from our API Definition. + +# isort: skip_file + diff --git a/src/elevenlabs/workspace/audit_logs/client.py b/src/elevenlabs/workspace/audit_logs/client.py new file mode 100644 index 00000000..8bb7bc76 --- /dev/null +++ b/src/elevenlabs/workspace/audit_logs/client.py @@ -0,0 +1,198 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +from ...core.client_wrapper import AsyncClientWrapper, SyncClientWrapper +from ...core.request_options import RequestOptions +from ...types.workspace_audit_logs_page_response import WorkspaceAuditLogsPageResponse +from .raw_client import AsyncRawAuditLogsClient, RawAuditLogsClient + + +class AuditLogsClient: + def __init__(self, *, client_wrapper: SyncClientWrapper): + self._raw_client = RawAuditLogsClient(client_wrapper=client_wrapper) + + @property + def with_raw_response(self) -> RawAuditLogsClient: + """ + Retrieves a raw implementation of this client that returns raw responses. + + Returns + ------- + RawAuditLogsClient + """ + return self._raw_client + + def list( + self, + *, + limit: typing.Optional[int] = None, + cursor: typing.Optional[str] = None, + time_from_unix_ms: typing.Optional[int] = None, + time_to_unix_ms: typing.Optional[int] = None, + actor_uid: typing.Optional[str] = None, + class_name: typing.Optional[str] = None, + activity_name: typing.Optional[str] = None, + request_options: typing.Optional[RequestOptions] = None, + ) -> WorkspaceAuditLogsPageResponse: + """ + Returns the audit log for the workspace. Requires enterprise tier and the audit_log_read permission. + + Parameters + ---------- + limit : typing.Optional[int] + Maximum number of entries per page + + cursor : typing.Optional[str] + Cursor for the next page (from previous response) + + time_from_unix_ms : typing.Optional[int] + Only include entries at or after this time (ms since epoch) + + time_to_unix_ms : typing.Optional[int] + Only include entries at or before this time (ms since epoch) + + actor_uid : typing.Optional[str] + Filter by actor user ID + + class_name : typing.Optional[str] + Filter by OCSF event class name (e.g. Account Change) + + activity_name : typing.Optional[str] + Filter by audit activity name (e.g. Subscription Creation) + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + WorkspaceAuditLogsPageResponse + Successful Response + + Examples + -------- + from elevenlabs import ElevenLabs + + client = ElevenLabs( + api_key="YOUR_API_KEY", + ) + client.workspace.audit_logs.list( + limit=1, + cursor="cursor", + time_from_unix_ms=1, + time_to_unix_ms=1, + actor_uid="actor_uid", + class_name="class_name", + activity_name="activity_name", + ) + """ + _response = self._raw_client.list( + limit=limit, + cursor=cursor, + time_from_unix_ms=time_from_unix_ms, + time_to_unix_ms=time_to_unix_ms, + actor_uid=actor_uid, + class_name=class_name, + activity_name=activity_name, + request_options=request_options, + ) + return _response.data + + +class AsyncAuditLogsClient: + def __init__(self, *, client_wrapper: AsyncClientWrapper): + self._raw_client = AsyncRawAuditLogsClient(client_wrapper=client_wrapper) + + @property + def with_raw_response(self) -> AsyncRawAuditLogsClient: + """ + Retrieves a raw implementation of this client that returns raw responses. + + Returns + ------- + AsyncRawAuditLogsClient + """ + return self._raw_client + + async def list( + self, + *, + limit: typing.Optional[int] = None, + cursor: typing.Optional[str] = None, + time_from_unix_ms: typing.Optional[int] = None, + time_to_unix_ms: typing.Optional[int] = None, + actor_uid: typing.Optional[str] = None, + class_name: typing.Optional[str] = None, + activity_name: typing.Optional[str] = None, + request_options: typing.Optional[RequestOptions] = None, + ) -> WorkspaceAuditLogsPageResponse: + """ + Returns the audit log for the workspace. Requires enterprise tier and the audit_log_read permission. + + Parameters + ---------- + limit : typing.Optional[int] + Maximum number of entries per page + + cursor : typing.Optional[str] + Cursor for the next page (from previous response) + + time_from_unix_ms : typing.Optional[int] + Only include entries at or after this time (ms since epoch) + + time_to_unix_ms : typing.Optional[int] + Only include entries at or before this time (ms since epoch) + + actor_uid : typing.Optional[str] + Filter by actor user ID + + class_name : typing.Optional[str] + Filter by OCSF event class name (e.g. Account Change) + + activity_name : typing.Optional[str] + Filter by audit activity name (e.g. Subscription Creation) + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + WorkspaceAuditLogsPageResponse + Successful Response + + Examples + -------- + import asyncio + + from elevenlabs import AsyncElevenLabs + + client = AsyncElevenLabs( + api_key="YOUR_API_KEY", + ) + + + async def main() -> None: + await client.workspace.audit_logs.list( + limit=1, + cursor="cursor", + time_from_unix_ms=1, + time_to_unix_ms=1, + actor_uid="actor_uid", + class_name="class_name", + activity_name="activity_name", + ) + + + asyncio.run(main()) + """ + _response = await self._raw_client.list( + limit=limit, + cursor=cursor, + time_from_unix_ms=time_from_unix_ms, + time_to_unix_ms=time_to_unix_ms, + actor_uid=actor_uid, + class_name=class_name, + activity_name=activity_name, + request_options=request_options, + ) + return _response.data diff --git a/src/elevenlabs/workspace/audit_logs/raw_client.py b/src/elevenlabs/workspace/audit_logs/raw_client.py new file mode 100644 index 00000000..92dd9630 --- /dev/null +++ b/src/elevenlabs/workspace/audit_logs/raw_client.py @@ -0,0 +1,194 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing +from json.decoder import JSONDecodeError + +from ...core.api_error import ApiError +from ...core.client_wrapper import AsyncClientWrapper, SyncClientWrapper +from ...core.http_response import AsyncHttpResponse, HttpResponse +from ...core.request_options import RequestOptions +from ...core.unchecked_base_model import construct_type +from ...errors.unprocessable_entity_error import UnprocessableEntityError +from ...types.workspace_audit_logs_page_response import WorkspaceAuditLogsPageResponse + + +class RawAuditLogsClient: + def __init__(self, *, client_wrapper: SyncClientWrapper): + self._client_wrapper = client_wrapper + + def list( + self, + *, + limit: typing.Optional[int] = None, + cursor: typing.Optional[str] = None, + time_from_unix_ms: typing.Optional[int] = None, + time_to_unix_ms: typing.Optional[int] = None, + actor_uid: typing.Optional[str] = None, + class_name: typing.Optional[str] = None, + activity_name: typing.Optional[str] = None, + request_options: typing.Optional[RequestOptions] = None, + ) -> HttpResponse[WorkspaceAuditLogsPageResponse]: + """ + Returns the audit log for the workspace. Requires enterprise tier and the audit_log_read permission. + + Parameters + ---------- + limit : typing.Optional[int] + Maximum number of entries per page + + cursor : typing.Optional[str] + Cursor for the next page (from previous response) + + time_from_unix_ms : typing.Optional[int] + Only include entries at or after this time (ms since epoch) + + time_to_unix_ms : typing.Optional[int] + Only include entries at or before this time (ms since epoch) + + actor_uid : typing.Optional[str] + Filter by actor user ID + + class_name : typing.Optional[str] + Filter by OCSF event class name (e.g. Account Change) + + activity_name : typing.Optional[str] + Filter by audit activity name (e.g. Subscription Creation) + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + HttpResponse[WorkspaceAuditLogsPageResponse] + Successful Response + """ + _response = self._client_wrapper.httpx_client.request( + "v1/workspace/audit-logs", + method="GET", + params={ + "limit": limit, + "cursor": cursor, + "time_from_unix_ms": time_from_unix_ms, + "time_to_unix_ms": time_to_unix_ms, + "actor_uid": actor_uid, + "class_name": class_name, + "activity_name": activity_name, + }, + request_options=request_options, + ) + try: + if 200 <= _response.status_code < 300: + _data = typing.cast( + WorkspaceAuditLogsPageResponse, + construct_type( + type_=WorkspaceAuditLogsPageResponse, # type: ignore + object_=_response.json(), + ), + ) + return HttpResponse(response=_response, data=_data) + if _response.status_code == 422: + raise UnprocessableEntityError( + headers=dict(_response.headers), + body=typing.cast( + typing.Any, + construct_type( + type_=typing.Any, # type: ignore + object_=_response.json(), + ), + ), + ) + _response_json = _response.json() + except JSONDecodeError: + raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) + raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) + + +class AsyncRawAuditLogsClient: + def __init__(self, *, client_wrapper: AsyncClientWrapper): + self._client_wrapper = client_wrapper + + async def list( + self, + *, + limit: typing.Optional[int] = None, + cursor: typing.Optional[str] = None, + time_from_unix_ms: typing.Optional[int] = None, + time_to_unix_ms: typing.Optional[int] = None, + actor_uid: typing.Optional[str] = None, + class_name: typing.Optional[str] = None, + activity_name: typing.Optional[str] = None, + request_options: typing.Optional[RequestOptions] = None, + ) -> AsyncHttpResponse[WorkspaceAuditLogsPageResponse]: + """ + Returns the audit log for the workspace. Requires enterprise tier and the audit_log_read permission. + + Parameters + ---------- + limit : typing.Optional[int] + Maximum number of entries per page + + cursor : typing.Optional[str] + Cursor for the next page (from previous response) + + time_from_unix_ms : typing.Optional[int] + Only include entries at or after this time (ms since epoch) + + time_to_unix_ms : typing.Optional[int] + Only include entries at or before this time (ms since epoch) + + actor_uid : typing.Optional[str] + Filter by actor user ID + + class_name : typing.Optional[str] + Filter by OCSF event class name (e.g. Account Change) + + activity_name : typing.Optional[str] + Filter by audit activity name (e.g. Subscription Creation) + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + AsyncHttpResponse[WorkspaceAuditLogsPageResponse] + Successful Response + """ + _response = await self._client_wrapper.httpx_client.request( + "v1/workspace/audit-logs", + method="GET", + params={ + "limit": limit, + "cursor": cursor, + "time_from_unix_ms": time_from_unix_ms, + "time_to_unix_ms": time_to_unix_ms, + "actor_uid": actor_uid, + "class_name": class_name, + "activity_name": activity_name, + }, + request_options=request_options, + ) + try: + if 200 <= _response.status_code < 300: + _data = typing.cast( + WorkspaceAuditLogsPageResponse, + construct_type( + type_=WorkspaceAuditLogsPageResponse, # type: ignore + object_=_response.json(), + ), + ) + return AsyncHttpResponse(response=_response, data=_data) + if _response.status_code == 422: + raise UnprocessableEntityError( + headers=dict(_response.headers), + body=typing.cast( + typing.Any, + construct_type( + type_=typing.Any, # type: ignore + object_=_response.json(), + ), + ), + ) + _response_json = _response.json() + except JSONDecodeError: + raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) + raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/elevenlabs/workspace/auth_connections/__init__.py b/src/elevenlabs/workspace/auth_connections/__init__.py index 66d5baab..53f6f3fe 100644 --- a/src/elevenlabs/workspace/auth_connections/__init__.py +++ b/src/elevenlabs/workspace/auth_connections/__init__.py @@ -16,6 +16,7 @@ AuthConnectionsCreateRequestBody_PrivateKeyJwt, AuthConnectionsCreateResponse, AuthConnectionsCreateResponse_ApiIntegrationOauth2AuthCode, + AuthConnectionsCreateResponse_ApiIntegrationOauth2CustomApp, AuthConnectionsCreateResponse_BasicAuth, AuthConnectionsCreateResponse_BearerAuth, AuthConnectionsCreateResponse_CustomHeaderAuth, @@ -35,6 +36,7 @@ "AuthConnectionsCreateRequestBody_PrivateKeyJwt": ".types", "AuthConnectionsCreateResponse": ".types", "AuthConnectionsCreateResponse_ApiIntegrationOauth2AuthCode": ".types", + "AuthConnectionsCreateResponse_ApiIntegrationOauth2CustomApp": ".types", "AuthConnectionsCreateResponse_BasicAuth": ".types", "AuthConnectionsCreateResponse_BearerAuth": ".types", "AuthConnectionsCreateResponse_CustomHeaderAuth": ".types", @@ -77,6 +79,7 @@ def __dir__(): "AuthConnectionsCreateRequestBody_PrivateKeyJwt", "AuthConnectionsCreateResponse", "AuthConnectionsCreateResponse_ApiIntegrationOauth2AuthCode", + "AuthConnectionsCreateResponse_ApiIntegrationOauth2CustomApp", "AuthConnectionsCreateResponse_BasicAuth", "AuthConnectionsCreateResponse_BearerAuth", "AuthConnectionsCreateResponse_CustomHeaderAuth", diff --git a/src/elevenlabs/workspace/auth_connections/types/__init__.py b/src/elevenlabs/workspace/auth_connections/types/__init__.py index 319816bc..11c6b694 100644 --- a/src/elevenlabs/workspace/auth_connections/types/__init__.py +++ b/src/elevenlabs/workspace/auth_connections/types/__init__.py @@ -18,6 +18,7 @@ from .auth_connections_create_response import ( AuthConnectionsCreateResponse, AuthConnectionsCreateResponse_ApiIntegrationOauth2AuthCode, + AuthConnectionsCreateResponse_ApiIntegrationOauth2CustomApp, AuthConnectionsCreateResponse_BasicAuth, AuthConnectionsCreateResponse_BearerAuth, AuthConnectionsCreateResponse_CustomHeaderAuth, @@ -37,6 +38,7 @@ "AuthConnectionsCreateRequestBody_PrivateKeyJwt": ".auth_connections_create_request_body", "AuthConnectionsCreateResponse": ".auth_connections_create_response", "AuthConnectionsCreateResponse_ApiIntegrationOauth2AuthCode": ".auth_connections_create_response", + "AuthConnectionsCreateResponse_ApiIntegrationOauth2CustomApp": ".auth_connections_create_response", "AuthConnectionsCreateResponse_BasicAuth": ".auth_connections_create_response", "AuthConnectionsCreateResponse_BearerAuth": ".auth_connections_create_response", "AuthConnectionsCreateResponse_CustomHeaderAuth": ".auth_connections_create_response", @@ -79,6 +81,7 @@ def __dir__(): "AuthConnectionsCreateRequestBody_PrivateKeyJwt", "AuthConnectionsCreateResponse", "AuthConnectionsCreateResponse_ApiIntegrationOauth2AuthCode", + "AuthConnectionsCreateResponse_ApiIntegrationOauth2CustomApp", "AuthConnectionsCreateResponse_BasicAuth", "AuthConnectionsCreateResponse_BearerAuth", "AuthConnectionsCreateResponse_CustomHeaderAuth", diff --git a/src/elevenlabs/workspace/auth_connections/types/auth_connections_create_request_body.py b/src/elevenlabs/workspace/auth_connections/types/auth_connections_create_request_body.py index 6c8bc6db..22e76904 100644 --- a/src/elevenlabs/workspace/auth_connections/types/auth_connections_create_request_body.py +++ b/src/elevenlabs/workspace/auth_connections/types/auth_connections_create_request_body.py @@ -9,6 +9,7 @@ from ....core.pydantic_utilities import IS_PYDANTIC_V2 from ....core.unchecked_base_model import UncheckedBaseModel, UnionMetadata from ....types.create_o_auth_2_jwt_request_algorithm import CreateOAuth2JwtRequestAlgorithm +from ....types.create_o_auth_2_jwt_request_token_response_field import CreateOAuth2JwtRequestTokenResponseField from ....types.create_private_key_jwt_request_algorithm import CreatePrivateKeyJwtRequestAlgorithm @@ -97,6 +98,7 @@ class AuthConnectionsCreateRequestBody_Oauth2Jwt(UncheckedBaseModel): extra_params: typing.Optional[typing.Dict[str, str]] = None token_url: str scopes: typing.Optional[typing.List[str]] = None + token_response_field: typing.Optional[CreateOAuth2JwtRequestTokenResponseField] = None secret_key: str if IS_PYDANTIC_V2: diff --git a/src/elevenlabs/workspace/auth_connections/types/auth_connections_create_response.py b/src/elevenlabs/workspace/auth_connections/types/auth_connections_create_response.py index 8cb84ae2..877763ff 100644 --- a/src/elevenlabs/workspace/auth_connections/types/auth_connections_create_response.py +++ b/src/elevenlabs/workspace/auth_connections/types/auth_connections_create_response.py @@ -11,8 +11,12 @@ from ....types.api_integration_o_auth_2_auth_code_response_scope_separator import ( ApiIntegrationOAuth2AuthCodeResponseScopeSeparator, ) +from ....types.api_integration_o_auth_2_custom_app_response_scope_separator import ( + ApiIntegrationOAuth2CustomAppResponseScopeSeparator, +) from ....types.auth_connection_dependencies import AuthConnectionDependencies from ....types.o_auth_2_jwt_response_algorithm import OAuth2JwtResponseAlgorithm +from ....types.o_auth_2_jwt_response_token_response_field import OAuth2JwtResponseTokenResponseField from ....types.o_auth_connection_status import OAuthConnectionStatus from ....types.private_key_jwt_response_algorithm import PrivateKeyJwtResponseAlgorithm @@ -103,6 +107,7 @@ class AuthConnectionsCreateResponse_Oauth2Jwt(UncheckedBaseModel): extra_params: typing.Optional[typing.Dict[str, str]] = None token_url: str scopes: typing.Optional[typing.List[str]] = None + token_response_field: typing.Optional[OAuth2JwtResponseTokenResponseField] = None id: str used_by: typing.Optional[AuthConnectionDependencies] = None @@ -217,6 +222,37 @@ class Config: extra = pydantic.Extra.allow +class AuthConnectionsCreateResponse_ApiIntegrationOauth2CustomApp(UncheckedBaseModel): + """ + The type of auth connection config + """ + + auth_type: typing.Literal["api_integration_oauth2_custom_app"] = "api_integration_oauth2_custom_app" + name: str + provider: str + token_url: str + scopes: typing.Optional[typing.List[str]] = None + scope_separator: typing.Optional[ApiIntegrationOAuth2CustomAppResponseScopeSeparator] = None + expires_at: str + integration_id: str + credential_id: str + status: typing.Optional[OAuthConnectionStatus] = None + status_detail: typing.Optional[str] = None + status_updated_at: typing.Optional[str] = None + client_id: str + id: str + used_by: typing.Optional[AuthConnectionDependencies] = None + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow + + class AuthConnectionsCreateResponse_WhatsappAuth(UncheckedBaseModel): """ The type of auth connection config @@ -249,6 +285,7 @@ class Config: AuthConnectionsCreateResponse_Mtls, AuthConnectionsCreateResponse_CustomHeaderAuth, AuthConnectionsCreateResponse_ApiIntegrationOauth2AuthCode, + AuthConnectionsCreateResponse_ApiIntegrationOauth2CustomApp, AuthConnectionsCreateResponse_WhatsappAuth, ], UnionMetadata(discriminant="auth_type"), diff --git a/src/elevenlabs/workspace/client.py b/src/elevenlabs/workspace/client.py index b0a873cf..3f772b2f 100644 --- a/src/elevenlabs/workspace/client.py +++ b/src/elevenlabs/workspace/client.py @@ -8,6 +8,7 @@ from .raw_client import AsyncRawWorkspaceClient, RawWorkspaceClient if typing.TYPE_CHECKING: + from .audit_logs.client import AsyncAuditLogsClient, AuditLogsClient from .auth_connections.client import AsyncAuthConnectionsClient, AuthConnectionsClient from .groups.client import AsyncGroupsClient, GroupsClient from .invites.client import AsyncInvitesClient, InvitesClient @@ -20,6 +21,7 @@ class WorkspaceClient: def __init__(self, *, client_wrapper: SyncClientWrapper): self._raw_client = RawWorkspaceClient(client_wrapper=client_wrapper) self._client_wrapper = client_wrapper + self._audit_logs: typing.Optional[AuditLogsClient] = None self._auth_connections: typing.Optional[AuthConnectionsClient] = None self._groups: typing.Optional[GroupsClient] = None self._invites: typing.Optional[InvitesClient] = None @@ -38,6 +40,14 @@ def with_raw_response(self) -> RawWorkspaceClient: """ return self._raw_client + @property + def audit_logs(self): + if self._audit_logs is None: + from .audit_logs.client import AuditLogsClient # noqa: E402 + + self._audit_logs = AuditLogsClient(client_wrapper=self._client_wrapper) + return self._audit_logs + @property def auth_connections(self): if self._auth_connections is None: @@ -91,6 +101,7 @@ class AsyncWorkspaceClient: def __init__(self, *, client_wrapper: AsyncClientWrapper): self._raw_client = AsyncRawWorkspaceClient(client_wrapper=client_wrapper) self._client_wrapper = client_wrapper + self._audit_logs: typing.Optional[AsyncAuditLogsClient] = None self._auth_connections: typing.Optional[AsyncAuthConnectionsClient] = None self._groups: typing.Optional[AsyncGroupsClient] = None self._invites: typing.Optional[AsyncInvitesClient] = None @@ -109,6 +120,14 @@ def with_raw_response(self) -> AsyncRawWorkspaceClient: """ return self._raw_client + @property + def audit_logs(self): + if self._audit_logs is None: + from .audit_logs.client import AsyncAuditLogsClient # noqa: E402 + + self._audit_logs = AsyncAuditLogsClient(client_wrapper=self._client_wrapper) + return self._audit_logs + @property def auth_connections(self): if self._auth_connections is None: