tableauserverclient 0.33__py3-none-any.whl → 0.35__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (94) hide show
  1. tableauserverclient/__init__.py +33 -23
  2. tableauserverclient/{_version.py → bin/_version.py} +3 -3
  3. tableauserverclient/config.py +5 -3
  4. tableauserverclient/models/column_item.py +1 -1
  5. tableauserverclient/models/connection_credentials.py +18 -2
  6. tableauserverclient/models/connection_item.py +44 -6
  7. tableauserverclient/models/custom_view_item.py +78 -11
  8. tableauserverclient/models/data_acceleration_report_item.py +2 -2
  9. tableauserverclient/models/data_alert_item.py +5 -5
  10. tableauserverclient/models/data_freshness_policy_item.py +6 -6
  11. tableauserverclient/models/database_item.py +3 -3
  12. tableauserverclient/models/datasource_item.py +10 -10
  13. tableauserverclient/models/dqw_item.py +1 -1
  14. tableauserverclient/models/favorites_item.py +5 -6
  15. tableauserverclient/models/fileupload_item.py +1 -1
  16. tableauserverclient/models/flow_item.py +54 -9
  17. tableauserverclient/models/flow_run_item.py +3 -3
  18. tableauserverclient/models/group_item.py +44 -4
  19. tableauserverclient/models/groupset_item.py +4 -4
  20. tableauserverclient/models/interval_item.py +9 -9
  21. tableauserverclient/models/job_item.py +73 -8
  22. tableauserverclient/models/linked_tasks_item.py +5 -5
  23. tableauserverclient/models/metric_item.py +5 -5
  24. tableauserverclient/models/pagination_item.py +1 -1
  25. tableauserverclient/models/permissions_item.py +12 -10
  26. tableauserverclient/models/project_item.py +73 -19
  27. tableauserverclient/models/property_decorators.py +12 -11
  28. tableauserverclient/models/reference_item.py +2 -2
  29. tableauserverclient/models/revision_item.py +3 -3
  30. tableauserverclient/models/schedule_item.py +2 -2
  31. tableauserverclient/models/server_info_item.py +26 -6
  32. tableauserverclient/models/site_item.py +69 -3
  33. tableauserverclient/models/subscription_item.py +3 -3
  34. tableauserverclient/models/table_item.py +1 -1
  35. tableauserverclient/models/tableau_auth.py +115 -5
  36. tableauserverclient/models/tableau_types.py +2 -2
  37. tableauserverclient/models/tag_item.py +3 -4
  38. tableauserverclient/models/task_item.py +34 -4
  39. tableauserverclient/models/user_item.py +47 -17
  40. tableauserverclient/models/view_item.py +66 -13
  41. tableauserverclient/models/virtual_connection_item.py +6 -5
  42. tableauserverclient/models/webhook_item.py +39 -6
  43. tableauserverclient/models/workbook_item.py +116 -13
  44. tableauserverclient/namespace.py +1 -1
  45. tableauserverclient/server/__init__.py +2 -1
  46. tableauserverclient/server/endpoint/auth_endpoint.py +69 -10
  47. tableauserverclient/server/endpoint/custom_views_endpoint.py +258 -29
  48. tableauserverclient/server/endpoint/data_acceleration_report_endpoint.py +2 -2
  49. tableauserverclient/server/endpoint/data_alert_endpoint.py +14 -14
  50. tableauserverclient/server/endpoint/databases_endpoint.py +13 -12
  51. tableauserverclient/server/endpoint/datasources_endpoint.py +61 -62
  52. tableauserverclient/server/endpoint/default_permissions_endpoint.py +19 -18
  53. tableauserverclient/server/endpoint/dqw_endpoint.py +9 -9
  54. tableauserverclient/server/endpoint/endpoint.py +19 -21
  55. tableauserverclient/server/endpoint/exceptions.py +23 -7
  56. tableauserverclient/server/endpoint/favorites_endpoint.py +31 -31
  57. tableauserverclient/server/endpoint/fileuploads_endpoint.py +9 -11
  58. tableauserverclient/server/endpoint/flow_runs_endpoint.py +15 -13
  59. tableauserverclient/server/endpoint/flow_task_endpoint.py +2 -2
  60. tableauserverclient/server/endpoint/flows_endpoint.py +344 -29
  61. tableauserverclient/server/endpoint/groups_endpoint.py +342 -27
  62. tableauserverclient/server/endpoint/groupsets_endpoint.py +2 -2
  63. tableauserverclient/server/endpoint/jobs_endpoint.py +116 -7
  64. tableauserverclient/server/endpoint/linked_tasks_endpoint.py +2 -2
  65. tableauserverclient/server/endpoint/metadata_endpoint.py +2 -2
  66. tableauserverclient/server/endpoint/metrics_endpoint.py +10 -10
  67. tableauserverclient/server/endpoint/permissions_endpoint.py +13 -15
  68. tableauserverclient/server/endpoint/projects_endpoint.py +681 -30
  69. tableauserverclient/server/endpoint/resource_tagger.py +14 -13
  70. tableauserverclient/server/endpoint/schedules_endpoint.py +17 -18
  71. tableauserverclient/server/endpoint/server_info_endpoint.py +40 -5
  72. tableauserverclient/server/endpoint/sites_endpoint.py +282 -17
  73. tableauserverclient/server/endpoint/subscriptions_endpoint.py +10 -10
  74. tableauserverclient/server/endpoint/tables_endpoint.py +15 -14
  75. tableauserverclient/server/endpoint/tasks_endpoint.py +86 -8
  76. tableauserverclient/server/endpoint/users_endpoint.py +366 -19
  77. tableauserverclient/server/endpoint/views_endpoint.py +262 -20
  78. tableauserverclient/server/endpoint/virtual_connections_endpoint.py +6 -5
  79. tableauserverclient/server/endpoint/webhooks_endpoint.py +88 -11
  80. tableauserverclient/server/endpoint/workbooks_endpoint.py +653 -65
  81. tableauserverclient/server/filter.py +2 -2
  82. tableauserverclient/server/pager.py +29 -6
  83. tableauserverclient/server/query.py +68 -19
  84. tableauserverclient/server/request_factory.py +57 -37
  85. tableauserverclient/server/request_options.py +243 -141
  86. tableauserverclient/server/server.py +76 -10
  87. tableauserverclient/server/sort.py +16 -2
  88. {tableauserverclient-0.33.dist-info → tableauserverclient-0.35.dist-info}/METADATA +7 -7
  89. tableauserverclient-0.35.dist-info/RECORD +106 -0
  90. {tableauserverclient-0.33.dist-info → tableauserverclient-0.35.dist-info}/WHEEL +1 -1
  91. tableauserverclient-0.33.dist-info/RECORD +0 -106
  92. {tableauserverclient-0.33.dist-info → tableauserverclient-0.35.dist-info}/LICENSE +0 -0
  93. {tableauserverclient-0.33.dist-info → tableauserverclient-0.35.dist-info}/LICENSE.versioneer +0 -0
  94. {tableauserverclient-0.33.dist-info → tableauserverclient-0.35.dist-info}/top_level.txt +0 -0
