Skip to content

Commit 3247ef3

Browse files
committed
[Librarian] Regenerated @ 05bdd0133313ac71fd55c97753894743b8f3cad9
1 parent b6a4fc8 commit 3247ef3

File tree

12 files changed

+562
-19
lines changed

12 files changed

+562
-19
lines changed

CHANGES.md

+12
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,18 @@ twilio-python Changelog
33

44
Here you can see the full list of changes between each twilio-python release.
55

6+
[2023-03-09] Version 7.16.5
7+
---------------------------
8+
**Api**
9+
- Add new categories for whatsapp template
10+
11+
**Lookups**
12+
- Remove `validation_results` from the `default_output_properties`
13+
14+
**Supersim**
15+
- Add ESimProfile's `matching_id` and `activation_code` parameters to libraries
16+
17+
618
[2023-02-22] Version 7.16.4
719
---------------------------
820
**Api**

tests/integration/flex_api/v1/test_assessments.py

+89
Original file line numberDiff line numberDiff line change
@@ -146,3 +146,92 @@ def test_update_response(self):
146146
actual = self.client.flex_api.v1.assessments("assessment_id").update(offset="-0.0300", answer_text="answer_text", answer_id="answer_id")
147147

148148
self.assertIsNotNone(actual)
149+
150+
def test_list_request(self):
151+
self.holodeck.mock(Response(500, ''))
152+
153+
with self.assertRaises(TwilioException):
154+
self.client.flex_api.v1.assessments.list(token="token")
155+
156+
headers = {'Token': "token", }
157+
self.holodeck.assert_has_request(Request(
158+
'get',
159+
'https://flex-api.twilio.com/v1/Insights/QM/Assessments',
160+
headers=headers,
161+
))
162+
163+
def test_read_by_segment_id_response(self):
164+
self.holodeck.mock(Response(
165+
200,
166+
'''
167+
{
168+
"assessments": [
169+
{
170+
"account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
171+
"assessment_id": "123",
172+
"offset": "0.0",
173+
"report": true,
174+
"weight": "1",
175+
"agent_id": "5d80ee80-7608-55df-b2b2-5ab5608b9831",
176+
"segment_id": "dbdf1f7b-c776-5e78-9676-98a397fb3cdc",
177+
"user_name": "Supervisor",
178+
"user_email": "[email protected]",
179+
"answer_id": "ed8697d3-558d-46c3-9b73-cd21cd93cbb3",
180+
"answer_text": "Fair",
181+
"timestamp": "1657329694199",
182+
"assessment": {
183+
"questionnaire": {
184+
"questionnaire_id": "7326e997-a84c-57cd-9186-bb94db0def2b",
185+
"name": "Customer Experience",
186+
"question": {
187+
"id": "41518739-4e38-5871-bb01-d9f6e0cd1377",
188+
"name": "Active listening",
189+
"category": {
190+
"id": "4b4e78e4-4f05-49e2-bf52-0973c5cde418",
191+
"name": "Good for Training"
192+
}
193+
}
194+
}
195+
},
196+
"url": "https://flex-api.twilio.com/v1/Insights/QM/Assessments/123"
197+
}
198+
],
199+
"meta": {
200+
"first_page_url": "https://flex-api.twilio.com/v1/Insights/QM/Assessments?SegmentId=dbdf1f7b-c776-5e78-9676-98a397fb3cdc&PageSize=50&Page=0",
201+
"key": "assessments",
202+
"next_page_url": null,
203+
"page": 0,
204+
"page_size": 50,
205+
"previous_page_url": null,
206+
"url": "https://flex-api.twilio.com/v1/Insights/QM/Assessments?SegmentId=dbdf1f7b-c776-5e78-9676-98a397fb3cdc&PageSize=50&Page=0"
207+
}
208+
}
209+
'''
210+
))
211+
212+
actual = self.client.flex_api.v1.assessments.list()
213+
214+
self.assertIsNotNone(actual)
215+
216+
def test_read_empty_response(self):
217+
self.holodeck.mock(Response(
218+
200,
219+
'''
220+
{
221+
"assessments": [],
222+
"meta": {
223+
"first_page_url": "https://flex-api.twilio.com/v1/Insights/QM/Assessments?SegmentId=dbdf1f7b-c776-5e78-9676-98a397fb3cdc&PageSize=50&Page=0",
224+
"key": "assessments",
225+
"next_page_url": null,
226+
"page": 0,
227+
"page_size": 50,
228+
"previous_page_url": null,
229+
"url": "https://flex-api.twilio.com/v1/Insights/QM/Assessments?SegmentId=dbdf1f7b-c776-5e78-9676-98a397fb3cdc&PageSize=50&Page=0"
230+
}
231+
}
232+
'''
233+
))
234+
235+
actual = self.client.flex_api.v1.assessments.list()
236+
237+
self.assertIsNotNone(actual)

