rcs 2.0.11 → 2.0.14

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 (151) hide show
  1. checksums.yaml +4 -4
  2. data/.fern/metadata.json +1 -1
  3. data/.fernignore +2 -1
  4. data/lib/pinnacle/audiences/client.rb +34 -0
  5. data/lib/pinnacle/audiences/types/list_audiences_params.rb +13 -0
  6. data/lib/pinnacle/brands/client.rb +34 -0
  7. data/lib/pinnacle/brands/types/list_brands_params.rb +15 -0
  8. data/lib/pinnacle/brands/types/list_brands_request_status.rb +18 -0
  9. data/lib/pinnacle/campaigns/dlc/client.rb +35 -0
  10. data/lib/pinnacle/campaigns/dlc/types/list_dlc_campaigns_params.rb +17 -0
  11. data/lib/pinnacle/campaigns/dlc/types/list_dlc_campaigns_request_status.rb +18 -0
  12. data/lib/pinnacle/campaigns/rcs/client.rb +35 -0
  13. data/lib/pinnacle/campaigns/rcs/types/list_rcs_campaigns_params.rb +17 -0
  14. data/lib/pinnacle/campaigns/rcs/types/list_rcs_campaigns_request_status.rb +18 -0
  15. data/lib/pinnacle/campaigns/toll_free/client.rb +35 -0
  16. data/lib/pinnacle/campaigns/toll_free/types/list_toll_free_campaigns_params.rb +17 -0
  17. data/lib/pinnacle/campaigns/toll_free/types/list_toll_free_campaigns_request_status.rb +18 -0
  18. data/lib/pinnacle/client.rb +1 -1
  19. data/lib/pinnacle/contacts/client.rb +34 -0
  20. data/lib/pinnacle/contacts/types/list_contacts_params.rb +16 -0
  21. data/lib/pinnacle/conversations/types/conversations_list_messages_request_status.rb +1 -0
  22. data/lib/pinnacle/internal/types/boolean.rb +1 -1
  23. data/lib/pinnacle/internal/types/utils.rb +2 -2
  24. data/lib/pinnacle/messages/blast/types/blast_rcs.rb +1 -0
  25. data/lib/pinnacle/messages/blasts/client.rb +50 -0
  26. data/lib/pinnacle/messages/blasts/types/list_blasts_params.rb +17 -0
  27. data/lib/pinnacle/messages/client.rb +44 -0
  28. data/lib/pinnacle/messages/rcs/types/send_rich_message_response.rb +2 -0
  29. data/lib/pinnacle/messages/rcs/types/send_typing_indicator_schema.rb +0 -1
  30. data/lib/pinnacle/messages/schedules/client.rb +51 -0
  31. data/lib/pinnacle/messages/schedules/types/list_scheduled_messages_params.rb +17 -0
  32. data/lib/pinnacle/messages/schedules/types/list_scheduled_messages_request_schedule_type.rb +16 -0
  33. data/lib/pinnacle/messages/schedules/types/list_scheduled_messages_request_status.rb +17 -0
  34. data/lib/pinnacle/messages/types/list_messages_params.rb +21 -0
  35. data/lib/pinnacle/messages/types/list_messages_request_direction.rb +14 -0
  36. data/lib/pinnacle/messages/types/list_messages_request_method.rb +15 -0
  37. data/lib/pinnacle/messages/types/list_messages_request_status.rb +21 -0
  38. data/lib/pinnacle/messages/types/list_messages_request_type.rb +15 -0
  39. data/lib/pinnacle/phone_numbers/client.rb +34 -0
  40. data/lib/pinnacle/phone_numbers/types/list_phone_numbers_params.rb +12 -0
  41. data/lib/pinnacle/rcs/agents/client.rb +50 -0
  42. data/lib/pinnacle/rcs/agents/types/list_agents_params.rb +16 -0
  43. data/lib/pinnacle/rcs/agents/types/list_agents_request_agent_type.rb +16 -0
  44. data/lib/pinnacle/rcs/client.rb +34 -44
  45. data/lib/pinnacle/rcs/test/client.rb +275 -0
  46. data/lib/pinnacle/rcs/test/types/create_test_agent_request.rb +24 -0
  47. data/lib/pinnacle/rcs/test/types/test_agent_whitelist_request.rb +14 -0
  48. data/lib/pinnacle/rcs/test/types/test_get_whitelist_status_request.rb +14 -0
  49. data/lib/pinnacle/rcs/test/types/update_test_agent_request.rb +25 -0
  50. data/lib/pinnacle/rcs/types/rcs_capabilities_query.rb +1 -0
  51. data/lib/pinnacle/rcs/types/rcs_link_request.rb +0 -1
  52. data/lib/pinnacle/rcs/whitelisted_numbers/client.rb +51 -0
  53. data/lib/pinnacle/rcs/whitelisted_numbers/types/list_test_numbers_params.rb +17 -0
  54. data/lib/pinnacle/rcs/whitelisted_numbers/types/list_test_numbers_request_status.rb +17 -0
  55. data/lib/pinnacle/tools/url/client.rb +34 -0
  56. data/lib/pinnacle/tools/url/types/list_links_params.rb +15 -0
  57. data/lib/pinnacle/types/agent_email_entry.rb +11 -0
  58. data/lib/pinnacle/types/agent_phone_entry.rb +11 -0
  59. data/lib/pinnacle/types/agent_summary.rb +15 -0
  60. data/lib/pinnacle/types/agent_summary_agent_type.rb +12 -0
  61. data/lib/pinnacle/types/agent_summary_carrier_launches.rb +13 -0
  62. data/lib/pinnacle/types/agent_summary_config.rb +21 -0
  63. data/lib/pinnacle/types/agent_summary_config_agent_use_case.rb +14 -0
  64. data/lib/pinnacle/types/agent_summary_config_emails_item.rb +10 -0
  65. data/lib/pinnacle/types/agent_summary_config_phones_item.rb +10 -0
  66. data/lib/pinnacle/types/agent_summary_config_websites_item.rb +10 -0
  67. data/lib/pinnacle/types/agent_use_case.rb +14 -0
  68. data/lib/pinnacle/types/agent_website_entry.rb +11 -0
  69. data/lib/pinnacle/types/audience_summary.rb +13 -0
  70. data/lib/pinnacle/types/base_rich_message.rb +1 -0
  71. data/lib/pinnacle/types/blast_summary.rb +16 -0
  72. data/lib/pinnacle/types/blast_summary_type.rb +13 -0
  73. data/lib/pinnacle/types/carrier_launch_status.rb +13 -0
  74. data/lib/pinnacle/types/carrier_launches.rb +13 -0
  75. data/lib/pinnacle/types/dlc_campaign_summary.rb +15 -0
  76. data/lib/pinnacle/types/dlc_campaign_summary_status.rb +14 -0
  77. data/lib/pinnacle/types/fallback_message.rb +21 -0
  78. data/lib/pinnacle/types/link_summary.rb +12 -0
  79. data/lib/pinnacle/types/list_agents_response.rb +11 -0
  80. data/lib/pinnacle/types/list_audiences_response.rb +11 -0
  81. data/lib/pinnacle/types/list_blasts_response.rb +11 -0
  82. data/lib/pinnacle/types/list_brands_response.rb +11 -0
  83. data/lib/pinnacle/types/list_contacts_response.rb +11 -0
  84. data/lib/pinnacle/types/list_dlc_campaigns_response.rb +11 -0
  85. data/lib/pinnacle/types/list_links_response.rb +11 -0
  86. data/lib/pinnacle/types/list_messages_response.rb +11 -0
  87. data/lib/pinnacle/types/list_phone_numbers_response.rb +11 -0
  88. data/lib/pinnacle/types/list_rcs_campaigns_response.rb +11 -0
  89. data/lib/pinnacle/types/list_scheduled_messages_response.rb +11 -0
  90. data/lib/pinnacle/types/list_test_numbers_response.rb +11 -0
  91. data/lib/pinnacle/types/list_toll_free_campaigns_response.rb +11 -0
  92. data/lib/pinnacle/types/list_webhooks_response.rb +11 -0
  93. data/lib/pinnacle/types/message_event.rb +3 -1
  94. data/lib/pinnacle/types/message_event_content.rb +9 -7
  95. data/lib/pinnacle/types/message_event_fallback_message.rb +20 -0
  96. data/lib/pinnacle/types/message_event_fallback_message_type.rb +12 -0
  97. data/lib/pinnacle/types/message_event_mms_content.rb +0 -1
  98. data/lib/pinnacle/types/message_event_rcs_button_data.rb +2 -1
  99. data/lib/pinnacle/types/message_event_rcs_button_data_button.rb +14 -0
  100. data/lib/pinnacle/types/message_event_rcs_button_data_button_raw.rb +14 -0
  101. data/lib/pinnacle/types/message_event_rcs_button_data_button_type.rb +12 -0
  102. data/lib/pinnacle/types/message_event_rcs_cards_content.rb +0 -1
  103. data/lib/pinnacle/types/message_event_rcs_location_data.rb +2 -1
  104. data/lib/pinnacle/types/message_event_rcs_location_data_data.rb +13 -0
  105. data/lib/pinnacle/types/message_event_rcs_media_content.rb +0 -1
  106. data/lib/pinnacle/types/message_event_rcs_text_content.rb +0 -1
  107. data/lib/pinnacle/types/message_event_sms_content.rb +0 -1
  108. data/lib/pinnacle/types/message_list.rb +1 -1
  109. data/lib/pinnacle/types/message_status_enum.rb +1 -0
  110. data/lib/pinnacle/types/message_summary.rb +25 -0
  111. data/lib/pinnacle/types/{message_with_reaction_direction.rb → message_summary_direction.rb} +1 -1
  112. data/lib/pinnacle/types/message_summary_method.rb +13 -0
  113. data/lib/pinnacle/types/message_summary_status.rb +19 -0
  114. data/lib/pinnacle/types/message_summary_type.rb +13 -0
  115. data/lib/pinnacle/types/message_with_reactions.rb +11 -0
  116. data/lib/pinnacle/types/message_with_reactions_direction.rb +12 -0
  117. data/lib/pinnacle/types/owned_phone_number.rb +14 -0
  118. data/lib/pinnacle/types/rcs_agent_details.rb +21 -0
  119. data/lib/pinnacle/types/rcs_agent_details_agent_use_case.rb +14 -0
  120. data/lib/pinnacle/types/rcs_agent_details_emails_item.rb +10 -0
  121. data/lib/pinnacle/types/rcs_agent_details_phones_item.rb +10 -0
  122. data/lib/pinnacle/types/rcs_agent_details_websites_item.rb +10 -0
  123. data/lib/pinnacle/types/rcs_agent_response.rb +14 -0
  124. data/lib/pinnacle/types/rcs_campaign_summary.rb +16 -0
  125. data/lib/pinnacle/types/rcs_campaign_summary_status.rb +14 -0
  126. data/lib/pinnacle/types/rcs_whitelist_status.rb +13 -0
  127. data/lib/pinnacle/types/rich_cards_message.rb +1 -0
  128. data/lib/pinnacle/types/scheduled_message_summary.rb +17 -0
  129. data/lib/pinnacle/types/scheduled_message_summary_status.rb +13 -0
  130. data/lib/pinnacle/types/send_rich_message_options.rb +0 -1
  131. data/lib/pinnacle/types/sent_rich_message_fallback_mms.rb +13 -0
  132. data/lib/pinnacle/types/sent_rich_message_fallback_sms.rb +13 -0
  133. data/lib/pinnacle/types/test_agent_response.rb +13 -0
  134. data/lib/pinnacle/types/test_agent_whitelist_response.rb +10 -0
  135. data/lib/pinnacle/types/toll_free_campaign_summary.rb +15 -0
  136. data/lib/pinnacle/types/toll_free_campaign_summary_status.rb +14 -0
  137. data/lib/pinnacle/types/webhook_summary.rb +14 -0
  138. data/lib/pinnacle/types/webhook_summary_status.rb +13 -0
  139. data/lib/pinnacle/types/whitelisted_number_summary.rb +12 -0
  140. data/lib/pinnacle/types/whitelisted_number_summary_status.rb +13 -0
  141. data/lib/pinnacle/version.rb +1 -1
  142. data/lib/pinnacle/webhooks/client.rb +34 -0
  143. data/lib/pinnacle/webhooks/types/list_webhooks_params.rb +14 -0
  144. data/lib/pinnacle/webhooks/types/list_webhooks_request_status.rb +15 -0
  145. data/lib/pinnacle.rb +542 -0
  146. data/reference.md +2124 -224
  147. metadata +109 -7
  148. data/lib/pinnacle/messages/rcs/types/send_typing_indicator_schema_options.rb +0 -14
  149. data/lib/pinnacle/rcs/types/rcs_whitelist_request.rb +0 -12
  150. data/lib/pinnacle/types/message_with_reaction.rb +0 -11
  151. data/lib/pinnacle/types/rcs_whitelist_response.rb +0 -10
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Types
5
+ module AgentUseCase
6
+ extend Pinnacle::Internal::Types::Enum
7
+
8
+ TRANSACTIONAL = "TRANSACTIONAL"
9
+ PROMOTIONAL = "PROMOTIONAL"
10
+ OTP = "OTP"
11
+ MULTI_USE = "MULTI_USE"
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Types
5
+ # A website contact entry for the RCS agent's contact information.
6
+ class AgentWebsiteEntry < Internal::Types::Model
7
+ field :url, -> { String }, optional: false, nullable: false
8
+ field :label, -> { String }, optional: false, nullable: false
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Types
5
+ class AudienceSummary < Internal::Types::Model
6
+ field :id, -> { String }, optional: false, nullable: false
7
+ field :name, -> { String }, optional: false, nullable: false
8
+ field :description, -> { String }, optional: false, nullable: false
9
+ field :created_at, -> { String }, optional: false, nullable: false, api_name: "createdAt"
10
+ field :updated_at, -> { String }, optional: false, nullable: false, api_name: "updatedAt"
11
+ end
12
+ end
13
+ end
@@ -4,6 +4,7 @@ module Pinnacle
4
4
  module Types