@@ -5,9 +5,10 @@ from tableauserverclient.server.endpoint.endpoint import QuerysetEndpoint, api,
5
5
  from tableauserverclient.server.endpoint.exceptions import MissingRequiredFieldError
6
6
  from tableauserverclient.server.endpoint.permissions_endpoint import _PermissionsEndpoint
7
7
  from tableauserverclient.server import RequestFactory, RequestOptions
8
+ from tableauserverclient.models.permissions_item import PermissionsRule
8
9
  from tableauserverclient.models import ProjectItem, PaginationItem, Resource
9
10
 
10
- from typing import List, Optional, Tuple, TYPE_CHECKING
11
+ from typing import Optional, TYPE_CHECKING
11
12
 
12
13
  from tableauserverclient.server.query import QuerySet
13
14
 
@@ -19,18 +20,40 @@ from tableauserverclient.helpers.logging import logger
19
20
 
20
21
 
21
22
  class Projects(QuerysetEndpoint[ProjectItem]):
23
+ """
24
+ The project methods are based upon the endpoints for projects in the REST
25
+ API and operate on the ProjectItem class.
26
+ """
27
+
22
28
  def __init__(self, parent_srv: "Server") -> None:
23
- super(Projects, self).__init__(parent_srv)
29
+ super().__init__(parent_srv)
24
30
 
25
31
  self._permissions = _PermissionsEndpoint(parent_srv, lambda: self.baseurl)
26
32
  self._default_permissions = _DefaultPermissionsEndpoint(parent_srv, lambda: self.baseurl)
27
33
 
28
34
  @property
29
35
  def baseurl(self) -> str:
30
- return "{0}/sites/{1}/projects".format(self.parent_srv.baseurl, self.parent_srv.site_id)
36
+ return f"{self.parent_srv.baseurl}/sites/{self.parent_srv.site_id}/projects"
31
37
 
32
38
  @api(version="2.0")
