rcs 2.0.13 → 2.0.15

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 (154) hide show
  1. checksums.yaml +4 -4
  2. data/.fern/metadata.json +2 -2
  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/rcs/types/upsert_rcs_campaign_params.rb +3 -6
  16. data/lib/pinnacle/campaigns/toll_free/client.rb +35 -0
  17. data/lib/pinnacle/campaigns/toll_free/types/list_toll_free_campaigns_params.rb +17 -0
  18. data/lib/pinnacle/campaigns/toll_free/types/list_toll_free_campaigns_request_status.rb +18 -0
  19. data/lib/pinnacle/client.rb +1 -1
  20. data/lib/pinnacle/contacts/client.rb +34 -0
  21. data/lib/pinnacle/contacts/types/list_contacts_params.rb +16 -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/blasts/client.rb +50 -0
  25. data/lib/pinnacle/messages/blasts/types/list_blasts_params.rb +17 -0
  26. data/lib/pinnacle/messages/client.rb +44 -0
  27. data/lib/pinnacle/messages/rcs/types/send_rich_message_response.rb +2 -0
  28. data/lib/pinnacle/messages/rcs/types/send_typing_indicator_schema.rb +0 -1
  29. data/lib/pinnacle/messages/schedules/client.rb +51 -0
  30. data/lib/pinnacle/messages/schedules/types/list_scheduled_messages_params.rb +17 -0
  31. data/lib/pinnacle/messages/schedules/types/list_scheduled_messages_request_schedule_type.rb +16 -0
  32. data/lib/pinnacle/messages/schedules/types/list_scheduled_messages_request_status.rb +17 -0
  33. data/lib/pinnacle/messages/types/list_messages_params.rb +21 -0
  34. data/lib/pinnacle/messages/types/list_messages_request_direction.rb +14 -0
  35. data/lib/pinnacle/messages/types/list_messages_request_method.rb +15 -0
  36. data/lib/pinnacle/messages/types/list_messages_request_status.rb +21 -0
  37. data/lib/pinnacle/messages/types/list_messages_request_type.rb +15 -0
  38. data/lib/pinnacle/phone_numbers/client.rb +32 -3
  39. data/lib/pinnacle/phone_numbers/types/list_phone_numbers_params.rb +12 -0
  40. data/lib/pinnacle/rcs/agents/client.rb +50 -0
  41. data/lib/pinnacle/rcs/agents/types/list_agents_params.rb +16 -0
  42. data/lib/pinnacle/rcs/agents/types/list_agents_request_agent_type.rb +16 -0
  43. data/lib/pinnacle/rcs/client.rb +34 -44
  44. data/lib/pinnacle/rcs/test/client.rb +275 -0
  45. data/lib/pinnacle/rcs/test/types/create_test_agent_request.rb +24 -0
  46. data/lib/pinnacle/rcs/test/types/test_agent_whitelist_request.rb +14 -0
  47. data/lib/pinnacle/rcs/test/types/test_get_whitelist_status_request.rb +14 -0
  48. data/lib/pinnacle/rcs/test/types/update_test_agent_request.rb +25 -0
  49. data/lib/pinnacle/rcs/types/rcs_capabilities_query.rb +1 -0
  50. data/lib/pinnacle/rcs/types/rcs_link_request.rb +0 -1
  51. data/lib/pinnacle/rcs/whitelisted_numbers/client.rb +51 -0
  52. data/lib/pinnacle/rcs/whitelisted_numbers/types/list_test_numbers_params.rb +17 -0
  53. data/lib/pinnacle/rcs/whitelisted_numbers/types/list_test_numbers_request_status.rb +17 -0
  54. data/lib/pinnacle/tools/url/client.rb +34 -0
  55. data/lib/pinnacle/tools/url/types/list_links_params.rb +15 -0
  56. data/lib/pinnacle/types/agent_email_entry.rb +11 -0
  57. data/lib/pinnacle/types/agent_phone_entry.rb +11 -0
  58. data/lib/pinnacle/types/agent_summary.rb +15 -0
  59. data/lib/pinnacle/types/agent_summary_agent_type.rb +12 -0
  60. data/lib/pinnacle/types/agent_summary_carrier_launches.rb +13 -0
  61. data/lib/pinnacle/types/agent_summary_config.rb +21 -0
  62. data/lib/pinnacle/types/agent_summary_config_agent_use_case.rb +14 -0
  63. data/lib/pinnacle/types/agent_summary_config_emails_item.rb +10 -0
  64. data/lib/pinnacle/types/agent_summary_config_phones_item.rb +10 -0
  65. data/lib/pinnacle/types/agent_summary_config_websites_item.rb +10 -0
  66. data/lib/pinnacle/types/agent_use_case.rb +14 -0
  67. data/lib/pinnacle/types/agent_website_entry.rb +11 -0
  68. data/lib/pinnacle/types/attach_webhook_response_webhook.rb +1 -2
  69. data/lib/pinnacle/types/attach_webhook_result.rb +12 -0
  70. data/lib/pinnacle/types/audience_summary.rb +13 -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/detach_webhook_result.rb +11 -0
  76. data/lib/pinnacle/types/dlc_campaign_summary.rb +15 -0
  77. data/lib/pinnacle/types/dlc_campaign_summary_status.rb +14 -0
  78. data/lib/pinnacle/types/extended_rcs_campaign.rb +3 -6
  79. data/lib/pinnacle/types/failed_sender.rb +10 -0
  80. data/lib/pinnacle/types/fallback_message.rb +5 -3
  81. data/lib/pinnacle/types/link_summary.rb +12 -0
  82. data/lib/pinnacle/types/list_agents_response.rb +11 -0
  83. data/lib/pinnacle/types/list_audiences_response.rb +11 -0
  84. data/lib/pinnacle/types/list_blasts_response.rb +11 -0
  85. data/lib/pinnacle/types/list_brands_response.rb +11 -0
  86. data/lib/pinnacle/types/list_contacts_response.rb +11 -0
  87. data/lib/pinnacle/types/list_dlc_campaigns_response.rb +11 -0
  88. data/lib/pinnacle/types/list_links_response.rb +11 -0
  89. data/lib/pinnacle/types/list_messages_response.rb +11 -0
  90. data/lib/pinnacle/types/list_phone_numbers_response.rb +11 -0
  91. data/lib/pinnacle/types/list_rcs_campaigns_response.rb +11 -0
  92. data/lib/pinnacle/types/list_scheduled_messages_response.rb +11 -0
  93. data/lib/pinnacle/types/list_test_numbers_response.rb +11 -0
  94. data/lib/pinnacle/types/list_toll_free_campaigns_response.rb +11 -0
  95. data/lib/pinnacle/types/list_webhooks_response.rb +11 -0
  96. data/lib/pinnacle/types/message.rb +0 -1
  97. data/lib/pinnacle/types/message_event.rb +2 -1
  98. data/lib/pinnacle/types/message_event_fallback_message.rb +6 -6
  99. data/lib/pinnacle/types/message_list.rb +1 -1
  100. data/lib/pinnacle/types/message_summary.rb +25 -0
  101. data/lib/pinnacle/types/{message_with_reaction_direction.rb → message_summary_direction.rb} +1 -1
  102. data/lib/pinnacle/types/message_summary_method.rb +13 -0
  103. data/lib/pinnacle/types/message_summary_status.rb +19 -0
  104. data/lib/pinnacle/types/message_summary_type.rb +13 -0
  105. data/lib/pinnacle/types/message_with_reactions.rb +11 -0
  106. data/lib/pinnacle/types/message_with_reactions_direction.rb +12 -0
  107. data/lib/pinnacle/types/owned_phone_number.rb +14 -0
  108. data/lib/pinnacle/types/rcs_agent_details.rb +21 -0
  109. data/lib/pinnacle/types/rcs_agent_details_agent_use_case.rb +14 -0
  110. data/lib/pinnacle/types/rcs_agent_details_emails_item.rb +10 -0
  111. data/lib/pinnacle/types/rcs_agent_details_phones_item.rb +10 -0
  112. data/lib/pinnacle/types/rcs_agent_details_websites_item.rb +10 -0
  113. data/lib/pinnacle/types/rcs_agent_response.rb +14 -0
  114. data/lib/pinnacle/types/rcs_campaign.rb +3 -6
  115. data/lib/pinnacle/types/rcs_campaign_summary.rb +15 -0
  116. data/lib/pinnacle/types/rcs_campaign_summary_status.rb +14 -0
  117. data/lib/pinnacle/types/rcs_whitelist_status.rb +13 -0
  118. data/lib/pinnacle/types/scheduled_message_summary.rb +17 -0
  119. data/lib/pinnacle/types/scheduled_message_summary_status.rb +13 -0
  120. data/lib/pinnacle/types/send_rich_message_options.rb +0 -1
  121. data/lib/pinnacle/types/sent_rich_message_fallback_mms.rb +13 -0
  122. data/lib/pinnacle/types/sent_rich_message_fallback_sms.rb +13 -0
  123. data/lib/pinnacle/types/test_agent_response.rb +13 -0
  124. data/lib/pinnacle/types/test_agent_whitelist_response.rb +10 -0
  125. data/lib/pinnacle/types/toll_free_campaign_summary.rb +15 -0
  126. data/lib/pinnacle/types/toll_free_campaign_summary_status.rb +14 -0
  127. data/lib/pinnacle/types/webhook_event_enum.rb +1 -0
  128. data/lib/pinnacle/types/webhook_summary.rb +14 -0
  129. data/lib/pinnacle/types/webhook_summary_status.rb +13 -0
  130. data/lib/pinnacle/types/whitelisted_number_summary.rb +12 -0
  131. data/lib/pinnacle/types/whitelisted_number_summary_status.rb +13 -0
  132. data/lib/pinnacle/version.rb +1 -1
  133. data/lib/pinnacle/webhooks/client.rb +113 -0
  134. data/lib/pinnacle/webhooks/types/attach_webhook_params.rb +15 -0
  135. data/lib/pinnacle/webhooks/types/detach_webhook_params.rb +12 -0
  136. data/lib/pinnacle/webhooks/types/list_webhooks_params.rb +14 -0
  137. data/lib/pinnacle/webhooks/types/list_webhooks_request_status.rb +15 -0
  138. data/lib/pinnacle.rb +102 -18
  139. data/reference.md +2327 -454
  140. metadata +106 -17
  141. data/lib/pinnacle/campaigns/rcs/types/rcs_use_case.rb +0 -15
  142. data/lib/pinnacle/messages/rcs/types/send_typing_indicator_schema_options.rb +0 -14
  143. data/lib/pinnacle/phone_numbers/webhook/client.rb +0 -90
  144. data/lib/pinnacle/rcs/types/rcs_whitelist_request.rb +0 -12
  145. data/lib/pinnacle/types/attach_webhook_by_id_params.rb +0 -11
  146. data/lib/pinnacle/types/attach_webhook_params.rb +0 -15
  147. data/lib/pinnacle/types/configured_webhook.rb +0 -13
  148. data/lib/pinnacle/types/create_and_attach_webhook_by_url_params.rb +0 -12
  149. data/lib/pinnacle/types/detached_webhook_info.rb +0 -11
  150. data/lib/pinnacle/types/message_with_reaction.rb +0 -11
  151. data/lib/pinnacle/types/rcs_campaign_schema_extra_use_case.rb +0 -11
  152. data/lib/pinnacle/types/rcs_campaign_schema_use_case.rb +0 -11
  153. data/lib/pinnacle/types/rcs_campaign_use_case_enum.rb +0 -43
  154. 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 RcsAgentDetailsAgentUseCase
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,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Types
5
+ class RcsAgentDetailsEmailsItem < Internal::Types::Model
6
+ field :email, -> { String }, optional: true, nullable: false
7
+ field :label, -> { String }, optional: true, nullable: false
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Types
5
+ class RcsAgentDetailsPhonesItem < Internal::Types::Model
6
+ field :phone, -> { String }, optional: true, nullable: false
7
+ field :label, -> { String }, optional: true, nullable: false
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Types
5
+ class RcsAgentDetailsWebsitesItem < Internal::Types::Model
6
+ field :url, -> { String }, optional: true, nullable: false
7
+ field :label, -> { String }, optional: true, nullable: false
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Types
5
+ # Response containing details of an RCS agent.
6
+ class RcsAgentResponse < Internal::Types::Model
7
+ field :id, -> { String }, optional: false, nullable: false
8
+ field :type, -> { String }, optional: false, nullable: false
9
+ field :service_id, -> { String }, optional: false, nullable: false, api_name: "serviceId"
10
+ field :carrier_launches, -> { Pinnacle::Types::CarrierLaunches }, optional: false, nullable: false, api_name: "carrierLaunches"
11
+ field :details, -> { Pinnacle::Types::RcsAgentDetails }, optional: false, nullable: false
12
+ end
13
+ end
14
+ end
@@ -7,15 +7,12 @@ module Pinnacle
7
7
  field :campaign_id, -> { String }, optional: true, nullable: false, api_name: "campaignId"