5
5
  class BaseRichMessage < Internal::Types::Model
6
6
  field :from, -> { String }, optional: false, nullable: false
7
+ field :fallback, -> { Pinnacle::Types::FallbackMessage }, optional: true, nullable: false
7
8
  field :options, -> { Pinnacle::Types::SendRichMessageOptions }, optional: true, nullable: false
8
9
  field :to, -> { String }, optional: false, nullable: false
9
10
  end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Types
5
+ class BlastSummary < Internal::Types::Model
6
+ field :id, -> { String }, optional: false, nullable: false
7
+ field :audience_id, -> { String }, optional: false, nullable: false, api_name: "audienceId"
8
+ field :type, -> { Pinnacle::Types::BlastSummaryType }, optional: false, nullable: false
9
+ field :senders, -> { Internal::Types::Array[String] }, optional: false, nullable: false
10
+ field :content, -> { Internal::Types::Hash[String, Object] }, optional: false, nullable: false
11
+ field :options, -> { Internal::Types::Hash[String, Object] }, optional: false, nullable: true
12
+ field :fallback, -> { Internal::Types::Hash[String, Object] }, optional: false, nullable: true
13
+ field :created_at, -> { String }, optional: false, nullable: false, api_name: "createdAt"
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Types
5
+ module BlastSummaryType
6
+ extend Pinnacle::Internal::Types::Enum
7
+
8
+ SMS = "SMS"
9
+ MMS = "MMS"
10
+ RCS = "RCS"
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Types
5
+ module CarrierLaunchStatus
6
+ extend Pinnacle::Internal::Types::Enum
7
+
8
+ NOT_LAUNCHED = "NOT_LAUNCHED"
9
+ PENDING = "PENDING"
10
+ LAUNCHED = "LAUNCHED"
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Types
5
+ # Per-carrier launch status.
6
+ class CarrierLaunches < Internal::Types::Model
7
+ field :att, -> { Pinnacle::Types::CarrierLaunchStatus }, optional: false, nullable: false, api_name: "ATT"
8
+ field :tmobile, -> { Pinnacle::Types::CarrierLaunchStatus }, optional: false, nullable: false, api_name: "TMOBILE"
9
+ field :verizon, -> { Pinnacle::Types::CarrierLaunchStatus }, optional: false, nullable: false, api_name: "VERIZON"
10
+ field :others, -> { Pinnacle::Types::CarrierLaunchStatus }, optional: false, nullable: false, api_name: "OTHERS"
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Types
5
+ class DlcCampaignSummary < Internal::Types::Model
6
+ field :campaign_id, -> { String }, optional: false, nullable: false, api_name: "campaignId"
7
+ field :name, -> { String }, optional: true, nullable: false
8
+ field :status, -> { Pinnacle::Types::DlcCampaignSummaryStatus }, optional: false, nullable: false
9
+ field :brand_id, -> { String }, optional: true, nullable: false, api_name: "brandId"
10
+ field :use_case, -> { String }, optional: true, nullable: false, api_name: "useCase"
11
+ field :created_at, -> { String }, optional: false, nullable: false, api_name: "createdAt"
12
+ field :updated_at, -> { String }, optional: false, nullable: false, api_name: "updatedAt"
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Types
5
+ module DlcCampaignSummaryStatus
6
+ extend Pinnacle::Internal::Types::Enum
7
+
8
+ INCOMPLETE = "INCOMPLETE"
9
+ IN_REVIEW = "IN REVIEW"
10
+ VERIFIED = "VERIFIED"
11
+ FAILED = "FAILED"
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Types
5
+ # SMS/MMS fallback message to send if the RCS message fails to deliver.
6
+ #
7
+ # When a recipient's device doesn't support RCS, this fallback message will be sent as SMS or MMS instead. The
8
+ # fallback is sent from the specified phone number.
9
+ #
10
+ # > **Note:** At least one of `text` or `mediaUrls` must be provided. Fallback messages require a verified `from`
11
+ # phone number with SMS/MMS sending capabilities.
12
+ #
13
+ # > **Billing:** You will be charged the standard SMS or MMS rate for the fallback message. The original RCS message
14
+ # will not be charged if the fallback is sent instead.
15
+ class FallbackMessage < Internal::Types::Model
16
+ field :from, -> { String }, optional: false, nullable: false
17
+ field :text, -> { String }, optional: true, nullable: false
18
+ field :media_urls, -> { Internal::Types::Array[String] }, optional: true, nullable: false, api_name: "mediaUrls"
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Types
5
+ class LinkSummary < Internal::Types::Model
6
+ field :from, -> { String }, optional: false, nullable: false
7
+ field :to, -> { String }, optional: false, nullable: false
8
+ field :expires_at, -> { String }, optional: true, nullable: false, api_name: "expiresAt"
9
+ field :created_at, -> { String }, optional: false, nullable: false, api_name: "createdAt"
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Types
5
+ class ListAgentsResponse < Internal::Types::Model
6
+ field :data, -> { Internal::Types::Array[Pinnacle::Types::AgentSummary] }, optional: false, nullable: false
7
+ field :has_more, -> { Internal::Types::Boolean }, optional: false, nullable: false, api_name: "hasMore"
8
+ field :count, -> { Integer }, optional: false, nullable: false
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Types
5
+ class ListAudiencesResponse < Internal::Types::Model
6
+ field :data, -> { Internal::Types::Array[Pinnacle::Types::AudienceSummary] }, optional: false, nullable: false
7
+ field :has_more, -> { Internal::Types::Boolean }, optional: false, nullable: false, api_name: "hasMore"
8
+ field :count, -> { Integer }, optional: false, nullable: false
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Types
5
+ class ListBlastsResponse < Internal::Types::Model
6
+ field :data, -> { Internal::Types::Array[Pinnacle::Types::BlastSummary] }, optional: false, nullable: false
7
+ field :has_more, -> { Internal::Types::Boolean }, optional: false, nullable: false, api_name: "hasMore"
8
+ field :count, -> { Integer }, optional: false, nullable: false
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Types
5
+ class ListBrandsResponse < Internal::Types::Model
6
+ field :data, -> { Internal::Types::Array[Pinnacle::Types::ExtendedBrand] }, optional: false, nullable: false
7
+ field :has_more, -> { Internal::Types::Boolean }, optional: false, nullable: false, api_name: "hasMore"
8
+ field :count, -> { Integer }, optional: false, nullable: false
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Types
5
+ class ListContactsResponse < Internal::Types::Model
6
+ field :data, -> { Internal::Types::Array[Pinnacle::Types::Contact] }, optional: false, nullable: false
7
+ field :has_more, -> { Internal::Types::Boolean }, optional: false, nullable: false, api_name: "hasMore"
8
+ field :count, -> { Integer }, optional: false, nullable: false
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Types
5
+ class ListDlcCampaignsResponse < Internal::Types::Model
6
+ field :data, -> { Internal::Types::Array[Pinnacle::Types::DlcCampaignSummary] }, optional: false, nullable: false
7
+ field :has_more, -> { Internal::Types::Boolean }, optional: false, nullable: false, api_name: "hasMore"
8
+ field :count, -> { Integer }, optional: false, nullable: false
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Types
5
+ class ListLinksResponse < Internal::Types::Model
6
+ field :data, -> { Internal::Types::Array[Pinnacle::Types::LinkSummary] }, optional: false, nullable: false
7
+ field :has_more, -> { Internal::Types::Boolean }, optional: false, nullable: false, api_name: "hasMore"
8
+ field :count, -> { Integer }, optional: false, nullable: false
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Types
5
+ class ListMessagesResponse < Internal::Types::Model
6
+ field :data, -> { Internal::Types::Array[Pinnacle::Types::MessageSummary] }, optional: false, nullable: false
7
+ field :has_more, -> { Internal::Types::Boolean }, optional: false, nullable: false, api_name: "hasMore"
8
+ field :count, -> { Integer }, optional: false, nullable: false
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Types
5
+ class ListPhoneNumbersResponse < Internal::Types::Model
6
+ field :data, -> { Internal::Types::Array[Pinnacle::Types::OwnedPhoneNumber] }, optional: false, nullable: false
7
+ field :has_more, -> { Internal::Types::Boolean }, optional: false, nullable: false, api_name: "hasMore"
8
+ field :count, -> { Integer }, optional: false, nullable: false
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Types
5
+ class ListRcsCampaignsResponse < Internal::Types::Model
6
+ field :data, -> { Internal::Types::Array[Pinnacle::Types::RcsCampaignSummary] }, optional: false, nullable: false
7
+ field :has_more, -> { Internal::Types::Boolean }, optional: false, nullable: false, api_name: "hasMore"
8
+ field :count, -> { Integer }, optional: false, nullable: false
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Types
5
+ class ListScheduledMessagesResponse < Internal::Types::Model
6
+ field :data, -> { Internal::Types::Array[Pinnacle::Types::ScheduledMessageSummary] }, optional: false, nullable: false
7
+ field :has_more, -> { Internal::Types::Boolean }, optional: false, nullable: false, api_name: "hasMore"
8
+ field :count, -> { Integer }, optional: false, nullable: false
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Types
5
+ class ListTestNumbersResponse < Internal::Types::Model
6
+ field :data, -> { Internal::Types::Array[Pinnacle::Types::WhitelistedNumberSummary] }, optional: false, nullable: false
7
+ field :has_more, -> { Internal::Types::Boolean }, optional: false, nullable: false, api_name: "hasMore"
8
+ field :count, -> { Integer }, optional: false, nullable: false
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Types
5
+ class ListTollFreeCampaignsResponse < Internal::Types::Model
6
+ field :data, -> { Internal::Types::Array[Pinnacle::Types::TollFreeCampaignSummary] }, optional: false, nullable: false
7
+ field :has_more, -> { Internal::Types::Boolean }, optional: false, nullable: false, api_name: "hasMore"
8
+ field :count, -> { Integer }, optional: false, nullable: false
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Types
5
+ class ListWebhooksResponse < Internal::Types::Model
6
+ field :data, -> { Internal::Types::Array[Pinnacle::Types::WebhookSummary] }, optional: false, nullable: false
7
+ field :has_more, -> { Internal::Types::Boolean }, optional: false, nullable: false, api_name: "hasMore"
8
+ field :count, -> { Integer }, optional: false, nullable: false
9
+ end
10
+ end
11
+ end
@@ -9,9 +9,11 @@ module Pinnacle
9
9
  field :status, -> { Pinnacle::Types::MessageStatusEnum }, optional: false, nullable: false