33
- def get(self, req_options: Optional["RequestOptions"] = None) -> Tuple[List[ProjectItem], PaginationItem]:
39
+ def get(self, req_options: Optional["RequestOptions"] = None) -> tuple[list[ProjectItem], PaginationItem]:
40
+ """
41
+ Retrieves all projects on the site. The endpoint is paginated and can
42
+ be filtered using the req_options parameter.
43
+
44
+ REST API: https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref_projects.htm#query_projects
45
+
46
+ Parameters
47
+ ----------
48
+ req_options : RequestOptions | None, default None
49
+ The request options to filter the projects. The default is None.
50
+
51
+ Returns
52
+ -------
53
+ tuple[list[ProjectItem], PaginationItem]
54
+ Returns a tuple containing a list of ProjectItem objects and a
55
+ PaginationItem object.
56
+ """
34
57
  logger.info("Querying all projects on site")
35
58
  url = self.baseurl
36
59
  server_response = self.get_request(url, req_options)
@@ -40,123 +63,751 @@ class Projects(QuerysetEndpoint[ProjectItem]):
40
63
 
41
64
  @api(version="2.0")
42
65
  def delete(self, project_id: str) -> None:
66
+ """
67
+ Deletes a single project on the site.
68
+
69
+ REST API: https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref_projects.htm#delete_project
70
+
71
+ Parameters
72
+ ----------
73
+ project_id : str
74
+ The unique identifier for the project.
75
+
76
+ Returns
77
+ -------
78
+ None
79
+
80
+ Raises
81
+ ------
82
+ ValueError
83
+ If the project ID is not defined, an error is raised.
84
+ """
43
85
  if not project_id:
44
86
  error = "Project ID undefined."
45
87
  raise ValueError(error)
46
- url = "{0}/{1}".format(self.baseurl, project_id)
88
+ url = f"{self.baseurl}/{project_id}"
47
89
  self.delete_request(url)
48
- logger.info("Deleted single project (ID: {0})".format(project_id))
90
+ logger.info(f"Deleted single project (ID: {project_id})")
49
91
 
50
92
  @api(version="2.0")
51
93
  def update(self, project_item: ProjectItem, samples: bool = False) -> ProjectItem:
94
+ """
95
+ Modify the project settings.
96
+
97
+ You can use this method to update the project name, the project
98
+ description, or the project permissions. To specify the site, create a
99
+ TableauAuth instance using the content URL for the site (site_id), and
100
+ sign in to that site.
101
+
102
+ REST API: https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref_projects.htm#update_project
103
+
104
+ Parameters
105
+ ----------
106
+ project_item : ProjectItem
107
+ The project item object must include the project ID. The values in
108
+ the project item override the current project settings.
109
+
110
+ samples : bool
111
+ Set to True to include sample workbooks and data sources in the
112
+ project. The default is False.
113
+
114
+ Returns
115
+ -------
116
+ ProjectItem
117
+ Returns the updated project item.
118
+
119
+ Raises
120
+ ------
121
+ MissingRequiredFieldError
122
+ If the project item is missing the ID, an error is raised.
123
+ """
52
124
  if not project_item.id:
53
125
  error = "Project item missing ID."
54
126
  raise MissingRequiredFieldError(error)
55
127
 
56
128
  params = {"params": {RequestOptions.Field.PublishSamples: samples}}
57
- url = "{0}/{1}".format(self.baseurl, project_item.id)
129
+ url = f"{self.baseurl}/{project_item.id}"
58
130
  update_req = RequestFactory.Project.update_req(project_item)
59
131
  server_response = self.put_request(url, update_req, XML_CONTENT_TYPE, params)
60
- logger.info("Updated project item (ID: {0})".format(project_item.id))
132
+ logger.info(f"Updated project item (ID: {project_item.id})")
61
133
  updated_project = ProjectItem.from_response(server_response.content, self.parent_srv.namespace)[0]
62
134
  return updated_project
63
135
 
64
136
  @api(version="2.0")
65
137
  def create(self, project_item: ProjectItem, samples: bool = False) -> ProjectItem:
138
+ """
139
+ Creates a project on the specified site.
140
+
141
+ To create a project, you first create a new instance of a ProjectItem
142
+ and pass it to the create method. To specify the site to create the new
143
+ project, create a TableauAuth instance using the content URL for the
144
+ site (site_id), and sign in to that site.
145
+
146
+ REST API: https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref_projects.htm#create_project
147
+
148
+ Parameters
149
+ ----------
150
+ project_item : ProjectItem
151
+ Specifies the properties for the project. The project_item is the
152
+ request package. To create the request package, create a new
153
+ instance of ProjectItem.
154
+
155
+ samples : bool
156
+ Set to True to include sample workbooks and data sources in the
157
+ project. The default is False.
158
+
159
+ Returns
160
+ -------
161
+ ProjectItem
162
+ Returns the new project item.
163
+ """
66
164
  params = {"params": {RequestOptions.Field.PublishSamples: samples}}
67
165
  url = self.baseurl
