telnyx 3.6.0__py3-none-any.whl → 3.7.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of telnyx might be problematic. Click here for more details.

Files changed (72) hide show
  1. telnyx/_version.py +1 -1
  2. telnyx/resources/webhooks.py +19 -0
  3. telnyx/types/__init__.py +1 -0
  4. telnyx/types/call_ai_gather_ended_webhook_event1.py +78 -0
  5. telnyx/types/call_ai_gather_message_history_updated_webhook_event1.py +69 -0
  6. telnyx/types/call_ai_gather_partial_results_webhook_event1.py +75 -0
  7. telnyx/types/call_answered_webhook_event1.py +75 -0
  8. telnyx/types/call_bridged_webhook_event1.py +58 -0
  9. telnyx/types/call_conversation_ended_webhook_event1.py +84 -0
  10. telnyx/types/call_conversation_insights_generated_webhook_event1.py +67 -0
  11. telnyx/types/call_dtmf_received_webhook_event1.py +61 -0
  12. telnyx/types/call_enqueued_webhook_event1.py +59 -0
  13. telnyx/types/call_fork_started_webhook_event1.py +53 -0
  14. telnyx/types/call_fork_stopped_webhook_event1.py +53 -0
  15. telnyx/types/call_gather_ended_webhook_event1.py +64 -0
  16. telnyx/types/call_hangup_webhook_event1.py +150 -0
  17. telnyx/types/call_initiated_webhook_event1.py +96 -0
  18. telnyx/types/call_left_queue_webhook_event1.py +62 -0
  19. telnyx/types/call_machine_detection_ended_webhook_event1.py +61 -0
  20. telnyx/types/call_machine_greeting_ended_webhook_event1.py +61 -0
  21. telnyx/types/call_machine_premium_detection_ended_webhook_event1.py +63 -0
  22. telnyx/types/call_machine_premium_greeting_ended_webhook_event1.py +61 -0
  23. telnyx/types/call_playback_ended_webhook_event1.py +70 -0
  24. telnyx/types/call_playback_started_webhook_event1.py +62 -0
  25. telnyx/types/call_recording_error_webhook_event1.py +60 -0
  26. telnyx/types/call_recording_saved_webhook_event1.py +94 -0
  27. telnyx/types/call_recording_transcription_saved_webhook_event1.py +71 -0
  28. telnyx/types/call_refer_completed_webhook_event1.py +61 -0
  29. telnyx/types/call_refer_failed_webhook_event1.py +61 -0
  30. telnyx/types/call_refer_started_webhook_event1.py +61 -0
  31. telnyx/types/call_siprec_failed_webhook_event1.py +53 -0
  32. telnyx/types/call_siprec_started_webhook_event1.py +50 -0
  33. telnyx/types/call_siprec_stopped_webhook_event1.py +53 -0
  34. telnyx/types/call_speak_ended_webhook_event1.py +53 -0
  35. telnyx/types/call_speak_started_webhook_event1.py +50 -0
  36. telnyx/types/call_streaming_failed_webhook_event1.py +70 -0
  37. telnyx/types/call_streaming_started_webhook_event1.py +53 -0
  38. telnyx/types/call_streaming_stopped_webhook_event1.py +53 -0
  39. telnyx/types/campaign_status_update_webhook_event1.py +26 -0
  40. telnyx/types/conference_created_webhook_event1.py +53 -0
  41. telnyx/types/conference_ended_webhook_event1.py +56 -0
  42. telnyx/types/conference_floor_changed_webhook_event1.py +45 -0
  43. telnyx/types/conference_participant_joined_webhook_event1.py +53 -0
  44. telnyx/types/conference_participant_left_webhook_event1.py +53 -0
  45. telnyx/types/conference_participant_playback_ended_webhook_event1.py +65 -0
  46. telnyx/types/conference_participant_playback_started_webhook_event1.py +65 -0
  47. telnyx/types/conference_participant_speak_ended_webhook_event1.py +56 -0
  48. telnyx/types/conference_participant_speak_started_webhook_event1.py +56 -0
  49. telnyx/types/conference_playback_ended_webhook_event1.py +49 -0
  50. telnyx/types/conference_playback_started_webhook_event1.py +49 -0
  51. telnyx/types/conference_recording_saved_webhook_event1.py +103 -0
  52. telnyx/types/conference_speak_ended_webhook_event1.py +40 -0
  53. telnyx/types/conference_speak_started_webhook_event1.py +40 -0
  54. telnyx/types/customer_service_record_status_changed_webhook_event1.py +55 -0
  55. telnyx/types/delivery_update_webhook_event1.py +40 -0
  56. telnyx/types/fax_delivered_webhook_event1.py +69 -0
  57. telnyx/types/fax_failed_webhook_event1.py +66 -0
  58. telnyx/types/fax_media_processed_webhook_event1.py +63 -0
  59. telnyx/types/fax_queued_webhook_event1.py +63 -0
  60. telnyx/types/fax_sending_started_webhook_event1.py +63 -0
  61. telnyx/types/inbound_message_webhook_event1.py +227 -0
  62. telnyx/types/number_order_status_update_webhook_event1.py +38 -0
  63. telnyx/types/replaced_link_click_webhook_event1.py +32 -0
  64. telnyx/types/streaming_failed_webhook_event1.py +70 -0
  65. telnyx/types/streaming_started_webhook_event1.py +53 -0
  66. telnyx/types/streaming_stopped_webhook_event1.py +53 -0
  67. telnyx/types/transcription_webhook_event1.py +72 -0
  68. telnyx/types/unsafe_unwrap_webhook_event.py +138 -0
  69. {telnyx-3.6.0.dist-info → telnyx-3.7.0.dist-info}/METADATA +1 -1
  70. {telnyx-3.6.0.dist-info → telnyx-3.7.0.dist-info}/RECORD +72 -7
  71. {telnyx-3.6.0.dist-info → telnyx-3.7.0.dist-info}/WHEEL +0 -0
  72. {telnyx-3.6.0.dist-info → telnyx-3.7.0.dist-info}/licenses/LICENSE +0 -0
