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,174 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Telnyx
4
+ module Resources
5
+ class Enterprises
6
+ class Reputation
7
+ # Associate phone numbers with an enterprise for reputation monitoring and
8
+ # retrieve reputation scores
9
+ class Numbers
10
+ # Associate one or more phone numbers with an enterprise for Number Reputation
11
+ # monitoring.
12
+ #
13
+ # **Validations:**
14
+ #
15
+ # - Phone numbers must be in E.164 format (e.g., `+16035551234`)
16
+ # - Phone numbers must be in-service and belong to your account (verified via
17
+ # Warehouse)
18
+ # - Phone numbers must be US local numbers
19
+ # - Phone numbers cannot already be associated with any enterprise
20
+ #
21
+ # **Note:** This operation is atomic — if any number fails validation, the entire
22
+ # request fails.
23
+ #
24
+ # **Maximum:** 100 phone numbers per request.
25
+ #
26
+ # @overload create(enterprise_id, phone_numbers:, request_options: {})
27
+ #
28
+ # @param enterprise_id [String] Unique identifier of the enterprise (UUID)
29
+ #
30
+ # @param phone_numbers [Array<String>] List of phone numbers to associate for reputation monitoring (max 100)
31
+ #
32
+ # @param request_options [Telnyx::RequestOptions, Hash{Symbol=>Object}, nil]
33
+ #
34
+ # @return [Telnyx::Models::Enterprises::Reputation::NumberCreateResponse]
35
+ #
36
+ # @see Telnyx::Models::Enterprises::Reputation::NumberCreateParams
37
+ def create(enterprise_id, params)
38
+ parsed, options = Telnyx::Enterprises::Reputation::NumberCreateParams.dump_request(params)
39
+ @client.request(
40
+ method: :post,
41
+ path: ["enterprises/%1$s/reputation/numbers", enterprise_id],
42
+ body: parsed,
43
+ model: Telnyx::Models::Enterprises::Reputation::NumberCreateResponse,
44
+ options: options
45
+ )
46
+ end
47
+
48
+ # Some parameter documentations has been truncated, see
49
+ # {Telnyx::Models::Enterprises::Reputation::NumberRetrieveParams} for more
50
+ # details.
51
+ #
52
+ # Get detailed reputation data for a specific phone number associated with an
53
+ # enterprise.
54
+ #
55
+ # **Query Parameters:**
56
+ #
57
+ # - `fresh` (default: `false`): When `true`, fetches fresh reputation data (incurs
58
+ # API cost). When `false`, returns cached data. If no cached data exists, fresh
59
+ # data is automatically fetched.
60
+ #
61
+ # **Returns:**
62
+ #
63
+ # - `spam_risk`: Overall spam risk level (`low`, `medium`, `high`)
64
+ # - `spam_category`: Spam category classification
65
+ # - `maturity_score`: Maturity metric (0–100)
66
+ # - `connection_score`: Connection quality metric (0–100)
67
+ # - `engagement_score`: Engagement metric (0–100)
68
+ # - `sentiment_score`: Sentiment metric (0–100)
69
+ # - `last_refreshed_at`: Timestamp of last data refresh
70
+ #
71
+ # @overload retrieve(phone_number, enterprise_id:, fresh: nil, request_options: {})
72
+ #
73
+ # @param phone_number [String] Path param: Phone number in E.164 format
74
+ #
75
+ # @param enterprise_id [String] Path param: Unique identifier of the enterprise (UUID)
76
+ #
77
+ # @param fresh [Boolean] Query param: When true, fetches fresh reputation data (incurs API cost). When fa
78
+ #
79
+ # @param request_options [Telnyx::RequestOptions, Hash{Symbol=>Object}, nil]
80
+ #
81
+ # @return [Telnyx::Models::Enterprises::Reputation::NumberRetrieveResponse]
82
+ #
83
+ # @see Telnyx::Models::Enterprises::Reputation::NumberRetrieveParams
84
+ def retrieve(phone_number, params)
85
+ parsed, options = Telnyx::Enterprises::Reputation::NumberRetrieveParams.dump_request(params)
86
+ query = Telnyx::Internal::Util.encode_query_params(parsed)
87
+ enterprise_id =
88
+ parsed.delete(:enterprise_id) do
89
+ raise ArgumentError.new("missing required path argument #{_1}")
90
+ end
91
+ @client.request(
92
+ method: :get,
93
+ path: ["enterprises/%1$s/reputation/numbers/%2$s", enterprise_id, phone_number],
94
+ query: query,
95
+ model: Telnyx::Models::Enterprises::Reputation::NumberRetrieveResponse,
96
+ options: options
97
+ )
98
+ end
99
+
100
+ # List all phone numbers associated with an enterprise for Number Reputation
101
+ # monitoring.
102
+ #
103
+ # Returns phone numbers with their cached reputation data (if available). Supports
104
+ # pagination and filtering by phone number.
105
+ #
106
+ # @overload list(enterprise_id, page_number: nil, page_size: nil, phone_number: nil, request_options: {})
107
+ #
108
+ # @param enterprise_id [String] Unique identifier of the enterprise (UUID)
109
+ #
110
+ # @param page_number [Integer] Page number (1-indexed)
111
+ #
112
+ # @param page_size [Integer] Number of items per page
113
+ #
114
+ # @param phone_number [String] Filter by specific phone number (E.164 format)
115
+ #
116
+ # @param request_options [Telnyx::RequestOptions, Hash{Symbol=>Object}, nil]
117
+ #
118
+ # @return [Telnyx::Internal::DefaultFlatPagination<Telnyx::Models::Enterprises::Reputation::NumberListResponse>]
119
+ #
120
+ # @see Telnyx::Models::Enterprises::Reputation::NumberListParams
121
+ def list(enterprise_id, params = {})
122
+ parsed, options = Telnyx::Enterprises::Reputation::NumberListParams.dump_request(params)
123
+ query = Telnyx::Internal::Util.encode_query_params(parsed)
124
+ @client.request(
125
+ method: :get,
126
+ path: ["enterprises/%1$s/reputation/numbers", enterprise_id],
127
+ query: query.transform_keys(page_number: "page[number]", page_size: "page[size]"),
128
+ page: Telnyx::Internal::DefaultFlatPagination,
129
+ model: Telnyx::Models::Enterprises::Reputation::NumberListResponse,
130
+ options: options
131
+ )
132
+ end
133
+
134
+ # Remove a phone number from Number Reputation monitoring for an enterprise.
135
+ #
136
+ # The number will no longer be tracked and reputation data will no longer be
137
+ # refreshed.
138
+ #
139
+ # @overload delete(phone_number, enterprise_id:, request_options: {})
140
+ #
141
+ # @param phone_number [String] Phone number in E.164 format
142
+ #
143
+ # @param enterprise_id [String] Unique identifier of the enterprise (UUID)
144
+ #
145
+ # @param request_options [Telnyx::RequestOptions, Hash{Symbol=>Object}, nil]
146
+ #
147
+ # @return [nil]
148
+ #
149
+ # @see Telnyx::Models::Enterprises::Reputation::NumberDeleteParams
150
+ def delete(phone_number, params)
151
+ parsed, options = Telnyx::Enterprises::Reputation::NumberDeleteParams.dump_request(params)
152
+ enterprise_id =
153
+ parsed.delete(:enterprise_id) do
154
+ raise ArgumentError.new("missing required path argument #{_1}")
155
+ end
156
+ @client.request(
157
+ method: :delete,
158
+ path: ["enterprises/%1$s/reputation/numbers/%2$s", enterprise_id, phone_number],
159
+ model: NilClass,
160
+ options: options
161
+ )
162
+ end
163
+
164
+ # @api private
165
+ #
166
+ # @param client [Telnyx::Client]
167
+ def initialize(client:)
168
+ @client = client
169
+ end
170
+ end
171
+ end
172
+ end
173
+ end
174
+ end
@@ -0,0 +1,166 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Telnyx
4
+ module Resources
5
+ class Enterprises
6
+ # Manage Number Reputation enrollment and check frequency settings for an
7
+ # enterprise
8
+ class Reputation
9
+ # Associate phone numbers with an enterprise for reputation monitoring and
10
+ # retrieve reputation scores
11
+ # @return [Telnyx::Resources::Enterprises::Reputation::Numbers]
12
+ attr_reader :numbers
13
+
14
+ # Some parameter documentations has been truncated, see
15
+ # {Telnyx::Models::Enterprises::ReputationCreateParams} for more details.
16
+ #
17
+ # Enable Number Reputation service for an enterprise.
18
+ #
19
+ # **Requirements:**
20
+ #
21
+ # - Signed LOA (Letter of Authorization) document ID
22
+ # - Reputation check frequency (defaults to `business_daily`)
23
+ # - Number Reputation Terms of Service must be accepted
24
+ #
25
+ # **Flow:**
26
+ #
27
+ # 1. Registers the enterprise for reputation monitoring
28
+ # 2. Creates reputation settings with `pending` status
29
+ # 3. Awaits admin approval before monitoring begins
30
+ #
31
+ # **Resubmission After Rejection:** If a previously rejected record exists, this
32
+ # endpoint will delete it and create a new `pending` record.
33
+ #
34
+ # **Available Frequencies:**
35
+ #
36
+ # - `business_daily` — Monday–Friday
37
+ # - `daily` — Every day
38
+ # - `weekly` — Once per week
39
+ # - `biweekly` — Once every two weeks
40
+ # - `monthly` — Once per month
41
+ # - `never` — Manual refresh only
42
+ #
43
+ # @overload create(enterprise_id, loa_document_id:, check_frequency: nil, request_options: {})
44
+ #
45
+ # @param enterprise_id [String] Unique identifier of the enterprise (UUID)
46
+ #
47
+ # @param loa_document_id [String] ID of the signed Letter of Authorization (LOA) document uploaded to the document
48
+ #
49
+ # @param check_frequency [Symbol, Telnyx::Models::Enterprises::ReputationCreateParams::CheckFrequency] Frequency for automatically refreshing reputation data
50
+ #
51
+ # @param request_options [Telnyx::RequestOptions, Hash{Symbol=>Object}, nil]
52
+ #
53
+ # @return [Telnyx::Models::Enterprises::ReputationCreateResponse]
54
+ #
55
+ # @see Telnyx::Models::Enterprises::ReputationCreateParams
56
+ def create(enterprise_id, params)
57
+ parsed, options = Telnyx::Enterprises::ReputationCreateParams.dump_request(params)
58
+ @client.request(
59
+ method: :post,
60
+ path: ["enterprises/%1$s/reputation", enterprise_id],
61
+ body: parsed,
62
+ model: Telnyx::Models::Enterprises::ReputationCreateResponse,
63
+ options: options
64
+ )
65
+ end
66
+
67
+ # Retrieve the current Number Reputation settings for an enterprise.
68
+ #
69
+ # Returns the enrollment status (`pending`, `approved`, `rejected`, `deleted`),
70
+ # check frequency, and any rejection reasons.
71
+ #
72
+ # Returns `404` if reputation has not been enabled for this enterprise.
73
+ #
74
+ # @overload list(enterprise_id, request_options: {})
75
+ #
76
+ # @param enterprise_id [String] Unique identifier of the enterprise (UUID)
77
+ #
78
+ # @param request_options [Telnyx::RequestOptions, Hash{Symbol=>Object}, nil]
79
+ #
80
+ # @return [Telnyx::Models::Enterprises::ReputationListResponse]
81
+ #
82
+ # @see Telnyx::Models::Enterprises::ReputationListParams
83
+ def list(enterprise_id, params = {})
84
+ @client.request(
85
+ method: :get,
86
+ path: ["enterprises/%1$s/reputation", enterprise_id],
87
+ model: Telnyx::Models::Enterprises::ReputationListResponse,
88
+ options: params[:request_options]
89
+ )
90
+ end
91
+
92
+ # Disable Number Reputation for an enterprise.
93
+ #
94
+ # This will:
95
+ #
96
+ # - Delete the reputation settings record
97
+ # - Log the deletion for audit purposes
98
+ # - Stop all future automated reputation checks
99
+ #
100
+ # **Note:** Can only be performed on `approved` reputation settings.
101
+ #
102
+ # @overload delete_all(enterprise_id, request_options: {})
103
+ #
104
+ # @param enterprise_id [String] Unique identifier of the enterprise (UUID)
105
+ #
106
+ # @param request_options [Telnyx::RequestOptions, Hash{Symbol=>Object}, nil]
107
+ #
108
+ # @return [nil]
109
+ #
110
+ # @see Telnyx::Models::Enterprises::ReputationDeleteAllParams
111
+ def delete_all(enterprise_id, params = {})
112
+ @client.request(
113
+ method: :delete,
114
+ path: ["enterprises/%1$s/reputation", enterprise_id],
115
+ model: NilClass,
116
+ options: params[:request_options]
117
+ )
118
+ end
119
+
120
+ # Update how often reputation data is automatically refreshed.
121
+ #
122
+ # **Note:** The enterprise must have `approved` reputation settings. Updating
123
+ # frequency on `pending` or `rejected` settings will return an error.
124
+ #
125
+ # **Available Frequencies:**
126
+ #
127
+ # - `business_daily` — Monday–Friday
128
+ # - `daily` — Every day including weekends
129
+ # - `weekly` — Once per week
130
+ # - `biweekly` — Once every two weeks
131
+ # - `monthly` — Once per month
132
+ # - `never` — Manual refresh only (no automatic checks)
133
+ #
134
+ # @overload update_frequency(enterprise_id, check_frequency:, request_options: {})
135
+ #
136
+ # @param enterprise_id [String] Unique identifier of the enterprise (UUID)
137
+ #
138
+ # @param check_frequency [Symbol, Telnyx::Models::Enterprises::ReputationUpdateFrequencyParams::CheckFrequency] New frequency for refreshing reputation data
139
+ #
140
+ # @param request_options [Telnyx::RequestOptions, Hash{Symbol=>Object}, nil]
141
+ #
142
+ # @return [Telnyx::Models::Enterprises::ReputationUpdateFrequencyResponse]
143
+ #
144
+ # @see Telnyx::Models::Enterprises::ReputationUpdateFrequencyParams
145
+ def update_frequency(enterprise_id, params)
146
+ parsed, options = Telnyx::Enterprises::ReputationUpdateFrequencyParams.dump_request(params)
147
+ @client.request(
148
+ method: :patch,
149
+ path: ["enterprises/%1$s/reputation/frequency", enterprise_id],
150
+ body: parsed,
151
+ model: Telnyx::Models::Enterprises::ReputationUpdateFrequencyResponse,
152
+ options: options
153
+ )
154
+ end
155
+
156
+ # @api private
157
+ #
158
+ # @param client [Telnyx::Client]
159
+ def initialize(client:)
160
+ @client = client
161
+ @numbers = Telnyx::Resources::Enterprises::Reputation::Numbers.new(client: client)
162
+ end
163
+ end
164
+ end
165
+ end
166
+ end
@@ -0,0 +1,217 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Telnyx
4
+ module Resources
5
+ # Enterprise management for Branded Calling and Number Reputation services
6
+ class Enterprises
7
+ # Manage Number Reputation enrollment and check frequency settings for an
8
+ # enterprise
9
+ # @return [Telnyx::Resources::Enterprises::Reputation]
10
+ attr_reader :reputation
11
+
12
+ # Some parameter documentations has been truncated, see
13
+ # {Telnyx::Models::EnterpriseCreateParams} for more details.
14
+ #
15
+ # Create a new enterprise for Branded Calling / Number Reputation services.
16
+ #
17
+ # Registers the enterprise in the Branded Calling / Number Reputation services,
18
+ # enabling it to create Display Identity Records (DIRs) or enroll in Number
19
+ # Reputation monitoring.
20
+ #
21
+ # **Required Fields:** `legal_name`, `doing_business_as`, `organization_type`,
22
+ # `country_code`, `website`, `fein`, `industry`, `number_of_employees`,
23
+ # `organization_legal_type`, `organization_contact`, `billing_contact`,
24
+ # `organization_physical_address`, `billing_address`
25
+ #
26
+ # @overload create(billing_address:, billing_contact:, country_code:, doing_business_as:, fein:, industry:, legal_name:, number_of_employees:, organization_contact:, organization_legal_type:, organization_physical_address:, organization_type:, website:, corporate_registration_number: nil, customer_reference: nil, dun_bradstreet_number: nil, primary_business_domain_sic_code: nil, professional_license_number: nil, role_type: nil, request_options: {})
27
+ #
28
+ # @param billing_address [Telnyx::Models::EnterpriseCreateParams::BillingAddress]
29
+ #
30
+ # @param billing_contact [Telnyx::Models::EnterpriseCreateParams::BillingContact]
31
+ #
32
+ # @param country_code [String] Country code. Currently only 'US' is accepted.
33
+ #
34
+ # @param doing_business_as [String] Primary business name / DBA name
35
+ #
36
+ # @param fein [String] Federal Employer Identification Number. Format: XX-XXXXXXX or 9-digit number (mi
37
+ #
38
+ # @param industry [String] Industry classification. Case-insensitive. Accepted values: accounting, finance,
39
+ #
40
+ # @param legal_name [String] Legal name of the enterprise
41
+ #
42
+ # @param number_of_employees [Symbol, Telnyx::Models::EnterpriseCreateParams::NumberOfEmployees] Employee count range
43
+ #
44
+ # @param organization_contact [Telnyx::Models::EnterpriseCreateParams::OrganizationContact] Organization contact information. Note: the response returns this object with th
45
+ #
46
+ # @param organization_legal_type [Symbol, Telnyx::Models::EnterpriseCreateParams::OrganizationLegalType] Legal structure type
47
+ #
48
+ # @param organization_physical_address [Telnyx::Models::EnterpriseCreateParams::OrganizationPhysicalAddress]
49
+ #
50
+ # @param organization_type [Symbol, Telnyx::Models::EnterpriseCreateParams::OrganizationType] Type of organization
51
+ #
52
+ # @param website [String] Enterprise website URL. Accepts any string — no URL format validation enforced.
53
+ #
54
+ # @param corporate_registration_number [String] Corporate registration number (optional)
55
+ #
56
+ # @param customer_reference [String] Optional customer reference identifier for your own tracking
57
+ #
58
+ # @param dun_bradstreet_number [String] D-U-N-S Number (optional)
59
+ #
60
+ # @param primary_business_domain_sic_code [String] SIC Code (optional)
61
+ #
62
+ # @param professional_license_number [String] Professional license number (optional)
63
+ #
64
+ # @param role_type [Symbol, Telnyx::Models::EnterpriseCreateParams::RoleType] Role type in Branded Calling / Number Reputation services
65
+ #
66
+ # @param request_options [Telnyx::RequestOptions, Hash{Symbol=>Object}, nil]
67
+ #
68
+ # @return [Telnyx::Models::EnterpriseCreateResponse]
69
+ #
70
+ # @see Telnyx::Models::EnterpriseCreateParams
71
+ def create(params)
72
+ parsed, options = Telnyx::EnterpriseCreateParams.dump_request(params)
73
+ @client.request(
74
+ method: :post,
75
+ path: "enterprises",
76
+ body: parsed,
77
+ model: Telnyx::Models::EnterpriseCreateResponse,
78
+ options: options
79
+ )
80
+ end
81
+
82
+ # Retrieve details of a specific enterprise by ID.
83
+ #
84
+ # @overload retrieve(enterprise_id, request_options: {})
85
+ #
86
+ # @param enterprise_id [String] Unique identifier of the enterprise (UUID)
87
+ #
88
+ # @param request_options [Telnyx::RequestOptions, Hash{Symbol=>Object}, nil]
89
+ #
90
+ # @return [Telnyx::Models::EnterpriseRetrieveResponse]
91
+ #
92
+ # @see Telnyx::Models::EnterpriseRetrieveParams
93
+ def retrieve(enterprise_id, params = {})
94
+ @client.request(
95
+ method: :get,
96
+ path: ["enterprises/%1$s", enterprise_id],
97
+ model: Telnyx::Models::EnterpriseRetrieveResponse,
98
+ options: params[:request_options]
99
+ )
100
+ end
101
+
102
+ # Some parameter documentations has been truncated, see
103
+ # {Telnyx::Models::EnterpriseUpdateParams} for more details.
104
+ #
105
+ # Update enterprise information. All fields are optional — only the provided
106
+ # fields will be updated.
107
+ #
108
+ # @overload update(enterprise_id, billing_address: nil, billing_contact: nil, corporate_registration_number: nil, customer_reference: nil, doing_business_as: nil, dun_bradstreet_number: nil, fein: nil, industry: nil, legal_name: nil, number_of_employees: nil, organization_contact: nil, organization_legal_type: nil, organization_physical_address: nil, primary_business_domain_sic_code: nil, professional_license_number: nil, website: nil, request_options: {})
109
+ #
110
+ # @param enterprise_id [String] Unique identifier of the enterprise (UUID)
111
+ #
112
+ # @param billing_address [Telnyx::Models::EnterpriseUpdateParams::BillingAddress]
113
+ #
114
+ # @param billing_contact [Telnyx::Models::EnterpriseUpdateParams::BillingContact]
115
+ #
116
+ # @param corporate_registration_number [String] Corporate registration number
117
+ #
118
+ # @param customer_reference [String] Customer reference identifier
119
+ #
120
+ # @param doing_business_as [String] DBA name
121
+ #
122
+ # @param dun_bradstreet_number [String] D-U-N-S Number
123
+ #
124
+ # @param fein [String] Federal Employer Identification Number. Format: XX-XXXXXXX or XXXXXXXXX
125
+ #
126
+ # @param industry [String] Industry classification
127
+ #
128
+ # @param legal_name [String] Legal name of the enterprise
129
+ #
130
+ # @param number_of_employees [Symbol, Telnyx::Models::EnterpriseUpdateParams::NumberOfEmployees] Employee count range
131
+ #
132
+ # @param organization_contact [Telnyx::Models::EnterpriseUpdateParams::OrganizationContact] Organization contact information. Note: the response returns this object with th
133
+ #
134
+ # @param organization_legal_type [Symbol, Telnyx::Models::EnterpriseUpdateParams::OrganizationLegalType] Legal structure type
135
+ #
136
+ # @param organization_physical_address [Telnyx::Models::EnterpriseUpdateParams::OrganizationPhysicalAddress]
137
+ #
138
+ # @param primary_business_domain_sic_code [String] SIC Code
139
+ #
140
+ # @param professional_license_number [String] Professional license number
141
+ #
142
+ # @param website [String] Company website URL
143
+ #
144
+ # @param request_options [Telnyx::RequestOptions, Hash{Symbol=>Object}, nil]
145
+ #
146
+ # @return [Telnyx::Models::EnterpriseUpdateResponse]
147
+ #
148
+ # @see Telnyx::Models::EnterpriseUpdateParams
149
+ def update(enterprise_id, params = {})
150
+ parsed, options = Telnyx::EnterpriseUpdateParams.dump_request(params)
151
+ @client.request(
152
+ method: :put,
153
+ path: ["enterprises/%1$s", enterprise_id],
154
+ body: parsed,
155
+ model: Telnyx::Models::EnterpriseUpdateResponse,
156
+ options: options
157
+ )
158
+ end
159
+
160
+ # Retrieve a paginated list of enterprises associated with your account.
161
+ #
162
+ # @overload list(legal_name: nil, page_number: nil, page_size: nil, request_options: {})
163
+ #
164
+ # @param legal_name [String] Filter by legal name (partial match)
165
+ #
166
+ # @param page_number [Integer] Page number (1-indexed)
167
+ #
168
+ # @param page_size [Integer] Number of items per page
169
+ #
170
+ # @param request_options [Telnyx::RequestOptions, Hash{Symbol=>Object}, nil]
171
+ #
172
+ # @return [Telnyx::Internal::DefaultFlatPagination<Telnyx::Models::EnterpriseListResponse>]
173
+ #
174
+ # @see Telnyx::Models::EnterpriseListParams
175
+ def list(params = {})
176
+ parsed, options = Telnyx::EnterpriseListParams.dump_request(params)
177
+ query = Telnyx::Internal::Util.encode_query_params(parsed)
178
+ @client.request(
179
+ method: :get,
180
+ path: "enterprises",
181
+ query: query.transform_keys(page_number: "page[number]", page_size: "page[size]"),
182
+ page: Telnyx::Internal::DefaultFlatPagination,
183
+ model: Telnyx::Models::EnterpriseListResponse,
184
+ options: options
185
+ )
186
+ end
187
+
188
+ # Delete an enterprise and all associated resources. This action is irreversible.
189
+ #
190
+ # @overload delete(enterprise_id, request_options: {})
191
+ #
192
+ # @param enterprise_id [String] Unique identifier of the enterprise (UUID)
193
+ #
194
+ # @param request_options [Telnyx::RequestOptions, Hash{Symbol=>Object}, nil]
195
+ #
196
+ # @return [nil]
197
+ #
198
+ # @see Telnyx::Models::EnterpriseDeleteParams
199
+ def delete(enterprise_id, params = {})
200
+ @client.request(
201
+ method: :delete,
202
+ path: ["enterprises/%1$s", enterprise_id],
203
+ model: NilClass,
204
+ options: params[:request_options]
205
+ )
206
+ end
207
+
208
+ # @api private
209
+ #
210
+ # @param client [Telnyx::Client]
211
+ def initialize(client:)
212
+ @client = client
213
+ @reputation = Telnyx::Resources::Enterprises::Reputation.new(client: client)
214
+ end
215
+ end
216
+ end
217
+ end
@@ -0,0 +1,102 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Telnyx
4
+ module Resources
5
+ class Reputation
6
+ # Associate phone numbers with an enterprise for reputation monitoring and
7
+ # retrieve reputation scores
8
+ class Numbers
9
+ # Some parameter documentations has been truncated, see
10
+ # {Telnyx::Models::Reputation::NumberRetrieveParams} for more details.
11
+ #
12
+ # Get reputation data for a specific phone number without requiring an
13
+ # `enterprise_id`.
14
+ #
15
+ # Same response as the enterprise-scoped endpoint. Uses cached data by default.
16
+ #
17
+ # @overload retrieve(phone_number, fresh: nil, request_options: {})
18
+ #
19
+ # @param phone_number [String] Phone number in E.164 format
20
+ #
21
+ # @param fresh [Boolean] When true, fetches fresh reputation data (incurs API cost). When false, returns
22
+ #
23
+ # @param request_options [Telnyx::RequestOptions, Hash{Symbol=>Object}, nil]
24
+ #
25
+ # @return [Telnyx::Models::Reputation::NumberRetrieveResponse]
26
+ #
27
+ # @see Telnyx::Models::Reputation::NumberRetrieveParams
28
+ def retrieve(phone_number, params = {})
29
+ parsed, options = Telnyx::Reputation::NumberRetrieveParams.dump_request(params)
30
+ query = Telnyx::Internal::Util.encode_query_params(parsed)
31
+ @client.request(
32
+ method: :get,
33
+ path: ["reputation/numbers/%1$s", phone_number],
34
+ query: query,
35
+ model: Telnyx::Models::Reputation::NumberRetrieveResponse,
36
+ options: options
37
+ )
38
+ end
39
+
40
+ # List all phone numbers enrolled in Number Reputation monitoring for your
41
+ # account. This is a simplified endpoint that does not require an `enterprise_id`
42
+ # — it returns numbers across all your enterprises.
43
+ #
44
+ # Supports pagination and filtering by phone number.
45
+ #
46
+ # @overload list(page_number: nil, page_size: nil, phone_number: nil, request_options: {})
47
+ #
48
+ # @param page_number [Integer] Page number (1-indexed)
49
+ #
50
+ # @param page_size [Integer] Number of items per page
51
+ #
52
+ # @param phone_number [String] Filter by specific phone number (E.164 format)
53
+ #
54
+ # @param request_options [Telnyx::RequestOptions, Hash{Symbol=>Object}, nil]
55
+ #
56
+ # @return [Telnyx::Internal::DefaultFlatPagination<Telnyx::Models::Reputation::NumberListResponse>]
57
+ #
58
+ # @see Telnyx::Models::Reputation::NumberListParams
59
+ def list(params = {})
60
+ parsed, options = Telnyx::Reputation::NumberListParams.dump_request(params)
61
+ query = Telnyx::Internal::Util.encode_query_params(parsed)
62
+ @client.request(
63
+ method: :get,
64
+ path: "reputation/numbers",
65
+ query: query.transform_keys(page_number: "page[number]", page_size: "page[size]"),
66
+ page: Telnyx::Internal::DefaultFlatPagination,
67
+ model: Telnyx::Models::Reputation::NumberListResponse,
68
+ options: options
69
+ )
70
+ end
71
+
72
+ # Remove a phone number from Number Reputation monitoring without requiring an
73
+ # `enterprise_id`.
74
+ #
75
+ # @overload delete(phone_number, request_options: {})
76
+ #
77
+ # @param phone_number [String] Phone number in E.164 format
78
+ #
79
+ # @param request_options [Telnyx::RequestOptions, Hash{Symbol=>Object}, nil]
80
+ #
81
+ # @return [nil]
82
+ #
83
+ # @see Telnyx::Models::Reputation::NumberDeleteParams
84
+ def delete(phone_number, params = {})
85
+ @client.request(
86
+ method: :delete,
87
+ path: ["reputation/numbers/%1$s", phone_number],
88
+ model: NilClass,
89
+ options: params[:request_options]
90
+ )
91
+ end
92
+
93
+ # @api private
94
+ #
95
+ # @param client [Telnyx::Client]
96
+ def initialize(client:)
97
+ @client = client
98
+ end
99
+ end
100
+ end
101
+ end
102
+ end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Telnyx
4
+ module Resources
5
+ class Reputation
6
+ # Associate phone numbers with an enterprise for reputation monitoring and
7
+ # retrieve reputation scores
8
+ # @return [Telnyx::Resources::Reputation::Numbers]
9
+ attr_reader :numbers
10
+
11
+ # @api private
12
+ #
13
+ # @param client [Telnyx::Client]
14
+ def initialize(client:)
15
+ @client = client
16
+ @numbers = Telnyx::Resources::Reputation::Numbers.new(client: client)
17
+ end
18
+ end
19
+ end
20
+ end