twilio-ruby 5.6.4 → 5.7.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b61bb869a4e198c0bec01878527e08e1923a8b8a
4
- data.tar.gz: 843793d920e54949decc3e2ab10df1e5ca6e18b0
3
+ metadata.gz: df9978edce096bf5092e3d6ac5a54c02d063795f
4
+ data.tar.gz: beb0f63c4bb36035ea5e78dcb32c258d388fb49e
5
5
  SHA512:
6
- metadata.gz: ab7d228e4ab9f24f3e387de64e77f0574e378981a3556fe93ec42ed1f285e0737d71f13d378fab006ee93f3a29d45688200fb70641f58b00e48c287da44fa133
7
- data.tar.gz: a32ac855b80a7e40b0c275d651db8523de2262f66cdd2031bed8f420a858038d83407a10ebee945e848d2a758613dcae84c1a83c969f8fb453932c717a194ead
6
+ metadata.gz: 6b31f0cedb31d01c8bea49036beff344fb865f90479ac21300a36415d1e691b7c3130dbf428d2914664560ff02432993a16567989f84c936ed7f8c513b755a4e
7
+ data.tar.gz: e6ae47e713762e25cf73505817d6a81e0177242df3fe5e3b365639871deb03e03bf978729b2dcd9970d92e2e194e60edf064827c1eed4a39eec47b5c21293a1b
data/.rubocop.yml CHANGED
@@ -21,6 +21,9 @@ Metrics/BlockLength:
21
21
  Metrics/AbcSize:
22
22
  Enabled: false
23
23
 
24
+ Layout/IndentHeredoc:
25
+ Enabled: false
26
+
24
27
  Metrics/ClassLength:
25
28
  Max: 175
26
29
 
data/CHANGES.md CHANGED
@@ -1,6 +1,15 @@
1
1
  twilio-ruby changelog
2
2
  =====================
3
3
 
4
+ [2018-03-02] Version 5.7.0
5
+ ---------------------------
6
+ **TwiML**
7
+ - Allow newlines in TwiML content. Better XML configuration in general.
8
+
9
+ **Studio**
10
+ - Add new /Context endpoint for step and engagement resources. Removes the context property from existing step and engagement resources. *(breaking change)*
11
+
12
+
4
13
  [2018-02-23] Version 5.6.4
5
14
  ---------------------------
6
15
  **Library**
data/Gemfile CHANGED
@@ -3,6 +3,7 @@ source 'https://rubygems.org'
3
3
  gemspec
4
4
 
5
5
  group :test do
6
+ gem 'equivalent-xml', '~> 0.6'
6
7
  gem 'fakeweb', '~> 1.3'
7
8
  gem 'rack', '~> 1.3'
8
9
  gem 'rake', '~> 10.1'
data/README.md CHANGED
@@ -27,13 +27,13 @@ in-line code documentation here in the library.
27
27
  To install using [Bundler][bundler] grab the latest stable version:
28
28
 
29
29
  ```ruby
30
- gem 'twilio-ruby', '~> 5.6.4'
30
+ gem 'twilio-ruby', '~> 5.7.0'
31
31
  ```
32
32
 
33
33
  To manually install `twilio-ruby` via [Rubygems][rubygems] simply gem install:
34
34
 
35
35
  ```bash
36
- gem install twilio-ruby -v 5.6.4
36
+ gem install twilio-ruby -v 5.7.0
37
37
  ```
38
38
 
39
39
  To build and install the development branch yourself from the latest source:
@@ -68,7 +68,7 @@ module Twilio
68
68
  client_name = "clientName=#{CGI.escape(@client_name)}"
69
69
  end
70
70
  unless @params.empty?
71
- params = 'appParams=' + @params.map { |k, v| CGI.escape("#{k}=#{v}") }.join('%26')
71
+ params = 'appParams=' + @params.map { |k, v| CGI.escape("#{k}=#{v}") }.join(CGI.escape('&'))
72
72
  end