telnyx/_version.py CHANGED
@@ -1,4 +1,4 @@
1
1
  # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
3
  __title__ = "telnyx"
4
- __version__ = "3.6.0" # x-release-please-version
4
+ __version__ = "3.7.0" # x-release-please-version
@@ -8,11 +8,21 @@ from typing import cast
8
8
  from .._models import construct_type
9
9
  from .._resource import SyncAPIResource, AsyncAPIResource
10
10
  from ..types.unwrap_webhook_event import UnwrapWebhookEvent
11
+ from ..types.unsafe_unwrap_webhook_event import UnsafeUnwrapWebhookEvent
11
12
 
12
13
  __all__ = ["WebhooksResource", "AsyncWebhooksResource"]
13
14
 
14
15
 
15
16
  class WebhooksResource(SyncAPIResource):
17
+ def unsafe_unwrap(self, payload: str) -> UnsafeUnwrapWebhookEvent:
18
+ return cast(
19
+ UnsafeUnwrapWebhookEvent,
20
+ construct_type(
21
+ type_=UnsafeUnwrapWebhookEvent,
22
+ value=json.loads(payload),
23
+ ),
24
+ )
25
+
16
26
  def unwrap(self, payload: str) -> UnwrapWebhookEvent:
17
27
  return cast(
18
28
  UnwrapWebhookEvent,
@@ -24,6 +34,15 @@ class WebhooksResource(SyncAPIResource):
24
34
 
25
35
 
26
36
  class AsyncWebhooksResource(AsyncAPIResource):
37
+ def unsafe_unwrap(self, payload: str) -> UnsafeUnwrapWebhookEvent:
38
+ return cast(
39
+ UnsafeUnwrapWebhookEvent,
40
+ construct_type(
41
+ type_=UnsafeUnwrapWebhookEvent,
42
+ value=json.loads(payload),
43
+ ),
44
+ )
45
+
27
46
  def unwrap(self, payload: str) -> UnwrapWebhookEvent:
28
47
  return cast(
29
48
  UnwrapWebhookEvent,
telnyx/types/__init__.py CHANGED
@@ -376,6 +376,7 @@ from .recording_retrieve_response import RecordingRetrieveResponse as RecordingR
376
376
  from .reserved_phone_number_param import ReservedPhoneNumberParam as ReservedPhoneNumberParam
377
377
  from .s3_configuration_data_param import S3ConfigurationDataParam as S3ConfigurationDataParam
378
378
  from .transcription_webhook_event import TranscriptionWebhookEvent as TranscriptionWebhookEvent
379
+ from .unsafe_unwrap_webhook_event import UnsafeUnwrapWebhookEvent as UnsafeUnwrapWebhookEvent
379
380
  from .verified_number_list_params import VerifiedNumberListParams as VerifiedNumberListParams
380
381
  from .advanced_order_create_params import AdvancedOrderCreateParams as AdvancedOrderCreateParams
381
382
  from .call_initiated_webhook_event import CallInitiatedWebhookEvent as CallInitiatedWebhookEvent
@@ -0,0 +1,78 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import List, Optional
4
+ from datetime import datetime
5
+ from typing_extensions import Literal
6
+
7
+ from pydantic import Field as FieldInfo
8
+
9
+ from .._models import BaseModel
10
+
11
+ __all__ = ["CallAIGatherEndedWebhookEvent", "Data", "DataPayload", "DataPayloadMessageHistory"]
12
+
13
+
14
+ class DataPayloadMessageHistory(BaseModel):
15
+ content: Optional[str] = None
16
+ """The content of the message"""
17
+
18
+ role: Optional[Literal["assistant", "user"]] = None
19
+ """The role of the message sender"""
20
+
21
+
22
+ class DataPayload(BaseModel):
23
+ call_control_id: Optional[str] = None
24
+ """Call ID used to issue commands via Call Control API."""
25
+
26
+ call_leg_id: Optional[str] = None
27
+ """ID that is unique to the call and can be used to correlate webhook events."""
28
+
29
+ call_session_id: Optional[str] = None
30
+ """
31
+ ID that is unique to the call session and can be used to correlate webhook
32
+ events. Call session is a group of related call legs that logically belong to
33
+ the same phone call, e.g. an inbound and outbound leg of a transferred call.
34
+ """
35
+
36
+ client_state: Optional[str] = None
37
+ """State received from a command."""
38
+
39
+ connection_id: Optional[str] = None
40
+ """Telnyx connection ID used in the call."""
41
+
42
+ from_: Optional[str] = FieldInfo(alias="from", default=None)
43
+ """Number or SIP URI placing the call."""
44
+
45
+ message_history: Optional[List[DataPayloadMessageHistory]] = None
46
+ """The history of the messages exchanged during the AI gather"""
47
+
48
+ result: Optional[object] = None
49
+ """
50
+ The result of the AI gather, its type depends of the `parameters` provided in
51
+ the command
52
+ """
53
+
54
+ status: Optional[Literal["valid", "invalid"]] = None
55
+ """Reflects how command ended."""
56
+
57
+ to: Optional[str] = None
58
+ """Destination number or SIP URI of the call."""
59
+
60
+
61
+ class Data(BaseModel):
62
+ id: Optional[str] = None
63
+ """Identifies the type of resource."""
64
+
65
+ event_type: Optional[Literal["call.ai_gather.ended"]] = None
66
+ """The type of event being delivered."""
67
+
68
+ occurred_at: Optional[datetime] = None
69
+ """ISO 8601 datetime of when the event occurred."""
70
+
71
+ payload: Optional[DataPayload] = None
72
+
73
+ record_type: Optional[Literal["event"]] = None
74
+ """Identifies the type of the resource."""
75
+
76
+
77
+ class CallAIGatherEndedWebhookEvent(BaseModel):
78
+ data: Optional[Data] = None
@@ -0,0 +1,69 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import List, Optional
4
+ from datetime import datetime
5
+ from typing_extensions import Literal
6
+
7
+ from pydantic import Field as FieldInfo
8
+
9
+ from .._models import BaseModel
10
+
11
+ __all__ = ["CallAIGatherMessageHistoryUpdatedWebhookEvent", "Data", "DataPayload", "DataPayloadMessageHistory"]
12
+
13
+
14
+ class DataPayloadMessageHistory(BaseModel):
15
+ content: Optional[str] = None
16
+ """The content of the message"""
17
+
18
+ role: Optional[Literal["assistant", "user"]] = None
19
+ """The role of the message sender"""
20
+
21
+
22
+ class DataPayload(BaseModel):
23
+ call_control_id: Optional[str] = None
24
+ """Call ID used to issue commands via Call Control API."""
25
+
26
+ call_leg_id: Optional[str] = None
27
+ """ID that is unique to the call and can be used to correlate webhook events."""
28
+
29
+ call_session_id: Optional[str] = None
30
+ """
31
+ ID that is unique to the call session and can be used to correlate webhook
32
+ events. Call session is a group of related call legs that logically belong to
33
+ the same phone call, e.g. an inbound and outbound leg of a transferred call.
34
+ """
35
+
36
+ client_state: Optional[str] = None
37
+ """State received from a command."""
38
+
39
+ connection_id: Optional[str] = None
40
+ """Telnyx connection ID used in the call."""
41
+
42
+ from_: Optional[str] = FieldInfo(alias="from", default=None)
43
+ """Number or SIP URI placing the call."""
44
+
45
+ message_history: Optional[List[DataPayloadMessageHistory]] = None
46
+ """The history of the messages exchanged during the AI gather"""
47
+
48
+ to: Optional[str] = None
49
+ """Destination number or SIP URI of the call."""
50
+
51
+
52
+ class Data(BaseModel):
53
+ id: Optional[str] = None
54
+ """Identifies the type of resource."""
55
+
56
+ event_type: Optional[Literal["call.ai_gather.message_history_updated"]] = None
57
+ """The type of event being delivered."""
58
+
59
+ occurred_at: Optional[datetime] = None
60
+ """ISO 8601 datetime of when the event occurred."""
61
+
62
+ payload: Optional[DataPayload] = None
63
+
64
+ record_type: Optional[Literal["event"]] = None
65
+ """Identifies the type of the resource."""
66
+
67
+
68
+ class CallAIGatherMessageHistoryUpdatedWebhookEvent(BaseModel):
69
+ data: Optional[Data] = None
@@ -0,0 +1,75 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import List, Optional
4
+ from datetime import datetime
5
+ from typing_extensions import Literal
6
+
7
+ from pydantic import Field as FieldInfo
8
+
9
+ from .._models import BaseModel
10
+
11
+ __all__ = ["CallAIGatherPartialResultsWebhookEvent", "Data", "DataPayload", "DataPayloadMessageHistory"]
12
+
13
+
14
+ class DataPayloadMessageHistory(BaseModel):
15
+ content: Optional[str] = None
16
+ """The content of the message"""
17
+
18
+ role: Optional[Literal["assistant", "user"]] = None
19
+ """The role of the message sender"""
20
+
21
+
22
+ class DataPayload(BaseModel):
23
+ call_control_id: Optional[str] = None
24
+ """Call ID used to issue commands via Call Control API."""
25
+
26
+ call_leg_id: Optional[str] = None
27
+ """ID that is unique to the call and can be used to correlate webhook events."""
28
+
29
+ call_session_id: Optional[str] = None
30
+ """
31
+ ID that is unique to the call session and can be used to correlate webhook
32
+ events. Call session is a group of related call legs that logically belong to
33
+ the same phone call, e.g. an inbound and outbound leg of a transferred call.
34
+ """
35
+
36
+ client_state: Optional[str] = None
37
+ """State received from a command."""
38
+
39
+ connection_id: Optional[str] = None
40
+ """Telnyx connection ID used in the call."""
41
+
42
+ from_: Optional[str] = FieldInfo(alias="from", default=None)
43
+ """Number or SIP URI placing the call."""
44
+
45
+ message_history: Optional[List[DataPayloadMessageHistory]] = None
46
+ """The history of the messages exchanged during the AI gather"""
47
+
48
+ partial_results: Optional[object] = None
49
+ """
50
+ The partial result of the AI gather, its type depends of the `parameters`
51
+ provided in the command
52
+ """
53
+
54
+ to: Optional[str] = None
55
+ """Destination number or SIP URI of the call."""
56
+
57
+
58
+ class Data(BaseModel):
59
+ id: Optional[str] = None
60
+ """Identifies the type of resource."""
61
+
62
+ event_type: Optional[Literal["call.ai_gather.partial_results"]] = None
63
+ """The type of event being delivered."""
64
+
65
+ occurred_at: Optional[datetime] = None
66
+ """ISO 8601 datetime of when the event occurred."""
67
+
68
+ payload: Optional[DataPayload] = None
69
+
70
+ record_type: Optional[Literal["event"]] = None
71
+ """Identifies the type of the resource."""
72
+
73
+
74
+ class CallAIGatherPartialResultsWebhookEvent(BaseModel):
75
+ data: Optional[Data] = None
@@ -0,0 +1,75 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import List, Optional
4
+ from datetime import datetime
5
+ from typing_extensions import Literal
6
+
7
+ from pydantic import Field as FieldInfo
8
+
9
+ from .._models import BaseModel
10
+ from .sip_header import SipHeader
11
+ from .custom_sip_header import CustomSipHeader
12
+
13
+ __all__ = ["CallAnsweredWebhookEvent", "Data", "DataPayload"]
14
+
15
+
16
+ class DataPayload(BaseModel):
17
+ call_control_id: Optional[str] = None
18
+ """Call ID used to issue commands via Call Control API."""
19
+
20
+ call_leg_id: Optional[str] = None
21
+ """ID that is unique to the call and can be used to correlate webhook events."""
22
+
23
+ call_session_id: Optional[str] = None
24
+ """
25
+ ID that is unique to the call session and can be used to correlate webhook
26
+ events. Call session is a group of related call legs that logically belong to
27
+ the same phone call, e.g. an inbound and outbound leg of a transferred call.
28
+ """
29
+
30
+ client_state: Optional[str] = None
31
+ """State received from a command."""
32
+
33
+ connection_id: Optional[str] = None
34
+ """Call Control App ID (formerly Telnyx connection ID) used in the call."""
35
+
36
+ custom_headers: Optional[List[CustomSipHeader]] = None
37
+ """Custom headers set on answer command"""
38
+
39
+ from_: Optional[str] = FieldInfo(alias="from", default=None)
40
+ """Number or SIP URI placing the call."""
41
+
42
+ sip_headers: Optional[List[SipHeader]] = None
43
+ """User-to-User and Diversion headers from sip invite."""
44
+
45
+ start_time: Optional[datetime] = None
46
+ """ISO 8601 datetime of when the call started."""
47
+
48
+ state: Optional[Literal["answered"]] = None
49
+ """State received from a command."""
50
+
51
+ tags: Optional[List[str]] = None
52
+ """Array of tags associated to number."""
53
+
54
+ to: Optional[str] = None
55
+ """Destination number or SIP URI of the call."""
56
+
57
+
58
+ class Data(BaseModel):
59
+ id: Optional[str] = None
60
+ """Identifies the type of resource."""
61
+
62
+ event_type: Optional[Literal["call.answered"]] = None
63
+ """The type of event being delivered."""
64
+
65
+ occurred_at: Optional[datetime] = None
66
+ """ISO 8601 datetime of when the event occurred."""
67
+
68
+ payload: Optional[DataPayload] = None
69
+
70
+ record_type: Optional[Literal["event"]] = None
71
+ """Identifies the type of the resource."""
72
+
73
+
74
+ class CallAnsweredWebhookEvent(BaseModel):
75
+ data: Optional[Data] = None
@@ -0,0 +1,58 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import Optional
4
+ from datetime import datetime
5
+ from typing_extensions import Literal
6
+
7
+ from pydantic import Field as FieldInfo
8
+
9
+ from .._models import BaseModel
10
+
11
+ __all__ = ["CallBridgedWebhookEvent", "Data", "DataPayload"]
12
+
13
+
14
+ class DataPayload(BaseModel):
15
+ call_control_id: Optional[str] = None
16
+ """Call ID used to issue commands via Call Control API."""
17
+
18
+ call_leg_id: Optional[str] = None
19
+ """ID that is unique to the call and can be used to correlate webhook events."""
20
+
21
+ call_session_id: Optional[str] = None
22
+ """
23
+ ID that is unique to the call session and can be used to correlate webhook
24
+ events. Call session is a group of related call legs that logically belong to
25
+ the same phone call, e.g. an inbound and outbound leg of a transferred call.
26
+ """
27
+
28
+ client_state: Optional[str] = None
29
+ """State received from a command."""
30
+
31
+ connection_id: Optional[str] = None
32
+ """Call Control App ID (formerly Telnyx connection ID) used in the call."""
33
+
34
+ from_: Optional[str] = FieldInfo(alias="from", default=None)
35
+ """Number or SIP URI placing the call."""
36
+
37
+ to: Optional[str] = None
38
+ """Destination number or SIP URI of the call."""
39
+
40
+
41
+ class Data(BaseModel):
42
+ id: Optional[str] = None
43
+ """Identifies the type of resource."""
44
+
45
+ event_type: Optional[Literal["call.bridged"]] = None
46
+ """The type of event being delivered."""
47
+
48
+ occurred_at: Optional[datetime] = None
49
+ """ISO 8601 datetime of when the event occurred."""
50
+
51
+ payload: Optional[DataPayload] = None
52
+
53
+ record_type: Optional[Literal["event"]] = None
54
+ """Identifies the type of the resource."""
55
+
56
+
57
+ class CallBridgedWebhookEvent(BaseModel):
58
+ data: Optional[Data] = None
@@ -0,0 +1,84 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import Optional
4
+ from datetime import datetime
5
+ from typing_extensions import Literal
6
+
7
+ from pydantic import Field as FieldInfo
8
+
9
+ from .._models import BaseModel
10
+
11
+ __all__ = ["CallConversationEndedWebhookEvent", "Data", "DataPayload"]
12
+
13
+
14
+ class DataPayload(BaseModel):
15
+ assistant_id: Optional[str] = None
16
+ """Unique identifier of the assistant involved in the call."""
17
+
18
+ call_control_id: Optional[str] = None
19
+ """Call ID used to issue commands via Call Control API."""
20
+
21
+ call_leg_id: Optional[str] = None
22
+ """ID that is unique to the call leg."""
23
+
24
+ call_session_id: Optional[str] = None
25
+ """ID that is unique to the call session (group of related call legs)."""
26
+
27
+ calling_party_type: Optional[Literal["pstn", "sip"]] = None
28
+ """The type of calling party connection."""
29
+
30
+ client_state: Optional[str] = None
31
+ """Base64-encoded state received from a command."""
32
+
33
+ connection_id: Optional[str] = None
34
+ """Call Control App ID (formerly Telnyx connection ID) used in the call."""
35
+
36
+ conversation_id: Optional[str] = None
37
+ """ID unique to the conversation or insight group generated for the call."""
38
+
39
+ duration_sec: Optional[int] = None
40
+ """Duration of the conversation in seconds."""
41
+
42
+ from_: Optional[str] = FieldInfo(alias="from", default=None)
43
+ """The caller's number or identifier."""
44
+
45
+ llm_model: Optional[str] = None
46
+ """The large language model used during the conversation."""
47
+
48
+ stt_model: Optional[str] = None
49
+ """The speech-to-text model used in the conversation."""
50
+
51
+ to: Optional[str] = None
52
+ """The callee's number or SIP address."""
53
+
54
+ tts_model_id: Optional[str] = None
55
+ """The model ID used for text-to-speech synthesis."""
56
+
57
+ tts_provider: Optional[str] = None
58
+ """The text-to-speech provider used in the call."""
59
+
60
+ tts_voice_id: Optional[str] = None
61
+ """Voice ID used for TTS."""
62
+
63
+
64
+ class Data(BaseModel):
65
+ id: Optional[str] = None
66
+ """Unique identifier for the event."""
67
+
68
+ created_at: Optional[datetime] = None
69
+ """Timestamp when the event was created in the system."""
70
+
71
+ event_type: Optional[Literal["call.conversation.ended"]] = None
72
+ """The type of event being delivered."""
73
+
74
+ occurred_at: Optional[datetime] = None
75
+ """ISO 8601 datetime of when the event occurred."""
76
+
77
+ payload: Optional[DataPayload] = None
78
+
79
+ record_type: Optional[Literal["event"]] = None
80
+ """Identifies the type of the resource."""
81
+
82
+
83
+ class CallConversationEndedWebhookEvent(BaseModel):
84
+ data: Optional[Data] = None
@@ -0,0 +1,67 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import List, Union, Optional
4
+ from datetime import datetime
5
+ from typing_extensions import Literal
6
+
7
+ from .._models import BaseModel
8
+
9
+ __all__ = ["CallConversationInsightsGeneratedWebhookEvent", "Data", "DataPayload", "DataPayloadResult"]
10
+
11
+
12
+ class DataPayloadResult(BaseModel):
13
+ insight_id: Optional[str] = None
14
+ """ID that is unique to the insight result being generated for the call."""
15
+
16
+ result: Union[str, object, None] = None
17
+ """The result of the insight."""
18
+
19
+
20
+ class DataPayload(BaseModel):
21
+ call_control_id: Optional[str] = None
22
+ """Call ID used to issue commands via Call Control API."""
23
+
24
+ call_leg_id: Optional[str] = None
25
+ """ID that is unique to the call and can be used to correlate webhook events."""
26
+
27
+ call_session_id: Optional[str] = None
28
+ """
29
+ ID that is unique to the call session and can be used to correlate webhook
30
+ events. Call session is a group of related call legs that logically belong to
31
+ the same phone call, e.g. an inbound and outbound leg of a transferred call.
32
+ """
33
+
34
+ calling_party_type: Optional[Literal["pstn", "sip"]] = None
35
+ """The type of calling party connection."""
36
+
37
+ client_state: Optional[str] = None
38
+ """State received from a command."""
39
+
40
+ connection_id: Optional[str] = None
41
+ """Call Control App ID (formerly Telnyx connection ID) used in the call."""
42
+
43
+ insight_group_id: Optional[str] = None
44
+ """ID that is unique to the insight group being generated for the call."""
45
+
46
+ results: Optional[List[DataPayloadResult]] = None
47
+ """Array of insight results being generated for the call."""
48
+
49
+
50
+ class Data(BaseModel):
51
+ id: Optional[str] = None
52
+ """Identifies the type of resource."""
53
+
54
+ event_type: Optional[Literal["call.conversation_insights.generated"]] = None
55
+ """The type of event being delivered."""
56
+
57
+ occurred_at: Optional[datetime] = None
58
+ """ISO 8601 datetime of when the event occurred."""
59
+
60
+ payload: Optional[DataPayload] = None
61
+
62
+ record_type: Optional[Literal["event"]] = None
63
+ """Identifies the type of the resource."""
64
+
65
+
66
+ class CallConversationInsightsGeneratedWebhookEvent(BaseModel):
67
+ data: Optional[Data] = None
@@ -0,0 +1,61 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import Optional
4
+ from datetime import datetime
5
+ from typing_extensions import Literal
6
+
7
+ from pydantic import Field as FieldInfo
8
+
9
+ from .._models import BaseModel
10
+
11
+ __all__ = ["CallDtmfReceivedWebhookEvent", "Data", "DataPayload"]
12
+
13
+
14
+ class DataPayload(BaseModel):
15
+ call_control_id: Optional[str] = None
16
+ """Call ID used to issue commands via Call Control API."""
17
+
18
+ call_leg_id: Optional[str] = None
19
+ """ID that is unique to the call and can be used to correlate webhook events."""
20
+
21
+ call_session_id: Optional[str] = None
22
+ """
23
+ ID that is unique to the call session and can be used to correlate webhook
24
+ events. Call session is a group of related call legs that logically belong to
25
+ the same phone call, e.g. an inbound and outbound leg of a transferred call.
26
+ """
27
+
28
+ client_state: Optional[str] = None
29
+ """State received from a command."""
30
+
31
+ connection_id: Optional[str] = None
32
+ """Identifies the type of resource."""
33
+
34
+ digit: Optional[str] = None
35
+ """The received DTMF digit or symbol."""
36
+
37
+ from_: Optional[str] = FieldInfo(alias="from", default=None)
38
+ """Number or SIP URI placing the call."""
39
+
40
+ to: Optional[str] = None
41
+ """Destination number or SIP URI of the call."""
42
+
43
+
44
+ class Data(BaseModel):
45
+ id: Optional[str] = None
46
+ """Identifies the type of resource."""
47
+
48
+ event_type: Optional[Literal["call.dtmf.received"]] = None
49
+ """The type of event being delivered."""
50
+
51
+ occurred_at: Optional[datetime] = None
52
+ """ISO 8601 datetime of when the event occurred."""
53
+
54
+ payload: Optional[DataPayload] = None
55
+
56
+ record_type: Optional[Literal["event"]] = None
57
+ """Identifies the type of the resource."""
58
+
59
+
60
+ class CallDtmfReceivedWebhookEvent(BaseModel):
61
+ data: Optional[Data] = None
@@ -0,0 +1,59 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import Optional
4
+ from datetime import datetime
5
+ from typing_extensions import Literal
6
+
7
+ from .._models import BaseModel
8
+
9
+ __all__ = ["CallEnqueuedWebhookEvent", "Data", "DataPayload"]
10
+
11
+
12
+ class DataPayload(BaseModel):
13
+ call_control_id: Optional[str] = None
14
+ """Call ID used to issue commands via Call Control API."""
15
+
16
+ call_leg_id: Optional[str] = None
17
+ """ID that is unique to the call and can be used to correlate webhook events."""
18
+
19
+ call_session_id: Optional[str] = None
20
+ """
21
+ ID that is unique to the call session and can be used to correlate webhook
22
+ events. Call session is a group of related call legs that logically belong to
23
+ the same phone call, e.g. an inbound and outbound leg of a transferred call.
24
+ """
25
+
26
+ client_state: Optional[str] = None
27
+ """State received from a command."""
28
+
29
+ connection_id: Optional[str] = None
30
+ """Call Control App ID (formerly Telnyx connection ID) used in the call."""
31
+
32
+ current_position: Optional[int] = None
33
+ """Current position of the call in the queue."""
34
+
35
+ queue: Optional[str] = None
36
+ """The name of the queue"""
37
+
38
+ queue_avg_wait_time_secs: Optional[int] = None
39
+ """Average time call spends in the queue in seconds."""
40
+
41
+
42
+ class Data(BaseModel):
43
+ id: Optional[str] = None
44
+ """Identifies the type of resource."""
45
+
46
+ event_type: Optional[Literal["call.enqueued"]] = None
47
+ """The type of event being delivered."""
48
+
49
+ occurred_at: Optional[datetime] = None
50
+ """ISO 8601 datetime of when the event occurred."""
51
+
52
+ payload: Optional[DataPayload] = None
53
+
54
+ record_type: Optional[Literal["event"]] = None
55
+ """Identifies the type of the resource."""
56
+
57
+
58
+ class CallEnqueuedWebhookEvent(BaseModel):
59
+ data: Optional[Data] = None