telnyx 2.8.0 → 3.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/scripts/before_install.sh +10 -9
- data/.github/workflows/publish-gem-on-release.yml +53 -0
- data/.github/workflows/ruby.yml +4 -4
- data/.github/workflows/tweet-release.yml +25 -0
- 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_operations/nested_resource.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 +59 -0
- 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/queue.rb +20 -0
- data/lib/telnyx/queue_call.rb +7 -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 +68 -1
- 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 +14 -5
- 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 +88 -0
- 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 +30 -0
- 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 +246 -39
- 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
|
@@ -76,7 +76,7 @@ module Telnyx
|
|
76
76
|
Util.convert_to_telnyx_object(resp.data, opts)
|
77
77
|
end
|
78
78
|
define_instance_method.call(:"delete_#{resource}", operation)
|
79
|
-
when :list
|
79
|
+
when :list # TODO: Add a plain :get case here and refactor code that (mis)uses this.
|
80
80
|
define_singleton_method(:"list_#{resource}s") do |id, params = {}, opts = {}|
|
81
81
|
url = send(resource_url_method, id)
|
82
82
|
resp, opts = request(:get, url, params, opts)
|
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
|