telnyx 5.60.0 → 5.62.0
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +37 -0
- data/README.md +1 -1
- data/lib/telnyx/client.rb +10 -5
- data/lib/telnyx/errors.rb +0 -10
- data/lib/telnyx/lib/webhook_verification.rb +172 -0
- data/lib/telnyx/models/ai/assistants/{tag_delete_params.rb → tag_add_params.rb} +2 -2
- data/lib/telnyx/models/ai/assistants/{tag_delete_response.rb → tag_add_response.rb} +2 -2
- data/lib/telnyx/models/ai/assistants/{tag_create_params.rb → tag_remove_params.rb} +2 -2
- data/lib/telnyx/models/ai/assistants/{tag_create_response.rb → tag_remove_response.rb} +2 -2
- data/lib/telnyx/models/call_cost_webhook_event.rb +242 -0
- data/lib/telnyx/models/calls/action_start_noise_suppression_params.rb +135 -8
- data/lib/telnyx/models/text_to_speech_generate_params.rb +3 -3
- data/lib/telnyx/models/unsafe_unwrap_webhook_event.rb +3 -1
- data/lib/telnyx/models/unwrap_webhook_event.rb +3 -1
- data/lib/telnyx/models/voice_clone_create_from_design_params.rb +27 -6
- data/lib/telnyx/models/voice_clone_create_from_upload_params.rb +23 -2
- data/lib/telnyx/models/voice_clone_create_params.rb +79 -0
- data/lib/telnyx/models/voice_clone_create_response.rb +19 -0
- data/lib/telnyx/models/voice_clone_data.rb +41 -1
- data/lib/telnyx/models/voice_clone_list_params.rb +22 -1
- data/lib/telnyx/models/voice_design_create_params.rb +24 -1
- data/lib/telnyx/models/voice_design_data.rb +45 -1
- data/lib/telnyx/models/voice_design_list_response.rb +32 -1
- data/lib/telnyx/models/{voice_design_update_params.rb → voice_design_rename_params.rb} +2 -2
- data/lib/telnyx/models/{voice_design_update_response.rb → voice_design_rename_response.rb} +42 -11
- data/lib/telnyx/models/whatsapp/business_accounts/{phone_number_create_verification_params.rb → phone_number_initialize_verification_params.rb} +5 -5
- data/lib/telnyx/models/whatsapp/template_create_params.rb +530 -0
- data/lib/telnyx/models/whatsapp/{message_template_create_response.rb → template_create_response.rb} +2 -2
- data/lib/telnyx/models/whatsapp/{message_template_list_params.rb → template_list_params.rb} +5 -5
- data/lib/telnyx/models/whatsapp_message_template_delete_params.rb +20 -0
- data/lib/telnyx/models/whatsapp_message_template_retrieve_params.rb +20 -0
- data/lib/telnyx/models/whatsapp_message_template_retrieve_response.rb +16 -0
- data/lib/telnyx/models/whatsapp_message_template_update_params.rb +504 -0
- data/lib/telnyx/models/whatsapp_message_template_update_response.rb +16 -0
- data/lib/telnyx/models/whatsapp_template_data.rb +10 -3
- data/lib/telnyx/models/x402/{credit_account_create_payment_quote_params.rb → credit_account_create_quote_params.rb} +2 -2
- data/lib/telnyx/models/x402/{credit_account_create_payment_quote_response.rb → credit_account_create_quote_response.rb} +31 -32
- data/lib/telnyx/models/x402/{credit_account_settle_payment_params.rb → credit_account_settle_params.rb} +3 -3
- data/lib/telnyx/models/x402/{credit_account_settle_payment_response.rb → credit_account_settle_response.rb} +14 -15
- data/lib/telnyx/models.rb +12 -4
- data/lib/telnyx/resources/ai/assistants/tags.rb +28 -28
- data/lib/telnyx/resources/calls/actions.rb +1 -1
- data/lib/telnyx/resources/voice_clones.rb +38 -31
- data/lib/telnyx/resources/voice_designs.rb +27 -25
- data/lib/telnyx/resources/webhooks.rb +10 -183
- data/lib/telnyx/resources/whatsapp/business_accounts/phone_numbers.rb +5 -5
- data/lib/telnyx/resources/whatsapp/phone_numbers/profile.rb +0 -4
- data/lib/telnyx/resources/whatsapp/templates.rb +91 -0
- data/lib/telnyx/resources/whatsapp.rb +3 -3
- data/lib/telnyx/resources/whatsapp_message_templates.rb +81 -0
- data/lib/telnyx/resources/x402/credit_account.rb +13 -13
- data/lib/telnyx/version.rb +1 -1
- data/lib/telnyx.rb +25 -24
- data/rbi/telnyx/client.rbi +8 -4
- data/rbi/telnyx/models/ai/assistants/{tag_create_params.rbi → tag_add_params.rbi} +2 -2
- data/rbi/telnyx/models/ai/assistants/{tag_delete_response.rbi → tag_add_response.rbi} +2 -2
- data/rbi/telnyx/models/ai/assistants/{tag_delete_params.rbi → tag_remove_params.rbi} +2 -2
- data/rbi/telnyx/models/ai/assistants/{tag_create_response.rbi → tag_remove_response.rbi} +2 -2
- data/rbi/telnyx/models/call_cost_webhook_event.rbi +485 -0
- data/rbi/telnyx/models/calls/action_start_noise_suppression_params.rbi +338 -12
- data/rbi/telnyx/models/text_to_speech_generate_params.rbi +2 -1
- data/rbi/telnyx/models/unsafe_unwrap_webhook_event.rbi +1 -0
- data/rbi/telnyx/models/unwrap_webhook_event.rbi +1 -0
- data/rbi/telnyx/models/voice_clone_create_from_design_params.rbi +51 -0
- data/rbi/telnyx/models/voice_clone_create_from_upload_params.rbi +67 -2
- data/rbi/telnyx/models/voice_clone_create_params.rbi +142 -0
- data/rbi/telnyx/models/voice_clone_create_response.rbi +36 -0
- data/rbi/telnyx/models/voice_clone_data.rbi +57 -0
- data/rbi/telnyx/models/voice_clone_list_params.rbi +62 -0
- data/rbi/telnyx/models/voice_design_create_params.rbi +60 -0
- data/rbi/telnyx/models/voice_design_data.rbi +59 -0
- data/rbi/telnyx/models/voice_design_list_response.rbi +73 -0
- data/rbi/telnyx/models/{voice_design_update_params.rbi → voice_design_rename_params.rbi} +2 -2
- data/rbi/telnyx/models/{voice_design_update_response.rbi → voice_design_rename_response.rbi} +90 -14
- data/rbi/telnyx/models/whatsapp/business_accounts/{phone_number_create_verification_params.rbi → phone_number_initialize_verification_params.rbi} +10 -10
- data/rbi/telnyx/models/whatsapp/template_create_params.rbi +1177 -0
- data/rbi/telnyx/models/whatsapp/{message_template_create_response.rbi → template_create_response.rbi} +2 -2
- data/rbi/telnyx/models/whatsapp/{message_template_list_params.rbi → template_list_params.rbi} +11 -11
- data/rbi/telnyx/models/whatsapp_message_template_delete_params.rbi +38 -0
- data/rbi/telnyx/models/whatsapp_message_template_retrieve_params.rbi +38 -0
- data/rbi/telnyx/models/whatsapp_message_template_retrieve_response.rbi +33 -0
- data/rbi/telnyx/models/whatsapp_message_template_update_params.rbi +1178 -0
- data/rbi/telnyx/models/whatsapp_message_template_update_response.rbi +33 -0
- data/rbi/telnyx/models/whatsapp_template_data.rbi +10 -2
- data/rbi/telnyx/models/x402/{credit_account_create_payment_quote_params.rbi → credit_account_create_quote_params.rbi} +2 -2
- data/rbi/telnyx/models/x402/{credit_account_create_payment_quote_response.rbi → credit_account_create_quote_response.rbi} +41 -42
- data/rbi/telnyx/models/x402/{credit_account_settle_payment_params.rbi → credit_account_settle_params.rbi} +2 -2
- data/rbi/telnyx/models/x402/{credit_account_settle_payment_response.rbi → credit_account_settle_response.rbi} +21 -26
- data/rbi/telnyx/models.rbi +29 -3
- data/rbi/telnyx/resources/ai/assistants/tags.rbi +13 -13
- data/rbi/telnyx/resources/calls/actions.rbi +4 -3
- data/rbi/telnyx/resources/voice_clones.rbi +36 -25
- data/rbi/telnyx/resources/voice_designs.rbi +21 -17
- data/rbi/telnyx/resources/webhooks.rbi +12 -2
- data/rbi/telnyx/resources/whatsapp/business_accounts/phone_numbers.rbi +2 -2
- data/rbi/telnyx/resources/whatsapp/phone_numbers/profile.rbi +0 -5
- data/rbi/telnyx/resources/whatsapp/templates.rbi +85 -0
- data/rbi/telnyx/resources/whatsapp.rbi +2 -2
- data/rbi/telnyx/resources/whatsapp_message_templates.rbi +67 -0
- data/rbi/telnyx/resources/x402/credit_account.rbi +4 -6
- data/sig/telnyx/client.rbs +4 -2
- data/sig/telnyx/models/ai/assistants/{tag_delete_params.rbs → tag_add_params.rbs} +2 -2
- data/sig/telnyx/models/ai/assistants/{tag_delete_response.rbs → tag_add_response.rbs} +2 -2
- data/sig/telnyx/models/ai/assistants/{tag_create_params.rbs → tag_remove_params.rbs} +2 -2
- data/sig/telnyx/models/ai/assistants/{tag_create_response.rbs → tag_remove_response.rbs} +2 -2
- data/sig/telnyx/models/call_cost_webhook_event.rbs +235 -0
- data/sig/telnyx/models/calls/action_start_noise_suppression_params.rbs +124 -4
- data/sig/telnyx/models/unsafe_unwrap_webhook_event.rbs +1 -0
- data/sig/telnyx/models/unwrap_webhook_event.rbs +1 -0
- data/sig/telnyx/models/voice_clone_create_from_design_params.rbs +23 -1
- data/sig/telnyx/models/voice_clone_create_from_upload_params.rbs +22 -0
- data/sig/telnyx/models/voice_clone_create_params.rbs +75 -0
- data/sig/telnyx/models/voice_clone_create_response.rbs +15 -0
- data/sig/telnyx/models/voice_clone_data.rbs +34 -0
- data/sig/telnyx/models/voice_clone_list_params.rbs +22 -0
- data/sig/telnyx/models/voice_design_create_params.rbs +22 -0
- data/sig/telnyx/models/voice_design_data.rbs +30 -0
- data/sig/telnyx/models/voice_design_list_response.rbs +25 -0
- data/sig/telnyx/models/{voice_design_update_params.rbs → voice_design_rename_params.rbs} +2 -2
- data/sig/telnyx/models/voice_design_rename_response.rbs +104 -0
- data/sig/telnyx/models/whatsapp/business_accounts/{phone_number_create_verification_params.rbs → phone_number_initialize_verification_params.rbs} +9 -9
- data/sig/telnyx/models/whatsapp/template_create_params.rbs +479 -0
- data/sig/telnyx/models/whatsapp/{message_template_update_response.rbs → template_create_response.rbs} +2 -3
- data/sig/telnyx/models/whatsapp/{message_template_list_params.rbs → template_list_params.rbs} +9 -9
- data/sig/telnyx/models/whatsapp_message_template_delete_params.rbs +20 -0
- data/sig/telnyx/models/whatsapp_message_template_retrieve_params.rbs +20 -0
- data/sig/telnyx/models/whatsapp_message_template_retrieve_response.rbs +16 -0
- data/sig/telnyx/models/whatsapp_message_template_update_params.rbs +473 -0
- data/sig/telnyx/models/whatsapp_message_template_update_response.rbs +16 -0
- data/sig/telnyx/models/x402/{credit_account_create_payment_quote_params.rbs → credit_account_create_quote_params.rbs} +2 -2
- data/sig/telnyx/models/x402/{credit_account_create_payment_quote_response.rbs → credit_account_create_quote_response.rbs} +46 -48
- data/sig/telnyx/models/x402/{credit_account_settle_payment_params.rbs → credit_account_settle_params.rbs} +2 -2
- data/sig/telnyx/models/x402/{credit_account_settle_payment_response.rbs → credit_account_settle_response.rbs} +22 -22
- data/sig/telnyx/models.rbs +12 -4
- data/sig/telnyx/resources/ai/assistants/tags.rbs +8 -8
- data/sig/telnyx/resources/voice_clones.rbs +11 -8
- data/sig/telnyx/resources/voice_designs.rbs +7 -6
- data/sig/telnyx/resources/webhooks.rbs +5 -1
- data/sig/telnyx/resources/whatsapp/business_accounts/phone_numbers.rbs +2 -2
- data/sig/telnyx/resources/whatsapp/phone_numbers/profile.rbs +0 -2
- data/sig/telnyx/resources/whatsapp/templates.rbs +28 -0
- data/sig/telnyx/resources/whatsapp.rbs +1 -1
- data/sig/telnyx/resources/whatsapp_message_templates.rbs +21 -0
- data/sig/telnyx/resources/x402/credit_account.rbs +4 -4
- metadata +75 -65
- data/lib/telnyx/models/whatsapp/message_template_create_params.rb +0 -58
- data/lib/telnyx/models/whatsapp/message_template_delete_params.rb +0 -22
- data/lib/telnyx/models/whatsapp/message_template_retrieve_params.rb +0 -22
- data/lib/telnyx/models/whatsapp/message_template_retrieve_response.rb +0 -18
- data/lib/telnyx/models/whatsapp/message_template_update_params.rb +0 -46
- data/lib/telnyx/models/whatsapp/message_template_update_response.rb +0 -18
- data/lib/telnyx/resources/whatsapp/message_templates.rb +0 -149
- data/lib/telnyx/resources/whatsapp/phone_numbers/profile/models.rb +0 -20
- data/rbi/telnyx/models/whatsapp/message_template_create_params.rbi +0 -115
- data/rbi/telnyx/models/whatsapp/message_template_delete_params.rbi +0 -40
- data/rbi/telnyx/models/whatsapp/message_template_retrieve_params.rbi +0 -40
- data/rbi/telnyx/models/whatsapp/message_template_retrieve_response.rbi +0 -35
- data/rbi/telnyx/models/whatsapp/message_template_update_params.rbi +0 -111
- data/rbi/telnyx/models/whatsapp/message_template_update_response.rbi +0 -35
- data/rbi/telnyx/resources/whatsapp/message_templates.rbi +0 -116
- data/rbi/telnyx/resources/whatsapp/phone_numbers/profile/models.rbi +0 -18
- data/sig/telnyx/models/voice_design_update_response.rbs +0 -79
- data/sig/telnyx/models/whatsapp/message_template_create_params.rbs +0 -60
- data/sig/telnyx/models/whatsapp/message_template_create_response.rbs +0 -20
- data/sig/telnyx/models/whatsapp/message_template_delete_params.rbs +0 -22
- data/sig/telnyx/models/whatsapp/message_template_retrieve_params.rbs +0 -22
- data/sig/telnyx/models/whatsapp/message_template_retrieve_response.rbs +0 -20
- data/sig/telnyx/models/whatsapp/message_template_update_params.rbs +0 -58
- data/sig/telnyx/resources/whatsapp/message_templates.rbs +0 -42
- data/sig/telnyx/resources/whatsapp/phone_numbers/profile/models.rbs +0 -13
|
@@ -0,0 +1,485 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module Telnyx
|
|
4
|
+
module Models
|
|
5
|
+
class CallCostWebhookEvent < Telnyx::Internal::Type::BaseModel
|
|
6
|
+
OrHash =
|
|
7
|
+
T.type_alias do
|
|
8
|
+
T.any(Telnyx::CallCostWebhookEvent, Telnyx::Internal::AnyHash)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
sig { returns(T.nilable(Telnyx::CallCostWebhookEvent::Data)) }
|
|
12
|
+
attr_reader :data
|
|
13
|
+
|
|
14
|
+
sig { params(data: Telnyx::CallCostWebhookEvent::Data::OrHash).void }
|
|
15
|
+
attr_writer :data
|
|
16
|
+
|
|
17
|
+
sig do
|
|
18
|
+
params(data: Telnyx::CallCostWebhookEvent::Data::OrHash).returns(
|
|
19
|
+
T.attached_class
|
|
20
|
+
)
|
|
21
|
+
end
|
|
22
|
+
def self.new(data: nil)
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
sig { override.returns({ data: Telnyx::CallCostWebhookEvent::Data }) }
|
|
26
|
+
def to_hash
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
class Data < Telnyx::Internal::Type::BaseModel
|
|
30
|
+
OrHash =
|
|
31
|
+
T.type_alias do
|
|
32
|
+
T.any(Telnyx::CallCostWebhookEvent::Data, Telnyx::Internal::AnyHash)
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
# Unique identifier of the event.
|
|
36
|
+
sig { returns(T.nilable(String)) }
|
|
37
|
+
attr_reader :id
|
|
38
|
+
|
|
39
|
+
sig { params(id: String).void }
|
|
40
|
+
attr_writer :id
|
|
41
|
+
|
|
42
|
+
# The type of event being delivered.
|
|
43
|
+
sig do
|
|
44
|
+
returns(
|
|
45
|
+
T.nilable(
|
|
46
|
+
Telnyx::CallCostWebhookEvent::Data::EventType::TaggedSymbol
|
|
47
|
+
)
|
|
48
|
+
)
|
|
49
|
+
end
|
|
50
|
+
attr_reader :event_type
|
|
51
|
+
|
|
52
|
+
sig do
|
|
53
|
+
params(
|
|
54
|
+
event_type: Telnyx::CallCostWebhookEvent::Data::EventType::OrSymbol
|
|
55
|
+
).void
|
|
56
|
+
end
|
|
57
|
+
attr_writer :event_type
|
|
58
|
+
|
|
59
|
+
# ISO 8601 datetime of when the event occurred.
|
|
60
|
+
sig { returns(T.nilable(Time)) }
|
|
61
|
+
attr_reader :occurred_at
|
|
62
|
+
|
|
63
|
+
sig { params(occurred_at: Time).void }
|
|
64
|
+
attr_writer :occurred_at
|
|
65
|
+
|
|
66
|
+
sig { returns(T.nilable(Telnyx::CallCostWebhookEvent::Data::Payload)) }
|
|
67
|
+
attr_reader :payload
|
|
68
|
+
|
|
69
|
+
sig do
|
|
70
|
+
params(
|
|
71
|
+
payload: Telnyx::CallCostWebhookEvent::Data::Payload::OrHash
|
|
72
|
+
).void
|
|
73
|
+
end
|
|
74
|
+
attr_writer :payload
|
|
75
|
+
|
|
76
|
+
# Identifies the type of the resource.
|
|
77
|
+
sig do
|
|
78
|
+
returns(
|
|
79
|
+
T.nilable(
|
|
80
|
+
Telnyx::CallCostWebhookEvent::Data::RecordType::TaggedSymbol
|
|
81
|
+
)
|
|
82
|
+
)
|
|
83
|
+
end
|
|
84
|
+
attr_reader :record_type
|
|
85
|
+
|
|
86
|
+
sig do
|
|
87
|
+
params(
|
|
88
|
+
record_type:
|
|
89
|
+
Telnyx::CallCostWebhookEvent::Data::RecordType::OrSymbol
|
|
90
|
+
).void
|
|
91
|
+
end
|
|
92
|
+
attr_writer :record_type
|
|
93
|
+
|
|
94
|
+
sig do
|
|
95
|
+
params(
|
|
96
|
+
id: String,
|
|
97
|
+
event_type: Telnyx::CallCostWebhookEvent::Data::EventType::OrSymbol,
|
|
98
|
+
occurred_at: Time,
|
|
99
|
+
payload: Telnyx::CallCostWebhookEvent::Data::Payload::OrHash,
|
|
100
|
+
record_type:
|
|
101
|
+
Telnyx::CallCostWebhookEvent::Data::RecordType::OrSymbol
|
|
102
|
+
).returns(T.attached_class)
|
|
103
|
+
end
|
|
104
|
+
def self.new(
|
|
105
|
+
# Unique identifier of the event.
|
|
106
|
+
id: nil,
|
|
107
|
+
# The type of event being delivered.
|
|
108
|
+
event_type: nil,
|
|
109
|
+
# ISO 8601 datetime of when the event occurred.
|
|
110
|
+
occurred_at: nil,
|
|
111
|
+
payload: nil,
|
|
112
|
+
# Identifies the type of the resource.
|
|
113
|
+
record_type: nil
|
|
114
|
+
)
|
|
115
|
+
end
|
|
116
|
+
|
|
117
|
+
sig do
|
|
118
|
+
override.returns(
|
|
119
|
+
{
|
|
120
|
+
id: String,
|
|
121
|
+
event_type:
|
|
122
|
+
Telnyx::CallCostWebhookEvent::Data::EventType::TaggedSymbol,
|
|
123
|
+
occurred_at: Time,
|
|
124
|
+
payload: Telnyx::CallCostWebhookEvent::Data::Payload,
|
|
125
|
+
record_type:
|
|
126
|
+
Telnyx::CallCostWebhookEvent::Data::RecordType::TaggedSymbol
|
|
127
|
+
}
|
|
128
|
+
)
|
|
129
|
+
end
|
|
130
|
+
def to_hash
|
|
131
|
+
end
|
|
132
|
+
|
|
133
|
+
# The type of event being delivered.
|
|
134
|
+
module EventType
|
|
135
|
+
extend Telnyx::Internal::Type::Enum
|
|
136
|
+
|
|
137
|
+
TaggedSymbol =
|
|
138
|
+
T.type_alias do
|
|
139
|
+
T.all(Symbol, Telnyx::CallCostWebhookEvent::Data::EventType)
|
|
140
|
+
end
|
|
141
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
142
|
+
|
|
143
|
+
CALL_COST =
|
|
144
|
+
T.let(
|
|
145
|
+
:"call.cost",
|
|
146
|
+
Telnyx::CallCostWebhookEvent::Data::EventType::TaggedSymbol
|
|
147
|
+
)
|
|
148
|
+
|
|
149
|
+
sig do
|
|
150
|
+
override.returns(
|
|
151
|
+
T::Array[
|
|
152
|
+
Telnyx::CallCostWebhookEvent::Data::EventType::TaggedSymbol
|
|
153
|
+
]
|
|
154
|
+
)
|
|
155
|
+
end
|
|
156
|
+
def self.values
|
|
157
|
+
end
|
|
158
|
+
end
|
|
159
|
+
|
|
160
|
+
class Payload < Telnyx::Internal::Type::BaseModel
|
|
161
|
+
OrHash =
|
|
162
|
+
T.type_alias do
|
|
163
|
+
T.any(
|
|
164
|
+
Telnyx::CallCostWebhookEvent::Data::Payload,
|
|
165
|
+
Telnyx::Internal::AnyHash
|
|
166
|
+
)
|
|
167
|
+
end
|
|
168
|
+
|
|
169
|
+
# The longest billed duration across all cost parts, in seconds.
|
|
170
|
+
sig { returns(T.nilable(Integer)) }
|
|
171
|
+
attr_accessor :billed_duration_secs
|
|
172
|
+
|
|
173
|
+
# Identifies the billing group associated with the call.
|
|
174
|
+
sig { returns(T.nilable(String)) }
|
|
175
|
+
attr_accessor :billing_group_id
|
|
176
|
+
|
|
177
|
+
# Call ID used to issue commands via Call Control API.
|
|
178
|
+
sig { returns(T.nilable(String)) }
|
|
179
|
+
attr_reader :call_control_id
|
|
180
|
+
|
|
181
|
+
sig { params(call_control_id: String).void }
|
|
182
|
+
attr_writer :call_control_id
|
|
183
|
+
|
|
184
|
+
# ID that is unique to the call and can be used to correlate webhook events.
|
|
185
|
+
sig { returns(T.nilable(String)) }
|
|
186
|
+
attr_reader :call_leg_id
|
|
187
|
+
|
|
188
|
+
sig { params(call_leg_id: String).void }
|
|
189
|
+
attr_writer :call_leg_id
|
|
190
|
+
|
|
191
|
+
# ID that is unique to the call session and can be used to correlate webhook
|
|
192
|
+
# events. Call session is a group of related call legs that logically belong to
|
|
193
|
+
# the same phone call, e.g. an inbound and outbound leg of a transferred call.
|
|
194
|
+
sig { returns(T.nilable(String)) }
|
|
195
|
+
attr_reader :call_session_id
|
|
196
|
+
|
|
197
|
+
sig { params(call_session_id: String).void }
|
|
198
|
+
attr_writer :call_session_id
|
|
199
|
+
|
|
200
|
+
# State received from a command. Base64-encoded.
|
|
201
|
+
sig { returns(T.nilable(String)) }
|
|
202
|
+
attr_reader :client_state
|
|
203
|
+
|
|
204
|
+
sig { params(client_state: String).void }
|
|
205
|
+
attr_writer :client_state
|
|
206
|
+
|
|
207
|
+
# Call Control App ID (formerly Telnyx connection ID) used in the call.
|
|
208
|
+
sig { returns(T.nilable(String)) }
|
|
209
|
+
attr_reader :connection_id
|
|
210
|
+
|
|
211
|
+
sig { params(connection_id: String).void }
|
|
212
|
+
attr_writer :connection_id
|
|
213
|
+
|
|
214
|
+
# Breakdown of costs by call part.
|
|
215
|
+
sig do
|
|
216
|
+
returns(
|
|
217
|
+
T.nilable(
|
|
218
|
+
T::Array[Telnyx::CallCostWebhookEvent::Data::Payload::CostPart]
|
|
219
|
+
)
|
|
220
|
+
)
|
|
221
|
+
end
|
|
222
|
+
attr_reader :cost_parts
|
|
223
|
+
|
|
224
|
+
sig do
|
|
225
|
+
params(
|
|
226
|
+
cost_parts:
|
|
227
|
+
T::Array[
|
|
228
|
+
Telnyx::CallCostWebhookEvent::Data::Payload::CostPart::OrHash
|
|
229
|
+
]
|
|
230
|
+
).void
|
|
231
|
+
end
|
|
232
|
+
attr_writer :cost_parts
|
|
233
|
+
|
|
234
|
+
# ISO 8601 datetime of when the event occurred.
|
|
235
|
+
sig { returns(T.nilable(Time)) }
|
|
236
|
+
attr_reader :occurred_at
|
|
237
|
+
|
|
238
|
+
sig { params(occurred_at: Time).void }
|
|
239
|
+
attr_writer :occurred_at
|
|
240
|
+
|
|
241
|
+
# The status of the cost calculation (`success` or `error`).
|
|
242
|
+
sig do
|
|
243
|
+
returns(
|
|
244
|
+
T.nilable(
|
|
245
|
+
Telnyx::CallCostWebhookEvent::Data::Payload::Status::TaggedSymbol
|
|
246
|
+
)
|
|
247
|
+
)
|
|
248
|
+
end
|
|
249
|
+
attr_reader :status
|
|
250
|
+
|
|
251
|
+
sig do
|
|
252
|
+
params(
|
|
253
|
+
status:
|
|
254
|
+
Telnyx::CallCostWebhookEvent::Data::Payload::Status::OrSymbol
|
|
255
|
+
).void
|
|
256
|
+
end
|
|
257
|
+
attr_writer :status
|
|
258
|
+
|
|
259
|
+
# The total cost of the call.
|
|
260
|
+
sig { returns(T.nilable(String)) }
|
|
261
|
+
attr_accessor :total_cost
|
|
262
|
+
|
|
263
|
+
sig do
|
|
264
|
+
params(
|
|
265
|
+
billed_duration_secs: T.nilable(Integer),
|
|
266
|
+
billing_group_id: T.nilable(String),
|
|
267
|
+
call_control_id: String,
|
|
268
|
+
call_leg_id: String,
|
|
269
|
+
call_session_id: String,
|
|
270
|
+
client_state: String,
|
|
271
|
+
connection_id: String,
|
|
272
|
+
cost_parts:
|
|
273
|
+
T::Array[
|
|
274
|
+
Telnyx::CallCostWebhookEvent::Data::Payload::CostPart::OrHash
|
|
275
|
+
],
|
|
276
|
+
occurred_at: Time,
|
|
277
|
+
status:
|
|
278
|
+
Telnyx::CallCostWebhookEvent::Data::Payload::Status::OrSymbol,
|
|
279
|
+
total_cost: T.nilable(String)
|
|
280
|
+
).returns(T.attached_class)
|
|
281
|
+
end
|
|
282
|
+
def self.new(
|
|
283
|
+
# The longest billed duration across all cost parts, in seconds.
|
|
284
|
+
billed_duration_secs: nil,
|
|
285
|
+
# Identifies the billing group associated with the call.
|
|
286
|
+
billing_group_id: nil,
|
|
287
|
+
# Call ID used to issue commands via Call Control API.
|
|
288
|
+
call_control_id: nil,
|
|
289
|
+
# ID that is unique to the call and can be used to correlate webhook events.
|
|
290
|
+
call_leg_id: nil,
|
|
291
|
+
# ID that is unique to the call session and can be used to correlate webhook
|
|
292
|
+
# events. Call session is a group of related call legs that logically belong to
|
|
293
|
+
# the same phone call, e.g. an inbound and outbound leg of a transferred call.
|
|
294
|
+
call_session_id: nil,
|
|
295
|
+
# State received from a command. Base64-encoded.
|
|
296
|
+
client_state: nil,
|
|
297
|
+
# Call Control App ID (formerly Telnyx connection ID) used in the call.
|
|
298
|
+
connection_id: nil,
|
|
299
|
+
# Breakdown of costs by call part.
|
|
300
|
+
cost_parts: nil,
|
|
301
|
+
# ISO 8601 datetime of when the event occurred.
|
|
302
|
+
occurred_at: nil,
|
|
303
|
+
# The status of the cost calculation (`success` or `error`).
|
|
304
|
+
status: nil,
|
|
305
|
+
# The total cost of the call.
|
|
306
|
+
total_cost: nil
|
|
307
|
+
)
|
|
308
|
+
end
|
|
309
|
+
|
|
310
|
+
sig do
|
|
311
|
+
override.returns(
|
|
312
|
+
{
|
|
313
|
+
billed_duration_secs: T.nilable(Integer),
|
|
314
|
+
billing_group_id: T.nilable(String),
|
|
315
|
+
call_control_id: String,
|
|
316
|
+
call_leg_id: String,
|
|
317
|
+
call_session_id: String,
|
|
318
|
+
client_state: String,
|
|
319
|
+
connection_id: String,
|
|
320
|
+
cost_parts:
|
|
321
|
+
T::Array[
|
|
322
|
+
Telnyx::CallCostWebhookEvent::Data::Payload::CostPart
|
|
323
|
+
],
|
|
324
|
+
occurred_at: Time,
|
|
325
|
+
status:
|
|
326
|
+
Telnyx::CallCostWebhookEvent::Data::Payload::Status::TaggedSymbol,
|
|
327
|
+
total_cost: T.nilable(String)
|
|
328
|
+
}
|
|
329
|
+
)
|
|
330
|
+
end
|
|
331
|
+
def to_hash
|
|
332
|
+
end
|
|
333
|
+
|
|
334
|
+
class CostPart < Telnyx::Internal::Type::BaseModel
|
|
335
|
+
OrHash =
|
|
336
|
+
T.type_alias do
|
|
337
|
+
T.any(
|
|
338
|
+
Telnyx::CallCostWebhookEvent::Data::Payload::CostPart,
|
|
339
|
+
Telnyx::Internal::AnyHash
|
|
340
|
+
)
|
|
341
|
+
end
|
|
342
|
+
|
|
343
|
+
# The billed duration in seconds for this part of the call.
|
|
344
|
+
sig { returns(T.nilable(Integer)) }
|
|
345
|
+
attr_reader :billed_duration_secs
|
|
346
|
+
|
|
347
|
+
sig { params(billed_duration_secs: Integer).void }
|
|
348
|
+
attr_writer :billed_duration_secs
|
|
349
|
+
|
|
350
|
+
# The product component this cost applies to. Values are determined by the billing
|
|
351
|
+
# system (e.g. sip-trunking, call-control, call-recording). Not a fixed set — new
|
|
352
|
+
# values may appear as products evolve.
|
|
353
|
+
sig { returns(T.nilable(String)) }
|
|
354
|
+
attr_reader :call_part
|
|
355
|
+
|
|
356
|
+
sig { params(call_part: String).void }
|
|
357
|
+
attr_writer :call_part
|
|
358
|
+
|
|
359
|
+
# The cost for this part of the call.
|
|
360
|
+
sig { returns(T.nilable(String)) }
|
|
361
|
+
attr_reader :cost
|
|
362
|
+
|
|
363
|
+
sig { params(cost: String).void }
|
|
364
|
+
attr_writer :cost
|
|
365
|
+
|
|
366
|
+
# The currency of the cost.
|
|
367
|
+
sig { returns(T.nilable(String)) }
|
|
368
|
+
attr_reader :currency
|
|
369
|
+
|
|
370
|
+
sig { params(currency: String).void }
|
|
371
|
+
attr_writer :currency
|
|
372
|
+
|
|
373
|
+
# The per-minute rate applied.
|
|
374
|
+
sig { returns(T.nilable(String)) }
|
|
375
|
+
attr_reader :rate
|
|
376
|
+
|
|
377
|
+
sig { params(rate: String).void }
|
|
378
|
+
attr_writer :rate
|
|
379
|
+
|
|
380
|
+
sig do
|
|
381
|
+
params(
|
|
382
|
+
billed_duration_secs: Integer,
|
|
383
|
+
call_part: String,
|
|
384
|
+
cost: String,
|
|
385
|
+
currency: String,
|
|
386
|
+
rate: String
|
|
387
|
+
).returns(T.attached_class)
|
|
388
|
+
end
|
|
389
|
+
def self.new(
|
|
390
|
+
# The billed duration in seconds for this part of the call.
|
|
391
|
+
billed_duration_secs: nil,
|
|
392
|
+
# The product component this cost applies to. Values are determined by the billing
|
|
393
|
+
# system (e.g. sip-trunking, call-control, call-recording). Not a fixed set — new
|
|
394
|
+
# values may appear as products evolve.
|
|
395
|
+
call_part: nil,
|
|
396
|
+
# The cost for this part of the call.
|
|
397
|
+
cost: nil,
|
|
398
|
+
# The currency of the cost.
|
|
399
|
+
currency: nil,
|
|
400
|
+
# The per-minute rate applied.
|
|
401
|
+
rate: nil
|
|
402
|
+
)
|
|
403
|
+
end
|
|
404
|
+
|
|
405
|
+
sig do
|
|
406
|
+
override.returns(
|
|
407
|
+
{
|
|
408
|
+
billed_duration_secs: Integer,
|
|
409
|
+
call_part: String,
|
|
410
|
+
cost: String,
|
|
411
|
+
currency: String,
|
|
412
|
+
rate: String
|
|
413
|
+
}
|
|
414
|
+
)
|
|
415
|
+
end
|
|
416
|
+
def to_hash
|
|
417
|
+
end
|
|
418
|
+
end
|
|
419
|
+
|
|
420
|
+
# The status of the cost calculation (`success` or `error`).
|
|
421
|
+
module Status
|
|
422
|
+
extend Telnyx::Internal::Type::Enum
|
|
423
|
+
|
|
424
|
+
TaggedSymbol =
|
|
425
|
+
T.type_alias do
|
|
426
|
+
T.all(
|
|
427
|
+
Symbol,
|
|
428
|
+
Telnyx::CallCostWebhookEvent::Data::Payload::Status
|
|
429
|
+
)
|
|
430
|
+
end
|
|
431
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
432
|
+
|
|
433
|
+
SUCCESS =
|
|
434
|
+
T.let(
|
|
435
|
+
:success,
|
|
436
|
+
Telnyx::CallCostWebhookEvent::Data::Payload::Status::TaggedSymbol
|
|
437
|
+
)
|
|
438
|
+
ERROR =
|
|
439
|
+
T.let(
|
|
440
|
+
:error,
|
|
441
|
+
Telnyx::CallCostWebhookEvent::Data::Payload::Status::TaggedSymbol
|
|
442
|
+
)
|
|
443
|
+
|
|
444
|
+
sig do
|
|
445
|
+
override.returns(
|
|
446
|
+
T::Array[
|
|
447
|
+
Telnyx::CallCostWebhookEvent::Data::Payload::Status::TaggedSymbol
|
|
448
|
+
]
|
|
449
|
+
)
|
|
450
|
+
end
|
|
451
|
+
def self.values
|
|
452
|
+
end
|
|
453
|
+
end
|
|
454
|
+
end
|
|
455
|
+
|
|
456
|
+
# Identifies the type of the resource.
|
|
457
|
+
module RecordType
|
|
458
|
+
extend Telnyx::Internal::Type::Enum
|
|
459
|
+
|
|
460
|
+
TaggedSymbol =
|
|
461
|
+
T.type_alias do
|
|
462
|
+
T.all(Symbol, Telnyx::CallCostWebhookEvent::Data::RecordType)
|
|
463
|
+
end
|
|
464
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
465
|
+
|
|
466
|
+
EVENT =
|
|
467
|
+
T.let(
|
|
468
|
+
:event,
|
|
469
|
+
Telnyx::CallCostWebhookEvent::Data::RecordType::TaggedSymbol
|
|
470
|
+
)
|
|
471
|
+
|
|
472
|
+
sig do
|
|
473
|
+
override.returns(
|
|
474
|
+
T::Array[
|
|
475
|
+
Telnyx::CallCostWebhookEvent::Data::RecordType::TaggedSymbol
|
|
476
|
+
]
|
|
477
|
+
)
|
|
478
|
+
end
|
|
479
|
+
def self.values
|
|
480
|
+
end
|
|
481
|
+
end
|
|
482
|
+
end
|
|
483
|
+
end
|
|
484
|
+
end
|
|
485
|
+
end
|