surge_api 0.23.0 → 0.25.0

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 (112) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +28 -0
  3. data/README.md +9 -9
  4. data/lib/surge_api/client.rb +4 -0
  5. data/lib/surge_api/internal/type/union.rb +2 -2
  6. data/lib/surge_api/models/account_retrieve_status_params.rb +1 -0
  7. data/lib/surge_api/models/call_ended_webhook_event.rb +8 -3
  8. data/lib/surge_api/models/campaign.rb +21 -13
  9. data/lib/surge_api/models/campaign_approved_webhook_event.rb +9 -1
  10. data/lib/surge_api/models/campaign_params.rb +11 -12
  11. data/lib/surge_api/models/campaign_rejected_webhook_event.rb +135 -0
  12. data/lib/surge_api/models/campaign_submitted_webhook_event.rb +74 -0
  13. data/lib/surge_api/models/campaign_update_params.rb +188 -1
  14. data/lib/surge_api/models/campaign_warning_webhook_event.rb +134 -0
  15. data/lib/surge_api/models/message.rb +42 -2
  16. data/lib/surge_api/models/message_delivered_webhook_event.rb +29 -1
  17. data/lib/surge_api/models/message_failed_webhook_event.rb +26 -5
  18. data/lib/surge_api/models/message_received_webhook_event.rb +29 -1
  19. data/lib/surge_api/models/message_sent_webhook_event.rb +29 -1
  20. data/lib/surge_api/models/phone_number.rb +9 -1
  21. data/lib/surge_api/models/phone_number_attached_to_campaign_webhook_event.rb +9 -1
  22. data/lib/surge_api/models/phone_number_imported_webhook_event.rb +160 -0
  23. data/lib/surge_api/models/phone_number_purchase_params.rb +9 -1
  24. data/lib/surge_api/models/phone_number_update_params.rb +9 -1
  25. data/lib/surge_api/models/toll_free_campaign.rb +132 -0
  26. data/lib/surge_api/models/toll_free_campaign_consent_flow.rb +176 -0
  27. data/lib/surge_api/models/toll_free_campaign_create_params.rb +22 -0
  28. data/lib/surge_api/models/toll_free_campaign_list_params.rb +42 -0
  29. data/lib/surge_api/models/toll_free_campaign_params.rb +286 -0
  30. data/lib/surge_api/models/toll_free_campaign_retrieve_params.rb +22 -0
  31. data/lib/surge_api/models/toll_free_campaign_update_params.rb +278 -0
  32. data/lib/surge_api/models/unwrap_webhook_event.rb +9 -1
  33. data/lib/surge_api/models/user_create_token_params.rb +15 -1
  34. data/lib/surge_api/models.rb +22 -0
  35. data/lib/surge_api/resources/accounts.rb +2 -2
  36. data/lib/surge_api/resources/campaigns.rb +26 -8
  37. data/lib/surge_api/resources/phone_numbers.rb +6 -2
  38. data/lib/surge_api/resources/toll_free_campaigns.rb +140 -0
  39. data/lib/surge_api/resources/users.rb +6 -1
  40. data/lib/surge_api/resources/webhooks.rb +1 -1
  41. data/lib/surge_api/version.rb +1 -1
  42. data/lib/surge_api.rb +12 -0
  43. data/rbi/surge_api/client.rbi +3 -0
  44. data/rbi/surge_api/models/account_retrieve_status_params.rbi +5 -0
  45. data/rbi/surge_api/models/call_ended_webhook_event.rbi +6 -3
  46. data/rbi/surge_api/models/campaign.rbi +26 -19
  47. data/rbi/surge_api/models/campaign_approved_webhook_event.rbi +8 -0
  48. data/rbi/surge_api/models/campaign_params.rbi +17 -19
  49. data/rbi/surge_api/models/campaign_rejected_webhook_event.rbi +269 -0
  50. data/rbi/surge_api/models/campaign_submitted_webhook_event.rbi +149 -0
  51. data/rbi/surge_api/models/campaign_update_params.rbi +378 -1
  52. data/rbi/surge_api/models/campaign_warning_webhook_event.rbi +259 -0
  53. data/rbi/surge_api/models/message.rbi +50 -3
  54. data/rbi/surge_api/models/message_delivered_webhook_event.rbi +52 -0
  55. data/rbi/surge_api/models/message_failed_webhook_event.rbi +47 -5
  56. data/rbi/surge_api/models/message_received_webhook_event.rbi +49 -0
  57. data/rbi/surge_api/models/message_sent_webhook_event.rbi +46 -0
  58. data/rbi/surge_api/models/phone_number.rbi +8 -0
  59. data/rbi/surge_api/models/phone_number_attached_to_campaign_webhook_event.rbi +8 -0
  60. data/rbi/surge_api/models/phone_number_imported_webhook_event.rbi +318 -0
  61. data/rbi/surge_api/models/phone_number_purchase_params.rbi +11 -0
  62. data/rbi/surge_api/models/phone_number_update_params.rbi +11 -0
  63. data/rbi/surge_api/models/toll_free_campaign.rbi +230 -0
  64. data/rbi/surge_api/models/toll_free_campaign_consent_flow.rbi +476 -0
  65. data/rbi/surge_api/models/toll_free_campaign_create_params.rbi +43 -0
  66. data/rbi/surge_api/models/toll_free_campaign_list_params.rbi +70 -0
  67. data/rbi/surge_api/models/toll_free_campaign_params.rbi +711 -0
  68. data/rbi/surge_api/models/toll_free_campaign_retrieve_params.rbi +43 -0
  69. data/rbi/surge_api/models/toll_free_campaign_update_params.rbi +760 -0
  70. data/rbi/surge_api/models/unwrap_webhook_event.rbi +4 -0
  71. data/rbi/surge_api/models/user_create_token_params.rbi +17 -0
  72. data/rbi/surge_api/models.rbi +25 -0
  73. data/rbi/surge_api/resources/accounts.rbi +2 -2
  74. data/rbi/surge_api/resources/campaigns.rbi +94 -12
  75. data/rbi/surge_api/resources/phone_numbers.rbi +6 -0
  76. data/rbi/surge_api/resources/toll_free_campaigns.rbi +129 -0
  77. data/rbi/surge_api/resources/users.rbi +6 -0
  78. data/rbi/surge_api/resources/webhooks.rbi +4 -0
  79. data/sig/surge_api/client.rbs +2 -0
  80. data/sig/surge_api/models/account_retrieve_status_params.rbs +2 -1
  81. data/sig/surge_api/models/campaign.rbs +8 -1
  82. data/sig/surge_api/models/campaign_approved_webhook_event.rbs +5 -0
  83. data/sig/surge_api/models/campaign_rejected_webhook_event.rbs +115 -0
  84. data/sig/surge_api/models/campaign_submitted_webhook_event.rbs +67 -0
  85. data/sig/surge_api/models/campaign_update_params.rbs +128 -2
  86. data/sig/surge_api/models/campaign_warning_webhook_event.rbs +114 -0
  87. data/sig/surge_api/models/message.rbs +36 -3
  88. data/sig/surge_api/models/message_delivered_webhook_event.rbs +20 -0
  89. data/sig/surge_api/models/message_failed_webhook_event.rbs +19 -4
  90. data/sig/surge_api/models/message_received_webhook_event.rbs +20 -0
  91. data/sig/surge_api/models/message_sent_webhook_event.rbs +20 -0
  92. data/sig/surge_api/models/phone_number.rbs +5 -0
  93. data/sig/surge_api/models/phone_number_attached_to_campaign_webhook_event.rbs +5 -0
  94. data/sig/surge_api/models/phone_number_imported_webhook_event.rbs +130 -0
  95. data/sig/surge_api/models/phone_number_purchase_params.rbs +7 -0
  96. data/sig/surge_api/models/phone_number_update_params.rbs +12 -1
  97. data/sig/surge_api/models/toll_free_campaign.rbs +126 -0
  98. data/sig/surge_api/models/toll_free_campaign_consent_flow.rbs +207 -0
  99. data/sig/surge_api/models/toll_free_campaign_create_params.rbs +25 -0
  100. data/sig/surge_api/models/toll_free_campaign_list_params.rbs +36 -0
  101. data/sig/surge_api/models/toll_free_campaign_params.rbs +321 -0
  102. data/sig/surge_api/models/toll_free_campaign_retrieve_params.rbs +23 -0
  103. data/sig/surge_api/models/toll_free_campaign_update_params.rbs +332 -0
  104. data/sig/surge_api/models/unwrap_webhook_event.rbs +4 -0
  105. data/sig/surge_api/models/user_create_token_params.rbs +7 -1
  106. data/sig/surge_api/models.rbs +22 -0
  107. data/sig/surge_api/resources/campaigns.rbs +9 -1
  108. data/sig/surge_api/resources/phone_numbers.rbs +2 -0
  109. data/sig/surge_api/resources/toll_free_campaigns.rbs +44 -0
  110. data/sig/surge_api/resources/users.rbs +1 -0
  111. data/sig/surge_api/resources/webhooks.rbs +4 -0
  112. metadata +53 -7