8
8
  field :expected_agent_responses, -> { Internal::Types::Array[String] }, optional: true, nullable: false, api_name: "expectedAgentResponses"
9
9
  field :links, -> { Pinnacle::Types::RcsCampaignSchemaLinks }, optional: true, nullable: false
10
- field :use_case, -> { Pinnacle::Types::RcsCampaignSchemaUseCase }, optional: true, nullable: false, api_name: "useCase"
11
- field :opt_in_terms_and_conditions, -> { String }, optional: true, nullable: false, api_name: "optInTermsAndConditions"
10
+ field :use_case_description, -> { String }, optional: true, nullable: false, api_name: "useCaseDescription"
12
11
  field :messaging_type, -> { Pinnacle::Types::RcsMessagingTypeEnum }, optional: true, nullable: false, api_name: "messagingType"
13
- field :carrier_description, -> { String }, optional: true, nullable: false, api_name: "carrierDescription"
12
+ field :cta_media, -> { String }, optional: true, nullable: false, api_name: "ctaMedia"
13
+ field :opt_in_method, -> { String }, optional: true, nullable: false, api_name: "optInMethod"
14
14
  field :keywords, -> { Pinnacle::Types::RcsCampaignSchemaKeywords }, optional: true, nullable: false
15
15
  field :traffic, -> { Pinnacle::Types::RcsCampaignSchemaTraffic }, optional: true, nullable: false
