surge_api 0.1.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 (212) hide show
  1. checksums.yaml +7 -0
  2. data/.ignore +2 -0
  3. data/CHANGELOG.md +28 -0
  4. data/README.md +286 -0
  5. data/SECURITY.md +27 -0
  6. data/lib/surge_api/client.rb +106 -0
  7. data/lib/surge_api/errors.rb +228 -0
  8. data/lib/surge_api/file_part.rb +55 -0
  9. data/lib/surge_api/internal/transport/base_client.rb +567 -0
  10. data/lib/surge_api/internal/transport/pooled_net_requester.rb +201 -0
  11. data/lib/surge_api/internal/type/array_of.rb +168 -0
  12. data/lib/surge_api/internal/type/base_model.rb +531 -0
  13. data/lib/surge_api/internal/type/base_page.rb +55 -0
  14. data/lib/surge_api/internal/type/boolean.rb +77 -0
  15. data/lib/surge_api/internal/type/converter.rb +327 -0
  16. data/lib/surge_api/internal/type/enum.rb +131 -0
  17. data/lib/surge_api/internal/type/file_input.rb +108 -0
  18. data/lib/surge_api/internal/type/hash_of.rb +188 -0
  19. data/lib/surge_api/internal/type/request_parameters.rb +42 -0
  20. data/lib/surge_api/internal/type/union.rb +250 -0
  21. data/lib/surge_api/internal/type/unknown.rb +81 -0
  22. data/lib/surge_api/internal/util.rb +915 -0
  23. data/lib/surge_api/internal.rb +20 -0
  24. data/lib/surge_api/models/account.rb +60 -0
  25. data/lib/surge_api/models/account_create_params.rb +481 -0
  26. data/lib/surge_api/models/account_retrieve_status_params.rb +32 -0
  27. data/lib/surge_api/models/account_status.rb +104 -0
  28. data/lib/surge_api/models/account_update_params.rb +480 -0
  29. data/lib/surge_api/models/blast.rb +61 -0
  30. data/lib/surge_api/models/blast_create_params.rb +90 -0
  31. data/lib/surge_api/models/call_ended_webhook_event.rb +106 -0
  32. data/lib/surge_api/models/campaign.rb +208 -0
  33. data/lib/surge_api/models/campaign_approved_webhook_event.rb +74 -0
  34. data/lib/surge_api/models/campaign_create_params.rb +202 -0
  35. data/lib/surge_api/models/contact.rb +59 -0
  36. data/lib/surge_api/models/contact_create_params.rb +54 -0
  37. data/lib/surge_api/models/contact_retrieve_params.rb +14 -0
  38. data/lib/surge_api/models/contact_update_params.rb +54 -0
  39. data/lib/surge_api/models/conversation_created_webhook_event.rb +70 -0
  40. data/lib/surge_api/models/error.rb +34 -0
  41. data/lib/surge_api/models/message.rb +146 -0
  42. data/lib/surge_api/models/message_create_params.rb +153 -0
  43. data/lib/surge_api/models/message_delivered_webhook_event.rb +159 -0
  44. data/lib/surge_api/models/message_failed_webhook_event.rb +167 -0
  45. data/lib/surge_api/models/message_received_webhook_event.rb +159 -0
  46. data/lib/surge_api/models/message_sent_webhook_event.rb +159 -0
  47. data/lib/surge_api/models/organization.rb +419 -0
  48. data/lib/surge_api/models/phone_number.rb +48 -0
  49. data/lib/surge_api/models/phone_number_purchase_params.rb +65 -0
  50. data/lib/surge_api/models/unwrap_webhook_event.rb +26 -0
  51. data/lib/surge_api/models/user.rb +51 -0
  52. data/lib/surge_api/models/user_create_params.rb +46 -0
  53. data/lib/surge_api/models/user_create_token_params.rb +22 -0
  54. data/lib/surge_api/models/user_retrieve_params.rb +14 -0
  55. data/lib/surge_api/models/user_token_response.rb +19 -0
  56. data/lib/surge_api/models/user_update_params.rb +46 -0
  57. data/lib/surge_api/models/verification.rb +58 -0
  58. data/lib/surge_api/models/verification_check.rb +43 -0
  59. data/lib/surge_api/models/verification_check_params.rb +22 -0
  60. data/lib/surge_api/models/verification_create_params.rb +22 -0
  61. data/lib/surge_api/models/webhook_unwrap_params.rb +14 -0
  62. data/lib/surge_api/models.rb +117 -0
  63. data/lib/surge_api/request_options.rb +77 -0
  64. data/lib/surge_api/resources/accounts.rb +102 -0
  65. data/lib/surge_api/resources/blasts.rb +53 -0
  66. data/lib/surge_api/resources/campaigns.rb +57 -0
  67. data/lib/surge_api/resources/contacts.rb +99 -0
  68. data/lib/surge_api/resources/messages.rb +75 -0
  69. data/lib/surge_api/resources/phone_numbers.rb +48 -0
  70. data/lib/surge_api/resources/users.rb +119 -0
  71. data/lib/surge_api/resources/verifications.rb +60 -0
  72. data/lib/surge_api/resources/webhooks.rb +22 -0
  73. data/lib/surge_api/version.rb +5 -0
  74. data/lib/surge_api.rb +100 -0
  75. data/manifest.yaml +15 -0
  76. data/rbi/surge_api/client.rbi +73 -0
  77. data/rbi/surge_api/errors.rbi +205 -0
  78. data/rbi/surge_api/file_part.rbi +37 -0
  79. data/rbi/surge_api/internal/transport/base_client.rbi +292 -0
  80. data/rbi/surge_api/internal/transport/pooled_net_requester.rbi +79 -0
  81. data/rbi/surge_api/internal/type/array_of.rbi +104 -0
  82. data/rbi/surge_api/internal/type/base_model.rbi +302 -0
  83. data/rbi/surge_api/internal/type/base_page.rbi +42 -0
  84. data/rbi/surge_api/internal/type/boolean.rbi +58 -0
  85. data/rbi/surge_api/internal/type/converter.rbi +216 -0
  86. data/rbi/surge_api/internal/type/enum.rbi +82 -0
  87. data/rbi/surge_api/internal/type/file_input.rbi +59 -0
  88. data/rbi/surge_api/internal/type/hash_of.rbi +104 -0
  89. data/rbi/surge_api/internal/type/request_parameters.rbi +29 -0
  90. data/rbi/surge_api/internal/type/union.rbi +128 -0
  91. data/rbi/surge_api/internal/type/unknown.rbi +58 -0
  92. data/rbi/surge_api/internal/util.rbi +487 -0
  93. data/rbi/surge_api/internal.rbi +16 -0
  94. data/rbi/surge_api/models/account.rbi +83 -0
  95. data/rbi/surge_api/models/account_create_params.rbi +1104 -0
  96. data/rbi/surge_api/models/account_retrieve_status_params.rbi +96 -0
  97. data/rbi/surge_api/models/account_status.rbi +185 -0
  98. data/rbi/surge_api/models/account_update_params.rbi +1105 -0
  99. data/rbi/surge_api/models/blast.rbi +108 -0
  100. data/rbi/surge_api/models/blast_create_params.rbi +145 -0
  101. data/rbi/surge_api/models/call_ended_webhook_event.rbi +205 -0
  102. data/rbi/surge_api/models/campaign.rbi +331 -0
  103. data/rbi/surge_api/models/campaign_approved_webhook_event.rbi +149 -0
  104. data/rbi/surge_api/models/campaign_create_params.rbi +386 -0
  105. data/rbi/surge_api/models/contact.rbi +88 -0
  106. data/rbi/surge_api/models/contact_create_params.rbi +87 -0
  107. data/rbi/surge_api/models/contact_retrieve_params.rbi +27 -0
  108. data/rbi/surge_api/models/contact_update_params.rbi +87 -0
  109. data/rbi/surge_api/models/conversation_created_webhook_event.rbi +129 -0
  110. data/rbi/surge_api/models/error.rbi +51 -0
  111. data/rbi/surge_api/models/message.rbi +283 -0
  112. data/rbi/surge_api/models/message_create_params.rbi +281 -0
  113. data/rbi/surge_api/models/message_delivered_webhook_event.rbi +331 -0
  114. data/rbi/surge_api/models/message_failed_webhook_event.rbi +335 -0
  115. data/rbi/surge_api/models/message_received_webhook_event.rbi +331 -0
  116. data/rbi/surge_api/models/message_sent_webhook_event.rbi +322 -0
  117. data/rbi/surge_api/models/organization.rbi +649 -0
  118. data/rbi/surge_api/models/phone_number.rbi +72 -0
  119. data/rbi/surge_api/models/phone_number_purchase_params.rbi +122 -0
  120. data/rbi/surge_api/models/unwrap_webhook_event.rbi +26 -0
  121. data/rbi/surge_api/models/user.rbi +80 -0
  122. data/rbi/surge_api/models/user_create_params.rbi +76 -0
  123. data/rbi/surge_api/models/user_create_token_params.rbi +46 -0
  124. data/rbi/surge_api/models/user_retrieve_params.rbi +27 -0
  125. data/rbi/surge_api/models/user_token_response.rbi +31 -0
  126. data/rbi/surge_api/models/user_update_params.rbi +76 -0
  127. data/rbi/surge_api/models/verification.rbi +86 -0
  128. data/rbi/surge_api/models/verification_check.rbi +84 -0
  129. data/rbi/surge_api/models/verification_check_params.rbi +40 -0
  130. data/rbi/surge_api/models/verification_create_params.rbi +40 -0
  131. data/rbi/surge_api/models/webhook_unwrap_params.rbi +27 -0
  132. data/rbi/surge_api/models.rbi +80 -0
  133. data/rbi/surge_api/request_options.rbi +59 -0
  134. data/rbi/surge_api/resources/accounts.rbi +94 -0
  135. data/rbi/surge_api/resources/blasts.rbi +48 -0
  136. data/rbi/surge_api/resources/campaigns.rbi +115 -0
  137. data/rbi/surge_api/resources/contacts.rbi +85 -0
  138. data/rbi/surge_api/resources/messages.rbi +72 -0
  139. data/rbi/surge_api/resources/phone_numbers.rbi +43 -0
  140. data/rbi/surge_api/resources/users.rbi +96 -0
  141. data/rbi/surge_api/resources/verifications.rbi +43 -0
  142. data/rbi/surge_api/resources/webhooks.rbi +31 -0
  143. data/rbi/surge_api/version.rbi +5 -0
  144. data/sig/surge_api/client.rbs +42 -0
  145. data/sig/surge_api/errors.rbs +117 -0
  146. data/sig/surge_api/file_part.rbs +21 -0
  147. data/sig/surge_api/internal/transport/base_client.rbs +131 -0
  148. data/sig/surge_api/internal/transport/pooled_net_requester.rbs +45 -0
  149. data/sig/surge_api/internal/type/array_of.rbs +48 -0
  150. data/sig/surge_api/internal/type/base_model.rbs +102 -0
  151. data/sig/surge_api/internal/type/base_page.rbs +24 -0
  152. data/sig/surge_api/internal/type/boolean.rbs +26 -0
  153. data/sig/surge_api/internal/type/converter.rbs +79 -0
  154. data/sig/surge_api/internal/type/enum.rbs +32 -0
  155. data/sig/surge_api/internal/type/file_input.rbs +25 -0
  156. data/sig/surge_api/internal/type/hash_of.rbs +48 -0
  157. data/sig/surge_api/internal/type/request_parameters.rbs +17 -0
  158. data/sig/surge_api/internal/type/union.rbs +52 -0
  159. data/sig/surge_api/internal/type/unknown.rbs +26 -0
  160. data/sig/surge_api/internal/util.rbs +185 -0
  161. data/sig/surge_api/internal.rbs +9 -0
  162. data/sig/surge_api/models/account.rbs +40 -0
  163. data/sig/surge_api/models/account_create_params.rbs +433 -0
  164. data/sig/surge_api/models/account_retrieve_status_params.rbs +40 -0
  165. data/sig/surge_api/models/account_status.rbs +71 -0
  166. data/sig/surge_api/models/account_update_params.rbs +435 -0
  167. data/sig/surge_api/models/blast.rbs +64 -0
  168. data/sig/surge_api/models/blast_create_params.rbs +82 -0
  169. data/sig/surge_api/models/call_ended_webhook_event.rbs +99 -0
  170. data/sig/surge_api/models/campaign.rbs +122 -0
  171. data/sig/surge_api/models/campaign_approved_webhook_event.rbs +67 -0
  172. data/sig/surge_api/models/campaign_create_params.rbs +127 -0
  173. data/sig/surge_api/models/contact.rbs +53 -0
  174. data/sig/surge_api/models/contact_create_params.rbs +54 -0
  175. data/sig/surge_api/models/contact_retrieve_params.rbs +15 -0
  176. data/sig/surge_api/models/contact_update_params.rbs +54 -0
  177. data/sig/surge_api/models/conversation_created_webhook_event.rbs +62 -0
  178. data/sig/surge_api/models/error.rbs +27 -0
  179. data/sig/surge_api/models/message.rbs +138 -0
  180. data/sig/surge_api/models/message_create_params.rbs +140 -0
  181. data/sig/surge_api/models/message_delivered_webhook_event.rbs +143 -0
  182. data/sig/surge_api/models/message_failed_webhook_event.rbs +148 -0
  183. data/sig/surge_api/models/message_received_webhook_event.rbs +143 -0
  184. data/sig/surge_api/models/message_sent_webhook_event.rbs +143 -0
  185. data/sig/surge_api/models/organization.rbs +385 -0
  186. data/sig/surge_api/models/phone_number.rbs +37 -0
  187. data/sig/surge_api/models/phone_number_purchase_params.rbs +62 -0
  188. data/sig/surge_api/models/unwrap_webhook_event.rbs +18 -0
  189. data/sig/surge_api/models/user.rbs +48 -0
  190. data/sig/surge_api/models/user_create_params.rbs +47 -0
  191. data/sig/surge_api/models/user_create_token_params.rbs +26 -0
  192. data/sig/surge_api/models/user_retrieve_params.rbs +15 -0
  193. data/sig/surge_api/models/user_token_response.rbs +15 -0
  194. data/sig/surge_api/models/user_update_params.rbs +47 -0
  195. data/sig/surge_api/models/verification.rbs +48 -0
  196. data/sig/surge_api/models/verification_check.rbs +45 -0
  197. data/sig/surge_api/models/verification_check_params.rbs +23 -0
  198. data/sig/surge_api/models/verification_create_params.rbs +23 -0
  199. data/sig/surge_api/models/webhook_unwrap_params.rbs +15 -0
  200. data/sig/surge_api/models.rbs +77 -0
  201. data/sig/surge_api/request_options.rbs +34 -0
  202. data/sig/surge_api/resources/accounts.rbs +30 -0
  203. data/sig/surge_api/resources/blasts.rbs +19 -0
  204. data/sig/surge_api/resources/campaigns.rbs +21 -0
  205. data/sig/surge_api/resources/contacts.rbs +32 -0
  206. data/sig/surge_api/resources/messages.rbs +18 -0
  207. data/sig/surge_api/resources/phone_numbers.rbs +16 -0
  208. data/sig/surge_api/resources/users.rbs +36 -0
  209. data/sig/surge_api/resources/verifications.rbs +18 -0
  210. data/sig/surge_api/resources/webhooks.rbs +17 -0
  211. data/sig/surge_api/version.rbs +3 -0
  212. metadata +269 -0