68
166
  if project_item._samples:
69
- url = "{0}?publishSamples={1}".format(self.baseurl, project_item._samples)
167
+ url = f"{self.baseurl}?publishSamples={project_item._samples}"
70
168
  create_req = RequestFactory.Project.create_req(project_item)
71
169
  server_response = self.post_request(url, create_req, XML_CONTENT_TYPE, params)
72
170
  new_project = ProjectItem.from_response(server_response.content, self.parent_srv.namespace)[0]
73
- logger.info("Created new project (ID: {0})".format(new_project.id))
171
+ logger.info(f"Created new project (ID: {new_project.id})")
74
172
  return new_project
75
173
 
76
174
  @api(version="2.0")
77
175
  def populate_permissions(self, item: ProjectItem) -> None:
176
+ """
177
+ Queries the project permissions, parses and stores the returned the permissions.
178
+
179
+ REST API: https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref_permissions.htm#query_project_permissions
180
+
181
+ Parameters
182
+ ----------
183
+ item : ProjectItem
184
+ The project item to populate with permissions.
185
+
186
+ Returns
187
+ -------
188
+ None
189
+ """
78
190
  self._permissions.populate(item)
79
191
 
80
192
  @api(version="2.0")
81
- def update_permissions(self, item, rules):
193
+ def update_permissions(self, item: ProjectItem, rules: list[PermissionsRule]) -> list[PermissionsRule]:
194
+ """
195
+ Updates the permissions for the specified project item. The rules
196
+ provided are expected to be a complete list of the permissions for the
197
+ project.
198
+
199
+ REST API: https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref_permissions.htm#replace_permissions_for_content
200
+
201
+ Parameters
202
+ ----------
203
+ item : ProjectItem
204
+ The project item to update permissions for.
205
+
206
+ rules : list[PermissionsRule]
207
+ The list of permissions rules to update the project with.
208
+
209
+ Returns
210
+ -------
211
+ list[PermissionsRule]
212
+ Returns the updated list of permissions rules.
213
+ """
214
+
82
215
  return self._permissions.update(item, rules)
83
216
 
84
217
  @api(version="2.0")
85
- def delete_permission(self, item, rules):
218
+ def delete_permission(self, item: ProjectItem, rules: list[PermissionsRule]) -> None:
219
+ """
220
+ Deletes the specified permissions from the project item.
221
+
222
+ REST API: https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref_permissions.htm#delete_project_permission
223
+
224
+ Parameters
225
+ ----------
226
+ item : ProjectItem
227
+ The project item to delete permissions from.
228
+
229
+ rules : list[PermissionsRule]
230
+ The list of permissions rules to delete from the project.
231
+
232
+ Returns
233
+ -------
234
+ None
235
+ """
86
236
  self._permissions.delete(item, rules)
87
237
 
88
238
  @api(version="2.1")
89
- def populate_workbook_default_permissions(self, item):
239
+ def populate_workbook_default_permissions(self, item: ProjectItem) -> None:
240
+ """
241
+ Queries the default workbook permissions, parses and stores the
242
+ returned the permissions.
243
+
244
+ REST API: https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref_permissions.htm#query_default_permissions
245
+
246
+ Parameters
247
+ ----------
248
+ item : ProjectItem
249
+ The project item to populate with default workbook permissions.
250
+
251
+ Returns
252
+ -------
253
+ None
254
+ """
90
255
  self._default_permissions.populate_default_permissions(item, Resource.Workbook)
91
256
 
92
257
  @api(version="2.1")
93
- def populate_datasource_default_permissions(self, item):
258
+ def populate_datasource_default_permissions(self, item: ProjectItem) -> None:
259
+ """
260
+ Queries the default datasource permissions, parses and stores the
261
+ returned the permissions.
262
+
263
+ REST API: https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref_permissions.htm#query_default_permissions
264
+
265
+ Parameters
266
+ ----------
267
+ item : ProjectItem
268
+ The project item to populate with default datasource permissions.
269
+
270
+ Returns
271
+ -------
272
+ None
273
+ """
94
274
  self._default_permissions.populate_default_permissions(item, Resource.Datasource)
95
275
 
96
276
  @api(version="3.2")
97
- def populate_metric_default_permissions(self, item):
277
+ def populate_metric_default_permissions(self, item: ProjectItem) -> None:
278
+ """
279
+ Queries the default metric permissions, parses and stores the
280
+ returned the permissions.
281
+
282
+ REST API: https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref_permissions.htm#query_default_permissions
283
+
284
+ Parameters
285
+ ----------
286
+ item : ProjectItem
287
+ The project item to populate with default metric permissions.
288
+
289
+ Returns
290
+ -------
291
+ None
292
+ """
98
293
  self._default_permissions.populate_default_permissions(item, Resource.Metric)