16
- field :agent_triggers, -> { String }, optional: true, nullable: false, api_name: "agentTriggers"
17
- field :interaction_description, -> { String }, optional: true, nullable: false, api_name: "interactionDescription"
18
- field :is_conversational, -> { Internal::Types::Boolean }, optional: true, nullable: false, api_name: "isConversational"
19
16
  field :cta_language, -> { String }, optional: true, nullable: false, api_name: "ctaLanguage"
20
17
  field :demo_trigger, -> { String }, optional: true, nullable: false, api_name: "demoTrigger"
21
18
  end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Types
5
+ class RcsCampaignSummary < 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::RcsCampaignSummaryStatus }, optional: false, nullable: false
9
+ field :brand_id, -> { String }, optional: true, nullable: false, api_name: "brandId"
10
+ field :agent_id, -> { String }, optional: true, nullable: false, api_name: "agentId"
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 RcsCampaignSummaryStatus
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,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Types
5
+ module RcsWhitelistStatus
6
+ extend Pinnacle::Internal::Types::Enum
7
+
8
+ PENDING = "PENDING"
9
+ ACCEPTED = "ACCEPTED"
10
+ REJECTED = "REJECTED"
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Types
5
+ class ScheduledMessageSummary < Internal::Types::Model
6
+ field :id, -> { String }, optional: false, nullable: false
7
+ field :send_at, -> { String }, optional: false, nullable: true, api_name: "sendAt"
8
+ field :status, -> { Pinnacle::Types::ScheduledMessageSummaryStatus }, optional: false, nullable: false
9
+ field :recurrence, -> { String }, optional: false, nullable: true
10
+ field :timezone, -> { String }, optional: false, nullable: true
11
+ field :end_date, -> { String }, optional: false, nullable: true, api_name: "endDate"
12
+ field :payload, -> { Internal::Types::Hash[String, Object] }, optional: false, nullable: false
13
+ field :created_at, -> { String }, optional: false, nullable: false, api_name: "createdAt"
14
+ field :updated_at, -> { String }, optional: false, nullable: false, api_name: "updatedAt"
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Types
5
+ module ScheduledMessageSummaryStatus
6
+ extend Pinnacle::Internal::Types::Enum
7
+
8
+ ACTIVE = "ACTIVE"
9
+ CANCELLED = "CANCELLED"
10
+ FAILED = "FAILED"
11
+ end
12
+ end
13
+ end
@@ -5,7 +5,6 @@ module Pinnacle
5
5
  # Configure how your RCS message is sent and tracked.
