twilio-ruby 5.10.6 → 5.10.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (27) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGES.md +12 -0
  3. data/README.md +2 -2
  4. data/lib/twilio-ruby/rest/api/v2010/account/recording.rb +15 -15
  5. data/lib/twilio-ruby/rest/api/v2010/account/sip/ip_access_control_list/ip_address.rb +28 -6
  6. data/lib/twilio-ruby/rest/preview.rb +8 -8
  7. data/lib/twilio-ruby/rest/preview/hosted_numbers/authorization_document.rb +21 -3
  8. data/lib/twilio-ruby/rest/preview/marketplace.rb +13 -13
  9. data/lib/twilio-ruby/rest/studio/v1/flow.rb +26 -0
  10. data/lib/twilio-ruby/rest/studio/v1/flow/execution.rb +410 -0
  11. data/lib/twilio-ruby/rest/studio/v1/flow/execution/execution_context.rb +217 -0
  12. data/lib/twilio-ruby/rest/studio/v1/flow/execution/execution_step.rb +380 -0
  13. data/lib/twilio-ruby/rest/studio/v1/flow/execution/execution_step/execution_step_context.rb +232 -0
  14. data/lib/twilio-ruby/rest/video.rb +9 -9
  15. data/lib/twilio-ruby/rest/video/v1.rb +16 -16
  16. data/lib/twilio-ruby/rest/video/v1/composition.rb +2 -1
  17. data/lib/twilio-ruby/rest/video/v1/room/recording.rb +14 -0
  18. data/lib/twilio-ruby/version.rb +1 -1
  19. data/spec/integration/api/v2010/account/sip/ip_access_control_list/ip_address_spec.rb +12 -14
  20. data/spec/integration/preview/hosted_numbers/authorization_document_spec.rb +4 -2
  21. data/spec/integration/studio/v1/flow/execution/execution_context_spec.rb +51 -0
  22. data/spec/integration/studio/v1/flow/execution/execution_step/execution_step_context_spec.rb +54 -0
  23. data/spec/integration/studio/v1/flow/execution/execution_step_spec.rb +101 -0
  24. data/spec/integration/studio/v1/flow/execution_spec.rb +171 -0
  25. data/spec/integration/studio/v1/flow_spec.rb +2 -1
  26. data/spec/integration/video/v1/room/recording_spec.rb +28 -0
  27. metadata +15 -3