tests/integration/flex_api/v1/test_insights_questionnaires_question.py

+2-3
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,11 @@ def test_create_request(self):
1818
self.holodeck.mock(Response(500, ''))
1919

2020
with self.assertRaises(TwilioException):
21-
self.client.flex_api.v1.insights_questionnaires_question.create(category_id="category_id", question="question", description="description", answer_set_id="answer_set_id", allow_na=True, token="token")
21+
self.client.flex_api.v1.insights_questionnaires_question.create(category_id="category_id", question="question", answer_set_id="answer_set_id", allow_na=True, token="token")
2222

2323
values = {
2424
'CategoryId': "category_id",
2525
'Question': "question",
26-
'Description': "description",
2726
'AnswerSetId': "answer_set_id",
2827
'AllowNa': True,
2928
}
@@ -84,7 +83,7 @@ def test_create_response(self):
8483
'''
8584
))
8685

87-
actual = self.client.flex_api.v1.insights_questionnaires_question.create(category_id="category_id", question="question", description="description", answer_set_id="answer_set_id", allow_na=True)
86+
actual = self.client.flex_api.v1.insights_questionnaires_question.create(category_id="category_id", question="question", answer_set_id="answer_set_id", allow_na=True)
8887

8988
self.assertIsNotNone(actual)
9089

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# coding=utf-8
2+
r"""
3+
This code was generated by
4+
\ / _ _ _| _ _
5+
| (_)\/(_)(_|\/| |(/_ v1.0.0
6+
/ /
7+
"""
8+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
# coding=utf-8
2+
r"""
3+
This code was generated by
4+
\ / _ _ _| _ _
5+
| (_)\/(_)(_|\/| |(/_ v1.0.0
6+
/ /
7+
"""
8+
9+
from tests import IntegrationTestCase
10+
from tests.holodeck import Request
11+
from twilio.base.exceptions import TwilioException
12+
from twilio.http.response import Response
13+
14+
15+
class AppManifestTestCase(IntegrationTestCase):
16+
17+
def test_fetch_request(self):
18+
self.holodeck.mock(Response(500, ''))
19+
20+
with self.assertRaises(TwilioException):
21+
self.client.microvisor.v1.apps("KAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX") \
22+
.app_manifests().fetch()
23+
24+
self.holodeck.assert_has_request(Request(
25+
'get',
26+
'https://microvisor.twilio.com/v1/Apps/KAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Manifest',
27+
))
28+
29+
def test_fetch_response(self):
30+
self.holodeck.mock(Response(
31+
200,
32+
'''
33+
{
34+
"app_sid": "KAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
35+
"hash": "some hash",
36+
"encoded_bytes": "some value",
37+
"url": "https://microvisor.twilio.com/v1/Apps/KAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Manifest"
38+
}
39+
'''
40+
))
41+
42+
actual = self.client.microvisor.v1.apps("KAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX") \
43+
.app_manifests().fetch()
44+
45+
self.assertIsNotNone(actual)

tests/integration/microvisor/v1/test_app.py

+8-2
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,10 @@ def test_read_full_response(self):
6161
"unique_name": "unique name",
6262
"date_created": "2015-07-30T20:00:00Z",
6363
"date_updated": "2015-07-30T20:00:00Z",
64-
"url": "https://microvisor.twilio.com/v1/Apps/KAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
64+
"url": "https://microvisor.twilio.com/v1/Apps/KAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
65+
"links": {
66+
"app_manifests": "https://microvisor.twilio.com/v1/Apps/KAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Manifest"
67+
}
6568
}
6669
],
6770
"meta": {
@@ -103,7 +106,10 @@ def test_fetch_response(self):
103106
"unique_name": "look at this crazy app",
104107
"date_created": "2015-07-30T20:00:00Z",
105108
"date_updated": "2015-07-30T20:00:00Z",
106-
"url": "https://microvisor.twilio.com/v1/Apps/KAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
109+
"url": "https://microvisor.twilio.com/v1/Apps/KAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
110+
"links": {
111+
"app_manifests": "https://microvisor.twilio.com/v1/Apps/KAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Manifest"
112+
}
107113
}
108114
'''
109115
))

