twilio-ruby 5.14.1 → 5.15.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 (80) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGES.md +33 -0
  3. data/README.md +2 -2
  4. data/lib/twilio-ruby/rest/api/v2010/account/call/recording.rb +2 -1
  5. data/lib/twilio-ruby/rest/authy.rb +55 -0
  6. data/lib/twilio-ruby/rest/authy/v1.rb +59 -0
  7. data/lib/twilio-ruby/rest/authy/v1/form.rb +190 -0
  8. data/lib/twilio-ruby/rest/authy/v1/service.rb +378 -0
  9. data/lib/twilio-ruby/rest/authy/v1/service/entity.rb +372 -0
  10. data/lib/twilio-ruby/rest/authy/v1/service/entity/factor.rb +474 -0
  11. data/lib/twilio-ruby/rest/authy/v1/service/entity/factor/challenge.rb +405 -0
  12. data/lib/twilio-ruby/rest/autopilot.rb +47 -0
  13. data/lib/twilio-ruby/rest/autopilot/v1.rb +43 -0
  14. data/lib/twilio-ruby/rest/autopilot/v1/assistant.rb +606 -0
  15. data/lib/twilio-ruby/rest/autopilot/v1/assistant/defaults.rb +215 -0
  16. data/lib/twilio-ruby/rest/autopilot/v1/assistant/dialogue.rb +205 -0
  17. data/lib/twilio-ruby/rest/autopilot/v1/assistant/field_type.rb +417 -0
  18. data/lib/twilio-ruby/rest/autopilot/v1/assistant/field_type/field_value.rb +393 -0
  19. data/lib/twilio-ruby/rest/autopilot/v1/assistant/model_build.rb +390 -0
  20. data/lib/twilio-ruby/rest/autopilot/v1/assistant/query.rb +443 -0
  21. data/lib/twilio-ruby/rest/autopilot/v1/assistant/style_sheet.rb +215 -0
  22. data/lib/twilio-ruby/rest/{preview/understand/assistant/intent.rb → autopilot/v1/assistant/task.rb} +91 -84
  23. data/lib/twilio-ruby/rest/autopilot/v1/assistant/task/field.rb +377 -0
  24. data/lib/twilio-ruby/rest/autopilot/v1/assistant/task/sample.rb +442 -0
  25. data/lib/twilio-ruby/rest/autopilot/v1/assistant/task/task_actions.rb +244 -0
  26. data/lib/twilio-ruby/rest/{preview/understand/assistant/intent/intent_statistics.rb → autopilot/v1/assistant/task/task_statistics.rb} +49 -51
  27. data/lib/twilio-ruby/rest/chat/v1/service.rb +1 -1
  28. data/lib/twilio-ruby/rest/chat/v2/service/channel.rb +12 -6
  29. data/lib/twilio-ruby/rest/client.rb +14 -0
  30. data/lib/twilio-ruby/rest/ip_messaging/v1/service.rb +1 -1
  31. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel.rb +12 -6
  32. data/lib/twilio-ruby/rest/preview/understand.rb +2 -1
  33. data/lib/twilio-ruby/rest/preview/understand/assistant.rb +59 -29
  34. data/lib/twilio-ruby/rest/preview/understand/assistant/query.rb +17 -13
  35. data/lib/twilio-ruby/rest/preview/understand/assistant/style_sheet.rb +215 -0
  36. data/lib/twilio-ruby/rest/preview/understand/assistant/task.rb +505 -0
  37. data/lib/twilio-ruby/rest/preview/understand/assistant/{intent → task}/field.rb +25 -25
  38. data/lib/twilio-ruby/rest/preview/understand/assistant/{intent → task}/sample.rb +30 -30
  39. data/lib/twilio-ruby/rest/preview/understand/assistant/{intent/intent_actions.rb → task/task_actions.rb} +50 -54
  40. data/lib/twilio-ruby/rest/preview/understand/assistant/task/task_statistics.rb +224 -0
  41. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue.rb +7 -7
  42. data/lib/twilio-ruby/rest/verify/v1/service.rb +45 -6
  43. data/lib/twilio-ruby/rest/verify/v1/service/verification.rb +9 -2
  44. data/lib/twilio-ruby/rest/wireless/v1/command.rb +32 -5
  45. data/lib/twilio-ruby/twiml/voice_response.rb +66 -5
  46. data/lib/twilio-ruby/version.rb +1 -1
  47. data/spec/integration/api/v2010/account/call/recording_spec.rb +3 -3
  48. data/spec/integration/api/v2010/account/conference/participant_spec.rb +42 -1
  49. data/spec/integration/api/v2010/account/conference/recording_spec.rb +2 -2
  50. data/spec/integration/authy/v1/form_spec.rb +48 -0
  51. data/spec/integration/authy/v1/service/entity/factor/challenge_spec.rb +267 -0
  52. data/spec/integration/authy/v1/service/entity/factor_spec.rb +269 -0
  53. data/spec/integration/authy/v1/service/entity_spec.rb +201 -0
  54. data/spec/integration/authy/v1/service_spec.rb +227 -0
  55. data/spec/integration/autopilot/v1/assistant/defaults_spec.rb +81 -0
  56. data/spec/integration/autopilot/v1/assistant/dialogue_spec.rb +47 -0
  57. data/spec/integration/autopilot/v1/assistant/field_type/field_value_spec.rb +210 -0
  58. data/spec/integration/autopilot/v1/assistant/field_type_spec.rb +246 -0
  59. data/spec/integration/autopilot/v1/assistant/model_build_spec.rb +241 -0
  60. data/spec/integration/autopilot/v1/assistant/query_spec.rb +306 -0
  61. data/spec/integration/autopilot/v1/assistant/style_sheet_spec.rb +81 -0
  62. data/spec/integration/autopilot/v1/assistant/task/field_spec.rb +207 -0
  63. data/spec/integration/autopilot/v1/assistant/task/sample_spec.rb +253 -0
  64. data/spec/integration/autopilot/v1/assistant/task/task_actions_spec.rb +87 -0
  65. data/spec/integration/autopilot/v1/assistant/task/task_statistics_spec.rb +50 -0
  66. data/spec/integration/autopilot/v1/assistant/task_spec.rb +262 -0
  67. data/spec/integration/autopilot/v1/assistant_spec.rb +270 -0
  68. data/spec/integration/preview/understand/assistant/query_spec.rb +8 -8
  69. data/spec/integration/preview/understand/assistant/style_sheet_spec.rb +81 -0
  70. data/spec/integration/preview/understand/assistant/{intent → task}/field_spec.rb +23 -23
  71. data/spec/integration/preview/understand/assistant/{intent → task}/sample_spec.rb +28 -28
  72. data/spec/integration/preview/understand/assistant/{intent/intent_actions_spec.rb → task/task_actions_spec.rb} +15 -15
  73. data/spec/integration/preview/understand/assistant/{intent/intent_statistics_spec.rb → task/task_statistics_spec.rb} +6 -6
  74. data/spec/integration/preview/understand/assistant/{intent_spec.rb → task_spec.rb} +53 -49
  75. data/spec/integration/preview/understand/assistant_spec.rb +12 -8
  76. data/spec/integration/taskrouter/v1/workspace/task_queue_spec.rb +3 -7
  77. data/spec/integration/verify/v1/service_spec.rb +30 -0
  78. data/spec/integration/wireless/v1/command_spec.rb +99 -2
  79. data/spec/twiml/voice_response_spec.rb +25 -2
  80. metadata +78 -17
