twilio-ruby 5.4.3 → 5.4.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (83) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGES.md +12 -0
  3. data/README.md +2 -2
  4. data/lib/twilio-ruby/framework/serialize.rb +9 -0
  5. data/lib/twilio-ruby/http/http_client.rb +1 -1
  6. data/lib/twilio-ruby/rest/api/v2010/account/call.rb +1 -1
  7. data/lib/twilio-ruby/rest/api/v2010/account/call/feedback.rb +8 -2
  8. data/lib/twilio-ruby/rest/api/v2010/account/conference/participant.rb +2 -2
  9. data/lib/twilio-ruby/rest/api/v2010/account/connect_app.rb +1 -1
  10. data/lib/twilio-ruby/rest/api/v2010/account/message.rb +1 -1
  11. data/lib/twilio-ruby/rest/chat/v1/service.rb +1 -1
  12. data/lib/twilio-ruby/rest/chat/v1/service/channel.rb +1 -1
  13. data/lib/twilio-ruby/rest/chat/v1/service/channel/invite.rb +1 -1
  14. data/lib/twilio-ruby/rest/chat/v1/service/channel/member.rb +1 -1
  15. data/lib/twilio-ruby/rest/chat/v1/service/role.rb +2 -2
  16. data/lib/twilio-ruby/rest/chat/v2/service.rb +1 -1
  17. data/lib/twilio-ruby/rest/chat/v2/service/binding.rb +2 -2
  18. data/lib/twilio-ruby/rest/chat/v2/service/channel.rb +1 -1
  19. data/lib/twilio-ruby/rest/chat/v2/service/channel/invite.rb +1 -1
  20. data/lib/twilio-ruby/rest/chat/v2/service/channel/member.rb +1 -1
  21. data/lib/twilio-ruby/rest/chat/v2/service/role.rb +2 -2
  22. data/lib/twilio-ruby/rest/chat/v2/service/user/user_binding.rb +1 -1
  23. data/lib/twilio-ruby/rest/ip_messaging/v1/service.rb +1 -1
  24. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel.rb +1 -1
  25. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/invite.rb +1 -1
  26. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/member.rb +1 -1
  27. data/lib/twilio-ruby/rest/ip_messaging/v1/service/role.rb +2 -2
  28. data/lib/twilio-ruby/rest/ip_messaging/v2/service.rb +1 -1
  29. data/lib/twilio-ruby/rest/ip_messaging/v2/service/binding.rb +2 -2
  30. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel.rb +1 -1
  31. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/invite.rb +1 -1
  32. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/member.rb +1 -1
  33. data/lib/twilio-ruby/rest/ip_messaging/v2/service/role.rb +2 -2
  34. data/lib/twilio-ruby/rest/ip_messaging/v2/service/user/user_binding.rb +1 -1
  35. data/lib/twilio-ruby/rest/lookups/v1/phone_number.rb +5 -1
  36. data/lib/twilio-ruby/rest/notify/v1/service/binding.rb +3 -3
  37. data/lib/twilio-ruby/rest/notify/v1/service/notification.rb +4 -4
  38. data/lib/twilio-ruby/rest/notify/v1/service/user.rb +5 -2
  39. data/lib/twilio-ruby/rest/notify/v1/service/user/user_binding.rb +2 -2
  40. data/lib/twilio-ruby/rest/preview.rb +10 -3
  41. data/lib/twilio-ruby/rest/preview/hosted_numbers/authorization_document.rb +4 -4
  42. data/lib/twilio-ruby/rest/preview/hosted_numbers/hosted_number_order.rb +2 -2
  43. data/lib/twilio-ruby/rest/preview/proxy/service/session.rb +2 -2
  44. data/lib/twilio-ruby/rest/preview/proxy/service/session/participant/message_interaction.rb +1 -1
  45. data/lib/twilio-ruby/rest/preview/understand.rb +41 -0
  46. data/lib/twilio-ruby/rest/preview/understand/service.rb +503 -0
  47. data/lib/twilio-ruby/rest/preview/understand/service/field_type.rb +399 -0
  48. data/lib/twilio-ruby/rest/preview/understand/service/field_type/field_value.rb +375 -0
  49. data/lib/twilio-ruby/rest/preview/understand/service/intent.rb +421 -0
  50. data/lib/twilio-ruby/rest/preview/understand/service/intent/field.rb +371 -0
  51. data/lib/twilio-ruby/rest/preview/understand/service/intent/sample.rb +407 -0
  52. data/lib/twilio-ruby/rest/preview/understand/service/model_build.rb +358 -0
  53. data/lib/twilio-ruby/rest/preview/understand/service/query.rb +422 -0
  54. data/lib/twilio-ruby/rest/preview/wireless/rate_plan.rb +1 -1
  55. data/lib/twilio-ruby/rest/proxy/v1/service/session.rb +2 -2
  56. data/lib/twilio-ruby/rest/proxy/v1/service/session/participant/message_interaction.rb +1 -1
  57. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task.rb +1 -1
  58. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task/reservation.rb +3 -3
  59. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/reservation.rb +3 -3
  60. data/lib/twilio-ruby/rest/video/v1/recording.rb +1 -1
  61. data/lib/twilio-ruby/rest/video/v1/room.rb +27 -1
  62. data/lib/twilio-ruby/rest/video/v1/room/room_participant.rb +407 -0
  63. data/lib/twilio-ruby/rest/video/v1/room/room_participant/room_participant_published_track.rb +326 -0
  64. data/lib/twilio-ruby/rest/wireless/v1/rate_plan.rb +1 -1
  65. data/lib/twilio-ruby/version.rb +1 -1
  66. data/spec/framework/serialize_spec.rb +21 -0
  67. data/spec/integration/chat/v1/service/role_spec.rb +6 -2
  68. data/spec/integration/chat/v2/service/role_spec.rb +6 -2
  69. data/spec/integration/ip_messaging/v1/service/role_spec.rb +6 -2
  70. data/spec/integration/ip_messaging/v2/service/role_spec.rb +6 -2
  71. data/spec/integration/preview/hosted_numbers/authorization_document_spec.rb +1 -1
  72. data/spec/integration/preview/understand/service/field_type/field_value_spec.rb +205 -0
  73. data/spec/integration/preview/understand/service/field_type_spec.rb +244 -0
  74. data/spec/integration/preview/understand/service/intent/field_spec.rb +205 -0
  75. data/spec/integration/preview/understand/service/intent/sample_spec.rb +247 -0
  76. data/spec/integration/preview/understand/service/intent_spec.rb +252 -0
  77. data/spec/integration/preview/understand/service/model_build_spec.rb +231 -0
  78. data/spec/integration/preview/understand/service/query_spec.rb +300 -0
  79. data/spec/integration/preview/understand/service_spec.rb +256 -0
  80. data/spec/integration/video/v1/room/room_participant/room_participant_published_track_spec.rb +94 -0
  81. data/spec/integration/video/v1/room/room_participant_spec.rb +182 -0
  82. data/spec/integration/video/v1/room_spec.rb +4 -0
  83. metadata +33 -2
