tableauserverclient 0.38__tar.gz → 0.40__tar.gz

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 (508) hide show
  1. {tableauserverclient-0.38 → tableauserverclient-0.40}/MANIFEST.in +0 -3
  2. {tableauserverclient-0.38 → tableauserverclient-0.40}/PKG-INFO +5 -26
  3. {tableauserverclient-0.38 → tableauserverclient-0.40}/pyproject.toml +17 -6
  4. tableauserverclient-0.40/samples/create_user.py +73 -0
  5. tableauserverclient-0.40/samples/metadata_paginated_query.py +87 -0
  6. tableauserverclient-0.40/samples/update_connection_auth.py +62 -0
  7. tableauserverclient-0.40/samples/update_connections_auth.py +64 -0
  8. {tableauserverclient-0.38 → tableauserverclient-0.40}/samples/update_datasource_data.py +1 -1
  9. tableauserverclient-0.40/setup.py +8 -0
  10. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient/__init__.py +10 -5
  11. tableauserverclient-0.40/tableauserverclient/bin/__init__.py +3 -0
  12. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient/bin/_version.py +3 -3
  13. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient/models/__init__.py +9 -0
  14. tableauserverclient-0.40/tableauserverclient/models/collection_item.py +52 -0
  15. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient/models/connection_item.py +16 -2
  16. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient/models/custom_view_item.py +8 -0
  17. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient/models/data_freshness_policy_item.py +3 -3
  18. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient/models/datasource_item.py +3 -1
  19. tableauserverclient-0.40/tableauserverclient/models/extensions_item.py +186 -0
  20. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient/models/favorites_item.py +21 -8
  21. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient/models/flow_item.py +1 -1
  22. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient/models/group_item.py +7 -1
  23. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient/models/groupset_item.py +14 -0
  24. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient/models/interval_item.py +2 -1
  25. tableauserverclient-0.40/tableauserverclient/models/oidc_item.py +82 -0
  26. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient/models/permissions_item.py +2 -0
  27. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient/models/project_item.py +3 -2
  28. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient/models/property_decorators.py +2 -2
  29. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient/models/reference_item.py +12 -6
  30. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient/models/schedule_item.py +10 -1
  31. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient/models/site_item.py +26 -0
  32. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient/models/tableau_auth.py +13 -6
  33. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient/models/user_item.py +10 -3
  34. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient/models/workbook_item.py +2 -2
  35. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient/server/endpoint/__init__.py +4 -0
  36. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient/server/endpoint/datasources_endpoint.py +152 -22
  37. tableauserverclient-0.40/tableauserverclient/server/endpoint/extensions_endpoint.py +79 -0
  38. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient/server/endpoint/flow_task_endpoint.py +1 -1
  39. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient/server/endpoint/flows_endpoint.py +5 -4
  40. tableauserverclient-0.40/tableauserverclient/server/endpoint/oidc_endpoint.py +157 -0
  41. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient/server/endpoint/projects_endpoint.py +12 -0
  42. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient/server/endpoint/schedules_endpoint.py +48 -1
  43. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient/server/endpoint/users_endpoint.py +274 -5
  44. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient/server/endpoint/views_endpoint.py +23 -0
  45. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient/server/endpoint/workbooks_endpoint.py +124 -9
  46. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient/server/request_factory.py +281 -2
  47. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient/server/request_options.py +12 -2
  48. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient/server/server.py +4 -0
  49. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient.egg-info/PKG-INFO +5 -26
  50. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient.egg-info/SOURCES.txt +26 -0
  51. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient.egg-info/requires.txt +4 -2
  52. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/_utils.py +14 -0
  53. tableauserverclient-0.40/test/assets/datasource_connections_update.xml +21 -0
  54. tableauserverclient-0.40/test/assets/datasource_get_no_owner.xml +16 -0
  55. tableauserverclient-0.40/test/assets/extensions_server_settings_false.xml +6 -0
  56. tableauserverclient-0.40/test/assets/extensions_server_settings_true.xml +8 -0
  57. tableauserverclient-0.40/test/assets/extensions_site_settings.xml +16 -0
  58. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/favorites_add_view.xml +3 -1
  59. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/favorites_get.xml +13 -1
  60. tableauserverclient-0.40/test/assets/oidc_create.xml +30 -0
  61. tableauserverclient-0.40/test/assets/oidc_get.xml +30 -0
  62. tableauserverclient-0.40/test/assets/oidc_update.xml +30 -0
  63. tableauserverclient-0.40/test/assets/schedule_batch_update_state.xml +7 -0
  64. tableauserverclient-0.40/test/assets/schedule_get_customized_monthly_id.xml +10 -0
  65. tableauserverclient-0.40/test/assets/users_bulk_add_job.xml +4 -0
  66. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/virtual_connection_populate_connections.xml +1 -1
  67. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/virtual_connection_populate_connections2.xml +1 -1
  68. tableauserverclient-0.40/test/assets/workbook_update_connections.xml +21 -0
  69. tableauserverclient-0.40/test/http/test_http_requests.py +129 -0
  70. tableauserverclient-0.40/test/models/__init__.py +0 -0
  71. tableauserverclient-0.40/test/models/_models.py +37 -0
  72. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/models/test_repr.py +25 -28
  73. tableauserverclient-0.40/test/request_factory/__init__.py +0 -0
  74. tableauserverclient-0.40/test/request_factory/test_datasource_requests.py +13 -0
  75. tableauserverclient-0.40/test/request_factory/test_task_requests.py +61 -0
  76. tableauserverclient-0.40/test/request_factory/test_workbook_requests.py +58 -0
  77. tableauserverclient-0.40/test/test_auth.py +146 -0
  78. tableauserverclient-0.40/test/test_connection_.py +25 -0
  79. tableauserverclient-0.40/test/test_custom_view.py +342 -0
  80. tableauserverclient-0.40/test/test_data_acceleration_report.py +45 -0
  81. tableauserverclient-0.40/test/test_data_freshness_policy.py +182 -0
  82. tableauserverclient-0.40/test/test_dataalert.py +120 -0
  83. tableauserverclient-0.40/test/test_database.py +112 -0
  84. tableauserverclient-0.40/test/test_datasource.py +907 -0
  85. tableauserverclient-0.40/test/test_datasource_model.py +20 -0
  86. tableauserverclient-0.40/test/test_dqw.py +9 -0
  87. tableauserverclient-0.40/test/test_endpoint.py +93 -0
  88. tableauserverclient-0.40/test/test_exponential_backoff.py +62 -0
  89. tableauserverclient-0.40/test/test_extensions.py +195 -0
  90. tableauserverclient-0.40/test/test_favorites.py +146 -0
  91. tableauserverclient-0.40/test/test_filesys_helpers.py +113 -0
  92. tableauserverclient-0.40/test/test_fileuploads.py +92 -0
  93. tableauserverclient-0.40/test/test_filter.py +16 -0
  94. tableauserverclient-0.40/test/test_flow.py +242 -0
  95. tableauserverclient-0.40/test/test_flowruns.py +121 -0
  96. tableauserverclient-0.40/test/test_flowtask.py +46 -0
  97. tableauserverclient-0.40/test/test_group.py +342 -0
  98. tableauserverclient-0.40/test/test_group_model.py +15 -0
  99. tableauserverclient-0.40/test/test_groupsets.py +146 -0
  100. tableauserverclient-0.40/test/test_job.py +174 -0
  101. tableauserverclient-0.40/test/test_linked_tasks.py +137 -0
  102. tableauserverclient-0.40/test/test_metadata.py +109 -0
  103. tableauserverclient-0.40/test/test_metrics.py +111 -0
  104. tableauserverclient-0.40/test/test_oidc.py +159 -0
  105. tableauserverclient-0.40/test/test_pager.py +138 -0
  106. tableauserverclient-0.40/test/test_permissionsrule.py +104 -0
  107. tableauserverclient-0.40/test/test_project.py +466 -0
  108. tableauserverclient-0.40/test/test_project_model.py +22 -0
  109. tableauserverclient-0.40/test/test_regression_tests.py +84 -0
  110. tableauserverclient-0.40/test/test_request_option.py +443 -0
  111. tableauserverclient-0.40/test/test_requests.py +69 -0
  112. tableauserverclient-0.40/test/test_schedule.py +494 -0
  113. tableauserverclient-0.40/test/test_server_info.py +81 -0
  114. tableauserverclient-0.40/test/test_site.py +339 -0
  115. tableauserverclient-0.40/test/test_site_model.py +73 -0
  116. tableauserverclient-0.40/test/test_sort.py +107 -0
  117. tableauserverclient-0.40/test/test_ssl_config.py +68 -0
  118. tableauserverclient-0.40/test/test_subscription.py +102 -0
  119. tableauserverclient-0.40/test/test_table.py +65 -0
  120. tableauserverclient-0.40/test/test_tableauauth_model.py +8 -0
  121. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/test_tagging.py +15 -1
  122. tableauserverclient-0.40/test/test_task.py +199 -0
  123. tableauserverclient-0.40/test/test_user.py +573 -0
  124. tableauserverclient-0.40/test/test_user_model.py +138 -0
  125. tableauserverclient-0.40/test/test_view.py +539 -0
  126. tableauserverclient-0.40/test/test_view_acceleration.py +120 -0
  127. tableauserverclient-0.40/test/test_virtual_connection.py +269 -0
  128. tableauserverclient-0.40/test/test_webhook.py +89 -0
  129. tableauserverclient-0.40/test/test_workbook.py +1135 -0
  130. tableauserverclient-0.40/test/test_workbook_model.py +12 -0
  131. tableauserverclient-0.38/setup.py +0 -15
  132. tableauserverclient-0.38/test/http/test_http_requests.py +0 -117
  133. tableauserverclient-0.38/test/models/_models.py +0 -58
  134. tableauserverclient-0.38/test/request_factory/test_datasource_requests.py +0 -15
  135. tableauserverclient-0.38/test/request_factory/test_task_requests.py +0 -47
  136. tableauserverclient-0.38/test/request_factory/test_workbook_requests.py +0 -55
  137. tableauserverclient-0.38/test/test_auth.py +0 -133
  138. tableauserverclient-0.38/test/test_connection_.py +0 -34
  139. tableauserverclient-0.38/test/test_custom_view.py +0 -320
  140. tableauserverclient-0.38/test/test_data_acceleration_report.py +0 -42
  141. tableauserverclient-0.38/test/test_data_freshness_policy.py +0 -189
  142. tableauserverclient-0.38/test/test_dataalert.py +0 -112
  143. tableauserverclient-0.38/test/test_database.py +0 -113
  144. tableauserverclient-0.38/test/test_datasource.py +0 -772
  145. tableauserverclient-0.38/test/test_datasource_model.py +0 -18
  146. tableauserverclient-0.38/test/test_dqw.py +0 -11
  147. tableauserverclient-0.38/test/test_endpoint.py +0 -83
  148. tableauserverclient-0.38/test/test_exponential_backoff.py +0 -60
  149. tableauserverclient-0.38/test/test_favorites.py +0 -119
  150. tableauserverclient-0.38/test/test_filesys_helpers.py +0 -99
  151. tableauserverclient-0.38/test/test_fileuploads.py +0 -89
  152. tableauserverclient-0.38/test/test_filter.py +0 -22
  153. tableauserverclient-0.38/test/test_flow.py +0 -225
  154. tableauserverclient-0.38/test/test_flowruns.py +0 -111
  155. tableauserverclient-0.38/test/test_flowtask.py +0 -47
  156. tableauserverclient-0.38/test/test_group.py +0 -335
  157. tableauserverclient-0.38/test/test_group_model.py +0 -15
  158. tableauserverclient-0.38/test/test_groupsets.py +0 -139
  159. tableauserverclient-0.38/test/test_job.py +0 -158
  160. tableauserverclient-0.38/test/test_linked_tasks.py +0 -129
  161. tableauserverclient-0.38/test/test_metadata.py +0 -102
  162. tableauserverclient-0.38/test/test_metrics.py +0 -105
  163. tableauserverclient-0.38/test/test_pager.py +0 -136
  164. tableauserverclient-0.38/test/test_permissionsrule.py +0 -104
  165. tableauserverclient-0.38/test/test_project.py +0 -438
  166. tableauserverclient-0.38/test/test_project_model.py +0 -21
  167. tableauserverclient-0.38/test/test_regression_tests.py +0 -83
  168. tableauserverclient-0.38/test/test_request_option.py +0 -380
  169. tableauserverclient-0.38/test/test_requests.py +0 -61
  170. tableauserverclient-0.38/test/test_schedule.py +0 -425
  171. tableauserverclient-0.38/test/test_server_info.py +0 -75
  172. tableauserverclient-0.38/test/test_site.py +0 -288
  173. tableauserverclient-0.38/test/test_site_model.py +0 -65
  174. tableauserverclient-0.38/test/test_sort.py +0 -103
  175. tableauserverclient-0.38/test/test_ssl_config.py +0 -77
  176. tableauserverclient-0.38/test/test_subscription.py +0 -100
  177. tableauserverclient-0.38/test/test_table.py +0 -59
  178. tableauserverclient-0.38/test/test_tableauauth_model.py +0 -12
  179. tableauserverclient-0.38/test/test_task.py +0 -189
  180. tableauserverclient-0.38/test/test_user.py +0 -322
  181. tableauserverclient-0.38/test/test_user_model.py +0 -127
  182. tableauserverclient-0.38/test/test_view.py +0 -518
  183. tableauserverclient-0.38/test/test_view_acceleration.py +0 -119
  184. tableauserverclient-0.38/test/test_virtual_connection.py +0 -248
  185. tableauserverclient-0.38/test/test_webhook.py +0 -84
  186. tableauserverclient-0.38/test/test_workbook.py +0 -1084
  187. tableauserverclient-0.38/test/test_workbook_model.py +0 -13
  188. {tableauserverclient-0.38 → tableauserverclient-0.40}/CHANGELOG.md +0 -0
  189. {tableauserverclient-0.38 → tableauserverclient-0.40}/CONTRIBUTORS.md +0 -0
  190. {tableauserverclient-0.38 → tableauserverclient-0.40}/LICENSE +0 -0
  191. {tableauserverclient-0.38 → tableauserverclient-0.40}/LICENSE.versioneer +0 -0
  192. {tableauserverclient-0.38 → tableauserverclient-0.40}/README.md +0 -0
  193. {tableauserverclient-0.38 → tableauserverclient-0.40}/contributing.md +0 -0
  194. {tableauserverclient-0.38 → tableauserverclient-0.40}/docs/README.md +0 -0
  195. {tableauserverclient-0.38 → tableauserverclient-0.40}/samples/add_default_permission.py +0 -0
  196. {tableauserverclient-0.38 → tableauserverclient-0.40}/samples/create_extract_task.py +0 -0
  197. {tableauserverclient-0.38 → tableauserverclient-0.40}/samples/create_group.py +0 -0
  198. {tableauserverclient-0.38 → tableauserverclient-0.40}/samples/create_project.py +0 -0
  199. {tableauserverclient-0.38 → tableauserverclient-0.40}/samples/create_schedules.py +0 -0
  200. {tableauserverclient-0.38 → tableauserverclient-0.40}/samples/explore_datasource.py +0 -0
  201. {tableauserverclient-0.38 → tableauserverclient-0.40}/samples/explore_favorites.py +0 -0
  202. {tableauserverclient-0.38 → tableauserverclient-0.40}/samples/explore_site.py +0 -0
  203. {tableauserverclient-0.38 → tableauserverclient-0.40}/samples/explore_webhooks.py +0 -0
  204. {tableauserverclient-0.38 → tableauserverclient-0.40}/samples/explore_workbook.py +0 -0
  205. {tableauserverclient-0.38 → tableauserverclient-0.40}/samples/export.py +0 -0
  206. {tableauserverclient-0.38 → tableauserverclient-0.40}/samples/extracts.py +0 -0
  207. {tableauserverclient-0.38 → tableauserverclient-0.40}/samples/filter_sort_groups.py +0 -0
  208. {tableauserverclient-0.38 → tableauserverclient-0.40}/samples/filter_sort_projects.py +0 -0
  209. {tableauserverclient-0.38 → tableauserverclient-0.40}/samples/getting_started/1_hello_server.py +0 -0
  210. {tableauserverclient-0.38 → tableauserverclient-0.40}/samples/getting_started/2_hello_site.py +0 -0
  211. {tableauserverclient-0.38 → tableauserverclient-0.40}/samples/getting_started/3_hello_universe.py +0 -0
  212. {tableauserverclient-0.38 → tableauserverclient-0.40}/samples/initialize_server.py +0 -0
  213. {tableauserverclient-0.38 → tableauserverclient-0.40}/samples/kill_all_jobs.py +0 -0
  214. {tableauserverclient-0.38 → tableauserverclient-0.40}/samples/list.py +0 -0
  215. {tableauserverclient-0.38 → tableauserverclient-0.40}/samples/login.py +0 -0
  216. {tableauserverclient-0.38 → tableauserverclient-0.40}/samples/metadata_query.py +0 -0
  217. {tableauserverclient-0.38 → tableauserverclient-0.40}/samples/move_workbook_projects.py +0 -0
  218. {tableauserverclient-0.38 → tableauserverclient-0.40}/samples/move_workbook_sites.py +0 -0
  219. {tableauserverclient-0.38 → tableauserverclient-0.40}/samples/name.txt +0 -0
  220. {tableauserverclient-0.38 → tableauserverclient-0.40}/samples/pagination_sample.py +0 -0
  221. {tableauserverclient-0.38 → tableauserverclient-0.40}/samples/publish_datasource.py +0 -0
  222. {tableauserverclient-0.38 → tableauserverclient-0.40}/samples/publish_workbook.py +0 -0
  223. {tableauserverclient-0.38 → tableauserverclient-0.40}/samples/query_permissions.py +0 -0
  224. {tableauserverclient-0.38 → tableauserverclient-0.40}/samples/refresh.py +0 -0
  225. {tableauserverclient-0.38 → tableauserverclient-0.40}/samples/refresh_tasks.py +0 -0
  226. {tableauserverclient-0.38 → tableauserverclient-0.40}/samples/set_refresh_schedule.py +0 -0
  227. {tableauserverclient-0.38 → tableauserverclient-0.40}/samples/smoke_test.py +0 -0
  228. {tableauserverclient-0.38 → tableauserverclient-0.40}/samples/update_connection.py +0 -0
  229. {tableauserverclient-0.38 → tableauserverclient-0.40}/samples/update_workbook_data_freshness_policy.py +0 -0
  230. {tableauserverclient-0.38 → tableauserverclient-0.40}/setup.cfg +0 -0
  231. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient/config.py +0 -0
  232. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient/datetime_helpers.py +0 -0
  233. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient/exponential_backoff.py +0 -0
  234. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient/filesys_helpers.py +0 -0
  235. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient/helpers/__init__.py +0 -0
  236. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient/helpers/headers.py +0 -0
  237. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient/helpers/logging.py +0 -0
  238. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient/helpers/strings.py +0 -0
  239. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient/models/column_item.py +0 -0
  240. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient/models/connection_credentials.py +0 -0
  241. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient/models/data_acceleration_report_item.py +0 -0
  242. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient/models/data_alert_item.py +0 -0
  243. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient/models/database_item.py +0 -0
  244. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient/models/dqw_item.py +0 -0
  245. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient/models/exceptions.py +0 -0
  246. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient/models/extract_item.py +0 -0
  247. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient/models/fileupload_item.py +0 -0
  248. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient/models/flow_run_item.py +0 -0
  249. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient/models/job_item.py +0 -0
  250. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient/models/linked_tasks_item.py +0 -0
  251. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient/models/location_item.py +0 -0
  252. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient/models/metric_item.py +0 -0
  253. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient/models/pagination_item.py +0 -0
  254. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient/models/revision_item.py +0 -0
  255. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient/models/server_info_item.py +0 -0
  256. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient/models/subscription_item.py +0 -0
  257. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient/models/table_item.py +0 -0
  258. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient/models/tableau_types.py +0 -0
  259. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient/models/tag_item.py +0 -0
  260. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient/models/target.py +0 -0
  261. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient/models/task_item.py +0 -0
  262. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient/models/view_item.py +0 -0
  263. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient/models/virtual_connection_item.py +0 -0
  264. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient/models/webhook_item.py +0 -0
  265. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient/namespace.py +0 -0
  266. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient/py.typed +0 -0
  267. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient/server/__init__.py +0 -0
  268. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient/server/endpoint/auth_endpoint.py +0 -0
  269. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient/server/endpoint/custom_views_endpoint.py +0 -0
  270. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient/server/endpoint/data_acceleration_report_endpoint.py +0 -0
  271. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient/server/endpoint/data_alert_endpoint.py +0 -0
  272. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient/server/endpoint/databases_endpoint.py +0 -0
  273. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient/server/endpoint/default_permissions_endpoint.py +0 -0
  274. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient/server/endpoint/dqw_endpoint.py +0 -0
  275. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient/server/endpoint/endpoint.py +0 -0
  276. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient/server/endpoint/exceptions.py +0 -0
  277. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient/server/endpoint/favorites_endpoint.py +0 -0
  278. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient/server/endpoint/fileuploads_endpoint.py +0 -0
  279. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient/server/endpoint/flow_runs_endpoint.py +0 -0
  280. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient/server/endpoint/groups_endpoint.py +0 -0
  281. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient/server/endpoint/groupsets_endpoint.py +0 -0
  282. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient/server/endpoint/jobs_endpoint.py +0 -0
  283. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient/server/endpoint/linked_tasks_endpoint.py +0 -0
  284. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient/server/endpoint/metadata_endpoint.py +0 -0
  285. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient/server/endpoint/metrics_endpoint.py +0 -0
  286. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient/server/endpoint/permissions_endpoint.py +0 -0
  287. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient/server/endpoint/resource_tagger.py +0 -0
  288. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient/server/endpoint/server_info_endpoint.py +0 -0
  289. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient/server/endpoint/sites_endpoint.py +0 -0
  290. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient/server/endpoint/subscriptions_endpoint.py +0 -0
  291. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient/server/endpoint/tables_endpoint.py +0 -0
  292. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient/server/endpoint/tasks_endpoint.py +0 -0
  293. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient/server/endpoint/virtual_connections_endpoint.py +0 -0
  294. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient/server/endpoint/webhooks_endpoint.py +0 -0
  295. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient/server/exceptions.py +0 -0
  296. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient/server/filter.py +0 -0
  297. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient/server/pager.py +0 -0
  298. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient/server/query.py +0 -0
  299. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient/server/sort.py +0 -0
  300. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient.egg-info/dependency_links.txt +0 -0
  301. {tableauserverclient-0.38 → tableauserverclient-0.40}/tableauserverclient.egg-info/top_level.txt +0 -0
  302. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/__init__.py +0 -0
  303. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/Data/Tableau Samples/World Indicators.tde +0 -0
  304. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/Data/user_details.csv +0 -0
  305. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/Data/usernames.csv +0 -0
  306. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/RESTAPISample Image.png +0 -0
  307. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/Sample View Image.png +0 -0
  308. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/World Indicators.hyper +0 -0
  309. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/auth_sign_in.xml +0 -0
  310. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/auth_sign_in_error.xml +0 -0
  311. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/auth_sign_in_impersonate.xml +0 -0
  312. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/custom_view_download.json +0 -0
  313. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/custom_view_get.xml +0 -0
  314. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/custom_view_get_id.xml +0 -0
  315. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/custom_view_update.xml +0 -0
  316. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/data_acceleration_report.xml +0 -0
  317. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/data_alerts_add_user.xml +0 -0
  318. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/data_alerts_get.xml +0 -0
  319. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/data_alerts_get_by_id.xml +0 -0
  320. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/data_alerts_update.xml +0 -0
  321. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/database_get.xml +0 -0
  322. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/database_populate_permissions.xml +0 -0
  323. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/database_update.xml +0 -0
  324. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/datasource_add_tags.xml +0 -0
  325. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/datasource_connection_update.xml +0 -0
  326. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/datasource_data_update.xml +0 -0
  327. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/datasource_get.xml +0 -0
  328. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/datasource_get_all_fields.xml +0 -0
  329. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/datasource_get_by_id.xml +0 -0
  330. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/datasource_get_empty.xml +0 -0
  331. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/datasource_populate_connections.xml +0 -0
  332. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/datasource_populate_permissions.xml +0 -0
  333. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/datasource_publish.xml +0 -0
  334. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/datasource_publish_async.xml +0 -0
  335. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/datasource_refresh.xml +0 -0
  336. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/datasource_revision.xml +0 -0
  337. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/datasource_update.xml +0 -0
  338. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/dqw_by_content_type.xml +0 -0
  339. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/favorites_add_datasource.xml +0 -0
  340. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/favorites_add_project.xml +0 -0
  341. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/favorites_add_workbook.xml +0 -0
  342. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/fileupload_append.xml +0 -0
  343. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/fileupload_initialize.xml +0 -0
  344. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/flow_get.xml +0 -0
  345. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/flow_get_by_id.xml +0 -0
  346. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/flow_populate_connections.xml +0 -0
  347. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/flow_populate_permissions.xml +0 -0
  348. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/flow_publish.xml +0 -0
  349. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/flow_refresh.xml +0 -0
  350. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/flow_runs_get.xml +0 -0
  351. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/flow_runs_get_by_id.xml +0 -0
  352. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/flow_runs_get_by_id_failed.xml +0 -0
  353. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/flow_runs_get_by_id_inprogress.xml +0 -0
  354. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/flow_update.xml +0 -0
  355. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/group_add_user.xml +0 -0
  356. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/group_add_users.xml +0 -0
  357. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/group_create.xml +0 -0
  358. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/group_create_ad.xml +0 -0
  359. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/group_create_async.xml +0 -0
  360. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/group_get.xml +0 -0
  361. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/group_get_all_fields.xml +0 -0
  362. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/group_populate_users.xml +0 -0
  363. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/group_populate_users_empty.xml +0 -0
  364. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/group_update.xml +0 -0
  365. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/group_update_async.xml +0 -0
  366. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/group_users_added.xml +0 -0
  367. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/groupsets_create.xml +0 -0
  368. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/groupsets_get.xml +0 -0
  369. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/groupsets_get_by_id.xml +0 -0
  370. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/groupsets_update.xml +0 -0
  371. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/job_get.xml +0 -0
  372. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/job_get_by_id.xml +0 -0
  373. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/job_get_by_id_completed.xml +0 -0
  374. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/job_get_by_id_failed.xml +0 -0
  375. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/job_get_by_id_failed_workbook.xml +0 -0
  376. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/job_get_by_id_inprogress.xml +0 -0
  377. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/linked_tasks_get.xml +0 -0
  378. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/linked_tasks_run_now.xml +0 -0
  379. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/metadata_paged_1.json +0 -0
  380. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/metadata_paged_2.json +0 -0
  381. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/metadata_paged_3.json +0 -0
  382. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/metadata_query_error.json +0 -0
  383. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/metadata_query_expected_dict.dict +0 -0
  384. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/metadata_query_success.json +0 -0
  385. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/metrics_get.xml +0 -0
  386. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/metrics_get_by_id.xml +0 -0
  387. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/metrics_update.xml +0 -0
  388. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/odata_connection.xml +0 -0
  389. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/populate_csv.csv +0 -0
  390. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/populate_pdf.pdf +0 -0
  391. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/project_content_permission.xml +0 -0
  392. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/project_create.xml +0 -0
  393. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/project_get.xml +0 -0
  394. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/project_get_all_fields.xml +0 -0
  395. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/project_populate_permissions.xml +0 -0
  396. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/project_populate_virtualconnection_default_permissions.xml +0 -0
  397. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/project_populate_workbook_default_permissions.xml +0 -0
  398. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/project_update.xml +0 -0
  399. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/project_update_datasource_default_permissions.xml +0 -0
  400. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/project_update_virtualconnection_default_permissions.xml +0 -0
  401. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/queryset_slicing_page_1.xml +0 -0
  402. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/queryset_slicing_page_2.xml +0 -0
  403. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/request_option_filter_equals.xml +0 -0
  404. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/request_option_filter_name_in.xml +0 -0
  405. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/request_option_filter_tags_in.xml +0 -0
  406. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/request_option_page_number.xml +0 -0
  407. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/request_option_page_size.xml +0 -0
  408. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/request_option_pagination.xml +0 -0
  409. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/request_option_slicing_queryset.xml +0 -0
  410. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/schedule_add_datasource.xml +0 -0
  411. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/schedule_add_flow.xml +0 -0
  412. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/schedule_add_workbook.xml +0 -0
  413. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/schedule_add_workbook_with_warnings.xml +0 -0
  414. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/schedule_create_daily.xml +0 -0
  415. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/schedule_create_hourly.xml +0 -0
  416. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/schedule_create_monthly.xml +0 -0
  417. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/schedule_create_weekly.xml +0 -0
  418. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/schedule_get.xml +0 -0
  419. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/schedule_get_by_id.xml +0 -0
  420. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/schedule_get_daily_id.xml +0 -0
  421. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/schedule_get_empty.xml +0 -0
  422. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/schedule_get_extract_refresh_tasks.xml +0 -0
  423. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/schedule_get_hourly_id.xml +0 -0
  424. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/schedule_get_monthly_id.xml +0 -0
  425. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/schedule_get_monthly_id_2.xml +0 -0
  426. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/schedule_update.xml +0 -0
  427. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/server_info_25.xml +0 -0
  428. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/server_info_404.xml +0 -0
  429. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/server_info_auth_info.xml +0 -0
  430. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/server_info_get.xml +0 -0
  431. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/site_auth_configurations.xml +0 -0
  432. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/site_create.xml +0 -0
  433. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/site_get.xml +0 -0
  434. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/site_get_by_id.xml +0 -0
  435. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/site_get_by_name.xml +0 -0
  436. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/site_update.xml +0 -0
  437. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/subscription_create.xml +0 -0
  438. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/subscription_get.xml +0 -0
  439. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/subscription_get_by_id.xml +0 -0
  440. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/table_get.xml +0 -0
  441. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/table_update.xml +0 -0
  442. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/tasks_create_extract_task.xml +0 -0
  443. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/tasks_create_flow_task.xml +0 -0
  444. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/tasks_no_workbook_or_datasource.xml +0 -0
  445. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/tasks_run_now_response.xml +0 -0
  446. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/tasks_with_dataacceleration_task.xml +0 -0
  447. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/tasks_with_datasource.xml +0 -0
  448. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/tasks_with_interval.xml +0 -0
  449. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/tasks_with_workbook.xml +0 -0
  450. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/tasks_with_workbook_and_datasource.xml +0 -0
  451. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/tasks_without_schedule.xml +0 -0
  452. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/user_add.xml +0 -0
  453. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/user_add_favorite.xml +0 -0
  454. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/user_get.xml +0 -0
  455. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/user_get_all_fields.xml +0 -0
  456. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/user_get_by_id.xml +0 -0
  457. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/user_get_empty.xml +0 -0
  458. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/user_populate_groups.xml +0 -0
  459. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/user_populate_workbooks.xml +0 -0
  460. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/user_update.xml +0 -0
  461. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/view_add_tags.xml +0 -0
  462. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/view_get.xml +0 -0
  463. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/view_get_all_fields.xml +0 -0
  464. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/view_get_id.xml +0 -0
  465. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/view_get_id_usage.xml +0 -0
  466. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/view_get_usage.xml +0 -0
  467. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/view_populate_permissions.xml +0 -0
  468. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/view_update_permissions.xml +0 -0
  469. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/virtual_connection_add_permissions.xml +0 -0
  470. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/virtual_connection_database_connection_update.xml +0 -0
  471. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/virtual_connections_download.xml +0 -0
  472. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/virtual_connections_get.xml +0 -0
  473. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/virtual_connections_publish.xml +0 -0
  474. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/virtual_connections_revisions.xml +0 -0
  475. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/virtual_connections_update.xml +0 -0
  476. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/webhook_create.xml +0 -0
  477. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/webhook_create_request.xml +0 -0
  478. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/webhook_get.xml +0 -0
  479. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/workbook_add_tags.xml +0 -0
  480. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/workbook_get.xml +0 -0
  481. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/workbook_get_all_fields.xml +0 -0
  482. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/workbook_get_by_id.xml +0 -0
  483. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/workbook_get_by_id_acceleration_status.xml +0 -0
  484. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/workbook_get_by_id_personal.xml +0 -0
  485. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/workbook_get_empty.xml +0 -0
  486. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/workbook_get_invalid_date.xml +0 -0
  487. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/workbook_get_page_1.xml +0 -0
  488. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/workbook_get_page_2.xml +0 -0
  489. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/workbook_get_page_3.xml +0 -0
  490. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/workbook_populate_connections.xml +0 -0
  491. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/workbook_populate_permissions.xml +0 -0
  492. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/workbook_populate_views.xml +0 -0
  493. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/workbook_populate_views_usage.xml +0 -0
  494. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/workbook_publish.xml +0 -0
  495. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/workbook_publish_async.xml +0 -0
  496. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/workbook_refresh.xml +0 -0
  497. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/workbook_revision.xml +0 -0
  498. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/workbook_update.xml +0 -0
  499. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/workbook_update_acceleration_status.xml +0 -0
  500. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/workbook_update_data_freshness_policy.xml +0 -0
  501. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/workbook_update_data_freshness_policy2.xml +0 -0
  502. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/workbook_update_data_freshness_policy3.xml +0 -0
  503. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/workbook_update_data_freshness_policy4.xml +0 -0
  504. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/workbook_update_data_freshness_policy5.xml +0 -0
  505. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/workbook_update_data_freshness_policy6.xml +0 -0
  506. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/workbook_update_permissions.xml +0 -0
  507. {tableauserverclient-0.38 → tableauserverclient-0.40}/test/assets/workbook_update_views_acceleration_status.xml +0 -0
  508. {tableauserverclient-0.38/test/request_factory → tableauserverclient-0.40/test/http}/__init__.py +0 -0