@@ -619,15 +619,18 @@ module Twilio
619
619
 
620
620
  ##
621
621
  # Create a new <Client> element
622
- # name:: Client name
622
+ # identity:: Client identity
623
623
  # url:: Client URL
624
624
  # method:: Client URL Method
625
625
  # status_callback_event:: Events to trigger status callback
626
626
  # status_callback:: Status Callback URL
627
627
  # status_callback_method:: Status Callback URL Method
628
628
  # keyword_args:: additional attributes
629
- def client(name, url: nil, method: nil, status_callback_event: nil, status_callback: nil, status_callback_method: nil, **keyword_args)
630
- append(Client.new(name, url: url, method: method, status_callback_event: status_callback_event, status_callback: status_callback, status_callback_method: status_callback_method, **keyword_args))
629
+ def client(identity: nil, url: nil, method: nil, status_callback_event: nil, status_callback: nil, status_callback_method: nil, **keyword_args)
630
+ client = Client.new(identity: identity, url: url, method: method, status_callback_event: status_callback_event, status_callback: status_callback, status_callback_method: status_callback_method, **keyword_args)
631
+
632
+ yield(client) if block_given?
633
+ append(client)
631
634
  end
632
635
 
633
636
  ##
@@ -753,10 +756,49 @@ module Twilio
753
756
  ##