@@ -0,0 +1,67 @@
1
+ module SurgeAPI
2
+ module Models
3
+ type campaign_submitted_webhook_event =
4
+ {
5
+ account_id: String,
6
+ data: SurgeAPI::CampaignSubmittedWebhookEvent::Data,
7
+ timestamp: Time,
8
+ type: :"campaign.submitted"
9
+ }
10
+
11
+ class CampaignSubmittedWebhookEvent < SurgeAPI::Internal::Type::BaseModel
12
+ attr_accessor account_id: String
13
+
14
+ attr_accessor data: SurgeAPI::CampaignSubmittedWebhookEvent::Data
15
+
16
+ attr_accessor timestamp: Time
17
+
18
+ attr_accessor type: :"campaign.submitted"
19
+
20
+ def initialize: (
21
+ account_id: String,
22
+ data: SurgeAPI::CampaignSubmittedWebhookEvent::Data,
23
+ timestamp: Time,
24
+ ?type: :"campaign.submitted"
25
+ ) -> void
26
+
27
+ def to_hash: -> {
28
+ account_id: String,
29
+ data: SurgeAPI::CampaignSubmittedWebhookEvent::Data,
30
+ timestamp: Time,
31
+ type: :"campaign.submitted"
32
+ }
33
+
34
+ type data =
35
+ {
36
+ id: String,
37
+ status: SurgeAPI::Models::CampaignSubmittedWebhookEvent::Data::status
38
+ }
39
+
40
+ class Data < SurgeAPI::Internal::Type::BaseModel
41
+ attr_accessor id: String
42
+
43
+ attr_accessor status: SurgeAPI::Models::CampaignSubmittedWebhookEvent::Data::status
44
+
45
+ def initialize: (
46
+ id: String,
47
+ status: SurgeAPI::Models::CampaignSubmittedWebhookEvent::Data::status
48
+ ) -> void
49
+
50
+ def to_hash: -> {
51
+ id: String,
52
+ status: SurgeAPI::Models::CampaignSubmittedWebhookEvent::Data::status
53
+ }
54
+
55
+ type status = :in_review
56
+
57
+ module Status
58
+ extend SurgeAPI::Internal::Type::Enum
59
+
60
+ IN_REVIEW: :in_review
61
+
62
+ def self?.values: -> ::Array[SurgeAPI::Models::CampaignSubmittedWebhookEvent::Data::status]
63
+ end
64
+ end
65
+ end
66
+ end
67
+ end
@@ -1,7 +1,19 @@
1
1
  module SurgeAPI