99
294
 
100
295
  @api(version="3.4")
101
- def populate_datarole_default_permissions(self, item):
296
+ def populate_datarole_default_permissions(self, item: ProjectItem) -> None:
297
+ """
298
+ Queries the default datarole permissions, parses and stores the
299
+ returned the permissions.
300
+
301
+ REST API: https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref_permissions.htm#query_default_permissions
302
+
303
+ Parameters
304
+ ----------
305
+ item : ProjectItem
306
+ The project item to populate with default datarole permissions.
307
+
308
+ Returns
309
+ -------
310
+ None
311
+ """
102
312
  self._default_permissions.populate_default_permissions(item, Resource.Datarole)
103
313
 
104
314
  @api(version="3.4")
105
- def populate_flow_default_permissions(self, item):
315
+ def populate_flow_default_permissions(self, item: ProjectItem) -> None:
316
+ """
317
+ Queries the default flow permissions, parses and stores the
318
+ returned the permissions.
319
+
320
+ REST API: https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref_permissions.htm#query_default_permissions
321
+
322
+ Parameters
323
+ ----------
324
+ item : ProjectItem
325
+ The project item to populate with default flow permissions.
326
+
327
+ Returns
328
+ -------
329
+ None
330
+ """
106
331
  self._default_permissions.populate_default_permissions(item, Resource.Flow)
107
332
 
108
333
  @api(version="3.4")
109
- def populate_lens_default_permissions(self, item):
334
+ def populate_lens_default_permissions(self, item: ProjectItem) -> None:
335
+ """
336
+ Queries the default lens permissions, parses and stores the
337
+ returned the permissions.
338
+
339
+ REST API: https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref_permissions.htm#query_default_permissions
340
+
341
+ Parameters
342
+ ----------
343
+ item : ProjectItem
344
+ The project item to populate with default lens permissions.
345
+
346
+ Returns
347
+ -------
348
+ None
349
+ """
110
350
  self._default_permissions.populate_default_permissions(item, Resource.Lens)
111
351
 
352
+ @api(version="3.23")
353
+ def populate_virtualconnection_default_permissions(self, item: ProjectItem) -> None:
354
+ """
355
+ Queries the default virtualconnections permissions, parses and stores
356
+ the returned the permissions.
357
+
358
+ REST API: https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref_permissions.htm#query_default_permissions
359
+
360
+ Parameters
361
+ ----------
362
+ item : ProjectItem
363
+ The project item to populate with default virtual connection
364
+ permissions.
365
+
366
+ Returns
367
+ -------
368
+ None
369
+ """
370
+ self._default_permissions.populate_default_permissions(item, Resource.VirtualConnection)
371
+
372
+ @api(version="3.23")
373
+ def populate_database_default_permissions(self, item: ProjectItem) -> None:
374
+ """
375
+ Queries the default database permissions, parses and stores the
376
+ returned the permissions.
377
+
378
+ REST API: https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref_permissions.htm#query_default_permissions
379
+
380
+ Parameters
381
+ ----------
382
+ item : ProjectItem
383
+ The project item to populate with default database permissions.
384
+
385
+ Returns
386
+ -------
387
+ None
388
+ """
389
+ self._default_permissions.populate_default_permissions(item, Resource.Database)
390
+
391
+ @api(version="3.23")
392
+ def populate_table_default_permissions(self, item: ProjectItem) -> None:
393
+ """
394
+ Queries the default table permissions, parses and stores the
395
+ returned the permissions.
396
+
397
+ REST API: https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref_permissions.htm#query_default_permissions
398
+
399
+ Parameters
400
+ ----------
401
+ item : ProjectItem
402
+ The project item to populate with default table permissions.
403
+
404
+ Returns
405
+ -------
406
+ None
407
+ """
408
+ self._default_permissions.populate_default_permissions(item, Resource.Table)
409
+
112
410
  @api(version="2.1")
113
- def update_workbook_default_permissions(self, item, rules):
411
+ def update_workbook_default_permissions(
412
+ self, item: ProjectItem, rules: list[PermissionsRule]
413
+ ) -> list[PermissionsRule]:
414
+ """
415
+ Add or updates the default workbook permissions for the specified.
416
+
417
+ REST API: https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref_permissions.htm#replace_default_permissions_for_content
418
+
419
+ Parameters
420
+ ----------
421
+ item : ProjectItem
422
+ The project item to update default workbook permissions for.
423
+
424
+ rules : list[PermissionsRule]
425
+ The list of permissions rules to update the project with.
426
+
427
+ Returns
428
+ -------
429
+ list[PermissionsRule]
430
+ Returns the updated list of permissions rules.
431
+ """
114
432
  return self._default_permissions.update_default_permissions(item, rules, Resource.Workbook)