@@ -48,8 +48,8 @@ module Twilio
48
48
  # @return [NotificationInstance] Newly created NotificationInstance
49
49
  def create(body: :unset, priority: :unset, ttl: :unset, title: :unset, sound: :unset, action: :unset, data: :unset, apn: :unset, gcm: :unset, sms: :unset, facebook_messenger: :unset, fcm: :unset, segment: :unset, alexa: :unset, to_binding: :unset, identity: :unset, tag: :unset)
50
50
  data = Twilio::Values.of({
51
- 'Identity' => identity,
52
- 'Tag' => tag,
51
+ 'Identity' => Twilio.serialize_list(identity) { |e| e },
52
+ 'Tag' => Twilio.serialize_list(tag) { |e| e },
53
53
  'Body' => body,
54
54
  'Priority' => priority,
55
55
  'Ttl' => ttl,
@@ -62,9 +62,9 @@ module Twilio
62
62
  'Sms' => Twilio.serialize_object(sms),
63
63
  'FacebookMessenger' => Twilio.serialize_object(facebook_messenger),
64
64
  'Fcm' => Twilio.serialize_object(fcm),
65
- 'Segment' => segment,
65
+ 'Segment' => Twilio.serialize_list(segment) { |e| e },
66
66
  'Alexa' => Twilio.serialize_object(alexa),
67
- 'ToBinding' => to_binding,
67
+ 'ToBinding' => Twilio.serialize_list(to_binding) { |e| e },
68
68
  })