2
2
  module Models
3
3
  type campaign_update_params =
4
- { id: String } & SurgeAPI::Internal::Type::request_parameters
4
+ {
5
+ id: String,
6
+ consent_flow: String,
7
+ description: String,
8
+ includes: ::Array[SurgeAPI::Models::CampaignUpdateParams::include_],
9
+ link_sample: String?,
10
+ message_samples: ::Array[String],
11
+ privacy_policy_url: String,
12
+ terms_and_conditions_url: String,
13
+ use_cases: ::Array[SurgeAPI::Models::CampaignUpdateParams::use_case],
14
+ volume: SurgeAPI::Models::CampaignUpdateParams::volume
15
+ }
16
+ & SurgeAPI::Internal::Type::request_parameters
5
17
 
6
18
  class CampaignUpdateParams < SurgeAPI::Internal::Type::BaseModel
7
19
  extend SurgeAPI::Internal::Type::RequestParameters::Converter
@@ -9,12 +21,126 @@ module SurgeAPI
9
21
 
10
22
  attr_accessor id: String
11
23
 
24
+ attr_reader consent_flow: String?
25
+
26
+ def consent_flow=: (String) -> String
27
+
28
+ attr_reader description: String?
29
+
30
+ def description=: (String) -> String
31
+
32
+ attr_reader includes: ::Array[SurgeAPI::Models::CampaignUpdateParams::include_]?
33
+
34
+ def includes=: (
35
+ ::Array[SurgeAPI::Models::CampaignUpdateParams::include_]
36
+ ) -> ::Array[SurgeAPI::Models::CampaignUpdateParams::include_]
37
+
38
+ attr_accessor link_sample: String?
39
+
40
+ attr_reader message_samples: ::Array[String]?
41
+
42
+ def message_samples=: (::Array[String]) -> ::Array[String]
43
+
44
+ attr_reader privacy_policy_url: String?
45
+
46
+ def privacy_policy_url=: (String) -> String
47
+
48
+ attr_reader terms_and_conditions_url: String?
49
+
50
+ def terms_and_conditions_url=: (String) -> String
51
+
52
+ attr_reader use_cases: ::Array[SurgeAPI::Models::CampaignUpdateParams::use_case]?
53
+
54
+ def use_cases=: (
55
+ ::Array[SurgeAPI::Models::CampaignUpdateParams::use_case]
56
+ ) -> ::Array[SurgeAPI::Models::CampaignUpdateParams::use_case]
57
+
58
+ attr_reader volume: SurgeAPI::Models::CampaignUpdateParams::volume?
59
+
60
+ def volume=: (
61
+ SurgeAPI::Models::CampaignUpdateParams::volume
62
+ ) -> SurgeAPI::Models::CampaignUpdateParams::volume
63
+
12
64
  def initialize: (
13
65
  id: String,
66
+ ?consent_flow: String,
67
+ ?description: String,
68
+ ?includes: ::Array[SurgeAPI::Models::CampaignUpdateParams::include_],
69
+ ?link_sample: String?,
70
+ ?message_samples: ::Array[String],
71
+ ?privacy_policy_url: String,
72
+ ?terms_and_conditions_url: String,
73
+ ?use_cases: ::Array[SurgeAPI::Models::CampaignUpdateParams::use_case],
74
+ ?volume: SurgeAPI::Models::CampaignUpdateParams::volume,
14
75
  ?request_options: SurgeAPI::request_opts
15
76
  ) -> void