115
433
 
116
434
  @api(version="2.1")
117
- def update_datasource_default_permissions(self, item, rules):
435
+ def update_datasource_default_permissions(
436
+ self, item: ProjectItem, rules: list[PermissionsRule]
437
+ ) -> list[PermissionsRule]:
438
+ """
439
+ Add or updates the default datasource permissions for the specified.
440
+
441
+ REST API: https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref_permissions.htm#replace_default_permissions_for_content
442
+
443
+ Parameters
444
+ ----------
445
+ item : ProjectItem
446
+ The project item to update default datasource permissions for.
447
+
448
+ rules : list[PermissionsRule]
449
+ The list of permissions rules to update the project with.
450
+
451
+ Returns
452
+ -------
453
+ list[PermissionsRule]
454
+ Returns the updated list of permissions rules.
455
+ """
118
456
  return self._default_permissions.update_default_permissions(item, rules, Resource.Datasource)
119
457
 
120
458
  @api(version="3.2")
121
- def update_metric_default_permissions(self, item, rules):
459
+ def update_metric_default_permissions(
460
+ self, item: ProjectItem, rules: list[PermissionsRule]
461
+ ) -> list[PermissionsRule]:
462
+ """
463
+ Add or updates the default metric permissions for the specified.
464
+
465
+ REST API: https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref_permissions.htm#replace_default_permissions_for_content
466
+
467
+ Parameters
468
+ ----------
469
+ item : ProjectItem
470
+ The project item to update default metric permissions for.
471
+
472
+ rules : list[PermissionsRule]
473
+ The list of permissions rules to update the project with.
474
+
475
+ Returns
476
+ -------
477
+ list[PermissionsRule]
478
+ Returns the updated list of permissions rules.
479
+ """
122
480
  return self._default_permissions.update_default_permissions(item, rules, Resource.Metric)
123
481
 
124
482
  @api(version="3.4")
125
- def update_datarole_default_permissions(self, item, rules):
483
+ def update_datarole_default_permissions(
484
+ self, item: ProjectItem, rules: list[PermissionsRule]
485
+ ) -> list[PermissionsRule]:
486
+ """
487
+ Add or updates the default datarole permissions for the specified.
488
+
489
+ REST API: https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref_permissions.htm#replace_default_permissions_for_content
490
+
491
+ Parameters
492
+ ----------
493
+ item : ProjectItem
494
+ The project item to update default datarole permissions for.
495
+
496
+ rules : list[PermissionsRule]
497
+ The list of permissions rules to update the project with.
498
+
499
+ Returns
500
+ -------
501
+ list[PermissionsRule]
502
+ Returns the updated list of permissions rules.
503
+ """
126
504
  return self._default_permissions.update_default_permissions(item, rules, Resource.Datarole)
127
505
 
128
506
  @api(version="3.4")
129
- def update_flow_default_permissions(self, item, rules):
507
+ def update_flow_default_permissions(self, item: ProjectItem, rules: list[PermissionsRule]) -> list[PermissionsRule]:
508
+ """
509
+ Add or updates the default flow permissions for the specified.
510
+
511
+ REST API: https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref_permissions.htm#replace_default_permissions_for_content
512
+
513
+ Parameters
514
+ ----------
515
+ item : ProjectItem
516
+ The project item to update default flow permissions for.
517
+
518
+ rules : list[PermissionsRule]
519
+ The list of permissions rules to update the project with.
520
+
521
+ Returns
522
+ -------
523
+ list[PermissionsRule]
524
+ Returns the updated list of permissions rules.
525
+ """
130
526
  return self._default_permissions.update_default_permissions(item, rules, Resource.Flow)
131
527
 
132
528
  @api(version="3.4")
133
- def update_lens_default_permissions(self, item, rules):
529
+ def update_lens_default_permissions(self, item: ProjectItem, rules: list[PermissionsRule]) -> list[PermissionsRule]:
530
+ """
531
+ Add or updates the default lens permissions for the specified.
532
+
533
+ REST API: https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref_permissions.htm#replace_default_permissions_for_content
534
+
535
+ Parameters
536
+ ----------
537
+ item : ProjectItem
538
+ The project item to update default lens permissions for.
539
+
540
+ rules : list[PermissionsRule]
541
+ The list of permissions rules to update the project with.
542
+
543
+ Returns
544
+ -------
545
+ list[PermissionsRule]
546
+ Returns the updated list of permissions rules.
547
+ """
134
548
  return self._default_permissions.update_default_permissions(item, rules, Resource.Lens)
135
549
 
