pingram 1.0.10 → 1.0.12

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.
@@ -0,0 +1,216 @@
1
+ =begin
2
+ #Pingram
3
+
4
+ #Internal API for notification delivery and management
5
+
6
+ The version of the OpenAPI document: 1.0.0
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.19.0
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module Pingram
17
+ class CreateOrganizationResponse < ApiModelBase
18
+ attr_accessor :success
19
+
20
+ attr_accessor :account_id
21
+
22
+ attr_accessor :organization_id
23
+
24
+ # Attribute mapping from ruby-style variable name to JSON key.
25
+ def self.attribute_map
26
+ {
27
+ :'success' => :'success',
28
+ :'account_id' => :'accountId',
29
+ :'organization_id' => :'organizationId'
30
+ }
31
+ end
32
+
33
+ # Returns attribute mapping this model knows about
34
+ def self.acceptable_attribute_map
35
+ attribute_map
36
+ end
37
+
38
+ # Returns all the JSON keys this model knows about
39
+ def self.acceptable_attributes
40
+ acceptable_attribute_map.values
41
+ end
42
+
43
+ # Attribute type mapping.
44
+ def self.openapi_types
45
+ {
46
+ :'success' => :'Boolean',
47
+ :'account_id' => :'String',
48
+ :'organization_id' => :'String'
49
+ }
50
+ end
51
+
52
+ # List of attributes with nullable: true
53
+ def self.openapi_nullable
54
+ Set.new([
55
+ ])
56
+ end
57
+
58
+ # Initializes the object
59
+ # @param [Hash] attributes Model attributes in the form of hash
60
+ def initialize(attributes = {})
61
+ if (!attributes.is_a?(Hash))
62
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Pingram::CreateOrganizationResponse` initialize method"
63
+ end
64
+
65
+ # check to see if the attribute exists and convert string to symbol for hash key
66
+ acceptable_attribute_map = self.class.acceptable_attribute_map
67
+ attributes = attributes.each_with_object({}) { |(k, v), h|
68
+ if (!acceptable_attribute_map.key?(k.to_sym))
69
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Pingram::CreateOrganizationResponse`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
70
+ end
71
+ h[k.to_sym] = v
72
+ }
73
+
74
+ if attributes.key?(:'success')
75
+ self.success = attributes[:'success']
76
+ else
77
+ self.success = nil
78
+ end
79
+
80
+ if attributes.key?(:'account_id')
81
+ self.account_id = attributes[:'account_id']
82
+ else
83
+ self.account_id = nil
84
+ end
85
+
86
+ if attributes.key?(:'organization_id')
87
+ self.organization_id = attributes[:'organization_id']
88
+ else
89
+ self.organization_id = nil
90
+ end
91
+ end
92
+
93
+ # Show invalid properties with the reasons. Usually used together with valid?
94
+ # @return Array for valid properties with the reasons
95
+ def list_invalid_properties
96
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
97
+ invalid_properties = Array.new
98
+ if @success.nil?
99
+ invalid_properties.push('invalid value for "success", success cannot be nil.')
100
+ end
101
+
102
+ if @account_id.nil?
103
+ invalid_properties.push('invalid value for "account_id", account_id cannot be nil.')
104
+ end
105
+
106
+ if @organization_id.nil?
107
+ invalid_properties.push('invalid value for "organization_id", organization_id cannot be nil.')
108
+ end
109
+
110
+ invalid_properties
111
+ end
112
+
113
+ # Check to see if the all the properties in the model are valid
114
+ # @return true if the model is valid
115
+ def valid?
116
+ warn '[DEPRECATED] the `valid?` method is obsolete'
117
+ return false if @success.nil?
118
+ return false if @account_id.nil?
119
+ return false if @organization_id.nil?
120
+ true
121
+ end
122
+
123
+ # Custom attribute writer method with validation
124
+ # @param [Object] success Value to be assigned
125
+ def success=(success)
126
+ if success.nil?
127
+ fail ArgumentError, 'success cannot be nil'
128
+ end
129
+
130
+ @success = success
131
+ end
132
+
133
+ # Custom attribute writer method with validation
134
+ # @param [Object] account_id Value to be assigned
135
+ def account_id=(account_id)
136
+ if account_id.nil?
137
+ fail ArgumentError, 'account_id cannot be nil'
138
+ end
139
+
140
+ @account_id = account_id
141
+ end
142
+
143
+ # Custom attribute writer method with validation
144
+ # @param [Object] organization_id Value to be assigned
145
+ def organization_id=(organization_id)
146
+ if organization_id.nil?
147
+ fail ArgumentError, 'organization_id cannot be nil'
148
+ end
149
+
150
+ @organization_id = organization_id
151
+ end
152
+
153
+ # Checks equality by comparing each attribute.
154
+ # @param [Object] Object to be compared
155
+ def ==(o)
156
+ return true if self.equal?(o)
157
+ self.class == o.class &&
158
+ success == o.success &&
159
+ account_id == o.account_id &&
160
+ organization_id == o.organization_id
161
+ end
162
+
163
+ # @see the `==` method
164
+ # @param [Object] Object to be compared
165
+ def eql?(o)
166
+ self == o
167
+ end
168
+
169
+ # Calculates hash code according to all attributes.
170
+ # @return [Integer] Hash code
171
+ def hash
172
+ [success, account_id, organization_id].hash
173
+ end
174
+
175
+ # Builds the object from hash
176
+ # @param [Hash] attributes Model attributes in the form of hash
177
+ # @return [Object] Returns the model itself
178
+ def self.build_from_hash(attributes)
179
+ return nil unless attributes.is_a?(Hash)
180
+ attributes = attributes.transform_keys(&:to_sym)
181
+ transformed_hash = {}
182
+ openapi_types.each_pair do |key, type|
183
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
184
+ transformed_hash["#{key}"] = nil
185
+ elsif type =~ /\AArray<(.*)>/i
186
+ # check to ensure the input is an array given that the attribute
187
+ # is documented as an array but the input is not
188
+ if attributes[attribute_map[key]].is_a?(Array)
189
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
190
+ end
191
+ elsif !attributes[attribute_map[key]].nil?
192
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
193
+ end
194
+ end
195
+ new(transformed_hash)
196
+ end
197
+
198
+ # Returns the object in the form of hash
199
+ # @return [Hash] Returns the object in the form of hash
200
+ def to_hash
201
+ hash = {}
202
+ self.class.attribute_map.each_pair do |attr, param|
203
+ value = self.send(attr)
204
+ if value.nil?
205
+ is_nullable = self.class.openapi_nullable.include?(attr)
206
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
207
+ end
208
+
209
+ hash[param] = _to_hash(value)
210
+ end
211
+ hash
212
+ end
213
+
214
+ end
215
+
216
+ end
@@ -25,6 +25,9 @@ module Pingram
25
25
  # List of subscribed event types for this webhook configuration.
