rcs 2.0.0.pre.rc.5 → 2.0.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 (123) hide show
  1. checksums.yaml +4 -4
  2. data/lib/rcs/brands/client.rb +36 -24
  3. data/lib/rcs/campaigns/dlc/client.rb +36 -26
  4. data/lib/rcs/campaigns/rcs/client.rb +26 -22
  5. data/lib/rcs/campaigns/rcs/types/rcs_autofill_response.rb +6 -6
  6. data/lib/rcs/campaigns/toll_free/client.rb +32 -26
  7. data/lib/rcs/campaigns/toll_free/types/toll_free_autofill_response.rb +6 -6
  8. data/lib/rcs/contacts/client.rb +10 -8
  9. data/lib/rcs/conversations/client.rb +144 -16
  10. data/lib/rcs/conversations/types/conversations_list_messages_request_direction.rb +12 -0
  11. data/lib/rcs/conversations/types/conversations_list_messages_request_sort_order.rb +12 -0
  12. data/lib/rcs/conversations/types/conversations_list_messages_request_status.rb +17 -0
  13. data/lib/rcs/conversations/types/conversations_list_messages_request_type.rb +13 -0
  14. data/lib/rcs/messages/client.rb +12 -29
  15. data/lib/rcs/messages/rcs/client.rb +125 -1
  16. data/lib/rcs/messages/rcs/types/send_typing_indicator_schema_options.rb +66 -0
  17. data/lib/rcs/phone_numbers/campaign/client.rb +20 -6
  18. data/lib/rcs/phone_numbers/client.rb +0 -14
  19. data/lib/rcs/phone_numbers/webhook/client.rb +12 -10
  20. data/lib/rcs/rcs/client.rb +32 -18
  21. data/lib/rcs/status/get/client.rb +32 -16
  22. data/lib/rcs/tools/contact_card/client.rb +18 -8
  23. data/lib/rcs/tools/file/client.rb +92 -2
  24. data/lib/rcs/tools/file/types/upload_file_options.rb +21 -3
  25. data/lib/rcs/tools/url/client.rb +4 -2
  26. data/lib/rcs/types/attach_webhook_by_id_params.rb +5 -5
  27. data/lib/rcs/types/attach_webhook_response_webhook.rb +5 -3
  28. data/lib/rcs/types/autofill_campaign_params.rb +15 -3
  29. data/lib/rcs/types/autofill_dlc_campaign_response.rb +10 -6
  30. data/lib/rcs/types/autofill_dlc_response_keywords.rb +8 -10
  31. data/lib/rcs/types/autofill_dlc_response_keywords_help.rb +3 -3
  32. data/lib/rcs/types/autofill_dlc_response_keywords_opt_in.rb +6 -4
  33. data/lib/rcs/types/autofill_dlc_response_keywords_opt_out.rb +3 -3
  34. data/lib/rcs/types/autofill_dlc_response_options.rb +12 -12
  35. data/lib/rcs/types/brand_status.rb +5 -3
  36. data/lib/rcs/types/{inbound_button.rb → button_clicked.rb} +7 -7
  37. data/lib/rcs/types/button_clicked_data.rb +80 -0
  38. data/lib/rcs/types/button_clicked_data_button.rb +118 -0
  39. data/lib/rcs/types/{click_action_data.rb → button_clicked_data_button_raw.rb} +10 -8
  40. data/lib/rcs/types/button_clicked_data_button_type.rb +15 -0
  41. data/lib/rcs/types/campaign_query.rb +10 -2
  42. data/lib/rcs/types/contact.rb +5 -3
  43. data/lib/rcs/types/contact_id.rb +5 -3
  44. data/lib/rcs/types/conversation.rb +16 -8
  45. data/lib/rcs/types/conversation_by_id_params.rb +7 -3
  46. data/lib/rcs/types/conversation_contact.rb +5 -3
  47. data/lib/rcs/types/conversation_list.rb +50 -28
  48. data/lib/rcs/types/create_url_options.rb +4 -2
  49. data/lib/rcs/types/detached_webhook_info.rb +5 -3
  50. data/lib/rcs/types/dlc_campaign_status.rb +5 -3
  51. data/lib/rcs/types/dlc_campaign_with_extended_brand_and_status.rb +21 -19
  52. data/lib/rcs/types/dlc_with_extended_brand_and_status_keywords_help.rb +3 -3
  53. data/lib/rcs/types/dlc_with_extended_brand_and_status_keywords_opt_in.rb +6 -4
  54. data/lib/rcs/types/dlc_with_extended_brand_and_status_keywords_opt_out.rb +6 -4
  55. data/lib/rcs/types/extended_brand.rb +25 -13
  56. data/lib/rcs/types/extended_brand_with_vetting.rb +25 -13
  57. data/lib/rcs/types/extended_rcs_campaign.rb +25 -14
  58. data/lib/rcs/types/link_click_event.rb +1 -17
  59. data/lib/rcs/types/message.rb +5 -3
  60. data/lib/rcs/types/message_content.rb +4 -4
  61. data/lib/rcs/types/message_event.rb +143 -0
  62. data/lib/rcs/types/message_event_content.rb +127 -0
  63. data/lib/rcs/types/message_event_conversation.rb +82 -0
  64. data/lib/rcs/types/message_event_direction.rb +11 -0
  65. data/lib/rcs/types/message_event_mms_content.rb +94 -0
  66. data/lib/rcs/types/message_event_rcs_button_data.rb +104 -0
  67. data/lib/rcs/types/message_event_rcs_cards_content.rb +99 -0
  68. data/lib/rcs/types/message_event_rcs_cards_content_cards_item.rb +94 -0
  69. data/lib/rcs/types/message_event_rcs_location_data.rb +91 -0
  70. data/lib/rcs/types/message_event_rcs_media_content.rb +94 -0
  71. data/lib/rcs/types/message_event_rcs_text_content.rb +92 -0
  72. data/lib/rcs/types/message_event_sms_content.rb +81 -0
  73. data/lib/rcs/types/{retrieved_conversations.rb → message_list.rb} +26 -25
  74. data/lib/rcs/types/message_with_reaction.rb +197 -0
  75. data/lib/rcs/types/message_with_reaction_direction.rb +11 -0
  76. data/lib/rcs/types/{error_response.rb → not_found_error_body.rb} +7 -7
  77. data/lib/rcs/types/options.rb +111 -0
  78. data/lib/rcs/types/phone_number_campaign_attach_phone_numbers_item_campaign.rb +7 -3
  79. data/lib/rcs/types/phone_number_campaign_detach_phone_numbers_item_campaign.rb +7 -3
  80. data/lib/rcs/types/pinnacle_file_upload_metadata.rb +18 -2
  81. data/lib/rcs/types/profile_status_enum.rb +4 -4
  82. data/lib/rcs/types/rcs_base_options.rb +12 -1
  83. data/lib/rcs/types/rcs_button_call.rb +11 -2
  84. data/lib/rcs/types/rcs_button_open_url.rb +38 -2
  85. data/lib/rcs/types/rcs_button_open_url_webview_mode.rb +19 -0
  86. data/lib/rcs/types/rcs_button_request_user_location.rb +15 -3
  87. data/lib/rcs/types/rcs_button_schedule_event.rb +9 -1
  88. data/lib/rcs/types/rcs_button_send_location.rb +22 -2
  89. data/lib/rcs/types/rcs_button_trigger.rb +8 -6
  90. data/lib/rcs/types/rcs_campaign.rb +3 -3
  91. data/lib/rcs/types/rcs_campaign_schema_extra_agent.rb +8 -8
  92. data/lib/rcs/types/rcs_campaign_status.rb +5 -3
  93. data/lib/rcs/types/reaction_result.rb +10 -6
  94. data/lib/rcs/types/refreshed_file.rb +67 -0
  95. data/lib/rcs/types/rich_cards_message.rb +10 -10
  96. data/lib/rcs/types/{rcs.rb → rich_message.rb} +3 -3
  97. data/lib/rcs/types/scheduled_messaage.rb +5 -3
  98. data/lib/rcs/types/send_rcs_card_options.rb +132 -0
  99. data/lib/rcs/types/send_rcs_card_options_standalone_card.rb +78 -0
  100. data/lib/rcs/types/send_rcs_card_options_standalone_card_image_alignment.rb +12 -0
  101. data/lib/rcs/types/send_rcs_card_options_standalone_card_orientation.rb +11 -0
  102. data/lib/rcs/types/send_typing_indicator_response.rb +100 -0
  103. data/lib/rcs/types/sent_mms_details.rb +4 -2
  104. data/lib/rcs/types/sent_rcs_details.rb +12 -13
  105. data/lib/rcs/types/sent_sms_details.rb +5 -3
  106. data/lib/rcs/types/toll_free_campaign.rb +3 -3
  107. data/lib/rcs/types/toll_free_campaign_status.rb +5 -3
  108. data/lib/rcs/types/toll_free_campaign_with_extended_brand_and_status.rb +3 -5
  109. data/lib/rcs/types/updated_contact_id.rb +5 -3
  110. data/lib/rcs/types/user_event.rb +83 -0
  111. data/lib/rcs/types/user_event_conversation.rb +78 -0
  112. data/lib/rcs/types/v_card_data.rb +5 -3
  113. data/lib/rcs/types/validate_campaign_params.rb +15 -3
  114. data/lib/rcs/types/vcard.rb +5 -3
  115. data/lib/rcs/types/vcard_content.rb +5 -3
  116. data/lib/rcs/types/vcard_resource.rb +5 -3
  117. data/lib/rcs/types/webhook_event_enum.rb +1 -0
  118. data/lib/rcs/types/webhooks.rb +5 -3
  119. data/lib/requests.rb +2 -2
  120. data/lib/types_export.rb +37 -7
  121. metadata +41 -11
  122. data/lib/rcs/types/click_action.rb +0 -73
  123. data/lib/rcs/types/click_action_data_metadata.rb +0 -69
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative "rcs_base_options"
3
+ require_relative "send_rcs_card_options"
4
4
  require_relative "rcs_cards_cards_item"