550
+ @api(version="3.23")
551
+ def update_virtualconnection_default_permissions(
552
+ self, item: ProjectItem, rules: list[PermissionsRule]
553
+ ) -> list[PermissionsRule]:
554
+ """
555
+ Add or updates the default virtualconnection permissions for the specified.
556
+
557
+ REST API: https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref_permissions.htm#replace_default_permissions_for_content
558
+
559
+ Parameters
560
+ ----------
561
+ item : ProjectItem
562
+ The project item to update default virtualconnection permissions for.
563
+
564
+ rules : list[PermissionsRule]
565
+ The list of permissions rules to update the project with.
566
+
567
+ Returns
568
+ -------
569
+ list[PermissionsRule]
570
+ Returns the updated list of permissions rules.
571
+ """
572
+ return self._default_permissions.update_default_permissions(item, rules, Resource.VirtualConnection)
573
+
574
+ @api(version="3.23")
575
+ def update_database_default_permissions(
576
+ self, item: ProjectItem, rules: list[PermissionsRule]
577
+ ) -> list[PermissionsRule]:
578
+ """
579
+ Add or updates the default database permissions for the specified.
580
+
581
+ REST API: https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref_permissions.htm#replace_default_permissions_for_content
582
+
583
+ Parameters
584
+ ----------
585
+ item : ProjectItem
586
+ The project item to update default database permissions for.
587
+
588
+ rules : list[PermissionsRule]
589
+ The list of permissions rules to update the project with.
590
+
591
+ Returns
592
+ -------
593
+ list[PermissionsRule]
594
+ Returns the updated list of permissions rules.
595
+ """
596
+ return self._default_permissions.update_default_permissions(item, rules, Resource.Database)
597
+
598
+ @api(version="3.23")
599
+ def update_table_default_permissions(
600
+ self, item: ProjectItem, rules: list[PermissionsRule]
601
+ ) -> list[PermissionsRule]:
602
+ """
603
+ Add or updates the default table permissions for the specified.
604
+
605
+ REST API: https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref_permissions.htm#replace_default_permissions_for_content
606
+
607
+ Parameters
608
+ ----------
609
+ item : ProjectItem
610
+ The project item to update default table permissions for.
611
+
612
+ rules : list[PermissionsRule]
613
+ The list of permissions rules to update the project with.
614
+
615
+ Returns
616
+ -------
617
+ list[PermissionsRule]
618
+ Returns the updated list of permissions rules.
619
+ """
620
+ return self._default_permissions.update_default_permissions(item, rules, Resource.Table)
621
+
136
622
  @api(version="2.1")
137
- def delete_workbook_default_permissions(self, item, rule):
623
+ def delete_workbook_default_permissions(self, item: ProjectItem, rule: PermissionsRule) -> None:
624
+ """
625
+ Deletes the specified default permission rule from the project.
626
+
627
+ REST API: https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref_permissions.htm#delete_default_permission
628
+
629
+ Parameters
630
+ ----------
631
+ item : ProjectItem
632
+ The project item to delete default workbook permissions from.
633
+
634
+ rule : PermissionsRule
635
+ The permissions rule to delete from the project.
636
+
637
+ Returns
638
+ -------
639
+ None
640
+ """
138
641
  self._default_permissions.delete_default_permission(item, rule, Resource.Workbook)
139
642
 
140
643
  @api(version="2.1")
141
- def delete_datasource_default_permissions(self, item, rule):
644
+ def delete_datasource_default_permissions(self, item: ProjectItem, rule: PermissionsRule) -> None:
645
+ """
646
+ Deletes the specified default permission rule from the project.
647
+
648
+ REST API: https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref_permissions.htm#delete_default_permission
649
+
650
+ Parameters
651
+ ----------
652
+ item : ProjectItem
653
+ The project item to delete default datasource permissions from.
654
+
655
+ rule : PermissionsRule
656
+ The permissions rule to delete from the project.
657
+
658
+ Returns
659
+ -------
660
+ None
661
+ """
142
662
  self._default_permissions.delete_default_permission(item, rule, Resource.Datasource)
143
663
 
144
664
  @api(version="3.2")
145
- def delete_metric_default_permissions(self, item, rule):
665
+ def delete_metric_default_permissions(self, item: ProjectItem, rule: PermissionsRule) -> None:
666
+ """
667
+ Deletes the specified default permission rule from the project.
668
+
669
+ REST API: https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref_permissions.htm#delete_default_permission
670
+
671
+ Parameters
672
+ ----------
673
+ item : ProjectItem
674
+ The project item to delete default workbook permissions from.
675
+
676
+ rule : PermissionsRule
677
+ The permissions rule to delete from the project.
678
+
679
+ Returns
680
+ -------
681
+ None
682
+ """
146
683
  self._default_permissions.delete_default_permission(item, rule, Resource.Metric)
