surge_api 0.24.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 (109) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +12 -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/call_ended_webhook_event.rb +8 -3
  7. data/lib/surge_api/models/campaign.rb +15 -7
  8. data/lib/surge_api/models/campaign_approved_webhook_event.rb +9 -1
  9. data/lib/surge_api/models/campaign_params.rb +6 -6
  10. data/lib/surge_api/models/campaign_rejected_webhook_event.rb +135 -0
  11. data/lib/surge_api/models/campaign_submitted_webhook_event.rb +74 -0
  12. data/lib/surge_api/models/campaign_update_params.rb +188 -1
  13. data/lib/surge_api/models/campaign_warning_webhook_event.rb +134 -0
  14. data/lib/surge_api/models/message.rb +18 -2
  15. data/lib/surge_api/models/message_delivered_webhook_event.rb +9 -1
  16. data/lib/surge_api/models/message_failed_webhook_event.rb +5 -4
  17. data/lib/surge_api/models/message_received_webhook_event.rb +9 -1
  18. data/lib/surge_api/models/message_sent_webhook_event.rb +9 -1
  19. data/lib/surge_api/models/phone_number.rb +9 -1
  20. data/lib/surge_api/models/phone_number_attached_to_campaign_webhook_event.rb +9 -1
  21. data/lib/surge_api/models/phone_number_imported_webhook_event.rb +9 -1
  22. data/lib/surge_api/models/phone_number_purchase_params.rb +9 -1
  23. data/lib/surge_api/models/phone_number_update_params.rb +9 -1
  24. data/lib/surge_api/models/toll_free_campaign.rb +132 -0
  25. data/lib/surge_api/models/toll_free_campaign_consent_flow.rb +176 -0
  26. data/lib/surge_api/models/toll_free_campaign_create_params.rb +22 -0
  27. data/lib/surge_api/models/toll_free_campaign_list_params.rb +42 -0
  28. data/lib/surge_api/models/toll_free_campaign_params.rb +286 -0
  29. data/lib/surge_api/models/toll_free_campaign_retrieve_params.rb +22 -0
  30. data/lib/surge_api/models/toll_free_campaign_update_params.rb +278 -0
  31. data/lib/surge_api/models/unwrap_webhook_event.rb +7 -1
  32. data/lib/surge_api/models/user_create_token_params.rb +15 -1
  33. data/lib/surge_api/models.rb +20 -0
  34. data/lib/surge_api/resources/accounts.rb +2 -2
  35. data/lib/surge_api/resources/campaigns.rb +26 -8
  36. data/lib/surge_api/resources/phone_numbers.rb +6 -2
  37. data/lib/surge_api/resources/toll_free_campaigns.rb +140 -0
  38. data/lib/surge_api/resources/users.rb +6 -1
  39. data/lib/surge_api/resources/webhooks.rb +1 -1
  40. data/lib/surge_api/version.rb +1 -1
  41. data/lib/surge_api.rb +11 -0
  42. data/rbi/surge_api/client.rbi +3 -0
  43. data/rbi/surge_api/models/call_ended_webhook_event.rbi +6 -3
  44. data/rbi/surge_api/models/campaign.rbi +17 -9
  45. data/rbi/surge_api/models/campaign_approved_webhook_event.rbi +8 -0
  46. data/rbi/surge_api/models/campaign_params.rbi +9 -9
  47. data/rbi/surge_api/models/campaign_rejected_webhook_event.rbi +269 -0
  48. data/rbi/surge_api/models/campaign_submitted_webhook_event.rbi +149 -0
  49. data/rbi/surge_api/models/campaign_update_params.rbi +378 -1
  50. data/rbi/surge_api/models/campaign_warning_webhook_event.rbi +259 -0
  51. data/rbi/surge_api/models/message.rbi +16 -0
  52. data/rbi/surge_api/models/message_delivered_webhook_event.rbi +8 -0
  53. data/rbi/surge_api/models/message_failed_webhook_event.rbi +7 -5
  54. data/rbi/surge_api/models/message_received_webhook_event.rbi +8 -0
  55. data/rbi/surge_api/models/message_sent_webhook_event.rbi +8 -0
  56. data/rbi/surge_api/models/phone_number.rbi +8 -0
  57. data/rbi/surge_api/models/phone_number_attached_to_campaign_webhook_event.rbi +8 -0
  58. data/rbi/surge_api/models/phone_number_imported_webhook_event.rbi +8 -0
  59. data/rbi/surge_api/models/phone_number_purchase_params.rbi +11 -0
  60. data/rbi/surge_api/models/phone_number_update_params.rbi +11 -0
  61. data/rbi/surge_api/models/toll_free_campaign.rbi +230 -0
  62. data/rbi/surge_api/models/toll_free_campaign_consent_flow.rbi +476 -0
  63. data/rbi/surge_api/models/toll_free_campaign_create_params.rbi +43 -0
  64. data/rbi/surge_api/models/toll_free_campaign_list_params.rbi +70 -0
  65. data/rbi/surge_api/models/toll_free_campaign_params.rbi +711 -0
  66. data/rbi/surge_api/models/toll_free_campaign_retrieve_params.rbi +43 -0
  67. data/rbi/surge_api/models/toll_free_campaign_update_params.rbi +760 -0
  68. data/rbi/surge_api/models/unwrap_webhook_event.rbi +3 -0
  69. data/rbi/surge_api/models/user_create_token_params.rbi +17 -0
  70. data/rbi/surge_api/models.rbi +22 -0
  71. data/rbi/surge_api/resources/accounts.rbi +2 -2
  72. data/rbi/surge_api/resources/campaigns.rbi +94 -12
  73. data/rbi/surge_api/resources/phone_numbers.rbi +6 -0
  74. data/rbi/surge_api/resources/toll_free_campaigns.rbi +129 -0
  75. data/rbi/surge_api/resources/users.rbi +6 -0
  76. data/rbi/surge_api/resources/webhooks.rbi +3 -0
  77. data/sig/surge_api/client.rbs +2 -0
  78. data/sig/surge_api/models/campaign.rbs +5 -0
  79. data/sig/surge_api/models/campaign_approved_webhook_event.rbs +5 -0
  80. data/sig/surge_api/models/campaign_rejected_webhook_event.rbs +115 -0
  81. data/sig/surge_api/models/campaign_submitted_webhook_event.rbs +67 -0
  82. data/sig/surge_api/models/campaign_update_params.rbs +128 -2
  83. data/sig/surge_api/models/campaign_warning_webhook_event.rbs +114 -0
  84. data/sig/surge_api/models/message.rbs +10 -0
  85. data/sig/surge_api/models/message_delivered_webhook_event.rbs +5 -0
  86. data/sig/surge_api/models/message_failed_webhook_event.rbs +4 -4
  87. data/sig/surge_api/models/message_received_webhook_event.rbs +5 -0
  88. data/sig/surge_api/models/message_sent_webhook_event.rbs +5 -0
  89. data/sig/surge_api/models/phone_number.rbs +5 -0
  90. data/sig/surge_api/models/phone_number_attached_to_campaign_webhook_event.rbs +5 -0
  91. data/sig/surge_api/models/phone_number_imported_webhook_event.rbs +5 -0
  92. data/sig/surge_api/models/phone_number_purchase_params.rbs +7 -0
  93. data/sig/surge_api/models/phone_number_update_params.rbs +12 -1
  94. data/sig/surge_api/models/toll_free_campaign.rbs +126 -0
  95. data/sig/surge_api/models/toll_free_campaign_consent_flow.rbs +207 -0
  96. data/sig/surge_api/models/toll_free_campaign_create_params.rbs +25 -0
  97. data/sig/surge_api/models/toll_free_campaign_list_params.rbs +36 -0
  98. data/sig/surge_api/models/toll_free_campaign_params.rbs +321 -0
  99. data/sig/surge_api/models/toll_free_campaign_retrieve_params.rbs +23 -0
  100. data/sig/surge_api/models/toll_free_campaign_update_params.rbs +332 -0
  101. data/sig/surge_api/models/unwrap_webhook_event.rbs +3 -0
  102. data/sig/surge_api/models/user_create_token_params.rbs +7 -1
  103. data/sig/surge_api/models.rbs +20 -0
  104. data/sig/surge_api/resources/campaigns.rbs +9 -1
  105. data/sig/surge_api/resources/phone_numbers.rbs +2 -0
  106. data/sig/surge_api/resources/toll_free_campaigns.rbs +44 -0
  107. data/sig/surge_api/resources/users.rbs +1 -0
  108. data/sig/surge_api/resources/webhooks.rbs +3 -0
  109. metadata +50 -7