6
6
  class SendRichMessageOptions < Internal::Types::Model
7
7
  field :schedule, -> { Pinnacle::Types::MessageSchedule }, optional: true, nullable: false
8
- field :test_mode, -> { Internal::Types::Boolean }, optional: true, nullable: false
9
8
  field :tracking, -> { Pinnacle::Types::Tracking }, optional: true, nullable: false
10
9
  field :transcode, -> { Internal::Types::Boolean }, optional: true, nullable: false
11
10
  field :validate, -> { Internal::Types::Boolean }, optional: true, nullable: false
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Types
5
+ # Returned when a fallback is configured and the recipient does not support RCS. The API checks RCS capabilities at
6
+ # send time. If the recipient's device doesn't support RCS, the fallback MMS is sent instead. You will also receive
7
+ # a `FALLBACK_SENT` webhook event for the original RCS message.
8
+ class SentRichMessageFallbackMms < Internal::Types::Model
9
+ field :fallback_sent, -> { Internal::Types::Boolean }, optional: false, nullable: false, api_name: "fallbackSent"
10
+ field :original_message_id, -> { String }, optional: false, nullable: false, api_name: "originalMessageId"
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Types
5
+ # Returned when a fallback is configured and the recipient does not support RCS. The API checks RCS capabilities at
6
+ # send time. If the recipient's device doesn't support RCS, the fallback SMS is sent instead. You will also receive
7
+ # a `FALLBACK_SENT` webhook event for the original RCS message.
8
+ class SentRichMessageFallbackSms < Internal::Types::Model
9
+ field :fallback_sent, -> { Internal::Types::Boolean }, optional: false, nullable: false, api_name: "fallbackSent"
10
+ field :original_message_id, -> { String }, optional: false, nullable: false, api_name: "originalMessageId"
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Types
5
+ # Response returned after creating or updating a test agent.
6
+ class TestAgentResponse < Internal::Types::Model
7
+ field :id, -> { String }, optional: false, nullable: false
8
+ field :type, -> { String }, optional: false, nullable: false
9
+ field :service_id, -> { String }, optional: false, nullable: false, api_name: "serviceId"
10
+ field :details, -> { Pinnacle::Types::RcsAgentDetails }, optional: false, nullable: false
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Types
5
+ # Response containing the whitelist status of a phone number.
6
+ class TestAgentWhitelistResponse < Internal::Types::Model
7
+ field :status, -> { Pinnacle::Types::RcsWhitelistStatus }, optional: false, nullable: false
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Types
5
+ class TollFreeCampaignSummary < 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::TollFreeCampaignSummaryStatus }, 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 TollFreeCampaignSummaryStatus
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
@@ -7,6 +7,7 @@ module Pinnacle
7
7
 
