telnyx 2.9.0 → 3.0.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/.github/scripts/before_install.sh +10 -9
- data/.github/workflows/publish-gem-on-release.yml +6 -6
- data/.github/workflows/ruby.yml +4 -4
- data/.rubocop.yml +1 -1
- data/Gemfile +7 -8
- data/README.md +1 -1
- data/Spec3.json +77839 -0
- data/VERSION +1 -1
- data/lib/telnyx/access_control_ip.rb +13 -0
- data/lib/telnyx/access_ip_range.rb +12 -0
- data/lib/telnyx/address.rb +9 -0
- data/lib/telnyx/api_operations/delete.rb +1 -1
- data/lib/telnyx/api_resource.rb +4 -1
- data/lib/telnyx/authentication_providers.rb +12 -0
- data/lib/telnyx/available_phone_number.rb +5 -0
- data/lib/telnyx/balance.rb +12 -0
- data/lib/telnyx/batch_mdr_report.rb +15 -0
- data/lib/telnyx/brand.rb +13 -0
- data/lib/telnyx/bulk_creation.rb +21 -0
- data/lib/telnyx/bulk_credential.rb +16 -0
- data/lib/telnyx/bulk_sim_card_action.rb +9 -0
- data/lib/telnyx/business_identitie.rb +9 -0
- data/lib/telnyx/call.rb +2 -2
- data/lib/telnyx/call_event.rb +9 -0
- data/lib/telnyx/call_recording.rb +12 -0
- data/lib/telnyx/campaign.rb +34 -0
- data/lib/telnyx/cdr_usage_report.rb +13 -0
- data/lib/telnyx/channel_zone.rb +10 -0
- data/lib/telnyx/comment.rb +20 -0
- data/lib/telnyx/conference.rb +1 -1
- data/lib/telnyx/connection.rb +5 -0
- data/lib/telnyx/csv_download.rb +10 -0
- data/lib/telnyx/custom_storage_credential.rb +7 -0
- data/lib/telnyx/detail_record.rb +9 -0
- data/lib/telnyx/dialogflow_connection.rb +20 -0
- data/lib/telnyx/document.rb +20 -0
- data/lib/telnyx/dynamic_emergency_address.rb +12 -0
- data/lib/telnyx/dynamic_emergency_endpoint.rb +12 -0
- data/lib/telnyx/embedding.rb +14 -0
- data/lib/telnyx/enum.rb +15 -0
- data/lib/telnyx/fax.rb +14 -0
- data/lib/telnyx/global_ip.rb +10 -0
- data/lib/telnyx/global_ip_allowed_port.rb +8 -0
- data/lib/telnyx/global_ip_assignment.rb +12 -0
- data/lib/telnyx/global_ip_assignment_health.rb +8 -0
- data/lib/telnyx/global_ip_assignment_usage.rb +8 -0
- data/lib/telnyx/global_ip_latency.rb +8 -0
- data/lib/telnyx/global_ip_protocol.rb +8 -0
- data/lib/telnyx/global_ip_usage.rb +8 -0
- data/lib/telnyx/inference.rb +9 -0
- data/lib/telnyx/inventory_coverage.rb +9 -0
- data/lib/telnyx/ledger_billing_group_report.rb +9 -0
- data/lib/telnyx/managed_account.rb +32 -0
- data/lib/telnyx/mdr_usage_report.rb +21 -0
- data/lib/telnyx/media.rb +21 -0
- data/lib/telnyx/message_number_pool.rb +9 -0
- data/lib/telnyx/messaging_hosted_number_order.rb +21 -0
- data/lib/telnyx/messaging_profile.rb +14 -2
- data/lib/telnyx/messaging_tollfree_verification.rb +12 -0
- data/lib/telnyx/messaging_url_domain.rb +9 -0
- data/lib/telnyx/mobile_operator_network.rb +9 -0
- data/lib/telnyx/mobile_push_credential.rb +11 -0
- data/lib/telnyx/network.rb +19 -0
- data/lib/telnyx/notification_channel.rb +12 -0
- data/lib/telnyx/notification_event.rb +9 -0
- data/lib/telnyx/notification_event_condition.rb +9 -0
- data/lib/telnyx/notification_profile.rb +12 -0
- data/lib/telnyx/notification_setting.rb +12 -0
- data/lib/telnyx/number_block_order.rb +10 -0
- data/lib/telnyx/ota_update.rb +9 -0
- data/lib/telnyx/phone_number.rb +6 -0
- data/lib/telnyx/phone_number_block_job.rb +14 -0
- data/lib/telnyx/phone_number_campaigns.rb +12 -0
- data/lib/telnyx/portability_check.rb +9 -0
- data/lib/telnyx/porting_order.rb +39 -1
- data/lib/telnyx/portout.rb +9 -0
- data/lib/telnyx/private_wireless_gateway.rb +11 -0
- data/lib/telnyx/public_internet_gateway.rb +11 -0
- data/lib/telnyx/region.rb +9 -0
- data/lib/telnyx/requirement.rb +8 -0
- data/lib/telnyx/requirement_type.rb +8 -0
- data/lib/telnyx/room.rb +20 -0
- data/lib/telnyx/room_composition.rb +11 -0
- data/lib/telnyx/room_participant.rb +9 -0
- data/lib/telnyx/room_recording.rb +10 -0
- data/lib/telnyx/room_session.rb +18 -0
- data/lib/telnyx/short_code.rb +10 -0
- data/lib/telnyx/sim_card.rb +28 -2
- data/lib/telnyx/sim_card_action.rb +12 -0
- data/lib/telnyx/sim_card_data_usage_notification.rb +12 -0
- data/lib/telnyx/sim_card_group.rb +21 -0
- data/lib/telnyx/sim_card_group_action.rb +8 -0
- data/lib/telnyx/sim_card_order.rb +10 -0
- data/lib/telnyx/summary.rb +9 -0
- data/lib/telnyx/telephony_credential.rb +22 -0
- data/lib/telnyx/telnyx_client.rb +1 -2
- data/lib/telnyx/texml_application.rb +9 -0
- data/lib/telnyx/verification.rb +3 -3
- data/lib/telnyx/verified_calls_display_profile.rb +17 -0
- data/lib/telnyx/verify_profile.rb +1 -0
- data/lib/telnyx/version.rb +1 -1
- data/lib/telnyx/virtual_cross_connect.rb +20 -0
- data/lib/telnyx/virtual_cross_connect_region.rb +9 -0
- data/lib/telnyx/wdr.rb +13 -0
- data/lib/telnyx/webhook_deliverie.rb +9 -0
- data/lib/telnyx/wireguard_interface.rb +11 -0
- data/lib/telnyx/wireguard_peer.rb +21 -0
- data/lib/telnyx.rb +67 -3
- data/server.js +31 -0
- data/telnyx.gemspec +4 -2
- data/test/telnyx/api_resource_test.rb +25 -21
- data/test/telnyx/available_phone_number_test.rb +6 -0
- data/test/telnyx/batch_mdr_report_test.rb +35 -0
- data/test/telnyx/billing_group_test.rb +12 -8
- data/test/telnyx/bulk_credential_test.rb +20 -0
- data/test/telnyx/bulk_sim_card_action_test.rb +22 -0
- data/test/telnyx/business_identitie_test.rb +25 -0
- data/test/telnyx/call_control_application_test.rb +13 -9
- data/test/telnyx/call_control_test.rb +24 -23
- data/test/telnyx/call_event_test.rb +14 -0
- data/test/telnyx/call_recording_test.rb +28 -0
- data/test/telnyx/call_test.rb +29 -0
- data/test/telnyx/campaign_test.rb +32 -0
- data/test/telnyx/cdr_usage_report_test.rb +15 -0
- data/test/telnyx/channel_zone_test.rb +14 -0
- data/test/telnyx/comment_test.rb +32 -0
- data/test/telnyx/conference_test.rb +27 -16
- data/test/telnyx/connection_test.rb +8 -1
- data/test/telnyx/credential_connection_test.rb +5 -4
- data/test/telnyx/csv_download_test.rb +33 -0
- data/test/telnyx/custom_storage_credential_test.rb +17 -0
- data/test/telnyx/detail_record_test.rb +15 -0
- data/test/telnyx/dialogflow_connection_test.rb +32 -0
- data/test/telnyx/embedding_test.rb +27 -0
- data/test/telnyx/enum_test.rb +15 -0
- data/test/telnyx/fax_application_test.rb +5 -4
- data/test/telnyx/fax_test.rb +13 -4
- data/test/telnyx/fqdn_connection_test.rb +5 -5
- data/test/telnyx/fqdn_test.rb +12 -7
- data/test/telnyx/global_ip_allowed_port_test.rb +14 -0
- data/test/telnyx/global_ip_assignment_health_test.rb +14 -0
- data/test/telnyx/global_ip_assignment_test.rb +44 -0
- data/test/telnyx/global_ip_latency_test.rb +14 -0
- data/test/telnyx/global_ip_protocol_test.rb +14 -0
- data/test/telnyx/global_ip_test.rb +35 -0
- data/test/telnyx/global_ip_usage_test.rb +14 -0
- data/test/telnyx/inference_test.rb +12 -0
- data/test/telnyx/ip_connection_test.rb +12 -8
- data/test/telnyx/ip_test.rb +12 -8
- data/test/telnyx/ledger_billing_group_report_test.rb +18 -0
- data/test/telnyx/managed_account_test.rb +42 -0
- data/test/telnyx/mdr_usage_report_test.rb +47 -0
- data/test/telnyx/message_number_pool_test.rb +18 -0
- data/test/telnyx/message_test.rb +2 -2
- data/test/telnyx/messaging_phone_number_test.rb +2 -1
- data/test/telnyx/messaging_profile_test.rb +26 -14
- data/test/telnyx/messaging_tollfree_verification_test.rb +71 -0
- data/test/telnyx/messaging_url_domain_test.rb +14 -0
- data/test/telnyx/mobile_operator_network_test.rb +15 -0
- data/test/telnyx/mobile_push_credential_test.rb +33 -0
- data/test/telnyx/network_test.rb +49 -0
- data/test/telnyx/number_block_order_test.rb +28 -0
- data/test/telnyx/number_order_document_test.rb +4 -3
- data/test/telnyx/number_order_test.rb +3 -2
- data/test/telnyx/number_reservation_test.rb +2 -2
- data/test/telnyx/ota_update_test.rb +20 -0
- data/test/telnyx/phone_number_block_job_test.rb +25 -0
- data/test/telnyx/phone_number_regulatory_requirement_test.rb +2 -1
- data/test/telnyx/phone_number_test.rb +8 -6
- data/test/telnyx/porting_order_test.rb +45 -10
- data/test/telnyx/private_wireless_gateway_test.rb +32 -0
- data/test/telnyx/public_internet_gateway_test.rb +32 -0
- data/test/telnyx/queue_test.rb +9 -6
- data/test/telnyx/region_test.rb +14 -0
- data/test/telnyx/regulatory_requirement_test.rb +6 -3
- data/test/telnyx/requirement_test.rb +22 -0
- data/test/telnyx/requirement_type_test.rb +22 -0
- data/test/telnyx/room_composition_test.rb +32 -0
- data/test/telnyx/room_participant_test.rb +19 -0
- data/test/telnyx/room_recording_test.rb +27 -0
- data/test/telnyx/room_session_test.rb +47 -0
- data/test/telnyx/room_test.rb +52 -0
- data/test/telnyx/short_code_test.rb +30 -0
- data/test/telnyx/sim_card_data_usage_notification_test.rb +42 -0
- data/test/telnyx/sim_card_group_action_test.rb +22 -0
- data/test/telnyx/sim_card_group_test.rb +59 -0
- data/test/telnyx/sim_card_order_test.rb +27 -0
- data/test/telnyx/sim_card_test.rb +75 -10
- data/test/telnyx/summary_test.rb +12 -0
- data/test/telnyx/telephony_credential_test.rb +35 -6
- data/test/telnyx/texml_application_test.rb +25 -0
- data/test/telnyx/verification_test.rb +4 -4
- data/test/telnyx/verified_calls_display_profile_test.rb +33 -0
- data/test/telnyx/verify_profile_test.rb +16 -7
- data/test/telnyx/virtual_cross_connect_region_test.rb +22 -0
- data/test/telnyx/virtual_cross_connect_test.rb +49 -0
- data/test/telnyx/wdr_test.rb +14 -0
- data/test/telnyx/webhook_deliverie_test.rb +23 -0
- data/test/telnyx/wireguard_interface_test.rb +32 -0
- data/test/telnyx/wireguard_peer_test.rb +48 -0
- data/test/test_helper.rb +10 -26
- metadata +235 -37
- data/examples/2 factor authentication/Gemfile +0 -7
- data/examples/2 factor authentication/main.rb +0 -67
- data/examples/2 factor authentication/readme.md +0 -5
- data/test/telnyx_mock.rb +0 -78
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
3.1.0
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Telnyx
|
|
4
|
+
class AccessIPAddress < APIResource
|
|
5
|
+
include APIOperations::Delete
|
|
6
|
+
include APIOperations::Save
|
|
7
|
+
extend APIOperations::List
|
|
8
|
+
extend APIOperations::Create
|
|
9
|
+
|
|
10
|
+
OBJECT_NAME = "access_ip_address".freeze
|
|
11
|
+
RESOURCE_PATH = "access_ip_addresses".freeze
|
|
12
|
+
end
|
|
13
|
+
end
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Telnyx
|
|
4
|
+
class AccessIPRange < APIResource
|
|
5
|
+
include APIOperations::Delete
|
|
6
|
+
include APIOperations::Save
|
|
7
|
+
extend APIOperations::List
|
|
8
|
+
extend APIOperations::Create
|
|
9
|
+
|
|
10
|
+
OBJECT_NAME = "access_ip_range".freeze
|
|
11
|
+
end
|
|
12
|
+
end
|
data/lib/telnyx/address.rb
CHANGED
|
@@ -5,6 +5,15 @@ module Telnyx
|
|
|
5
5
|
include APIOperations::Delete
|
|
6
6
|
extend APIOperations::List
|
|
7
7
|
extend APIOperations::Create
|
|
8
|
+
extend Telnyx::APIOperations::NestedResource
|
|
9
|
+
|
|
10
|
+
ACTIONS = %w[validate].freeze
|
|
11
|
+
ACTIONS.each do |action|
|
|
12
|
+
nested_resource_class_methods action,
|
|
13
|
+
path: %W[actions #{action}],
|
|
14
|
+
operations: [:create],
|
|
15
|
+
instance_methods: { create: action }
|
|
16
|
+
end
|
|
8
17
|
|
|
9
18
|
OBJECT_NAME = "address".freeze
|
|
10
19
|
RESOURCE_PATH = "addresses".freeze
|
|
@@ -6,7 +6,7 @@ module Telnyx
|
|
|
6
6
|
def delete(params = {}, opts = {})
|
|
7
7
|
opts = Util.normalize_opts(opts)
|
|
8
8
|
resp, opts = request(:delete, resource_url, params, opts)
|
|
9
|
-
initialize_from(resp.data[:data], opts)
|
|
9
|
+
initialize_from(resp.data[:data], opts) if resp.data[:data].present? # at deletion resp[:data] not present for some apis
|
|
10
10
|
end
|
|
11
11
|
end
|
|
12
12
|
end
|
data/lib/telnyx/api_resource.rb
CHANGED
|
@@ -33,7 +33,10 @@ module Telnyx
|
|
|
33
33
|
return "/v2/#{resource_path(inner_id)}" if respond_to?("resource_path")
|
|
34
34
|
return "/v2/#{self::RESOURCE_PATH}" if const_defined?("RESOURCE_PATH")
|
|
35
35
|
|
|
36
|
-
|
|
36
|
+
object_name = self::OBJECT_NAME.downcase
|
|
37
|
+
keywords = %w[generate summarize global_ip_usage global_ip_latency global_ip_assignment_usage global_ip_assignment_health sub_request campaign]
|
|
38
|
+
url_segment = object_name.tr(".", "/")
|
|
39
|
+
keywords.any? { |keyword| url_segment.include?(keyword) } ? "/v2/#{url_segment}" : "/v2/#{url_segment}s"
|
|
37
40
|
end
|
|
38
41
|
|
|
39
42
|
def self.identified_resource_url(id)
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Telnyx
|
|
4
|
+
class AuthenticationProviders < APIResource
|
|
5
|
+
include APIOperations::Delete
|
|
6
|
+
include APIOperations::Save
|
|
7
|
+
extend APIOperations::List
|
|
8
|
+
extend APIOperations::Create
|
|
9
|
+
|
|
10
|
+
OBJECT_NAME = "authentication_providers".freeze
|
|
11
|
+
end
|
|
12
|
+
end
|
|
@@ -6,6 +6,11 @@ module Telnyx
|
|
|
6
6
|
extend Telnyx::APIOperations::ParamWrapper
|
|
7
7
|
wrap "list", "filter"
|
|
8
8
|
|
|
9
|
+
def self.blocks(params = {}, opts = {})
|
|
10
|
+
resp, opts = request(:get, "/v2/available_phone_number_blocks", params, opts)
|
|
11
|
+
Util.convert_to_telnyx_object(resp.data, opts)
|
|
12
|
+
end
|
|
13
|
+
|
|
9
14
|
OBJECT_NAME = "available_phone_number".freeze
|
|
10
15
|
end
|
|
11
16
|
end
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Telnyx
|
|
4
|
+
class BatchMdrReport < APIResource
|
|
5
|
+
extend APIOperations::List
|
|
6
|
+
extend APIOperations::Create
|
|
7
|
+
include APIOperations::Delete
|
|
8
|
+
def self.resource_path(id = nil)
|
|
9
|
+
return "reports/batch_mdr_reports/#{CGI.escape(id)}" if id
|
|
10
|
+
|
|
11
|
+
"reports/batch_mdr_reports"
|
|
12
|
+
end
|
|
13
|
+
OBJECT_NAME = "/reports/batch_mdr_report".freeze
|
|
14
|
+
end
|
|
15
|
+
end
|
data/lib/telnyx/brand.rb
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Telnyx
|
|
4
|
+
class Brand < APIResource
|
|
5
|
+
extend APIOperations::List
|
|
6
|
+
extend APIOperations::Create
|
|
7
|
+
extend APIOperations::NestedResource
|
|
8
|
+
include APIOperations::Delete
|
|
9
|
+
include APIOperations::Save
|
|
10
|
+
|
|
11
|
+
OBJECT_NAME = "10dlc/brand".freeze
|
|
12
|
+
end
|
|
13
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Telnyx
|
|
4
|
+
class BulkCreation < APIResource
|
|
5
|
+
extend Telnyx::APIOperations::List
|
|
6
|
+
extend Telnyx::APIOperations::Create
|
|
7
|
+
include Telnyx::APIOperations::Delete
|
|
8
|
+
include Telnyx::APIOperations::Save
|
|
9
|
+
extend APIOperations::NestedResource
|
|
10
|
+
|
|
11
|
+
ACTIONS = %w[detailedStatus].freeze
|
|
12
|
+
ACTIONS.each do |action|
|
|
13
|
+
nested_resource_class_methods action,
|
|
14
|
+
path: %W[#{action}],
|
|
15
|
+
operations: [:create],
|
|
16
|
+
instance_methods: { create: action }
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
OBJECT_NAME = "10dlc/bulkCreation".freeze
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Telnyx
|
|
4
|
+
class BulkCredential < APIResource
|
|
5
|
+
def self.bulk_telephony_credentials(params = {}, opts = {})
|
|
6
|
+
resp, opts = request(:post, "/v2/actions/bulk/telephony_credentials", params, opts)
|
|
7
|
+
Util.convert_to_telnyx_object(resp.data, opts)
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def self.purchase_esims(params = {}, opts = {})
|
|
11
|
+
resp, opts = request(:post, "/v2/actions/purchase/esims", params, opts)
|
|
12
|
+
Util.convert_to_telnyx_object(resp.data, opts)
|
|
13
|
+
end
|
|
14
|
+
OBJECT_NAME = "action".freeze
|
|
15
|
+
end
|
|
16
|
+
end
|
data/lib/telnyx/call.rb
CHANGED
|
@@ -31,11 +31,11 @@ module Telnyx
|
|
|
31
31
|
end
|
|
32
32
|
end
|
|
33
33
|
|
|
34
|
-
ACTIONS = %w[reject answer hangup bridge speak fork_start fork_stop
|
|
34
|
+
ACTIONS = %w[reject answer client_state_update hangup bridge speak fork_start fork_stop
|
|
35
35
|
gather_using_audio gather_using_speak playback_start
|
|
36
36
|
playback_stop record_start record_stop send_dtmf transfer
|
|
37
37
|
transcription_start transcription_stop record_pause
|
|
38
|
-
record_resume gather_stop refer enqueue leave_queue].freeze
|
|
38
|
+
record_resume register gather_stop refer enqueue leave_queue streaming_start streaming_stop gather].freeze
|
|
39
39
|
|
|
40
40
|
ACTIONS.each do |action|
|
|
41
41
|
nested_resource_class_methods action,
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Telnyx
|
|
4
|
+
class CallRecording < APIResource
|
|
5
|
+
extend APIOperations::List
|
|
6
|
+
extend APIOperations::Create
|
|
7
|
+
include APIOperations::Delete
|
|
8
|
+
include APIOperations::Save
|
|
9
|
+
|
|
10
|
+
OBJECT_NAME = "recording".freeze
|
|
11
|
+
end
|
|
12
|
+
end
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Telnyx
|
|
4
|
+
class Campaign < APIResource
|
|
5
|
+
extend Telnyx::APIOperations::List
|
|
6
|
+
extend Telnyx::APIOperations::Create
|
|
7
|
+
include Telnyx::APIOperations::Delete
|
|
8
|
+
include Telnyx::APIOperations::Save
|
|
9
|
+
extend APIOperations::NestedResource
|
|
10
|
+
|
|
11
|
+
ACTIONS = %w[mnoMetadata operationStatus].freeze
|
|
12
|
+
ACTIONS.each do |action|
|
|
13
|
+
nested_resource_class_methods action,
|
|
14
|
+
path: %W[#{action}],
|
|
15
|
+
operations: [:create],
|
|
16
|
+
instance_methods: { create: action }
|
|
17
|
+
end
|
|
18
|
+
def accept_sharing(params = {}, opts = {})
|
|
19
|
+
resp, opts = request(:post, "/v2/campaign/acceptSharing/#{campaignId.gsub(/\s+/, '+')}", params, opts)
|
|
20
|
+
Util.convert_to_telnyx_object(resp.data, opts)
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def sharing(params = {}, opts = {})
|
|
24
|
+
resp, opts = request(:get, "/v2/campaign/#{campaignId.gsub(/\s+/, '+')}/sharing", params, opts)
|
|
25
|
+
Util.convert_to_telnyx_object(resp.data, opts)
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def osr_attributes(params = {}, opts = {})
|
|
29
|
+
resp, opts = request(:get, "/v2/campaign/#{campaignId.gsub(/\s+/, '+')}/osr/attributes", params, opts)
|
|
30
|
+
Util.convert_to_telnyx_object(resp.data, opts)
|
|
31
|
+
end
|
|
32
|
+
OBJECT_NAME = "campaign".freeze
|
|
33
|
+
end
|
|
34
|
+
end
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Telnyx
|
|
4
|
+
class CdrUsageReport < APIResource
|
|
5
|
+
def self.sync(params = {}, opts = {})
|
|
6
|
+
opts = Util.normalize_opts(opts)
|
|
7
|
+
resp, opts = request(:get, "/v2/reports/cdr_usage_reports/sync", params, opts)
|
|
8
|
+
ListObject.construct_from(resp.data, opts)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
OBJECT_NAME = "/reports/cdr_usage_report".freeze
|
|
12
|
+
end
|
|
13
|
+
end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Telnyx
|
|
4
|
+
class Comment < APIResource
|
|
5
|
+
extend Telnyx::APIOperations::List
|
|
6
|
+
extend Telnyx::APIOperations::Create
|
|
7
|
+
extend APIOperations::NestedResource
|
|
8
|
+
|
|
9
|
+
nested_resource_class_methods "read",
|
|
10
|
+
path: "read",
|
|
11
|
+
operations: [:update],
|
|
12
|
+
instance_methods: { update: "read" }
|
|
13
|
+
|
|
14
|
+
def read(opts = nil)
|
|
15
|
+
self.class.update_read(id, nil, opts)
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
OBJECT_NAME = "comment".freeze
|
|
19
|
+
end
|
|
20
|
+
end
|
data/lib/telnyx/conference.rb
CHANGED
|
@@ -6,7 +6,7 @@ module Telnyx
|
|
|
6
6
|
extend APIOperations::Create
|
|
7
7
|
extend APIOperations::NestedResource
|
|
8
8
|
|
|
9
|
-
ACTIONS = %w[join mute unmute hold unhold speak play dial_participant update].freeze
|
|
9
|
+
ACTIONS = %w[join mute unmute hold unhold leave speak stop play dial_participant update record_pause record_resume].freeze
|
|
10
10
|
|
|
11
11
|
ACTIONS.each do |action|
|
|
12
12
|
nested_resource_class_methods action,
|
data/lib/telnyx/connection.rb
CHANGED
|
@@ -3,6 +3,11 @@
|
|
|
3
3
|
module Telnyx
|
|
4
4
|
class Connection < APIResource
|
|
5
5
|
extend Telnyx::APIOperations::List
|
|
6
|
+
extend APIOperations::NestedResource
|
|
7
|
+
nested_resource_class_methods :active_calls,
|
|
8
|
+
path: ["active_calls"],
|
|
9
|
+
operations: %i[list],
|
|
10
|
+
instance_methods: { list: "active_calls" }
|
|
6
11
|
|
|
7
12
|
OBJECT_NAME = "connection".freeze
|
|
8
13
|
end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Telnyx
|
|
4
|
+
class DialogflowConnection < APIResource
|
|
5
|
+
extend Telnyx::APIOperations::Create
|
|
6
|
+
include Telnyx::APIOperations::Delete
|
|
7
|
+
include Telnyx::APIOperations::Save
|
|
8
|
+
|
|
9
|
+
OBJECT_NAME = "dialogflow_connection".freeze
|
|
10
|
+
def self.create(params = {}, opts = {})
|
|
11
|
+
if opts.respond_to? :fetch
|
|
12
|
+
url = opts.fetch(:resource_url, nil)
|
|
13
|
+
opts.delete :resource_url
|
|
14
|
+
end
|
|
15
|
+
url ||= resource_url
|
|
16
|
+
resp, opts = request(:post, "#{url}/#{params[:connection_id]}", params, opts)
|
|
17
|
+
Util.convert_to_telnyx_object(resp.data, opts)
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Telnyx
|
|
4
|
+
class Documents < APIResource
|
|
5
|
+
extend Telnyx::APIOperations::List
|
|
6
|
+
extend Telnyx::APIOperations::Create
|
|
7
|
+
include Telnyx::APIOperations::Delete
|
|
8
|
+
include Telnyx::APIOperations::Save
|
|
9
|
+
extend APIOperations::NestedResource
|
|
10
|
+
|
|
11
|
+
ACTIONS = %w[download document_links].freeze
|
|
12
|
+
ACTIONS.each do |action|
|
|
13
|
+
nested_resource_class_methods action,
|
|
14
|
+
path: %W[#{action}],
|
|
15
|
+
operations: [:create],
|
|
16
|
+
instance_methods: { create: action }
|
|
17
|
+
end
|
|
18
|
+
OBJECT_NAME = "document".freeze
|
|
19
|
+
end
|
|
20
|
+
end
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Telnyx
|
|
4
|
+
class ManagedAccount < APIResource
|
|
5
|
+
extend Telnyx::APIOperations::List
|
|
6
|
+
extend Telnyx::APIOperations::Create
|
|
7
|
+
include Telnyx::APIOperations::Delete
|
|
8
|
+
include Telnyx::APIOperations::Save
|
|
9
|
+
|
|
10
|
+
OBJECT_NAME = "managed_account".freeze
|
|
11
|
+
end
|
|
12
|
+
end
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Telnyx
|
|
4
|
+
class DynamicEmergencyEndpoint < APIResource
|
|
5
|
+
extend Telnyx::APIOperations::List
|
|
6
|
+
extend Telnyx::APIOperations::Create
|
|
7
|
+
include Telnyx::APIOperations::Delete
|
|
8
|
+
include Telnyx::APIOperations::Save
|
|
9
|
+
|
|
10
|
+
OBJECT_NAME = "dynamic_emergency_endpoint".freeze
|
|
11
|
+
end
|
|
12
|
+
end
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Telnyx
|
|
4
|
+
class Embedding < APIResource
|
|
5
|
+
extend APIOperations::Create
|
|
6
|
+
|
|
7
|
+
def self.buckets(params = {}, opts = {})
|
|
8
|
+
resp, opts = request(:get, "/v2/ai/embeddings/buckets", params, opts)
|
|
9
|
+
Util.convert_to_telnyx_object(resp.data, opts)
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
OBJECT_NAME = "ai/embedding".freeze
|
|
13
|
+
end
|
|
14
|
+
end
|
data/lib/telnyx/enum.rb
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Telnyx
|
|
4
|
+
class Enum < APIResource
|
|
5
|
+
extend APIOperations::List
|
|
6
|
+
extend APIOperations::NestedResource
|
|
7
|
+
|
|
8
|
+
def self.endpoint(params = {}, opts = {})
|
|
9
|
+
resp, opts = request(:get, "/v2/enum/#{params[:endpoint]}", params, opts)
|
|
10
|
+
Util.convert_to_telnyx_object(resp.data, opts)
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
OBJECT_NAME = "enum".freeze
|
|
14
|
+
end
|
|
15
|
+
end
|
data/lib/telnyx/fax.rb
CHANGED
|
@@ -6,8 +6,22 @@ module Telnyx
|
|
|
6
6
|
extend Telnyx::APIOperations::Create
|
|
7
7
|
include Telnyx::APIOperations::Delete
|
|
8
8
|
include Telnyx::APIOperations::Save
|
|
9
|
+
extend APIOperations::NestedResource
|
|
10
|
+
|
|
11
|
+
ACTIONS = %w[refresh cancel].freeze
|
|
12
|
+
ACTIONS.each do |action|
|
|
13
|
+
nested_resource_class_methods action,
|
|
14
|
+
path: %W[actions #{action}],
|
|
15
|
+
operations: [:create],
|
|
16
|
+
instance_methods: { create: action }
|
|
17
|
+
end
|
|
9
18
|
|
|
10
19
|
OBJECT_NAME = "fax".freeze
|
|
11
20
|
RESOURCE_PATH = "faxes".freeze
|
|
21
|
+
def self.retrieve(id, opts = {})
|
|
22
|
+
id, retrieve_params = Util.normalize_id(id)
|
|
23
|
+
resp, opts = request(:get, "#{resource_url}/#{CGI.escape(id)}", retrieve_params, opts)
|
|
24
|
+
Util.convert_to_telnyx_object(resp.data, opts)
|
|
25
|
+
end
|
|
12
26
|
end
|
|
13
27
|
end
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Telnyx
|
|
4
|
+
class GlobalIpAssignment < APIResource
|
|
5
|
+
extend APIOperations::List
|
|
6
|
+
extend APIOperations::Create
|
|
7
|
+
include APIOperations::Delete
|
|
8
|
+
include APIOperations::Save
|
|
9
|
+
|
|
10
|
+
OBJECT_NAME = "global_ip_assignment".freeze
|
|
11
|
+
end
|
|
12
|
+
end
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Telnyx
|
|
4
|
+
class ManagedAccount < APIResource
|
|
5
|
+
extend APIOperations::List
|
|
6
|
+
extend APIOperations::Create
|
|
7
|
+
extend APIOperations::NestedResource
|
|
8
|
+
include APIOperations::Delete
|
|
9
|
+
include APIOperations::Save
|
|
10
|
+
|
|
11
|
+
ACTIONS = %w[enable disable].freeze
|
|
12
|
+
ACTIONS.each do |action|
|
|
13
|
+
nested_resource_class_methods action,
|
|
14
|
+
path: %W[actions #{action}],
|
|
15
|
+
operations: [:create],
|
|
16
|
+
instance_methods: { create: action }
|
|
17
|
+
end
|
|
18
|
+
nested_resource_class_methods "update_global_channel_limit",
|
|
19
|
+
path: "update_global_channel_limit",
|
|
20
|
+
operations: [:update],
|
|
21
|
+
instance_methods: { update: "update_global_channel_limit" }
|
|
22
|
+
def self.allocatable_global_outbound_channels(params = {}, opts = {})
|
|
23
|
+
resp, opts = request(:get, "/v2/managed_accounts/allocatable_global_outbound_channels", params, opts)
|
|
24
|
+
Util.convert_to_telnyx_object(resp.data, opts)
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def update_global_channel_limit(opts)
|
|
28
|
+
self.class.update_update_global_channel_limit(id, nil, opts)
|
|
29
|
+
end
|
|
30
|
+
OBJECT_NAME = "managed_account".freeze
|
|
31
|
+
end
|
|
32
|
+
end
|