69
69
 
70
70
  payload = @version.create(
@@ -32,7 +32,10 @@ module Twilio
32
32
  # @param [String] segment The segment
33
33
  # @return [UserInstance] Newly created UserInstance
34
34
  def create(identity: nil, segment: :unset)
35
- data = Twilio::Values.of({'Identity' => identity, 'Segment' => segment,})
35
+ data = Twilio::Values.of({
36
+ 'Identity' => identity,
37
+ 'Segment' => Twilio.serialize_list(segment) { |e| e },
38
+ })
36
39
 
37
40
  payload = @version.create(
38
41
  'POST',
@@ -106,7 +109,7 @@ module Twilio
106
109
  # @return [Page] Page of UserInstance
107
110
  def page(identity: :unset, segment: :unset, page_token: :unset, page_number: :unset, page_size: :unset)
108
111
  params = Twilio::Values.of({
109
- 'Identity' => identity,
112
+ 'Identity' => Twilio.serialize_list(identity) { |e| e },
110
113
  'Segment' => segment,
111
114
  'PageToken' => page_token,
112
115
  'Page' => page_number,
@@ -41,7 +41,7 @@ module Twilio
41
41
  data = Twilio::Values.of({
42
42
  'BindingType' => binding_type,
43
43
  'Address' => address,
44
- 'Tag' => tag,
44
+ 'Tag' => Twilio.serialize_list(tag) { |e| e },
45
45
  'NotificationProtocolVersion' => notification_protocol_version,
46
46
  'CredentialSid' => credential_sid,
47
47
  'Endpoint' => endpoint,
@@ -135,7 +135,7 @@ module Twilio
135
135
  params = Twilio::Values.of({
136
136
  'StartDate' => Twilio.serialize_iso8601_date(start_date),
137
137
  'EndDate' => Twilio.serialize_iso8601_date(end_date),
138
- 'Tag' => tag,
138
+ 'Tag' => Twilio.serialize_list(tag) { |e| e },
139
139
  'PageToken' => page_token,
140
140
  'Page' => page_number,
141
141
  'PageSize' => page_size,
@@ -24,6 +24,7 @@ module Twilio
24
24
  @proxy = nil
25
25
  @acc_security = nil
26
26
  @sync = nil
27
+ @understand = nil
27
28
  @wireless = nil
28
29
  end
29
30
 
@@ -69,6 +70,12 @@ module Twilio
69
70
  @sync ||= Sync.new self
70
71
  end
71
72
 
73
+ ##
74
+ # Version understand of preview
75
+ def understand
76
+ @understand ||= Understand.new self
77
+ end
78
+
72
79
  ##
73
80
  # Version wireless of preview
74
81
  def wireless
@@ -137,10 +144,10 @@ module Twilio
137
144
 
138
145
  ##
139
146
  # @param [String] sid The sid
140
- # @return [Twilio::REST::Preview::Sync::ServiceInstance] if sid was passed.
141
- # @return [Twilio::REST::Preview::Sync::ServiceList]
147
+ # @return [Twilio::REST::Preview::Understand::ServiceInstance] if sid was passed.
148
+ # @return [Twilio::REST::Preview::Understand::ServiceList]
142
149
  def services(sid=:unset)
143
- self.sync.services(sid)
150
+ self.understand.services(sid)
144
151
  end
145
152
 
146
153
  ##
@@ -120,10 +120,10 @@ module Twilio
120
120
  # @return [AuthorizationDocumentInstance] Newly created AuthorizationDocumentInstance
121
121
  def create(hosted_number_order_sids: nil, address_sid: nil, email: nil, cc_emails: :unset)
122
122
  data = Twilio::Values.of({
123
- 'HostedNumberOrderSids' => hosted_number_order_sids,
123
+ 'HostedNumberOrderSids' => Twilio.serialize_list(hosted_number_order_sids) { |e| e },
124
124
  'AddressSid' => address_sid,
125
125
  'Email' => email,
126
- 'CcEmails' => cc_emails,
126
+ 'CcEmails' => Twilio.serialize_list(cc_emails) { |e| e },
127
127
  })
128
128
 
129
129
  payload = @version.create(
@@ -223,10 +223,10 @@ module Twilio
223
223
  # @return [AuthorizationDocumentInstance] Updated AuthorizationDocumentInstance
224
224
  def update(hosted_number_order_sids: :unset, address_sid: :unset, email: :unset, cc_emails: :unset, status: :unset)
225
225
  data = Twilio::Values.of({
226
- 'HostedNumberOrderSids' => hosted_number_order_sids,
226
+ 'HostedNumberOrderSids' => Twilio.serialize_list(hosted_number_order_sids) { |e| e },
227
227
  'AddressSid' => address_sid,
228
228
  'Email' => email,
229
- 'CcEmails' => cc_emails,
229
+ 'CcEmails' => Twilio.serialize_list(cc_emails) { |e| e },
230
230
  'Status' => status,
231
231
  })
232
232
 
@@ -208,7 +208,7 @@ module Twilio
208
208
  'AccountSid' => account_sid,
209
209
  'FriendlyName' => friendly_name,
210
210
  'UniqueName' => unique_name,
211
- 'CcEmails' => cc_emails,
211
+ 'CcEmails' => Twilio.serialize_list(cc_emails) { |e| e },
212
212
  'SmsUrl' => sms_url,
213
213
  'SmsMethod' => sms_method,
214
214
  'SmsFallbackUrl' => sms_fallback_url,
@@ -327,7 +327,7 @@ module Twilio
327
327
  'FriendlyName' => friendly_name,
328
328
  'UniqueName' => unique_name,
329
329
  'Email' => email,
330
- 'CcEmails' => cc_emails,
330
+ 'CcEmails' => Twilio.serialize_list(cc_emails) { |e| e },
331
331
  'Status' => status,
332
332
  'VerificationCode' => verification_code,
333
333
  })
@@ -141,7 +141,7 @@ module Twilio
141
141
  'UniqueName' => unique_name,
142
142
  'Ttl' => ttl,
143
143
  'Status' => status,
144
- 'Participants' => participants,
144
+ 'Participants' => Twilio.serialize_list(participants) { |e| e },
145
145
  })
146
146
 
147
147
  payload = @version.create(
@@ -250,7 +250,7 @@ module Twilio
250
250
  'UniqueName' => unique_name,
251
251
  'Ttl' => ttl,
252
252
  'Status' => status,
253
- 'Participants' => participants,
253
+ 'Participants' => Twilio.serialize_list(participants) { |e| e },
254
254
  })
255
255
 
256
256
  payload = @version.update(
@@ -38,7 +38,7 @@ module Twilio
38
38
  # Participant.
39
39
  # @return [MessageInteractionInstance] Newly created MessageInteractionInstance
40
40
  def create(body: :unset, media_url: :unset)
41
- data = Twilio::Values.of({'Body' => body, 'MediaUrl' => media_url,})
41
+ data = Twilio::Values.of({'Body' => body, 'MediaUrl' => Twilio.serialize_list(media_url) { |e| e },})
42
42
 
43
43
  payload = @version.create(
44
44
  'POST',
@@ -0,0 +1,41 @@
1
+ ##
2
+ # This code was generated by
3
+ # \ / _ _ _| _ _
4
+ # | (_)\/(_)(_|\/| |(/_ v1.0.0
5
+ # / /
6
+
7
+ module Twilio
8
+ module REST
9
+ class Preview
10
+ class Understand < Version
11
+ ##
12
+ # Initialize the Understand version of Preview
13
+ def initialize(domain)
14
+ super
15
+ @version = 'understand'
16
+ @services = nil
17
+ end
18
+
19
+ ##
20
+ # @param [String] sid The sid
21
+ # @return [Twilio::REST::Preview::Understand::ServiceInstance] if sid was passed.
22
+ # @return [Twilio::REST::Preview::Understand::ServiceList]
23
+ def services(sid=:unset)
24
+ if sid.nil?
25
+ raise ArgumentError, 'sid cannot be nil'
26
+ elsif sid == :unset
27
+ @services ||= ServiceList.new self
28
+ else
29
+ ServiceContext.new(self, sid)
30
+ end
31
+ end
32
+
33
+ ##
34
+ # Provide a user friendly representation
35
+ def to_s
36
+ '<Twilio::REST::Preview::Understand>'
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,503 @@
1
+ ##
2
+ # This code was generated by
3
+ # \ / _ _ _| _ _
4
+ # | (_)\/(_)(_|\/| |(/_ v1.0.0
5
+ # / /
6
+
7
+ module Twilio
8
+ module REST
9
+ class Preview < Domain
10
+ class Understand < Version
11
+ ##
12
+ # 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.
13
+ class ServiceList < ListResource
14
+ ##
15
+ # Initialize the ServiceList
16
+ # @param [Version] version Version that contains the resource
17
+ # @return [ServiceList] ServiceList
18
+ def initialize(version)
19
+ super(version)
20
+
21
+ # Path Solution
22
+ @solution = {}
23
+ @uri = "/Services"
24
+ end
25
+
26
+ ##
27
+ # Lists ServiceInstance records from the API as a list.
28
+ # Unlike stream(), this operation is eager and will load `limit` records into
29
+ # memory before returning.
30
+ # @param [Integer] limit Upper limit for the number of records to return. stream()
31
+ # guarantees to never return more than limit. Default is no limit
32
+ # @param [Integer] page_size Number of records to fetch per request, when
33
+ # not set will use the default value of 50 records. If no page_size is defined
34
+ # but a limit is defined, stream() will attempt to read the limit with the most
35
+ # efficient page size, i.e. min(limit, 1000)
36
+ # @return [Array] Array of up to limit results
37
+ def list(limit: nil, page_size: nil)
38
+ self.stream(limit: limit, page_size: page_size).entries
39
+ end
40
+
41
+ ##
42
+ # Streams ServiceInstance records from the API as an Enumerable.
43
+ # This operation lazily loads records as efficiently as possible until the limit
44
+ # is reached.
45
+ # @param [Integer] limit Upper limit for the number of records to return. stream()
46
+ # guarantees to never return more than limit. Default is no limit.
47
+ # @param [Integer] page_size Number of records to fetch per request, when
48
+ # not set will use the default value of 50 records. If no page_size is defined
49
+ # but a limit is defined, stream() will attempt to read the limit with the most
50
+ # efficient page size, i.e. min(limit, 1000)
51
+ # @return [Enumerable] Enumerable that will yield up to limit results
52
+ def stream(limit: nil, page_size: nil)
53
+ limits = @version.read_limits(limit, page_size)
54
+
55
+ page = self.page(page_size: limits[:page_size],)
56
+
57
+ @version.stream(page, limit: limits[:limit], page_limit: limits[:page_limit])
58
+ end
59
+
60
+ ##
61
+ # When passed a block, yields ServiceInstance records from the API.
62
+ # This operation lazily loads records as efficiently as possible until the limit
63
+ # is reached.
64
+ def each
65
+ limits = @version.read_limits
66
+
67
+ page = self.page(page_size: limits[:page_size],)
68
+
69
+ @version.stream(page,
70
+ limit: limits[:limit],
71
+ page_limit: limits[:page_limit]).each {|x| yield x}
72
+ end
73
+
74
+ ##
75
+ # Retrieve a single page of ServiceInstance records from the API.
76
+ # Request is executed immediately.
77
+ # @param [String] page_token PageToken provided by the API
78
+ # @param [Integer] page_number Page Number, this value is simply for client state
79
+ # @param [Integer] page_size Number of records to return, defaults to 50
80
+ # @return [Page] Page of ServiceInstance
81
+ def page(page_token: :unset, page_number: :unset, page_size: :unset)
82
+ params = Twilio::Values.of({
83
+ 'PageToken' => page_token,
84
+ 'Page' => page_number,
85
+ 'PageSize' => page_size,
86
+ })
87
+ response = @version.page(
88
+ 'GET',
89
+ @uri,
90
+ params
91
+ )
92
+ ServicePage.new(@version, response, @solution)
93
+ end
94
+
95
+ ##
96
+ # Retrieve a single page of ServiceInstance records from the API.
97
+ # Request is executed immediately.
98
+ # @param [String] target_url API-generated URL for the requested results page
99
+ # @return [Page] Page of ServiceInstance
100
+ def get_page(target_url)
101
+ response = @version.domain.request(
102
+ 'GET',
103
+ target_url
104
+ )
105
+ ServicePage.new(@version, response, @solution)
106
+ end
107
+
108
+ ##
109
+ # Retrieve a single page of ServiceInstance records from the API.
110
+ # Request is executed immediately.
111
+ # @param [String] friendly_name The friendly_name
112
+ # @param [Boolean] log_queries The log_queries
113
+ # @param [String] ttl The ttl
114
+ # @param [String] unique_name The unique_name
115
+ # @return [ServiceInstance] Newly created ServiceInstance
116
+ def create(friendly_name: :unset, log_queries: :unset, ttl: :unset, unique_name: :unset)
117
+ data = Twilio::Values.of({
118
+ 'FriendlyName' => friendly_name,
119
+ 'LogQueries' => log_queries,
120
+ 'Ttl' => ttl,
121
+ 'UniqueName' => unique_name,
122
+ })
123
+
124
+ payload = @version.create(
125
+ 'POST',
126
+ @uri,
127
+ data: data
128
+ )
129
+
130
+ ServiceInstance.new(@version, payload,)
131
+ end
132
+
133
+ ##
134
+ # Provide a user friendly representation
135
+ def to_s
136
+ '#<Twilio.Preview.Understand.ServiceList>'
137
+ end
138
+ end
139
+
140
+ ##
141
+ # 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.
142
+ class ServicePage < Page
143
+ ##
144
+ # Initialize the ServicePage
145
+ # @param [Version] version Version that contains the resource
146
+ # @param [Response] response Response from the API
147
+ # @param [Hash] solution Path solution for the resource
148
+ # @return [ServicePage] ServicePage
149
+ def initialize(version, response, solution)
150
+ super(version, response)
151
+
152
+ # Path Solution
153
+ @solution = solution
154
+ end
155
+
156
+ ##
157
+ # Build an instance of ServiceInstance
158
+ # @param [Hash] payload Payload response from the API
159
+ # @return [ServiceInstance] ServiceInstance
160
+ def get_instance(payload)
161
+ ServiceInstance.new(@version, payload,)
162
+ end
163
+
164
+ ##
165
+ # Provide a user friendly representation
166
+ def to_s
167
+ '<Twilio.Preview.Understand.ServicePage>'
168
+ end
169
+ end
170
+
171
+ ##
172
+ # 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.
173
+ class ServiceContext < InstanceContext
174
+ ##
175
+ # Initialize the ServiceContext
176
+ # @param [Version] version Version that contains the resource
177
+ # @param [String] sid The sid
178
+ # @return [ServiceContext] ServiceContext
179
+ def initialize(version, sid)
180
+ super(version)
181
+
182
+ # Path Solution
183
+ @solution = {sid: sid,}
184
+ @uri = "/Services/#{@solution[:sid]}"
185
+
186
+ # Dependents
187
+ @field_types = nil
188
+ @intents = nil
189
+ @model_builds = nil
190
+ @queries = nil
191
+ end
192
+
193
+ ##
194
+ # Fetch a ServiceInstance
195
+ # @return [ServiceInstance] Fetched ServiceInstance
196
+ def fetch
197
+ params = Twilio::Values.of({})
198
+
199
+ payload = @version.fetch(
200
+ 'GET',
201
+ @uri,
202
+ params,
203
+ )
204
+
205
+ ServiceInstance.new(@version, payload, sid: @solution[:sid],)
206
+ end
207
+
208
+ ##
209
+ # Update the ServiceInstance
210
+ # @param [String] friendly_name The friendly_name
211
+ # @param [Boolean] log_queries The log_queries
212
+ # @param [String] ttl The ttl
213
+ # @param [String] unique_name The unique_name
214
+ # @return [ServiceInstance] Updated ServiceInstance
215
+ def update(friendly_name: :unset, log_queries: :unset, ttl: :unset, unique_name: :unset)
216
+ data = Twilio::Values.of({
217
+ 'FriendlyName' => friendly_name,
218
+ 'LogQueries' => log_queries,
219
+ 'Ttl' => ttl,
220
+ 'UniqueName' => unique_name,
221
+ })
222
+
223
+ payload = @version.update(
224
+ 'POST',
225
+ @uri,
226
+ data: data,
227
+ )
228
+
229
+ ServiceInstance.new(@version, payload, sid: @solution[:sid],)
230
+ end
231
+
232
+ ##
233
+ # Deletes the ServiceInstance
234
+ # @return [Boolean] true if delete succeeds, true otherwise
235
+ def delete
236
+ @version.delete('delete', @uri)
237
+ end
238
+
239
+ ##
240
+ # Access the field_types
241
+ # @return [FieldTypeList]
242
+ # @return [FieldTypeContext] if sid was passed.
243
+ def field_types(sid=:unset)
244
+ raise ArgumentError, 'sid cannot be nil' if sid.nil?
245
+
246
+ if sid != :unset
247
+ return FieldTypeContext.new(@version, @solution[:sid], sid,)
248
+ end
249
+
250
+ unless @field_types
251
+ @field_types = FieldTypeList.new(@version, service_sid: @solution[:sid],)
252
+ end
253
+
254
+ @field_types
255
+ end
256
+
257
+ ##
258
+ # Access the intents
259
+ # @return [IntentList]
260
+ # @return [IntentContext] if sid was passed.
261
+ def intents(sid=:unset)
262
+ raise ArgumentError, 'sid cannot be nil' if sid.nil?
263
+
264
+ if sid != :unset
265
+ return IntentContext.new(@version, @solution[:sid], sid,)
266
+ end
267
+
268
+ unless @intents
269
+ @intents = IntentList.new(@version, service_sid: @solution[:sid],)
270
+ end
271
+
272
+ @intents
273
+ end
274
+
275
+ ##
276
+ # Access the model_builds
277
+ # @return [ModelBuildList]
278
+ # @return [ModelBuildContext] if sid was passed.
279
+ def model_builds(sid=:unset)
280
+ raise ArgumentError, 'sid cannot be nil' if sid.nil?
281
+
282
+ if sid != :unset
283
+ return ModelBuildContext.new(@version, @solution[:sid], sid,)
284
+ end
285
+
286
+ unless @model_builds
287
+ @model_builds = ModelBuildList.new(@version, service_sid: @solution[:sid],)
288
+ end
289
+
290
+ @model_builds
291
+ end
292
+
293
+ ##
294
+ # Access the queries
295
+ # @return [QueryList]
296
+ # @return [QueryContext] if sid was passed.
297
+ def queries(sid=:unset)
298
+ raise ArgumentError, 'sid cannot be nil' if sid.nil?
299
+
300
+ if sid != :unset
301
+ return QueryContext.new(@version, @solution[:sid], sid,)
302
+ end
303
+
304
+ unless @queries
305
+ @queries = QueryList.new(@version, service_sid: @solution[:sid],)
306
+ end
307
+
308
+ @queries
309
+ end
310
+
311
+ ##
312
+ # Provide a user friendly representation
313
+ def to_s
314
+ context = @solution.map {|k, v| "#{k}: #{v}"}.join(',')
315
+ "#<Twilio.Preview.Understand.ServiceContext #{context}>"
316
+ end
317
+ end
318
+
319
+ ##
320
+ # 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.
321
+ class ServiceInstance < InstanceResource
322
+ ##
323
+ # Initialize the ServiceInstance
324
+ # @param [Version] version Version that contains the resource
325
+ # @param [Hash] payload payload that contains response from Twilio
326
+ # @param [String] sid The sid
327
+ # @return [ServiceInstance] ServiceInstance
328
+ def initialize(version, payload, sid: nil)
329
+ super(version)
330
+
331
+ # Marshaled Properties
332
+ @properties = {
333
+ 'account_sid' => payload['account_sid'],
334
+ 'date_created' => Twilio.deserialize_iso8601_datetime(payload['date_created']),
335
+ 'date_updated' => Twilio.deserialize_iso8601_datetime(payload['date_updated']),
336
+ 'friendly_name' => payload['friendly_name'],
337
+ 'latest_model_build_sid' => payload['latest_model_build_sid'],
338
+ 'links' => payload['links'],
339
+ 'log_queries' => payload['log_queries'],
340
+ 'sid' => payload['sid'],
341
+ 'ttl' => payload['ttl'].to_i,
342
+ 'unique_name' => payload['unique_name'],
343
+ 'url' => payload['url'],
344
+ }
345
+
346
+ # Context
347
+ @instance_context = nil
348
+ @params = {'sid' => sid || @properties['sid'],}
349
+ end
350
+
351
+ ##
352
+ # Generate an instance context for the instance, the context is capable of
353
+ # performing various actions. All instance actions are proxied to the context
354
+ # @return [ServiceContext] ServiceContext for this ServiceInstance
355
+ def context
356
+ unless @instance_context
357
+ @instance_context = ServiceContext.new(@version, @params['sid'],)
358
+ end
359
+ @instance_context
360
+ end
361
+
362
+ ##
363
+ # @return [String] The account_sid
364
+ def account_sid
365
+ @properties['account_sid']
366
+ end
367
+
368
+ ##
369
+ # @return [Time] The date_created
370
+ def date_created
371
+ @properties['date_created']
372
+ end
373
+
374
+ ##
375
+ # @return [Time] The date_updated
376
+ def date_updated
377
+ @properties['date_updated']
378
+ end
379
+
380
+ ##
381
+ # @return [String] The friendly_name
382
+ def friendly_name
383
+ @properties['friendly_name']
384
+ end
385
+
386
+ ##
387
+ # @return [String] The latest_model_build_sid
388
+ def latest_model_build_sid
389
+ @properties['latest_model_build_sid']
390
+ end
391
+
392
+ ##
393
+ # @return [String] The links
394
+ def links
395
+ @properties['links']
396
+ end
397
+
398
+ ##
399
+ # @return [Boolean] The log_queries
400
+ def log_queries
401
+ @properties['log_queries']
402
+ end
403
+
404
+ ##
405
+ # @return [String] The sid
406
+ def sid
407
+ @properties['sid']
408
+ end
409
+
410
+ ##
411
+ # @return [String] The ttl
412
+ def ttl
413
+ @properties['ttl']
414
+ end
415
+
416
+ ##
417
+ # @return [String] The unique_name
418
+ def unique_name
419
+ @properties['unique_name']
420
+ end
421
+
422
+ ##
423
+ # @return [String] The url
424
+ def url
425
+ @properties['url']
426
+ end
427
+
428
+ ##
429
+ # Fetch a ServiceInstance
430
+ # @return [ServiceInstance] Fetched ServiceInstance
431
+ def fetch
432
+ context.fetch
433
+ end
434
+
435
+ ##
436
+ # Update the ServiceInstance
437
+ # @param [String] friendly_name The friendly_name
438
+ # @param [Boolean] log_queries The log_queries
439
+ # @param [String] ttl The ttl
440
+ # @param [String] unique_name The unique_name
441
+ # @return [ServiceInstance] Updated ServiceInstance
442
+ def update(friendly_name: :unset, log_queries: :unset, ttl: :unset, unique_name: :unset)
443
+ context.update(
444
+ friendly_name: friendly_name,
445
+ log_queries: log_queries,
446
+ ttl: ttl,
447
+ unique_name: unique_name,
448
+ )
449
+ end
450
+
451
+ ##
452
+ # Deletes the ServiceInstance
453
+ # @return [Boolean] true if delete succeeds, true otherwise
454
+ def delete
455
+ context.delete
456
+ end
457
+
458
+ ##
459
+ # Access the field_types
460
+ # @return [field_types] field_types
461
+ def field_types
462
+ context.field_types
463
+ end
464
+
465
+ ##
466
+ # Access the intents
467
+ # @return [intents] intents
468
+ def intents
469
+ context.intents
470
+ end
471
+
472
+ ##
473
+ # Access the model_builds
474
+ # @return [model_builds] model_builds
475
+ def model_builds
476
+ context.model_builds
477
+ end
478
+
479
+ ##
480
+ # Access the queries
481
+ # @return [queries] queries
482
+ def queries
483
+ context.queries
484
+ end
485
+
486
+ ##
487
+ # Provide a user friendly representation
488
+ def to_s
489
+ values = @params.map{|k, v| "#{k}: #{v}"}.join(" ")
490
+ "<Twilio.Preview.Understand.ServiceInstance #{values}>"
491
+ end
492
+
493
+ ##
494
+ # Provide a detailed, user friendly representation
495
+ def inspect
496
+ values = @properties.map{|k, v| "#{k}: #{v}"}.join(" ")
497
+ "<Twilio.Preview.Understand.ServiceInstance #{values}>"
498
+ end
499
+ end
500
+ end
501
+ end
502
+ end
503
+ end