10
10
  field :direction, -> { Pinnacle::Types::MessageEventDirection }, optional: false, nullable: false
11
11
  field :segments, -> { Integer }, optional: false, nullable: false
12
- field :sent_at, -> { String }, optional: false, nullable: false, api_name: "sentAt"
12
+ field :sent_at, -> { String }, optional: false, nullable: true, api_name: "sentAt"
13
13
  field :delivered_at, -> { String }, optional: true, nullable: false, api_name: "deliveredAt"
14
14
  field :message, -> { Pinnacle::Types::MessageEventContent }, optional: false, nullable: false
15
+ field :original_message_id, -> { String }, optional: true, nullable: false, api_name: "originalMessageId"
16
+ field :fallback_message, -> { Pinnacle::Types::MessageEventFallbackMessage }, optional: true, nullable: false, api_name: "fallbackMessage"
15
17
  end
16
18
  end
17
19
  end
@@ -6,13 +6,15 @@ module Pinnacle
6
6
  class MessageEventContent < Internal::Types::Model
7
7
  extend Pinnacle::Internal::Types::Union
8
8
 
9
- member -> { Pinnacle::Types::MessageEventSmsContent }
10
- member -> { Pinnacle::Types::MessageEventMmsContent }
11
- member -> { Pinnacle::Types::MessageEventRcsTextContent }
12
- member -> { Pinnacle::Types::MessageEventRcsMediaContent }
13
- member -> { Pinnacle::Types::MessageEventRcsCardsContent }
14
- member -> { Pinnacle::Types::MessageEventRcsButtonData }
15
- member -> { Pinnacle::Types::MessageEventRcsLocationData }
9
+ discriminant :type
10
+
11
+ member -> { Pinnacle::Types::MessageEventSmsContent }, key: "SMS"
12
+ member -> { Pinnacle::Types::MessageEventMmsContent }, key: "MMS"
13
+ member -> { Pinnacle::Types::MessageEventRcsTextContent }, key: "RCS_TEXT"
14
+ member -> { Pinnacle::Types::MessageEventRcsMediaContent }, key: "RCS_MEDIA"
15
+ member -> { Pinnacle::Types::MessageEventRcsCardsContent }, key: "RCS_CARDS"
16
+ member -> { Pinnacle::Types::MessageEventRcsButtonData }, key: "RCS_BUTTON_DATA"
17
+ member -> { Pinnacle::Types::MessageEventRcsLocationData }, key: "RCS_LOCATION_DATA"
16
18
  end