26
26
  attr_accessor :events
27
27
 
28
+ # HMAC secret for verifying webhook signatures. Use this with your X-Pingram-Signature verification.
29
+ attr_accessor :secret
30
+
28
31
  class EnumAttributeValidator
29
32
  attr_reader :datatype
30
33
  attr_reader :allowable_values
@@ -52,7 +55,8 @@ module Pingram
52
55
  {
53
56
  :'webhook_id' => :'webhookId',
54
57
  :'webhook' => :'webhook',
55
- :'events' => :'events'
58
+ :'events' => :'events',
59
+ :'secret' => :'secret'
56
60
  }
57
61
  end
58
62
 
@@ -71,7 +75,8 @@ module Pingram
71
75
  {
72
76
  :'webhook_id' => :'String',
73
77
  :'webhook' => :'String',
74
- :'events' => :'Array<String>'
78
+ :'events' => :'Array<String>',
79
+ :'secret' => :'String'
75
80
  }
76
81
  end
77
82
 
@@ -116,6 +121,12 @@ module Pingram
116
121
  else
117
122
  self.events = nil
118
123
  end
124
+
125
+ if attributes.key?(:'secret')
126
+ self.secret = attributes[:'secret']
127
+ else
128
+ self.secret = nil
129
+ end
119
130
  end
120
131
 
121
132
  # Show invalid properties with the reasons. Usually used together with valid?
@@ -135,6 +146,10 @@ module Pingram
135
146
  invalid_properties.push('invalid value for "events", events cannot be nil.')