754
757
  # <Client> TwiML Noun
755
758
  class Client < TwiML
756
- def initialize(name, **keyword_args)
759
+ def initialize(identity: nil, **keyword_args)
757
760
  super(**keyword_args)
758
761
  @name = 'Client'
759
- @value = name
762
+ @value = identity unless identity.nil?
763
+ yield(self) if block_given?
764
+ end
765
+
766
+ ##
767
+ # Create a new <Identity> element
768
+ # client_identity:: Identity of the client to dial
769
+ # keyword_args:: additional attributes
770
+ def identity(client_identity, **keyword_args)
771
+ append(Identity.new(client_identity, **keyword_args))
772
+ end
773
+
774
+ ##
775
+ # Create a new <Parameter> element
776
+ # name:: The name of the custom parameter
777
+ # value:: The value of the custom parameter
778
+ # keyword_args:: additional attributes
779
+ def parameter(name: nil, value: nil, **keyword_args)
780
+ append(Parameter.new(name: name, value: value, **keyword_args))
781
+ end
782
+ end
783
+
784
+ ##
785
+ # <Parameter> TwiML Noun
786
+ class Parameter < TwiML
787
+ def initialize(**keyword_args)
788
+ super(**keyword_args)
789
+ @name = 'Parameter'
790
+
791
+ yield(self) if block_given?
792
+ end
793
+ end
794
+
795
+ ##
796
+ # <Identity> TwiML Noun
797
+ class Identity < TwiML
798
+ def initialize(client_identity, **keyword_args)
799
+ super(**keyword_args)
800
+ @name = 'Identity'
801
+ @value = client_identity
760
802
  yield(self) if block_given?
761
803
  end
762
804
  end
@@ -779,6 +821,25 @@ module Twilio
779
821
  def room(name, participantIdentity: nil, **keyword_args)
780
822
  append(Room.new(name, participantIdentity: participantIdentity, **keyword_args))
781
823
  end
824
+
825
+ ##
826
+ # Create a new <Autopilot> element
827
+ # name:: Autopilot assistant sid or unique name
828
+ # keyword_args:: additional attributes
829
+ def autopilot(name, **keyword_args)
830
+ append(Autopilot.new(name, **keyword_args))
831
+ end
832
+ end
833
+
834
+ ##
835
+ # <Autopilot> TwiML Noun
836
+ class Autopilot < TwiML
837
+ def initialize(name, **keyword_args)
838
+ super(**keyword_args)
839
+ @name = 'Autopilot'
840
+ @value = name
841
+ yield(self) if block_given?
842
+ end
782
843
  end
783
844
 
784
845
  ##
@@ -1,3 +1,3 @@
1
1
  module Twilio
2
- VERSION = '5.14.1'
2
+ VERSION = '5.15.0'
3
3
  end
@@ -41,7 +41,7 @@ describe 'Recording' do
41
41
  "start_time": "Fri, 14 Oct 2016 21:56:34 +0000",
42
42
  "price": null,
43
43
  "price_unit": null,
44
- "duration": "-1",
44
+ "duration": null,
45
45
  "sid": "REaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
46
46
  "source": "StartCallRecordingAPI",
47
47
  "status": "in-progress",
@@ -88,11 +88,11 @@ describe 'Recording' do
88
88
  "conference_sid": null,
89
89
  "channels": 2,
90
90
  "date_created": "Fri, 14 Oct 2016 21:56:34 +0000",
91
- "date_updated": "Fri, 14 Oct 2016 21:56:34 +0000",
91
+ "date_updated": "Fri, 14 Oct 2016 21:56:36 +0000",
92
92
  "start_time": "Fri, 14 Oct 2016 21:56:34 +0000",
93
93
  "price": null,
94
94
  "price_unit": null,
