twilio-ruby 5.41.0 → 5.45.1

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 (150) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGES.md +99 -0
  3. data/{LICENSE.md → LICENSE} +0 -0
  4. data/PULL_REQUEST_TEMPLATE.md +3 -3
  5. data/README.md +18 -2
  6. data/lib/twilio-ruby.rb +1 -1
  7. data/lib/twilio-ruby/jwt/access_token.rb +7 -2
  8. data/lib/twilio-ruby/rest/api/v2010/account/call.rb +26 -1
  9. data/lib/twilio-ruby/rest/api/v2010/account/call/event.rb +201 -0
  10. data/lib/twilio-ruby/rest/api/v2010/account/call/recording.rb +13 -1
  11. data/lib/twilio-ruby/rest/api/v2010/account/conference/participant.rb +6 -1
  12. data/lib/twilio-ruby/rest/bulkexports/v1/export/day.rb +5 -22
  13. data/lib/twilio-ruby/rest/bulkexports/v1/export/export_custom_job.rb +25 -40
  14. data/lib/twilio-ruby/rest/client.rb +29 -3
  15. data/lib/twilio-ruby/rest/conversations/v1/conversation/participant.rb +32 -2
  16. data/lib/twilio-ruby/rest/conversations/v1/service/configuration.rb +17 -2
  17. data/lib/twilio-ruby/rest/conversations/v1/service/conversation/participant.rb +32 -2
  18. data/lib/twilio-ruby/rest/conversations/v1/service/user.rb +8 -1
  19. data/lib/twilio-ruby/rest/conversations/v1/user.rb +8 -1
  20. data/lib/twilio-ruby/rest/events/v1/subscription.rb +12 -5
  21. data/lib/twilio-ruby/rest/flex_api.rb +1 -1
  22. data/lib/twilio-ruby/rest/flex_api/v1.rb +1 -1
  23. data/lib/twilio-ruby/rest/flex_api/v1/channel.rb +5 -5
  24. data/lib/twilio-ruby/rest/flex_api/v1/flex_flow.rb +88 -76
  25. data/lib/twilio-ruby/rest/flex_api/v1/web_channel.rb +2 -2
  26. data/lib/twilio-ruby/rest/insights.rb +8 -0
  27. data/lib/twilio-ruby/rest/insights/v1.rb +15 -0
  28. data/lib/twilio-ruby/rest/insights/v1/room.rb +487 -0
  29. data/lib/twilio-ruby/rest/insights/v1/room/participant.rb +378 -0
  30. data/lib/twilio-ruby/rest/ip_messaging.rb +8 -10
  31. data/lib/twilio-ruby/rest/ip_messaging/v1.rb +6 -8
  32. data/lib/twilio-ruby/rest/ip_messaging/v1/credential.rb +29 -68
  33. data/lib/twilio-ruby/rest/ip_messaging/v1/service.rb +198 -313
  34. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel.rb +32 -59
  35. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/invite.rb +23 -55
  36. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/member.rb +28 -71
  37. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/message.rb +31 -59
  38. data/lib/twilio-ruby/rest/ip_messaging/v1/service/role.rb +19 -39
  39. data/lib/twilio-ruby/rest/ip_messaging/v1/service/user.rb +29 -51
  40. data/lib/twilio-ruby/rest/ip_messaging/v1/service/user/user_channel.rb +12 -18
  41. data/lib/twilio-ruby/rest/ip_messaging/v2.rb +6 -6
  42. data/lib/twilio-ruby/rest/ip_messaging/v2/credential.rb +29 -66
  43. data/lib/twilio-ruby/rest/ip_messaging/v2/service.rb +116 -205
  44. data/lib/twilio-ruby/rest/ip_messaging/v2/service/binding.rb +23 -50
  45. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel.rb +41 -91
  46. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/invite.rb +23 -50
  47. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/member.rb +42 -118
  48. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/message.rb +46 -100
  49. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/webhook.rb +36 -89
  50. data/lib/twilio-ruby/rest/ip_messaging/v2/service/role.rb +19 -41
  51. data/lib/twilio-ruby/rest/ip_messaging/v2/service/user.rb +29 -53
  52. data/lib/twilio-ruby/rest/ip_messaging/v2/service/user/user_binding.rb +23 -53
  53. data/lib/twilio-ruby/rest/ip_messaging/v2/service/user/user_channel.rb +27 -56
  54. data/lib/twilio-ruby/rest/preview.rb +0 -21
  55. data/lib/twilio-ruby/rest/preview/bulk_exports/export/day.rb +5 -22
  56. data/lib/twilio-ruby/rest/preview/bulk_exports/export/export_custom_job.rb +21 -39
  57. data/lib/twilio-ruby/rest/preview/trusted_comms.rb +0 -30
  58. data/lib/twilio-ruby/rest/serverless/v1/service.rb +5 -5
  59. data/lib/twilio-ruby/rest/serverless/v1/service/asset.rb +4 -4
  60. data/lib/twilio-ruby/rest/serverless/v1/service/asset/asset_version.rb +4 -4
  61. data/lib/twilio-ruby/rest/serverless/v1/service/build.rb +4 -4
  62. data/lib/twilio-ruby/rest/serverless/v1/service/build/build_status.rb +4 -4
  63. data/lib/twilio-ruby/rest/serverless/v1/service/environment.rb +4 -4
  64. data/lib/twilio-ruby/rest/serverless/v1/service/environment/deployment.rb +4 -4
  65. data/lib/twilio-ruby/rest/serverless/v1/service/environment/log.rb +4 -4
  66. data/lib/twilio-ruby/rest/serverless/v1/service/environment/variable.rb +4 -4
  67. data/lib/twilio-ruby/rest/serverless/v1/service/function.rb +4 -4
  68. data/lib/twilio-ruby/rest/serverless/v1/service/function/function_version.rb +4 -4
  69. data/lib/twilio-ruby/rest/serverless/v1/service/function/function_version/function_version_content.rb +4 -4
  70. data/lib/twilio-ruby/rest/sync/v1/service/document.rb +15 -5
  71. data/lib/twilio-ruby/rest/sync/v1/service/sync_list.rb +15 -5
  72. data/lib/twilio-ruby/rest/sync/v1/service/sync_list/sync_list_item.rb +28 -5
  73. data/lib/twilio-ruby/rest/sync/v1/service/sync_map.rb +15 -5
  74. data/lib/twilio-ruby/rest/sync/v1/service/sync_map/sync_map_item.rb +28 -5
  75. data/lib/twilio-ruby/rest/sync/v1/service/sync_stream.rb +15 -5
  76. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task.rb +12 -9
  77. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_channel.rb +16 -16
  78. data/lib/twilio-ruby/rest/trunking/v1/trunk/recording.rb +21 -24
  79. data/lib/twilio-ruby/rest/verify/v2/form.rb +4 -4
  80. data/lib/twilio-ruby/rest/verify/v2/service.rb +3 -3
  81. data/lib/twilio-ruby/rest/verify/v2/service/access_token.rb +3 -3
  82. data/lib/twilio-ruby/rest/verify/v2/service/entity.rb +23 -35
  83. data/lib/twilio-ruby/rest/verify/v2/service/entity/challenge.rb +27 -49
  84. data/lib/twilio-ruby/rest/verify/v2/service/entity/factor.rb +24 -42
  85. data/lib/twilio-ruby/rest/verify/v2/service/webhook.rb +4 -4
  86. data/lib/twilio-ruby/rest/video/v1/composition_settings.rb +6 -6
  87. data/lib/twilio-ruby/rest/video/v1/recording_settings.rb +6 -6
  88. data/lib/twilio-ruby/rest/video/v1/room.rb +20 -0
  89. data/lib/twilio-ruby/rest/video/v1/room/room_recording_rule.rb +150 -0
  90. data/lib/twilio-ruby/twiml/voice_response.rb +8 -4
  91. data/lib/twilio-ruby/util/configuration.rb +5 -1
  92. data/lib/twilio-ruby/version.rb +1 -1
  93. data/spec/integration/api/v2010/account/call/event_spec.rb +102 -0
  94. data/spec/integration/api/v2010/account/call/recording_spec.rb +4 -0
  95. data/spec/integration/api/v2010/account/call_spec.rb +20 -10
  96. data/spec/integration/api/v2010/account/conference/participant_spec.rb +30 -0
  97. data/spec/integration/bulkexports/v1/export/export_custom_job_spec.rb +4 -2
  98. data/spec/integration/conversations/v1/conversation/participant_spec.rb +30 -10
  99. data/spec/integration/conversations/v1/service/configuration_spec.rb +2 -0
  100. data/spec/integration/conversations/v1/service/conversation/participant_spec.rb +30 -10
  101. data/spec/integration/conversations/v1/service/user_spec.rb +9 -4
  102. data/spec/integration/conversations/v1/user_spec.rb +9 -4
  103. data/spec/integration/events/v1/sink/sink_test_spec.rb +1 -1
  104. data/spec/integration/events/v1/subscription_spec.rb +49 -0
  105. data/spec/integration/insights/v1/room/participant_spec.rb +147 -0
  106. data/spec/integration/insights/v1/room_spec.rb +164 -0
  107. data/spec/integration/ip_messaging/v1/credential_spec.rb +13 -13
  108. data/spec/integration/ip_messaging/v1/service/channel/invite_spec.rb +11 -11
  109. data/spec/integration/ip_messaging/v1/service/channel/member_spec.rb +14 -14
  110. data/spec/integration/ip_messaging/v1/service/channel/message_spec.rb +14 -14
  111. data/spec/integration/ip_messaging/v1/service/channel_spec.rb +25 -25
  112. data/spec/integration/ip_messaging/v1/service/role_spec.rb +13 -13
  113. data/spec/integration/ip_messaging/v1/service/user/user_channel_spec.rb +7 -7
  114. data/spec/integration/ip_messaging/v1/service/user_spec.rb +17 -17
  115. data/spec/integration/ip_messaging/v1/service_spec.rb +9 -9
  116. data/spec/integration/ip_messaging/v2/credential_spec.rb +13 -13
  117. data/spec/integration/ip_messaging/v2/service/binding_spec.rb +11 -11
  118. data/spec/integration/ip_messaging/v2/service/channel/invite_spec.rb +11 -11
  119. data/spec/integration/ip_messaging/v2/service/channel/member_spec.rb +13 -13
  120. data/spec/integration/ip_messaging/v2/service/channel/message_spec.rb +17 -17
  121. data/spec/integration/ip_messaging/v2/service/channel/webhook_spec.rb +15 -15
  122. data/spec/integration/ip_messaging/v2/service/channel_spec.rb +29 -29
  123. data/spec/integration/ip_messaging/v2/service/role_spec.rb +13 -13
  124. data/spec/integration/ip_messaging/v2/service/user/user_binding_spec.rb +9 -9
  125. data/spec/integration/ip_messaging/v2/service/user/user_channel_spec.rb +20 -20
  126. data/spec/integration/ip_messaging/v2/service/user_spec.rb +21 -21
  127. data/spec/integration/ip_messaging/v2/service_spec.rb +29 -29
  128. data/spec/integration/lookups/v1/phone_number_spec.rb +7 -7
  129. data/spec/integration/preview/bulk_exports/export/export_custom_job_spec.rb +4 -2
  130. data/spec/integration/taskrouter/v1/workspace/worker/worker_channel_spec.rb +1 -1
  131. data/spec/integration/trunking/v1/trunk/recording_spec.rb +2 -6
  132. data/spec/integration/verify/v2/service/entity/challenge_spec.rb +4 -12
  133. data/spec/integration/verify/v2/service/entity/factor_spec.rb +5 -15
  134. data/spec/integration/verify/v2/service/entity_spec.rb +4 -12
  135. data/spec/integration/video/v1/room/room_recording_rule_spec.rb +89 -0
  136. data/spec/integration/video/v1/room_spec.rb +10 -5
  137. data/spec/jwt/access_token_spec.rb +9 -1
  138. data/spec/rest/client_spec.rb +24 -2
  139. data/twilio-ruby.gemspec +2 -1
  140. metadata +30 -19
  141. data/lib/twilio-ruby/rest/preview/trusted_comms/branded_call.rb +0 -243
  142. data/lib/twilio-ruby/rest/preview/trusted_comms/business.rb +0 -213
  143. data/lib/twilio-ruby/rest/preview/trusted_comms/business/insights.rb +0 -108
  144. data/lib/twilio-ruby/rest/preview/trusted_comms/business/insights/impressions_rate.rb +0 -260
  145. data/lib/twilio-ruby/rest/preview/trusted_comms/phone_call.rb +0 -342
  146. data/spec/integration/preview/trusted_comms/branded_call_spec.rb +0 -59
  147. data/spec/integration/preview/trusted_comms/business/insights/impressions_rate_spec.rb +0 -56
  148. data/spec/integration/preview/trusted_comms/business/insights_spec.rb +0 -12
  149. data/spec/integration/preview/trusted_comms/business_spec.rb +0 -45
  150. data/spec/integration/preview/trusted_comms/phone_call_spec.rb +0 -59
