twilio-ruby 5.72.0 → 5.77.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 +4 -4
- data/.github/workflows/pr-lint.yml +8 -2
- data/.github/workflows/test-and-deploy.yml +3 -3
- data/CHANGES.md +234 -0
- data/CONTRIBUTING.md +1 -7
- data/LICENSE +1 -1
- data/README.md +132 -45
- data/advanced-examples/custom-http-client.md +170 -0
- data/lib/twilio-ruby/rest/api/v2010/account/address.rb +19 -3
- data/lib/twilio-ruby/rest/api/v2010/account/application.rb +22 -3
- data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/local.rb +2 -2
- data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/machine_to_machine.rb +2 -2
- data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/mobile.rb +2 -2
- data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/national.rb +2 -2
- data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/shared_cost.rb +2 -2
- data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/toll_free.rb +2 -2
- data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/voip.rb +2 -2
- data/lib/twilio-ruby/rest/api/v2010/account/call/feedback.rb +1 -1
- data/lib/twilio-ruby/rest/api/v2010/account/call/feedback_summary.rb +5 -5
- data/lib/twilio-ruby/rest/api/v2010/account/call/recording.rb +2 -2
- data/lib/twilio-ruby/rest/api/v2010/account/call/user_defined_message.rb +160 -0
- data/lib/twilio-ruby/rest/api/v2010/account/call/user_defined_message_subscription.rb +251 -0
- data/lib/twilio-ruby/rest/api/v2010/account/call.rb +59 -0
- data/lib/twilio-ruby/rest/api/v2010/account/conference/participant.rb +56 -17
- data/lib/twilio-ruby/rest/api/v2010/account/conference/recording.rb +1 -1
- data/lib/twilio-ruby/rest/api/v2010/account/conference.rb +5 -5
- data/lib/twilio-ruby/rest/api/v2010/account/message.rb +17 -1
- data/lib/twilio-ruby/rest/api/v2010/account/queue/member.rb +2 -2
- data/lib/twilio-ruby/rest/api/v2010/account/queue.rb +6 -6
- data/lib/twilio-ruby/rest/api/v2010/account/recording/transcription.rb +1 -1
- data/lib/twilio-ruby/rest/api/v2010/account/recording.rb +1 -1
- data/lib/twilio-ruby/rest/api/v2010/account/sip/ip_access_control_list/ip_address.rb +1 -1
- data/lib/twilio-ruby/rest/api/v2010/account/transcription.rb +1 -1
- data/lib/twilio-ruby/rest/api/v2010/account/usage/record/all_time.rb +1 -1
- data/lib/twilio-ruby/rest/api/v2010/account/usage/record/daily.rb +1 -1
- data/lib/twilio-ruby/rest/api/v2010/account/usage/record/last_month.rb +1 -1
- data/lib/twilio-ruby/rest/api/v2010/account/usage/record/monthly.rb +1 -1
- data/lib/twilio-ruby/rest/api/v2010/account/usage/record/this_month.rb +1 -1
- data/lib/twilio-ruby/rest/api/v2010/account/usage/record/today.rb +1 -1
- data/lib/twilio-ruby/rest/api/v2010/account/usage/record/yearly.rb +1 -1
- data/lib/twilio-ruby/rest/api/v2010/account/usage/record/yesterday.rb +1 -1
- data/lib/twilio-ruby/rest/api/v2010/account/usage/record.rb +1 -1
- data/lib/twilio-ruby/rest/autopilot/v1/assistant/task/task_statistics.rb +2 -2
- data/lib/twilio-ruby/rest/bulkexports/v1/export/day.rb +1 -1
- data/lib/twilio-ruby/rest/chat/v1/service/channel/message.rb +1 -1
- data/lib/twilio-ruby/rest/chat/v1/service/channel.rb +2 -2
- data/lib/twilio-ruby/rest/chat/v1/service/user.rb +1 -1
- data/lib/twilio-ruby/rest/chat/v1/service.rb +2 -2
- data/lib/twilio-ruby/rest/chat/v2/service/channel/message.rb +1 -1
- data/lib/twilio-ruby/rest/chat/v2/service/channel.rb +2 -2
- data/lib/twilio-ruby/rest/chat/v2/service/user.rb +1 -1
- data/lib/twilio-ruby/rest/chat/v2/service.rb +4 -4
- data/lib/twilio-ruby/rest/chat/v3/channel.rb +2 -2
- data/lib/twilio-ruby/rest/client.rb +14 -0
- data/lib/twilio-ruby/rest/content/v1/content/approval_fetch.rb +195 -0
- data/lib/twilio-ruby/rest/content/v1/content.rb +346 -0
- data/lib/twilio-ruby/rest/content/v1/content_and_approvals.rb +240 -0
- data/lib/twilio-ruby/rest/content/v1/legacy_content.rb +254 -0
- data/lib/twilio-ruby/rest/content/v1.rb +59 -0
- data/lib/twilio-ruby/rest/content.rb +59 -0
- data/lib/twilio-ruby/rest/conversations/v1/conversation/message/delivery_receipt.rb +1 -1
- data/lib/twilio-ruby/rest/conversations/v1/conversation/message.rb +17 -2
- data/lib/twilio-ruby/rest/conversations/v1/conversation.rb +43 -5
- data/lib/twilio-ruby/rest/conversations/v1/service/conversation/message/delivery_receipt.rb +1 -1
- data/lib/twilio-ruby/rest/conversations/v1/service/conversation/message.rb +17 -2
- data/lib/twilio-ruby/rest/conversations/v1/service/conversation.rb +43 -5
- data/lib/twilio-ruby/rest/events/v1/schema/version.rb +1 -1
- data/lib/twilio-ruby/rest/events/v1/schema.rb +1 -1
- data/lib/twilio-ruby/rest/events/v1/subscription/subscribed_event.rb +1 -1
- data/lib/twilio-ruby/rest/flex_api/v1/assessments.rb +397 -0
- data/lib/twilio-ruby/rest/flex_api/v1/insights_assessments_comment.rb +314 -0
- data/lib/twilio-ruby/rest/flex_api/v1/insights_conversations.rb +216 -0
- data/lib/twilio-ruby/rest/flex_api/v1/insights_questionnaires.rb +394 -0
- data/lib/twilio-ruby/rest/flex_api/v1/insights_questionnaires_category.rb +313 -0
- data/lib/twilio-ruby/rest/flex_api/v1/insights_questionnaires_question.rb +390 -0
- data/lib/twilio-ruby/rest/flex_api/v1/insights_segments.rb +413 -0
- data/lib/twilio-ruby/rest/{preview/trusted_comms/brands_information.rb → flex_api/v1/insights_session.rb} +58 -55
- data/lib/twilio-ruby/rest/flex_api/v1/insights_settings_answersets.rb +144 -0
- data/lib/twilio-ruby/rest/flex_api/v1/insights_settings_comment.rb +130 -0
- data/lib/twilio-ruby/rest/{preview/trusted_comms/cps.rb → flex_api/v1/insights_user_roles.rb} +42 -54
- data/lib/twilio-ruby/rest/flex_api/v1.rb +122 -0
- data/lib/twilio-ruby/rest/flex_api/v2/web_channels.rb +133 -0
- data/lib/twilio-ruby/rest/flex_api/v2.rb +35 -0
- data/lib/twilio-ruby/rest/flex_api.rb +89 -0
- data/lib/twilio-ruby/rest/insights/v1/call/summary.rb +7 -0
- data/lib/twilio-ruby/rest/insights/v1/call_summaries.rb +16 -3
- data/lib/twilio-ruby/rest/insights/v1/room/participant.rb +1 -1
- data/lib/twilio-ruby/rest/insights/v1/room.rb +3 -3
- data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/message.rb +1 -1
- data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel.rb +2 -2
- data/lib/twilio-ruby/rest/ip_messaging/v1/service/user.rb +1 -1
- data/lib/twilio-ruby/rest/ip_messaging/v1/service.rb +2 -2
- data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/message.rb +1 -1
- data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel.rb +2 -2
- data/lib/twilio-ruby/rest/ip_messaging/v2/service/user.rb +1 -1
- data/lib/twilio-ruby/rest/ip_messaging/v2/service.rb +4 -4
- data/lib/twilio-ruby/rest/lookups/v2/phone_number.rb +88 -6
- data/lib/twilio-ruby/rest/media/v1/media_processor.rb +1 -1
- data/lib/twilio-ruby/rest/media/v1/media_recording.rb +2 -2
- data/lib/twilio-ruby/rest/media/v1/player_streamer.rb +1 -1
- data/lib/twilio-ruby/rest/messaging/v1/brand_registration/brand_registration_otp.rb +134 -0
- data/lib/twilio-ruby/rest/messaging/v1/brand_registration.rb +26 -3
- data/lib/twilio-ruby/rest/messaging/v1/domain_cert.rb +257 -0
- data/lib/twilio-ruby/rest/messaging/v1/domain_config.rb +242 -0
- data/lib/twilio-ruby/rest/messaging/v1/domain_config_messaging_service.rb +226 -0
- data/lib/twilio-ruby/rest/messaging/v1/linkshortening_messaging_service.rb +218 -0
- data/lib/twilio-ruby/rest/messaging/v1/service/us_app_to_person.rb +98 -3
- data/lib/twilio-ruby/rest/messaging/v1/service.rb +1 -1
- data/lib/twilio-ruby/rest/messaging/v1/tollfree_verification.rb +165 -1
- data/lib/twilio-ruby/rest/messaging/v1.rb +75 -0
- data/lib/twilio-ruby/rest/messaging.rb +36 -0
- data/lib/twilio-ruby/rest/microvisor/v1/account_config.rb +317 -0
- data/lib/twilio-ruby/rest/microvisor/v1/account_secret.rb +310 -0
- data/lib/twilio-ruby/rest/microvisor/v1/app/app_manifest.rb +192 -0
- data/lib/twilio-ruby/rest/microvisor/v1/app.rb +25 -0
- data/lib/twilio-ruby/rest/microvisor/v1/device/device_config.rb +342 -0
- data/lib/twilio-ruby/rest/microvisor/v1/device/device_secret.rb +335 -0
- data/lib/twilio-ruby/rest/microvisor/v1/device.rb +61 -0
- data/lib/twilio-ruby/rest/microvisor/v1.rb +32 -0
- data/lib/twilio-ruby/rest/microvisor.rb +16 -0
- data/lib/twilio-ruby/rest/notify/v1/service/notification.rb +1 -1
- data/lib/twilio-ruby/rest/numbers/v1/eligibility.rb +111 -0
- data/lib/twilio-ruby/rest/numbers/v1.rb +35 -0
- data/lib/twilio-ruby/rest/numbers.rb +13 -0
- data/lib/twilio-ruby/rest/oauth/v1/device_code.rb +153 -0
- data/lib/twilio-ruby/rest/oauth/v1/oauth.rb +162 -0
- data/lib/twilio-ruby/rest/oauth/v1/openid_discovery.rb +242 -0
- data/lib/twilio-ruby/rest/oauth/v1/token.rb +157 -0
- data/lib/twilio-ruby/rest/oauth/v1/user_info.rb +193 -0
- data/lib/twilio-ruby/rest/oauth/v1.rb +63 -0
- data/lib/twilio-ruby/rest/oauth.rb +68 -0
- data/lib/twilio-ruby/rest/preview/hosted_numbers/authorization_document/dependent_hosted_number_order.rb +2 -2
- data/lib/twilio-ruby/rest/preview/hosted_numbers/hosted_number_order.rb +2 -2
- data/lib/twilio-ruby/rest/preview/sync/service/sync_list/sync_list_item.rb +1 -1
- data/lib/twilio-ruby/rest/preview/understand/assistant/task/task_statistics.rb +2 -2
- data/lib/twilio-ruby/rest/preview/wireless/rate_plan.rb +1 -1
- data/lib/twilio-ruby/rest/preview.rb +0 -33
- data/lib/twilio-ruby/rest/proxy/v1/service/phone_number.rb +1 -1
- data/lib/twilio-ruby/rest/proxy/v1/service/session/participant.rb +1 -14
- data/lib/twilio-ruby/rest/proxy/v1/service/session.rb +5 -46
- data/lib/twilio-ruby/rest/proxy/v1/service.rb +1 -1
- data/lib/twilio-ruby/rest/studio/v1/flow.rb +1 -1
- data/lib/twilio-ruby/rest/studio/v2/flow/flow_revision.rb +1 -1
- data/lib/twilio-ruby/rest/studio/v2/flow.rb +1 -1
- data/lib/twilio-ruby/rest/supersim/v1/esim_profile.rb +21 -1
- data/lib/twilio-ruby/rest/supersim/v1/fleet.rb +1 -1
- data/lib/twilio-ruby/rest/supersim/v1/ip_command.rb +5 -2
- data/lib/twilio-ruby/rest/supersim/v1/settings_update.rb +247 -0
- data/lib/twilio-ruby/rest/supersim/v1/sms_command.rb +3 -3
- data/lib/twilio-ruby/rest/supersim/v1/usage_record.rb +4 -4
- data/lib/twilio-ruby/rest/supersim/v1.rb +7 -0
- data/lib/twilio-ruby/rest/supersim.rb +6 -0
- data/lib/twilio-ruby/rest/sync/v1/service/sync_list/sync_list_item.rb +1 -1
- data/lib/twilio-ruby/rest/sync/v1/service.rb +1 -1
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/event.rb +1 -1
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task/reservation.rb +18 -5
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task.rb +3 -3
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_cumulative_statistics.rb +12 -12
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_real_time_statistics.rb +5 -5
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue.rb +10 -4
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/worker_channel.rb +3 -3
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/workers_cumulative_statistics.rb +6 -6
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/workers_real_time_statistics.rb +1 -1
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker.rb +9 -3
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow/workflow_cumulative_statistics.rb +13 -13
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow/workflow_real_time_statistics.rb +2 -2
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow.rb +1 -1
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workspace_cumulative_statistics.rb +13 -13
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workspace_real_time_statistics.rb +3 -3
- data/lib/twilio-ruby/rest/trunking/v1/trunk/origination_url.rb +2 -2
- data/lib/twilio-ruby/rest/verify/v2/service/access_token.rb +1 -9
- data/lib/twilio-ruby/rest/verify/v2/service/entity/challenge/notification.rb +1 -7
- data/lib/twilio-ruby/rest/verify/v2/service/entity/challenge.rb +0 -8
- data/lib/twilio-ruby/rest/verify/v2/service/entity/factor.rb +0 -8
- data/lib/twilio-ruby/rest/verify/v2/service/entity/new_factor.rb +0 -6
- data/lib/twilio-ruby/rest/verify/v2/service/entity.rb +0 -8
- data/lib/twilio-ruby/rest/verify/v2/service/rate_limit/bucket.rb +2 -2
- data/lib/twilio-ruby/rest/verify/v2/service/verification.rb +12 -6
- data/lib/twilio-ruby/rest/verify/v2/service/webhook.rb +0 -8
- data/lib/twilio-ruby/rest/verify/v2/service.rb +4 -4
- data/lib/twilio-ruby/rest/verify/v2/template.rb +10 -3
- data/lib/twilio-ruby/rest/verify/v2/verification_attempts_summary.rb +4 -4
- data/lib/twilio-ruby/rest/video/v1/composition.rb +3 -3
- data/lib/twilio-ruby/rest/video/v1/recording.rb +2 -2
- data/lib/twilio-ruby/rest/video/v1/room/recording.rb +2 -2
- data/lib/twilio-ruby/rest/video/v1/room.rb +4 -4
- data/lib/twilio-ruby/rest/voice/v1/connection_policy/connection_policy_target.rb +2 -2
- data/lib/twilio-ruby/rest/voice/v1/dialing_permissions/bulk_country_update.rb +1 -1
- data/lib/twilio-ruby/rest/voice/v1/ip_record.rb +1 -1
- data/lib/twilio-ruby/rest/wireless/v1/rate_plan.rb +3 -3
- data/lib/twilio-ruby/rest/wireless/v1/sim/data_session.rb +2 -2
- data/lib/twilio-ruby/twiml/voice_response.rb +132 -33
- data/lib/twilio-ruby/version.rb +1 -1
- data/twilio-ruby.gemspec +1 -1
- metadata +48 -12
- data/lib/twilio-ruby/rest/preview/trusted_comms/branded_channel/channel.rb +0 -165
- data/lib/twilio-ruby/rest/preview/trusted_comms/branded_channel.rb +0 -225
- data/lib/twilio-ruby/rest/preview/trusted_comms/current_call.rb +0 -277
- data/lib/twilio-ruby/rest/preview/trusted_comms.rb +0 -65
|
@@ -75,6 +75,14 @@ module Twilio
|
|
|
75
75
|
# Lists ConversationInstance records from the API as a list.
|
|
76
76
|
# Unlike stream(), this operation is eager and will load `limit` records into
|
|
77
77
|
# memory before returning.
|
|
78
|
+
# @param [String] start_date Start date or time in ISO8601 format for filtering
|
|
79
|
+
# list of Conversations. If a date is provided, the start time of the date is used
|
|
80
|
+
# (YYYY-MM-DDT00:00:00Z). Can be combined with other filters.
|
|
81
|
+
# @param [String] end_date End date or time in ISO8601 format for filtering list
|
|
82
|
+
# of Conversations. If a date is provided, the end time of the date is used
|
|
83
|
+
# (YYYY-MM-DDT23:59:59Z). Can be combined with other filters.
|
|
84
|
+
# @param [conversation.State] state State for sorting and filtering list of
|
|
85
|
+
# Conversations. Can be `active`, `inactive` or `closed`
|
|
78
86
|
# @param [Integer] limit Upper limit for the number of records to return. stream()
|
|
79
87
|
# guarantees to never return more than limit. Default is no limit
|
|
80
88
|
# @param [Integer] page_size Number of records to fetch per request, when
|
|
@@ -82,14 +90,28 @@ module Twilio
|
|
|
82
90
|
# but a limit is defined, stream() will attempt to read the limit with the most
|
|
83
91
|
# efficient page size, i.e. min(limit, 1000)
|
|
84
92
|
# @return [Array] Array of up to limit results
|
|
85
|
-
def list(limit: nil, page_size: nil)
|
|
86
|
-
self.stream(
|
|
93
|
+
def list(start_date: :unset, end_date: :unset, state: :unset, limit: nil, page_size: nil)
|
|
94
|
+
self.stream(
|
|
95
|
+
start_date: start_date,
|
|
96
|
+
end_date: end_date,
|
|
97
|
+
state: state,
|
|
98
|
+
limit: limit,
|
|
99
|
+
page_size: page_size
|
|
100
|
+
).entries
|
|
87
101
|
end
|
|
88
102
|
|
|
89
103
|
##
|
|
90
104
|
# Streams ConversationInstance records from the API as an Enumerable.
|
|
91
105
|
# This operation lazily loads records as efficiently as possible until the limit
|
|
92
106
|
# is reached.
|
|
107
|
+
# @param [String] start_date Start date or time in ISO8601 format for filtering
|
|
108
|
+
# list of Conversations. If a date is provided, the start time of the date is used
|
|
109
|
+
# (YYYY-MM-DDT00:00:00Z). Can be combined with other filters.
|
|
110
|
+
# @param [String] end_date End date or time in ISO8601 format for filtering list
|
|
111
|
+
# of Conversations. If a date is provided, the end time of the date is used
|
|
112
|
+
# (YYYY-MM-DDT23:59:59Z). Can be combined with other filters.
|
|
113
|
+
# @param [conversation.State] state State for sorting and filtering list of
|
|
114
|
+
# Conversations. Can be `active`, `inactive` or `closed`
|
|
93
115
|
# @param [Integer] limit Upper limit for the number of records to return. stream()
|
|
94
116
|
# guarantees to never return more than limit. Default is no limit.
|
|
95
117
|
# @param [Integer] page_size Number of records to fetch per request, when
|
|
@@ -97,10 +119,15 @@ module Twilio
|
|
|
97
119
|
# but a limit is defined, stream() will attempt to read the limit with the most
|
|
98
120
|
# efficient page size, i.e. min(limit, 1000)
|
|
99
121
|
# @return [Enumerable] Enumerable that will yield up to limit results
|
|
100
|
-
def stream(limit: nil, page_size: nil)
|
|
122
|
+
def stream(start_date: :unset, end_date: :unset, state: :unset, limit: nil, page_size: nil)
|
|
101
123
|
limits = @version.read_limits(limit, page_size)
|
|
102
124
|
|
|
103
|
-
page = self.page(
|
|
125
|
+
page = self.page(
|
|
126
|
+
start_date: start_date,
|
|
127
|
+
end_date: end_date,
|
|
128
|
+
state: state,
|
|
129
|
+
page_size: limits[:page_size],
|
|
130
|
+
)
|
|
104
131
|
|
|
105
132
|
@version.stream(page, limit: limits[:limit], page_limit: limits[:page_limit])
|
|
106
133
|
end
|
|
@@ -122,12 +149,23 @@ module Twilio
|
|
|
122
149
|
##
|
|
123
150
|
# Retrieve a single page of ConversationInstance records from the API.
|
|
124
151
|
# Request is executed immediately.
|
|
152
|
+
# @param [String] start_date Start date or time in ISO8601 format for filtering
|
|
153
|
+
# list of Conversations. If a date is provided, the start time of the date is used
|
|
154
|
+
# (YYYY-MM-DDT00:00:00Z). Can be combined with other filters.
|
|
155
|
+
# @param [String] end_date End date or time in ISO8601 format for filtering list
|
|
156
|
+
# of Conversations. If a date is provided, the end time of the date is used
|
|
157
|
+
# (YYYY-MM-DDT23:59:59Z). Can be combined with other filters.
|
|
158
|
+
# @param [conversation.State] state State for sorting and filtering list of
|
|
159
|
+
# Conversations. Can be `active`, `inactive` or `closed`
|
|
125
160
|
# @param [String] page_token PageToken provided by the API
|
|
126
161
|
# @param [Integer] page_number Page Number, this value is simply for client state
|
|
127
162
|
# @param [Integer] page_size Number of records to return, defaults to 50
|
|
128
163
|
# @return [Page] Page of ConversationInstance
|
|
129
|
-
def page(page_token: :unset, page_number: :unset, page_size: :unset)
|
|
164
|
+
def page(start_date: :unset, end_date: :unset, state: :unset, page_token: :unset, page_number: :unset, page_size: :unset)
|
|
130
165
|
params = Twilio::Values.of({
|
|
166
|
+
'StartDate' => start_date,
|
|
167
|
+
'EndDate' => end_date,
|
|
168
|
+
'State' => state,
|
|
131
169
|
'PageToken' => page_token,
|
|
132
170
|
'Page' => page_number,
|
|
133
171
|
'PageSize' => page_size,
|
|
@@ -210,7 +210,7 @@ module Twilio
|
|
|
210
210
|
# Marshaled Properties
|
|
211
211
|
@properties = {
|
|
212
212
|
'id' => payload['id'],
|
|
213
|
-
'schema_version' => payload['schema_version'].to_i,
|
|
213
|
+
'schema_version' => payload['schema_version'] == nil ? payload['schema_version'] : payload['schema_version'].to_i,
|
|
214
214
|
'date_created' => Twilio.deserialize_iso8601_datetime(payload['date_created']),
|
|
215
215
|
'url' => payload['url'],
|
|
216
216
|
'raw' => payload['raw'],
|
|
@@ -143,7 +143,7 @@ module Twilio
|
|
|
143
143
|
'url' => payload['url'],
|
|
144
144
|
'links' => payload['links'],
|
|
145
145
|
'latest_version_date_created' => Twilio.deserialize_iso8601_datetime(payload['latest_version_date_created']),
|
|
146
|
-
'latest_version' => payload['latest_version'].to_i,
|
|
146
|
+
'latest_version' => payload['latest_version'] == nil ? payload['latest_version'] : payload['latest_version'].to_i,
|
|
147
147
|
}
|
|
148
148
|
|
|
149
149
|
# Context
|
|
@@ -247,7 +247,7 @@ module Twilio
|
|
|
247
247
|
@properties = {
|
|
248
248
|
'account_sid' => payload['account_sid'],
|
|
249
249
|
'type' => payload['type'],
|
|
250
|
-
'schema_version' => payload['schema_version'].to_i,
|
|
250
|
+
'schema_version' => payload['schema_version'] == nil ? payload['schema_version'] : payload['schema_version'].to_i,
|
|
251
251
|
'subscription_sid' => payload['subscription_sid'],
|
|
252
252
|
'url' => payload['url'],
|
|
253
253
|
}
|
|
@@ -0,0 +1,397 @@
|
|
|
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 FlexApi < Domain
|
|
12
|
+
class V1 < Version
|
|
13
|
+
##
|
|
14
|
+
# PLEASE NOTE that this class contains preview products that are subject to change. Use them with caution. If you currently do not have developer preview access, please contact help@twilio.com.
|
|
15
|
+
class AssessmentsList < ListResource
|
|
16
|
+
##
|
|
17
|
+
# Initialize the AssessmentsList
|
|
18
|
+
# @param [Version] version Version that contains the resource
|
|
19
|
+
# @return [AssessmentsList] AssessmentsList
|
|
20
|
+
def initialize(version)
|
|
21
|
+
super(version)
|
|
22
|
+
|
|
23
|
+
# Path Solution
|
|
24
|
+
@solution = {}
|
|
25
|
+
@uri = "/Insights/QM/Assessments"
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
##
|
|
29
|
+
# Create the AssessmentsInstance
|
|
30
|
+
# @param [String] category_id The id of the category
|
|
31
|
+
# @param [String] category_name The name of the category
|
|
32
|
+
# @param [String] segment_id Segment Id of the conversation
|
|
33
|
+
# @param [String] user_name Name of the user assessing conversation
|
|
34
|
+
# @param [String] user_email Email of the user assessing conversation
|
|
35
|
+
# @param [String] agent_id The id of the Agent
|
|
36
|
+
# @param [String] offset The offset of the conversation.
|
|
37
|
+
# @param [String] metric_id The question Id selected for assessment
|
|
38
|
+
# @param [String] metric_name The question name of the assessment
|
|
39
|
+
# @param [String] answer_text The answer text selected by user
|
|
40
|
+
# @param [String] answer_id The id of the answer selected by user
|
|
41
|
+
# @param [String] questionnaire_id Questionnaire Id of the associated question
|
|
42
|
+
# @param [String] token The Token HTTP request header
|
|
43
|
+
# @return [AssessmentsInstance] Created AssessmentsInstance
|
|
44
|
+
def create(category_id: nil, category_name: nil, segment_id: nil, user_name: nil, user_email: nil, agent_id: nil, offset: nil, metric_id: nil, metric_name: nil, answer_text: nil, answer_id: nil, questionnaire_id: nil, token: :unset)
|
|
45
|
+
data = Twilio::Values.of({
|
|
46
|
+
'CategoryId' => category_id,
|
|
47
|
+
'CategoryName' => category_name,
|
|
48
|
+
'SegmentId' => segment_id,
|
|
49
|
+
'UserName' => user_name,
|
|
50
|
+
'UserEmail' => user_email,
|
|
51
|
+
'AgentId' => agent_id,
|
|
52
|
+
'Offset' => offset,
|
|
53
|
+
'MetricId' => metric_id,
|
|
54
|
+
'MetricName' => metric_name,
|
|
55
|
+
'AnswerText' => answer_text,
|
|
56
|
+
'AnswerId' => answer_id,
|
|
57
|
+
'QuestionnaireId' => questionnaire_id,
|
|
58
|
+
})
|
|
59
|
+
headers = Twilio::Values.of({'Token' => token, })
|
|
60
|
+
|
|
61
|
+
payload = @version.create('POST', @uri, data: data, headers: headers)
|
|
62
|
+
|
|
63
|
+
AssessmentsInstance.new(@version, payload, )
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
##
|
|
67
|
+
# Lists AssessmentsInstance records from the API as a list.
|
|
68
|
+
# Unlike stream(), this operation is eager and will load `limit` records into
|
|
69
|
+
# memory before returning.
|
|
70
|
+
# @param [String] segment_id The id of the segment.
|
|
71
|
+
# @param [String] token The Token HTTP request header
|
|
72
|
+
# @param [Integer] limit Upper limit for the number of records to return. stream()
|
|
73
|
+
# guarantees to never return more than limit. Default is no limit
|
|
74
|
+
# @param [Integer] page_size Number of records to fetch per request, when
|
|
75
|
+
# not set will use the default value of 50 records. If no page_size is defined
|
|
76
|
+
# but a limit is defined, stream() will attempt to read the limit with the most
|
|
77
|
+
# efficient page size, i.e. min(limit, 1000)
|
|
78
|
+
# @return [Array] Array of up to limit results
|
|
79
|
+
def list(segment_id: :unset, token: :unset, limit: nil, page_size: nil)
|
|
80
|
+
self.stream(segment_id: segment_id, token: token, limit: limit, page_size: page_size).entries
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
##
|
|
84
|
+
# Streams AssessmentsInstance records from the API as an Enumerable.
|
|
85
|
+
# This operation lazily loads records as efficiently as possible until the limit
|
|
86
|
+
# is reached.
|
|
87
|
+
# @param [String] segment_id The id of the segment.
|
|
88
|
+
# @param [String] token The Token HTTP request header
|
|
89
|
+
# @param [Integer] limit Upper limit for the number of records to return. stream()
|
|
90
|
+
# guarantees to never return more than limit. Default is no limit.
|
|
91
|
+
# @param [Integer] page_size Number of records to fetch per request, when
|
|
92
|
+
# not set will use the default value of 50 records. If no page_size is defined
|
|
93
|
+
# but a limit is defined, stream() will attempt to read the limit with the most
|
|
94
|
+
# efficient page size, i.e. min(limit, 1000)
|
|
95
|
+
# @return [Enumerable] Enumerable that will yield up to limit results
|
|
96
|
+
def stream(segment_id: :unset, token: :unset, limit: nil, page_size: nil)
|
|
97
|
+
limits = @version.read_limits(limit, page_size)
|
|
98
|
+
|
|
99
|
+
page = self.page(segment_id: segment_id, token: token, page_size: limits[:page_size], )
|
|
100
|
+
|
|
101
|
+
@version.stream(page, limit: limits[:limit], page_limit: limits[:page_limit])
|
|
102
|
+
end
|
|
103
|
+
|
|
104
|
+
##
|
|
105
|
+
# When passed a block, yields AssessmentsInstance records from the API.
|
|
106
|
+
# This operation lazily loads records as efficiently as possible until the limit
|
|
107
|
+
# is reached.
|
|
108
|
+
def each
|
|
109
|
+
limits = @version.read_limits
|
|
110
|
+
|
|
111
|
+
page = self.page(page_size: limits[:page_size], )
|
|
112
|
+
|
|
113
|
+
@version.stream(page,
|
|
114
|
+
limit: limits[:limit],
|
|
115
|
+
page_limit: limits[:page_limit]).each {|x| yield x}
|
|
116
|
+
end
|
|
117
|
+
|
|
118
|
+
##
|
|
119
|
+
# Retrieve a single page of AssessmentsInstance records from the API.
|
|
120
|
+
# Request is executed immediately.
|
|
121
|
+
# @param [String] segment_id The id of the segment.
|
|
122
|
+
# @param [String] token The Token HTTP request header
|
|
123
|
+
# @param [String] page_token PageToken provided by the API
|
|
124
|
+
# @param [Integer] page_number Page Number, this value is simply for client state
|
|
125
|
+
# @param [Integer] page_size Number of records to return, defaults to 50
|
|
126
|
+
# @return [Page] Page of AssessmentsInstance
|
|
127
|
+
def page(segment_id: :unset, token: :unset, page_token: :unset, page_number: :unset, page_size: :unset)
|
|
128
|
+
params = Twilio::Values.of({
|
|
129
|
+
'SegmentId' => segment_id,
|
|
130
|
+
'PageToken' => page_token,
|
|
131
|
+
'Page' => page_number,
|
|
132
|
+
'PageSize' => page_size,
|
|
133
|
+
})
|
|
134
|
+
headers = Twilio::Values.of({'Token' => token, })
|
|
135
|
+
|
|
136
|
+
response = @version.page('GET', @uri, params: params, headers: headers)
|
|
137
|
+
|
|
138
|
+
AssessmentsPage.new(@version, response, @solution)
|
|
139
|
+
end
|
|
140
|
+
|
|
141
|
+
##
|
|
142
|
+
# Retrieve a single page of AssessmentsInstance records from the API.
|
|
143
|
+
# Request is executed immediately.
|
|
144
|
+
# @param [String] target_url API-generated URL for the requested results page
|
|
145
|
+
# @return [Page] Page of AssessmentsInstance
|
|
146
|
+
def get_page(target_url)
|
|
147
|
+
response = @version.domain.request(
|
|
148
|
+
'GET',
|
|
149
|
+
target_url
|
|
150
|
+
)
|
|
151
|
+
AssessmentsPage.new(@version, response, @solution)
|
|
152
|
+
end
|
|
153
|
+
|
|
154
|
+
##
|
|
155
|
+
# Provide a user friendly representation
|
|
156
|
+
def to_s
|
|
157
|
+
'#<Twilio.FlexApi.V1.AssessmentsList>'
|
|
158
|
+
end
|
|
159
|
+
end
|
|
160
|
+
|
|
161
|
+
##
|
|
162
|
+
# 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.
|
|
163
|
+
class AssessmentsPage < Page
|
|
164
|
+
##
|
|
165
|
+
# Initialize the AssessmentsPage
|
|
166
|
+
# @param [Version] version Version that contains the resource
|
|
167
|
+
# @param [Response] response Response from the API
|
|
168
|
+
# @param [Hash] solution Path solution for the resource
|
|
169
|
+
# @return [AssessmentsPage] AssessmentsPage
|
|
170
|
+
def initialize(version, response, solution)
|
|
171
|
+
super(version, response)
|
|
172
|
+
|
|
173
|
+
# Path Solution
|
|
174
|
+
@solution = solution
|
|
175
|
+
end
|
|
176
|
+
|
|
177
|
+
##
|
|
178
|
+
# Build an instance of AssessmentsInstance
|
|
179
|
+
# @param [Hash] payload Payload response from the API
|
|
180
|
+
# @return [AssessmentsInstance] AssessmentsInstance
|
|
181
|
+
def get_instance(payload)
|
|
182
|
+
AssessmentsInstance.new(@version, payload, )
|
|
183
|
+
end
|
|
184
|
+
|
|
185
|
+
##
|
|
186
|
+
# Provide a user friendly representation
|
|
187
|
+
def to_s
|
|
188
|
+
'<Twilio.FlexApi.V1.AssessmentsPage>'
|
|
189
|
+
end
|
|
190
|
+
end
|
|
191
|
+
|
|
192
|
+
##
|
|
193
|
+
# 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.
|
|
194
|
+
class AssessmentsContext < InstanceContext
|
|
195
|
+
##
|
|
196
|
+
# Initialize the AssessmentsContext
|
|
197
|
+
# @param [Version] version Version that contains the resource
|
|
198
|
+
# @param [String] assessment_id The id of the assessment to be modified
|
|
199
|
+
# @return [AssessmentsContext] AssessmentsContext
|
|
200
|
+
def initialize(version, assessment_id)
|
|
201
|
+
super(version)
|
|
202
|
+
|
|
203
|
+
# Path Solution
|
|
204
|
+
@solution = {assessment_id: assessment_id, }
|
|
205
|
+
@uri = "/Insights/QM/Assessments/#{@solution[:assessment_id]}"
|
|
206
|
+
end
|
|
207
|
+
|
|
208
|
+
##
|
|
209
|
+
# Update the AssessmentsInstance
|
|
210
|
+
# @param [String] offset The offset of the conversation
|
|
211
|
+
# @param [String] answer_text The answer text selected by user
|
|
212
|
+
# @param [String] answer_id The id of the answer selected by user
|
|
213
|
+
# @param [String] token The Token HTTP request header
|
|
214
|
+
# @return [AssessmentsInstance] Updated AssessmentsInstance
|
|
215
|
+
def update(offset: nil, answer_text: nil, answer_id: nil, token: :unset)
|
|
216
|
+
data = Twilio::Values.of({'Offset' => offset, 'AnswerText' => answer_text, 'AnswerId' => answer_id, })
|
|
217
|
+
headers = Twilio::Values.of({'Token' => token, })
|
|
218
|
+
|
|
219
|
+
payload = @version.update('POST', @uri, data: data, headers: headers)
|
|
220
|
+
|
|
221
|
+
AssessmentsInstance.new(@version, payload, assessment_id: @solution[:assessment_id], )
|
|
222
|
+
end
|
|
223
|
+
|
|
224
|
+
##
|
|
225
|
+
# Provide a user friendly representation
|
|
226
|
+
def to_s
|
|
227
|
+
context = @solution.map {|k, v| "#{k}: #{v}"}.join(',')
|
|
228
|
+
"#<Twilio.FlexApi.V1.AssessmentsContext #{context}>"
|
|
229
|
+
end
|
|
230
|
+
|
|
231
|
+
##
|
|
232
|
+
# Provide a detailed, user friendly representation
|
|
233
|
+
def inspect
|
|
234
|
+
context = @solution.map {|k, v| "#{k}: #{v}"}.join(',')
|
|
235
|
+
"#<Twilio.FlexApi.V1.AssessmentsContext #{context}>"
|
|
236
|
+
end
|
|
237
|
+
end
|
|
238
|
+
|
|
239
|
+
##
|
|
240
|
+
# 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.
|
|
241
|
+
class AssessmentsInstance < InstanceResource
|
|
242
|
+
##
|
|
243
|
+
# Initialize the AssessmentsInstance
|
|
244
|
+
# @param [Version] version Version that contains the resource
|
|
245
|
+
# @param [Hash] payload payload that contains response from Twilio
|
|
246
|
+
# @param [String] assessment_id The id of the assessment to be modified
|
|
247
|
+
# @return [AssessmentsInstance] AssessmentsInstance
|
|
248
|
+
def initialize(version, payload, assessment_id: nil)
|
|
249
|
+
super(version)
|
|
250
|
+
|
|
251
|
+
# Marshaled Properties
|
|
252
|
+
@properties = {
|
|
253
|
+
'account_sid' => payload['account_sid'],
|
|
254
|
+
'assessment_id' => payload['assessment_id'],
|
|
255
|
+
'offset' => payload['offset'] == nil ? payload['offset'] : payload['offset'].to_f,
|
|
256
|
+
'report' => payload['report'],
|
|
257
|
+
'weight' => payload['weight'] == nil ? payload['weight'] : payload['weight'].to_f,
|
|
258
|
+
'agent_id' => payload['agent_id'],
|
|
259
|
+
'segment_id' => payload['segment_id'],
|
|
260
|
+
'user_name' => payload['user_name'],
|
|
261
|
+
'user_email' => payload['user_email'],
|
|
262
|
+
'answer_text' => payload['answer_text'],
|
|
263
|
+
'answer_id' => payload['answer_id'],
|
|
264
|
+
'assessment' => payload['assessment'],
|
|
265
|
+
'timestamp' => payload['timestamp'] == nil ? payload['timestamp'] : payload['timestamp'].to_f,
|
|
266
|
+
'url' => payload['url'],
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
# Context
|
|
270
|
+
@instance_context = nil
|
|
271
|
+
@params = {'assessment_id' => assessment_id || @properties['assessment_id'], }
|
|
272
|
+
end
|
|
273
|
+
|
|
274
|
+
##
|
|
275
|
+
# Generate an instance context for the instance, the context is capable of
|
|
276
|
+
# performing various actions. All instance actions are proxied to the context
|
|
277
|
+
# @return [AssessmentsContext] AssessmentsContext for this AssessmentsInstance
|
|
278
|
+
def context
|
|
279
|
+
unless @instance_context
|
|
280
|
+
@instance_context = AssessmentsContext.new(@version, @params['assessment_id'], )
|
|
281
|
+
end
|
|
282
|
+
@instance_context
|
|
283
|
+
end
|
|
284
|
+
|
|
285
|
+
##
|
|
286
|
+
# @return [String] Account Sid.
|
|
287
|
+
def account_sid
|
|
288
|
+
@properties['account_sid']
|
|
289
|
+
end
|
|
290
|
+
|
|
291
|
+
##
|
|
292
|
+
# @return [String] Assessment id
|
|
293
|
+
def assessment_id
|
|
294
|
+
@properties['assessment_id']
|
|
295
|
+
end
|
|
296
|
+
|
|
297
|
+
##
|
|
298
|
+
# @return [String] offset
|
|
299
|
+
def offset
|
|
300
|
+
@properties['offset']
|
|
301
|
+
end
|
|
302
|
+
|
|
303
|
+
##
|
|
304
|
+
# @return [Boolean] Part of assessment report
|
|
305
|
+
def report
|
|
306
|
+
@properties['report']
|
|
307
|
+
end
|
|
308
|
+
|
|
309
|
+
##
|
|
310
|
+
# @return [String] The weightage
|
|
311
|
+
def weight
|
|
312
|
+
@properties['weight']
|
|
313
|
+
end
|
|
314
|
+
|
|
315
|
+
##
|
|
316
|
+
# @return [String] AgentID
|
|
317
|
+
def agent_id
|
|
318
|
+
@properties['agent_id']
|
|
319
|
+
end
|
|
320
|
+
|
|
321
|
+
##
|
|
322
|
+
# @return [String] Segment Id
|
|
323
|
+
def segment_id
|
|
324
|
+
@properties['segment_id']
|
|
325
|
+
end
|
|
326
|
+
|
|
327
|
+
##
|
|
328
|
+
# @return [String] The user name.
|
|
329
|
+
def user_name
|
|
330
|
+
@properties['user_name']
|
|
331
|
+
end
|
|
332
|
+
|
|
333
|
+
##
|
|
334
|
+
# @return [String] The user email id.
|
|
335
|
+
def user_email
|
|
336
|
+
@properties['user_email']
|
|
337
|
+
end
|
|
338
|
+
|
|
339
|
+
##
|
|
340
|
+
# @return [String] Answer text
|
|
341
|
+
def answer_text
|
|
342
|
+
@properties['answer_text']
|
|
343
|
+
end
|
|
344
|
+
|
|
345
|
+
##
|
|
346
|
+
# @return [String] Answer Id
|
|
347
|
+
def answer_id
|
|
348
|
+
@properties['answer_id']
|
|
349
|
+
end
|
|
350
|
+
|
|
351
|
+
##
|
|
352
|
+
# @return [Hash] Assessment Details
|
|
353
|
+
def assessment
|
|
354
|
+
@properties['assessment']
|
|
355
|
+
end
|
|
356
|
+
|
|
357
|
+
##
|
|
358
|
+
# @return [String] The timestamp
|
|
359
|
+
def timestamp
|
|
360
|
+
@properties['timestamp']
|
|
361
|
+
end
|
|
362
|
+
|
|
363
|
+
##
|
|
364
|
+
# @return [String] The url
|
|
365
|
+
def url
|
|
366
|
+
@properties['url']
|
|
367
|
+
end
|
|
368
|
+
|
|
369
|
+
##
|
|
370
|
+
# Update the AssessmentsInstance
|
|
371
|
+
# @param [String] offset The offset of the conversation
|
|
372
|
+
# @param [String] answer_text The answer text selected by user
|
|
373
|
+
# @param [String] answer_id The id of the answer selected by user
|
|
374
|
+
# @param [String] token The Token HTTP request header
|
|
375
|
+
# @return [AssessmentsInstance] Updated AssessmentsInstance
|
|
376
|
+
def update(offset: nil, answer_text: nil, answer_id: nil, token: :unset)
|
|
377
|
+
context.update(offset: offset, answer_text: answer_text, answer_id: answer_id, token: token, )
|
|
378
|
+
end
|
|
379
|
+
|
|
380
|
+
##
|
|
381
|
+
# Provide a user friendly representation
|
|
382
|
+
def to_s
|
|
383
|
+
values = @params.map{|k, v| "#{k}: #{v}"}.join(" ")
|
|
384
|
+
"<Twilio.FlexApi.V1.AssessmentsInstance #{values}>"
|
|
385
|
+
end
|
|
386
|
+
|
|
387
|
+
##
|
|
388
|
+
# Provide a detailed, user friendly representation
|
|
389
|
+
def inspect
|
|
390
|
+
values = @properties.map{|k, v| "#{k}: #{v}"}.join(" ")
|
|
391
|
+
"<Twilio.FlexApi.V1.AssessmentsInstance #{values}>"
|
|
392
|
+
end
|
|
393
|
+
end
|
|
394
|
+
end
|
|
395
|
+
end
|
|
396
|
+
end
|
|
397
|
+
end
|