95
- "duration": "-1",
95
+ "duration": null,
96
96
  "sid": "REaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
97
97
  "source": "StartCallRecordingAPI",
98
98
  "status": "paused",
@@ -41,6 +41,8 @@ describe 'Participant' do
41
41
  "hold": false,
42
42
  "status": "complete",
43
43
  "start_conference_on_enter": true,
44
+ "coaching": true,
45
+ "call_sid_to_coach": "CAbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
44
46
  "uri": "/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Conferences/CFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Participants/CAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.json"
45
47
  }
46
48
  ]
@@ -70,7 +72,7 @@ describe 'Participant' do
70
72
  ))).to eq(true)
71
73
  end
72
74
 
73
- it "receives update responses" do
75
+ it "receives mute_participant responses" do
74
76
  @holodeck.mock(Twilio::Response.new(
75
77
  200,
76
78
  %q[
@@ -85,6 +87,37 @@ describe 'Participant' do
85
87
  "hold": false,
86
88
  "status": "complete",
87
89
  "start_conference_on_enter": true,
90
+ "coaching": false,
91
+ "call_sid_to_coach": null,
92
+ "uri": "/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Conferences/CFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Participants/CAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.json"
93
+ }
94
+ ]
95
+ ))
96
+
97
+ actual = @client.api.v2010.accounts('ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX') \
98
+ .conferences('CFXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX') \
99
+ .participants('CAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX').update()
100
+
101
+ expect(actual).to_not eq(nil)
102
+ end
103
+
104
+ it "receives modify_participant responses" do
105
+ @holodeck.mock(Twilio::Response.new(
106
+ 200,
107
+ %q[
108
+ {
109
+ "account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
110
+ "call_sid": "CAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
111
+ "conference_sid": "CFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
112
+ "date_created": "Fri, 18 Feb 2011 21:07:19 +0000",
113
+ "date_updated": "Fri, 18 Feb 2011 21:07:19 +0000",
114
+ "end_conference_on_exit": false,
115
+ "muted": false,
116
+ "hold": false,
117
+ "status": "complete",
118
+ "start_conference_on_enter": true,
119
+ "coaching": true,
120
+ "call_sid_to_coach": "CAbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
88
121
  "uri": "/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Conferences/CFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Participants/CAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.json"
89
122
  }
90
123
  ]
@@ -130,6 +163,8 @@ describe 'Participant' do
130
163
  "hold": false,
131
164
  "status": "complete",
132
165
  "start_conference_on_enter": true,
166
+ "coaching": false,
167
+ "call_sid_to_coach": null,
133
168
  "uri": "/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Conferences/CFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Participants/CAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.json"
134
169
  }
135
170
  ]
@@ -157,6 +192,8 @@ describe 'Participant' do
157
192
  "hold": false,
158
193
  "status": "complete",
159
194
  "start_conference_on_enter": true,
195
+ "coaching": false,
196
+ "call_sid_to_coach": null,
160
197
  "uri": "/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Conferences/CFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Participants/CAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.json"
161
198
  }
162
199
  ]
@@ -184,6 +221,8 @@ describe 'Participant' do
184
221
  "hold": false,
185
222
  "status": "queued",
186
223
  "start_conference_on_enter": true,
224
+ "coaching": false,
225
+ "call_sid_to_coach": null,
187
226
  "uri": "/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Conferences/CFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Participants/CAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.json"
188
227
  }
189
228
  ]
@@ -265,6 +304,8 @@ describe 'Participant' do
265
304
  "hold": false,
266
305
  "status": "complete",
267
306
  "start_conference_on_enter": true,
307
+ "coaching": true,
308
+ "call_sid_to_coach": "CAbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
268
309
  "uri": "/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Conferences/CFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Participants/CAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.json"
269
310
  }
270
311
  ],
@@ -38,11 +38,11 @@ describe 'Recording' do
38
38
  "conference_sid": "CFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
39
39
  "channels": 1,
40
40
  "date_created": "Fri, 14 Oct 2016 21:56:34 +0000",
41
- "date_updated": "Fri, 14 Oct 2016 21:56:34 +0000",
41
+ "date_updated": "Fri, 14 Oct 2016 21:56:39 +0000",
42
42
  "start_time": "Fri, 14 Oct 2016 21:56:34 +0000",