16
77
 
17
- def to_hash: -> { id: String, request_options: SurgeAPI::RequestOptions }
78
+ def to_hash: -> {
79
+ id: String,
80
+ consent_flow: String,
81
+ description: String,
82
+ includes: ::Array[SurgeAPI::Models::CampaignUpdateParams::include_],
83
+ link_sample: String?,
84
+ message_samples: ::Array[String],
85
+ privacy_policy_url: String,
86
+ terms_and_conditions_url: String,
87
+ use_cases: ::Array[SurgeAPI::Models::CampaignUpdateParams::use_case],
88
+ volume: SurgeAPI::Models::CampaignUpdateParams::volume,
89
+ request_options: SurgeAPI::RequestOptions
90
+ }
91
+
92
+ type include_ = :links | :phone_numbers | :age_gated | :direct_lending
93
+
94
+ module Include
95
+ extend SurgeAPI::Internal::Type::Enum
96
+
97
+ LINKS: :links
98
+ PHONE_NUMBERS: :phone_numbers
99
+ AGE_GATED: :age_gated
100
+ DIRECT_LENDING: :direct_lending
101
+
102
+ def self?.values: -> ::Array[SurgeAPI::Models::CampaignUpdateParams::include_]
103
+ end
104
+
105
+ type use_case =
106
+ :account_notification
107
+ | :customer_care
108
+ | :delivery_notification
109
+ | :fraud_alert
110
+ | :higher_education
111
+ | :marketing
112
+ | :polling_voting
113
+ | :public_service_announcement
114
+ | :security_alert
115
+ | :two_factor_authentication
116
+
117
+ module UseCase
118
+ extend SurgeAPI::Internal::Type::Enum
119
+
120
+ ACCOUNT_NOTIFICATION: :account_notification
121
+ CUSTOMER_CARE: :customer_care
122
+ DELIVERY_NOTIFICATION: :delivery_notification
123
+ FRAUD_ALERT: :fraud_alert
124
+ HIGHER_EDUCATION: :higher_education
125
+ MARKETING: :marketing
126
+ POLLING_VOTING: :polling_voting
127
+ PUBLIC_SERVICE_ANNOUNCEMENT: :public_service_announcement
128
+ SECURITY_ALERT: :security_alert
129
+ TWO_FACTOR_AUTHENTICATION: :two_factor_authentication
130
+
131
+ def self?.values: -> ::Array[SurgeAPI::Models::CampaignUpdateParams::use_case]
132
+ end
133
+
134
+ type volume = :high | :low
135
+
136
+ module Volume
137
+ extend SurgeAPI::Internal::Type::Enum
138
+
139
+ HIGH: :high
140
+ LOW: :low
141
+
142
+ def self?.values: -> ::Array[SurgeAPI::Models::CampaignUpdateParams::volume]
143
+ end
18
144
  end
19
145
  end
20
146
  end