73
73
 
74
74
  suffix = [application_sid, client_name, params].compact.join('&')
@@ -182,6 +182,7 @@ module Twilio
182
182
 
183
183
  # Dependents
184
184
  @steps = nil
185
+ @engagement_context = nil
185
186
  end
186
187
 
187
188
  ##
@@ -217,6 +218,14 @@ module Twilio
217
218
  @steps
218
219
  end
219
220
 
221
+ ##
222
+ # Access the engagement_context
223
+ # @return [EngagementContextList]
224
+ # @return [EngagementContextContext]
225
+ def engagement_context
226
+ EngagementContextContext.new(@version, @solution[:flow_sid], @solution[:sid], )
227
+ end
228
+
220
229
  ##
221
230
  # Provide a user friendly representation
222
231
  def to_s
@@ -246,7 +255,6 @@ module Twilio
246
255
  'contact_sid' => payload['contact_sid'],
247
256
  'contact_channel_address' => payload['contact_channel_address'],
248
257
  'status' => payload['status'],
249
- 'context' => payload['context'],
250
258
  'date_created' => Twilio.deserialize_iso8601_datetime(payload['date_created']),
251
259
  'date_updated' => Twilio.deserialize_iso8601_datetime(payload['date_updated']),
252
260
  'url' => payload['url'],
@@ -305,12 +313,6 @@ module Twilio
305
313
  @properties['status']
306
314
  end
307
315
 
308
- ##
309
- # @return [Hash] The context
310
- def context
311
- @properties['context']
312
- end
313
-
314
316
  ##
315
317
  # @return [Time] The date_created
316
318
  def date_created
@@ -349,6 +351,13 @@ module Twilio
349
351
  context.steps
350
352
  end
351
353
 
354
+ ##
355
+ # Access the engagement_context
356
+ # @return [engagement_context] engagement_context
357
+ def engagement_context
358
+ context.engagement_context
359
+ end
360
+
352
361
  ##
353
362
  # Provide a user friendly representation
354
363
  def to_s
