telnyx 5.65.0 → 5.66.1

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.
Files changed (120) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +22 -0
  3. data/README.md +1 -1
  4. data/lib/telnyx/client.rb +13 -0
  5. data/lib/telnyx/models/enterprise_create_params.rb +411 -0
  6. data/lib/telnyx/models/enterprise_create_response.rb +450 -0
  7. data/lib/telnyx/models/enterprise_delete_params.rb +20 -0
  8. data/lib/telnyx/models/enterprise_list_params.rb +38 -0
  9. data/lib/telnyx/models/enterprise_list_response.rb +439 -0
  10. data/lib/telnyx/models/enterprise_retrieve_params.rb +20 -0
  11. data/lib/telnyx/models/enterprise_retrieve_response.rb +452 -0
  12. data/lib/telnyx/models/enterprise_update_params.rb +364 -0
  13. data/lib/telnyx/models/enterprise_update_response.rb +450 -0
  14. data/lib/telnyx/models/enterprises/reputation/number_create_params.rb +33 -0
  15. data/lib/telnyx/models/enterprises/reputation/number_create_response.rb +106 -0
  16. data/lib/telnyx/models/enterprises/reputation/number_delete_params.rb +30 -0
  17. data/lib/telnyx/models/enterprises/reputation/number_list_params.rb +49 -0
  18. data/lib/telnyx/models/enterprises/reputation/number_list_response.rb +154 -0
  19. data/lib/telnyx/models/enterprises/reputation/number_retrieve_params.rb +45 -0
  20. data/lib/telnyx/models/enterprises/reputation/number_retrieve_response.rb +165 -0
  21. data/lib/telnyx/models/enterprises/reputation_create_params.rb +58 -0
  22. data/lib/telnyx/models/enterprises/reputation_create_response.rb +111 -0
  23. data/lib/telnyx/models/enterprises/reputation_delete_all_params.rb +22 -0
  24. data/lib/telnyx/models/enterprises/reputation_list_params.rb +22 -0
  25. data/lib/telnyx/models/enterprises/reputation_list_response.rb +111 -0
  26. data/lib/telnyx/models/enterprises/reputation_update_frequency_params.rb +47 -0
  27. data/lib/telnyx/models/enterprises/reputation_update_frequency_response.rb +112 -0
  28. data/lib/telnyx/models/reputation/number_delete_params.rb +22 -0
  29. data/lib/telnyx/models/reputation/number_list_params.rb +40 -0
  30. data/lib/telnyx/models/reputation/number_list_response.rb +151 -0
  31. data/lib/telnyx/models/reputation/number_retrieve_params.rb +35 -0
  32. data/lib/telnyx/models/reputation/number_retrieve_response.rb +163 -0
  33. data/lib/telnyx/models/terms_of_service/number_reputation_agree_params.rb +16 -0
  34. data/lib/telnyx/models.rb +16 -0
  35. data/lib/telnyx/resources/enterprises/reputation/numbers.rb +174 -0
  36. data/lib/telnyx/resources/enterprises/reputation.rb +166 -0
  37. data/lib/telnyx/resources/enterprises.rb +217 -0
  38. data/lib/telnyx/resources/reputation/numbers.rb +102 -0
  39. data/lib/telnyx/resources/reputation.rb +20 -0
  40. data/lib/telnyx/resources/terms_of_service/number_reputation.rb +39 -0
  41. data/lib/telnyx/resources/terms_of_service.rb +19 -0
  42. data/lib/telnyx/version.rb +1 -1
  43. data/lib/telnyx.rb +36 -0
  44. data/rbi/telnyx/client.rbi +10 -0
  45. data/rbi/telnyx/models/enterprise_create_params.rbi +719 -0
  46. data/rbi/telnyx/models/enterprise_create_response.rbi +841 -0
  47. data/rbi/telnyx/models/enterprise_delete_params.rbi +35 -0
  48. data/rbi/telnyx/models/enterprise_list_params.rbi +68 -0
  49. data/rbi/telnyx/models/enterprise_list_response.rbi +794 -0
  50. data/rbi/telnyx/models/enterprise_retrieve_params.rbi +35 -0
  51. data/rbi/telnyx/models/enterprise_retrieve_response.rbi +843 -0
  52. data/rbi/telnyx/models/enterprise_update_params.rbi +651 -0
  53. data/rbi/telnyx/models/enterprise_update_response.rbi +841 -0
  54. data/rbi/telnyx/models/enterprises/reputation/number_create_params.rbi +56 -0
  55. data/rbi/telnyx/models/enterprises/reputation/number_create_response.rbi +238 -0
  56. data/rbi/telnyx/models/enterprises/reputation/number_delete_params.rbi +50 -0
  57. data/rbi/telnyx/models/enterprises/reputation/number_list_params.rbi +81 -0
  58. data/rbi/telnyx/models/enterprises/reputation/number_list_response.rbi +288 -0
  59. data/rbi/telnyx/models/enterprises/reputation/number_retrieve_params.rbi +67 -0
  60. data/rbi/telnyx/models/enterprises/reputation/number_retrieve_response.rbi +335 -0
  61. data/rbi/telnyx/models/enterprises/reputation_create_params.rbi +135 -0
  62. data/rbi/telnyx/models/enterprises/reputation_create_response.rbi +277 -0
  63. data/rbi/telnyx/models/enterprises/reputation_delete_all_params.rbi +40 -0
  64. data/rbi/telnyx/models/enterprises/reputation_list_params.rbi +40 -0
  65. data/rbi/telnyx/models/enterprises/reputation_list_response.rbi +273 -0
  66. data/rbi/telnyx/models/enterprises/reputation_update_frequency_params.rbi +115 -0
  67. data/rbi/telnyx/models/enterprises/reputation_update_frequency_response.rbi +278 -0
  68. data/rbi/telnyx/models/reputation/number_delete_params.rbi +40 -0
  69. data/rbi/telnyx/models/reputation/number_list_params.rbi +73 -0
  70. data/rbi/telnyx/models/reputation/number_list_response.rbi +286 -0
  71. data/rbi/telnyx/models/reputation/number_retrieve_params.rbi +59 -0
  72. data/rbi/telnyx/models/reputation/number_retrieve_response.rbi +328 -0
  73. data/rbi/telnyx/models/terms_of_service/number_reputation_agree_params.rbi +32 -0
  74. data/rbi/telnyx/models.rbi +16 -0
  75. data/rbi/telnyx/resources/enterprises/reputation/numbers.rbi +142 -0
  76. data/rbi/telnyx/resources/enterprises/reputation.rbi +140 -0
  77. data/rbi/telnyx/resources/enterprises.rbi +226 -0
  78. data/rbi/telnyx/resources/reputation/numbers.rbi +80 -0
  79. data/rbi/telnyx/resources/reputation.rbi +17 -0
  80. data/rbi/telnyx/resources/terms_of_service/number_reputation.rbi +24 -0
  81. data/rbi/telnyx/resources/terms_of_service.rbi +16 -0
  82. data/sig/telnyx/client.rbs +6 -0
  83. data/sig/telnyx/models/enterprise_create_params.rbs +344 -0
  84. data/sig/telnyx/models/enterprise_create_response.rbs +392 -0
  85. data/sig/telnyx/models/enterprise_delete_params.rbs +23 -0
  86. data/sig/telnyx/models/enterprise_list_params.rbs +38 -0
  87. data/sig/telnyx/models/enterprise_list_response.rbs +375 -0
  88. data/sig/telnyx/models/enterprise_retrieve_params.rbs +23 -0
  89. data/sig/telnyx/models/enterprise_retrieve_response.rbs +392 -0
  90. data/sig/telnyx/models/enterprise_update_params.rbs +341 -0
  91. data/sig/telnyx/models/enterprise_update_response.rbs +392 -0
  92. data/sig/telnyx/models/enterprises/reputation/number_create_params.rbs +32 -0
  93. data/sig/telnyx/models/enterprises/reputation/number_create_response.rbs +124 -0
  94. data/sig/telnyx/models/enterprises/reputation/number_delete_params.rbs +32 -0
  95. data/sig/telnyx/models/enterprises/reputation/number_list_params.rbs +51 -0
  96. data/sig/telnyx/models/enterprises/reputation/number_list_response.rbs +132 -0
  97. data/sig/telnyx/models/enterprises/reputation/number_retrieve_params.rbs +38 -0
  98. data/sig/telnyx/models/enterprises/reputation/number_retrieve_response.rbs +153 -0
  99. data/sig/telnyx/models/enterprises/reputation_create_params.rbs +58 -0
  100. data/sig/telnyx/models/enterprises/reputation_create_response.rbs +114 -0
  101. data/sig/telnyx/models/enterprises/reputation_delete_all_params.rbs +25 -0
  102. data/sig/telnyx/models/enterprises/reputation_list_params.rbs +25 -0
  103. data/sig/telnyx/models/enterprises/reputation_list_response.rbs +114 -0
  104. data/sig/telnyx/models/enterprises/reputation_update_frequency_params.rbs +49 -0
  105. data/sig/telnyx/models/enterprises/reputation_update_frequency_response.rbs +116 -0
  106. data/sig/telnyx/models/reputation/number_delete_params.rbs +25 -0
  107. data/sig/telnyx/models/reputation/number_list_params.rbs +40 -0
  108. data/sig/telnyx/models/reputation/number_list_response.rbs +130 -0
  109. data/sig/telnyx/models/reputation/number_retrieve_params.rbs +32 -0
  110. data/sig/telnyx/models/reputation/number_retrieve_response.rbs +149 -0
  111. data/sig/telnyx/models/terms_of_service/number_reputation_agree_params.rbs +17 -0
  112. data/sig/telnyx/models.rbs +16 -0
  113. data/sig/telnyx/resources/enterprises/reputation/numbers.rbs +38 -0
  114. data/sig/telnyx/resources/enterprises/reputation.rbs +34 -0
  115. data/sig/telnyx/resources/enterprises.rbs +70 -0
  116. data/sig/telnyx/resources/reputation/numbers.rbs +27 -0
  117. data/sig/telnyx/resources/reputation.rbs +9 -0
  118. data/sig/telnyx/resources/terms_of_service/number_reputation.rbs +11 -0
  119. data/sig/telnyx/resources/terms_of_service.rbs +9 -0
  120. metadata +110 -2