@@ -0,0 +1,114 @@
1
+ module SurgeAPI
2
+ module Models
3
+ type campaign_warning_webhook_event =
4
+ {
5
+ account_id: String,
6
+ data: SurgeAPI::CampaignWarningWebhookEvent::Data,
7
+ timestamp: Time,
8
+ type: :"campaign.warning"
9
+ }
10
+
11
+ class CampaignWarningWebhookEvent < SurgeAPI::Internal::Type::BaseModel
12
+ attr_accessor account_id: String
13
+
14
+ attr_accessor data: SurgeAPI::CampaignWarningWebhookEvent::Data
15
+
16
+ attr_accessor timestamp: Time
17
+
18
+ attr_accessor type: :"campaign.warning"
19
+
20
+ def initialize: (
21
+ account_id: String,
22
+ data: SurgeAPI::CampaignWarningWebhookEvent::Data,
23
+ timestamp: Time,
24
+ ?type: :"campaign.warning"
25
+ ) -> void
26
+
27
+ def to_hash: -> {
28
+ account_id: String,
29
+ data: SurgeAPI::CampaignWarningWebhookEvent::Data,
30
+ timestamp: Time,
31
+ type: :"campaign.warning"
32
+ }
33
+
34
+ type data =
35
+ {
36
+ id: String,
37
+ feedback: ::Array[SurgeAPI::CampaignWarningWebhookEvent::Data::Feedback],
38
+ status: SurgeAPI::Models::CampaignWarningWebhookEvent::Data::status
39
+ }
40
+
41
+ class Data < SurgeAPI::Internal::Type::BaseModel
42
+ attr_accessor id: String
43
+
44
+ attr_accessor feedback: ::Array[SurgeAPI::CampaignWarningWebhookEvent::Data::Feedback]
45
+
46
+ attr_accessor status: SurgeAPI::Models::CampaignWarningWebhookEvent::Data::status
47
+
48
+ def initialize: (
49
+ id: String,
50
+ feedback: ::Array[SurgeAPI::CampaignWarningWebhookEvent::Data::Feedback],
51
+ status: SurgeAPI::Models::CampaignWarningWebhookEvent::Data::status
52
+ ) -> void
53
+
54
+ def to_hash: -> {
55
+ id: String,
56
+ feedback: ::Array[SurgeAPI::CampaignWarningWebhookEvent::Data::Feedback],
57
+ status: SurgeAPI::Models::CampaignWarningWebhookEvent::Data::status
58
+ }
59
+
60
+ type feedback =
61
+ {
62
+ field: String,
63
+ message: String,
64
+ outcome: SurgeAPI::Models::CampaignWarningWebhookEvent::Data::Feedback::outcome,
65
+ suggested_value: String?
66
+ }
67
+
68
+ class Feedback < SurgeAPI::Internal::Type::BaseModel
69
+ attr_accessor field: String
70
+
71
+ attr_accessor message: String
72
+
73
+ attr_accessor outcome: SurgeAPI::Models::CampaignWarningWebhookEvent::Data::Feedback::outcome
74
+
75
+ attr_accessor suggested_value: String?
76
+
77
+ def initialize: (
78
+ field: String,
79
+ message: String,
80
+ outcome: SurgeAPI::Models::CampaignWarningWebhookEvent::Data::Feedback::outcome,
81
+ suggested_value: String?
82
+ ) -> void
83
+
84
+ def to_hash: -> {
85
+ field: String,
86
+ message: String,
87
+ outcome: SurgeAPI::Models::CampaignWarningWebhookEvent::Data::Feedback::outcome,
88
+ suggested_value: String?
89
+ }
90
+
91
+ type outcome = :warning
92
+
93
+ module Outcome
94
+ extend SurgeAPI::Internal::Type::Enum
95
+
96
+ WARNING: :warning
97
+
98
+ def self?.values: -> ::Array[SurgeAPI::Models::CampaignWarningWebhookEvent::Data::Feedback::outcome]
99
+ end
100
+ end
101
+
102
+ type status = :in_review
103
+
104
+ module Status
105
+ extend SurgeAPI::Internal::Type::Enum
106
+
107
+ IN_REVIEW: :in_review
108
+
109
+ def self?.values: -> ::Array[SurgeAPI::Models::CampaignWarningWebhookEvent::Data::status]
110
+ end
111
+ end
112
+ end
113
+ end
114
+ end
@@ -7,7 +7,9 @@ module SurgeAPI
7
7
  blast_id: String?,
8
8
  body: String?,
9
9
  conversation: SurgeAPI::Message::Conversation,
10
- metadata: ::Hash[Symbol, String]
10
+ failure_reason: String?,
11
+ metadata: ::Hash[Symbol, String],
12
+ status: SurgeAPI::Models::Message::status
11
13
  }
12
14
 
13
15
  class Message < SurgeAPI::Internal::Type::BaseModel
@@ -31,17 +33,27 @@ module SurgeAPI
31
33
  SurgeAPI::Message::Conversation
32
34
  ) -> SurgeAPI::Message::Conversation
33
35
 
36
+ attr_accessor failure_reason: String?
37
+
34
38
  attr_reader metadata: ::Hash[Symbol, String]?
35
39
 
36
40
  def metadata=: (::Hash[Symbol, String]) -> ::Hash[Symbol, String]
37
41
 
42
+ attr_reader status: SurgeAPI::Models::Message::status?
43
+
44
+ def status=: (
45
+ SurgeAPI::Models::Message::status
46
+ ) -> SurgeAPI::Models::Message::status
47
+
38
48
  def initialize: (
39
49
  ?id: String,
40
50
  ?attachments: ::Array[SurgeAPI::Message::Attachment],
41
51
  ?blast_id: String?,
42
52
  ?body: String?,
43
53
  ?conversation: SurgeAPI::Message::Conversation,
44
- ?metadata: ::Hash[Symbol, String]
54
+ ?failure_reason: String?,
55
+ ?metadata: ::Hash[Symbol, String],
56
+ ?status: SurgeAPI::Models::Message::status
45
57
  ) -> void