5
5
  require_relative "rich_button"
6
6
  require "ostruct"
@@ -9,10 +9,10 @@ require "json"
9
9
  module Pinnacle
10
10
  module Types
11
11
  class RichCardsMessage
12
+ # @return [Pinnacle::Types::SendRcsCardOptions]
13
+ attr_reader :options
12
14
  # @return [String] Your RCS agent ID which must be prefixed with 'agent_'.
13
15
  attr_reader :from
14
- # @return [Pinnacle::Types::RcsBaseOptions] Configure how your RCS message is sent and tracked.
15
- attr_reader :options
16
16
  # @return [String] Recipient's phone number in E.164 format.
17
17
  attr_reader :to
18
18
  # @return [Array<Pinnacle::Types::RcsCardsCardsItem>] Collection of cards attached to the message.
@@ -27,23 +27,23 @@ module Pinnacle
27
27
 
28
28
  OMIT = Object.new
29
29
 
30
+ # @param options [Pinnacle::Types::SendRcsCardOptions]
30
31
  # @param from [String] Your RCS agent ID which must be prefixed with 'agent_'.
31
- # @param options [Pinnacle::Types::RcsBaseOptions] Configure how your RCS message is sent and tracked.
32
32
  # @param to [String] Recipient's phone number in E.164 format.
