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
@@ -5,6 +5,7 @@ module SurgeAPI
5
5
  id: String,
6
6
  campaign: SurgeAPI::PhoneNumber::Campaign?,
7
7
  campaign_id: String?,
8
+ metadata: ::Hash[Symbol, String],
8
9
  name: String?,
9
10
  number: String,
10
11
  type: SurgeAPI::Models::PhoneNumber::type_
@@ -17,6 +18,8 @@ module SurgeAPI
17
18
 
18
19
  attr_accessor campaign_id: String?
19
20
 
21
+ attr_accessor metadata: ::Hash[Symbol, String]
22
+
20
23
  attr_accessor name: String?
21
24
 
22
25
  attr_accessor number: String
@@ -27,6 +30,7 @@ module SurgeAPI
27
30
  id: String,
28
31
  campaign: SurgeAPI::PhoneNumber::Campaign?,
29
32
  campaign_id: String?,
33
+ metadata: ::Hash[Symbol, String],
30
34
  name: String?,
31
35
  number: String,
32
36
  type: SurgeAPI::Models::PhoneNumber::type_
@@ -36,6 +40,7 @@ module SurgeAPI
36
40
  id: String,
37
41
  campaign: SurgeAPI::PhoneNumber::Campaign?,
38
42
  campaign_id: String?,
43
+ metadata: ::Hash[Symbol, String],
39
44
  name: String?,
40
45
  number: String,
41
46
  type: SurgeAPI::Models::PhoneNumber::type_
@@ -36,6 +36,7 @@ module SurgeAPI
36
36
  id: String,
37
37
  campaign: SurgeAPI::PhoneNumberAttachedToCampaignWebhookEvent::Data::Campaign?,
38
38
  campaign_id: String,
39
+ metadata: ::Hash[Symbol, String],
39
40
  name: String?,
40
41
  number: String,
41
42
  type: SurgeAPI::Models::PhoneNumberAttachedToCampaignWebhookEvent::Data::type_
@@ -48,6 +49,8 @@ module SurgeAPI
48
49
 
49
50
  attr_accessor campaign_id: String
50
51
 
52
+ attr_accessor metadata: ::Hash[Symbol, String]
53
+
51
54
  attr_accessor name: String?
52
55
 
53
56
  attr_accessor number: String
@@ -58,6 +61,7 @@ module SurgeAPI
58
61
  id: String,
59
62
  campaign: SurgeAPI::PhoneNumberAttachedToCampaignWebhookEvent::Data::Campaign?,
60
63
  campaign_id: String,
64
+ metadata: ::Hash[Symbol, String],
61
65
  name: String?,
62
66
  number: String,
63
67
  type: SurgeAPI::Models::PhoneNumberAttachedToCampaignWebhookEvent::Data::type_
@@ -67,6 +71,7 @@ module SurgeAPI
67
71
  id: String,
68
72
  campaign: SurgeAPI::PhoneNumberAttachedToCampaignWebhookEvent::Data::Campaign?,
69
73
  campaign_id: String,
74
+ metadata: ::Hash[Symbol, String],
70
75
  name: String?,
71
76
  number: String,
72
77
  type: SurgeAPI::Models::PhoneNumberAttachedToCampaignWebhookEvent::Data::type_