46
58
 
47
59
  def to_hash: -> {
@@ -50,7 +62,9 @@ module SurgeAPI
50
62
  blast_id: String?,
51
63
  body: String?,
52
64
  conversation: SurgeAPI::Message::Conversation,
53
- metadata: ::Hash[Symbol, String]
65
+ failure_reason: String?,
66
+ metadata: ::Hash[Symbol, String],
67
+ status: SurgeAPI::Models::Message::status
54
68
  }
55
69
 
56
70
  type attachment =
@@ -135,6 +149,7 @@ module SurgeAPI
135
149
  type phone_number =
136
150
  {
137
151
  id: String,
152
+ metadata: ::Hash[Symbol, String],
138
153
  name: String?,
139
154
  number: String,
140
155
  type: SurgeAPI::Models::Message::Conversation::PhoneNumber::type_
@@ -143,6 +158,8 @@ module SurgeAPI
143
158
  class PhoneNumber < SurgeAPI::Internal::Type::BaseModel
144
159
  attr_accessor id: String
145
160
 
161
+ attr_accessor metadata: ::Hash[Symbol, String]
162
+
146
163
  attr_accessor name: String?
147
164
 
148
165
  attr_accessor number: String
@@ -151,6 +168,7 @@ module SurgeAPI
151
168
 
152
169
  def initialize: (
153
170
  id: String,
171
+ metadata: ::Hash[Symbol, String],
154
172
  name: String?,
155
173
  number: String,
156
174
  type: SurgeAPI::Models::Message::Conversation::PhoneNumber::type_
@@ -158,6 +176,7 @@ module SurgeAPI
158
176
 
159
177
  def to_hash: -> {
160
178
  id: String,
179
+ metadata: ::Hash[Symbol, String],
161
180
  name: String?,
162
181
  number: String,
163
182
  type: SurgeAPI::Models::Message::Conversation::PhoneNumber::type_
@@ -177,6 +196,20 @@ module SurgeAPI
177
196
  end
178
197
  end
179
198
  end
199
+
200
+ type status = :pending | :received | :sent | :delivered | :failed
201
+
202
+ module Status
203
+ extend SurgeAPI::Internal::Type::Enum
204
+
205
+ PENDING: :pending
206
+ RECEIVED: :received
207
+ SENT: :sent
208
+ DELIVERED: :delivered
209
+ FAILED: :failed
210
+
211
+ def self?.values: -> ::Array[SurgeAPI::Models::Message::status]
212
+ end
180
213
  end
181
214
  end
182
215
  end
@@ -37,7 +37,9 @@ module SurgeAPI
37
37
  body: String?,
38
38
  conversation: SurgeAPI::MessageDeliveredWebhookEvent::Data::Conversation,
39
39
  delivered_at: Time,
40
+ failure_reason: String?,
40
41
  metadata: ::Hash[Symbol, String],
42
+ status: SurgeAPI::Models::MessageDeliveredWebhookEvent::Data::status,
41
43
  attachments: ::Array[SurgeAPI::MessageDeliveredWebhookEvent::Data::Attachment],
42
44
  blast_id: String
43
45
  }
@@ -51,8 +53,12 @@ module SurgeAPI
51
53
 
52
54
  attr_accessor delivered_at: Time
53
55
 
56
+ attr_accessor failure_reason: String?
57
+
54
58
  attr_accessor metadata: ::Hash[Symbol, String]
55
59
 
60
+ attr_accessor status: SurgeAPI::Models::MessageDeliveredWebhookEvent::Data::status
61
+
56
62
  attr_reader attachments: ::Array[SurgeAPI::MessageDeliveredWebhookEvent::Data::Attachment]?
57
63
 
58
64
  def attachments=: (
@@ -68,7 +74,9 @@ module SurgeAPI
68
74
  body: String?,
69
75
  conversation: SurgeAPI::MessageDeliveredWebhookEvent::Data::Conversation,
70
76
  delivered_at: Time,
77
+ failure_reason: String?,
71
78
  metadata: ::Hash[Symbol, String],
79
+ status: SurgeAPI::Models::MessageDeliveredWebhookEvent::Data::status,
72
80
  ?attachments: ::Array[SurgeAPI::MessageDeliveredWebhookEvent::Data::Attachment],
73
81
  ?blast_id: String
74
82
  ) -> void
@@ -78,7 +86,9 @@ module SurgeAPI
78
86
  body: String?,
79
87
  conversation: SurgeAPI::MessageDeliveredWebhookEvent::Data::Conversation,
80
88
  delivered_at: Time,
89
+ failure_reason: String?,
81
90
  metadata: ::Hash[Symbol, String],
91
+ status: SurgeAPI::Models::MessageDeliveredWebhookEvent::Data::status,
82
92
  attachments: ::Array[SurgeAPI::MessageDeliveredWebhookEvent::Data::Attachment],
83
93
  blast_id: String
84
94
  }
@@ -110,6 +120,16 @@ module SurgeAPI
110
120
  }