@@ -0,0 +1,232 @@
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 Studio < Domain
12
+ class V1 < Version
13
+ class FlowContext < InstanceContext
14
+ class ExecutionContext < InstanceContext
15
+ class ExecutionStepContext < InstanceContext
16
+ ##
17
+ # PLEASE NOTE that this class contains beta products that are subject to change. Use them with caution.
18
+ class ExecutionStepContextList < ListResource
19
+ ##
20
+ # Initialize the ExecutionStepContextList
21
+ # @param [Version] version Version that contains the resource
22
+ # @param [String] flow_sid The flow_sid
23
+ # @param [String] execution_sid The execution_sid
24
+ # @param [String] step_sid The step_sid
25
+ # @return [ExecutionStepContextList] ExecutionStepContextList
26
+ def initialize(version, flow_sid: nil, execution_sid: nil, step_sid: nil)
27
+ super(version)
28
+
29
+ # Path Solution
30
+ @solution = {flow_sid: flow_sid, execution_sid: execution_sid, step_sid: step_sid}
31
+ end
32
+
33
+ ##
34
+ # Provide a user friendly representation
35
+ def to_s
36
+ '#<Twilio.Studio.V1.ExecutionStepContextList>'
37
+ end
38
+ end
39
+
40
+ ##
41
+ # PLEASE NOTE that this class contains beta products that are subject to change. Use them with caution.
42
+ class ExecutionStepContextPage < Page
43
+ ##
44
+ # Initialize the ExecutionStepContextPage
45
+ # @param [Version] version Version that contains the resource
46
+ # @param [Response] response Response from the API
47
+ # @param [Hash] solution Path solution for the resource
48
+ # @return [ExecutionStepContextPage] ExecutionStepContextPage
49
+ def initialize(version, response, solution)
50
+ super(version, response)
51
+
52
+ # Path Solution
53
+ @solution = solution
54
+ end
55
+
56
+ ##
57
+ # Build an instance of ExecutionStepContextInstance
58
+ # @param [Hash] payload Payload response from the API
59
+ # @return [ExecutionStepContextInstance] ExecutionStepContextInstance
60
+ def get_instance(payload)
61
+ ExecutionStepContextInstance.new(
62
+ @version,
63
+ payload,
64
+ flow_sid: @solution[:flow_sid],
65
+ execution_sid: @solution[:execution_sid],
66
+ step_sid: @solution[:step_sid],
67
+ )
68
+ end
69
+
70
+ ##
71
+ # Provide a user friendly representation
72
+ def to_s
73
+ '<Twilio.Studio.V1.ExecutionStepContextPage>'
74
+ end
75
+ end
76
+
77
+ ##
78
+ # PLEASE NOTE that this class contains beta products that are subject to change. Use them with caution.
79
+ class ExecutionStepContextContext < InstanceContext
80
+ ##
81
+ # Initialize the ExecutionStepContextContext
82
+ # @param [Version] version Version that contains the resource
83
+ # @param [String] flow_sid The flow_sid
84
+ # @param [String] execution_sid The execution_sid
85
+ # @param [String] step_sid The step_sid
86
+ # @return [ExecutionStepContextContext] ExecutionStepContextContext
87
+ def initialize(version, flow_sid, execution_sid, step_sid)
88
+ super(version)
89
+
90
+ # Path Solution
91
+ @solution = {flow_sid: flow_sid, execution_sid: execution_sid, step_sid: step_sid, }
92
+ @uri = "/Flows/#{@solution[:flow_sid]}/Executions/#{@solution[:execution_sid]}/Steps/#{@solution[:step_sid]}/Context"
93
+ end
94
+
95
+ ##
96
+ # Fetch a ExecutionStepContextInstance
97
+ # @return [ExecutionStepContextInstance] Fetched ExecutionStepContextInstance
98
+ def fetch
99
+ params = Twilio::Values.of({})
100
+
101
+ payload = @version.fetch(
102
+ 'GET',
103
+ @uri,
104
+ params,
105
+ )
106
+
107
+ ExecutionStepContextInstance.new(
108
+ @version,
109
+ payload,
110
+ flow_sid: @solution[:flow_sid],
111
+ execution_sid: @solution[:execution_sid],
112
+ step_sid: @solution[:step_sid],
113
+ )
114
+ end
115
+
116
+ ##
117
+ # Provide a user friendly representation
118
+ def to_s
119
+ context = @solution.map {|k, v| "#{k}: #{v}"}.join(',')
120
+ "#<Twilio.Studio.V1.ExecutionStepContextContext #{context}>"
121
+ end
122
+ end
123
+
124
+ ##
125
+ # PLEASE NOTE that this class contains beta products that are subject to change. Use them with caution.
126
+ class ExecutionStepContextInstance < InstanceResource
127
+ ##
128
+ # Initialize the ExecutionStepContextInstance
129
+ # @param [Version] version Version that contains the resource
130
+ # @param [Hash] payload payload that contains response from Twilio
131
+ # @param [String] flow_sid The flow_sid
132
+ # @param [String] execution_sid The execution_sid
133
+ # @param [String] step_sid The step_sid
134
+ # @return [ExecutionStepContextInstance] ExecutionStepContextInstance
135
+ def initialize(version, payload, flow_sid: nil, execution_sid: nil, step_sid: nil)
136
+ super(version)
137
+
138
+ # Marshaled Properties
139
+ @properties = {
140
+ 'account_sid' => payload['account_sid'],
141
+ 'context' => payload['context'],
142
+ 'execution_sid' => payload['execution_sid'],
143
+ 'flow_sid' => payload['flow_sid'],
144
+ 'step_sid' => payload['step_sid'],
145
+ 'url' => payload['url'],
146
+ }
147
+
148
+ # Context
149
+ @instance_context = nil
150
+ @params = {'flow_sid' => flow_sid, 'execution_sid' => execution_sid, 'step_sid' => step_sid, }
151
+ end
152
+
153
+ ##
154
+ # Generate an instance context for the instance, the context is capable of
155
+ # performing various actions. All instance actions are proxied to the context
156
+ # @return [ExecutionStepContextContext] ExecutionStepContextContext for this ExecutionStepContextInstance
157
+ def context
158
+ unless @instance_context
159
+ @instance_context = ExecutionStepContextContext.new(
160
+ @version,
161
+ @params['flow_sid'],
162
+ @params['execution_sid'],
163
+ @params['step_sid'],
164
+ )
165
+ end
166
+ @instance_context
167
+ end
168
+
169
+ ##
170
+ # @return [String] The account_sid
171
+ def account_sid
172
+ @properties['account_sid']
173
+ end
174
+
175
+ ##
176
+ # @return [Hash] The context
177
+ def context
178
+ @properties['context']
179
+ end
180
+
181
+ ##
182
+ # @return [String] The execution_sid
183
+ def execution_sid
184
+ @properties['execution_sid']
185
+ end
186
+
187
+ ##
188
+ # @return [String] The flow_sid
189
+ def flow_sid
190
+ @properties['flow_sid']
191
+ end
192
+
193
+ ##
194
+ # @return [String] The step_sid
195
+ def step_sid
196
+ @properties['step_sid']
197
+ end
198
+
199
+ ##
200
+ # @return [String] The url
201
+ def url
202
+ @properties['url']
203
+ end
204
+
205
+ ##
206
+ # Fetch a ExecutionStepContextInstance
207
+ # @return [ExecutionStepContextInstance] Fetched ExecutionStepContextInstance
208
+ def fetch
209
+ context.fetch
210
+ end
211
+
212
+ ##
213
+ # Provide a user friendly representation
214
+ def to_s
215
+ values = @params.map{|k, v| "#{k}: #{v}"}.join(" ")
216
+ "<Twilio.Studio.V1.ExecutionStepContextInstance #{values}>"
217
+ end
218
+
219
+ ##
220
+ # Provide a detailed, user friendly representation
221
+ def inspect
222
+ values = @properties.map{|k, v| "#{k}: #{v}"}.join(" ")
223
+ "<Twilio.Studio.V1.ExecutionStepContextInstance #{values}>"
224
+ end
225
+ end
226
+ end
227
+ end
228
+ end
229
+ end
230
+ end
231
+ end
232
+ end
@@ -28,6 +28,15 @@ module Twilio
28
28
  @v1 ||= V1.new self