@@ -0,0 +1,215 @@
1
+ ##
2
+ # This code was generated by
3
+ # \ / _ _ _| _ _
4
+ # | (_)\/(_)(_|\/| |(/_ v1.0.0
5
+ # / /
6
+
7
+ module Twilio
8
+ module REST
9
+ class Studio < Domain
10
+ class V1 < Version
11
+ class FlowContext < InstanceContext
12
+ class EngagementContext < InstanceContext
13
+ ##
14
+ # PLEASE NOTE that this class contains beta products that are subject to change. Use them with caution.
15
+ class EngagementContextList < ListResource
16
+ ##
17
+ # Initialize the EngagementContextList
18
+ # @param [Version] version Version that contains the resource
19
+ # @param [String] flow_sid The flow_sid
20
+ # @param [String] engagement_sid The engagement_sid
21
+ # @return [EngagementContextList] EngagementContextList
22
+ def initialize(version, flow_sid: nil, engagement_sid: nil)
23
+ super(version)
24
+
25
+ # Path Solution
26
+ @solution = {flow_sid: flow_sid, engagement_sid: engagement_sid}
27
+ end
28
+
29
+ ##
30
+ # Provide a user friendly representation
31
+ def to_s
32
+ '#<Twilio.Studio.V1.EngagementContextList>'
33
+ end
34
+ end
35
+
36
+ ##
37
+ # PLEASE NOTE that this class contains beta products that are subject to change. Use them with caution.
38
+ class EngagementContextPage < Page
39
+ ##
40
+ # Initialize the EngagementContextPage
41
+ # @param [Version] version Version that contains the resource
42
+ # @param [Response] response Response from the API
43
+ # @param [Hash] solution Path solution for the resource
44
+ # @return [EngagementContextPage] EngagementContextPage
45
+ def initialize(version, response, solution)
46
+ super(version, response)
47
+
48
+ # Path Solution
49
+ @solution = solution
50
+ end
51
+
52
+ ##
53
+ # Build an instance of EngagementContextInstance
54
+ # @param [Hash] payload Payload response from the API
55
+ # @return [EngagementContextInstance] EngagementContextInstance
56
+ def get_instance(payload)
57
+ EngagementContextInstance.new(
58
+ @version,
59
+ payload,
60
+ flow_sid: @solution[:flow_sid],
61
+ engagement_sid: @solution[:engagement_sid],
62
+ )
63
+ end
64
+
65
+ ##
66
+ # Provide a user friendly representation
67
+ def to_s
68
+ '<Twilio.Studio.V1.EngagementContextPage>'
69
+ end
70
+ end
71
+
72
+ ##
73
+ # PLEASE NOTE that this class contains beta products that are subject to change. Use them with caution.
74
+ class EngagementContextContext < InstanceContext
75
+ ##
76
+ # Initialize the EngagementContextContext
77
+ # @param [Version] version Version that contains the resource
78
+ # @param [String] flow_sid The flow_sid
79
+ # @param [String] engagement_sid The engagement_sid
80
+ # @return [EngagementContextContext] EngagementContextContext
81
+ def initialize(version, flow_sid, engagement_sid)
82
+ super(version)
83
+
84
+ # Path Solution
85
+ @solution = {flow_sid: flow_sid, engagement_sid: engagement_sid, }
86
+ @uri = "/Flows/#{@solution[:flow_sid]}/Engagements/#{@solution[:engagement_sid]}/Context"
87
+ end
88
+
89
+ ##
90
+ # Fetch a EngagementContextInstance
91
+ # @return [EngagementContextInstance] Fetched EngagementContextInstance
92
+ def fetch
93
+ params = Twilio::Values.of({})
94
+
95
+ payload = @version.fetch(
96
+ 'GET',
97
+ @uri,
98
+ params,
99
+ )
100
+
101
+ EngagementContextInstance.new(
102
+ @version,
103
+ payload,
104
+ flow_sid: @solution[:flow_sid],
105
+ engagement_sid: @solution[:engagement_sid],
106
+ )
107
+ end
108
+
109
+ ##
110
+ # Provide a user friendly representation
111
+ def to_s
112
+ context = @solution.map {|k, v| "#{k}: #{v}"}.join(',')
113
+ "#<Twilio.Studio.V1.EngagementContextContext #{context}>"
114
+ end
115
+ end
116
+
117
+ ##
118
+ # PLEASE NOTE that this class contains beta products that are subject to change. Use them with caution.
119
+ class EngagementContextInstance < InstanceResource
120
+ ##
121
+ # Initialize the EngagementContextInstance
122
+ # @param [Version] version Version that contains the resource
123
+ # @param [Hash] payload payload that contains response from Twilio
124
+ # @param [String] flow_sid The flow_sid
125
+ # @param [String] engagement_sid The engagement_sid
126
+ # @return [EngagementContextInstance] EngagementContextInstance
127
+ def initialize(version, payload, flow_sid: nil, engagement_sid: nil)
128
+ super(version)
129
+
130
+ # Marshaled Properties
131
+ @properties = {
132
+ 'account_sid' => payload['account_sid'],
133
+ 'context' => payload['context'],
134
+ 'engagement_sid' => payload['engagement_sid'],
135
+ 'flow_sid' => payload['flow_sid'],
136
+ 'url' => payload['url'],
137
+ }
138
+
139
+ # Context
140
+ @instance_context = nil
141
+ @params = {'flow_sid' => flow_sid, 'engagement_sid' => engagement_sid, }
142
+ end
143
+
144
+ ##
145
+ # Generate an instance context for the instance, the context is capable of
146
+ # performing various actions. All instance actions are proxied to the context
147
+ # @return [EngagementContextContext] EngagementContextContext for this EngagementContextInstance
148
+ def context
149
+ unless @instance_context
150
+ @instance_context = EngagementContextContext.new(
151
+ @version,
152
+ @params['flow_sid'],
153
+ @params['engagement_sid'],
154
+ )
155
+ end
156
+ @instance_context
157
+ end
158
+
159
+ ##
160
+ # @return [String] The account_sid
161
+ def account_sid
162
+ @properties['account_sid']
163
+ end
164
+
165
+ ##
166
+ # @return [Hash] The context
167
+ def context
168
+ @properties['context']
169
+ end
170
+
171
+ ##
172
+ # @return [String] The engagement_sid
173
+ def engagement_sid
174
+ @properties['engagement_sid']
175
+ end
176
+
177
+ ##
178
+ # @return [String] The flow_sid
179
+ def flow_sid
180
+ @properties['flow_sid']
181
+ end
182
+
183
+ ##
184
+ # @return [String] The url
185
+ def url
186
+ @properties['url']
187
+ end
188
+
189
+ ##
190
+ # Fetch a EngagementContextInstance
191
+ # @return [EngagementContextInstance] Fetched EngagementContextInstance
192
+ def fetch
193
+ context.fetch
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.Studio.V1.EngagementContextInstance #{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.Studio.V1.EngagementContextInstance #{values}>"
208
+ end
209
+ end
210
+ end
211
+ end
212
+ end
213
+ end
214
+ end
215
+ end
@@ -168,6 +168,9 @@ module Twilio
168
168
  # Path Solution