@@ -0,0 +1,122 @@
1
+ module SurgeAPI
2
+ module Models
3
+ type campaign =
4
+ {
5
+ id: String,
6
+ consent_flow: String,
7
+ description: String,
8
+ includes: ::Array[SurgeAPI::Models::Campaign::include_],
9
+ message_samples: ::Array[String],
10
+ privacy_policy_url: String,
11
+ use_cases: ::Array[SurgeAPI::Models::Campaign::use_case],
12
+ volume: SurgeAPI::Models::Campaign::volume,
13
+ link_sample: String,
14
+ terms_and_conditions_url: String
15
+ }
16
+
17
+ class Campaign < SurgeAPI::Internal::Type::BaseModel
18
+ attr_accessor id: String
19
+
20
+ attr_accessor consent_flow: String
21
+
22
+ attr_accessor description: String
23
+
24
+ attr_accessor includes: ::Array[SurgeAPI::Models::Campaign::include_]
25
+
26
+ attr_accessor message_samples: ::Array[String]
27
+
28
+ attr_accessor privacy_policy_url: String
29
+
30
+ attr_accessor use_cases: ::Array[SurgeAPI::Models::Campaign::use_case]
31
+
32
+ attr_accessor volume: SurgeAPI::Models::Campaign::volume
33
+
34
+ attr_reader link_sample: String?
35
+
36
+ def link_sample=: (String) -> String
37
+
38
+ attr_reader terms_and_conditions_url: String?
39
+
40
+ def terms_and_conditions_url=: (String) -> String
41
+
42
+ def initialize: (
43
+ id: String,
44
+ consent_flow: String,
45
+ description: String,
46
+ includes: ::Array[SurgeAPI::Models::Campaign::include_],
47
+ message_samples: ::Array[String],
48
+ privacy_policy_url: String,
49
+ use_cases: ::Array[SurgeAPI::Models::Campaign::use_case],
50
+ volume: SurgeAPI::Models::Campaign::volume,
51
+ ?link_sample: String,
52
+ ?terms_and_conditions_url: String
53
+ ) -> void
54
+
55
+ def to_hash: -> {
56
+ id: String,
57
+ consent_flow: String,
58
+ description: String,
59
+ includes: ::Array[SurgeAPI::Models::Campaign::include_],
60
+ message_samples: ::Array[String],
61
+ privacy_policy_url: String,
62
+ use_cases: ::Array[SurgeAPI::Models::Campaign::use_case],
63
+ volume: SurgeAPI::Models::Campaign::volume,
64
+ link_sample: String,
65
+ terms_and_conditions_url: String
66
+ }
67
+
68
+ type include_ = :links | :phone_numbers | :age_gated | :direct_lending
69
+
70
+ module Include
71
+ extend SurgeAPI::Internal::Type::Enum
72
+
73
+ LINKS: :links
74
+ PHONE_NUMBERS: :phone_numbers
75
+ AGE_GATED: :age_gated
76
+ DIRECT_LENDING: :direct_lending
77
+
78
+ def self?.values: -> ::Array[SurgeAPI::Models::Campaign::include_]
79
+ end
80
+
81
+ type use_case =
82
+ :account_notification
83
+ | :customer_care
84
+ | :delivery_notification
85
+ | :fraud_alert
86
+ | :higher_education
87
+ | :marketing
88
+ | :polling_voting
89
+ | :public_service_announcement
90
+ | :security_alert
91
+ | :two_factor_authentication
92
+
93
+ module UseCase
94
+ extend SurgeAPI::Internal::Type::Enum
95
+
96
+ ACCOUNT_NOTIFICATION: :account_notification
97
+ CUSTOMER_CARE: :customer_care
98
+ DELIVERY_NOTIFICATION: :delivery_notification
99
+ FRAUD_ALERT: :fraud_alert
100
+ HIGHER_EDUCATION: :higher_education
101
+ MARKETING: :marketing
102
+ POLLING_VOTING: :polling_voting
103
+ PUBLIC_SERVICE_ANNOUNCEMENT: :public_service_announcement
104
+ SECURITY_ALERT: :security_alert
105
+ TWO_FACTOR_AUTHENTICATION: :two_factor_authentication
106
+
107
+ def self?.values: -> ::Array[SurgeAPI::Models::Campaign::use_case]
108
+ end
109
+
110
+ type volume = :high | :low
111
+
112
+ module Volume
113
+ extend SurgeAPI::Internal::Type::Enum
114
+
115
+ HIGH: :high
116
+ LOW: :low
117
+
118
+ def self?.values: -> ::Array[SurgeAPI::Models::Campaign::volume]
119
+ end
120
+ end
121
+ end
122
+ end
@@ -0,0 +1,67 @@
1
+ module SurgeAPI
2
+ module Models
3
+ type campaign_approved_webhook_event =
4
+ {
5
+ account_id: String,
6
+ data: SurgeAPI::CampaignApprovedWebhookEvent::Data,
7
+ timestamp: Time,
8
+ type: :"campaign.approved"
9
+ }
10
+
11
+ class CampaignApprovedWebhookEvent < SurgeAPI::Internal::Type::BaseModel
12
+ attr_accessor account_id: String
13
+
14
+ attr_accessor data: SurgeAPI::CampaignApprovedWebhookEvent::Data
15
+
16
+ attr_accessor timestamp: Time
17
+
18
+ attr_accessor type: :"campaign.approved"
19
+
20
+ def initialize: (
21
+ account_id: String,
22
+ data: SurgeAPI::CampaignApprovedWebhookEvent::Data,
23
+ timestamp: Time,
24
+ ?type: :"campaign.approved"
25
+ ) -> void
26
+
27
+ def to_hash: -> {
28
+ account_id: String,
29
+ data: SurgeAPI::CampaignApprovedWebhookEvent::Data,
30
+ timestamp: Time,
31
+ type: :"campaign.approved"
32
+ }
33
+
34
+ type data =
35
+ {
36
+ id: String,
37
+ status: SurgeAPI::Models::CampaignApprovedWebhookEvent::Data::status
38
+ }
39
+
40
+ class Data < SurgeAPI::Internal::Type::BaseModel
41
+ attr_accessor id: String
42
+
43
+ attr_accessor status: SurgeAPI::Models::CampaignApprovedWebhookEvent::Data::status
44
+
45
+ def initialize: (
46
+ id: String,
47
+ status: SurgeAPI::Models::CampaignApprovedWebhookEvent::Data::status
48
+ ) -> void
49
+
50
+ def to_hash: -> {
51
+ id: String,
52
+ status: SurgeAPI::Models::CampaignApprovedWebhookEvent::Data::status
53
+ }
54
+
55
+ type status = :active
56
+
57
+ module Status
58
+ extend SurgeAPI::Internal::Type::Enum
59
+
60
+ ACTIVE: :active
61
+
62
+ def self?.values: -> ::Array[SurgeAPI::Models::CampaignApprovedWebhookEvent::Data::status]
63
+ end
64
+ end
65
+ end
66
+ end
67
+ end
@@ -0,0 +1,127 @@
1
+ module SurgeAPI
2
+ module Models
3
+ type campaign_create_params =
4
+ {
5
+ consent_flow: String,
6
+ description: String,
7
+ message_samples: ::Array[String],
8
+ privacy_policy_url: String,
9
+ use_cases: ::Array[SurgeAPI::Models::CampaignCreateParams::use_case],
10
+ volume: SurgeAPI::Models::CampaignCreateParams::volume,
11
+ includes: ::Array[SurgeAPI::Models::CampaignCreateParams::include_],
12
+ link_sample: String,
13
+ terms_and_conditions_url: String
14
+ }
15
+ & SurgeAPI::Internal::Type::request_parameters
16
+
17
+ class CampaignCreateParams < SurgeAPI::Internal::Type::BaseModel
18
+ extend SurgeAPI::Internal::Type::RequestParameters::Converter
19
+ include SurgeAPI::Internal::Type::RequestParameters
20
+
21
+ attr_accessor consent_flow: String
22
+
23
+ attr_accessor description: String
24
+
25
+ attr_accessor message_samples: ::Array[String]
26
+
27
+ attr_accessor privacy_policy_url: String
28
+
29
+ attr_accessor use_cases: ::Array[SurgeAPI::Models::CampaignCreateParams::use_case]
30
+
31
+ attr_accessor volume: SurgeAPI::Models::CampaignCreateParams::volume
32
+
33
+ attr_reader includes: ::Array[SurgeAPI::Models::CampaignCreateParams::include_]?
34
+
35
+ def includes=: (
36
+ ::Array[SurgeAPI::Models::CampaignCreateParams::include_]
37
+ ) -> ::Array[SurgeAPI::Models::CampaignCreateParams::include_]
38
+
39
+ attr_reader link_sample: String?
40
+
41
+ def link_sample=: (String) -> String
42
+
43
+ attr_reader terms_and_conditions_url: String?
44
+
45
+ def terms_and_conditions_url=: (String) -> String
46
+
47
+ def initialize: (
48
+ consent_flow: String,
49
+ description: String,
50
+ message_samples: ::Array[String],
51
+ privacy_policy_url: String,
52
+ use_cases: ::Array[SurgeAPI::Models::CampaignCreateParams::use_case],
53
+ volume: SurgeAPI::Models::CampaignCreateParams::volume,
54
+ ?includes: ::Array[SurgeAPI::Models::CampaignCreateParams::include_],
55
+ ?link_sample: String,
56
+ ?terms_and_conditions_url: String,
57
+ ?request_options: SurgeAPI::request_opts
58
+ ) -> void
59
+
60
+ def to_hash: -> {
61
+ consent_flow: String,
62
+ description: String,
63
+ message_samples: ::Array[String],
64
+ privacy_policy_url: String,
65
+ use_cases: ::Array[SurgeAPI::Models::CampaignCreateParams::use_case],
66
+ volume: SurgeAPI::Models::CampaignCreateParams::volume,
67
+ includes: ::Array[SurgeAPI::Models::CampaignCreateParams::include_],
68
+ link_sample: String,
69
+ terms_and_conditions_url: String,
70
+ request_options: SurgeAPI::RequestOptions
71
+ }
72
+
73
+ type use_case =
74
+ :account_notification
75
+ | :customer_care
76
+ | :delivery_notification
77
+ | :fraud_alert
78
+ | :higher_education
79
+ | :marketing
80
+ | :polling_voting
81
+ | :public_service_announcement
82
+ | :security_alert
83
+ | :two_factor_authentication
84
+
85
+ module UseCase
86
+ extend SurgeAPI::Internal::Type::Enum
87
+
88
+ ACCOUNT_NOTIFICATION: :account_notification
89
+ CUSTOMER_CARE: :customer_care
90
+ DELIVERY_NOTIFICATION: :delivery_notification
91
+ FRAUD_ALERT: :fraud_alert
92
+ HIGHER_EDUCATION: :higher_education
93
+ MARKETING: :marketing
94
+ POLLING_VOTING: :polling_voting
95
+ PUBLIC_SERVICE_ANNOUNCEMENT: :public_service_announcement
96
+ SECURITY_ALERT: :security_alert
97
+ TWO_FACTOR_AUTHENTICATION: :two_factor_authentication
98
+
99
+ def self?.values: -> ::Array[SurgeAPI::Models::CampaignCreateParams::use_case]
100
+ end
101
+
102
+ type volume = :high | :low
103
+
104
+ module Volume
105
+ extend SurgeAPI::Internal::Type::Enum
106
+
107
+ HIGH: :high
108
+ LOW: :low
109
+
110
+ def self?.values: -> ::Array[SurgeAPI::Models::CampaignCreateParams::volume]
111
+ end
112
+
113
+ type include_ = :links | :phone_numbers | :age_gated | :direct_lending
114
+
115
+ module Include
116
+ extend SurgeAPI::Internal::Type::Enum
117
+
118
+ LINKS: :links
119
+ PHONE_NUMBERS: :phone_numbers
120
+ AGE_GATED: :age_gated
121
+ DIRECT_LENDING: :direct_lending
122
+
123
+ def self?.values: -> ::Array[SurgeAPI::Models::CampaignCreateParams::include_]
124
+ end
125
+ end
126
+ end
127
+ end
@@ -0,0 +1,53 @@
1
+ module SurgeAPI
2
+ module Models
3
+ type contact =
4
+ {
5
+ id: String,
6
+ phone_number: String,
7
+ email: String,
8
+ first_name: String,
9
+ last_name: String,
10
+ metadata: ::Hash[Symbol, String]
11
+ }
12
+
13
+ class Contact < SurgeAPI::Internal::Type::BaseModel
14
+ attr_accessor id: String
15
+
16
+ attr_accessor phone_number: String
17
+
18
+ attr_reader email: String?
19
+
20
+ def email=: (String) -> String
21
+
22
+ attr_reader first_name: String?
23
+
24
+ def first_name=: (String) -> String
25
+
26
+ attr_reader last_name: String?
27
+
28
+ def last_name=: (String) -> String
29
+
30
+ attr_reader metadata: ::Hash[Symbol, String]?
31
+
32
+ def metadata=: (::Hash[Symbol, String]) -> ::Hash[Symbol, String]
33
+
34
+ def initialize: (
35
+ id: String,
36
+ phone_number: String,
37
+ ?email: String,
38
+ ?first_name: String,
39
+ ?last_name: String,
40
+ ?metadata: ::Hash[Symbol, String]
41
+ ) -> void
42
+
43
+ def to_hash: -> {
44
+ id: String,
45
+ phone_number: String,
46
+ email: String,
47
+ first_name: String,
48
+ last_name: String,
49
+ metadata: ::Hash[Symbol, String]
50
+ }
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,54 @@
1
+ module SurgeAPI
2
+ module Models
3
+ type contact_create_params =
4
+ {
5
+ phone_number: String,
6
+ email: String,
7
+ first_name: String,
8
+ last_name: String,
9
+ metadata: ::Hash[Symbol, String]
10
+ }
11
+ & SurgeAPI::Internal::Type::request_parameters
12
+
13
+ class ContactCreateParams < SurgeAPI::Internal::Type::BaseModel
14
+ extend SurgeAPI::Internal::Type::RequestParameters::Converter
15
+ include SurgeAPI::Internal::Type::RequestParameters
16
+
17
+ attr_accessor phone_number: String
18
+
19
+ attr_reader email: String?
20
+
21
+ def email=: (String) -> String
22
+
23
+ attr_reader first_name: String?
24
+
25
+ def first_name=: (String) -> String
26
+
27
+ attr_reader last_name: String?
28
+
29
+ def last_name=: (String) -> String
30
+
31
+ attr_reader metadata: ::Hash[Symbol, String]?
32
+
33
+ def metadata=: (::Hash[Symbol, String]) -> ::Hash[Symbol, String]
34
+
35
+ def initialize: (
36
+ phone_number: String,
37
+ ?email: String,
38
+ ?first_name: String,
39
+ ?last_name: String,
40
+ ?metadata: ::Hash[Symbol, String],
41
+ ?request_options: SurgeAPI::request_opts
42
+ ) -> void
43
+
44
+ def to_hash: -> {
45
+ phone_number: String,
46
+ email: String,
47
+ first_name: String,
48
+ last_name: String,
49
+ metadata: ::Hash[Symbol, String],
50
+ request_options: SurgeAPI::RequestOptions
51
+ }
52
+ end
53
+ end
54
+ end
@@ -0,0 +1,15 @@
1
+ module SurgeAPI
2
+ module Models
3
+ type contact_retrieve_params =
4
+ { } & SurgeAPI::Internal::Type::request_parameters
5
+
6
+ class ContactRetrieveParams < SurgeAPI::Internal::Type::BaseModel
7
+ extend SurgeAPI::Internal::Type::RequestParameters::Converter
8
+ include SurgeAPI::Internal::Type::RequestParameters
9
+
10
+ def initialize: (?request_options: SurgeAPI::request_opts) -> void
11
+
12
+ def to_hash: -> { request_options: SurgeAPI::RequestOptions }
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,54 @@
1
+ module SurgeAPI
2
+ module Models
3
+ type contact_update_params =
4
+ {
5
+ phone_number: String,
6
+ email: String,
7
+ first_name: String,
8
+ last_name: String,
9
+ metadata: ::Hash[Symbol, String]
10
+ }
11
+ & SurgeAPI::Internal::Type::request_parameters
12
+
13
+ class ContactUpdateParams < SurgeAPI::Internal::Type::BaseModel
14
+ extend SurgeAPI::Internal::Type::RequestParameters::Converter
15
+ include SurgeAPI::Internal::Type::RequestParameters
16
+
17
+ attr_accessor phone_number: String
18
+
19
+ attr_reader email: String?
20
+
21
+ def email=: (String) -> String
22
+
23
+ attr_reader first_name: String?
24
+
25
+ def first_name=: (String) -> String
26
+
27
+ attr_reader last_name: String?
28
+
29
+ def last_name=: (String) -> String
30
+
31
+ attr_reader metadata: ::Hash[Symbol, String]?
32
+
33
+ def metadata=: (::Hash[Symbol, String]) -> ::Hash[Symbol, String]
34
+
35
+ def initialize: (
36
+ phone_number: String,
37
+ ?email: String,
38
+ ?first_name: String,
39
+ ?last_name: String,
40
+ ?metadata: ::Hash[Symbol, String],
41
+ ?request_options: SurgeAPI::request_opts
42
+ ) -> void
43
+
44
+ def to_hash: -> {
45
+ phone_number: String,
46
+ email: String,
47
+ first_name: String,
48
+ last_name: String,
49
+ metadata: ::Hash[Symbol, String],
50
+ request_options: SurgeAPI::RequestOptions
51
+ }
52
+ end
53
+ end
54
+ end
@@ -0,0 +1,62 @@
1
+ module SurgeAPI
2
+ module Models
3
+ type conversation_created_webhook_event =
4
+ {
5
+ account_id: String,
6
+ data: SurgeAPI::ConversationCreatedWebhookEvent::Data,
7
+ timestamp: Time,
8
+ type: :"conversation.created"
9
+ }
10
+
11
+ class ConversationCreatedWebhookEvent < SurgeAPI::Internal::Type::BaseModel
12
+ attr_accessor account_id: String
13
+
14
+ attr_accessor data: SurgeAPI::ConversationCreatedWebhookEvent::Data
15
+
16
+ attr_accessor timestamp: Time
17
+
18
+ attr_accessor type: :"conversation.created"
19
+
20
+ def initialize: (
21
+ account_id: String,
22
+ data: SurgeAPI::ConversationCreatedWebhookEvent::Data,
23
+ timestamp: Time,
24
+ ?type: :"conversation.created"
25
+ ) -> void
26
+
27
+ def to_hash: -> {
28
+ account_id: String,
29
+ data: SurgeAPI::ConversationCreatedWebhookEvent::Data,
30
+ timestamp: Time,
31
+ type: :"conversation.created"
32
+ }
33
+
34
+ type data =
35
+ {
36
+ id: String,
37
+ contact: SurgeAPI::Contact,
38
+ phone_number: SurgeAPI::PhoneNumber
39
+ }
40
+
41
+ class Data < SurgeAPI::Internal::Type::BaseModel
42
+ attr_accessor id: String
43
+
44
+ attr_accessor contact: SurgeAPI::Contact
45
+
46
+ attr_accessor phone_number: SurgeAPI::PhoneNumber
47
+
48
+ def initialize: (
49
+ id: String,
50
+ contact: SurgeAPI::Contact,
51
+ phone_number: SurgeAPI::PhoneNumber
52
+ ) -> void
53
+
54
+ def to_hash: -> {
55
+ id: String,
56
+ contact: SurgeAPI::Contact,
57
+ phone_number: SurgeAPI::PhoneNumber
58
+ }
59
+ end
60
+ end
61
+ end
62
+ end
@@ -0,0 +1,27 @@
1
+ module SurgeAPI
2
+ module Models
3
+ type error = { message: String, type: String, detail: ::Hash[Symbol, top] }
4
+
5
+ class Error < SurgeAPI::Internal::Type::BaseModel
6
+ attr_accessor message: String
7
+
8
+ attr_accessor type: String
9
+
10
+ attr_reader detail: ::Hash[Symbol, top]?
11
+
12
+ def detail=: (::Hash[Symbol, top]) -> ::Hash[Symbol, top]
13
+
14
+ def initialize: (
15
+ message: String,
16
+ type: String,
17
+ ?detail: ::Hash[Symbol, top]
18
+ ) -> void
19
+
20
+ def to_hash: -> {
21
+ message: String,
22
+ type: String,
23
+ detail: ::Hash[Symbol, top]
24
+ }
25
+ end
26
+ end
27
+ end