@@ -0,0 +1,130 @@
1
+ module SurgeAPI
2
+ module Models
3
+ type phone_number_imported_webhook_event =
4
+ {
5
+ account_id: String,
6
+ data: SurgeAPI::PhoneNumberImportedWebhookEvent::Data,
7
+ timestamp: Time,
8
+ type: :"phone_number.imported"
9
+ }
10
+
11
+ class PhoneNumberImportedWebhookEvent < SurgeAPI::Internal::Type::BaseModel
12
+ attr_accessor account_id: String
13
+
14
+ attr_accessor data: SurgeAPI::PhoneNumberImportedWebhookEvent::Data
15
+
16
+ attr_accessor timestamp: Time
17
+
18
+ attr_accessor type: :"phone_number.imported"
19
+
20
+ def initialize: (
21
+ account_id: String,
22
+ data: SurgeAPI::PhoneNumberImportedWebhookEvent::Data,
23
+ timestamp: Time,
24
+ ?type: :"phone_number.imported"
25
+ ) -> void
26
+
27
+ def to_hash: -> {
28
+ account_id: String,
29
+ data: SurgeAPI::PhoneNumberImportedWebhookEvent::Data,
30
+ timestamp: Time,
31
+ type: :"phone_number.imported"
32
+ }
33
+
34
+ type data =
35
+ {
36
+ id: String,
37
+ campaign: SurgeAPI::PhoneNumberImportedWebhookEvent::Data::Campaign?,
38
+ campaign_id: String?,
39
+ metadata: ::Hash[Symbol, String],
40
+ name: String?,
41
+ number: String,
42
+ type: SurgeAPI::Models::PhoneNumberImportedWebhookEvent::Data::type_
43
+ }
44
+
45
+ class Data < SurgeAPI::Internal::Type::BaseModel
46
+ attr_accessor id: String
47
+
48
+ attr_accessor campaign: SurgeAPI::PhoneNumberImportedWebhookEvent::Data::Campaign?
49
+
50
+ attr_accessor campaign_id: String?
51
+
52
+ attr_accessor metadata: ::Hash[Symbol, String]
53
+
54
+ attr_accessor name: String?
55
+
56
+ attr_accessor number: String
57
+
58
+ attr_accessor type: SurgeAPI::Models::PhoneNumberImportedWebhookEvent::Data::type_
59
+
60
+ def initialize: (
61
+ id: String,
62
+ campaign: SurgeAPI::PhoneNumberImportedWebhookEvent::Data::Campaign?,
63
+ campaign_id: String?,
64
+ metadata: ::Hash[Symbol, String],
65
+ name: String?,
66
+ number: String,
67
+ type: SurgeAPI::Models::PhoneNumberImportedWebhookEvent::Data::type_
68
+ ) -> void
69
+
70
+ def to_hash: -> {
71
+ id: String,
72
+ campaign: SurgeAPI::PhoneNumberImportedWebhookEvent::Data::Campaign?,
73
+ campaign_id: String?,
74
+ metadata: ::Hash[Symbol, String],
75
+ name: String?,
76
+ number: String,
77
+ type: SurgeAPI::Models::PhoneNumberImportedWebhookEvent::Data::type_
78
+ }
79
+
80
+ type campaign =
81
+ {
82
+ id: String,
83
+ attachment_status: SurgeAPI::Models::PhoneNumberImportedWebhookEvent::Data::Campaign::attachment_status
84
+ }
85
+
86
+ class Campaign < SurgeAPI::Internal::Type::BaseModel
87
+ attr_accessor id: String
88
+
89
+ attr_accessor attachment_status: SurgeAPI::Models::PhoneNumberImportedWebhookEvent::Data::Campaign::attachment_status
90
+
91
+ def initialize: (
92
+ id: String,
93
+ attachment_status: SurgeAPI::Models::PhoneNumberImportedWebhookEvent::Data::Campaign::attachment_status
94
+ ) -> void
95
+
96
+ def to_hash: -> {
97
+ id: String,
98
+ attachment_status: SurgeAPI::Models::PhoneNumberImportedWebhookEvent::Data::Campaign::attachment_status
99
+ }
100
+
101
+ type attachment_status =
102
+ :attached | :attachment_pending | :detached | :detachment_pending
103
+
104
+ module AttachmentStatus
105
+ extend SurgeAPI::Internal::Type::Enum
106
+
107
+ ATTACHED: :attached
108
+ ATTACHMENT_PENDING: :attachment_pending
109
+ DETACHED: :detached
110
+ DETACHMENT_PENDING: :detachment_pending
111
+
112
+ def self?.values: -> ::Array[SurgeAPI::Models::PhoneNumberImportedWebhookEvent::Data::Campaign::attachment_status]
113
+ end
114
+ end
115
+
116
+ type type_ = :local | :short_code | :toll_free
117
+
118
+ module Type
119
+ extend SurgeAPI::Internal::Type::Enum
120
+
121
+ LOCAL: :local
122
+ SHORT_CODE: :short_code
123
+ TOLL_FREE: :toll_free
124
+
125
+ def self?.values: -> ::Array[SurgeAPI::Models::PhoneNumberImportedWebhookEvent::Data::type_]
126
+ end
127
+ end
128
+ end
129
+ end
130
+ end
@@ -6,6 +6,7 @@ module SurgeAPI
6
6
  area_code: String,