@@ -1,213 +0,0 @@
1
- ##
2
- # This code was generated by
3
- # \ / _ _ _| _ _
4
- # | (_)\/(_)(_|\/| |(/_ v1.0.0
5
- # / /
6
- #
7
- # frozen_string_literal: true
8
-
9
- module Twilio
10
- module REST
11
- class Preview < Domain
12
- class TrustedComms < Version
13
- ##
14
- # PLEASE NOTE that this class contains preview products that are subject to change. Use them with caution. If you currently do not have developer preview access, please contact help@twilio.com.
15
- class BusinessList < ListResource
16
- ##
17
- # Initialize the BusinessList
18
- # @param [Version] version Version that contains the resource
19
- # @return [BusinessList] BusinessList
20
- def initialize(version)
21
- super(version)
22
-
23
- # Path Solution
24
- @solution = {}
25
- end
26
-
27
- ##
28
- # Provide a user friendly representation
29
- def to_s
30
- '#<Twilio.Preview.TrustedComms.BusinessList>'
31
- end
32
- end
33
-
34
- ##
35
- # PLEASE NOTE that this class contains preview products that are subject to change. Use them with caution. If you currently do not have developer preview access, please contact help@twilio.com.
36
- class BusinessPage < Page
37
- ##
38
- # Initialize the BusinessPage
39
- # @param [Version] version Version that contains the resource
40
- # @param [Response] response Response from the API
41
- # @param [Hash] solution Path solution for the resource
42
- # @return [BusinessPage] BusinessPage
43
- def initialize(version, response, solution)
44
- super(version, response)
45
-
46
- # Path Solution
47
- @solution = solution
48
- end
49
-
50
- ##
51
- # Build an instance of BusinessInstance
52
- # @param [Hash] payload Payload response from the API
53
- # @return [BusinessInstance] BusinessInstance
54
- def get_instance(payload)
55
- BusinessInstance.new(@version, payload, )
56
- end
57
-
58
- ##
59
- # Provide a user friendly representation
60
- def to_s
61
- '<Twilio.Preview.TrustedComms.BusinessPage>'
62
- end
63
- end
64
-
65
- ##
66
- # PLEASE NOTE that this class contains preview products that are subject to change. Use them with caution. If you currently do not have developer preview access, please contact help@twilio.com.
67
- class BusinessContext < InstanceContext
68
- ##
69
- # Initialize the BusinessContext
70
- # @param [Version] version Version that contains the resource
71
- # @param [String] sid A 34 character string that uniquely identifies this
72
- # Business.
73
- # @return [BusinessContext] BusinessContext
74
- def initialize(version, sid)
75
- super(version)
76
-
77
- # Path Solution
78
- @solution = {sid: sid, }
79
- @uri = "/Businesses/#{@solution[:sid]}"
80
-
81
- # Dependents
82
- @insights = nil
83
- end
84
-
85
- ##
86
- # Fetch the BusinessInstance
87
- # @return [BusinessInstance] Fetched BusinessInstance
88
- def fetch
89
- payload = @version.fetch('GET', @uri)
90
-
91
- BusinessInstance.new(@version, payload, sid: @solution[:sid], )
92
- end
93
-
94
- ##
95
- # Access the insights
96
- # @return [InsightsList]
97
- # @return [InsightsContext]
98
- def insights
99
- unless @insights
100
- @insights = InsightsList.new(@version, business_sid: @solution[:sid], )
101
- end
102
-
103
- @insights
104
- end
105
-
106
- ##
107
- # Provide a user friendly representation
108
- def to_s
109
- context = @solution.map {|k, v| "#{k}: #{v}"}.join(',')
110
- "#<Twilio.Preview.TrustedComms.BusinessContext #{context}>"
111
- end
112
-
113
- ##
114
- # Provide a detailed, user friendly representation
115
- def inspect
116
- context = @solution.map {|k, v| "#{k}: #{v}"}.join(',')
117
- "#<Twilio.Preview.TrustedComms.BusinessContext #{context}>"
118
- end
119
- end
120
-
121
- ##
122
- # PLEASE NOTE that this class contains preview products that are subject to change. Use them with caution. If you currently do not have developer preview access, please contact help@twilio.com.
123
- class BusinessInstance < InstanceResource
124
- ##
125
- # Initialize the BusinessInstance
126
- # @param [Version] version Version that contains the resource
127
- # @param [Hash] payload payload that contains response from Twilio
128
- # @param [String] sid A 34 character string that uniquely identifies this
129
- # Business.
130
- # @return [BusinessInstance] BusinessInstance
131
- def initialize(version, payload, sid: nil)
132
- super(version)
133
-
134
- # Marshaled Properties
135
- @properties = {
136
- 'account_sid' => payload['account_sid'],
137
- 'sid' => payload['sid'],
138
- 'url' => payload['url'],
139
- 'links' => payload['links'],
140
- }
141
-
142
- # Context
143
- @instance_context = nil
144
- @params = {'sid' => sid || @properties['sid'], }
145
- end
146
-
147
- ##
148
- # Generate an instance context for the instance, the context is capable of
149
- # performing various actions. All instance actions are proxied to the context
150
- # @return [BusinessContext] BusinessContext for this BusinessInstance
151
- def context
152
- unless @instance_context
153
- @instance_context = BusinessContext.new(@version, @params['sid'], )
154
- end
155
- @instance_context
156
- end
157
-
158
- ##
159
- # @return [String] Account Sid.
160
- def account_sid
161
- @properties['account_sid']
162
- end
163
-
164
- ##
165
- # @return [String] A string that uniquely identifies this Business.
166
- def sid
167
- @properties['sid']
168
- end
169
-
170
- ##
171
- # @return [String] The URL of this resource.
172
- def url
173
- @properties['url']
174
- end
175
-
176
- ##
177
- # @return [String] Nested resource URLs.
178
- def links
179
- @properties['links']
180
- end
181
-
182
- ##
183
- # Fetch the BusinessInstance
184
- # @return [BusinessInstance] Fetched BusinessInstance
185
- def fetch
186
- context.fetch
187
- end
188
-
189
- ##
190
- # Access the insights
191
- # @return [insights] insights
192
- def insights
193
- context.insights
194
- end
195
-
196
- ##
197
- # Provide a user friendly representation
198
- def to_s
199
- values = @params.map{|k, v| "#{k}: #{v}"}.join(" ")
200
- "<Twilio.Preview.TrustedComms.BusinessInstance #{values}>"
201
- end
202
-
203
- ##
204
- # Provide a detailed, user friendly representation
205
- def inspect
206
- values = @properties.map{|k, v| "#{k}: #{v}"}.join(" ")
207
- "<Twilio.Preview.TrustedComms.BusinessInstance #{values}>"
208
- end
209
- end
210
- end
211
- end
212
- end
213
- end
@@ -1,108 +0,0 @@
1
- ##
2
- # This code was generated by
3
- # \ / _ _ _| _ _
4
- # | (_)\/(_)(_|\/| |(/_ v1.0.0
5
- # / /
6
- #
7
- # frozen_string_literal: true
8
-
9
- module Twilio
10
- module REST
11
- class Preview < Domain
12
- class TrustedComms < Version
13
- class BusinessContext < InstanceContext
14
- ##
15
- # PLEASE NOTE that this class contains preview products that are subject to change. Use them with caution. If you currently do not have developer preview access, please contact help@twilio.com.
16
- class InsightsList < ListResource
17
- ##
18
- # Initialize the InsightsList
19
- # @param [Version] version Version that contains the resource
20
- # @param [String] business_sid A 34 character string that uniquely identifies this
21
- # Business.
22
- # @return [InsightsList] InsightsList
23
- def initialize(version, business_sid: nil)
24
- super(version)
25
-
26
- # Path Solution
27
- @solution = {business_sid: business_sid}
28
-
29
- # Components
30
- @impressions_rate = nil
31
- end
32
-
33
- ##
34
- # Access the impressions_rate
35
- # @return [ImpressionsRateContext] ImpressionsRateContext
36
- def impressions_rate
37
- return ImpressionsRateContext.new(@version, @solution[:business_sid], )
38
- end
39
-
40
- ##
41
- # Provide a user friendly representation
42
- def to_s
43
- '#<Twilio.Preview.TrustedComms.InsightsList>'
44
- end
45
- end
46
-
47
- ##
48
- # PLEASE NOTE that this class contains preview products that are subject to change. Use them with caution. If you currently do not have developer preview access, please contact help@twilio.com.
49
- class InsightsPage < Page
50
- ##
51
- # Initialize the InsightsPage
52
- # @param [Version] version Version that contains the resource
53
- # @param [Response] response Response from the API
54
- # @param [Hash] solution Path solution for the resource
55
- # @return [InsightsPage] InsightsPage
56
- def initialize(version, response, solution)
57
- super(version, response)
58
-
59
- # Path Solution
60
- @solution = solution
61
- end
62
-
63
- ##
64
- # Build an instance of InsightsInstance
65
- # @param [Hash] payload Payload response from the API
66
- # @return [InsightsInstance] InsightsInstance
67
- def get_instance(payload)
68
- InsightsInstance.new(@version, payload, business_sid: @solution[:business_sid], )
69
- end
70
-
71
- ##
72
- # Provide a user friendly representation
73
- def to_s
74
- '<Twilio.Preview.TrustedComms.InsightsPage>'
75
- end
76
- end
77
-
78
- ##
79
- # PLEASE NOTE that this class contains preview products that are subject to change. Use them with caution. If you currently do not have developer preview access, please contact help@twilio.com.
80
- class InsightsInstance < InstanceResource
81
- ##
82
- # Initialize the InsightsInstance
83
- # @param [Version] version Version that contains the resource
84
- # @param [Hash] payload payload that contains response from Twilio
85
- # @param [String] business_sid A 34 character string that uniquely identifies this
86
- # Business.
87
- # @return [InsightsInstance] InsightsInstance
88
- def initialize(version, payload, business_sid: nil)
89
- super(version)
90
- end
91
-
92
- ##
93
- # Provide a user friendly representation
94
- def to_s
95
- "<Twilio.Preview.TrustedComms.InsightsInstance>"
96
- end
97
-
98
- ##
99
- # Provide a detailed, user friendly representation
100
- def inspect
101
- "<Twilio.Preview.TrustedComms.InsightsInstance>"
102
- end
103
- end
104
- end
105
- end
106
- end
107
- end
108
- end
@@ -1,260 +0,0 @@
1
- ##
2
- # This code was generated by
3
- # \ / _ _ _| _ _
4
- # | (_)\/(_)(_|\/| |(/_ v1.0.0
5
- # / /
6
- #
7
- # frozen_string_literal: true
8
-
9
- module Twilio
10
- module REST
11
- class Preview < Domain
12
- class TrustedComms < Version
13
- class BusinessContext < InstanceContext
14
- class InsightsList < ListResource
15
- ##
16
- # PLEASE NOTE that this class contains preview products that are subject to change. Use them with caution. If you currently do not have developer preview access, please contact help@twilio.com.
17
- class ImpressionsRateList < ListResource
18
- ##
19
- # Initialize the ImpressionsRateList
20
- # @param [Version] version Version that contains the resource
21
- # @param [String] business_sid A 34 character string that uniquely identifies this
22
- # Business.
23
- # @return [ImpressionsRateList] ImpressionsRateList
24
- def initialize(version, business_sid: nil)
25
- super(version)
26
-
27
- # Path Solution
28
- @solution = {business_sid: business_sid}
29
- end
30
-
31
- ##
32
- # Provide a user friendly representation
33
- def to_s
34
- '#<Twilio.Preview.TrustedComms.ImpressionsRateList>'
35
- end
36
- end
37
-
38
- ##
39
- # PLEASE NOTE that this class contains preview products that are subject to change. Use them with caution. If you currently do not have developer preview access, please contact help@twilio.com.
40
- class ImpressionsRatePage < Page
41
- ##
42
- # Initialize the ImpressionsRatePage
43
- # @param [Version] version Version that contains the resource
44
- # @param [Response] response Response from the API
45
- # @param [Hash] solution Path solution for the resource
46
- # @return [ImpressionsRatePage] ImpressionsRatePage
47
- def initialize(version, response, solution)
48
- super(version, response)
49
-
50
- # Path Solution
51
- @solution = solution
52
- end
53
-
54
- ##
55
- # Build an instance of ImpressionsRateInstance
56
- # @param [Hash] payload Payload response from the API
57
- # @return [ImpressionsRateInstance] ImpressionsRateInstance
58
- def get_instance(payload)
59
- ImpressionsRateInstance.new(@version, payload, business_sid: @solution[:business_sid], )
60
- end
61
-
62
- ##
63
- # Provide a user friendly representation
64
- def to_s
65
- '<Twilio.Preview.TrustedComms.ImpressionsRatePage>'
66
- end
67
- end
68
-
69
- ##
70
- # PLEASE NOTE that this class contains preview products that are subject to change. Use them with caution. If you currently do not have developer preview access, please contact help@twilio.com.
71
- class ImpressionsRateContext < InstanceContext
72
- ##
73
- # Initialize the ImpressionsRateContext
74
- # @param [Version] version Version that contains the resource
75
- # @param [String] business_sid The unique SID identifier of the Business to filter
76
- # by.
77
- # @return [ImpressionsRateContext] ImpressionsRateContext
78
- def initialize(version, business_sid)
79
- super(version)
80
-
81
- # Path Solution
82
- @solution = {business_sid: business_sid, }
83
- @uri = "/Businesses/#{@solution[:business_sid]}/Insights/ImpressionsRate"
84
- end
85
-
86
- ##
87
- # Fetch the ImpressionsRateInstance
88
- # @param [String] brand_sid The unique SID identifier of the Brand to filter by.
89
- # @param [String] branded_channel_sid The unique SID identifier of the Branded
90
- # Channel to filter by.
91
- # @param [String] phone_number_sid The unique SID identifier of the Phone Number
92
- # to filter by.
93
- # @param [String] country The 2-letter ISO 3166 code of the Country to filter by.
94
- # @param [Time] start The start date that for this Impressions Rate, given in ISO
95
- # 8601 format. Default value is 30 days ago.
96
- # @param [Time] end_ The end date that for this Impressions Rate, given in ISO
97
- # 8601 format. Default value is current timestamp.
98
- # @param [impressions_rate.Intervals] interval The Interval of this Impressions
99
- # Rate. One of `minute`, `hour`, `day`, `week` or `month`.
100
- # @return [ImpressionsRateInstance] Fetched ImpressionsRateInstance
101
- def fetch(brand_sid: :unset, branded_channel_sid: :unset, phone_number_sid: :unset, country: :unset, start: :unset, end_: :unset, interval: :unset)
102
- params = Twilio::Values.of({
103
- 'BrandSid' => brand_sid,
104
- 'BrandedChannelSid' => branded_channel_sid,
105
- 'PhoneNumberSid' => phone_number_sid,
106
- 'Country' => country,
107
- 'Start' => Twilio.serialize_iso8601_datetime(start),
108
- 'End' => Twilio.serialize_iso8601_datetime(end_),
109
- 'Interval' => interval,
110
- })
111
-
112
- payload = @version.fetch('GET', @uri, params: params)
113
-
114
- ImpressionsRateInstance.new(@version, payload, business_sid: @solution[:business_sid], )
115
- end
116
-
117
- ##
118
- # Provide a user friendly representation
119
- def to_s
120
- context = @solution.map {|k, v| "#{k}: #{v}"}.join(',')
121
- "#<Twilio.Preview.TrustedComms.ImpressionsRateContext #{context}>"
122
- end
123
-
124
- ##
125
- # Provide a detailed, user friendly representation
126
- def inspect
127
- context = @solution.map {|k, v| "#{k}: #{v}"}.join(',')
128
- "#<Twilio.Preview.TrustedComms.ImpressionsRateContext #{context}>"
129
- end
130
- end
131
-
132
- ##
133
- # PLEASE NOTE that this class contains preview products that are subject to change. Use them with caution. If you currently do not have developer preview access, please contact help@twilio.com.
134
- class ImpressionsRateInstance < InstanceResource
135
- ##
136
- # Initialize the ImpressionsRateInstance
137
- # @param [Version] version Version that contains the resource
138
- # @param [Hash] payload payload that contains response from Twilio
139
- # @param [String] business_sid A 34 character string that uniquely identifies this
140
- # Business.
141
- # @return [ImpressionsRateInstance] ImpressionsRateInstance
142
- def initialize(version, payload, business_sid: nil)
143
- super(version)
144
-
145
- # Marshaled Properties
146
- @properties = {
147
- 'account_sid' => payload['account_sid'],
148
- 'business_sid' => payload['business_sid'],
149
- 'end_' => Twilio.deserialize_iso8601_datetime(payload['end']),
150
- 'interval' => payload['interval'],
151
- 'reports' => payload['reports'],
152
- 'start' => Twilio.deserialize_iso8601_datetime(payload['start']),
153
- 'url' => payload['url'],
154
- }
155
-
156
- # Context
157
- @instance_context = nil
158
- @params = {'business_sid' => business_sid, }
159
- end
160
-
161
- ##
162
- # Generate an instance context for the instance, the context is capable of
163
- # performing various actions. All instance actions are proxied to the context
164
- # @return [ImpressionsRateContext] ImpressionsRateContext for this ImpressionsRateInstance
165
- def context
166
- unless @instance_context
167
- @instance_context = ImpressionsRateContext.new(@version, @params['business_sid'], )
168
- end
169
- @instance_context
170
- end
171
-
172
- ##
173
- # @return [String] Account Sid.
174
- def account_sid
175
- @properties['account_sid']
176
- end
177
-
178
- ##
179
- # @return [String] Business Sid.
180
- def business_sid
181
- @properties['business_sid']
182
- end
183
-
184
- ##
185
- # @return [Time] The end date that for this Impressions Rate.
186
- def end_
187
- @properties['end_']
188
- end
189
-
190
- ##
191
- # @return [impressions_rate.Intervals] The Interval of this Impressions Rate.
192
- def interval
193
- @properties['interval']
194
- end
195
-
196
- ##
197
- # @return [Hash] Values of Impressions Rate per interval.
198
- def reports
199
- @properties['reports']
200
- end
201
-
202
- ##
203
- # @return [Time] The start date that for this Impressions Rate.
204
- def start
205
- @properties['start']
206
- end
207
-
208
- ##
209
- # @return [String] The URL of this resource.
210
- def url
211
- @properties['url']
212
- end
213
-
214
- ##
215
- # Fetch the ImpressionsRateInstance
216
- # @param [String] brand_sid The unique SID identifier of the Brand to filter by.
217
- # @param [String] branded_channel_sid The unique SID identifier of the Branded
218
- # Channel to filter by.
219
- # @param [String] phone_number_sid The unique SID identifier of the Phone Number
220
- # to filter by.
221
- # @param [String] country The 2-letter ISO 3166 code of the Country to filter by.
222
- # @param [Time] start The start date that for this Impressions Rate, given in ISO
223
- # 8601 format. Default value is 30 days ago.
224
- # @param [Time] end_ The end date that for this Impressions Rate, given in ISO
225
- # 8601 format. Default value is current timestamp.
226
- # @param [impressions_rate.Intervals] interval The Interval of this Impressions
227
- # Rate. One of `minute`, `hour`, `day`, `week` or `month`.
228
- # @return [ImpressionsRateInstance] Fetched ImpressionsRateInstance
229
- def fetch(brand_sid: :unset, branded_channel_sid: :unset, phone_number_sid: :unset, country: :unset, start: :unset, end_: :unset, interval: :unset)
230
- context.fetch(
231
- brand_sid: brand_sid,
232
- branded_channel_sid: branded_channel_sid,
233
- phone_number_sid: phone_number_sid,
234
- country: country,
235
- start: start,
236
- end_: end_,
237
- interval: interval,
238
- )
239
- end
240
-
241
- ##
242
- # Provide a user friendly representation
243
- def to_s
244
- values = @params.map{|k, v| "#{k}: #{v}"}.join(" ")
245
- "<Twilio.Preview.TrustedComms.ImpressionsRateInstance #{values}>"
246
- end
247
-
248
- ##
249
- # Provide a detailed, user friendly representation
250
- def inspect
251
- values = @properties.map{|k, v| "#{k}: #{v}"}.join(" ")
252
- "<Twilio.Preview.TrustedComms.ImpressionsRateInstance #{values}>"
253
- end
254
- end
255
- end
256
- end
257
- end
258
- end
259
- end
260
- end