29
29
  end
30
30
 
31
+ ##
32
+ # @param [String] sid `CJxx…xx` A system-generated 34-character string that
33
+ # uniquely identifies this Composition.
34
+ # @return [Twilio::REST::Video::V1::CompositionInstance] if sid was passed.
35
+ # @return [Twilio::REST::Video::V1::CompositionList]
36
+ def compositions(sid=:unset)
37
+ self.v1.compositions(sid)
38
+ end
39
+
31
40
  ##
32
41
  # @return [Twilio::REST::Video::V1::CompositionSettingsInstance]
33
42
  def composition_settings
@@ -49,15 +58,6 @@ module Twilio
49
58
  self.v1.recording_settings()
50
59
  end
51
60
 
52
- ##
53
- # @param [String] sid `CJxx…xx` A system-generated 34-character string that
54
- # uniquely identifies this Composition.
55
- # @return [Twilio::REST::Video::V1::CompositionInstance] if sid was passed.
56
- # @return [Twilio::REST::Video::V1::CompositionList]
57
- def compositions(sid=:unset)
58
- self.v1.compositions(sid)
59
- end
60
-
61
61
  ##
62
62
  # @param [String] sid A system-generated 34-character string that uniquely
63
63
  # identifies this resource.
@@ -15,13 +15,28 @@ module Twilio
15
15
  def initialize(domain)
16
16
  super
17
17
  @version = 'v1'
18
+ @compositions = nil
18
19
  @composition_settings = nil
19
20
  @recordings = nil
20
21
  @recording_settings = nil
21
- @compositions = nil
22
22
  @rooms = nil
23
23
  end
24
24
 
25
+ ##
26
+ # @param [String] sid The Composition Sid that uniquely identifies the Composition
27
+ # to fetch.
28
+ # @return [Twilio::REST::Video::V1::CompositionContext] if sid was passed.
29
+ # @return [Twilio::REST::Video::V1::CompositionList]
30
+ def compositions(sid=:unset)
31
+ if sid.nil?
32
+ raise ArgumentError, 'sid cannot be nil'
33
+ elsif sid == :unset
34
+ @compositions ||= CompositionList.new self
35
+ else
36
+ CompositionContext.new(self, sid)
37
+ end
38
+ end
39
+
25
40
  ##
26
41
  # @return [Twilio::REST::Video::V1::CompositionSettingsContext]
27
42
  def composition_settings
@@ -49,21 +64,6 @@ module Twilio
49
64
  @recording_settings ||= RecordingSettingsContext.new self