17
19
  end
18
20
  end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Types
5
+ # Details of the fallback SMS/MMS message(s) that were actually sent to the recipient instead of the original RCS
6
+ # message.
7
+ #
8
+ # Only present when the message `status` is `FALLBACK_SENT`. The `message.id` on this event refers to the original
9
+ # RCS message that could not be delivered. The `fallbackMessage.ids` contain the identifiers of the actual SMS/MMS
10
+ # messages that were sent.
11
+ class MessageEventFallbackMessage < Internal::Types::Model
12
+ field :ids, -> { Internal::Types::Array[String] }, optional: false, nullable: false
13
+ field :type, -> { Pinnacle::Types::MessageEventFallbackMessageType }, optional: false, nullable: false
14
+ field :from, -> { String }, optional: false, nullable: false
15
+ field :to, -> { String }, optional: false, nullable: false
16
+ field :text, -> { String }, optional: true, nullable: false
17
+ field :media_urls, -> { Internal::Types::Array[String] }, optional: true, nullable: false, api_name: "mediaUrls"
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Types
5
+ module MessageEventFallbackMessageType
6
+ extend Pinnacle::Internal::Types::Enum
7
+
8
+ SMS = "SMS"
9
+ MMS = "MMS"
10
+ end
11
+ end
12
+ end
@@ -4,7 +4,6 @@ module Pinnacle
4
4
  module Types
