From 3bb0e9dfd69de9d2d34a802cecbcc6ced576fc9e Mon Sep 17 00:00:00 2001 From: Jac Fitzgerald Date: Mon, 10 Aug 2026 18:19:29 -0700 Subject: [PATCH 1/2] docs: fix singular/plural typos in method reference headings api-ref.md addressed several endpoint methods with the singular form of the endpoint attribute rather than the plural form actually bound on `Server`: - `datasource.*` -> `datasources.*` (2 headings) - `subscription.*` -> `subscriptions.*` (4 headings) - `webhook.*` -> `webhooks.*` (5 headings) - `groupsets.*` -> `group_sets.*` (9 headings) Discovered while auditing api-ref.md against source for the Sphinx migration in server-client-python#1832. Section content is unchanged; only heading + code-block invocation lines are renamed. No internal anchor links reference the old headings. Co-Authored-By: Claude Opus 4.7 (1M context) --- docs/api-ref.md | 68 ++++++++++++++++++++++++------------------------- 1 file changed, 34 insertions(+), 34 deletions(-) diff --git a/docs/api-ref.md b/docs/api-ref.md index ebab052ff..6028b6533 100644 --- a/docs/api-ref.md +++ b/docs/api-ref.md @@ -1216,10 +1216,10 @@ An updated `DatasourceItem`.

-#### datasource.update_connection +#### datasources.update_connection ```py -datasource.update_connection(datasource_item, connection_item) +datasources.update_connection(datasource_item, connection_item) ``` Updates the server address, port, username, or password for the specified data source connection. @@ -1247,10 +1247,10 @@ See the `update_connection.py` sample in the Samples directory.

-#### datasource.update_hyper_data +#### datasources.update_hyper_data ```py -datasource.update_hyper_data(datasource_or_connection_item, *, request_id, actions, payload=None) +datasources.update_hyper_data(datasource_or_connection_item, *, request_id, actions, payload=None) ``` Updates the data contained within a published live-to-Hyper datasource. @@ -4032,10 +4032,10 @@ Source file: server/endpoint/groupsets_endpoint.py

-#### groupsets.get +#### group_sets.get ```py -groupsets.get(req_options=None, result_level=None) +group_sets.get(req_options=None, result_level=None) ``` Returns information about the group sets on the specified site. @@ -4068,10 +4068,10 @@ for groupset in all_groupsets:

-#### groupsets.get_by_id +#### group_sets.get_by_id ```py -groupsets.get_by_id(groupset_id) +group_sets.get_by_id(groupset_id) ``` Returns information about the specified group set. @@ -4102,10 +4102,10 @@ print(groupset.name)

-#### groupsets.create +#### group_sets.create ```py -groupsets.create(groupset_item) +group_sets.create(groupset_item) ``` Creates a new group set on the specified site. @@ -4137,10 +4137,10 @@ print(created_groupset.id)

-#### groupsets.update +#### group_sets.update ```py -groupsets.update(groupset_item) +group_sets.update(groupset_item) ``` Modifies an existing group set. You can use this method to rename a group set. @@ -4171,10 +4171,10 @@ updated_groupset = server.groupsets.update(groupset)

-#### groupsets.delete +#### group_sets.delete ```py -groupsets.delete(groupset) +group_sets.delete(groupset) ``` Deletes the specified group set from the site. @@ -4204,10 +4204,10 @@ server.groupsets.delete(groupset.id)

-#### groupsets.add_group +#### group_sets.add_group ```py -groupsets.add_group(groupset_item, group) +group_sets.add_group(groupset_item, group) ``` Adds a group to the specified group set. @@ -4241,10 +4241,10 @@ server.groupsets.add_group(groupset, mygroup)

-#### groupsets.remove_group +#### group_sets.remove_group ```py -groupsets.remove_group(groupset_item, group) +group_sets.remove_group(groupset_item, group) ``` Removes a group from the specified group set. @@ -4275,10 +4275,10 @@ server.groupsets.remove_group(groupset, mygroup)

-#### groupsets.filter +#### group_sets.filter ```py -groupsets.filter(**kwargs) +group_sets.filter(**kwargs) ``` Returns a list of group sets that match the specified filters. Fields and operators are passed as keyword arguments in the form `field_name=value` or `field_name__operator=value`. @@ -7099,10 +7099,10 @@ Source files: server/endpoints/subscriptions_endpoint.py