8
8
  MESSAGE_STATUS = "MESSAGE.STATUS"
9
9
  MESSAGE_RECEIVED = "MESSAGE.RECEIVED"
10
+ USER_TYPING = "USER.TYPING"
10
11
  end
11
12
  end
12
13
  end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Types
5
+ class WebhookSummary < Internal::Types::Model
6
+ field :id, -> { String }, optional: false, nullable: false
7
+ field :name, -> { String }, optional: false, nullable: false
8
+ field :endpoint, -> { String }, optional: false, nullable: false
9
+ field :status, -> { Pinnacle::Types::WebhookSummaryStatus }, optional: false, nullable: false
10
+ field :created_at, -> { String }, optional: false, nullable: false, api_name: "createdAt"
11
+ field :updated_at, -> { String }, optional: false, nullable: false, api_name: "updatedAt"
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Types
5
+ module WebhookSummaryStatus
6
+ extend Pinnacle::Internal::Types::Enum
7
+
8
+ DISABLED = "DISABLED"
9
+ ENABLED = "ENABLED"
10
+ DELETED = "DELETED"
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Types
5
+ class WhitelistedNumberSummary < Internal::Types::Model
6
+ field :number, -> { String }, optional: false, nullable: false
7
+ field :status, -> { Pinnacle::Types::WhitelistedNumberSummaryStatus }, optional: false, nullable: false
8
+ field :agent_id, -> { String }, optional: false, nullable: false, api_name: "agentId"
9
+ field :created_at, -> { String }, optional: false, nullable: false, api_name: "createdAt"
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Types
5
+ module WhitelistedNumberSummaryStatus
6
+ extend Pinnacle::Internal::Types::Enum
7
+
8
+ ACCEPTED = "ACCEPTED"
9
+ REJECTED = "REJECTED"
10
+ PENDING = "PENDING"
11
+ end
12
+ end
13
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Pinnacle
4
- VERSION = "2.0.13"
4
+ VERSION = "2.0.15"
5
5
  end