111
121
  end
112
122
 
123
+ type status = :delivered
124
+
125
+ module Status
126
+ extend SurgeAPI::Internal::Type::Enum
127
+
128
+ DELIVERED: :delivered
129
+
130
+ def self?.values: -> ::Array[SurgeAPI::Models::MessageDeliveredWebhookEvent::Data::status]
131
+ end
132
+
113
133
  type attachment =
114
134
  {
115
135
  id: String,
@@ -37,8 +37,9 @@ module SurgeAPI
37
37
  body: String?,
38
38
  conversation: SurgeAPI::MessageFailedWebhookEvent::Data::Conversation,
39
39
  failed_at: Time,
40
- failure_reason: String,
40
+ failure_reason: String?,
41
41
  metadata: ::Hash[Symbol, String],
42
+ status: SurgeAPI::Models::MessageFailedWebhookEvent::Data::status,
42
43
  attachments: ::Array[SurgeAPI::MessageFailedWebhookEvent::Data::Attachment],
43
44
  blast_id: String
44
45
  }
@@ -52,10 +53,12 @@ module SurgeAPI
52
53
 
53
54
  attr_accessor failed_at: Time
54
55
 
55
- attr_accessor failure_reason: String
56
+ attr_accessor failure_reason: String?
56
57
 
57
58
  attr_accessor metadata: ::Hash[Symbol, String]
58
59
 
60
+ attr_accessor status: SurgeAPI::Models::MessageFailedWebhookEvent::Data::status
61
+
59
62
  attr_reader attachments: ::Array[SurgeAPI::MessageFailedWebhookEvent::Data::Attachment]?
60
63
 
61
64
  def attachments=: (
@@ -71,8 +74,9 @@ module SurgeAPI
71
74
  body: String?,
72
75
  conversation: SurgeAPI::MessageFailedWebhookEvent::Data::Conversation,
73
76
  failed_at: Time,
74
- failure_reason: String,
77
+ failure_reason: String?,
75
78
  metadata: ::Hash[Symbol, String],
79
+ status: SurgeAPI::Models::MessageFailedWebhookEvent::Data::status,
76
80
  ?attachments: ::Array[SurgeAPI::MessageFailedWebhookEvent::Data::Attachment],
77
81
  ?blast_id: String
78
82
  ) -> void
@@ -82,8 +86,9 @@ module SurgeAPI
82
86
  body: String?,
83
87
  conversation: SurgeAPI::MessageFailedWebhookEvent::Data::Conversation,
84
88
  failed_at: Time,
85
- failure_reason: String,
89
+ failure_reason: String?,
86
90
  metadata: ::Hash[Symbol, String],
91
+ status: SurgeAPI::Models::MessageFailedWebhookEvent::Data::status,
87
92
  attachments: ::Array[SurgeAPI::MessageFailedWebhookEvent::Data::Attachment],
88
93
  blast_id: String
89
94
  }
@@ -115,6 +120,16 @@ module SurgeAPI
115
120
  }
116
121
  end
117
122
 
123
+ type status = :failed
124
+
125
+ module Status
126
+ extend SurgeAPI::Internal::Type::Enum
127
+
128
+ FAILED: :failed
129
+
130
+ def self?.values: -> ::Array[SurgeAPI::Models::MessageFailedWebhookEvent::Data::status]
131
+ end
132
+
118
133
  type attachment =
119
134
  {
120
135
  id: String,
@@ -36,8 +36,10 @@ module SurgeAPI
36
36
  id: String,
37
37
  body: String?,
38
38
  conversation: SurgeAPI::MessageReceivedWebhookEvent::Data::Conversation,
39
+ failure_reason: String?,
39
40
  metadata: ::Hash[Symbol, String],
40
41
  received_at: Time,
42
+ status: SurgeAPI::Models::MessageReceivedWebhookEvent::Data::status,
41
43
  attachments: ::Array[SurgeAPI::MessageReceivedWebhookEvent::Data::Attachment],
42
44
  blast_id: String
43
45
  }
@@ -49,10 +51,14 @@ module SurgeAPI
49
51
 
50
52
  attr_accessor conversation: SurgeAPI::MessageReceivedWebhookEvent::Data::Conversation
51
53
 
54
+ attr_accessor failure_reason: String?
55
+
52
56
  attr_accessor metadata: ::Hash[Symbol, String]
53
57
 
54
58
  attr_accessor received_at: Time
55
59
 
60
+ attr_accessor status: SurgeAPI::Models::MessageReceivedWebhookEvent::Data::status
61
+
56
62
  attr_reader attachments: ::Array[SurgeAPI::MessageReceivedWebhookEvent::Data::Attachment]?