7
7
  latitude: Float,
8
8
  longitude: Float,
9
+ metadata: ::Hash[Symbol, String],
9
10
  name: String,
10
11
  phone_number: String,
11
12
  type: SurgeAPI::Models::PhoneNumberPurchaseParams::type_
@@ -30,6 +31,10 @@ module SurgeAPI
30
31
 
31
32
  def longitude=: (Float) -> Float
32
33
 
34
+ attr_reader metadata: ::Hash[Symbol, String]?
35
+
36
+ def metadata=: (::Hash[Symbol, String]) -> ::Hash[Symbol, String]
37
+
33
38
  attr_reader name: String?
34
39
 
35
40
  def name=: (String) -> String
@@ -49,6 +54,7 @@ module SurgeAPI
49
54
  ?area_code: String,
50
55
  ?latitude: Float,
51
56
  ?longitude: Float,
57
+ ?metadata: ::Hash[Symbol, String],
52
58
  ?name: String,
53
59
  ?phone_number: String,
54
60
  ?type: SurgeAPI::Models::PhoneNumberPurchaseParams::type_,
@@ -60,6 +66,7 @@ module SurgeAPI
60
66
  area_code: String,
61
67
  latitude: Float,
62
68
  longitude: Float,
69
+ metadata: ::Hash[Symbol, String],
63
70
  name: String,
64
71
  phone_number: String,
65
72
  type: SurgeAPI::Models::PhoneNumberPurchaseParams::type_,
@@ -1,7 +1,12 @@
1
1
  module SurgeAPI
2
2
  module Models
3
3
  type phone_number_update_params =
4
- { id: String, campaign_id: String, name: String }
4
+ {
5
+ id: String,
6
+ campaign_id: String,
7
+ metadata: ::Hash[Symbol, String],
8
+ name: String
9
+ }
5
10
  & SurgeAPI::Internal::Type::request_parameters
6
11
 
7
12
  class PhoneNumberUpdateParams < SurgeAPI::Internal::Type::BaseModel
@@ -14,6 +19,10 @@ module SurgeAPI
14
19
 
15
20
  def campaign_id=: (String) -> String
16
21
 
22
+ attr_reader metadata: ::Hash[Symbol, String]?
23
+
24
+ def metadata=: (::Hash[Symbol, String]) -> ::Hash[Symbol, String]
25
+
17
26
  attr_reader name: String?
18
27
 
19
28
  def name=: (String) -> String
@@ -21,6 +30,7 @@ module SurgeAPI
21
30
  def initialize: (
22
31
  id: String,
23
32
  ?campaign_id: String,
33
+ ?metadata: ::Hash[Symbol, String],
24
34
  ?name: String,
25
35
  ?request_options: SurgeAPI::request_opts
26
36
  ) -> void
@@ -28,6 +38,7 @@ module SurgeAPI
28
38
  def to_hash: -> {
29
39
  id: String,
30
40
  campaign_id: String,
41
+ metadata: ::Hash[Symbol, String],
31
42
  name: String,
32
43
  request_options: SurgeAPI::RequestOptions
33
44
  }