@@ -43,6 +43,119 @@ module Pinnacle
43
43
  raise error_class.new(response.body, code: code)
44
44
  end
45
45
  end
46
+
47
+ # List all webhooks with optional filtering and pagination. Results are sorted by creation date, newest first.
48
+ #
49
+ # @param request_options [Hash]
50
+ # @param params [Pinnacle::Webhooks::Types::ListWebhooksParams]
51
+ # @option request_options [String] :base_url
52
+ # @option request_options [Hash{String => Object}] :additional_headers
53
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
54
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
55
+ # @option request_options [Integer] :timeout_in_seconds
56
+ #
57
+ # @return [Pinnacle::Types::ListWebhooksResponse]
58
+ def list(request_options: {}, **params)
59
+ params = Pinnacle::Internal::Types::Utils.normalize_keys(params)
60
+ request = Pinnacle::Internal::JSON::Request.new(
61
+ base_url: request_options[:base_url],
62
+ method: "POST",
63
+ path: "webhooks/list",
64
+ body: Pinnacle::Webhooks::Types::ListWebhooksParams.new(params).to_h,
65
+ request_options: request_options
66
+ )
67
+ begin
68
+ response = @client.send(request)
69
+ rescue Net::HTTPRequestTimeout
70
+ raise Pinnacle::Errors::TimeoutError
71
+ end
72
+ code = response.code.to_i
73
+ if code.between?(200, 299)
74
+ Pinnacle::Types::ListWebhooksResponse.load(response.body)
75
+ else
76
+ error_class = Pinnacle::Errors::ResponseError.subclass_for_code(code)
77
+ raise error_class.new(response.body, code: code)
78
+ end
79
+ end
80
+
81
+ # Attach a webhook to one or more senders (phone numbers or RCS agent IDs) to receive real-time event
82
+ # notifications. <br>
83
+ #
84
+ # You can attach an existing webhook by providing its ID, or create a new webhook by specifying a name and URL.
85
+ # Supports bulk operations with up to 50 senders per request. <br>
86
+ #
87
+ # Subscriptions are additive — attaching new senders does not remove existing ones. Re-attaching the same sender
88
+ # updates the event type filter without creating duplicates.
89
+ #
90
+ # @param request_options [Hash]
91
+ # @param params [Pinnacle::Webhooks::Types::AttachWebhookParams]
92
+ # @option request_options [String] :base_url
93
+ # @option request_options [Hash{String => Object}] :additional_headers
94
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
95
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
96
+ # @option request_options [Integer] :timeout_in_seconds
97
+ #
98
+ # @return [Pinnacle::Types::AttachWebhookResult]
99
+ def attach(request_options: {}, **params)
100
+ params = Pinnacle::Internal::Types::Utils.normalize_keys(params)
101
+ request = Pinnacle::Internal::JSON::Request.new(
102
+ base_url: request_options[:base_url],
103
+ method: "POST",
104
+ path: "webhooks/attach",
105
+ body: Pinnacle::Webhooks::Types::AttachWebhookParams.new(params).to_h,
106
+ request_options: request_options
107
+ )
108
+ begin
109
+ response = @client.send(request)
110
+ rescue Net::HTTPRequestTimeout
111
+ raise Pinnacle::Errors::TimeoutError
112
+ end
113
+ code = response.code.to_i
114
+ if code.between?(200, 299)
115
+ Pinnacle::Types::AttachWebhookResult.load(response.body)
116
+ else
117
+ error_class = Pinnacle::Errors::ResponseError.subclass_for_code(code)
118
+ raise error_class.new(response.body, code: code)
119
+ end
120
+ end
121
+
122
+ # Detach a webhook from one or more senders (phone numbers or RCS agent IDs) to stop receiving event
123
+ # notifications. <br>
124
+ #
125
+ # The webhook itself is not deleted and remains available for use with other senders. Works regardless of webhook
126
+ # status. Supports bulk operations with up to 50 senders per request.
127
+ #
128
+ # @param request_options [Hash]
129
+ # @param params [Pinnacle::Webhooks::Types::DetachWebhookParams]
130
+ # @option request_options [String] :base_url
131
+ # @option request_options [Hash{String => Object}] :additional_headers
132
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
133
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
134
+ # @option request_options [Integer] :timeout_in_seconds
135
+ #
136
+ # @return [Pinnacle::Types::DetachWebhookResult]
137
+ def detach(request_options: {}, **params)
138
+ params = Pinnacle::Internal::Types::Utils.normalize_keys(params)
139
+ request = Pinnacle::Internal::JSON::Request.new(
140
+ base_url: request_options[:base_url],
141
+ method: "POST",
142
+ path: "webhooks/detach",
143
+ body: Pinnacle::Webhooks::Types::DetachWebhookParams.new(params).to_h,
144
+ request_options: request_options
145
+ )
146
+ begin
147
+ response = @client.send(request)
148
+ rescue Net::HTTPRequestTimeout
149
+ raise Pinnacle::Errors::TimeoutError
150
+ end
151
+ code = response.code.to_i
152
+ if code.between?(200, 299)
153
+ Pinnacle::Types::DetachWebhookResult.load(response.body)
154
+ else
155
+ error_class = Pinnacle::Errors::ResponseError.subclass_for_code(code)
156
+ raise error_class.new(response.body, code: code)
157
+ end
158
+ end
46
159
  end