57
63
 
58
64
  def attachments=: (
@@ -67,8 +73,10 @@ module SurgeAPI
67
73
  id: String,
68
74
  body: String?,
69
75
  conversation: SurgeAPI::MessageReceivedWebhookEvent::Data::Conversation,
76
+ failure_reason: String?,
70
77
  metadata: ::Hash[Symbol, String],
71
78
  received_at: Time,
79
+ status: SurgeAPI::Models::MessageReceivedWebhookEvent::Data::status,
72
80
  ?attachments: ::Array[SurgeAPI::MessageReceivedWebhookEvent::Data::Attachment],
73
81
  ?blast_id: String
74
82
  ) -> void
@@ -77,8 +85,10 @@ module SurgeAPI
77
85
  id: String,
78
86
  body: String?,
79
87
  conversation: SurgeAPI::MessageReceivedWebhookEvent::Data::Conversation,
88
+ failure_reason: String?,
80
89
  metadata: ::Hash[Symbol, String],
81
90
  received_at: Time,
91
+ status: SurgeAPI::Models::MessageReceivedWebhookEvent::Data::status,
82
92
  attachments: ::Array[SurgeAPI::MessageReceivedWebhookEvent::Data::Attachment],
83
93
  blast_id: String
84
94
  }
@@ -110,6 +120,16 @@ module SurgeAPI
110
120
  }
111
121
  end
112
122
 
123
+ type status = :received
124
+
125
+ module Status
126
+ extend SurgeAPI::Internal::Type::Enum
127
+
128
+ RECEIVED: :received
129
+
130
+ def self?.values: -> ::Array[SurgeAPI::Models::MessageReceivedWebhookEvent::Data::status]
131
+ end
132
+
113
133
  type attachment =
114
134
  {
115
135
  id: String,
@@ -36,8 +36,10 @@ module SurgeAPI
36
36
  id: String,
37
37
  body: String?,
38
38
  conversation: SurgeAPI::MessageSentWebhookEvent::Data::Conversation,
39
+ failure_reason: String?,
39
40
  metadata: ::Hash[Symbol, String],
40
41
  sent_at: Time,
42
+ status: SurgeAPI::Models::MessageSentWebhookEvent::Data::status,
41
43
  attachments: ::Array[SurgeAPI::MessageSentWebhookEvent::Data::Attachment],
42
44
  blast_id: String
43
45
  }
@@ -49,10 +51,14 @@ module SurgeAPI
49
51
 
50
52
  attr_accessor conversation: SurgeAPI::MessageSentWebhookEvent::Data::Conversation
51
53
 
54
+ attr_accessor failure_reason: String?
55
+
52
56
  attr_accessor metadata: ::Hash[Symbol, String]
53
57
 
54
58
  attr_accessor sent_at: Time
55
59
 
60
+ attr_accessor status: SurgeAPI::Models::MessageSentWebhookEvent::Data::status
61
+
56
62
  attr_reader attachments: ::Array[SurgeAPI::MessageSentWebhookEvent::Data::Attachment]?
57
63
 
58
64
  def attachments=: (
@@ -67,8 +73,10 @@ module SurgeAPI
67
73
  id: String,
68
74
  body: String?,
69
75
  conversation: SurgeAPI::MessageSentWebhookEvent::Data::Conversation,
76
+ failure_reason: String?,
70
77
  metadata: ::Hash[Symbol, String],
71
78
  sent_at: Time,
79
+ status: SurgeAPI::Models::MessageSentWebhookEvent::Data::status,
72
80
  ?attachments: ::Array[SurgeAPI::MessageSentWebhookEvent::Data::Attachment],
73
81
  ?blast_id: String
74
82
  ) -> void
@@ -77,8 +85,10 @@ module SurgeAPI
77
85
  id: String,
78
86
  body: String?,
79
87
  conversation: SurgeAPI::MessageSentWebhookEvent::Data::Conversation,
88
+ failure_reason: String?,
80
89
  metadata: ::Hash[Symbol, String],
81
90
  sent_at: Time,
91
+ status: SurgeAPI::Models::MessageSentWebhookEvent::Data::status,
82
92
  attachments: ::Array[SurgeAPI::MessageSentWebhookEvent::Data::Attachment],
83
93
  blast_id: String
84
94
  }
@@ -110,6 +120,16 @@ module SurgeAPI
110
120
  }
111
121
  end
112
122
 
123
+ type status = :sent
124
+
125
+ module Status
126
+ extend SurgeAPI::Internal::Type::Enum
127
+
128
+ SENT: :sent
129
+
130
+ def self?.values: -> ::Array[SurgeAPI::Models::MessageSentWebhookEvent::Data::status]
131
+ end
132
+
113
133
  type attachment =
114
134
  {
115
135
  id: String,