@@ -0,0 +1,126 @@
1
+ module SurgeAPI
2
+ module Models
3
+ type toll_free_campaign =
4
+ {
5
+ id: String,
6
+ consent_flows: ::Array[SurgeAPI::Models::toll_free_campaign_consent_flow],
7
+ description: String?,
8
+ includes: ::Array[SurgeAPI::Models::TollFreeCampaign::include_],
9
+ message_samples: ::Array[String],
10
+ phone_number_id: String,
11
+ privacy_policy_url: String?,
12
+ status: SurgeAPI::Models::TollFreeCampaign::status,
13
+ terms_and_conditions_url: String?,
14
+ use_cases: ::Array[SurgeAPI::Models::TollFreeCampaign::use_case]
15
+ }
16
+
17
+ class TollFreeCampaign < SurgeAPI::Internal::Type::BaseModel
18
+ attr_accessor id: String
19
+
20
+ attr_accessor consent_flows: ::Array[SurgeAPI::Models::toll_free_campaign_consent_flow]
21
+
22
+ attr_accessor description: String?
23
+
24
+ attr_accessor includes: ::Array[SurgeAPI::Models::TollFreeCampaign::include_]
25
+
26
+ attr_accessor message_samples: ::Array[String]
27
+
28
+ attr_accessor phone_number_id: String
29
+
30
+ attr_accessor privacy_policy_url: String?
31
+
32
+ attr_accessor status: SurgeAPI::Models::TollFreeCampaign::status
33
+
34
+ attr_accessor terms_and_conditions_url: String?
35
+
36
+ attr_accessor use_cases: ::Array[SurgeAPI::Models::TollFreeCampaign::use_case]
37
+
38
+ def initialize: (
39
+ id: String,
40
+ consent_flows: ::Array[SurgeAPI::Models::toll_free_campaign_consent_flow],
41
+ description: String?,
42
+ includes: ::Array[SurgeAPI::Models::TollFreeCampaign::include_],
43
+ message_samples: ::Array[String],
44
+ phone_number_id: String,
45
+ privacy_policy_url: String?,
46
+ status: SurgeAPI::Models::TollFreeCampaign::status,
47
+ terms_and_conditions_url: String?,
48
+ use_cases: ::Array[SurgeAPI::Models::TollFreeCampaign::use_case]
49
+ ) -> void
50
+
51
+ def to_hash: -> {
52
+ id: String,
53
+ consent_flows: ::Array[SurgeAPI::Models::toll_free_campaign_consent_flow],
54
+ description: String?,
55
+ includes: ::Array[SurgeAPI::Models::TollFreeCampaign::include_],
56
+ message_samples: ::Array[String],
57
+ phone_number_id: String,
58
+ privacy_policy_url: String?,
59
+ status: SurgeAPI::Models::TollFreeCampaign::status,
60
+ terms_and_conditions_url: String?,
61
+ use_cases: ::Array[SurgeAPI::Models::TollFreeCampaign::use_case]
62
+ }
63
+
64
+ type include_ = :age_gated
65
+
66
+ module Include
67
+ extend SurgeAPI::Internal::Type::Enum
68
+
69
+ AGE_GATED: :age_gated
70
+
71
+ def self?.values: -> ::Array[SurgeAPI::Models::TollFreeCampaign::include_]
72
+ end
73
+
74
+ type status = :active | :canceled | :created | :in_review | :rejected
75
+
76
+ module Status
77
+ extend SurgeAPI::Internal::Type::Enum
78
+
79
+ ACTIVE: :active
80
+ CANCELED: :canceled
81
+ CREATED: :created
82
+ IN_REVIEW: :in_review
83
+ REJECTED: :rejected
84
+
85
+ def self?.values: -> ::Array[SurgeAPI::Models::TollFreeCampaign::status]
86
+ end
87
+
88
+ type use_case =
89
+ :two_factor_authentication
90
+ | :account_notification
91
+ | :customer_care
92
+ | :charity
93
+ | :delivery_notification
94
+ | :fraud_alert
95
+ | :event
96
+ | :higher_education
97
+ | :k12_education
98
+ | :marketing
99
+ | :polling_voting
100
+ | :political
101
+ | :public_service_announcement
102
+ | :security_alert
103
+
104
+ module UseCase
105
+ extend SurgeAPI::Internal::Type::Enum
106
+
107
+ TWO_FACTOR_AUTHENTICATION: :two_factor_authentication
108
+ ACCOUNT_NOTIFICATION: :account_notification
109
+ CUSTOMER_CARE: :customer_care
110
+ CHARITY: :charity
111
+ DELIVERY_NOTIFICATION: :delivery_notification
112
+ FRAUD_ALERT: :fraud_alert
113
+ EVENT: :event
114
+ HIGHER_EDUCATION: :higher_education
115
+ K12_EDUCATION: :k12_education
116
+ MARKETING: :marketing
117
+ POLLING_VOTING: :polling_voting
118
+ POLITICAL: :political
119
+ PUBLIC_SERVICE_ANNOUNCEMENT: :public_service_announcement
120
+ SECURITY_ALERT: :security_alert
121
+
122
+ def self?.values: -> ::Array[SurgeAPI::Models::TollFreeCampaign::use_case]
123
+ end
124
+ end
125
+ end
126
+ end
@@ -0,0 +1,207 @@
1
+ module SurgeAPI
2
+ module Models
3
+ type toll_free_campaign_consent_flow =
4
+ SurgeAPI::TollFreeCampaignConsentFlow::UnionMember0
5
+ | SurgeAPI::TollFreeCampaignConsentFlow::UnionMember1
6
+ | SurgeAPI::TollFreeCampaignConsentFlow::UnionMember2
7
+ | SurgeAPI::TollFreeCampaignConsentFlow::UnionMember3
8
+ | SurgeAPI::TollFreeCampaignConsentFlow::Type
9
+
10
+ module TollFreeCampaignConsentFlow
11
+ extend SurgeAPI::Internal::Type::Union
12
+
13
+ type union_member0 =
14
+ {
15
+ script: String,
16
+ type: SurgeAPI::Models::TollFreeCampaignConsentFlow::UnionMember0::type_
17
+ }
18
+
19
+ class UnionMember0 < SurgeAPI::Internal::Type::BaseModel
20
+ attr_accessor script: String
21
+
22
+ attr_accessor type: SurgeAPI::Models::TollFreeCampaignConsentFlow::UnionMember0::type_
23
+
24
+ def initialize: (
25
+ script: String,
26
+ type: SurgeAPI::Models::TollFreeCampaignConsentFlow::UnionMember0::type_
27
+ ) -> void
28
+
29
+ def to_hash: -> {
30
+ script: String,
31
+ type: SurgeAPI::Models::TollFreeCampaignConsentFlow::UnionMember0::type_
32
+ }
33
+
34
+ type type_ = :verbal
35
+
36
+ module Type
37
+ extend SurgeAPI::Internal::Type::Enum
38
+
39
+ VERBAL: :verbal
40
+
41
+ def self?.values: -> ::Array[SurgeAPI::Models::TollFreeCampaignConsentFlow::UnionMember0::type_]
42
+ end
43
+ end
44
+
45
+ type union_member1 =
46
+ {
47
+ form_url: String,
48
+ type: SurgeAPI::Models::TollFreeCampaignConsentFlow::UnionMember1::type_
49
+ }
50
+
51
+ class UnionMember1 < SurgeAPI::Internal::Type::BaseModel
52
+ attr_accessor form_url: String
53
+
54
+ attr_accessor type: SurgeAPI::Models::TollFreeCampaignConsentFlow::UnionMember1::type_
55
+
56
+ def initialize: (
57
+ form_url: String,
58
+ type: SurgeAPI::Models::TollFreeCampaignConsentFlow::UnionMember1::type_
59
+ ) -> void
60
+
61
+ def to_hash: -> {
62
+ form_url: String,
63
+ type: SurgeAPI::Models::TollFreeCampaignConsentFlow::UnionMember1::type_
64
+ }
65
+
66
+ type type_ = :web_form
67
+
68
+ module Type
69
+ extend SurgeAPI::Internal::Type::Enum
70
+
71
+ WEB_FORM: :web_form
72
+
73
+ def self?.values: -> ::Array[SurgeAPI::Models::TollFreeCampaignConsentFlow::UnionMember1::type_]
74
+ end
75
+ end
76
+
77
+ type union_member2 =
78
+ {
79
+ screenshot: SurgeAPI::TollFreeCampaignConsentFlow::UnionMember2::Screenshot,
80
+ type: SurgeAPI::Models::TollFreeCampaignConsentFlow::UnionMember2::type_
81
+ }
82
+
83
+ class UnionMember2 < SurgeAPI::Internal::Type::BaseModel
84
+ attr_accessor screenshot: SurgeAPI::TollFreeCampaignConsentFlow::UnionMember2::Screenshot
85
+
86
+ attr_accessor type: SurgeAPI::Models::TollFreeCampaignConsentFlow::UnionMember2::type_
87
+
88
+ def initialize: (
89
+ screenshot: SurgeAPI::TollFreeCampaignConsentFlow::UnionMember2::Screenshot,
90
+ type: SurgeAPI::Models::TollFreeCampaignConsentFlow::UnionMember2::type_
91
+ ) -> void
92
+
93
+ def to_hash: -> {
94
+ screenshot: SurgeAPI::TollFreeCampaignConsentFlow::UnionMember2::Screenshot,
95
+ type: SurgeAPI::Models::TollFreeCampaignConsentFlow::UnionMember2::type_
96
+ }
97
+
98
+ type screenshot =
99
+ {
100
+ reason: SurgeAPI::Models::TollFreeCampaignConsentFlow::UnionMember2::Screenshot::reason,
101
+ reason_other: String
102
+ }
103
+
104
+ class Screenshot < SurgeAPI::Internal::Type::BaseModel
105
+ attr_accessor reason: SurgeAPI::Models::TollFreeCampaignConsentFlow::UnionMember2::Screenshot::reason
106
+
107
+ attr_reader reason_other: String?
108
+
109
+ def reason_other=: (String) -> String
110
+
111
+ def initialize: (
112
+ reason: SurgeAPI::Models::TollFreeCampaignConsentFlow::UnionMember2::Screenshot::reason,
113
+ ?reason_other: String
114
+ ) -> void
115
+
116
+ def to_hash: -> {
117
+ reason: SurgeAPI::Models::TollFreeCampaignConsentFlow::UnionMember2::Screenshot::reason,
118
+ reason_other: String
119
+ }
120
+
121
+ type reason = :behind_login | :under_construction | :other
122
+
123
+ module Reason
124
+ extend SurgeAPI::Internal::Type::Enum
125
+
126
+ BEHIND_LOGIN: :behind_login
127
+ UNDER_CONSTRUCTION: :under_construction
128
+ OTHER: :other
129
+
130
+ def self?.values: -> ::Array[SurgeAPI::Models::TollFreeCampaignConsentFlow::UnionMember2::Screenshot::reason]
131
+ end
132
+ end
133
+
134
+ type type_ = :web_form
135
+
136
+ module Type
137
+ extend SurgeAPI::Internal::Type::Enum
138
+
139
+ WEB_FORM: :web_form
140
+
141
+ def self?.values: -> ::Array[SurgeAPI::Models::TollFreeCampaignConsentFlow::UnionMember2::type_]
142
+ end
143
+ end
144
+
145
+ type union_member3 =
146
+ {
147
+ type: SurgeAPI::Models::TollFreeCampaignConsentFlow::UnionMember3::type_,
148
+ keywords: ::Array[String]
149
+ }
150
+
151
+ class UnionMember3 < SurgeAPI::Internal::Type::BaseModel
152
+ attr_accessor type: SurgeAPI::Models::TollFreeCampaignConsentFlow::UnionMember3::type_
153
+
154
+ attr_reader keywords: ::Array[String]?
155
+
156
+ def keywords=: (::Array[String]) -> ::Array[String]
157
+
158
+ def initialize: (
159
+ type: SurgeAPI::Models::TollFreeCampaignConsentFlow::UnionMember3::type_,
160
+ ?keywords: ::Array[String]
161
+ ) -> void
162
+
163
+ def to_hash: -> {
164
+ type: SurgeAPI::Models::TollFreeCampaignConsentFlow::UnionMember3::type_,
165
+ keywords: ::Array[String]
166
+ }
167
+
168
+ type type_ = :text
169
+
170
+ module Type
171
+ extend SurgeAPI::Internal::Type::Enum
172
+
173
+ TEXT: :text
174
+
175
+ def self?.values: -> ::Array[SurgeAPI::Models::TollFreeCampaignConsentFlow::UnionMember3::type_]
176
+ end
177
+ end
178
+
179
+ type type_ =
180
+ { type: SurgeAPI::Models::TollFreeCampaignConsentFlow::Type::type_ }
181
+
182
+ class Type < SurgeAPI::Internal::Type::BaseModel
183
+ attr_accessor type: SurgeAPI::Models::TollFreeCampaignConsentFlow::Type::type_
184
+
185
+ def initialize: (
186
+ type: SurgeAPI::Models::TollFreeCampaignConsentFlow::Type::type_
187
+ ) -> void
188
+
189
+ def to_hash: -> {
190
+ type: SurgeAPI::Models::TollFreeCampaignConsentFlow::Type::type_
191
+ }
192
+
193
+ type type_ = :paper_form
194
+
195
+ module Type
196
+ extend SurgeAPI::Internal::Type::Enum
197
+
198
+ PAPER_FORM: :paper_form
199
+
200
+ def self?.values: -> ::Array[SurgeAPI::Models::TollFreeCampaignConsentFlow::Type::type_]
201
+ end
202
+ end
203
+
204
+ def self?.variants: -> ::Array[SurgeAPI::Models::toll_free_campaign_consent_flow]
205
+ end
206
+ end
207
+ end
@@ -0,0 +1,25 @@
1
+ module SurgeAPI
2
+ module Models
3
+ type toll_free_campaign_create_params =
4
+ { account_id: String } & SurgeAPI::Internal::Type::request_parameters
5
+
6
+ class TollFreeCampaignCreateParams < SurgeAPI::Models::TollFreeCampaignParams
7
+ extend SurgeAPI::Internal::Type::RequestParameters::Converter
8
+ include SurgeAPI::Internal::Type::RequestParameters
9
+
10
+ def account_id: -> String
11
+
12
+ def account_id=: (String _) -> String
13
+
14
+ def initialize: (
15
+ account_id: String,
16
+ ?request_options: SurgeAPI::request_opts
17
+ ) -> void
18
+
19
+ def to_hash: -> {
20
+ account_id: String,
21
+ request_options: SurgeAPI::RequestOptions
22
+ }
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,36 @@
1
+ module SurgeAPI
2
+ module Models
3
+ type toll_free_campaign_list_params =
4
+ { account_id: String, after: String, before: String }
5
+ & SurgeAPI::Internal::Type::request_parameters
6
+
7
+ class TollFreeCampaignListParams < SurgeAPI::Internal::Type::BaseModel
8
+ extend SurgeAPI::Internal::Type::RequestParameters::Converter
9
+ include SurgeAPI::Internal::Type::RequestParameters
10
+
11
+ attr_accessor account_id: String
12
+
13
+ attr_reader after: String?
14
+
15
+ def after=: (String) -> String
16
+
17
+ attr_reader before: String?
18
+
19
+ def before=: (String) -> String
20
+
21
+ def initialize: (
22
+ account_id: String,
23
+ ?after: String,
24
+ ?before: String,
25
+ ?request_options: SurgeAPI::request_opts
26
+ ) -> void
27
+
28
+ def to_hash: -> {
29
+ account_id: String,
30
+ after: String,
31
+ before: String,
32
+ request_options: SurgeAPI::RequestOptions
33
+ }
34
+ end
35
+ end
36
+ end