5
5
  # MMS message with text and/or media files from a phone number.
6
6
  class MessageEventMmsContent < Internal::Types::Model
7
- field :type, -> { String }, optional: false, nullable: false
8
7
  field :id, -> { String }, optional: false, nullable: false
9
8
  field :media_urls, -> { Internal::Types::Array[String] }, optional: false, nullable: false, api_name: "mediaUrls"
10
9
  field :text, -> { String }, optional: true, nullable: false
@@ -8,8 +8,9 @@ module Pinnacle
8
8
  # This event contains information about which button was clicked, how many times it's been clicked, and any payload
9
9
  # or metadata attached to the button. Use this data to handle user interactions with your RCS messages.
10
10
  class MessageEventRcsButtonData < Internal::Types::Model
11
- field :type, -> { String }, optional: false, nullable: false
12
11
  field :id, -> { String }, optional: false, nullable: false
12
+ field :button, -> { Pinnacle::Types::MessageEventRcsButtonDataButton }, optional: false, nullable: false
13
+ field :message_id, -> { String }, optional: false, nullable: true, api_name: "messageId"
13
14
  end
14
15
  end
15
16
  end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Types
5
+ # Information about the button that was clicked.
6
+ class MessageEventRcsButtonDataButton < Internal::Types::Model
7
+ field :type, -> { Pinnacle::Types::MessageEventRcsButtonDataButtonType }, optional: true, nullable: false
8
+ field :raw, -> { Pinnacle::Types::MessageEventRcsButtonDataButtonRaw }, optional: false, nullable: false
9
+ field :payload, -> { String }, optional: true, nullable: false
10
+ field :metadata, -> { String }, optional: true, nullable: false
11
+ field :clicks, -> { Integer }, optional: false, nullable: false
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Types
5
+ # Raw button data. Contains the entire button that was clicked by the user. In rare cases where we cannot determine
6
+ # the exact button, this will return only the button title.
7
+ class MessageEventRcsButtonDataButtonRaw < Internal::Types::Model
8
+ extend Pinnacle::Internal::Types::Union
9
+
10
+ member -> { Pinnacle::Types::RichButton }
11
+ member -> { String }
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Types
5
+ module MessageEventRcsButtonDataButtonType
6
+ extend Pinnacle::Internal::Types::Enum
7
+
8
+ CARD = "CARD"
9
+ QUICK_REPLY = "QUICK_REPLY"
10
+ end
11
+ end
12
+ end
@@ -7,7 +7,6 @@ module Pinnacle
7
7
  #