47
160
  end
48
161
  end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Webhooks
5
+ module Types
6
+ class AttachWebhookParams < Internal::Types::Model
7
+ field :senders, -> { Internal::Types::Array[String] }, optional: false, nullable: false
8
+ field :webhook_id, -> { String }, optional: true, nullable: false, api_name: "webhookId"
9
+ field :name, -> { String }, optional: true, nullable: false
10
+ field :url, -> { String }, optional: true, nullable: false
11
+ field :event, -> { Pinnacle::Types::WebhookEventEnum }, optional: true, nullable: false
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Webhooks
5
+ module Types
6
+ class DetachWebhookParams < Internal::Types::Model
7
+ field :webhook_id, -> { String }, optional: false, nullable: false, api_name: "webhookId"
8
+ field :senders, -> { Internal::Types::Array[String] }, optional: false, nullable: false
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Webhooks
5
+ module Types
6
+ class ListWebhooksParams < Internal::Types::Model
7
+ field :page_index, -> { Integer }, optional: true, nullable: false, api_name: "pageIndex"
8
+ field :page_size, -> { Integer }, optional: true, nullable: false, api_name: "pageSize"
9
+ field :status, -> { Pinnacle::Webhooks::Types::ListWebhooksRequestStatus }, optional: true, nullable: false
10
+ field :endpoint, -> { String }, optional: true, nullable: false
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Webhooks
5
+ module Types
6
+ module ListWebhooksRequestStatus
7
+ extend Pinnacle::Internal::Types::Enum
8
+
9
+ DISABLED = "DISABLED"
10
+ ENABLED = "ENABLED"
11
+ DELETED = "DELETED"
12
+ end
13
+ end
14
+ end
15
+ end