43
43
  "price": null,
44
44
  "price_unit": null,
45
- "duration": "-1",
45
+ "duration": null,
46
46
  "sid": "REaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
47
47
  "source": "StartConferenceRecordingAPI",
48
48
  "status": "paused",
@@ -0,0 +1,48 @@
1
+ ##
2
+ # This code was generated by
3
+ # \ / _ _ _| _ _
4
+ # | (_)\/(_)(_|\/| |(/_ v1.0.0
5
+ # / /
6
+ #
7
+ # frozen_string_literal: true
8
+
9
+ require 'spec_helper.rb'
10
+
11
+ describe 'Form' do
12
+ it "can fetch" do
13
+ @holodeck.mock(Twilio::Response.new(500, ''))
14
+
15
+ expect {
16
+ @client.authy.v1.forms('form-app-push').fetch()
17
+ }.to raise_exception(Twilio::REST::TwilioError)
18
+
19
+ values = {}
20
+ expect(
21
+ @holodeck.has_request?(Holodeck::Request.new(
22
+ method: 'get',
23
+ url: 'https://authy.twilio.com/v1/Forms/form-app-push',
24
+ ))).to eq(true)
25
+ end
26
+
27
+ it "receives fetch responses" do
28
+ @holodeck.mock(Twilio::Response.new(
29
+ 200,
30
+ %q[
31
+ {
32
+ "form_type": "form-sms",
33
+ "forms": {
34
+ "create_factor": {},
35
+ "verify_factor": {},
36
+ "create_challenge": {}
37
+ },
38
+ "form_meta": {},
39
+ "url": "https://authy.twilio.com/v1/Forms/form-sms"
40
+ }
41
+ ]
42
+ ))
43
+
44
+ actual = @client.authy.v1.forms('form-app-push').fetch()
45
+
46
+ expect(actual).to_not eq(nil)
47
+ end
48
+ end
@@ -0,0 +1,267 @@
1
+ ##
2
+ # This code was generated by
3
+ # \ / _ _ _| _ _
4
+ # | (_)\/(_)(_|\/| |(/_ v1.0.0
5
+ # / /
6
+ #
7
+ # frozen_string_literal: true
8
+
9
+ require 'spec_helper.rb'
10
+
11
+ describe 'Challenge' do
12
+ it "can create" do
13
+ @holodeck.mock(Twilio::Response.new(500, ''))
14
+
15
+ expect {
16
+ @client.authy.v1.services('ISXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX') \
17
+ .entities('identity') \
18
+ .factors('YFXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX') \
19
+ .challenges.create()
20
+ }.to raise_exception(Twilio::REST::TwilioError)
21
+
22
+ values = {}
23
+ expect(
24
+ @holodeck.has_request?(Holodeck::Request.new(
25
+ method: 'post',
26
+ url: 'https://authy.twilio.com/v1/Services/ISXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Entities/identity/Factors/YFXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Challenges',
27
+ ))).to eq(true)
28
+ end
29
+
30
+ it "receives create responses" do
31
+ @holodeck.mock(Twilio::Response.new(
32
+ 201,
33
+ %q[
34
+ {
35
+ "sid": "YCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
36
+ "account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
37
+ "service_sid": "ISaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
38
+ "entity_sid": "YEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
39
+ "identity": "ff483d1ff591898a9942916050d2ca3f",
40
+ "factor_sid": "YFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
41
+ "date_created": "2015-07-30T20:00:00Z",
42
+ "date_updated": "2015-07-30T20:00:00Z",
43
+ "date_responded": "2015-07-30T20:00:00Z",
44
+ "expiration_date": "2015-07-30T20:00:00Z",
45
+ "verification_sid": "VEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
46
+ "status": "pending",
47
+ "reason": "none",
48
+ "details": "Hi! Mr. John Doe, would you like to sign up?",
49
+ "hidden_details": "Hidden details about the sign up",
50
+ "type": "sms",
51
+ "url": "https://authy.twilio.com/v1/Services/ISaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Entities/ff483d1ff591898a9942916050d2ca3f/Factors/YFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Challenges/YCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
52
+ }
53
+ ]
54
+ ))
55
+
56
+ actual = @client.authy.v1.services('ISXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX') \
57
+ .entities('identity') \
58
+ .factors('YFXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX') \
59
+ .challenges.create()
60
+
61
+ expect(actual).to_not eq(nil)
62
+ end
63
+
64
+ it "can delete" do
65
+ @holodeck.mock(Twilio::Response.new(500, ''))
66
+
67
+ expect {
68
+ @client.authy.v1.services('ISXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX') \
69
+ .entities('identity') \
70
+ .factors('YFXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX') \
71
+ .challenges('sid').delete()
72
+ }.to raise_exception(Twilio::REST::TwilioError)
73
+
74
+ values = {}
75
+ expect(
76
+ @holodeck.has_request?(Holodeck::Request.new(
77
+ method: 'delete',
78
+ url: 'https://authy.twilio.com/v1/Services/ISXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Entities/identity/Factors/YFXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Challenges/sid',
79
+ ))).to eq(true)
80
+ end
81
+
82
+ it "receives delete responses" do
83
+ @holodeck.mock(Twilio::Response.new(
84
+ 204,
85
+ nil,
86
+ ))
87
+
88
+ actual = @client.authy.v1.services('ISXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX') \
89
+ .entities('identity') \
90
+ .factors('YFXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX') \
91
+ .challenges('sid').delete()
92
+
93
+ expect(actual).to eq(true)
94
+ end
95
+
96
+ it "can fetch" do
97
+ @holodeck.mock(Twilio::Response.new(500, ''))
98
+
99
+ expect {
100
+ @client.authy.v1.services('ISXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX') \
101
+ .entities('identity') \
102
+ .factors('YFXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX') \
103
+ .challenges('sid').fetch()
104
+ }.to raise_exception(Twilio::REST::TwilioError)
105
+
106
+ values = {}
107
+ expect(
108
+ @holodeck.has_request?(Holodeck::Request.new(
109
+ method: 'get',
110
+ url: 'https://authy.twilio.com/v1/Services/ISXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Entities/identity/Factors/YFXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Challenges/sid',
111
+ ))).to eq(true)
112
+ end
113
+
114
+ it "receives fetch_sid responses" do
115
+ @holodeck.mock(Twilio::Response.new(
116
+ 200,
117
+ %q[
118
+ {
119
+ "sid": "YCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
120
+ "account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
121
+ "service_sid": "ISaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
122
+ "entity_sid": "YEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
123
+ "identity": "ff483d1ff591898a9942916050d2ca3f",
124
+ "factor_sid": "YFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
125
+ "date_created": "2015-07-30T20:00:00Z",
126
+ "date_updated": "2015-07-30T20:00:00Z",
127
+ "date_responded": "2015-07-30T20:00:00Z",
128
+ "expiration_date": "2015-07-30T20:00:00Z",
129
+ "verification_sid": "VEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
130
+ "status": "pending",
131
+ "reason": "none",
132
+ "details": "details",
133
+ "hidden_details": "hidden_details",
134
+ "type": "sms",
135
+ "url": "https://authy.twilio.com/v1/Services/ISaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Entities/ff483d1ff591898a9942916050d2ca3f/Factors/YFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Challenges/YCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
136
+ }
137
+ ]
138
+ ))
139
+
140
+ actual = @client.authy.v1.services('ISXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX') \
141
+ .entities('identity') \
142
+ .factors('YFXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX') \
143
+ .challenges('sid').fetch()
144
+
145
+ expect(actual).to_not eq(nil)
146
+ end
147
+
148
+ it "receives fetch_latest responses" do
149
+ @holodeck.mock(Twilio::Response.new(
150
+ 200,
151
+ %q[
152
+ {
153
+ "sid": "YCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
154
+ "account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
155
+ "service_sid": "ISaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
156
+ "entity_sid": "YEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
157
+ "identity": "ff483d1ff591898a9942916050d2ca3f",
158
+ "factor_sid": "YFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
159
+ "date_created": "2015-07-30T20:00:00Z",
160
+ "date_updated": "2015-07-30T20:00:00Z",
161
+ "date_responded": "2015-07-30T20:00:00Z",
162
+ "expiration_date": "2015-07-30T20:00:00Z",
163
+ "verification_sid": "VEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
164
+ "status": "pending",
165
+ "reason": "none",
166
+ "details": "details",
167
+ "hidden_details": "hidden_details",
168
+ "type": "sms",
169
+ "url": "https://authy.twilio.com/v1/Services/ISaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Entities/ff483d1ff591898a9942916050d2ca3f/Factors/YFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Challenges/YCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
170
+ }
171
+ ]
172
+ ))
173
+
174
+ actual = @client.authy.v1.services('ISXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX') \
175
+ .entities('identity') \
176
+ .factors('YFXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX') \
177
+ .challenges('sid').fetch()
178
+
179
+ expect(actual).to_not eq(nil)
180
+ end
181
+
182
+ it "can update" do
183
+ @holodeck.mock(Twilio::Response.new(500, ''))
184
+
185
+ expect {
186
+ @client.authy.v1.services('ISXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX') \
187
+ .entities('identity') \
188
+ .factors('YFXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX') \
189
+ .challenges('sid').update()
190
+ }.to raise_exception(Twilio::REST::TwilioError)
191
+
192
+ values = {}
193
+ expect(
194
+ @holodeck.has_request?(Holodeck::Request.new(
195
+ method: 'post',
196
+ url: 'https://authy.twilio.com/v1/Services/ISXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Entities/identity/Factors/YFXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Challenges/sid',
197
+ ))).to eq(true)
198
+ end
199
+
200
+ it "receives verify_sid responses" do
201
+ @holodeck.mock(Twilio::Response.new(
202
+ 200,
203
+ %q[
204
+ {
205
+ "sid": "YCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
206
+ "account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
207
+ "service_sid": "ISaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
208
+ "entity_sid": "YEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
209
+ "identity": "ff483d1ff591898a9942916050d2ca3f",
210
+ "factor_sid": "YFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
211
+ "date_created": "2015-07-30T20:00:00Z",
212
+ "date_updated": "2015-07-30T20:00:00Z",
213
+ "date_responded": "2015-07-30T20:00:00Z",
214
+ "expiration_date": "2015-07-30T20:00:00Z",
215
+ "verification_sid": "VEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
216
+ "status": "approved",
217
+ "reason": "none",
218
+ "details": "Hi! Mr. John Doe, would you like to sign up?",
219
+ "hidden_details": "Hidden details about the sign up",
220
+ "type": "sms",
221
+ "url": "https://authy.twilio.com/v1/Services/ISaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Entities/ff483d1ff591898a9942916050d2ca3f/Factors/YFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Challenges/YCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
222
+ }
223
+ ]
224
+ ))
225
+
226
+ actual = @client.authy.v1.services('ISXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX') \
227
+ .entities('identity') \
228
+ .factors('YFXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX') \
229
+ .challenges('sid').update()
230
+
231
+ expect(actual).to_not eq(nil)
232
+ end
233
+
234
+ it "receives verify_latest responses" do
235
+ @holodeck.mock(Twilio::Response.new(
236
+ 200,
237
+ %q[
238
+ {
239
+ "sid": "YCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
240
+ "account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
241
+ "service_sid": "ISaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
242
+ "entity_sid": "YEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
243
+ "identity": "ff483d1ff591898a9942916050d2ca3f",
244
+ "factor_sid": "YFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
245
+ "date_created": "2015-07-30T20:00:00Z",
246
+ "date_updated": "2015-07-30T20:00:00Z",
247
+ "date_responded": "2015-07-30T20:00:00Z",
248
+ "expiration_date": "2015-07-30T20:00:00Z",
249
+ "verification_sid": "VEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
250
+ "status": "approved",
251
+ "reason": "none",
252
+ "details": "Hi! Mr. John Doe, would you like to sign up?",
253
+ "hidden_details": "Hidden details about the sign up",
254
+ "type": "sms",
255
+ "url": "https://authy.twilio.com/v1/Services/ISaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Entities/ff483d1ff591898a9942916050d2ca3f/Factors/YFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Challenges/YCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
256
+ }
257
+ ]
258
+ ))
259
+
260
+ actual = @client.authy.v1.services('ISXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX') \
261
+ .entities('identity') \
262
+ .factors('YFXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX') \
263
+ .challenges('sid').update()
264
+
265
+ expect(actual).to_not eq(nil)
266
+ end
267
+ end