-#### subscription.create +#### subscriptions.create ```py -subscription.create(subscription_item) +subscriptions.create(subscription_item) ``` Creates a subscription to a view or workbook for a specific user on a specific schedule. When a user is subscribed to the content, Tableau Server sends the content to the user in email on the schedule that's defined on Tableau Server and specified in the `subscription_item`. @@ -7207,10 +7207,10 @@ Error | Description

-#### subscription.get +#### subscriptions.get ```py -subscription.get(req_options=None) +subscriptions.get(req_options=None) ``` Returns information about the subscriptions on the specified site. @@ -7231,11 +7231,11 @@ Returns a list of `SubscriptionItem` objects and a `PaginationItem` object. Use

-#### subscription.get_by_id +#### subscriptions.get_by_id ```py -subscription.get_by_id(subscription_id) +subscriptions.get_by_id(subscription_id) ``` Returns information about the specified subscription. @@ -7274,10 +7274,10 @@ The `SubscriptionItem`. See [SubscriptionItem class](#subscriptionitem-class)

-#### subscription.update +#### subscriptions.update ```py -subscription.update(subscription_item) +subscriptions.update(subscription_item) ``` Updates a specific subscription. To update a subscription, you must first query it from server using the `subscriptions.get()` or `subscriptions.get_by_id()` method. @@ -9527,7 +9527,7 @@ Source file: server/endpoint/webhooks_endpoint.py

-#### webhook.create +#### webhooks.create ```py webhooks.create(webhook_item) @@ -9570,7 +9570,7 @@ Returns the new webhook item.

-### webhook.delete +### webhooks.delete ```py webhooks.delete(webhook_id) ``` @@ -9606,7 +9606,7 @@ with server.auth.sign_in(tableau_auth):

-#### webhook.get() +#### webhooks.get() ```py webhooks.get() ``` @@ -9642,7 +9642,7 @@ print(["Webhook Name:"+ webhook.name+ ";" + "ID:" + webhook.id for webhook in al ``` -#### webhook.get_by_id +#### webhooks.get_by_id ```py webhooks.get_by_ide(webhook_id) @@ -9681,7 +9681,7 @@ print (webhook.name, webhook.url)

-#### webhook.delete +#### webhooks.delete ```py webhooks.delete(webhook_id) @@ -9710,7 +9710,7 @@ server.webhooks.delete('7d60d364-b9f5-4a9c-8aa5-4bdaa38c5dd3')

-#### webhook.test +#### webhooks.test ```py webhooks.test(webhook_id) From 7bac42c7fd4a3aff7066acdbb6fc455e3e8ed27b Mon Sep 17 00:00:00 2001 From: Jac Fitzgerald Date: Mon, 10 Aug 2026 18:28:54 -0700 Subject: [PATCH 2/2] docs: remove duplicate webhooks.delete section api-ref.md had two adjacent sections describing webhooks.delete (h3 at line 9573 and h4 at line 9684 pre-rename). Both documented the same method with the same signature. Keeping the h4 entry: it lives with the other webhook methods at h4 level, matches the surrounding template (includes Version info, concise Example, standard REST API link), and is what search results consistently pointed at. Discovered while working on the singular/plural heading rename in the previous commit. Co-Authored-By: Claude Opus 4.7 (1M context) --- docs/api-ref.md | 36 ------------------------------------ 1 file changed, 36 deletions(-) diff --git a/docs/api-ref.md b/docs/api-ref.md index 6028b6533..d0e784d77 100644 --- a/docs/api-ref.md +++ b/docs/api-ref.md @@ -9570,42 +9570,6 @@ Returns the new webhook item.

-### webhooks.delete -```py -webhooks.delete(webhook_id) -``` - -Deletes a webhook by ID. - -To specify the site, create a `TableauAuth` instance using the content URL for the site `(site_id)` and sign in to the site. For more information on how to specify a site, see the [TableauAuth class](#tableauauth-class). - -REST API: [Delete Webhook](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref_notifications.htm#delete_webhook) - -**Parameters** - -Name|Description -:---|:--- -`webhook_id`| The ID of the webhook to delete. - -**Exceptions** - -Error|Description -:---|:--- -`Webhook ID undefined`| Raises an exception if a `webhook_id` is not provided. - -**Example** -```py -# import tableauserverclient as TSC -# server = TSC.Server('https://SERVER') -# sign in . For authentication examples, see https://github.com/tableau/server-client-python/blob/master/samples/login.py - -# Delete the webhook -with server.auth.sign_in(tableau_auth): - server.webhooks.delete('7d60d364-b9f5-4a9c-8aa5-4bdaa38c5dd3') -``` -
-
- #### webhooks.get() ```py webhooks.get()