8
8
  # See [supported file types](https://app.pinnacle.sh/supported-file-types?type=RCS-CARD).
9
9
  class MessageEventRcsCardsContent < Internal::Types::Model
10
- field :type, -> { String }, optional: false, nullable: false
11
10
  field :id, -> { String }, optional: false, nullable: false
12
11
  field :cards, -> { Internal::Types::Array[Pinnacle::Types::MessageEventRcsCardsContentCardsItem] }, optional: false, nullable: false
13
12
  field :quick_replies, -> { Internal::Types::Array[Pinnacle::Types::RichButton] }, optional: false, nullable: false, api_name: "quickReplies"
@@ -8,8 +8,9 @@ module Pinnacle
8
8
  # This event contains the geographic coordinates (latitude/longitude) and human-readable address of the location the
9
9
  # user chose to share. Use this data to process location-based requests or provide location-specific services.
10
10
  class MessageEventRcsLocationData < Internal::Types::Model
11
- field :type, -> { String }, optional: false, nullable: false
12
11
  field :id, -> { String }, optional: false, nullable: false
12
+ field :data, -> { Pinnacle::Types::MessageEventRcsLocationDataData }, optional: false, nullable: false
13
+ field :message_id, -> { String }, optional: true, nullable: false, api_name: "messageId"
13
14
  end