50
65
  end
51
66
 
52
- ##
53
- # @param [String] sid The Composition Sid that uniquely identifies the Composition
54
- # to fetch.
55
- # @return [Twilio::REST::Video::V1::CompositionContext] if sid was passed.
56
- # @return [Twilio::REST::Video::V1::CompositionList]
57
- def compositions(sid=:unset)
58
- if sid.nil?
59
- raise ArgumentError, 'sid cannot be nil'
60
- elsif sid == :unset
61
- @compositions ||= CompositionList.new self
62
- else
63
- CompositionContext.new(self, sid)
64
- end
65
- end
66
-
67
67
  ##
68
68
  # @param [String] sid The sid
69
69
  # @return [Twilio::REST::Video::V1::RoomContext] if sid was passed.
@@ -156,7 +156,8 @@ module Twilio
156
156
  # * Zero or more `MediaTrackSid`
157
157
  # * Zero or more `ParticipantSid`
158
158
  # * Zero or more Track names. These can be specified using wildcards (e.g.
159
- # `student*`)
159
+ # `student*`). The use of `[*]` has semantics "all if any" meaning zero or more
160
+ # (i.e. all) depending on whether the target room had video tracks.
160
161
  # @param [String] audio_sources_excluded An array of audio sources to exclude from
161
162
  # the Composition. Any new Composition shall include all audio sources specified
162
163
  # in `AudioSources` except for the ones specified in `AudioSourcesExcluded`. This
@@ -202,6 +202,13 @@ module Twilio
202
202
  RoomRecordingInstance.new(@version, payload, room_sid: @solution[:room_sid], sid: @solution[:sid], )
203
203
  end
204
204
 
205
+ ##
206
+ # Deletes the RoomRecordingInstance
207
+ # @return [Boolean] true if delete succeeds, true otherwise
208
+ def delete
209
+ @version.delete('delete', @uri)
210
+ end
211
+
205
212
  ##
206
213
  # Provide a user friendly representation
207
214
  def to_s
@@ -353,6 +360,13 @@ module Twilio
353
360
  context.fetch
354
361
  end
355
362
 
363
+ ##
364
+ # Deletes the RoomRecordingInstance
365
+ # @return [Boolean] true if delete succeeds, true otherwise
366
+ def delete
367
+ context.delete
368
+ end
369
+
356
370
  ##
357
371
  # Provide a user friendly representation
358
372
  def to_s
@@ -1,3 +1,3 @@
1
1
  module Twilio
2
- VERSION = '5.10.6'
2
+ VERSION = '5.10.7'
3
3
  end
@@ -39,21 +39,19 @@ describe 'IpAddress' do
39
39
  "account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
40
40
  "date_created": "Mon, 20 Jul 2015 17:27:10 +0000",
41
41
  "date_updated": "Mon, 20 Jul 2015 17:27:10 +0000",
42
- "friendly_name": "aaa",
42
+ "friendly_name": "friendly_name",
43
43
  "ip_access_control_list_sid": "ALaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
44
- "ip_address": "192.1.1.2",
44
+ "ip_address": "ip_address",
45
+ "cidr_prefix_length": 32,
45
46
  "sid": "IPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
46
47
  "uri": "/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/SIP/IpAccessControlLists/ALaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/IpAddresses/IPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.json"
47
48
  }
48
49
  ],
49
- "last_page_uri": "/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/SIP/IpAccessControlLists/ALaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/IpAddresses.json?PageSize=50&Page=0",
50
50
  "next_page_uri": null,
51
- "num_pages": 1,
52
51
  "page": 0,
53
52
  "page_size": 50,
54
53
  "previous_page_uri": null,
55
54
  "start": 0,
56
- "total": 1,
57
55
  "uri": "/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/SIP/IpAccessControlLists/ALaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/IpAddresses.json?PageSize=50&Page=0"
58
56
  }
59
57
  ]
@@ -75,14 +73,11 @@ describe 'IpAddress' do
75
73
  "end": 0,
76
74
  "first_page_uri": "/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/SIP/IpAccessControlLists/ALaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/IpAddresses.json?PageSize=50&Page=0",
77
75
  "ip_addresses": [],
78
- "last_page_uri": "/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/SIP/IpAccessControlLists/ALaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/IpAddresses.json?PageSize=50&Page=0",
79
76
  "next_page_uri": null,