136
147
  end
137
148
 
149
+ if @secret.nil?
150
+ invalid_properties.push('invalid value for "secret", secret cannot be nil.')
151
+ end
152
+
138
153
  invalid_properties
139
154
  end
140
155
 
@@ -145,6 +160,7 @@ module Pingram
145
160
  return false if @webhook_id.nil?
146
161
  return false if @webhook.nil?
147
162
  return false if @events.nil?
163
+ return false if @secret.nil?
148
164
  true
149
165
  end
150
166
 
@@ -168,6 +184,16 @@ module Pingram
168
184
  @webhook = webhook
169
185
  end
170
186
 
187
+ # Custom attribute writer method with validation
188
+ # @param [Object] secret Value to be assigned
189
+ def secret=(secret)
190
+ if secret.nil?
191
+ fail ArgumentError, 'secret cannot be nil'
192
+ end
193
+
194
+ @secret = secret
195
+ end
196
+
171
197
  # Checks equality by comparing each attribute.
172
198
  # @param [Object] Object to be compared
173
199
  def ==(o)
@@ -175,7 +201,8 @@ module Pingram
175
201
  self.class == o.class &&
176
202
  webhook_id == o.webhook_id &&
177
203
  webhook == o.webhook &&
178
- events == o.events
204
+ events == o.events &&
205
+ secret == o.secret
179
206
  end
180
207
 
181
208
  # @see the `==` method
@@ -187,7 +214,7 @@ module Pingram
187
214
  # Calculates hash code according to all attributes.
188
215
  # @return [Integer] Hash code
189
216
  def hash
190
- [webhook_id, webhook, events].hash
217
+ [webhook_id, webhook, events, secret].hash
191
218
  end
192
219
 
193
220
  # Builds the object from hash
@@ -186,6 +186,26 @@ module Pingram
186
186
 
187
187
  attr_accessor :sms_replied_encoding
188
188
 
189
+ attr_accessor :sms_unsubscribe_at
190
+
191
+ attr_accessor :sms_unsubscribe_from
192
+
193
+ attr_accessor :sms_unsubscribe_keyword
194
+
195
+ attr_accessor :sms_unsubscribe_webhook_delivered
196
+
197
+ attr_accessor :sms_unsubscribe_webhook_res
198
+
199
+ attr_accessor :sms_subscribe_at
200
+
201
+ attr_accessor :sms_subscribe_from
202
+
203
+ attr_accessor :sms_subscribe_keyword
204
+
205
+ attr_accessor :sms_subscribe_webhook_delivered
206
+
207
+ attr_accessor :sms_subscribe_webhook_res
208
+
189
209
  attr_accessor :web_push_sent_token
190
210
 
191
211
  attr_accessor :web_push_sent_at
@@ -460,6 +480,16 @@ module Pingram
460
480
  :'sms_replied_text' => :'sms_replied_text',
461
481
  :'sms_replied_segments' => :'sms_replied_segments',
462
482
  :'sms_replied_encoding' => :'sms_replied_encoding',
483
+ :'sms_unsubscribe_at' => :'sms_unsubscribe_at',
484
+ :'sms_unsubscribe_from' => :'sms_unsubscribe_from',
485
+ :'sms_unsubscribe_keyword' => :'sms_unsubscribe_keyword',
486
+ :'sms_unsubscribe_webhook_delivered' => :'sms_unsubscribe_webhook_delivered',
487
+ :'sms_unsubscribe_webhook_res' => :'sms_unsubscribe_webhook_res',
488
+ :'sms_subscribe_at' => :'sms_subscribe_at',
489
+ :'sms_subscribe_from' => :'sms_subscribe_from',
490
+ :'sms_subscribe_keyword' => :'sms_subscribe_keyword',
491
+ :'sms_subscribe_webhook_delivered' => :'sms_subscribe_webhook_delivered',
492
+ :'sms_subscribe_webhook_res' => :'sms_subscribe_webhook_res',
463
493
  :'web_push_sent_token' => :'web_push_sent_token',
464
494
  :'web_push_sent_at' => :'web_push_sent_at',
465
495
  :'web_push_sent_after' => :'web_push_sent_after',