@@ -4,8 +4,6 @@ include CONTRIBUTORS.md
4
4
  include LICENSE
5
5
  include LICENSE.versioneer
6
6
  include README.md
7
- include tableauserverclient/_version.py
8
- include versioneer.py
9
7
  recursive-include docs *.md
10
8
  recursive-include samples *.py
11
9
  recursive-include samples *.txt
@@ -18,5 +16,4 @@ recursive-include test *.png
18
16
  recursive-include test *.py
19
17
  recursive-include test *.xml
20
18
  recursive-include test *.tde
21
- global-include *.pyi
22
19
  global-include *.typed
@@ -1,30 +1,8 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: tableauserverclient
3
- Version: 0.38
3
+ Version: 0.40
4
4
  Summary: A Python module for working with the Tableau Server REST API.
5
5
  Author-email: Tableau <github@tableau.com>
6
- License: The MIT License (MIT)
7
-
8
- Copyright (c) 2022 Tableau
9
-
10
- Permission is hereby granted, free of charge, to any person obtaining a copy
11
- of this software and associated documentation files (the "Software"), to deal
12
- in the Software without restriction, including without limitation the rights
13
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
14
- copies of the Software, and to permit persons to whom the Software is
15
- furnished to do so, subject to the following conditions:
16
-
17
- The above copyright notice and this permission notice shall be included in all
18
- copies or substantial portions of the Software.
19
-
20
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
21
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
22
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
23
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
24
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
25
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
26
- SOFTWARE.
27
-
28
6
  Project-URL: repository, https://github.com/tableau/server-client-python