80
- "num_pages": 1,
81
77
  "page": 0,
82
78
  "page_size": 50,
83
79
  "previous_page_uri": null,
84
80
  "start": 0,
85
- "total": 1,
86
81
  "uri": "/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/SIP/IpAccessControlLists/ALaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/IpAddresses.json?PageSize=50&Page=0"
87
82
  }
88
83
  ]
@@ -123,9 +118,10 @@ describe 'IpAddress' do
123
118
  "account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
124
119
  "date_created": "Mon, 20 Jul 2015 17:27:10 +0000",
125
120
  "date_updated": "Mon, 20 Jul 2015 17:27:10 +0000",
126
- "friendly_name": "aaa",
121
+ "friendly_name": "friendly_name",
127
122
  "ip_access_control_list_sid": "ALaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
128
- "ip_address": "192.1.1.2",
123
+ "ip_address": "ip_address",
124
+ "cidr_prefix_length": 32,
129
125
  "sid": "IPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
130
126
  "uri": "/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/SIP/IpAccessControlLists/ALaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/IpAddresses/IPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.json"
131
127
  }
@@ -166,9 +162,10 @@ describe 'IpAddress' do
166
162
  "account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
167
163
  "date_created": "Mon, 20 Jul 2015 17:27:10 +0000",
168
164
  "date_updated": "Mon, 20 Jul 2015 17:27:10 +0000",
169
- "friendly_name": "aaa",
165
+ "friendly_name": "friendly_name",
170
166
  "ip_access_control_list_sid": "ALaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
171
- "ip_address": "192.1.1.2",
167
+ "ip_address": "ip_address",
168
+ "cidr_prefix_length": 32,
172
169
  "sid": "IPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
173
170
  "uri": "/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/SIP/IpAccessControlLists/ALaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/IpAddresses/IPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.json"
174
171
  }
@@ -209,9 +206,10 @@ describe 'IpAddress' do
209
206
  "account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
210
207
  "date_created": "Mon, 20 Jul 2015 17:27:10 +0000",
211
208
  "date_updated": "Mon, 20 Jul 2015 17:27:10 +0000",
212
- "friendly_name": "aaa",
209
+ "friendly_name": "friendly_name",
213
210
  "ip_access_control_list_sid": "ALaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
214
- "ip_address": "192.1.1.2",
211
+ "ip_address": "ip_address",
212
+ "cidr_prefix_length": 32,
215
213
  "sid": "IPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
216
214
  "uri": "/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/SIP/IpAccessControlLists/ALaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/IpAddresses/IPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.json"
217
215
  }
@@ -179,13 +179,15 @@ describe 'AuthorizationDocument' do
179
179
  @holodeck.mock(Twilio::Response.new(500, ''))
180
180
 
181
181
  expect {
182
- @client.preview.hosted_numbers.authorization_documents.create(hosted_number_order_sids: ['hosted_number_order_sids'], address_sid: 'ADXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', email: 'email')
182
+ @client.preview.hosted_numbers.authorization_documents.create(hosted_number_order_sids: ['hosted_number_order_sids'], address_sid: 'ADXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', email: 'email', contact_title: 'contact_title', contact_phone_number: 'contact_phone_number')
183
183
  }.to raise_exception(Twilio::REST::TwilioError)
184
184
 
185
185
  values = {
186
186
  'HostedNumberOrderSids' => Twilio.serialize_list(['hosted_number_order_sids']) { |e| e },
187
187
  'AddressSid' => 'ADXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
188
188
  'Email' => 'email',
189
+ 'ContactTitle' => 'contact_title',
190
+ 'ContactPhoneNumber' => 'contact_phone_number',
189
191
  }
190
192
  expect(
191
193
  @holodeck.has_request?(Holodeck::Request.new(
@@ -218,7 +220,7 @@ describe 'AuthorizationDocument' do
218
220
  ]
219
221
  ))
220
222
 
221
- actual = @client.preview.hosted_numbers.authorization_documents.create(hosted_number_order_sids: ['hosted_number_order_sids'], address_sid: 'ADXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', email: 'email')
223
+ actual = @client.preview.hosted_numbers.authorization_documents.create(hosted_number_order_sids: ['hosted_number_order_sids'], address_sid: 'ADXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', email: 'email', contact_title: 'contact_title', contact_phone_number: 'contact_phone_number')
222
224
 
223
225
  expect(actual).to_not eq(nil)
224
226
  end