169
169
  @solution = {flow_sid: flow_sid, engagement_sid: engagement_sid, sid: sid, }
170
170
  @uri = "/Flows/#{@solution[:flow_sid]}/Engagements/#{@solution[:engagement_sid]}/Steps/#{@solution[:sid]}"
171
+
172
+ # Dependents
173
+ @step_context = nil
171
174
  end
172
175
 
173
176
  ##
@@ -191,6 +194,14 @@ module Twilio
191
194
  )
192
195
  end
193
196
 
197
+ ##
198
+ # Access the step_context
199
+ # @return [StepContextList]
200
+ # @return [StepContextContext]
201
+ def step_context
202
+ StepContextContext.new(@version, @solution[:flow_sid], @solution[:engagement_sid], @solution[:sid], )
203
+ end
204
+
194
205
  ##
195
206
  # Provide a user friendly representation
196
207
  def to_s
@@ -220,12 +231,12 @@ module Twilio
220
231
  'flow_sid' => payload['flow_sid'],
221
232
  'engagement_sid' => payload['engagement_sid'],
222
233
  'name' => payload['name'],
223
- 'context' => payload['context'],
224
234
  'transitioned_from' => payload['transitioned_from'],
225
235
  'transitioned_to' => payload['transitioned_to'],
226
236
  'date_created' => Twilio.deserialize_iso8601_datetime(payload['date_created']),
227
237
  'date_updated' => Twilio.deserialize_iso8601_datetime(payload['date_updated']),
228
238
  'url' => payload['url'],
239
+ 'links' => payload['links'],
229
240
  }
230
241
 
231
242
  # Context
@@ -283,12 +294,6 @@ module Twilio
283
294
  @properties['name']
284
295
  end
285
296
 
286
- ##
287
- # @return [Hash] The context
288
- def context
289
- @properties['context']
290
- end
291
-
292
297
  ##
293
298
  # @return [String] The transitioned_from
294
299
  def transitioned_from
@@ -319,6 +324,12 @@ module Twilio
319
324
  @properties['url']
320
325
  end
321
326
 
327
+ ##
328
+ # @return [String] The links
329
+ def links
330
+ @properties['links']
331
+ end
332
+
322
333
  ##
323
334
  # Fetch a StepInstance
324
335
  # @return [StepInstance] Fetched StepInstance
@@ -326,6 +337,13 @@ module Twilio
326
337
  context.fetch
327
338
  end
328
339
 
340
+ ##
341
+ # Access the step_context
342
+ # @return [step_context] step_context
343
+ def step_context
344
+ context.step_context
345
+ end
346
+
329
347
  ##