29
7
  Classifier: Programming Language :: Python
30
8
  Classifier: Programming Language :: Python :: 3
@@ -36,20 +14,21 @@ Classifier: Programming Language :: Python :: 3.13
36
14
  Requires-Python: >=3.9
37
15
  Description-Content-Type: text/markdown
38
16
  License-File: LICENSE
39
- License-File: LICENSE.versioneer
40
17
  Requires-Dist: defusedxml>=0.7.1
41
18
  Requires-Dist: packaging>=23.1
42
19
  Requires-Dist: requests>=2.32
43
- Requires-Dist: urllib3<3,>=2.2.2
20
+ Requires-Dist: urllib3<3,>=2.6.0
44
21
  Requires-Dist: typing_extensions>=4.0
45
22
  Provides-Extra: test
46
- Requires-Dist: black==24.8; extra == "test"
23
+ Requires-Dist: black==24.10; extra == "test"
47
24
  Requires-Dist: build; extra == "test"
48
25
  Requires-Dist: mypy==1.4; extra == "test"
49
26
  Requires-Dist: pytest>=7.0; extra == "test"
50
27
  Requires-Dist: pytest-cov; extra == "test"
51
28
  Requires-Dist: pytest-subtests; extra == "test"
29
+ Requires-Dist: pytest-xdist; extra == "test"
52
30
  Requires-Dist: requests-mock<2.0,>=1.0; extra == "test"