tests/integration/taskrouter/v1/test_workspace.py

+4-8
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,7 @@ def test_fetch_response(self):
4848
"workers": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Workers",
4949
"workflows": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Workflows",
5050
"task_channels": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/TaskChannels",
51-
"events": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Events",
52-
"bulk_real_time_statistics": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/TaskQueues/RealTimeStatistics"
51+
"events": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Events"
5352
},
5453
"multi_task_enabled": false,
5554
"prioritize_queue_order": "FIFO",
@@ -100,8 +99,7 @@ def test_update_response(self):
10099
"workers": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Workers",
101100
"workflows": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Workflows",
102101
"task_channels": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/TaskChannels",
103-
"events": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Events",
104-
"bulk_real_time_statistics": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/TaskQueues/RealTimeStatistics"
102+
"events": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Events"
105103
},
106104
"multi_task_enabled": false,
107105
"prioritize_queue_order": "FIFO",
@@ -163,8 +161,7 @@ def test_read_full_response(self):
163161
"workers": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Workers",
164162
"workflows": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Workflows",
165163
"task_channels": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/TaskChannels",
166-
"events": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Events",
167-
"bulk_real_time_statistics": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/TaskQueues/RealTimeStatistics"
164+
"events": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Events"
168165
},
169166
"multi_task_enabled": false,
170167
"prioritize_queue_order": "FIFO",
@@ -243,8 +240,7 @@ def test_create_response(self):
243240
"workers": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Workers",
244241
"workflows": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Workflows",
245242
"task_channels": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/TaskChannels",
246-
"events": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Events",
247-
"bulk_real_time_statistics": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/TaskQueues/RealTimeStatistics"
243+
"events": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Events"
248244
},
249245
"multi_task_enabled": false,
250246
"prioritize_queue_order": "FIFO",

twilio/rest/flex_api/v1/assessments.py