@@ -640,6 +670,16 @@ module Pingram
640
670
  :'sms_replied_text' => :'String',
641
671
  :'sms_replied_segments' => :'Float',
642
672
  :'sms_replied_encoding' => :'String',
673
+ :'sms_unsubscribe_at' => :'String',
674
+ :'sms_unsubscribe_from' => :'String',
675
+ :'sms_unsubscribe_keyword' => :'String',
676
+ :'sms_unsubscribe_webhook_delivered' => :'Boolean',
677
+ :'sms_unsubscribe_webhook_res' => :'String',
678
+ :'sms_subscribe_at' => :'String',
679
+ :'sms_subscribe_from' => :'String',
680
+ :'sms_subscribe_keyword' => :'String',
681
+ :'sms_subscribe_webhook_delivered' => :'Boolean',
682
+ :'sms_subscribe_webhook_res' => :'String',
643
683
  :'web_push_sent_token' => :'String',
644
684
  :'web_push_sent_at' => :'String',
645
685
  :'web_push_sent_after' => :'Float',
@@ -1085,6 +1125,46 @@ module Pingram
1085
1125
  self.sms_replied_encoding = attributes[:'sms_replied_encoding']
1086
1126
  end
1087
1127
 
1128
+ if attributes.key?(:'sms_unsubscribe_at')
1129
+ self.sms_unsubscribe_at = attributes[:'sms_unsubscribe_at']
1130
+ end
1131
+
1132
+ if attributes.key?(:'sms_unsubscribe_from')
1133
+ self.sms_unsubscribe_from = attributes[:'sms_unsubscribe_from']
1134
+ end
1135
+
1136
+ if attributes.key?(:'sms_unsubscribe_keyword')
1137
+ self.sms_unsubscribe_keyword = attributes[:'sms_unsubscribe_keyword']
1138
+ end
1139
+
1140
+ if attributes.key?(:'sms_unsubscribe_webhook_delivered')
1141
+ self.sms_unsubscribe_webhook_delivered = attributes[:'sms_unsubscribe_webhook_delivered']
1142
+ end
1143
+
1144
+ if attributes.key?(:'sms_unsubscribe_webhook_res')
1145
+ self.sms_unsubscribe_webhook_res = attributes[:'sms_unsubscribe_webhook_res']
1146
+ end
1147
+
1148
+ if attributes.key?(:'sms_subscribe_at')
1149
+ self.sms_subscribe_at = attributes[:'sms_subscribe_at']
1150
+ end
1151
+
1152
+ if attributes.key?(:'sms_subscribe_from')
1153
+ self.sms_subscribe_from = attributes[:'sms_subscribe_from']
1154
+ end
1155
+
1156
+ if attributes.key?(:'sms_subscribe_keyword')
1157
+ self.sms_subscribe_keyword = attributes[:'sms_subscribe_keyword']
1158
+ end
1159
+
1160
+ if attributes.key?(:'sms_subscribe_webhook_delivered')
1161
+ self.sms_subscribe_webhook_delivered = attributes[:'sms_subscribe_webhook_delivered']
1162
+ end
1163
+
1164
+ if attributes.key?(:'sms_subscribe_webhook_res')
1165
+ self.sms_subscribe_webhook_res = attributes[:'sms_subscribe_webhook_res']
1166
+ end
1167
+
1088
1168
  if attributes.key?(:'web_push_sent_token')
1089
1169
  self.web_push_sent_token = attributes[:'web_push_sent_token']
1090
1170
  end
@@ -1840,6 +1920,16 @@ module Pingram
1840
1920
  sms_replied_text == o.sms_replied_text &&
1841
1921
  sms_replied_segments == o.sms_replied_segments &&
1842
1922
  sms_replied_encoding == o.sms_replied_encoding &&