31
+ Requires-Dist: types-requests>=2.32.4.20250913; extra == "test"
53
32
  Dynamic: license-file
54
33
 
55
34
  # Tableau Server Client (Python)
@@ -1,5 +1,5 @@
1
1
  [build-system]
2
- requires = ["setuptools>=75.0", "versioneer[toml]==0.29", "wheel"]
2
+ requires = ["setuptools>=77.0", "versioneer[toml]==0.29", "wheel"]
3
3
  build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
@@ -8,14 +8,14 @@ name="tableauserverclient"
8
8
  dynamic = ["version"]
9
9
  description='A Python module for working with the Tableau Server REST API.'
10
10
  authors = [{name="Tableau", email="github@tableau.com"}]
11
- license = {file = "LICENSE"}
11
+ license-files = ["LICENSE"]
12
12
  readme = "README.md"
13
13
 
14
14
  dependencies = [
15
15
  'defusedxml>=0.7.1', # latest as at 7/31/23
16
16
  'packaging>=23.1', # latest as at 7/31/23
17
17
  'requests>=2.32', # latest as at 7/31/23
18
- 'urllib3>=2.2.2,<3',
18
+ 'urllib3>=2.6.0,<3',
19
19
  'typing_extensions>=4.0',
20
20
  ]
21
21
  requires-python = ">=3.9"