330
348
  # Provide a user friendly representation
331
349
  def to_s
@@ -0,0 +1,230 @@
1
+ ##
2
+ # This code was generated by
3
+ # \ / _ _ _| _ _
4
+ # | (_)\/(_)(_|\/| |(/_ v1.0.0
5
+ # / /
6
+
7
+ module Twilio
8
+ module REST
9
+ class Studio < Domain
10
+ class V1 < Version
11
+ class FlowContext < InstanceContext
12
+ class EngagementContext < InstanceContext
13
+ class StepContext < InstanceContext
14
+ ##
15
+ # PLEASE NOTE that this class contains beta products that are subject to change. Use them with caution.
16
+ class StepContextList < ListResource
17
+ ##
18
+ # Initialize the StepContextList
19
+ # @param [Version] version Version that contains the resource
20
+ # @param [String] flow_sid The flow_sid
21
+ # @param [String] engagement_sid The engagement_sid
22
+ # @param [String] step_sid The step_sid
23
+ # @return [StepContextList] StepContextList
24
+ def initialize(version, flow_sid: nil, engagement_sid: nil, step_sid: nil)
25
+ super(version)
26
+
27
+ # Path Solution
28
+ @solution = {flow_sid: flow_sid, engagement_sid: engagement_sid, step_sid: step_sid}
29
+ end
30
+
31
+ ##
32
+ # Provide a user friendly representation
33
+ def to_s
34
+ '#<Twilio.Studio.V1.StepContextList>'
35
+ end
36
+ end
37
+
38
+ ##
39
+ # PLEASE NOTE that this class contains beta products that are subject to change. Use them with caution.
40
+ class StepContextPage < Page
41
+ ##
42
+ # Initialize the StepContextPage
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 [StepContextPage] StepContextPage
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 StepContextInstance
56
+ # @param [Hash] payload Payload response from the API
57
+ # @return [StepContextInstance] StepContextInstance
58
+ def get_instance(payload)
59
+ StepContextInstance.new(
60
+ @version,
61
+ payload,
62
+ flow_sid: @solution[:flow_sid],
63
+ engagement_sid: @solution[:engagement_sid],
64
+ step_sid: @solution[:step_sid],
65
+ )
66
+ end
67
+
68
+ ##
69
+ # Provide a user friendly representation
70
+ def to_s
71
+ '<Twilio.Studio.V1.StepContextPage>'
72
+ end
73
+ end
74
+
75
+ ##
76
+ # PLEASE NOTE that this class contains beta products that are subject to change. Use them with caution.
77
+ class StepContextContext < InstanceContext
78
+ ##
79
+ # Initialize the StepContextContext
80
+ # @param [Version] version Version that contains the resource
81
+ # @param [String] flow_sid The flow_sid
82
+ # @param [String] engagement_sid The engagement_sid
83
+ # @param [String] step_sid The step_sid
84
+ # @return [StepContextContext] StepContextContext
85
+ def initialize(version, flow_sid, engagement_sid, step_sid)
86
+ super(version)
87
+
88
+ # Path Solution
89
+ @solution = {flow_sid: flow_sid, engagement_sid: engagement_sid, step_sid: step_sid, }
90
+ @uri = "/Flows/#{@solution[:flow_sid]}/Engagements/#{@solution[:engagement_sid]}/Steps/#{@solution[:step_sid]}/Context"
91
+ end
92
+
93
+ ##
94
+ # Fetch a StepContextInstance
95
+ # @return [StepContextInstance] Fetched StepContextInstance
96
+ def fetch
97
+ params = Twilio::Values.of({})
98
+
99
+ payload = @version.fetch(
100
+ 'GET',
101
+ @uri,
102
+ params,
103
+ )
104
+
105
+ StepContextInstance.new(
106
+ @version,
107
+ payload,
108
+ flow_sid: @solution[:flow_sid],
109
+ engagement_sid: @solution[:engagement_sid],
110
+ step_sid: @solution[:step_sid],
111
+ )
112
+ end
113
+
114
+ ##
115
+ # Provide a user friendly representation
116
+ def to_s
117
+ context = @solution.map {|k, v| "#{k}: #{v}"}.join(',')
118
+ "#<Twilio.Studio.V1.StepContextContext #{context}>"
119
+ end
120
+ end
121
+
122
+ ##
123
+ # PLEASE NOTE that this class contains beta products that are subject to change. Use them with caution.
124
+ class StepContextInstance < InstanceResource
125
+ ##
126
+ # Initialize the StepContextInstance
127
+ # @param [Version] version Version that contains the resource
128
+ # @param [Hash] payload payload that contains response from Twilio
129
+ # @param [String] flow_sid The flow_sid
130
+ # @param [String] engagement_sid The engagement_sid
131
+ # @param [String] step_sid The step_sid
132
+ # @return [StepContextInstance] StepContextInstance
133
+ def initialize(version, payload, flow_sid: nil, engagement_sid: nil, step_sid: nil)
134
+ super(version)
135
+
136
+ # Marshaled Properties
137
+ @properties = {
138
+ 'account_sid' => payload['account_sid'],
139
+ 'context' => payload['context'],
140
+ 'engagement_sid' => payload['engagement_sid'],
141
+ 'flow_sid' => payload['flow_sid'],
142
+ 'step_sid' => payload['step_sid'],
143
+ 'url' => payload['url'],
144
+ }
145
+
146
+ # Context
147
+ @instance_context = nil
148
+ @params = {'flow_sid' => flow_sid, 'engagement_sid' => engagement_sid, 'step_sid' => step_sid, }
149
+ end
150
+
151
+ ##
152
+ # Generate an instance context for the instance, the context is capable of
153
+ # performing various actions. All instance actions are proxied to the context
154
+ # @return [StepContextContext] StepContextContext for this StepContextInstance
155
+ def context
156
+ unless @instance_context
157
+ @instance_context = StepContextContext.new(
158
+ @version,
159
+ @params['flow_sid'],
160
+ @params['engagement_sid'],
161
+ @params['step_sid'],
162
+ )
163
+ end
164
+ @instance_context
165
+ end
166
+
167
+ ##
168
+ # @return [String] The account_sid
169
+ def account_sid
170
+ @properties['account_sid']
171
+ end
172
+
173
+ ##
174
+ # @return [Hash] The context
175
+ def context
176
+ @properties['context']
177
+ end
178
+
179
+ ##
180
+ # @return [String] The engagement_sid
181
+ def engagement_sid
182
+ @properties['engagement_sid']
183
+ end
184
+
185
+ ##
186
+ # @return [String] The flow_sid
187
+ def flow_sid
188
+ @properties['flow_sid']
189
+ end
190
+
191
+ ##
192
+ # @return [String] The step_sid
193
+ def step_sid
194
+ @properties['step_sid']
195
+ end
196
+
197
+ ##
198
+ # @return [String] The url
199
+ def url
200
+ @properties['url']
201
+ end
202
+
203
+ ##
204
+ # Fetch a StepContextInstance
205
+ # @return [StepContextInstance] Fetched StepContextInstance
206
+ def fetch
207
+ context.fetch
208
+ end
209
+
210
+ ##
211
+ # Provide a user friendly representation
212
+ def to_s
213
+ values = @params.map{|k, v| "#{k}: #{v}"}.join(" ")
214
+ "<Twilio.Studio.V1.StepContextInstance #{values}>"
215
+ end
216
+
217
+ ##
218
+ # Provide a detailed, user friendly representation
219
+ def inspect
220
+ values = @properties.map{|k, v| "#{k}: #{v}"}.join(" ")
221
+ "<Twilio.Studio.V1.StepContextInstance #{values}>"
222
+ end
223
+ end
224
+ end
225
+ end
226
+ end
227
+ end
228
+ end
229
+ end
230
+ end