+92
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,98 @@ def create(self, category_id, category_name, segment_id, user_name, user_email,
7777

7878
return AssessmentsInstance(self._version, payload, )
7979

80+
def stream(self, segment_id=values.unset, token=values.unset, limit=None,
81+
page_size=None):
82+
"""
83+
Streams AssessmentsInstance records from the API as a generator stream.
84+
This operation lazily loads records as efficiently as possible until the limit
85+
is reached.
86+
The results are returned as a generator, so this operation is memory efficient.
87+
88+
:param unicode segment_id: Segment Id.
89+
:param unicode token: The Token HTTP request header
90+
:param int limit: Upper limit for the number of records to return. stream()
91+
guarantees to never return more than limit. Default is no limit
92+
:param int page_size: Number of records to fetch per request, when not set will use
93+
the default value of 50 records. If no page_size is defined
94+
but a limit is defined, stream() will attempt to read the
95+
limit with the most efficient page size, i.e. min(limit, 1000)
96+
97+
:returns: Generator that will yield up to limit results
98+
:rtype: list[twilio.rest.flex_api.v1.assessments.AssessmentsInstance]
99+
"""
100+
limits = self._version.read_limits(limit, page_size)
101+
102+
page = self.page(segment_id=segment_id, token=token, page_size=limits['page_size'], )
103+
104+
return self._version.stream(page, limits['limit'])
105+
106+
def list(self, segment_id=values.unset, token=values.unset, limit=None,
107+
page_size=None):
108+
"""
109+
Lists AssessmentsInstance records from the API as a list.
110+
Unlike stream(), this operation is eager and will load `limit` records into
111+
memory before returning.
112+
113+
:param unicode segment_id: Segment Id.
114+
:param unicode token: The Token HTTP request header
115+
:param int limit: Upper limit for the number of records to return. list() guarantees
116+
never to return more than limit. Default is no limit
117+
:param int page_size: Number of records to fetch per request, when not set will use
118+
the default value of 50 records. If no page_size is defined
119+
but a limit is defined, list() will attempt to read the limit
120+
with the most efficient page size, i.e. min(limit, 1000)
121+
122+
:returns: Generator that will yield up to limit results
123+
:rtype: list[twilio.rest.flex_api.v1.assessments.AssessmentsInstance]
124+
"""
125+
return list(self.stream(segment_id=segment_id, token=token, limit=limit, page_size=page_size, ))
126+
127+
def page(self, segment_id=values.unset, token=values.unset,
128+
page_token=values.unset, page_number=values.unset,
129+
page_size=values.unset):
130+
"""
131+
Retrieve a single page of AssessmentsInstance records from the API.
132+
Request is executed immediately
133+
134+
:param unicode segment_id: Segment Id.
135+
:param unicode token: The Token HTTP request header
136+
:param str page_token: PageToken provided by the API
137+
:param int page_number: Page Number, this value is simply for client state
138+
:param int page_size: Number of records to return, defaults to 50
139+
140+
:returns: Page of AssessmentsInstance
141+
:rtype: twilio.rest.flex_api.v1.assessments.AssessmentsPage
142+
"""
143+
data = values.of({
144+
'SegmentId': segment_id,
145+
'PageToken': page_token,
146+
'Page': page_number,
147+
'PageSize': page_size,
148+
})
149+
headers = values.of({'Token': token, })
150+
151+
response = self._version.page(method='GET', uri=self._uri, params=data, headers=headers, )
152+
153+
return AssessmentsPage(self._version, response, self._solution)
154+
155+
def get_page(self, target_url):
156+
"""
157+
Retrieve a specific page of AssessmentsInstance records from the API.
158+
Request is executed immediately
159+
160+
:param str target_url: API-generated URL for the requested results page
161+
162+
:returns: Page of AssessmentsInstance
163+
:rtype: twilio.rest.flex_api.v1.assessments.AssessmentsPage
164+
"""
165+
response = self._version.domain.twilio.request(
166+
'GET',
167+
target_url,
168+
)
169+
170+
return AssessmentsPage(self._version, response, self._solution)
171+
80172
def get(self, assessment_id):
81173
"""
82174
Constructs a AssessmentsContext

twilio/rest/flex_api/v1/insights_questionnaires_question.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -35,16 +35,16 @@ def __init__(self, version):
3535
self._solution = {}
3636
self._uri = '/Insights/QM/Questions'.format(**self._solution)
3737

38-
def create(self, category_id, question, description, answer_set_id, allow_na,
39-
token=values.unset):
38+
def create(self, category_id, question, answer_set_id, allow_na,
39+
description=values.unset, token=values.unset):
4040
"""
4141
Create the InsightsQuestionnairesQuestionInstance
4242
4343
:param unicode category_id: Category ID
4444
:param unicode question: The question.
45-
:param unicode description: The question description.
4645
:param unicode answer_set_id: The answer_set for question.
4746
:param bool allow_na: Flag to enable NA for answer.
47+
:param unicode description: The question description.
4848
:param unicode token: The Token HTTP request header
4949
5050
:returns: The created InsightsQuestionnairesQuestionInstance
@@ -53,9 +53,9 @@ def create(self, category_id, question, description, answer_set_id, allow_na,
5353
data = values.of({
5454
'CategoryId': category_id,
5555
'Question': question,
56-
'Description': description,
5756
'AnswerSetId': answer_set_id,
5857
'AllowNa': allow_na,
58+
'Description': description,
5959
})
6060
headers = values.of({'Token': token, })
6161

0 commit comments

Comments
 (0)