rcs 2.0.21 → 2.0.22.pre.rc.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 (86) hide show
  1. checksums.yaml +4 -4
  2. data/.fernignore +2 -0
  3. data/CONTRIBUTING.md +8 -12
  4. data/README.md +1 -1
  5. data/lib/pinnacle/calls/client.rb +386 -0
  6. data/lib/pinnacle/calls/types/calls_download_recording_request.rb +13 -0
  7. data/lib/pinnacle/calls/types/calls_list_events_request.rb +15 -0
  8. data/lib/pinnacle/calls/types/calls_list_request.rb +25 -0
  9. data/lib/pinnacle/calls/types/create_call_params.rb +19 -0
  10. data/lib/pinnacle/calls/types/create_stream_token_params.rb +17 -0
  11. data/lib/pinnacle/calls/types/update_call_params.rb +13 -0
  12. data/lib/pinnacle/campaigns/dlc/client.rb +1 -1
  13. data/lib/pinnacle/campaigns/rcs/client.rb +1 -1
  14. data/lib/pinnacle/campaigns/toll_free/client.rb +1 -1
  15. data/lib/pinnacle/client.rb +29 -14
  16. data/lib/pinnacle/conferences/client.rb +212 -0
  17. data/lib/pinnacle/conferences/participants/client.rb +209 -0
  18. data/lib/pinnacle/conferences/participants/types/participants_add_request.rb +17 -0
  19. data/lib/pinnacle/conferences/participants/types/update_conference_participant_params.rb +23 -0
  20. data/lib/pinnacle/conferences/types/conferences_list_request.rb +13 -0
  21. data/lib/pinnacle/conferences/types/create_conference_params.rb +23 -0
  22. data/lib/pinnacle/conferences/types/update_conference_params.rb +19 -0
  23. data/lib/pinnacle/forms/client.rb +1 -1
  24. data/lib/pinnacle/network/client.rb +34 -0
  25. data/lib/pinnacle/network/requests/client.rb +94 -0
  26. data/lib/pinnacle/network/requests/types/list_network_requests_params.rb +21 -0
  27. data/lib/pinnacle/network/silent_auth/client.rb +107 -0
  28. data/lib/pinnacle/network/silent_auth/types/silent_auth_check_request.rb +15 -0
  29. data/lib/pinnacle/network/silent_auth/types/silent_auth_request.rb +17 -0
  30. data/lib/pinnacle/network/sim_swap/client.rb +55 -0
  31. data/lib/pinnacle/network/sim_swap/types/sim_swap_request.rb +15 -0
  32. data/lib/pinnacle/network/subscriber_match/client.rb +55 -0
  33. data/lib/pinnacle/network/subscriber_match/types/subscriber_match_request.rb +15 -0
  34. data/lib/pinnacle/types/add_conference_participant_params.rb +15 -0
  35. data/lib/pinnacle/types/agent_summary_carrier_launches.rb +1 -1
  36. data/lib/pinnacle/types/call.rb +35 -0
  37. data/lib/pinnacle/types/call_direction.rb +12 -0
  38. data/lib/pinnacle/types/call_event.rb +27 -0
  39. data/lib/pinnacle/types/call_event_source.rb +14 -0
  40. data/lib/pinnacle/types/call_metadata.rb +23 -0
  41. data/lib/pinnacle/types/call_state.rb +19 -0
  42. data/lib/pinnacle/types/call_status_event.rb +14 -0
  43. data/lib/pinnacle/types/call_status_event_call.rb +17 -0
  44. data/lib/pinnacle/types/call_stream_token.rb +13 -0
  45. data/lib/pinnacle/types/conference.rb +33 -0
  46. data/lib/pinnacle/types/conference_ended_reason.rb +16 -0
  47. data/lib/pinnacle/types/conference_participant.rb +34 -0
  48. data/lib/pinnacle/types/conference_status.rb +13 -0
  49. data/lib/pinnacle/types/created_call.rb +33 -0
  50. data/lib/pinnacle/types/dial.rb +30 -0
  51. data/lib/pinnacle/types/e_164_phone_number.rb +23 -0
  52. data/lib/pinnacle/types/existing_call_participant_params.rb +20 -0
  53. data/lib/pinnacle/types/hosted_silent_auth_response.rb +13 -0
  54. data/lib/pinnacle/types/json_silent_auth_response.rb +13 -0
  55. data/lib/pinnacle/types/list_call_events_response.rb +11 -0
  56. data/lib/pinnacle/types/list_calls_response.rb +11 -0
  57. data/lib/pinnacle/types/list_conferences_response.rb +9 -0
  58. data/lib/pinnacle/types/list_network_requests_response.rb +13 -0
  59. data/lib/pinnacle/types/list_participants_response.rb +9 -0
  60. data/lib/pinnacle/types/network_insight_status.rb +14 -0
  61. data/lib/pinnacle/types/network_request_id.rb +23 -0
  62. data/lib/pinnacle/types/network_request_result.rb +16 -0
  63. data/lib/pinnacle/types/network_request_status.rb +15 -0
  64. data/lib/pinnacle/types/network_request_summary.rb +27 -0
  65. data/lib/pinnacle/types/network_request_type.rb +13 -0
  66. data/lib/pinnacle/types/participant_announce.rb +15 -0
  67. data/lib/pinnacle/types/participant_label.rb +23 -0
  68. data/lib/pinnacle/types/participant_left_reason.rb +17 -0
  69. data/lib/pinnacle/types/participant_status.rb +15 -0
  70. data/lib/pinnacle/types/play.rb +9 -0
  71. data/lib/pinnacle/types/recording_download.rb +11 -0
  72. data/lib/pinnacle/types/recording_state.rb +14 -0
  73. data/lib/pinnacle/types/silent_auth_check_response.rb +11 -0
  74. data/lib/pinnacle/types/silent_auth_check_response_status.rb +12 -0
  75. data/lib/pinnacle/types/silent_auth_response.rb +15 -0
  76. data/lib/pinnacle/types/sim_swap_response.rb +15 -0
  77. data/lib/pinnacle/types/speak.rb +11 -0
  78. data/lib/pinnacle/types/subscriber_match_attributes.rb +30 -0
  79. data/lib/pinnacle/types/subscriber_match_response.rb +13 -0
  80. data/lib/pinnacle/types/subscriber_match_response_matches.rb +41 -0
  81. data/lib/pinnacle/types/subscriber_match_result.rb +18 -0
  82. data/lib/pinnacle/types/webhook_event_enum.rb +1 -0
  83. data/lib/pinnacle/types/whisper_to.rb +23 -0
  84. data/lib/pinnacle/version.rb +1 -1
  85. data/lib/pinnacle.rb +144 -72
  86. metadata +74 -2