@@ -0,0 +1,132 @@
1
+ # frozen_string_literal: true
2
+
3
+ module SurgeAPI
4
+ module Models
5
+ # @see SurgeAPI::Resources::TollFreeCampaigns#create
6
+ class TollFreeCampaign < SurgeAPI::Internal::Type::BaseModel
7
+ # @!attribute id
8
+ # The toll-free campaign ID
9
+ #
10
+ # @return [String]
11
+ required :id, String
12
+
13
+ # @!attribute consent_flows
14
+ #
15
+ # @return [Array<SurgeAPI::Models::TollFreeCampaignConsentFlow::UnionMember0, SurgeAPI::Models::TollFreeCampaignConsentFlow::UnionMember1, SurgeAPI::Models::TollFreeCampaignConsentFlow::UnionMember2, SurgeAPI::Models::TollFreeCampaignConsentFlow::UnionMember3, SurgeAPI::Models::TollFreeCampaignConsentFlow::Type>]
16
+ required :consent_flows,
17
+ -> { SurgeAPI::Internal::Type::ArrayOf[union: SurgeAPI::TollFreeCampaignConsentFlow] }
18
+
19
+ # @!attribute description
20
+ #
21
+ # @return [String, nil]
22
+ required :description, String, nil?: true
23
+
24
+ # @!attribute includes
25
+ #
26
+ # @return [Array<Symbol, SurgeAPI::Models::TollFreeCampaign::Include>]
27
+ required :includes, -> { SurgeAPI::Internal::Type::ArrayOf[enum: SurgeAPI::TollFreeCampaign::Include] }
28
+
29
+ # @!attribute message_samples
30
+ #
31
+ # @return [Array<String>]
32
+ required :message_samples, SurgeAPI::Internal::Type::ArrayOf[String]
33
+
34
+ # @!attribute phone_number_id
35
+ # The toll-free phone number ID
36
+ #
37
+ # @return [String]
38
+ required :phone_number_id, String
39
+
40
+ # @!attribute privacy_policy_url
41
+ #
42
+ # @return [String, nil]
43
+ required :privacy_policy_url, String, nil?: true
44
+
45
+ # @!attribute status
46
+ # The current status of the toll-free campaign.
47
+ #
48
+ # @return [Symbol, SurgeAPI::Models::TollFreeCampaign::Status]
49
+ required :status, enum: -> { SurgeAPI::TollFreeCampaign::Status }
50
+
51
+ # @!attribute terms_and_conditions_url
52
+ #
53
+ # @return [String, nil]
54
+ required :terms_and_conditions_url, String, nil?: true
55
+
56
+ # @!attribute use_cases
57
+ #
58
+ # @return [Array<Symbol, SurgeAPI::Models::TollFreeCampaign::UseCase>]
59
+ required :use_cases, -> { SurgeAPI::Internal::Type::ArrayOf[enum: SurgeAPI::TollFreeCampaign::UseCase] }
60
+
61
+ # @!method initialize(id:, consent_flows:, description:, includes:, message_samples:, phone_number_id:, privacy_policy_url:, status:, terms_and_conditions_url:, use_cases:)
62
+ # A toll-free campaign registration for a phone number.
63
+ #
64
+ # @param id [String] The toll-free campaign ID
65
+ #
66
+ # @param consent_flows [Array<SurgeAPI::Models::TollFreeCampaignConsentFlow::UnionMember0, SurgeAPI::Models::TollFreeCampaignConsentFlow::UnionMember1, SurgeAPI::Models::TollFreeCampaignConsentFlow::UnionMember2, SurgeAPI::Models::TollFreeCampaignConsentFlow::UnionMember3, SurgeAPI::Models::TollFreeCampaignConsentFlow::Type>]
67
+ #
68
+ # @param description [String, nil]
69
+ #
70
+ # @param includes [Array<Symbol, SurgeAPI::Models::TollFreeCampaign::Include>]
71
+ #
72
+ # @param message_samples [Array<String>]
73
+ #
74
+ # @param phone_number_id [String] The toll-free phone number ID
75
+ #
76
+ # @param privacy_policy_url [String, nil]
77
+ #
78
+ # @param status [Symbol, SurgeAPI::Models::TollFreeCampaign::Status] The current status of the toll-free campaign.
79
+ #
80
+ # @param terms_and_conditions_url [String, nil]
81
+ #
82
+ # @param use_cases [Array<Symbol, SurgeAPI::Models::TollFreeCampaign::UseCase>]
83
+
84
+ module Include
85
+ extend SurgeAPI::Internal::Type::Enum
86
+
87
+ AGE_GATED = :age_gated
88
+
89
+ # @!method self.values
90
+ # @return [Array<Symbol>]
91
+ end
92
+
93
+ # The current status of the toll-free campaign.
94
+ #
95
+ # @see SurgeAPI::Models::TollFreeCampaign#status
96
+ module Status
97
+ extend SurgeAPI::Internal::Type::Enum
98
+
99
+ ACTIVE = :active
100
+ CANCELED = :canceled
101
+ CREATED = :created
102
+ IN_REVIEW = :in_review
103
+ REJECTED = :rejected
104
+
105
+ # @!method self.values
106
+ # @return [Array<Symbol>]
107
+ end
108
+
109
+ module UseCase
110
+ extend SurgeAPI::Internal::Type::Enum
111
+
112
+ TWO_FACTOR_AUTHENTICATION = :two_factor_authentication
113
+ ACCOUNT_NOTIFICATION = :account_notification
114
+ CUSTOMER_CARE = :customer_care
115
+ CHARITY = :charity
116
+ DELIVERY_NOTIFICATION = :delivery_notification
117
+ FRAUD_ALERT = :fraud_alert
118
+ EVENT = :event
119
+ HIGHER_EDUCATION = :higher_education
120
+ K12_EDUCATION = :k12_education
121
+ MARKETING = :marketing
122
+ POLLING_VOTING = :polling_voting
123
+ POLITICAL = :political
124
+ PUBLIC_SERVICE_ANNOUNCEMENT = :public_service_announcement
125
+ SECURITY_ALERT = :security_alert
126
+
127
+ # @!method self.values
128
+ # @return [Array<Symbol>]
129
+ end
130
+ end
131
+ end
132
+ end
@@ -0,0 +1,176 @@
1
+ # frozen_string_literal: true
2
+
3
+ module SurgeAPI
4
+ module Models
5
+ # A consent flow returned on toll-free campaign responses.
6
+ module TollFreeCampaignConsentFlow
7
+ extend SurgeAPI::Internal::Type::Union
8
+
9
+ variant -> { SurgeAPI::TollFreeCampaignConsentFlow::UnionMember0 }
10
+
11
+ variant -> { SurgeAPI::TollFreeCampaignConsentFlow::UnionMember1 }
12
+
13
+ variant -> { SurgeAPI::TollFreeCampaignConsentFlow::UnionMember2 }
14
+
15
+ variant -> { SurgeAPI::TollFreeCampaignConsentFlow::UnionMember3 }
16
+
17
+ variant -> { SurgeAPI::TollFreeCampaignConsentFlow::Type }
18
+
19
+ class UnionMember0 < SurgeAPI::Internal::Type::BaseModel
20
+ # @!attribute script
21
+ #
22
+ # @return [String]
23
+ required :script, String
24
+
25
+ # @!attribute type
26
+ #
27
+ # @return [Symbol, SurgeAPI::Models::TollFreeCampaignConsentFlow::UnionMember0::Type]
28
+ required :type, enum: -> { SurgeAPI::TollFreeCampaignConsentFlow::UnionMember0::Type }
29
+
30
+ # @!method initialize(script:, type:)
31
+ # @param script [String]
32
+ # @param type [Symbol, SurgeAPI::Models::TollFreeCampaignConsentFlow::UnionMember0::Type]
33
+
34
+ # @see SurgeAPI::Models::TollFreeCampaignConsentFlow::UnionMember0#type
35
+ module Type
36
+ extend SurgeAPI::Internal::Type::Enum
37
+
38
+ VERBAL = :verbal
39
+
40
+ # @!method self.values
41
+ # @return [Array<Symbol>]
42
+ end
43
+ end
44
+
45
+ class UnionMember1 < SurgeAPI::Internal::Type::BaseModel
46
+ # @!attribute form_url
47
+ #
48
+ # @return [String]
49
+ required :form_url, String
50
+
51
+ # @!attribute type
52
+ #
53
+ # @return [Symbol, SurgeAPI::Models::TollFreeCampaignConsentFlow::UnionMember1::Type]
54
+ required :type, enum: -> { SurgeAPI::TollFreeCampaignConsentFlow::UnionMember1::Type }
55
+
56
+ # @!method initialize(form_url:, type:)
57
+ # @param form_url [String]
58
+ # @param type [Symbol, SurgeAPI::Models::TollFreeCampaignConsentFlow::UnionMember1::Type]
59
+
60
+ # @see SurgeAPI::Models::TollFreeCampaignConsentFlow::UnionMember1#type
61
+ module Type
62
+ extend SurgeAPI::Internal::Type::Enum
63
+
64
+ WEB_FORM = :web_form
65
+
66
+ # @!method self.values
67
+ # @return [Array<Symbol>]
68
+ end
69
+ end
70
+
71
+ class UnionMember2 < SurgeAPI::Internal::Type::BaseModel
72
+ # @!attribute screenshot
73
+ #
74
+ # @return [SurgeAPI::Models::TollFreeCampaignConsentFlow::UnionMember2::Screenshot]
75
+ required :screenshot, -> { SurgeAPI::TollFreeCampaignConsentFlow::UnionMember2::Screenshot }
76
+
77
+ # @!attribute type
78
+ #
79
+ # @return [Symbol, SurgeAPI::Models::TollFreeCampaignConsentFlow::UnionMember2::Type]
80
+ required :type, enum: -> { SurgeAPI::TollFreeCampaignConsentFlow::UnionMember2::Type }
81
+
82
+ # @!method initialize(screenshot:, type:)
83
+ # @param screenshot [SurgeAPI::Models::TollFreeCampaignConsentFlow::UnionMember2::Screenshot]
84
+ # @param type [Symbol, SurgeAPI::Models::TollFreeCampaignConsentFlow::UnionMember2::Type]
85
+
86
+ # @see SurgeAPI::Models::TollFreeCampaignConsentFlow::UnionMember2#screenshot
87
+ class Screenshot < SurgeAPI::Internal::Type::BaseModel
88
+ # @!attribute reason
89
+ #
90
+ # @return [Symbol, SurgeAPI::Models::TollFreeCampaignConsentFlow::UnionMember2::Screenshot::Reason]
91
+ required :reason, enum: -> { SurgeAPI::TollFreeCampaignConsentFlow::UnionMember2::Screenshot::Reason }
92
+
93
+ # @!attribute reason_other
94
+ #
95
+ # @return [String, nil]
96
+ optional :reason_other, String
97
+
98
+ # @!method initialize(reason:, reason_other: nil)
99
+ # @param reason [Symbol, SurgeAPI::Models::TollFreeCampaignConsentFlow::UnionMember2::Screenshot::Reason]
100
+ # @param reason_other [String]
101
+
102
+ # @see SurgeAPI::Models::TollFreeCampaignConsentFlow::UnionMember2::Screenshot#reason
103
+ module Reason
104
+ extend SurgeAPI::Internal::Type::Enum
105
+
106
+ BEHIND_LOGIN = :behind_login
107
+ UNDER_CONSTRUCTION = :under_construction
108
+ OTHER = :other
109
+
110
+ # @!method self.values
111
+ # @return [Array<Symbol>]
112
+ end
113
+ end
114
+
115
+ # @see SurgeAPI::Models::TollFreeCampaignConsentFlow::UnionMember2#type
116
+ module Type
117
+ extend SurgeAPI::Internal::Type::Enum
118
+
119
+ WEB_FORM = :web_form
120
+
121
+ # @!method self.values
122
+ # @return [Array<Symbol>]
123
+ end
124
+ end
125
+
126
+ class UnionMember3 < SurgeAPI::Internal::Type::BaseModel
127
+ # @!attribute type
128
+ #
129
+ # @return [Symbol, SurgeAPI::Models::TollFreeCampaignConsentFlow::UnionMember3::Type]
130
+ required :type, enum: -> { SurgeAPI::TollFreeCampaignConsentFlow::UnionMember3::Type }
131
+
132
+ # @!attribute keywords
133
+ #
134
+ # @return [Array<String>, nil]
135
+ optional :keywords, SurgeAPI::Internal::Type::ArrayOf[String]
136
+
137
+ # @!method initialize(type:, keywords: nil)
138
+ # @param type [Symbol, SurgeAPI::Models::TollFreeCampaignConsentFlow::UnionMember3::Type]
139
+ # @param keywords [Array<String>]
140
+
141
+ # @see SurgeAPI::Models::TollFreeCampaignConsentFlow::UnionMember3#type
142
+ module Type
143
+ extend SurgeAPI::Internal::Type::Enum
144
+
145
+ TEXT = :text
146
+
147
+ # @!method self.values
148
+ # @return [Array<Symbol>]
149
+ end
150
+ end
151
+
152
+ class Type < SurgeAPI::Internal::Type::BaseModel
153
+ # @!attribute type
154
+ #
155
+ # @return [Symbol, SurgeAPI::Models::TollFreeCampaignConsentFlow::Type::Type]
156
+ required :type, enum: -> { SurgeAPI::TollFreeCampaignConsentFlow::Type::Type }
157
+
158
+ # @!method initialize(type:)
159
+ # @param type [Symbol, SurgeAPI::Models::TollFreeCampaignConsentFlow::Type::Type]
160
+
161
+ # @see SurgeAPI::Models::TollFreeCampaignConsentFlow::Type#type
162
+ module Type
163
+ extend SurgeAPI::Internal::Type::Enum
164
+
165
+ PAPER_FORM = :paper_form
166
+
167
+ # @!method self.values
168
+ # @return [Array<Symbol>]
169
+ end
170
+ end
171
+
172
+ # @!method self.variants
173
+ # @return [Array(SurgeAPI::Models::TollFreeCampaignConsentFlow::UnionMember0, SurgeAPI::Models::TollFreeCampaignConsentFlow::UnionMember1, SurgeAPI::Models::TollFreeCampaignConsentFlow::UnionMember2, SurgeAPI::Models::TollFreeCampaignConsentFlow::UnionMember3, SurgeAPI::Models::TollFreeCampaignConsentFlow::Type)]
174
+ end
175
+ end
176
+ end
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ module SurgeAPI
4
+ module Models
5
+ # @see SurgeAPI::Resources::TollFreeCampaigns#create
6
+ class TollFreeCampaignCreateParams < SurgeAPI::Models::TollFreeCampaignParams
7
+ extend SurgeAPI::Internal::Type::RequestParameters::Converter
8
+ include SurgeAPI::Internal::Type::RequestParameters
9
+
10
+ # @!attribute account_id
11
+ # The account for which the toll-free campaign should be created.
12
+ #
13
+ # @return [String]
14
+ required :account_id, String
15
+
16
+ # @!method initialize(account_id:, request_options: {})
17
+ # @param account_id [String] The account for which the toll-free campaign should be created.
18
+ #
19
+ # @param request_options [SurgeAPI::RequestOptions, Hash{Symbol=>Object}]
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,42 @@
1
+ # frozen_string_literal: true
2
+
3
+ module SurgeAPI
4
+ module Models
5
+ # @see SurgeAPI::Resources::TollFreeCampaigns#list
6
+ class TollFreeCampaignListParams < SurgeAPI::Internal::Type::BaseModel
7
+ extend SurgeAPI::Internal::Type::RequestParameters::Converter
8
+ include SurgeAPI::Internal::Type::RequestParameters
9
+
10
+ # @!attribute account_id
11
+ # The account ID to list toll-free campaigns for.
12
+ #
13
+ # @return [String]
14
+ required :account_id, String
15
+
16
+ # @!attribute after
17
+ # Cursor for forward pagination. Use the next_cursor from a previous response.
18
+ #
19
+ # @return [String, nil]
20
+ optional :after, String
21
+
22
+ # @!attribute before
23
+ # Cursor for backward pagination. Use the previous_cursor from a previous
24
+ # response.
25
+ #
26
+ # @return [String, nil]
27
+ optional :before, String
28
+
29
+ # @!method initialize(account_id:, after: nil, before: nil, request_options: {})
30
+ # Some parameter documentations has been truncated, see
31
+ # {SurgeAPI::Models::TollFreeCampaignListParams} for more details.
32
+ #
33
+ # @param account_id [String] The account ID to list toll-free campaigns for.
34
+ #
35
+ # @param after [String] Cursor for forward pagination. Use the next_cursor from a previous response.
36
+ #
37
+ # @param before [String] Cursor for backward pagination. Use the previous_cursor from a previous response
38
+ #
39
+ # @param request_options [SurgeAPI::RequestOptions, Hash{Symbol=>Object}]
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,286 @@
1
+ # frozen_string_literal: true
2
+
3
+ module SurgeAPI
4
+ module Models
5
+ class TollFreeCampaignParams < SurgeAPI::Internal::Type::BaseModel
6
+ # @!attribute consent_flows
7
+ #
8
+ # @return [Array<SurgeAPI::Models::TollFreeCampaignParams::ConsentFlow::UnionMember0, SurgeAPI::Models::TollFreeCampaignParams::ConsentFlow::UnionMember1, SurgeAPI::Models::TollFreeCampaignParams::ConsentFlow::UnionMember2, SurgeAPI::Models::TollFreeCampaignParams::ConsentFlow::UnionMember3>]
9
+ required :consent_flows,
10
+ -> { SurgeAPI::Internal::Type::ArrayOf[union: SurgeAPI::TollFreeCampaignParams::ConsentFlow] }
11
+
12
+ # @!attribute description
13
+ # An explanation of how the toll-free number will be used.
14
+ #
15
+ # @return [String]
16
+ required :description, String
17
+
18
+ # @!attribute message_samples
19
+ #
20
+ # @return [Array<String>]
21
+ required :message_samples, SurgeAPI::Internal::Type::ArrayOf[String]
22
+
23
+ # @!attribute phone_number_id
24
+ # The toll-free phone number to register.
25
+ #
26
+ # @return [String]
27
+ required :phone_number_id, String
28
+
29
+ # @!attribute privacy_policy_url
30
+ #
31
+ # @return [String]
32
+ required :privacy_policy_url, String
33
+
34
+ # @!attribute terms_and_conditions_url
35
+ #
36
+ # @return [String]
37
+ required :terms_and_conditions_url, String
38
+
39
+ # @!attribute use_cases
40
+ #
41
+ # @return [Array<Symbol, SurgeAPI::Models::TollFreeCampaignParams::UseCase>]
42
+ required :use_cases,
43
+ -> { SurgeAPI::Internal::Type::ArrayOf[enum: SurgeAPI::TollFreeCampaignParams::UseCase] }
44
+
45
+ # @!attribute includes
46
+ #
47
+ # @return [Array<Symbol, SurgeAPI::Models::TollFreeCampaignParams::Include>, nil]
48
+ optional :includes,
49
+ -> { SurgeAPI::Internal::Type::ArrayOf[enum: SurgeAPI::TollFreeCampaignParams::Include] }
50
+
51
+ # @!method initialize(consent_flows:, description:, message_samples:, phone_number_id:, privacy_policy_url:, terms_and_conditions_url:, use_cases:, includes: nil)
52
+ # Parameters for creating a toll-free campaign through Surge
53
+ #
54
+ # @param consent_flows [Array<SurgeAPI::Models::TollFreeCampaignParams::ConsentFlow::UnionMember0, SurgeAPI::Models::TollFreeCampaignParams::ConsentFlow::UnionMember1, SurgeAPI::Models::TollFreeCampaignParams::ConsentFlow::UnionMember2, SurgeAPI::Models::TollFreeCampaignParams::ConsentFlow::UnionMember3>]
55
+ #
56
+ # @param description [String] An explanation of how the toll-free number will be used.
57
+ #
58
+ # @param message_samples [Array<String>]
59
+ #
60
+ # @param phone_number_id [String] The toll-free phone number to register.
61
+ #
62
+ # @param privacy_policy_url [String]
63
+ #
64
+ # @param terms_and_conditions_url [String]
65
+ #
66
+ # @param use_cases [Array<Symbol, SurgeAPI::Models::TollFreeCampaignParams::UseCase>]
67
+ #
68
+ # @param includes [Array<Symbol, SurgeAPI::Models::TollFreeCampaignParams::Include>]
69
+
70
+ module ConsentFlow
71
+ extend SurgeAPI::Internal::Type::Union
72
+
73
+ variant -> { SurgeAPI::TollFreeCampaignParams::ConsentFlow::UnionMember0 }
74
+
75
+ variant -> { SurgeAPI::TollFreeCampaignParams::ConsentFlow::UnionMember1 }
76
+
77
+ variant -> { SurgeAPI::TollFreeCampaignParams::ConsentFlow::UnionMember2 }
78
+
79
+ variant -> { SurgeAPI::TollFreeCampaignParams::ConsentFlow::UnionMember3 }
80
+
81
+ class UnionMember0 < SurgeAPI::Internal::Type::BaseModel
82
+ # @!attribute script
83
+ #
84
+ # @return [String]
85
+ required :script, String
86
+
87
+ # @!attribute type
88
+ #
89
+ # @return [Symbol, SurgeAPI::Models::TollFreeCampaignParams::ConsentFlow::UnionMember0::Type]
90
+ required :type, enum: -> { SurgeAPI::TollFreeCampaignParams::ConsentFlow::UnionMember0::Type }
91
+
92
+ # @!method initialize(script:, type:)
93
+ # @param script [String]
94
+ # @param type [Symbol, SurgeAPI::Models::TollFreeCampaignParams::ConsentFlow::UnionMember0::Type]
95
+
96
+ # @see SurgeAPI::Models::TollFreeCampaignParams::ConsentFlow::UnionMember0#type
97
+ module Type
98
+ extend SurgeAPI::Internal::Type::Enum
99
+
100
+ VERBAL = :verbal
101
+
102
+ # @!method self.values
103
+ # @return [Array<Symbol>]
104
+ end
105
+ end
106
+
107
+ class UnionMember1 < SurgeAPI::Internal::Type::BaseModel
108
+ # @!attribute owner
109
+ #
110
+ # @return [Symbol, SurgeAPI::Models::TollFreeCampaignParams::ConsentFlow::UnionMember1::Owner]
111
+ required :owner, enum: -> { SurgeAPI::TollFreeCampaignParams::ConsentFlow::UnionMember1::Owner }
112
+
113
+ # @!attribute type
114
+ #
115
+ # @return [Symbol, SurgeAPI::Models::TollFreeCampaignParams::ConsentFlow::UnionMember1::Type]
116
+ required :type, enum: -> { SurgeAPI::TollFreeCampaignParams::ConsentFlow::UnionMember1::Type }
117
+
118
+ # @!attribute form_url
119
+ #
120
+ # @return [String, nil]
121
+ optional :form_url, String
122
+
123
+ # @!attribute screenshot
124
+ #
125
+ # @return [SurgeAPI::Models::TollFreeCampaignParams::ConsentFlow::UnionMember1::Screenshot, nil]
126
+ optional :screenshot, -> { SurgeAPI::TollFreeCampaignParams::ConsentFlow::UnionMember1::Screenshot }
127
+
128
+ # @!method initialize(owner:, type:, form_url: nil, screenshot: nil)
129
+ # @param owner [Symbol, SurgeAPI::Models::TollFreeCampaignParams::ConsentFlow::UnionMember1::Owner]
130
+ # @param type [Symbol, SurgeAPI::Models::TollFreeCampaignParams::ConsentFlow::UnionMember1::Type]
131
+ # @param form_url [String]
132
+ # @param screenshot [SurgeAPI::Models::TollFreeCampaignParams::ConsentFlow::UnionMember1::Screenshot]
133
+
134
+ # @see SurgeAPI::Models::TollFreeCampaignParams::ConsentFlow::UnionMember1#owner
135
+ module Owner
136
+ extend SurgeAPI::Internal::Type::Enum
137
+
138
+ BRAND = :brand
139
+ PLATFORM = :platform
140
+
141
+ # @!method self.values
142
+ # @return [Array<Symbol>]
143
+ end
144
+
145
+ # @see SurgeAPI::Models::TollFreeCampaignParams::ConsentFlow::UnionMember1#type
146
+ module Type
147
+ extend SurgeAPI::Internal::Type::Enum
148
+
149
+ WEB_FORM = :web_form
150
+
151
+ # @!method self.values
152
+ # @return [Array<Symbol>]
153
+ end
154
+
155
+ # @see SurgeAPI::Models::TollFreeCampaignParams::ConsentFlow::UnionMember1#screenshot
156
+ class Screenshot < SurgeAPI::Internal::Type::BaseModel
157
+ # @!attribute reason
158
+ #
159
+ # @return [Symbol, SurgeAPI::Models::TollFreeCampaignParams::ConsentFlow::UnionMember1::Screenshot::Reason]
160
+ required :reason,
161
+ enum: -> { SurgeAPI::TollFreeCampaignParams::ConsentFlow::UnionMember1::Screenshot::Reason }
162
+
163
+ # @!attribute urls
164
+ #
165
+ # @return [Array<String>]
166
+ required :urls, SurgeAPI::Internal::Type::ArrayOf[String]
167
+
168
+ # @!attribute reason_other
169
+ #
170
+ # @return [String, nil]
171
+ optional :reason_other, String
172
+
173
+ # @!method initialize(reason:, urls:, reason_other: nil)
174
+ # @param reason [Symbol, SurgeAPI::Models::TollFreeCampaignParams::ConsentFlow::UnionMember1::Screenshot::Reason]
175
+ # @param urls [Array<String>]
176
+ # @param reason_other [String]
177
+
178
+ # @see SurgeAPI::Models::TollFreeCampaignParams::ConsentFlow::UnionMember1::Screenshot#reason
179
+ module Reason
180
+ extend SurgeAPI::Internal::Type::Enum
181
+
182
+ BEHIND_LOGIN = :behind_login
183
+ UNDER_CONSTRUCTION = :under_construction
184
+ OTHER = :other
185
+
186
+ # @!method self.values
187
+ # @return [Array<Symbol>]
188
+ end
189
+ end
190
+ end
191
+
192
+ class UnionMember2 < SurgeAPI::Internal::Type::BaseModel
193
+ # @!attribute file_urls
194
+ #
195
+ # @return [Array<String>]
196
+ required :file_urls, SurgeAPI::Internal::Type::ArrayOf[String]
197
+
198
+ # @!attribute type
199
+ #
200
+ # @return [Symbol, SurgeAPI::Models::TollFreeCampaignParams::ConsentFlow::UnionMember2::Type]
201
+ required :type, enum: -> { SurgeAPI::TollFreeCampaignParams::ConsentFlow::UnionMember2::Type }
202
+
203
+ # @!attribute keywords
204
+ #
205
+ # @return [Array<String>, nil]
206
+ optional :keywords, SurgeAPI::Internal::Type::ArrayOf[String]
207
+
208
+ # @!method initialize(file_urls:, type:, keywords: nil)
209
+ # @param file_urls [Array<String>]
210
+ # @param type [Symbol, SurgeAPI::Models::TollFreeCampaignParams::ConsentFlow::UnionMember2::Type]
211
+ # @param keywords [Array<String>]
212
+
213
+ # @see SurgeAPI::Models::TollFreeCampaignParams::ConsentFlow::UnionMember2#type
214
+ module Type
215
+ extend SurgeAPI::Internal::Type::Enum
216
+
217
+ TEXT = :text
218
+
219
+ # @!method self.values
220
+ # @return [Array<Symbol>]
221
+ end
222
+ end
223
+
224
+ class UnionMember3 < SurgeAPI::Internal::Type::BaseModel
225
+ # @!attribute file_urls
226
+ #
227
+ # @return [Array<String>]
228
+ required :file_urls, SurgeAPI::Internal::Type::ArrayOf[String]
229
+
230
+ # @!attribute type
231
+ #
232
+ # @return [Symbol, SurgeAPI::Models::TollFreeCampaignParams::ConsentFlow::UnionMember3::Type]
233
+ required :type, enum: -> { SurgeAPI::TollFreeCampaignParams::ConsentFlow::UnionMember3::Type }
234
+
235
+ # @!method initialize(file_urls:, type:)
236
+ # @param file_urls [Array<String>]
237
+ # @param type [Symbol, SurgeAPI::Models::TollFreeCampaignParams::ConsentFlow::UnionMember3::Type]
238
+
239
+ # @see SurgeAPI::Models::TollFreeCampaignParams::ConsentFlow::UnionMember3#type
240
+ module Type
241
+ extend SurgeAPI::Internal::Type::Enum
242
+
243
+ PAPER_FORM = :paper_form
244
+
245
+ # @!method self.values
246
+ # @return [Array<Symbol>]
247
+ end
248
+ end
249
+
250
+ # @!method self.variants
251
+ # @return [Array(SurgeAPI::Models::TollFreeCampaignParams::ConsentFlow::UnionMember0, SurgeAPI::Models::TollFreeCampaignParams::ConsentFlow::UnionMember1, SurgeAPI::Models::TollFreeCampaignParams::ConsentFlow::UnionMember2, SurgeAPI::Models::TollFreeCampaignParams::ConsentFlow::UnionMember3)]
252
+ end
253
+
254
+ module UseCase
255
+ extend SurgeAPI::Internal::Type::Enum
256
+
257
+ TWO_FACTOR_AUTHENTICATION = :two_factor_authentication
258
+ ACCOUNT_NOTIFICATION = :account_notification
259
+ CUSTOMER_CARE = :customer_care
260
+ CHARITY = :charity
261
+ DELIVERY_NOTIFICATION = :delivery_notification
262
+ FRAUD_ALERT = :fraud_alert
263
+ EVENT = :event
264
+ HIGHER_EDUCATION = :higher_education
265
+ K12_EDUCATION = :k12_education
266
+ MARKETING = :marketing
267
+ POLLING_VOTING = :polling_voting
268
+ POLITICAL = :political
269
+ PUBLIC_SERVICE_ANNOUNCEMENT = :public_service_announcement
270
+ SECURITY_ALERT = :security_alert
271
+
272
+ # @!method self.values
273
+ # @return [Array<Symbol>]
274
+ end
275
+
276
+ module Include
277
+ extend SurgeAPI::Internal::Type::Enum
278
+
279
+ AGE_GATED = :age_gated
280
+
281
+ # @!method self.values
282
+ # @return [Array<Symbol>]
283
+ end
284
+ end
285
+ end
286
+ end
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ module SurgeAPI
4
+ module Models
5
+ # @see SurgeAPI::Resources::TollFreeCampaigns#retrieve
6
+ class TollFreeCampaignRetrieveParams < SurgeAPI::Internal::Type::BaseModel
7
+ extend SurgeAPI::Internal::Type::RequestParameters::Converter
8
+ include SurgeAPI::Internal::Type::RequestParameters
9
+
10
+ # @!attribute campaign_id
11
+ # The ID of the toll-free campaign to retrieve.
12
+ #
13
+ # @return [String]
14
+ required :campaign_id, String
15
+
16
+ # @!method initialize(campaign_id:, request_options: {})
17
+ # @param campaign_id [String] The ID of the toll-free campaign to retrieve.
18
+ #
19
+ # @param request_options [SurgeAPI::RequestOptions, Hash{Symbol=>Object}]
20
+ end
21
+ end
22
+ end