33
33
  # @param cards [Array<Pinnacle::Types::RcsCardsCardsItem>] Collection of cards attached to the message.
34
34
  # @param quick_replies [Array<Pinnacle::Types::RichButton>] List of interactive quick reply buttons in the message.
35
35
  # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
36
36
  # @return [Pinnacle::Types::RichCardsMessage]
37
37
  def initialize(from:, to:, cards:, quick_replies:, options: OMIT, additional_properties: nil)
38
- @from = from
39
38
  @options = options if options != OMIT
39
+ @from = from
40
40
  @to = to
41
41
  @cards = cards
42
42
  @quick_replies = quick_replies
43
43
  @additional_properties = additional_properties
44
44
  @_field_set = {
45
- "from": from,
46
45
  "options": options,
46
+ "from": from,
47
47
  "to": to,
48
48
  "cards": cards,
49
49
  "quickReplies": quick_replies
@@ -59,13 +59,13 @@ module Pinnacle
59
59
  def self.from_json(json_object:)
60
60
  struct = JSON.parse(json_object, object_class: OpenStruct)
61
61
  parsed_json = JSON.parse(json_object)
62
- from = parsed_json["from"]
63
62
  if parsed_json["options"].nil?
64
63
  options = nil
65
64
  else
66
65
  options = parsed_json["options"].to_json
67
- options = Pinnacle::Types::RcsBaseOptions.from_json(json_object: options)
66
+ options = Pinnacle::Types::SendRcsCardOptions.from_json(json_object: options)
68
67
  end
68
+ from = parsed_json["from"]
69
69
  to = parsed_json["to"]
70
70
  cards = parsed_json["cards"]&.map do |item|
71
71
  item = item.to_json
@@ -76,8 +76,8 @@ module Pinnacle
76
76
  Pinnacle::Types::RichButton.from_json(json_object: item)
77
77
  end
78
78
  new(
79
- from: from,
80
79
  options: options,
80
+ from: from,
81
81
  to: to,
82
82
  cards: cards,
83
83
  quick_replies: quick_replies,
@@ -99,8 +99,8 @@ module Pinnacle
99
99
  # @param obj [Object]
100
100
  # @return [Void]
101
101
  def self.validate_raw(obj:)
102
+ obj.options.nil? || Pinnacle::Types::SendRcsCardOptions.validate_raw(obj: obj.options)
102
103
  obj.from.is_a?(String) != false || raise("Passed value for field obj.from is not the expected type, validation failed.")
103
- obj.options.nil? || Pinnacle::Types::RcsBaseOptions.validate_raw(obj: obj.options)
104
104
  obj.to.is_a?(String) != false || raise("Passed value for field obj.to is not the expected type, validation failed.")
105
105
  obj.cards.is_a?(Array) != false || raise("Passed value for field obj.cards is not the expected type, validation failed.")
106
106
  obj.quick_replies.is_a?(Array) != false || raise("Passed value for field obj.quick_replies is not the expected type, validation failed.")
@@ -7,11 +7,11 @@ require_relative "rich_cards_message"
7
7
 
8
8
  module Pinnacle
9
9
  module Types
10
- class Rcs
11
- # Deserialize a JSON object to an instance of Rcs
10
+ class RichMessage
11
+ # Deserialize a JSON object to an instance of RichMessage
12
12
  #
13
13
  # @param json_object [String]
14
- # @return [Pinnacle::Types::Rcs]
14
+ # @return [Pinnacle::Types::RichMessage]
15
15
  def self.from_json(json_object:)
16
16
  struct = JSON.parse(json_object, object_class: OpenStruct)
17
17
  begin
@@ -7,7 +7,8 @@ require "json"
7
7
  module Pinnacle
8
8
  module Types
9
9
  class ScheduledMessaage
10
- # @return [Integer] Unique identifier for the scheduled send.
10
+ # @return [String] Unique identifier for the scheduled send. This identifier is a string that
11
+ # always begins with the prefix `msg_sched_`, for example: `msg_sched_1234567890`.
11
12
  attr_reader :schedule_id
12
13
  # @return [Pinnacle::Types::ScheduledSendResponseConfig] Configuration for the scheduled message.
13
14
  attr_reader :config
@@ -19,7 +20,8 @@ module Pinnacle
19
20
 
20
21
  OMIT = Object.new
21
22
 
22
- # @param schedule_id [Integer] Unique identifier for the scheduled send.
23
+ # @param schedule_id [String] Unique identifier for the scheduled send. This identifier is a string that
24
+ # always begins with the prefix `msg_sched_`, for example: `msg_sched_1234567890`.
23
25
  # @param config [Pinnacle::Types::ScheduledSendResponseConfig] Configuration for the scheduled message.
24
26
  # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
25
27
  # @return [Pinnacle::Types::ScheduledMessaage]
@@ -65,7 +67,7 @@ module Pinnacle
65
67
  # @param obj [Object]
66
68
  # @return [Void]
67
69
  def self.validate_raw(obj:)
68
- obj.schedule_id.is_a?(Integer) != false || raise("Passed value for field obj.schedule_id is not the expected type, validation failed.")
70
+ obj.schedule_id.is_a?(String) != false || raise("Passed value for field obj.schedule_id is not the expected type, validation failed.")
69
71
  Pinnacle::Types::ScheduledSendResponseConfig.validate_raw(obj: obj.config)
70
72
  end
71
73
  end
@@ -0,0 +1,132 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "send_rcs_card_options_standalone_card"
4
+ require_relative "message_schedule"
5
+ require_relative "tracking"
6
+ require "ostruct"
7
+ require "json"
8
+
9
+ module Pinnacle
10
+ module Types
11
+ class SendRcsCardOptions
12
+ # @return [Pinnacle::Types::SendRcsCardOptionsStandaloneCard] Configure standalone card layout options for enhanced visual presentation.
13
+ # > **⚠️ Important Restriction**
14
+ # >
15
+ # > This option is **only valid for single card messages**. Using it with multiple
16
+ # cards will cause the request to fail with a validation error.
17
+ attr_reader :standalone_card
18
+ # @return [Pinnacle::Types::MessageSchedule]
19
+ attr_reader :schedule
20
+ # @return [Boolean] Send via the test agent to whitelisted test devices. Useful for development and
21
+ # debugging.
22
+ attr_reader :test_mode
23
+ # @return [Pinnacle::Types::Tracking]
24
+ attr_reader :tracking
25
+ # @return [Boolean] Media files and card media will be transcoded to a supported RCS format. This
26
+ # adds a small delay to sending the message. Ignored for rich text messages.
27
+ attr_reader :transcode
28
+ # @return [Boolean] Validate your message for any unsupported files. <br>
29
+ # If failed, errors will be thrown and the message will not send.
30
+ attr_reader :validate
31
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
32
+ attr_reader :additional_properties
33
+ # @return [Object]
34
+ attr_reader :_field_set
35
+ protected :_field_set
36
+
37
+ OMIT = Object.new
38
+
39
+ # @param standalone_card [Pinnacle::Types::SendRcsCardOptionsStandaloneCard] Configure standalone card layout options for enhanced visual presentation.
40
+ # > **⚠️ Important Restriction**
41
+ # >
42
+ # > This option is **only valid for single card messages**. Using it with multiple
43
+ # cards will cause the request to fail with a validation error.
44
+ # @param schedule [Pinnacle::Types::MessageSchedule]
45
+ # @param test_mode [Boolean] Send via the test agent to whitelisted test devices. Useful for development and
46
+ # debugging.
47
+ # @param tracking [Pinnacle::Types::Tracking]
48
+ # @param transcode [Boolean] Media files and card media will be transcoded to a supported RCS format. This
49
+ # adds a small delay to sending the message. Ignored for rich text messages.
50
+ # @param validate [Boolean] Validate your message for any unsupported files. <br>
51
+ # If failed, errors will be thrown and the message will not send.
52
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
53
+ # @return [Pinnacle::Types::SendRcsCardOptions]
54
+ def initialize(standalone_card: OMIT, schedule: OMIT, test_mode: OMIT, tracking: OMIT, transcode: OMIT,
55
+ validate: OMIT, additional_properties: nil)
56
+ @standalone_card = standalone_card if standalone_card != OMIT
57
+ @schedule = schedule if schedule != OMIT
58
+ @test_mode = test_mode if test_mode != OMIT
59
+ @tracking = tracking if tracking != OMIT
60
+ @transcode = transcode if transcode != OMIT
61
+ @validate = validate if validate != OMIT
62
+ @additional_properties = additional_properties
63
+ @_field_set = {
64
+ "standalone_card": standalone_card,
65
+ "schedule": schedule,
66
+ "test_mode": test_mode,
67
+ "tracking": tracking,
68
+ "transcode": transcode,
69
+ "validate": validate
70
+ }.reject do |_k, v|
71
+ v == OMIT
72
+ end
73
+ end
74
+
75
+ # Deserialize a JSON object to an instance of SendRcsCardOptions
76
+ #
77
+ # @param json_object [String]
78
+ # @return [Pinnacle::Types::SendRcsCardOptions]
79
+ def self.from_json(json_object:)
80
+ struct = JSON.parse(json_object, object_class: OpenStruct)
81
+ parsed_json = JSON.parse(json_object)
82
+ if parsed_json["standalone_card"].nil?
83
+ standalone_card = nil
84
+ else
85
+ standalone_card = parsed_json["standalone_card"].to_json
86
+ standalone_card = Pinnacle::Types::SendRcsCardOptionsStandaloneCard.from_json(json_object: standalone_card)
87
+ end
88
+ if parsed_json["schedule"].nil?
89
+ schedule = nil
90
+ else
91
+ schedule = parsed_json["schedule"].to_json
92
+ schedule = Pinnacle::Types::MessageSchedule.from_json(json_object: schedule)
93
+ end
94
+ test_mode = parsed_json["test_mode"]
95
+ tracking = parsed_json["tracking"]
96
+ transcode = parsed_json["transcode"]
97
+ validate = parsed_json["validate"]
98
+ new(
99
+ standalone_card: standalone_card,
100
+ schedule: schedule,
101
+ test_mode: test_mode,
102
+ tracking: tracking,
103
+ transcode: transcode,
104
+ validate: validate,
105
+ additional_properties: struct
106
+ )
107
+ end
108
+
109
+ # Serialize an instance of SendRcsCardOptions to a JSON object
110
+ #
111
+ # @return [String]
112
+ def to_json(*_args)
113
+ @_field_set&.to_json
114
+ end
115
+
116
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
117
+ # hash and check each fields type against the current object's property
118
+ # definitions.
119
+ #
120
+ # @param obj [Object]
121
+ # @return [Void]
122
+ def self.validate_raw(obj:)
123
+ obj.standalone_card.nil? || Pinnacle::Types::SendRcsCardOptionsStandaloneCard.validate_raw(obj: obj.standalone_card)
124
+ obj.schedule.nil? || Pinnacle::Types::MessageSchedule.validate_raw(obj: obj.schedule)
125
+ obj.test_mode&.is_a?(Boolean) != false || raise("Passed value for field obj.test_mode is not the expected type, validation failed.")
126
+ obj.tracking&.is_a?(Pinnacle::Types::Tracking) != false || raise("Passed value for field obj.tracking is not the expected type, validation failed.")
127
+ obj.transcode&.is_a?(Boolean) != false || raise("Passed value for field obj.transcode is not the expected type, validation failed.")
128
+ obj.validate&.is_a?(Boolean) != false || raise("Passed value for field obj.validate is not the expected type, validation failed.")
129
+ end
130
+ end
131
+ end
132
+ end
@@ -0,0 +1,78 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "send_rcs_card_options_standalone_card_orientation"
4
+ require_relative "send_rcs_card_options_standalone_card_image_alignment"
5
+ require "ostruct"
6
+ require "json"
7
+
8
+ module Pinnacle
9
+ module Types
10
+ # Configure standalone card layout options for enhanced visual presentation.
11
+ # > **⚠️ Important Restriction**
12
+ # >
13
+ # > This option is **only valid for single card messages**. Using it with multiple
14
+ # cards will cause the request to fail with a validation error.
15
+ class SendRcsCardOptionsStandaloneCard
16
+ # @return [Pinnacle::Types::SendRcsCardOptionsStandaloneCardOrientation] The orientation of the standalone card.
17
+ attr_reader :orientation
18
+ # @return [Pinnacle::Types::SendRcsCardOptionsStandaloneCardImageAlignment] The alignment of the image in the standalone card. This field is ignored if
19
+ # orientation is VERTICAL.
20
+ attr_reader :image_alignment
21
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
22
+ attr_reader :additional_properties
23
+ # @return [Object]
24
+ attr_reader :_field_set
25
+ protected :_field_set
26
+
27
+ OMIT = Object.new
28
+
29
+ # @param orientation [Pinnacle::Types::SendRcsCardOptionsStandaloneCardOrientation] The orientation of the standalone card.
30
+ # @param image_alignment [Pinnacle::Types::SendRcsCardOptionsStandaloneCardImageAlignment] The alignment of the image in the standalone card. This field is ignored if
31
+ # orientation is VERTICAL.
32
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
33
+ # @return [Pinnacle::Types::SendRcsCardOptionsStandaloneCard]
34
+ def initialize(orientation: OMIT, image_alignment: OMIT, additional_properties: nil)
35
+ @orientation = orientation if orientation != OMIT
36
+ @image_alignment = image_alignment if image_alignment != OMIT
37
+ @additional_properties = additional_properties
38
+ @_field_set = { "orientation": orientation, "image_alignment": image_alignment }.reject do |_k, v|
39
+ v == OMIT
40
+ end
41
+ end
42
+
43
+ # Deserialize a JSON object to an instance of SendRcsCardOptionsStandaloneCard
44
+ #
45
+ # @param json_object [String]
46
+ # @return [Pinnacle::Types::SendRcsCardOptionsStandaloneCard]
47
+ def self.from_json(json_object:)
48
+ struct = JSON.parse(json_object, object_class: OpenStruct)
49
+ parsed_json = JSON.parse(json_object)
50
+ orientation = parsed_json["orientation"]
51
+ image_alignment = parsed_json["image_alignment"]
52
+ new(
53
+ orientation: orientation,
54
+ image_alignment: image_alignment,
55
+ additional_properties: struct
56
+ )
57
+ end
58
+
59
+ # Serialize an instance of SendRcsCardOptionsStandaloneCard to a JSON object
60
+ #
61
+ # @return [String]
62
+ def to_json(*_args)
63
+ @_field_set&.to_json
64
+ end
65
+
66
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
67
+ # hash and check each fields type against the current object's property
68
+ # definitions.
69
+ #
70
+ # @param obj [Object]
71
+ # @return [Void]
72
+ def self.validate_raw(obj:)
73
+ obj.orientation&.is_a?(Pinnacle::Types::SendRcsCardOptionsStandaloneCardOrientation) != false || raise("Passed value for field obj.orientation is not the expected type, validation failed.")
74
+ obj.image_alignment&.is_a?(Pinnacle::Types::SendRcsCardOptionsStandaloneCardImageAlignment) != false || raise("Passed value for field obj.image_alignment is not the expected type, validation failed.")
75
+ end
76
+ end
77
+ end
78
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Types
5
+ # The alignment of the image in the standalone card. This field is ignored if
6
+ # orientation is VERTICAL.
7
+ class SendRcsCardOptionsStandaloneCardImageAlignment
8
+ LEFT = "LEFT"
9
+ RIGHT = "RIGHT"
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Types
5
+ # The orientation of the standalone card.
6
+ class SendRcsCardOptionsStandaloneCardOrientation
7
+ HORIZONTAL = "HORIZONTAL"
8
+ VERTICAL = "VERTICAL"
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,100 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "date"
4
+ require "ostruct"
5
+ require "json"
6
+
7
+ module Pinnacle
8
+ module Types
9
+ # Response schema confirming the typing indicator was sent.
10
+ class SendTypingIndicatorResponse
11
+ # @return [Boolean] Indicates whether the typing indicator was successfully sent.
12
+ attr_reader :success
13
+ # @return [String] The RCS agent that sent the typing indicator.
14
+ attr_reader :agent_id
15
+ # @return [String] The recipient's phone number that received the typing indicator.
16
+ attr_reader :recipient
17
+ # @return [DateTime] Timestamp when the typing indicator was started (ISO 8601 format).
18
+ attr_reader :started_at
19
+ # @return [DateTime] Timestamp when the typing indicator will automatically expire (ISO 8601 format).
20
+ # <br>
21
+ # This is typically one minute after `startedAt` unless a message is sent first.
22
+ attr_reader :ended_at
23
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
24
+ attr_reader :additional_properties
25
+ # @return [Object]
26
+ attr_reader :_field_set
27
+ protected :_field_set
28
+
29
+ OMIT = Object.new
30
+
31
+ # @param success [Boolean] Indicates whether the typing indicator was successfully sent.
32
+ # @param agent_id [String] The RCS agent that sent the typing indicator.
33
+ # @param recipient [String] The recipient's phone number that received the typing indicator.
34
+ # @param started_at [DateTime] Timestamp when the typing indicator was started (ISO 8601 format).
35
+ # @param ended_at [DateTime] Timestamp when the typing indicator will automatically expire (ISO 8601 format).
36
+ # <br>
37
+ # This is typically one minute after `startedAt` unless a message is sent first.
38
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
39
+ # @return [Pinnacle::Types::SendTypingIndicatorResponse]
40
+ def initialize(success:, agent_id:, recipient:, started_at:, ended_at:, additional_properties: nil)
41
+ @success = success
42
+ @agent_id = agent_id
43
+ @recipient = recipient
44
+ @started_at = started_at
45
+ @ended_at = ended_at
46
+ @additional_properties = additional_properties
47
+ @_field_set = {
48
+ "success": success,
49
+ "agentId": agent_id,
50
+ "recipient": recipient,
51
+ "startedAt": started_at,
52
+ "endedAt": ended_at
53
+ }
54
+ end
55
+
56
+ # Deserialize a JSON object to an instance of SendTypingIndicatorResponse
57
+ #
58
+ # @param json_object [String]
59
+ # @return [Pinnacle::Types::SendTypingIndicatorResponse]
60
+ def self.from_json(json_object:)
61
+ struct = JSON.parse(json_object, object_class: OpenStruct)
62
+ parsed_json = JSON.parse(json_object)
63
+ success = parsed_json["success"]
64
+ agent_id = parsed_json["agentId"]
65
+ recipient = parsed_json["recipient"]
66
+ started_at = (DateTime.parse(parsed_json["startedAt"]) unless parsed_json["startedAt"].nil?)
67
+ ended_at = (DateTime.parse(parsed_json["endedAt"]) unless parsed_json["endedAt"].nil?)
68
+ new(
69
+ success: success,
70
+ agent_id: agent_id,
71
+ recipient: recipient,
72
+ started_at: started_at,
73
+ ended_at: ended_at,
74
+ additional_properties: struct
75
+ )
76
+ end
77
+
78
+ # Serialize an instance of SendTypingIndicatorResponse to a JSON object
79
+ #
80
+ # @return [String]
81
+ def to_json(*_args)
82
+ @_field_set&.to_json
83
+ end
84
+
85
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
86
+ # hash and check each fields type against the current object's property
87
+ # definitions.
88
+ #
89
+ # @param obj [Object]
90
+ # @return [Void]
91
+ def self.validate_raw(obj:)
92
+ obj.success.is_a?(Boolean) != false || raise("Passed value for field obj.success is not the expected type, validation failed.")
93
+ obj.agent_id.is_a?(String) != false || raise("Passed value for field obj.agent_id is not the expected type, validation failed.")
94
+ obj.recipient.is_a?(String) != false || raise("Passed value for field obj.recipient is not the expected type, validation failed.")
95
+ obj.started_at.is_a?(DateTime) != false || raise("Passed value for field obj.started_at is not the expected type, validation failed.")
96
+ obj.ended_at.is_a?(DateTime) != false || raise("Passed value for field obj.ended_at is not the expected type, validation failed.")
97
+ end
98
+ end
99
+ end
100
+ end
@@ -6,7 +6,8 @@ require "json"
6
6
  module Pinnacle
7
7
  module Types
8
8
  class SentMmsDetails
9
- # @return [Array<Integer>] Array of unique identifiers for the sent MMS messages.
9
+ # @return [Array<String>] Array of unique identifiers for the sent MMS messages. This identifiers are
10
+ # strings that always begin with the prefix `msg_`, for example: `msg_1234567890`.
10
11
  attr_reader :message_ids
11
12
  # @return [Float] Total number of segments used across the message.
12
13
  attr_reader :segments
@@ -26,7 +27,8 @@ module Pinnacle
26
27
 
27
28
  OMIT = Object.new
28
29
 
29
- # @param message_ids [Array<Integer>] Array of unique identifiers for the sent MMS messages.
30
+ # @param message_ids [Array<String>] Array of unique identifiers for the sent MMS messages. This identifiers are
31
+ # strings that always begin with the prefix `msg_`, for example: `msg_1234567890`.
30
32
  # @param segments [Float] Total number of segments used across the message.
31
33
  # @param total_cost [Float] Total cost of sending the message.
32
34
  # @param sender [String] Sender's phone number in E.164 format.
@@ -6,8 +6,9 @@ require "json"
6
6
  module Pinnacle
7
7
  module Types
8
8
  class SentRcsDetails
9
- # @return [Float] Unique identifier for the sent MMS messages.
10
- attr_reader :message_ids
9
+ # @return [String] Unique identifier for the sent RCS message. This identifier is a string that
10
+ # always begins with the prefix `msg_`, for example: `msg_1234567890`.
11
+ attr_reader :message_id
11
12
  # @return [Integer] Total number of segments used across the message.
12
13
  attr_reader :segments
13
14
  # @return [Float] Total cost of sending the message.
@@ -26,7 +27,8 @@ module Pinnacle
26
27
 
27
28
  OMIT = Object.new
28
29
 
29
- # @param message_ids [Float] Unique identifier for the sent MMS messages.
30
+ # @param message_id [String] Unique identifier for the sent RCS message. This identifier is a string that
31
+ # always begins with the prefix `msg_`, for example: `msg_1234567890`.
30
32
  # @param segments [Integer] Total number of segments used across the message.
31
33
  # @param total_cost [Float] Total cost of sending the message.
32
34
  # @param sender [String] Sender's phone number in E.164 format.
@@ -34,9 +36,8 @@ module Pinnacle
34
36
  # @param status [String] Current status of the message.
35
37
  # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
36
38
  # @return [Pinnacle::Types::SentRcsDetails]
37
- def initialize(segments:, total_cost:, sender:, recipient:, status:, message_ids: OMIT,
38
- additional_properties: nil)
39
- @message_ids = message_ids if message_ids != OMIT
39
+ def initialize(message_id:, segments:, total_cost:, sender:, recipient:, status:, additional_properties: nil)
40
+ @message_id = message_id
40
41
  @segments = segments
41
42
  @total_cost = total_cost
42
43
  @sender = sender
@@ -44,15 +45,13 @@ module Pinnacle
44
45
  @status = status
45
46
  @additional_properties = additional_properties
46
47
  @_field_set = {
47
- "messageIds": message_ids,
48
+ "messageId": message_id,
48
49
  "segments": segments,
49
50
  "totalCost": total_cost,
50
51
  "sender": sender,
51
52
  "recipient": recipient,
52
53
  "status": status
53
- }.reject do |_k, v|
54
- v == OMIT
55
- end
54
+ }
56
55
  end
57
56
 
58
57
  # Deserialize a JSON object to an instance of SentRcsDetails
@@ -62,14 +61,14 @@ module Pinnacle
62
61
  def self.from_json(json_object:)
63
62
  struct = JSON.parse(json_object, object_class: OpenStruct)
64
63
  parsed_json = JSON.parse(json_object)
65
- message_ids = parsed_json["messageIds"]
64
+ message_id = parsed_json["messageId"]
66
65
  segments = parsed_json["segments"]
67
66
  total_cost = parsed_json["totalCost"]
68
67
  sender = parsed_json["sender"]
69
68
  recipient = parsed_json["recipient"]
70
69
  status = parsed_json["status"]
71
70
  new(
72
- message_ids: message_ids,
71
+ message_id: message_id,
73
72
  segments: segments,
74
73
  total_cost: total_cost,
75
74
  sender: sender,
@@ -93,7 +92,7 @@ module Pinnacle
93
92
  # @param obj [Object]
94
93
  # @return [Void]
95
94
  def self.validate_raw(obj:)
96
- obj.message_ids&.is_a?(Float) != false || raise("Passed value for field obj.message_ids is not the expected type, validation failed.")
95
+ obj.message_id.is_a?(String) != false || raise("Passed value for field obj.message_id is not the expected type, validation failed.")
97
96
  obj.segments.is_a?(Integer) != false || raise("Passed value for field obj.segments is not the expected type, validation failed.")
98
97
  obj.total_cost.is_a?(Float) != false || raise("Passed value for field obj.total_cost is not the expected type, validation failed.")
99
98
  obj.sender.is_a?(String) != false || raise("Passed value for field obj.sender is not the expected type, validation failed.")
@@ -7,7 +7,8 @@ require "json"
7
7
  module Pinnacle
8
8
  module Types
9
9
  class SentSmsDetails
10
- # @return [Integer] Unique identifier for the sent message.
10
+ # @return [String] Unique identifier for the sent message. This identifier is a string that always
11
+ # begins with the prefix `msg_`, for example: `msg_1234567890`.
11
12
  attr_reader :message_id
12
13
  # @return [Pinnacle::Types::SendSmsResponseSegments] Details about how the message was segmented for sending.
13
14
  attr_reader :segments
@@ -27,7 +28,8 @@ module Pinnacle
27
28
 
28
29
  OMIT = Object.new
29
30
 
30
- # @param message_id [Integer] Unique identifier for the sent message.
31
+ # @param message_id [String] Unique identifier for the sent message. This identifier is a string that always
32
+ # begins with the prefix `msg_`, for example: `msg_1234567890`.
31
33
  # @param segments [Pinnacle::Types::SendSmsResponseSegments] Details about how the message was segmented for sending.
32
34
  # @param total_cost [Float] Total cost of sending the message.
33
35
  # @param sender [String] Sender's phone number in E.164 format.
@@ -96,7 +98,7 @@ module Pinnacle
96
98
  # @param obj [Object]
97
99
  # @return [Void]
98
100
  def self.validate_raw(obj:)
99
- obj.message_id.is_a?(Integer) != false || raise("Passed value for field obj.message_id is not the expected type, validation failed.")
101
+ obj.message_id.is_a?(String) != false || raise("Passed value for field obj.message_id is not the expected type, validation failed.")
100
102
  Pinnacle::Types::SendSmsResponseSegments.validate_raw(obj: obj.segments)
101
103
  obj.total_cost.is_a?(Float) != false || raise("Passed value for field obj.total_cost is not the expected type, validation failed.")
102
104
  obj.sender.is_a?(String) != false || raise("Passed value for field obj.sender is not the expected type, validation failed.")
@@ -9,7 +9,7 @@ require "json"
9
9
  module Pinnacle
10
10
  module Types
11
11
  class TollFreeCampaign
12
- # @return [Integer] Unique identifier for the campaign.
12
+ # @return [String] Unique identifier for the campaign. Must begin with the prefix `tf_`.
13
13
  attr_reader :campaign_id
14
14
  # @return [Pinnacle::Types::MessageVolumeEnum]
15
15
  attr_reader :monthly_volume
@@ -29,7 +29,7 @@ module Pinnacle
29
29
 
30
30
  OMIT = Object.new
31
31
 
32
- # @param campaign_id [Integer] Unique identifier for the campaign.
32
+ # @param campaign_id [String] Unique identifier for the campaign. Must begin with the prefix `tf_`.
33
33
  # @param monthly_volume [Pinnacle::Types::MessageVolumeEnum]
34
34
  # @param name [String] Display name of the campaign.
35
35
  # @param opt_in [Pinnacle::Types::UpsertTollFreeCampaignOptIn] Opt-in keyword settings.
@@ -106,7 +106,7 @@ module Pinnacle
106
106
  # @param obj [Object]
107
107
  # @return [Void]
108
108
  def self.validate_raw(obj:)
109
- obj.campaign_id&.is_a?(Integer) != false || raise("Passed value for field obj.campaign_id is not the expected type, validation failed.")
109
+ obj.campaign_id&.is_a?(String) != false || raise("Passed value for field obj.campaign_id is not the expected type, validation failed.")
110
110
  obj.monthly_volume&.is_a?(Pinnacle::Types::MessageVolumeEnum) != false || raise("Passed value for field obj.monthly_volume is not the expected type, validation failed.")
111
111
  obj.name&.is_a?(String) != false || raise("Passed value for field obj.name is not the expected type, validation failed.")
112
112
  obj.opt_in.nil? || Pinnacle::Types::UpsertTollFreeCampaignOptIn.validate_raw(obj: obj.opt_in)
@@ -12,7 +12,8 @@ module Pinnacle
12
12
  # These errors may request additional information or point out erroneous and/or
13
13
  # missing fields.
14
14
  attr_reader :error
15
- # @return [Integer] Id of the toll-free campaign.
15
+ # @return [String] The unique identifier of the toll-free campaign. This identifier is a string
16
+ # that always begins with the prefix `tf_`, for example: `tf_1234567890`.
16
17
  attr_reader :id
17
18
  # @return [Pinnacle::Types::GetTollFreeCampaignStatusResponseUpdates] Status of phone numbers that are being attached to this campaign. <br>
18
19
  # Note that phone numbers can only be attached to `VERIFIED` campaigns via the
@@ -29,7 +30,8 @@ module Pinnacle
29
30
  # @param error [String] Summary of errors related to the verification process. <br>
30
31
  # These errors may request additional information or point out erroneous and/or
31
32
  # missing fields.
32
- # @param id [Integer] Id of the toll-free campaign.
33
+ # @param id [String] The unique identifier of the toll-free campaign. This identifier is a string
34
+ # that always begins with the prefix `tf_`, for example: `tf_1234567890`.
33
35
  # @param updates [Pinnacle::Types::GetTollFreeCampaignStatusResponseUpdates] Status of phone numbers that are being attached to this campaign. <br>
34
36
  # Note that phone numbers can only be attached to `VERIFIED` campaigns via the
35
37
  # [attach campaign endpoint](../phone-numbers/attach-campaign).
@@ -83,7 +85,7 @@ module Pinnacle
83
85
  # @return [Void]
84
86
  def self.validate_raw(obj:)
85
87
  obj.error&.is_a?(String) != false || raise("Passed value for field obj.error is not the expected type, validation failed.")
86
- obj.id.is_a?(Integer) != false || raise("Passed value for field obj.id is not the expected type, validation failed.")
88
+ obj.id.is_a?(String) != false || raise("Passed value for field obj.id is not the expected type, validation failed.")
87
89
  Pinnacle::Types::GetTollFreeCampaignStatusResponseUpdates.validate_raw(obj: obj.updates)
88
90
  end
89
91
  end