@@ -0,0 +1,286 @@
1
+ # typed: strong
2
+
3
+ module Telnyx
4
+ module Models
5
+ module Reputation
6
+ class NumberListResponse < Telnyx::Internal::Type::BaseModel
7
+ OrHash =
8
+ T.type_alias do
9
+ T.any(
10
+ Telnyx::Models::Reputation::NumberListResponse,
11
+ Telnyx::Internal::AnyHash
12
+ )
13
+ end
14
+
15
+ # Unique identifier
16
+ sig { returns(T.nilable(String)) }
17
+ attr_reader :id
18
+
19
+ sig { params(id: String).void }
20
+ attr_writer :id
21
+
22
+ # When the number was associated
23
+ sig { returns(T.nilable(Time)) }
24
+ attr_reader :created_at
25
+
26
+ sig { params(created_at: Time).void }
27
+ attr_writer :created_at
28
+
29
+ # ID of the associated enterprise
30
+ sig { returns(T.nilable(String)) }
31
+ attr_reader :enterprise_id
32
+
33
+ sig { params(enterprise_id: String).void }
34
+ attr_writer :enterprise_id
35
+
36
+ # Phone number in E.164 format
37
+ sig { returns(T.nilable(String)) }
38
+ attr_reader :phone_number
39
+
40
+ sig { params(phone_number: String).void }
41
+ attr_writer :phone_number
42
+
43
+ # Reputation metrics (null if not yet fetched)
44
+ sig do
45
+ returns(
46
+ T.nilable(
47
+ Telnyx::Models::Reputation::NumberListResponse::ReputationData::Variants
48
+ )
49
+ )
50
+ end
51
+ attr_reader :reputation_data
52
+
53
+ sig do
54
+ params(
55
+ reputation_data:
56
+ T.nilable(
57
+ T.any(
58
+ Telnyx::Models::Reputation::NumberListResponse::ReputationData::ReputationData::OrHash,
59
+ T.anything
60
+ )
61
+ )
62
+ ).void
63
+ end
64
+ attr_writer :reputation_data
65
+
66
+ # When the record was last updated
67
+ sig { returns(T.nilable(Time)) }
68
+ attr_reader :updated_at
69
+
70
+ sig { params(updated_at: Time).void }
71
+ attr_writer :updated_at
72
+
73
+ sig do
74
+ params(
75
+ id: String,
76
+ created_at: Time,
77
+ enterprise_id: String,
78
+ phone_number: String,
79
+ reputation_data:
80
+ T.nilable(
81
+ T.any(
82
+ Telnyx::Models::Reputation::NumberListResponse::ReputationData::ReputationData::OrHash,
83
+ T.anything
84
+ )
85
+ ),
86
+ updated_at: Time
87
+ ).returns(T.attached_class)
88
+ end
89
+ def self.new(
90
+ # Unique identifier
91
+ id: nil,
92
+ # When the number was associated
93
+ created_at: nil,
94
+ # ID of the associated enterprise
95
+ enterprise_id: nil,
96
+ # Phone number in E.164 format
97
+ phone_number: nil,
98
+ # Reputation metrics (null if not yet fetched)
99
+ reputation_data: nil,
100
+ # When the record was last updated
101
+ updated_at: nil
102
+ )
103
+ end
104
+
105
+ sig do
106
+ override.returns(
107
+ {
108
+ id: String,
109
+ created_at: Time,
110
+ enterprise_id: String,
111
+ phone_number: String,
112
+ reputation_data:
113
+ T.nilable(
114
+ Telnyx::Models::Reputation::NumberListResponse::ReputationData::Variants
115
+ ),
116
+ updated_at: Time
117
+ }
118
+ )
119
+ end
120
+ def to_hash
121
+ end
122
+
123
+ # Reputation metrics (null if not yet fetched)
124
+ module ReputationData
125
+ extend Telnyx::Internal::Type::Union
126
+
127
+ Variants =
128
+ T.type_alias do
129
+ T.nilable(
130
+ T.any(
131
+ Telnyx::Models::Reputation::NumberListResponse::ReputationData::ReputationData,
132
+ T.anything
133
+ )
134
+ )
135
+ end
136
+
137
+ class ReputationData < Telnyx::Internal::Type::BaseModel
138
+ OrHash =
139
+ T.type_alias do
140
+ T.any(
141
+ Telnyx::Models::Reputation::NumberListResponse::ReputationData::ReputationData,
142
+ Telnyx::Internal::AnyHash
143
+ )
144
+ end
145
+
146
+ # Connection quality metric (0–100)
147
+ sig { returns(T.nilable(Integer)) }
148
+ attr_accessor :connection_score
149
+
150
+ # Engagement metric (0–100). Higher = more positive engagement
151
+ sig { returns(T.nilable(Integer)) }
152
+ attr_accessor :engagement_score
153
+
154
+ # Timestamp of the last reputation data refresh
155
+ sig { returns(T.nilable(Time)) }
156
+ attr_accessor :last_refreshed_at
157
+
158
+ # Maturity metric (0–100). Higher = more established number
159
+ sig { returns(T.nilable(Integer)) }
160
+ attr_accessor :maturity_score
161
+
162
+ # Sentiment metric (0–100). Higher = more positive sentiment
163
+ sig { returns(T.nilable(Integer)) }
164
+ attr_accessor :sentiment_score
165
+
166
+ # Spam category classification (e.g., Telemarketing, Debt Collector)
167
+ sig { returns(T.nilable(String)) }
168
+ attr_accessor :spam_category
169
+
170
+ # Overall spam risk level
171
+ sig do
172
+ returns(
173
+ T.nilable(
174
+ Telnyx::Models::Reputation::NumberListResponse::ReputationData::ReputationData::SpamRisk::TaggedSymbol
175
+ )
176
+ )
177
+ end
178
+ attr_accessor :spam_risk
179
+
180
+ # Reputation metrics
181
+ sig do
182
+ params(
183
+ connection_score: T.nilable(Integer),
184
+ engagement_score: T.nilable(Integer),
185
+ last_refreshed_at: T.nilable(Time),
186
+ maturity_score: T.nilable(Integer),
187
+ sentiment_score: T.nilable(Integer),
188
+ spam_category: T.nilable(String),
189
+ spam_risk:
190
+ T.nilable(
191
+ Telnyx::Models::Reputation::NumberListResponse::ReputationData::ReputationData::SpamRisk::OrSymbol
192
+ )
193
+ ).returns(T.attached_class)
194
+ end
195
+ def self.new(
196
+ # Connection quality metric (0–100)
197
+ connection_score: nil,
198
+ # Engagement metric (0–100). Higher = more positive engagement
199
+ engagement_score: nil,
200
+ # Timestamp of the last reputation data refresh
201
+ last_refreshed_at: nil,
202
+ # Maturity metric (0–100). Higher = more established number
203
+ maturity_score: nil,
204
+ # Sentiment metric (0–100). Higher = more positive sentiment
205
+ sentiment_score: nil,
206
+ # Spam category classification (e.g., Telemarketing, Debt Collector)
207
+ spam_category: nil,
208
+ # Overall spam risk level
209
+ spam_risk: nil
210
+ )
211
+ end
212
+
213
+ sig do
214
+ override.returns(
215
+ {
216
+ connection_score: T.nilable(Integer),
217
+ engagement_score: T.nilable(Integer),
218
+ last_refreshed_at: T.nilable(Time),
219
+ maturity_score: T.nilable(Integer),
220
+ sentiment_score: T.nilable(Integer),
221
+ spam_category: T.nilable(String),
222
+ spam_risk:
223
+ T.nilable(
224
+ Telnyx::Models::Reputation::NumberListResponse::ReputationData::ReputationData::SpamRisk::TaggedSymbol
225
+ )
226
+ }
227
+ )
228
+ end
229
+ def to_hash
230
+ end
231
+
232
+ # Overall spam risk level
233
+ module SpamRisk
234
+ extend Telnyx::Internal::Type::Enum
235
+
236
+ TaggedSymbol =
237
+ T.type_alias do
238
+ T.all(
239
+ Symbol,
240
+ Telnyx::Models::Reputation::NumberListResponse::ReputationData::ReputationData::SpamRisk
241
+ )
242
+ end
243
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
244
+
245
+ LOW =
246
+ T.let(
247
+ :low,
248
+ Telnyx::Models::Reputation::NumberListResponse::ReputationData::ReputationData::SpamRisk::TaggedSymbol
249
+ )
250
+ MEDIUM =
251
+ T.let(
252
+ :medium,
253
+ Telnyx::Models::Reputation::NumberListResponse::ReputationData::ReputationData::SpamRisk::TaggedSymbol
254
+ )
255
+ HIGH =
256
+ T.let(
257
+ :high,
258
+ Telnyx::Models::Reputation::NumberListResponse::ReputationData::ReputationData::SpamRisk::TaggedSymbol
259
+ )
260
+
261
+ sig do
262
+ override.returns(
263
+ T::Array[
264
+ Telnyx::Models::Reputation::NumberListResponse::ReputationData::ReputationData::SpamRisk::TaggedSymbol
265
+ ]
266
+ )
267
+ end
268
+ def self.values
269
+ end
270
+ end
271
+ end
272
+
273
+ sig do
274
+ override.returns(
275
+ T::Array[
276
+ Telnyx::Models::Reputation::NumberListResponse::ReputationData::Variants
277
+ ]
278
+ )
279
+ end
280
+ def self.variants
281
+ end
282
+ end
283
+ end
284
+ end
285
+ end
286
+ end
@@ -0,0 +1,59 @@
1
+ # typed: strong
2
+
3
+ module Telnyx
4
+ module Models
5
+ module Reputation
6
+ class NumberRetrieveParams < Telnyx::Internal::Type::BaseModel
7
+ extend Telnyx::Internal::Type::RequestParameters::Converter
8
+ include Telnyx::Internal::Type::RequestParameters
9
+
10
+ OrHash =
11
+ T.type_alias do
12
+ T.any(
13
+ Telnyx::Reputation::NumberRetrieveParams,
14
+ Telnyx::Internal::AnyHash
15
+ )
16
+ end
17
+
18
+ sig { returns(String) }
19
+ attr_accessor :phone_number
20
+
21
+ # When true, fetches fresh reputation data (incurs API cost). When false, returns
22
+ # cached data.
23
+ sig { returns(T.nilable(T::Boolean)) }
24
+ attr_reader :fresh
25
+
26
+ sig { params(fresh: T::Boolean).void }
27
+ attr_writer :fresh
28
+
29
+ sig do
30
+ params(
31
+ phone_number: String,
32
+ fresh: T::Boolean,
33
+ request_options: Telnyx::RequestOptions::OrHash
34
+ ).returns(T.attached_class)
35
+ end
36
+ def self.new(
37
+ phone_number:,
38
+ # When true, fetches fresh reputation data (incurs API cost). When false, returns
39
+ # cached data.
40
+ fresh: nil,
41
+ request_options: {}
42
+ )
43
+ end
44
+
45
+ sig do
46
+ override.returns(
47
+ {
48
+ phone_number: String,
49
+ fresh: T::Boolean,
50
+ request_options: Telnyx::RequestOptions
51
+ }
52
+ )
53
+ end
54
+ def to_hash
55
+ end
56
+ end
57
+ end
58
+ end
59
+ end
@@ -0,0 +1,328 @@
1
+ # typed: strong
2
+
3
+ module Telnyx
4
+ module Models
5
+ module Reputation
6
+ class NumberRetrieveResponse < Telnyx::Internal::Type::BaseModel
7
+ OrHash =
8
+ T.type_alias do
9
+ T.any(
10
+ Telnyx::Models::Reputation::NumberRetrieveResponse,
11
+ Telnyx::Internal::AnyHash
12
+ )
13
+ end
14
+
15
+ sig do
16
+ returns(
17
+ T.nilable(Telnyx::Models::Reputation::NumberRetrieveResponse::Data)
18
+ )
19
+ end
20
+ attr_reader :data
21
+
22
+ sig do
23
+ params(
24
+ data:
25
+ Telnyx::Models::Reputation::NumberRetrieveResponse::Data::OrHash
26
+ ).void
27
+ end
28
+ attr_writer :data
29
+
30
+ sig do
31
+ params(
32
+ data:
33
+ Telnyx::Models::Reputation::NumberRetrieveResponse::Data::OrHash
34
+ ).returns(T.attached_class)
35
+ end
36
+ def self.new(data: nil)
37
+ end
38
+
39
+ sig do
40
+ override.returns(
41
+ { data: Telnyx::Models::Reputation::NumberRetrieveResponse::Data }
42
+ )
43
+ end
44
+ def to_hash
45
+ end
46
+
47
+ class Data < Telnyx::Internal::Type::BaseModel
48
+ OrHash =
49
+ T.type_alias do
50
+ T.any(
51
+ Telnyx::Models::Reputation::NumberRetrieveResponse::Data,
52
+ Telnyx::Internal::AnyHash
53
+ )
54
+ end
55
+
56
+ # Unique identifier
57
+ sig { returns(T.nilable(String)) }
58
+ attr_reader :id
59
+
60
+ sig { params(id: String).void }
61
+ attr_writer :id
62
+
63
+ # When the number was associated
64
+ sig { returns(T.nilable(Time)) }
65
+ attr_reader :created_at
66
+
67
+ sig { params(created_at: Time).void }
68
+ attr_writer :created_at
69
+
70
+ # ID of the associated enterprise
71
+ sig { returns(T.nilable(String)) }
72
+ attr_reader :enterprise_id
73
+
74
+ sig { params(enterprise_id: String).void }
75
+ attr_writer :enterprise_id
76
+
77
+ # Phone number in E.164 format
78
+ sig { returns(T.nilable(String)) }
79
+ attr_reader :phone_number
80
+
81
+ sig { params(phone_number: String).void }
82
+ attr_writer :phone_number
83
+
84
+ # Reputation metrics (null if not yet fetched)
85
+ sig do
86
+ returns(
87
+ T.nilable(
88
+ Telnyx::Models::Reputation::NumberRetrieveResponse::Data::ReputationData::Variants
89
+ )
90
+ )
91
+ end
92
+ attr_reader :reputation_data
93
+
94
+ sig do
95
+ params(
96
+ reputation_data:
97
+ T.nilable(
98
+ T.any(
99
+ Telnyx::Models::Reputation::NumberRetrieveResponse::Data::ReputationData::ReputationData::OrHash,
100
+ T.anything
101
+ )
102
+ )
103
+ ).void
104
+ end
105
+ attr_writer :reputation_data
106
+
107
+ # When the record was last updated
108
+ sig { returns(T.nilable(Time)) }
109
+ attr_reader :updated_at
110
+
111
+ sig { params(updated_at: Time).void }
112
+ attr_writer :updated_at
113
+
114
+ sig do
115
+ params(
116
+ id: String,
117
+ created_at: Time,
118
+ enterprise_id: String,
119
+ phone_number: String,
120
+ reputation_data:
121
+ T.nilable(
122
+ T.any(
123
+ Telnyx::Models::Reputation::NumberRetrieveResponse::Data::ReputationData::ReputationData::OrHash,
124
+ T.anything
125
+ )
126
+ ),
127
+ updated_at: Time
128
+ ).returns(T.attached_class)
129
+ end
130
+ def self.new(
131
+ # Unique identifier
132
+ id: nil,
133
+ # When the number was associated
134
+ created_at: nil,
135
+ # ID of the associated enterprise
136
+ enterprise_id: nil,
137
+ # Phone number in E.164 format
138
+ phone_number: nil,
139
+ # Reputation metrics (null if not yet fetched)
140
+ reputation_data: nil,
141
+ # When the record was last updated
142
+ updated_at: nil
143
+ )
144
+ end
145
+
146
+ sig do
147
+ override.returns(
148
+ {
149
+ id: String,
150
+ created_at: Time,
151
+ enterprise_id: String,
152
+ phone_number: String,
153
+ reputation_data:
154
+ T.nilable(
155
+ Telnyx::Models::Reputation::NumberRetrieveResponse::Data::ReputationData::Variants
156
+ ),
157
+ updated_at: Time
158
+ }
159
+ )
160
+ end
161
+ def to_hash
162
+ end
163
+
164
+ # Reputation metrics (null if not yet fetched)
165
+ module ReputationData
166
+ extend Telnyx::Internal::Type::Union
167
+
168
+ Variants =
169
+ T.type_alias do
170
+ T.nilable(
171
+ T.any(
172
+ Telnyx::Models::Reputation::NumberRetrieveResponse::Data::ReputationData::ReputationData,
173
+ T.anything
174
+ )
175
+ )
176
+ end
177
+
178
+ class ReputationData < Telnyx::Internal::Type::BaseModel
179
+ OrHash =
180
+ T.type_alias do
181
+ T.any(
182
+ Telnyx::Models::Reputation::NumberRetrieveResponse::Data::ReputationData::ReputationData,
183
+ Telnyx::Internal::AnyHash
184
+ )
185
+ end
186
+
187
+ # Connection quality metric (0–100)
188
+ sig { returns(T.nilable(Integer)) }
189
+ attr_accessor :connection_score
190
+
191
+ # Engagement metric (0–100). Higher = more positive engagement
192
+ sig { returns(T.nilable(Integer)) }
193
+ attr_accessor :engagement_score
194
+
195
+ # Timestamp of the last reputation data refresh
196
+ sig { returns(T.nilable(Time)) }
197
+ attr_accessor :last_refreshed_at
198
+
199
+ # Maturity metric (0–100). Higher = more established number
200
+ sig { returns(T.nilable(Integer)) }
201
+ attr_accessor :maturity_score
202
+
203
+ # Sentiment metric (0–100). Higher = more positive sentiment
204
+ sig { returns(T.nilable(Integer)) }
205
+ attr_accessor :sentiment_score
206
+
207
+ # Spam category classification (e.g., Telemarketing, Debt Collector)
208
+ sig { returns(T.nilable(String)) }
209
+ attr_accessor :spam_category
210
+
211
+ # Overall spam risk level
212
+ sig do
213
+ returns(
214
+ T.nilable(
215
+ Telnyx::Models::Reputation::NumberRetrieveResponse::Data::ReputationData::ReputationData::SpamRisk::TaggedSymbol
216
+ )
217
+ )
218
+ end
219
+ attr_accessor :spam_risk
220
+
221
+ # Reputation metrics
222
+ sig do
223
+ params(
224
+ connection_score: T.nilable(Integer),
225
+ engagement_score: T.nilable(Integer),
226
+ last_refreshed_at: T.nilable(Time),
227
+ maturity_score: T.nilable(Integer),
228
+ sentiment_score: T.nilable(Integer),
229
+ spam_category: T.nilable(String),
230
+ spam_risk:
231
+ T.nilable(
232
+ Telnyx::Models::Reputation::NumberRetrieveResponse::Data::ReputationData::ReputationData::SpamRisk::OrSymbol
233
+ )
234
+ ).returns(T.attached_class)
235
+ end
236
+ def self.new(
237
+ # Connection quality metric (0–100)
238
+ connection_score: nil,
239
+ # Engagement metric (0–100). Higher = more positive engagement
240
+ engagement_score: nil,
241
+ # Timestamp of the last reputation data refresh
242
+ last_refreshed_at: nil,
243
+ # Maturity metric (0–100). Higher = more established number
244
+ maturity_score: nil,
245
+ # Sentiment metric (0–100). Higher = more positive sentiment
246
+ sentiment_score: nil,
247
+ # Spam category classification (e.g., Telemarketing, Debt Collector)
248
+ spam_category: nil,
249
+ # Overall spam risk level
250
+ spam_risk: nil
251
+ )
252
+ end
253
+
254
+ sig do
255
+ override.returns(
256
+ {
257
+ connection_score: T.nilable(Integer),
258
+ engagement_score: T.nilable(Integer),
259
+ last_refreshed_at: T.nilable(Time),
260
+ maturity_score: T.nilable(Integer),
261
+ sentiment_score: T.nilable(Integer),
262
+ spam_category: T.nilable(String),
263
+ spam_risk:
264
+ T.nilable(
265
+ Telnyx::Models::Reputation::NumberRetrieveResponse::Data::ReputationData::ReputationData::SpamRisk::TaggedSymbol
266
+ )
267
+ }
268
+ )
269
+ end
270
+ def to_hash
271
+ end
272
+
273
+ # Overall spam risk level
274
+ module SpamRisk
275
+ extend Telnyx::Internal::Type::Enum
276
+
277
+ TaggedSymbol =
278
+ T.type_alias do
279
+ T.all(
280
+ Symbol,
281
+ Telnyx::Models::Reputation::NumberRetrieveResponse::Data::ReputationData::ReputationData::SpamRisk
282
+ )
283
+ end
284
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
285
+
286
+ LOW =
287
+ T.let(
288
+ :low,
289
+ Telnyx::Models::Reputation::NumberRetrieveResponse::Data::ReputationData::ReputationData::SpamRisk::TaggedSymbol
290
+ )
291
+ MEDIUM =
292
+ T.let(
293
+ :medium,
294
+ Telnyx::Models::Reputation::NumberRetrieveResponse::Data::ReputationData::ReputationData::SpamRisk::TaggedSymbol
295
+ )
296
+ HIGH =
297
+ T.let(
298
+ :high,
299
+ Telnyx::Models::Reputation::NumberRetrieveResponse::Data::ReputationData::ReputationData::SpamRisk::TaggedSymbol
300
+ )
301
+
302
+ sig do
303
+ override.returns(
304
+ T::Array[
305
+ Telnyx::Models::Reputation::NumberRetrieveResponse::Data::ReputationData::ReputationData::SpamRisk::TaggedSymbol
306
+ ]
307
+ )
308
+ end
309
+ def self.values
310
+ end
311
+ end
312
+ end
313
+
314
+ sig do
315
+ override.returns(
316
+ T::Array[
317
+ Telnyx::Models::Reputation::NumberRetrieveResponse::Data::ReputationData::Variants
318
+ ]
319
+ )
320
+ end
321
+ def self.variants
322
+ end
323
+ end
324
+ end
325
+ end
326
+ end
327
+ end
328
+ end
@@ -0,0 +1,32 @@
1
+ # typed: strong
2
+
3
+ module Telnyx
4
+ module Models
5
+ module TermsOfService
6
+ class NumberReputationAgreeParams < Telnyx::Internal::Type::BaseModel
7
+ extend Telnyx::Internal::Type::RequestParameters::Converter
8
+ include Telnyx::Internal::Type::RequestParameters
9
+
10
+ OrHash =
11
+ T.type_alias do
12
+ T.any(
13
+ Telnyx::TermsOfService::NumberReputationAgreeParams,
14
+ Telnyx::Internal::AnyHash
15
+ )
16
+ end
17
+
18
+ sig do
19
+ params(request_options: Telnyx::RequestOptions::OrHash).returns(
20
+ T.attached_class
21
+ )
22
+ end
23
+ def self.new(request_options: {})
24
+ end
25
+
26
+ sig { override.returns({ request_options: Telnyx::RequestOptions }) }
27
+ def to_hash
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end