@@ -0,0 +1,34 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Types
5
+ # A call in a conference.
6
+ class ConferenceParticipant < Internal::Types::Model
7
+ field :call_id, -> { String }, optional: false, nullable: false
8
+
9
+ field :conference_id, -> { String }, optional: false, nullable: false
10
+
11
+ field :label, -> { String }, optional: false, nullable: true
12
+
13
+ field :status, -> { Pinnacle::Types::ParticipantStatus }, optional: false, nullable: false
14
+
15
+ field :from, -> { String }, optional: false, nullable: true
16
+
17
+ field :to, -> { String }, optional: false, nullable: true
18
+
19
+ field :muted, -> { Internal::Types::Boolean }, optional: false, nullable: false
20
+
21
+ field :on_hold, -> { Internal::Types::Boolean }, optional: false, nullable: false
22
+
23
+ field :whisper_to, -> { Internal::Types::Array[String] }, optional: false, nullable: true
24
+
25
+ field :end_conference_on_leave, -> { Internal::Types::Boolean }, optional: false, nullable: false
26
+
27
+ field :joined_at, -> { String }, optional: false, nullable: true
28
+
29
+ field :left_at, -> { String }, optional: false, nullable: true
30
+
31
+ field :left_reason, -> { Pinnacle::Types::ParticipantLeftReason }, optional: false, nullable: true
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Types
5
+ module ConferenceStatus
6
+ extend Pinnacle::Internal::Types::Enum
7
+
8
+ WAITING = "waiting"
9
+ ACTIVE = "active"
10
+ ENDED = "ended"
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,33 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Types
5
+ class CreatedCall < Internal::Types::Model
6
+ field :id, -> { String }, optional: false, nullable: false
7
+
8
+ field :state, -> { Pinnacle::Types::CallState }, optional: false, nullable: false
9
+
10
+ field :direction, -> { Pinnacle::Types::CallDirection }, optional: false, nullable: false
11
+
12
+ field :to, -> { String }, optional: false, nullable: false
13
+
14
+ field :from, -> { String }, optional: false, nullable: false
15
+
16
+ field :created_at, -> { String }, optional: false, nullable: false
17
+
18
+ field :started_at, -> { String }, optional: false, nullable: true
19
+
20
+ field :answered_at, -> { String }, optional: false, nullable: true
21
+
22
+ field :ended_at, -> { String }, optional: false, nullable: true
23
+
24
+ field :metadata, -> { Internal::Types::Hash[String, String] }, optional: false, nullable: false
25
+
26
+ field :recording_state, -> { Pinnacle::Types::RecordingState }, optional: false, nullable: true
27
+
28
+ field :hangup_cause, -> { String }, optional: false, nullable: true
29
+
30
+ field :record, -> { Internal::Types::Boolean }, optional: false, nullable: false
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Types
5
+ # Dial someone new. This creates a new outbound call, exactly like `POST /calls`.
6
+ class Dial < Internal::Types::Model
7
+ field :to, -> { String }, optional: false, nullable: false
8
+
9
+ field :from, -> { String }, optional: false, nullable: false
10
+
11
+ field :label, -> { String }, optional: true, nullable: false
12
+
13
+ field :muted, -> { Internal::Types::Boolean }, optional: true, nullable: false
14
+
15
+ field :on_hold, -> { Internal::Types::Boolean }, optional: true, nullable: false
16
+
17
+ field :whisper_to, -> { Internal::Types::Array[String] }, optional: true, nullable: false
18
+
19
+ field :end_conference_on_leave, -> { Internal::Types::Boolean }, optional: true, nullable: false
20
+
21
+ field :announce, -> { Pinnacle::Types::ParticipantAnnounce }, optional: true, nullable: false
22
+
23
+ field :ring_timeout_secs, -> { Integer }, optional: true, nullable: false
24
+
25
+ field :record, -> { Internal::Types::Boolean }, optional: true, nullable: false
26
+
27
+ field :metadata, -> { Internal::Types::Hash[String, String] }, optional: true, nullable: false
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Types
5
+ module E164PhoneNumber
6
+ # E164PhoneNumber is an alias for String
7
+
8
+ # @option str [String]
9
+ #
10
+ # @return [untyped]
11
+ def self.load(str)
12
+ ::JSON.parse(str)
13
+ end
14
+
15
+ # @option value [untyped]
16
+ #
17
+ # @return [String]
18
+ def self.dump(value)
19
+ ::JSON.generate(value)
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Types
5
+ # Pull in a call your team already has. It must be answered and not in another conference.
6
+ class ExistingCallParticipantParams < Internal::Types::Model
7
+ field :call_id, -> { String }, optional: false, nullable: false
8
+
9
+ field :label, -> { String }, optional: true, nullable: false
10
+
11
+ field :muted, -> { Internal::Types::Boolean }, optional: true, nullable: false
12
+
13
+ field :on_hold, -> { Internal::Types::Boolean }, optional: true, nullable: false
14
+
15
+ field :whisper_to, -> { Internal::Types::Array[String] }, optional: true, nullable: false
16
+
17
+ field :end_conference_on_leave, -> { Internal::Types::Boolean }, optional: true, nullable: false
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Types
5
+ class HostedSilentAuthResponse < Internal::Types::Model
6
+ field :request_id, -> { String }, optional: false, nullable: false, api_name: "requestId"
7
+
8
+ field :browser_url, -> { String }, optional: false, nullable: false, api_name: "browserUrl"
9
+
10
+ field :expires_at, -> { String }, optional: false, nullable: false, api_name: "expiresAt"
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Types
5
+ class JsonSilentAuthResponse < Internal::Types::Model
6
+ field :request_id, -> { String }, optional: false, nullable: false, api_name: "requestId"
7
+
8
+ field :json_url, -> { String }, optional: false, nullable: false, api_name: "jsonUrl"
9
+
10
+ field :expires_at, -> { String }, optional: false, nullable: false, api_name: "expiresAt"
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Types
5
+ class ListCallEventsResponse < Internal::Types::Model
6
+ field :data, -> { Internal::Types::Array[Pinnacle::Types::CallEvent] }, optional: false, nullable: false
7
+
8
+ field :next_cursor, -> { String }, optional: false, nullable: true
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Types
5
+ class ListCallsResponse < Internal::Types::Model
6
+ field :data, -> { Internal::Types::Array[Pinnacle::Types::Call] }, optional: false, nullable: false
7
+
8
+ field :next_cursor, -> { String }, optional: false, nullable: true
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Types
5
+ class ListConferencesResponse < Internal::Types::Model
6
+ field :data, -> { Internal::Types::Array[Pinnacle::Types::Conference] }, optional: false, nullable: false
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Types
5
+ class ListNetworkRequestsResponse < Internal::Types::Model
6
+ field :data, -> { Internal::Types::Array[Pinnacle::Types::NetworkRequestSummary] }, optional: false, nullable: false
7
+
8
+ field :has_more, -> { Internal::Types::Boolean }, optional: false, nullable: false, api_name: "hasMore"
9
+
10
+ field :count, -> { Integer }, optional: false, nullable: false
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Types
5
+ class ListParticipantsResponse < Internal::Types::Model
6
+ field :data, -> { Internal::Types::Array[Pinnacle::Types::ConferenceParticipant] }, optional: false, nullable: false
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Types
5
+ module NetworkInsightStatus
6
+ extend Pinnacle::Internal::Types::Enum
7
+
8
+ AVAILABLE = "available"
9
+ UNAVAILABLE = "unavailable"
10
+ UNSUPPORTED = "unsupported"
11
+ FAILED = "failed"
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Types
5
+ module NetworkRequestId
6
+ # NetworkRequestId is an alias for String
7
+
8
+ # @option str [String]
9
+ #
10
+ # @return [untyped]
11
+ def self.load(str)
12
+ ::JSON.parse(str)
13
+ end
14
+
15
+ # @option value [untyped]
16
+ #
17
+ # @return [String]
18
+ def self.dump(value)
19
+ ::JSON.generate(value)
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Types
5
+ # Result from the original check, or null while the request is still pending or no result is available.
6
+ class NetworkRequestResult < Internal::Types::Model
7
+ extend Pinnacle::Internal::Types::Union
8
+
9
+ member -> { Pinnacle::Types::SimSwapResponse }
10
+
11
+ member -> { Pinnacle::Types::SubscriberMatchResponse }
12
+
13
+ member -> { Pinnacle::Types::SilentAuthCheckResponse }
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Types
5
+ module NetworkRequestStatus
6
+ extend Pinnacle::Internal::Types::Enum
7
+
8
+ STARTED = "started"
9
+ CHALLENGE_ISSUED = "challenge-issued"
10
+ COMPLETED = "completed"
11
+ FAILED = "failed"
12
+ EXPIRED = "expired"
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,27 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Types
5
+ class NetworkRequestSummary < Internal::Types::Model
6
+ field :request_id, -> { String }, optional: false, nullable: false, api_name: "requestId"
7
+
8
+ field :type, -> { Pinnacle::Types::NetworkRequestType }, optional: false, nullable: false
9
+
10
+ field :status, -> { Pinnacle::Types::NetworkRequestStatus }, optional: false, nullable: false
11
+
12
+ field :client_ref, -> { String }, optional: false, nullable: true, api_name: "clientRef"
13
+
14
+ field :created_at, -> { String }, optional: false, nullable: false, api_name: "createdAt"
15
+
16
+ field :updated_at, -> { String }, optional: false, nullable: false, api_name: "updatedAt"
17
+
18
+ field :completed_at, -> { String }, optional: false, nullable: true, api_name: "completedAt"
19
+
20
+ field :expires_at, -> { String }, optional: false, nullable: true, api_name: "expiresAt"
21
+
22
+ field :error_message, -> { String }, optional: false, nullable: true, api_name: "errorMessage"
23
+
24
+ field :result, -> { Pinnacle::Types::NetworkRequestResult }, optional: false, nullable: true
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Types
5
+ module NetworkRequestType
6
+ extend Pinnacle::Internal::Types::Enum
7
+
8
+ SILENT_AUTH = "silent-auth"
9
+ SIM_SWAP = "sim-swap"
10
+ SUBSCRIBER_MATCH = "subscriber-match"
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Types
5
+ # Played to a dialed participant when they answer, before they join. Nobody else hears it. If it can't be played,
6
+ # they join without it.
7
+ class ParticipantAnnounce < Internal::Types::Model
8
+ extend Pinnacle::Internal::Types::Union
9
+
10
+ member -> { Pinnacle::Types::Speak }
11
+
12
+ member -> { Pinnacle::Types::Play }
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Types
5
+ module ParticipantLabel
6
+ # ParticipantLabel is an alias for String
7
+
8
+ # @option str [String]
9
+ #
10
+ # @return [untyped]
11
+ def self.load(str)
12
+ ::JSON.parse(str)
13
+ end
14
+
15
+ # @option value [untyped]
16
+ #
17
+ # @return [String]
18
+ def self.dump(value)
19
+ ::JSON.generate(value)
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Types
5
+ module ParticipantLeftReason
6
+ extend Pinnacle::Internal::Types::Enum
7
+
8
+ HANGUP = "hangup"
9
+ REMOVED = "removed"
10
+ BUSY = "busy"
11
+ NO_ANSWER = "no_answer"
12
+ REJECTED = "rejected"
13
+ FAILED = "failed"
14
+ CONFERENCE_ENDED = "conference_ended"
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Types
5
+ module ParticipantStatus
6
+ extend Pinnacle::Internal::Types::Enum
7
+
8
+ DIALING = "dialing"
9
+ RINGING = "ringing"
10
+ JOINED = "joined"
11
+ LEFT = "left"
12
+ FAILED = "failed"
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Types
5
+ class Play < Internal::Types::Model
6
+ field :url, -> { String }, optional: false, nullable: false
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Types
5
+ class RecordingDownload < Internal::Types::Model
6
+ field :url, -> { String }, optional: false, nullable: false
7
+
8
+ field :expires_at, -> { String }, optional: false, nullable: false
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Types
5
+ module RecordingState
6
+ extend Pinnacle::Internal::Types::Enum
7
+
8
+ PENDING = "PENDING"
9
+ READY = "READY"
10
+ FAILED = "FAILED"
11
+ DELETED = "DELETED"
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Types
5
+ class SilentAuthCheckResponse < Internal::Types::Model
6
+ field :request_id, -> { String }, optional: false, nullable: false, api_name: "requestId"
7
+
8
+ field :status, -> { Pinnacle::Types::SilentAuthCheckResponseStatus }, optional: false, nullable: false
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Types
5
+ module SilentAuthCheckResponseStatus
6
+ extend Pinnacle::Internal::Types::Enum
7
+
8
+ COMPLETED = "completed"
9
+ FAILED = "failed"
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Types
5
+ class SilentAuthResponse < Internal::Types::Model
6
+ extend Pinnacle::Internal::Types::Union
7
+
8
+ discriminant :format
9
+
10
+ member -> { Pinnacle::Types::HostedSilentAuthResponse }, key: "HOSTED"
11
+
12
+ member -> { Pinnacle::Types::JsonSilentAuthResponse }, key: "JSON_"
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Types
5
+ class SimSwapResponse < Internal::Types::Model
6
+ field :request_id, -> { String }, optional: false, nullable: false, api_name: "requestId"
7
+
8
+ field :status, -> { Pinnacle::Types::NetworkInsightStatus }, optional: false, nullable: false
9
+
10
+ field :sim_swapped, -> { Internal::Types::Boolean }, optional: false, nullable: true, api_name: "simSwapped"
11
+
12
+ field :latest_sim_swap_at, -> { String }, optional: false, nullable: true, api_name: "latestSimSwapAt"
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Types
5
+ class Speak < Internal::Types::Model
6
+ field :text, -> { String }, optional: false, nullable: false
7
+
8
+ field :voice, -> { String }, optional: true, nullable: false
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Types
5
+ # User-provided subscriber details to compare with the carrier record. Provide at least one non-empty field.
6
+ class SubscriberMatchAttributes < Internal::Types::Model
7
+ field :id_document, -> { String }, optional: true, nullable: false, api_name: "idDocument"
8
+
9
+ field :given_name, -> { String }, optional: true, nullable: false, api_name: "givenName"
10
+
11
+ field :family_name, -> { String }, optional: true, nullable: false, api_name: "familyName"
12
+
13
+ field :street_name, -> { String }, optional: true, nullable: false, api_name: "streetName"
14
+
15
+ field :street_number, -> { String }, optional: true, nullable: false, api_name: "streetNumber"
16
+
17
+ field :postal_code, -> { String }, optional: true, nullable: false, api_name: "postalCode"
18
+
19
+ field :locality, -> { String }, optional: true, nullable: false
20
+
21
+ field :region, -> { String }, optional: true, nullable: false
22
+
23
+ field :country, -> { String }, optional: true, nullable: false
24
+
25
+ field :street_number_suffix, -> { String }, optional: true, nullable: false, api_name: "streetNumberSuffix"
26
+
27
+ field :birthdate, -> { String }, optional: true, nullable: false
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Types
5
+ class SubscriberMatchResponse < Internal::Types::Model
6
+ field :request_id, -> { String }, optional: false, nullable: false, api_name: "requestId"
7
+
8
+ field :status, -> { Pinnacle::Types::NetworkInsightStatus }, optional: false, nullable: false
9
+
10
+ field :matches, -> { Pinnacle::Types::SubscriberMatchResponseMatches }, optional: false, nullable: false
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,41 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Types
5
+ # Match strength for each evaluated subscriber attribute.
6
+ #
7
+ # - `exact`: Carrier record matches the submitted value exactly.
8
+ # - `high`: Strong match with minor formatting or normalization differences.
9
+ # - `partial`: Some parts match, but the value is not a strong match.
10
+ # - `low`: Weak match.
11
+ # - `none`: Carrier record does not match the submitted value.
12
+ # - `unavailable`: Carrier could not evaluate this attribute.
13
+ # - `included-with-address-match`: Attribute was evaluated as part of the overall address match.
14
+ # - `unknown`: Carrier returned a match value Pinnacle does not recognize yet.
15
+ class SubscriberMatchResponseMatches < Internal::Types::Model
16
+ field :id_document, -> { Pinnacle::Types::SubscriberMatchResult }, optional: true, nullable: false, api_name: "idDocument"
17
+
18
+ field :given_name, -> { Pinnacle::Types::SubscriberMatchResult }, optional: true, nullable: false, api_name: "givenName"
19
+
20
+ field :family_name, -> { Pinnacle::Types::SubscriberMatchResult }, optional: true, nullable: false, api_name: "familyName"
21
+
22
+ field :address, -> { Pinnacle::Types::SubscriberMatchResult }, optional: true, nullable: false
23
+
24
+ field :street_name, -> { Pinnacle::Types::SubscriberMatchResult }, optional: true, nullable: false, api_name: "streetName"
25
+
26
+ field :street_number, -> { Pinnacle::Types::SubscriberMatchResult }, optional: true, nullable: false, api_name: "streetNumber"
27
+
28
+ field :postal_code, -> { Pinnacle::Types::SubscriberMatchResult }, optional: true, nullable: false, api_name: "postalCode"
29
+
30
+ field :locality, -> { Pinnacle::Types::SubscriberMatchResult }, optional: true, nullable: false
31
+
32
+ field :region, -> { Pinnacle::Types::SubscriberMatchResult }, optional: true, nullable: false
33
+
34
+ field :country, -> { Pinnacle::Types::SubscriberMatchResult }, optional: true, nullable: false
35
+
36
+ field :street_number_suffix, -> { Pinnacle::Types::SubscriberMatchResult }, optional: true, nullable: false, api_name: "streetNumberSuffix"
37
+
38
+ field :birthdate, -> { Pinnacle::Types::SubscriberMatchResult }, optional: true, nullable: false
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Types
5
+ module SubscriberMatchResult
6
+ extend Pinnacle::Internal::Types::Enum
7
+
8
+ EXACT = "exact"
9
+ HIGH = "high"
10
+ PARTIAL = "partial"
11
+ LOW = "low"
12
+ NONE = "none"
13
+ UNAVAILABLE = "unavailable"
14
+ INCLUDED_WITH_ADDRESS_MATCH = "included-with-address-match"
15
+ UNKNOWN = "unknown"
16
+ end
17
+ end
18
+ end