14
15
  end
15
16
  end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Types
5
+ # Location data shared by the user.
6
+ class MessageEventRcsLocationDataData < Internal::Types::Model
7
+ field :address, -> { String }, optional: false, nullable: false
8
+ field :latitude, -> { Integer }, optional: false, nullable: false
9
+ field :longitude, -> { Integer }, optional: false, nullable: false
10
+ field :text, -> { String }, optional: true, nullable: false
11
+ end
12
+ end
13
+ end
@@ -6,7 +6,6 @@ module Pinnacle
6
6
  #
7
7
  # See [supported file types](https://app.pinnacle.sh/supported-file-types?type=RCS-MEDIA).
8
8
  class MessageEventRcsMediaContent < Internal::Types::Model
9
- field :type, -> { String }, optional: false, nullable: false
10
9
  field :id, -> { String }, optional: false, nullable: false
11
10
  field :media, -> { String }, optional: false, nullable: false
12
11
  field :quick_replies, -> { Internal::Types::Array[Pinnacle::Types::RichButton] }, optional: false, nullable: false, api_name: "quickReplies"
@@ -4,7 +4,6 @@ module Pinnacle
4
4
  module Types
5
5
  # RCS message containing longer text content with optional quick reply buttons.
6
6
  class MessageEventRcsTextContent < Internal::Types::Model