147
684
 
148
685
  @api(version="3.4")
149
- def delete_datarole_default_permissions(self, item, rule):
686
+ def delete_datarole_default_permissions(self, item: ProjectItem, rule: PermissionsRule) -> None:
687
+ """
688
+ Deletes the specified default permission rule from the project.
689
+
690
+ REST API: https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref_permissions.htm#delete_default_permission
691
+
692
+ Parameters
693
+ ----------
694
+ item : ProjectItem
695
+ The project item to delete default datarole permissions from.
696
+
697
+ rule : PermissionsRule
698
+ The permissions rule to delete from the project.
699
+
700
+ Returns
701
+ -------
702
+ None
703
+ """
150
704
  self._default_permissions.delete_default_permission(item, rule, Resource.Datarole)
151
705
 
152
706
  @api(version="3.4")
153
- def delete_flow_default_permissions(self, item, rule):
707
+ def delete_flow_default_permissions(self, item: ProjectItem, rule: PermissionsRule) -> None:
708
+ """
709
+ Deletes the specified default permission rule from the project.
710
+
711
+ REST API: https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref_permissions.htm#delete_default_permission
712
+
713
+ Parameters
714
+ ----------
715
+ item : ProjectItem
716
+ The project item to delete default flow permissions from.
717
+
718
+ rule : PermissionsRule
719
+ The permissions rule to delete from the project.
720
+
721
+ Returns
722
+ -------
723
+ None
724
+ """
154
725
  self._default_permissions.delete_default_permission(item, rule, Resource.Flow)
155
726
 
156
727
  @api(version="3.4")
157
- def delete_lens_default_permissions(self, item, rule):
728
+ def delete_lens_default_permissions(self, item: ProjectItem, rule: PermissionsRule) -> None:
729
+ """
730
+ Deletes the specified default permission rule from the project.
731
+
732
+ REST API: https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref_permissions.htm#delete_default_permission
733
+
734
+ Parameters
735
+ ----------
736
+ item : ProjectItem
737
+ The project item to delete default lens permissions from.
738
+
739
+ rule : PermissionsRule
740
+ The permissions rule to delete from the project.
741
+
742
+ Returns
743
+ -------
744
+ None
745
+ """
158
746
  self._default_permissions.delete_default_permission(item, rule, Resource.Lens)
159
747
 
748
+ @api(version="3.23")
749
+ def delete_virtualconnection_default_permissions(self, item: ProjectItem, rule: PermissionsRule) -> None:
750
+ """
751
+ Deletes the specified default permission rule from the project.
752
+
753
+ REST API: https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref_permissions.htm#delete_default_permission
754
+
755
+ Parameters
756
+ ----------
757
+ item : ProjectItem
758
+ The project item to delete default virtualconnection permissions from.
759
+
760
+ rule : PermissionsRule
761
+ The permissions rule to delete from the project.
762
+
763
+ Returns
764
+ -------
765
+ None
766
+ """
767
+ self._default_permissions.delete_default_permission(item, rule, Resource.VirtualConnection)
768
+
769
+ @api(version="3.23")
770
+ def delete_database_default_permissions(self, item: ProjectItem, rule: PermissionsRule) -> None:
771
+ """
772
+ Deletes the specified default permission rule from the project.
773
+
774
+ REST API: https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref_permissions.htm#delete_default_permission
775
+
776
+ Parameters
777
+ ----------
778
+ item : ProjectItem
779
+ The project item to delete default database permissions from.
780
+
781
+ rule : PermissionsRule
782
+ The permissions rule to delete from the project.
783
+
784
+ Returns
785
+ -------
786
+ None
787
+ """
788
+ self._default_permissions.delete_default_permission(item, rule, Resource.Database)
789
+
790
+ @api(version="3.23")
791
+ def delete_table_default_permissions(self, item: ProjectItem, rule: PermissionsRule) -> None:
792
+ """
793
+ Deletes the specified default permission rule from the project.
794
+
795
+ REST API: https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref_permissions.htm#delete_default_permission
796
+
797
+ Parameters
798
+ ----------
799
+ item : ProjectItem
800
+ The project item to delete default table permissions from.
801
+
802
+ rule : PermissionsRule
803
+ The permissions rule to delete from the project.
804
+
805
+ Returns
806
+ -------
807
+ None
808
+ """
809
+ self._default_permissions.delete_default_permission(item, rule, Resource.Table)
810
+
160
811
  def filter(self, *invalid, page_size: Optional[int] = None, **kwargs) -> QuerySet[ProjectItem]:
161
812
  """
162
813
  Queries the Tableau Server for items using the specified filters. Page