1923
+ sms_unsubscribe_at == o.sms_unsubscribe_at &&
1924
+ sms_unsubscribe_from == o.sms_unsubscribe_from &&
1925
+ sms_unsubscribe_keyword == o.sms_unsubscribe_keyword &&
1926
+ sms_unsubscribe_webhook_delivered == o.sms_unsubscribe_webhook_delivered &&
1927
+ sms_unsubscribe_webhook_res == o.sms_unsubscribe_webhook_res &&
1928
+ sms_subscribe_at == o.sms_subscribe_at &&
1929
+ sms_subscribe_from == o.sms_subscribe_from &&
1930
+ sms_subscribe_keyword == o.sms_subscribe_keyword &&
1931
+ sms_subscribe_webhook_delivered == o.sms_subscribe_webhook_delivered &&
1932
+ sms_subscribe_webhook_res == o.sms_subscribe_webhook_res &&
1843
1933
  web_push_sent_token == o.web_push_sent_token &&
1844
1934
  web_push_sent_at == o.web_push_sent_at &&
1845
1935
  web_push_sent_after == o.web_push_sent_after &&
@@ -1931,7 +2021,7 @@ module Pingram
1931
2021
  # Calculates hash code according to all attributes.
1932
2022
  # @return [Integer] Hash code
1933
2023
  def hash