7
- field :type, -> { String }, optional: false, nullable: false
8
7
  field :id, -> { String }, optional: false, nullable: false
9
8
  field :quick_replies, -> { Internal::Types::Array[Pinnacle::Types::RichButton] }, optional: false, nullable: false, api_name: "quickReplies"
10
9
  field :text, -> { String }, optional: false, nullable: false
@@ -4,7 +4,6 @@ module Pinnacle
4
4
  module Types
5
5
  # SMS message containing plain text only.
6
6
  class MessageEventSmsContent < Internal::Types::Model
7
- field :type, -> { String }, optional: false, nullable: false
8
7
  field :id, -> { String }, optional: false, nullable: false
9
8
  field :text, -> { String }, optional: false, nullable: false
10
9
  end
@@ -4,7 +4,7 @@ module Pinnacle
4
4
  module Types
5
5
  # Paginated list of messages in a conversation.
6
6
  class MessageList < Internal::Types::Model
7
- field :messages, -> { Internal::Types::Array[Pinnacle::Types::MessageWithReaction] }, optional: false, nullable: false
7
+ field :messages, -> { Internal::Types::Array[Pinnacle::Types::MessageWithReactions] }, optional: false, nullable: false
8
8
  field :has_more, -> { Internal::Types::Boolean }, optional: false, nullable: false, api_name: "hasMore"
9
9
  field :count, -> { Integer }, optional: false, nullable: false
10
10
  end
@@ -13,6 +13,7 @@ module Pinnacle
13
13
  DELIVERY_FAILED = "DELIVERY_FAILED"
14
14
  RECEIVED = "RECEIVED"
15
15
  READ = "READ"
16
+ FALLBACK_SENT = "FALLBACK_SENT"
16
17
  end
17
18
  end
18
19
  end
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Types
5
+ class MessageSummary < Internal::Types::Model
6
+ field :id, -> { String }, optional: false, nullable: false
7
+ field :status, -> { Pinnacle::Types::MessageSummaryStatus }, optional: false, nullable: false
8
+ field :direction, -> { Pinnacle::Types::MessageSummaryDirection }, optional: false, nullable: false
9
+ field :type, -> { Pinnacle::Types::MessageSummaryType }, optional: false, nullable: false
10
+ field :method_, -> { Pinnacle::Types::MessageSummaryMethod }, optional: false, nullable: false, api_name: "method"
11
+ field :num_segments, -> { Integer }, optional: false, nullable: false, api_name: "numSegments"
12
+ field :cost, -> { Integer }, optional: false, nullable: true
13
+ field :from, -> { String }, optional: false, nullable: true
14
+ field :to, -> { String }, optional: false, nullable: true
15
+ field :content, -> { Internal::Types::Hash[String, Object] }, optional: false, nullable: false
16
+ field :error, -> { Internal::Types::Hash[String, Object] }, optional: false, nullable: true
17
+ field :is_test, -> { Internal::Types::Boolean }, optional: false, nullable: false, api_name: "isTest"
18
+ field :blast_id, -> { String }, optional: false, nullable: true, api_name: "blastId"
19
+ field :sent_at, -> { String }, optional: false, nullable: true, api_name: "sentAt"
20
+ field :delivered_at, -> { String }, optional: false, nullable: true, api_name: "deliveredAt"
21
+ field :created_at, -> { String }, optional: false, nullable: false, api_name: "createdAt"
22
+ field :updated_at, -> { String }, optional: false, nullable: false, api_name: "updatedAt"
23
+ end
24
+ end
25
+ end
@@ -2,7 +2,7 @@
2
2
 
3
3
  module Pinnacle
4
4
  module Types
5
- module MessageWithReactionDirection
5
+ module MessageSummaryDirection
6
6
  extend Pinnacle::Internal::Types::Enum
7
7
 
8
8
  INBOUND = "INBOUND"
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Types
5
+ module MessageSummaryMethod
6
+ extend Pinnacle::Internal::Types::Enum
7
+
8
+ API = "API"
9
+ SDK = "SDK"
10
+ OTHER = "OTHER"
11
+ end
12
+ end
13
+ end