@@ -32,8 +32,19 @@ classifiers = [
32
32
  repository = "https://github.com/tableau/server-client-python"
33
33
 
34
34
  [project.optional-dependencies]
35
- test = ["black==24.8", "build", "mypy==1.4", "pytest>=7.0", "pytest-cov", "pytest-subtests",
36
- "requests-mock>=1.0,<2.0"]
35
+ test = ["black==24.10", "build", "mypy==1.4", "pytest>=7.0", "pytest-cov", "pytest-subtests",
36
+ "pytest-xdist", "requests-mock>=1.0,<2.0", "types-requests>=2.32.4.20250913"]
37
+
38
+ [tool.setuptools.package-data]
39
+ # Only include data for tableauserverclient, not for samples, test, docs
40
+ tableauserverclient = ["*"]
41
+
42
+ [tool.setuptools.packages.find]
43
+ where = ["."]
44
+ include = ["tableauserverclient*"]
45
+
46
+ [tool.setuptools.dynamic]
47
+ version = {attr = "versioneer.get_version"}
37
48
 
38
49
  [tool.black]
39
50
  line-length = 120
@@ -61,5 +72,5 @@ addopts = "--junitxml=./test.junit.xml"
61
72
  VCS = "git"
62
73
  style = "pep440-pre"
63
74
  versionfile_source = "tableauserverclient/bin/_version.py"
64
- versionfile_build = "tableauserverclient/bin/_version.py"
75
+ versionfile_build = "_version.py"
65
76
  tag_prefix = "v"
@@ -0,0 +1,73 @@
1
+ ####
2
+ # This script demonstrates how to create a user using the Tableau
3
+ # Server Client.
4
+ #
5
+ # To run the script, you must have installed Python 3.7 or later.
6
+ ####
7
+
8
+
9
+ import argparse
10
+ import logging
11
+ import os
12
+ import sys
13
+ from typing import Sequence
14
+
15
+ import tableauserverclient as TSC
16
+
17
+
18
+ def parse_args(args: Sequence[str] | None) -> argparse.Namespace:
19
+ """
20
+ Parse command line parameters
21
+ """
22
+ if args is None:
23
+ args = sys.argv[1:]
24
+ parser = argparse.ArgumentParser(description="Creates a sample user group.")
25
+ # Common options; please keep those in sync across all samples
26
+ parser.add_argument("--server", "-s", help="server address")
27
+ parser.add_argument("--site", "-S", help="site name")
28
+ parser.add_argument("--token-name", "-p", help="name of the personal access token used to sign into the server")
29
+ parser.add_argument("--token-value", "-v", help="value of the personal access token used to sign into the server")
30
+ parser.add_argument(
31
+ "--logging-level",
32
+ "-l",
33
+ choices=["debug", "info", "error"],
34
+ default="error",
35
+ help="desired logging level (set to error by default)",
36
+ )
37
+ # Options specific to this sample
38
+ # This sample has no additional options, yet. If you add some, please add them here
39
+ parser.add_argument("--role", "-r", help="Site Role for the new user", default="Unlicensed")
40
+ parser.add_argument(
41
+ "--user",
42
+ "-u",
43
+ help="Username for the new user. If using active directory, it should be in the format of SAMAccountName@FullyQualifiedDomainName",
44
+ )
45
+ parser.add_argument(
46
+ "--email", "-e", help="Email address of the new user. If using active directory, this field is optional."
47
+ )
48
+
49
+ return parser.parse_args(args)
50
+
51
+
52
+ def main():
53
+ args = parse_args(None)
54
+
55
+ # Set logging level based on user input, or error by default
56
+ logging_level = getattr(logging, args.logging_level.upper())
57
+ logging.basicConfig(level=logging_level)
58
+
59
+ tableau_auth = TSC.PersonalAccessTokenAuth(args.token_name, args.token_value, site_id=args.site)
60
+ server = TSC.Server(args.server, use_server_version=True, http_options={"verify": False})
61
+ with server.auth.sign_in(tableau_auth):
62
+ # this code shows 2 different error codes for common mistakes
63
+ # 400013: Invalid site role
64
+ # 409000: user already exists on site
65
+
66
+ user = TSC.UserItem(args.user, args.role)
67
+ if args.email:
68
+ user.email = args.email
69
+ user = server.users.add(user)
70
+
71
+
72
+ if __name__ == "__main__":
73
+ main()
@@ -0,0 +1,87 @@
1
+ ####
2
+ # This script demonstrates how to use the metadata API to query information on a published data source
3
+ #
4
+ # To run the script, you must have installed Python 3.7 or later.
5
+ ####
6
+
7
+ import argparse
8
+ import logging
9
+ from pprint import pprint
10
+
11
+ import tableauserverclient as TSC
12
+
13
+
14
+ def main():
15
+ parser = argparse.ArgumentParser(description="Use the metadata API to get information on a published data source.")
16
+ # Common options; please keep those in sync across all samples
17
+ parser.add_argument("--server", "-s", help="server address")
18
+ parser.add_argument("--site", "-S", help="site name")
19
+ parser.add_argument("--token-name", "-n", help="name of the personal access token used to sign into the server")
20
+ parser.add_argument("--token-value", "-v", help="value of the personal access token used to sign into the server")
21
+ parser.add_argument(
22
+ "--logging-level",
23
+ "-l",
24
+ choices=["debug", "info", "error"],
25
+ default="error",
26
+ help="desired logging level (set to error by default)",
27
+ )
28
+ # Options specific to this sample
29
+ parser.add_argument(
30
+ "datasource_name",
31
+ nargs="?",
32
+ help="The name of the published datasource. If not present, we query all data sources.",
33
+ )
34
+
35
+ args = parser.parse_args()
36
+
37
+ # Set logging level based on user input, or error by default
38
+ logging_level = getattr(logging, args.logging_level.upper())
39
+ logging.basicConfig(level=logging_level)
40
+
41
+ # Sign in to server
42
+ tableau_auth = TSC.PersonalAccessTokenAuth(args.token_name, args.token_value, site_id=args.site)
43
+ server = TSC.Server(args.server, use_server_version=True)
44
+ with server.auth.sign_in(tableau_auth):
45
+ # Execute the query
46
+ result = server.metadata.query(
47
+ """
48
+ # Query must declare that it accepts first and afterToken variables
49
+ query paged($first:Int, $afterToken:String) {
50
+ workbooksConnection(first: $first, after:$afterToken) {
51
+ nodes {
52
+ luid
53
+ name
54
+ projectName
55
+ description
56
+ }
57
+ totalCount
58
+ pageInfo {
59
+ endCursor
60
+ hasNextPage
61
+ }
62
+ }
63
+ }
64
+ """,
65
+ # "first" adjusts the page size. Here we set it to 5 to demonstrate pagination.
66
+ # Set it to a higher number to reduce the number of pages. Including
67
+ # first and afterToken is optional, and if not included, TSC will
68
+ # use its default page size of 100.
69
+ variables={"first": 5, "afterToken": None},
70
+ )
71
+
72
+ # Multiple pages are captured in result["pages"]. Each page contains
73
+ # the result of one execution of the query above.
74
+ for page in result["pages"]:
75
+ # Display warnings/errors (if any)
76
+ if page.get("errors"):
77
+ print("### Errors/Warnings:")
78
+ pprint(result["errors"])
79
+
80
+ # Print the results
81
+ if result.get("data"):
82
+ print("### Results:")
83
+ pprint(result["data"]["workbooksConnection"]["nodes"])
84
+
85
+
86
+ if __name__ == "__main__":
87
+ main()
@@ -0,0 +1,62 @@
1
+ import argparse
2
+ import logging
3
+ import tableauserverclient as TSC
4
+
5
+
6
+ def main():
7
+ parser = argparse.ArgumentParser(
8
+ description="Update a single connection on a datasource or workbook to embed credentials"
9
+ )
10
+
11
+ # Common options
12
+ parser.add_argument("--server", "-s", help="Server address", required=True)
13
+ parser.add_argument("--site", "-S", help="Site name", required=True)
14
+ parser.add_argument("--token-name", "-p", help="Personal access token name", required=True)
15
+ parser.add_argument("--token-value", "-v", help="Personal access token value", required=True)
16
+ parser.add_argument(
17
+ "--logging-level",
18
+ "-l",
19
+ choices=["debug", "info", "error"],
20
+ default="error",
21
+ help="Logging level (default: error)",
22
+ )
23
+
24
+ # Resource and connection details
25
+ parser.add_argument("resource_type", choices=["workbook", "datasource"])
26
+ parser.add_argument("resource_id", help="Workbook or datasource ID")
27
+ parser.add_argument("connection_id", help="Connection ID to update")
28
+ parser.add_argument("datasource_username", help="Username to set for the connection")
29
+ parser.add_argument("datasource_password", help="Password to set for the connection")
30
+ parser.add_argument("authentication_type", help="Authentication type")
31
+
32
+ args = parser.parse_args()
33
+
34
+ # Logging setup
35
+ logging_level = getattr(logging, args.logging_level.upper())
36
+ logging.basicConfig(level=logging_level)
37
+
38
+ tableau_auth = TSC.PersonalAccessTokenAuth(args.token_name, args.token_value, site_id=args.site)
39
+ server = TSC.Server(args.server, use_server_version=True)
40
+
41
+ with server.auth.sign_in(tableau_auth):
42
+ endpoint = {"workbook": server.workbooks, "datasource": server.datasources}.get(args.resource_type)
43
+
44
+ update_function = endpoint.update_connection
45
+ resource = endpoint.get_by_id(args.resource_id)
46
+ endpoint.populate_connections(resource)
47
+
48
+ connections = [conn for conn in resource.connections if conn.id == args.connection_id]
49
+ assert len(connections) == 1, f"Connection ID '{args.connection_id}' not found."
50
+
51
+ connection = connections[0]
52
+ connection.username = args.datasource_username
53
+ connection.password = args.datasource_password
54
+ connection.auth_type = args.authentication_type
55
+ connection.embed_password = True
56
+
57
+ updated_connection = update_function(resource, connection)
58
+ print(f"Updated connection: {updated_connection.__dict__}")
59
+
60
+
61
+ if __name__ == "__main__":
62
+ main()
@@ -0,0 +1,64 @@
1
+ import argparse
2
+ import logging
3
+ import tableauserverclient as TSC
4
+
5
+
6
+ def main():
7
+ parser = argparse.ArgumentParser(description="Bulk update all workbook or datasource connections")
8
+
9
+ # Common options
10
+ parser.add_argument("--server", "-s", help="Server address", required=True)
11
+ parser.add_argument("--site", "-S", help="Site name", required=True)
12
+ parser.add_argument("--token-name", "-p", help="Personal access token name", required=True)
13
+ parser.add_argument("--token-value", "-v", help="Personal access token value", required=True)
14
+ parser.add_argument(
15
+ "--logging-level",
16
+ "-l",
17
+ choices=["debug", "info", "error"],
18
+ default="error",
19
+ help="Logging level (default: error)",
20
+ )
21
+
22
+ # Resource-specific
23
+ parser.add_argument("resource_type", choices=["workbook", "datasource"])
24
+ parser.add_argument("resource_id")
25
+ parser.add_argument("datasource_username")
26
+ parser.add_argument("authentication_type")
27
+ parser.add_argument("--datasource_password", default=None, help="Datasource password (optional)")
28
+ parser.add_argument(
29
+ "--embed_password", default="true", choices=["true", "false"], help="Embed password (default: true)"
30
+ )
31
+
32
+ args = parser.parse_args()
33
+
34
+ # Set logging level
35
+ logging_level = getattr(logging, args.logging_level.upper())
36
+ logging.basicConfig(level=logging_level)
37
+
38
+ tableau_auth = TSC.PersonalAccessTokenAuth(args.token_name, args.token_value, site_id=args.site)
39
+ server = TSC.Server(args.server, use_server_version=True)
40
+
41
+ with server.auth.sign_in(tableau_auth):
42
+ endpoint = {"workbook": server.workbooks, "datasource": server.datasources}.get(args.resource_type)
43
+
44
+ resource = endpoint.get_by_id(args.resource_id)
45
+ endpoint.populate_connections(resource)
46
+
47
+ connection_luids = [conn.id for conn in resource.connections]
48
+ embed_password = args.embed_password.lower() == "true"
49
+
50
+ # Call unified update_connections method
51
+ connection_items = endpoint.update_connections(
52
+ resource,
53
+ connection_luids=connection_luids,
54
+ authentication_type=args.authentication_type,
55
+ username=args.datasource_username,
56
+ password=args.datasource_password,
57
+ embed_password=embed_password,
58
+ )
59
+
60
+ print(f"Updated connections on {args.resource_type} {args.resource_id}: {connection_items}")
61
+
62
+
63
+ if __name__ == "__main__":
64
+ main()
@@ -76,7 +76,7 @@ def main():
76
76
  print("Waiting for job...")
77
77
  # `wait_for_job` will throw if the job isn't executed successfully
78
78
  job = server.jobs.wait_for_job(job)
79
- print("Job finished succesfully")
79
+ print("Job finished successfully")
80
80
 
81
81
 
82
82
  if __name__ == "__main__":
@@ -0,0 +1,8 @@
1
+ import versioneer
2
+ from setuptools import setup
3
+
4
+ setup(
5
+ # This line is required to set the version number when building the wheel
6
+ # not yet sure how to move this to pyproject.toml - it may require work in versioneer
7
+ cmdclass=versioneer.get_cmdclass()
8
+ )
@@ -2,6 +2,7 @@ from tableauserverclient.bin._version import get_versions
2
2
  from tableauserverclient.namespace import NEW_NAMESPACE as DEFAULT_NAMESPACE
3
3
  from tableauserverclient.models import (
4
4
  BackgroundJobItem,
5
+ CollectionItem,
5
6
  ColumnItem,
6
7
  ConnectionCredentials,
7
8
  ConnectionItem,
@@ -12,6 +13,8 @@ from tableauserverclient.models import (
12
13
  DatabaseItem,
13
14
  DataFreshnessPolicyItem,
14
15
  DatasourceItem,
16
+ ExtensionsServer,
17
+ ExtensionsSiteSettings,
15
18
  FavoriteItem,
16
19
  FlowItem,
17
20
  FlowRunItem,
@@ -35,8 +38,10 @@ from tableauserverclient.models import (
35
38
  ProjectItem,
36
39
  Resource,
37
40
  RevisionItem,
41
+ SafeExtension,
38
42
  ScheduleItem,
39
43
  SiteAuthConfiguration,
44
+ SiteOIDCConfiguration,
40
45
  SiteItem,
41
46
  ServerInfoItem,
42
47
  SubscriptionItem,
@@ -72,7 +77,7 @@ from tableauserverclient.server import (
72
77
 
73
78
  __all__ = [
74
79
  "BackgroundJobItem",
75
- "BackgroundJobItem",
80
+ "CollectionItem",
76
81
  "ColumnItem",
77
82
  "ConnectionCredentials",
78
83
  "ConnectionItem",
@@ -86,6 +91,8 @@ __all__ = [
86
91
  "DEFAULT_NAMESPACE",
87
92
  "DQWItem",
88
93
  "ExcelRequestOptions",
94
+ "ExtensionsServer",
95
+ "ExtensionsSiteSettings",
89
96
  "FailedSignInError",
90
97
  "FavoriteItem",
91
98
  "FileuploadItem",
@@ -119,12 +126,14 @@ __all__ = [
119
126
  "RequestOptions",
120
127
  "Resource",
121
128
  "RevisionItem",
129
+ "SafeExtension",
122
130
  "ScheduleItem",
123
131
  "Server",
124
132
  "ServerInfoItem",
125
133
  "ServerResponseError",
126
134
  "SiteItem",
127
135
  "SiteAuthConfiguration",
136
+ "SiteOIDCConfiguration",
128
137
  "Sort",
129
138
  "SubscriptionItem",
130
139
  "TableauAuth",
@@ -139,7 +148,3 @@ __all__ = [
139
148
  "WeeklyInterval",
140
149
  "WorkbookItem",
141
150
  ]
142
-
143
- from .bin import _version
144
-
145
- __version__ = _version.get_versions()["version"]
@@ -0,0 +1,3 @@
1
+ # generated during initial setup of versioneer
2
+ from . import _version
3
+ __version__ = _version.get_versions()['version']
@@ -8,11 +8,11 @@ import json
8
8
 
9
9
  version_json = '''
10
10
  {
11
- "date": "2025-05-15T14:21:50-0700",
11
+ "date": "2026-02-03T12:18:13-0800",
12
12
  "dirty": false,
13
13
  "error": null,
14
- "full-revisionid": "cda018b684c98200f3f9de11e379ba2ca3b1b3fe",
15
- "version": "0.38"
14
+ "full-revisionid": "d4b27f42d897883f8b8d0cb5b7edb558df2cbfb6",
15
+ "version": "0.40"
16
16
  }
17
17
  ''' # END VERSION_JSON
18
18
 
@@ -1,3 +1,4 @@
1
+ from tableauserverclient.models.collection_item import CollectionItem
1
2
  from tableauserverclient.models.column_item import ColumnItem
2
3
  from tableauserverclient.models.connection_credentials import ConnectionCredentials
3
4
  from tableauserverclient.models.connection_item import ConnectionItem
@@ -9,6 +10,7 @@ from tableauserverclient.models.data_freshness_policy_item import DataFreshnessP
9
10
  from tableauserverclient.models.datasource_item import DatasourceItem
10
11
  from tableauserverclient.models.dqw_item import DQWItem
11
12
  from tableauserverclient.models.exceptions import UnpopulatedPropertyError
13
+ from tableauserverclient.models.extensions_item import ExtensionsServer, ExtensionsSiteSettings, SafeExtension
12
14
  from tableauserverclient.models.favorites_item import FavoriteItem
13
15
  from tableauserverclient.models.fileupload_item import FileuploadItem
14
16
  from tableauserverclient.models.flow_item import FlowItem
@@ -30,6 +32,7 @@ from tableauserverclient.models.linked_tasks_item import (
30
32
  )
31
33
  from tableauserverclient.models.location_item import LocationItem
32
34
  from tableauserverclient.models.metric_item import MetricItem
35
+ from tableauserverclient.models.oidc_item import SiteOIDCConfiguration
33
36
  from tableauserverclient.models.pagination_item import PaginationItem
34
37
  from tableauserverclient.models.permissions_item import PermissionsRule, Permission
35
38
  from tableauserverclient.models.project_item import ProjectItem
@@ -52,6 +55,7 @@ from tableauserverclient.models.workbook_item import WorkbookItem
52
55
  from tableauserverclient.models.extract_item import ExtractItem
53
56
 
54
57
  __all__ = [
58
+ "CollectionItem",
55
59
  "ColumnItem",
56
60
  "ConnectionCredentials",
57
61
  "ConnectionItem",
@@ -79,6 +83,7 @@ __all__ = [
79
83
  "BackgroundJobItem",
80
84
  "LocationItem",
81
85
  "MetricItem",
86
+ "SiteOIDCConfiguration",
82
87
  "PaginationItem",
83
88
  "Permission",
84
89
  "PermissionsRule",
@@ -88,6 +93,7 @@ __all__ = [
88
93
  "ServerInfoItem",
89
94
  "SiteAuthConfiguration",
90
95
  "SiteItem",
96
+ "SiteOIDCConfiguration",
91
97
  "SubscriptionItem",
92
98
  "TableItem",
93
99
  "TableauAuth",
@@ -108,4 +114,7 @@ __all__ = [
108
114
  "LinkedTaskStepItem",
109
115
  "LinkedTaskFlowRunItem",
110
116
  "ExtractItem",
117
+ "ExtensionsServer",
118
+ "ExtensionsSiteSettings",
119
+ "SafeExtension",
111
120
  ]
@@ -0,0 +1,52 @@
1
+ from datetime import datetime
2
+ from typing import Optional
3
+ from xml.etree.ElementTree import Element
4
+
5
+ from defusedxml.ElementTree import fromstring
6
+ from typing_extensions import Self
7
+
8
+ from tableauserverclient.datetime_helpers import parse_datetime
9
+ from tableauserverclient.models.user_item import UserItem
10
+
11
+
12
+ class CollectionItem:
13
+ def __init__(self) -> None:
14
+ self.id: Optional[str] = None
15
+ self.name: Optional[str] = None
16
+ self.description: Optional[str] = None
17
+ self.created_at: Optional[datetime] = None
18
+ self.updated_at: Optional[datetime] = None
19
+ self.owner: Optional[UserItem] = None
20
+ self.total_item_count: Optional[int] = None
21
+ self.permissioned_item_count: Optional[int] = None
22
+ self.visibility: Optional[str] = None # Assuming visibility is a string, adjust as necessary
23
+
24
+ @classmethod
25
+ def from_response(cls, response: bytes, ns) -> list[Self]:
26
+ parsed_response = fromstring(response)
27
+
28
+ collection_elements = parsed_response.findall(".//t:collection", namespaces=ns)
29
+ if not collection_elements:
30
+ raise ValueError("No collection element found in the response")
31
+
32
+ collections = [cls.from_xml(c, ns) for c in collection_elements]
33
+ return collections
34
+
35
+ @classmethod
36
+ def from_xml(cls, xml: Element, ns) -> Self:
37
+ collection_item = cls()
38
+ collection_item.id = xml.get("id")
39
+ collection_item.name = xml.get("name")
40
+ collection_item.description = xml.get("description")
41
+ collection_item.created_at = parse_datetime(xml.get("createdAt"))
42
+ collection_item.updated_at = parse_datetime(xml.get("updatedAt"))
43
+ owner_element = xml.find(".//t:owner", namespaces=ns)
44
+ if owner_element is not None:
45
+ collection_item.owner = UserItem.from_xml(owner_element, ns)
46
+ else:
47
+ collection_item.owner = None
48
+ collection_item.total_item_count = int(xml.get("totalItemCount", 0))
49
+ collection_item.permissioned_item_count = int(xml.get("permissionedItemCount", 0))
50
+ collection_item.visibility = xml.get("visibility")
51
+
52
+ return collection_item