1934
- [received_at, type, env_id, client_id, agent, ip, request, test, tracking_id, account_id, failed_at, failed_code, failed_internal, inapp_sent_at, inapp_sent_after, inapp_delivered_at, inapp_delivered_after, inapp_failed_at, inapp_failed_code, inapp_failed_internal, mobile_push_failed_at, mobile_push_failed_code, mobile_push_failed_token, mobile_push_failed_internal, mobile_push_sent_at, mobile_push_sent_after, mobile_push_sent_token, mobile_push_delivered_at, mobile_push_delivered_after, email_sent_at, email_sent_message_id, email_sent_after, email_preview, email_delivered_at, email_delivered_recipients, email_delivered_after, email_delivered_webhook_res, email_failed_at, email_failed_code, email_failed_recipient, email_failed_diagnostic_code, email_failed_internal, email_failed_webhook_res, email_opened_at, email_opened_user_agent, email_opened_ip, email_opened_webhook_res, email_clicked_at, email_clicked_user_agent, email_clicked_ip, email_clicked_link, email_clicked_link_tags, email_clicked_webhook_res, email_inbound_at, email_inbound_from, email_inbound_from_name, email_inbound_to, email_inbound_cc, email_inbound_bcc, email_inbound_reply_to, email_inbound_inbox, email_inbound_subject, email_inbound_body_text, email_inbound_body_html, email_inbound_has_attachments, email_inbound_attachment_count, email_inbound_message_id, email_inbound_in_reply_to, email_inbound_references, email_inbound_webhook_delivered, email_inbound_webhook_res, email_inbound_resolution_type, sms_inbound_at, sms_inbound_from, sms_inbound_to, sms_inbound_text, sms_inbound_webhook_delivered, sms_inbound_webhook_res, sms_inbound_media, sms_replied_at, sms_replied_to, sms_replied_text, sms_replied_segments, sms_replied_encoding, web_push_sent_token, web_push_sent_at, web_push_sent_after, web_push_delivered_at, web_push_delivered_after, web_push_delivered_token, web_push_delivered_internal, web_push_failed_at, web_push_failed_token, web_push_failed_code, web_push_failed_internal, processed_at, ignored, scheduled_for, user_id, user_email, user_number, email_routing, email_routing_reason, sms_routing, sms_routing_reason, web_push_routing, web_push_routing_reason, mobile_push_routing, mobile_push_routing_reason, call_routing, call_routing_reason, inapp_routing, inapp_routing_reason, slack_routing, slack_routing_reason, sms_preview, call_preview, web_push_preview, mobile_push_preview, slack_preview, inapp_preview, slack_sent_at, slack_sent_after, slack_delivered_at, slack_delivered_after, slack_delivered_internal, slack_failed_at, slack_failed_code, slack_failed_internal, call_sent_at, call_sent_after, call_sent_from, call_delivered_at, call_delivered_after, call_delivered_code, call_delivered_cost_internal, call_delivered_cost, call_failed_at, call_failed_code, call_failed_internal, sms_failed_at, sms_failed_code, sms_failed_internal, sms_sent_at, sms_sent_after, sms_sent_from, sms_sent_carrier, sms_sent_line_type, sms_sent_encoding, sms_sent_segments, sms_sent_parts, sms_sent_cost, sms_sent_country, sms_sent_message_id, sms_sent_mms, sms_carrier_cost_internal, sms_carrier_fee_internal, sms_rate_internal, sms_delivered_at, sms_delivered_after, sms_delivered_cost_internal, schedule_updated_at, schedule_updated_to, schedule_deleted_at].hash
2024
+ [received_at, type, env_id, client_id, agent, ip, request, test, tracking_id, account_id, failed_at, failed_code, failed_internal, inapp_sent_at, inapp_sent_after, inapp_delivered_at, inapp_delivered_after, inapp_failed_at, inapp_failed_code, inapp_failed_internal, mobile_push_failed_at, mobile_push_failed_code, mobile_push_failed_token, mobile_push_failed_internal, mobile_push_sent_at, mobile_push_sent_after, mobile_push_sent_token, mobile_push_delivered_at, mobile_push_delivered_after, email_sent_at, email_sent_message_id, email_sent_after, email_preview, email_delivered_at, email_delivered_recipients, email_delivered_after, email_delivered_webhook_res, email_failed_at, email_failed_code, email_failed_recipient, email_failed_diagnostic_code, email_failed_internal, email_failed_webhook_res, email_opened_at, email_opened_user_agent, email_opened_ip, email_opened_webhook_res, email_clicked_at, email_clicked_user_agent, email_clicked_ip, email_clicked_link, email_clicked_link_tags, email_clicked_webhook_res, email_inbound_at, email_inbound_from, email_inbound_from_name, email_inbound_to, email_inbound_cc, email_inbound_bcc, email_inbound_reply_to, email_inbound_inbox, email_inbound_subject, email_inbound_body_text, email_inbound_body_html, email_inbound_has_attachments, email_inbound_attachment_count, email_inbound_message_id, email_inbound_in_reply_to, email_inbound_references, email_inbound_webhook_delivered, email_inbound_webhook_res, email_inbound_resolution_type, sms_inbound_at, sms_inbound_from, sms_inbound_to, sms_inbound_text, sms_inbound_webhook_delivered, sms_inbound_webhook_res, sms_inbound_media, sms_replied_at, sms_replied_to, sms_replied_text, sms_replied_segments, sms_replied_encoding, sms_unsubscribe_at, sms_unsubscribe_from, sms_unsubscribe_keyword, sms_unsubscribe_webhook_delivered, sms_unsubscribe_webhook_res, sms_subscribe_at, sms_subscribe_from, sms_subscribe_keyword, sms_subscribe_webhook_delivered, sms_subscribe_webhook_res, web_push_sent_token, web_push_sent_at, web_push_sent_after, web_push_delivered_at, web_push_delivered_after, web_push_delivered_token, web_push_delivered_internal, web_push_failed_at, web_push_failed_token, web_push_failed_code, web_push_failed_internal, processed_at, ignored, scheduled_for, user_id, user_email, user_number, email_routing, email_routing_reason, sms_routing, sms_routing_reason, web_push_routing, web_push_routing_reason, mobile_push_routing, mobile_push_routing_reason, call_routing, call_routing_reason, inapp_routing, inapp_routing_reason, slack_routing, slack_routing_reason, sms_preview, call_preview, web_push_preview, mobile_push_preview, slack_preview, inapp_preview, slack_sent_at, slack_sent_after, slack_delivered_at, slack_delivered_after, slack_delivered_internal, slack_failed_at, slack_failed_code, slack_failed_internal, call_sent_at, call_sent_after, call_sent_from, call_delivered_at, call_delivered_after, call_delivered_code, call_delivered_cost_internal, call_delivered_cost, call_failed_at, call_failed_code, call_failed_internal, sms_failed_at, sms_failed_code, sms_failed_internal, sms_sent_at, sms_sent_after, sms_sent_from, sms_sent_carrier, sms_sent_line_type, sms_sent_encoding, sms_sent_segments, sms_sent_parts, sms_sent_cost, sms_sent_country, sms_sent_message_id, sms_sent_mms, sms_carrier_cost_internal, sms_carrier_fee_internal, sms_rate_internal, sms_delivered_at, sms_delivered_after, sms_delivered_cost_internal, schedule_updated_at, schedule_updated_to, schedule_deleted_at].hash
1935
2025
  end
1936
2026
 
1937
2027
  # Builds the object from hash