feat(docs): add all delete endpoints

This commit is contained in:
rzmk 2025-12-02 19:20:06 -05:00
parent 4737c5462d
commit e9b220462b
25 changed files with 1106 additions and 0 deletions

View file

@ -0,0 +1,20 @@
---
title: api_token_revoke
full: true
_openapi:
method: DELETE
route: api_token_revoke
toc: []
structuredData:
headings: []
contents:
- content: |
Delete API Token.
---
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
Delete API Token.
<APIPage document={"./lib/openapi.yml"} operations={[{"path":"api_token_revoke","method":"delete"}]} webhooks={[]} hasHead={false} />

View file

@ -0,0 +1,39 @@
---
title: dataset_purge
full: true
_openapi:
method: DELETE
route: dataset_purge
toc: []
structuredData:
headings: []
contents:
- content: >
Purge a dataset.
<Callout title="Warning!" type="warn">Purging a dataset cannot be
undone!</Callout>
Purging a dataset completely removes the dataset from the CKAN
database, whereas deleting a dataset simply marks the dataset as
deleted (it will no longer show up in the front-end, but is still in
the db).
You must be authorized to purge the dataset.
---
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
Purge a dataset.
<Callout title="Warning!" type="warn">Purging a dataset cannot be undone!</Callout>
Purging a dataset completely removes the dataset from the CKAN database, whereas deleting a dataset simply marks the dataset as deleted (it will no longer show up in the front-end, but is still in the db).
You must be authorized to purge the dataset.
<APIPage document={"./lib/openapi.yml"} operations={[{"path":"dataset_purge","method":"delete"}]} webhooks={[]} hasHead={false} />

View file

@ -0,0 +1,24 @@
---
title: group_delete
full: true
_openapi:
method: DELETE
route: group_delete
toc: []
structuredData:
headings: []
contents:
- content: |
Delete a group.
You must be authorized to delete the group.
---
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
Delete a group.
You must be authorized to delete the group.
<APIPage document={"./lib/openapi.yml"} operations={[{"path":"group_delete","method":"delete"}]} webhooks={[]} hasHead={false} />

View file

@ -0,0 +1,24 @@
---
title: group_member_delete
full: true
_openapi:
method: DELETE
route: group_member_delete
toc: []
structuredData:
headings: []
contents:
- content: |
Remove a user from a group.
You must be authorized to edit the group.
---
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
Remove a user from a group.
You must be authorized to edit the group.
<APIPage document={"./lib/openapi.yml"} operations={[{"path":"group_member_delete","method":"delete"}]} webhooks={[]} hasHead={false} />

View file

@ -0,0 +1,43 @@
---
title: group_purge
full: true
_openapi:
method: DELETE
route: group_purge
toc: []
structuredData:
headings: []
contents:
- content: >
Purge a group.
<Callout title="Warning!" type="warn">Purging a group cannot be
undone!</Callout>
Purging a group completely removes the group from the CKAN database,
whereas deleting a group simply marks the group as deleted (it will no
longer show up in the frontend, but is still in the db).
Datasets in the group will remain, just not in the purged group.
You must be authorized to purge the group.
---
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
Purge a group.
<Callout title="Warning!" type="warn">Purging a group cannot be undone!</Callout>
Purging a group completely removes the group from the CKAN database, whereas deleting a group simply marks the group as deleted (it will no longer show up in the frontend, but is still in the db).
Datasets in the group will remain, just not in the purged group.
You must be authorized to purge the group.
<APIPage document={"./lib/openapi.yml"} operations={[{"path":"group_purge","method":"delete"}]} webhooks={[]} hasHead={false} />

View file

@ -0,0 +1,24 @@
---
title: job_cancel
full: true
_openapi:
method: DELETE
route: job_cancel
toc: []
structuredData:
headings: []
contents:
- content: |
Cancel a queued background job.
Removes the job from the queue and deletes it.
---
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
Cancel a queued background job.
Removes the job from the queue and deletes it.
<APIPage document={"./lib/openapi.yml"} operations={[{"path":"job_cancel","method":"delete"}]} webhooks={[]} hasHead={false} />

View file

@ -0,0 +1,24 @@
---
title: job_clear
full: true
_openapi:
method: DELETE
route: job_clear
toc: []
structuredData:
headings: []
contents:
- content: |
Clear background job queues.
Does not affect jobs that are already being processed.
---
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
Clear background job queues.
Does not affect jobs that are already being processed.
<APIPage document={"./lib/openapi.yml"} operations={[{"path":"job_clear","method":"delete"}]} webhooks={[]} hasHead={false} />

View file

@ -0,0 +1,24 @@
---
title: member_delete
full: true
_openapi:
method: DELETE
route: member_delete
toc: []
structuredData:
headings: []
contents:
- content: |
Remove an object (e.g. a user, dataset or group) from a group.
You must be authorized to edit a group to remove objects from it.
---
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
Remove an object (e.g. a user, dataset or group) from a group.
You must be authorized to edit a group to remove objects from it.
<APIPage document={"./lib/openapi.yml"} operations={[{"path":"member_delete","method":"delete"}]} webhooks={[]} hasHead={false} />

View file

@ -0,0 +1,27 @@
---
title: organization_delete
full: true
_openapi:
method: DELETE
route: organization_delete
toc: []
structuredData:
headings: []
contents:
- content: >
Delete an organization.
You must be authorized to delete the organization and no datasets
should belong to the organization unless
`'ckan.auth.create_unowned_dataset=True'`
---
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
Delete an organization.
You must be authorized to delete the organization and no datasets should belong to the organization unless `'ckan.auth.create_unowned_dataset=True'`
<APIPage document={"./lib/openapi.yml"} operations={[{"path":"organization_delete","method":"delete"}]} webhooks={[]} hasHead={false} />

View file

@ -0,0 +1,24 @@
---
title: organization_member_delete
full: true
_openapi:
method: DELETE
route: organization_member_delete
toc: []
structuredData:
headings: []
contents:
- content: |
Remove a user from an organization.
You must be authorized to edit the organization.
---
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
Remove a user from an organization.
You must be authorized to edit the organization.
<APIPage document={"./lib/openapi.yml"} operations={[{"path":"organization_member_delete","method":"delete"}]} webhooks={[]} hasHead={false} />

View file

@ -0,0 +1,45 @@
---
title: organization_purge
full: true
_openapi:
method: DELETE
route: organization_purge
toc: []
structuredData:
headings: []
contents:
- content: >
Purge an organization.
<Callout title="Warning!" type="warn">Purging an organization cannot
be undone!</Callout>
Purging an organization completely removes the organization from the
CKAN database, whereas deleting a organization simply marks the
organization as deleted (it will no longer show up in the frontend,
but is still in the db).
Datasets owned by the organization will remain, just not in an
organization anymore.
You must be authorized to purge the organization.
---
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
Purge an organization.
<Callout title="Warning!" type="warn">Purging an organization cannot be undone!</Callout>
Purging an organization completely removes the organization from the CKAN database, whereas deleting a organization simply marks the organization as deleted (it will no longer show up in the frontend, but is still in the db).
Datasets owned by the organization will remain, just not in an organization anymore.
You must be authorized to purge the organization.
<APIPage document={"./lib/openapi.yml"} operations={[{"path":"organization_purge","method":"delete"}]} webhooks={[]} hasHead={false} />

View file

@ -0,0 +1,34 @@
---
title: package_collaborator_delete
full: true
_openapi:
method: DELETE
route: package_collaborator_delete
toc: []
structuredData:
headings: []
contents:
- content: >
Remove a collaborator from a dataset.
Currently you must be an Admin on the dataset owner organization to
manage collaborators.
Note: This action requires the collaborators feature to be enabled
with the
[`ckan.auth.allow_dataset_collaborators`](https://docs.ckan.org/en/2.11/maintaining/configuration.html#ckan-auth-allow-dataset-collaborators)
configuration option.
---
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
Remove a collaborator from a dataset.
Currently you must be an Admin on the dataset owner organization to manage collaborators.
Note: This action requires the collaborators feature to be enabled with the [`ckan.auth.allow_dataset_collaborators`](https://docs.ckan.org/en/2.11/maintaining/configuration.html#ckan-auth-allow-dataset-collaborators) configuration option.
<APIPage document={"./lib/openapi.yml"} operations={[{"path":"package_collaborator_delete","method":"delete"}]} webhooks={[]} hasHead={false} />

View file

@ -0,0 +1,31 @@
---
title: package_delete
full: true
_openapi:
method: DELETE
route: package_delete
toc: []
structuredData:
headings: []
contents:
- content: >
Delete a dataset (package).
This makes the dataset disappear from all web & API views, apart from
the trash.
You must be authorized to delete the dataset.
---
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
Delete a dataset (package).
This makes the dataset disappear from all web & API views, apart from the trash.
You must be authorized to delete the dataset.
<APIPage document={"./lib/openapi.yml"} operations={[{"path":"package_delete","method":"delete"}]} webhooks={[]} hasHead={false} />

View file

@ -0,0 +1,26 @@
---
title: package_relationship_delete
full: true
_openapi:
method: DELETE
route: package_relationship_delete
toc: []
structuredData:
headings: []
contents:
- content: >
Delete a dataset (package) relationship.
You must be authorised to delete dataset relationships, and to edit
both the subject and the object datasets.
---
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
Delete a dataset (package) relationship.
You must be authorised to delete dataset relationships, and to edit both the subject and the object datasets.
<APIPage document={"./lib/openapi.yml"} operations={[{"path":"package_relationship_delete","method":"delete"}]} webhooks={[]} hasHead={false} />

View file

@ -0,0 +1,24 @@
---
title: resource_delete
full: true
_openapi:
method: DELETE
route: resource_delete
toc: []
structuredData:
headings: []
contents:
- content: |
Delete a resource from a dataset.
You must be a sysadmin or the owner of the resource to delete it.
---
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
Delete a resource from a dataset.
You must be a sysadmin or the owner of the resource to delete it.
<APIPage document={"./lib/openapi.yml"} operations={[{"path":"resource_delete","method":"delete"}]} webhooks={[]} hasHead={false} />

View file

@ -0,0 +1,20 @@
---
title: resource_view_clear
full: true
_openapi:
method: DELETE
route: resource_view_clear
toc: []
structuredData:
headings: []
contents:
- content: |
Delete all resource views, or all of a particular type.
---
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
Delete all resource views, or all of a particular type.
<APIPage document={"./lib/openapi.yml"} operations={[{"path":"resource_view_clear","method":"delete"}]} webhooks={[]} hasHead={false} />

View file

@ -0,0 +1,20 @@
---
title: resource_view_delete
full: true
_openapi:
method: DELETE
route: resource_view_delete
toc: []
structuredData:
headings: []
contents:
- content: |
Delete a resource_view.
---
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
Delete a resource_view.
<APIPage document={"./lib/openapi.yml"} operations={[{"path":"resource_view_delete","method":"delete"}]} webhooks={[]} hasHead={false} />

View file

@ -0,0 +1,24 @@
---
title: tag_delete
full: true
_openapi:
method: DELETE
route: tag_delete
toc: []
structuredData:
headings: []
contents:
- content: |
Delete a tag.
You must be a sysadmin to delete tags.
---
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
Delete a tag.
You must be a sysadmin to delete tags.
<APIPage document={"./lib/openapi.yml"} operations={[{"path":"tag_delete","method":"delete"}]} webhooks={[]} hasHead={false} />

View file

@ -0,0 +1,24 @@
---
title: task_status_delete
full: true
_openapi:
method: DELETE
route: task_status_delete
toc: []
structuredData:
headings: []
contents:
- content: |
Delete a task status.
You must be a sysadmin to delete task statuses.
---
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
Delete a task status.
You must be a sysadmin to delete task statuses.
<APIPage document={"./lib/openapi.yml"} operations={[{"path":"task_status_delete","method":"delete"}]} webhooks={[]} hasHead={false} />

View file

@ -0,0 +1,20 @@
---
title: unfollow_dataset
full: true
_openapi:
method: DELETE
route: unfollow_dataset
toc: []
structuredData:
headings: []
contents:
- content: |
Stop following a dataset.
---
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
Stop following a dataset.
<APIPage document={"./lib/openapi.yml"} operations={[{"path":"unfollow_dataset","method":"delete"}]} webhooks={[]} hasHead={false} />

View file

@ -0,0 +1,20 @@
---
title: unfollow_group
full: true
_openapi:
method: DELETE
route: unfollow_group
toc: []
structuredData:
headings: []
contents:
- content: |
Stop following a group.
---
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
Stop following a group.
<APIPage document={"./lib/openapi.yml"} operations={[{"path":"unfollow_group","method":"delete"}]} webhooks={[]} hasHead={false} />

View file

@ -0,0 +1,20 @@
---
title: unfollow_user
full: true
_openapi:
method: DELETE
route: unfollow_user
toc: []
structuredData:
headings: []
contents:
- content: |
Stop following a user.
---
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
Stop following a user.
<APIPage document={"./lib/openapi.yml"} operations={[{"path":"unfollow_user","method":"delete"}]} webhooks={[]} hasHead={false} />

View file

@ -0,0 +1,24 @@
---
title: user_delete
full: true
_openapi:
method: DELETE
route: user_delete
toc: []
structuredData:
headings: []
contents:
- content: |
Delete a user.
Only sysadmins can delete users.
---
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
Delete a user.
Only sysadmins can delete users.
<APIPage document={"./lib/openapi.yml"} operations={[{"path":"user_delete","method":"delete"}]} webhooks={[]} hasHead={false} />

View file

@ -0,0 +1,24 @@
---
title: vocabulary_delete
full: true
_openapi:
method: DELETE
route: vocabulary_delete
toc: []
structuredData:
headings: []
contents:
- content: |
Delete a tag vocabulary.
You must be a sysadmin to delete vocabularies.
---
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
Delete a tag vocabulary.
You must be a sysadmin to delete vocabularies.
<APIPage document={"./lib/openapi.yml"} operations={[{"path":"vocabulary_delete","method":"delete"}]} webhooks={[]} hasHead={false} />

View file

@ -2212,3 +2212,480 @@ paths:
name:
type: string
description: distinctive name for API Token
user_delete:
delete:
operationId: user_delete
summary: user_delete
description: |
Delete a user.
Only sysadmins can delete users.
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
id:
type: string
# Original docs say "usernamename" which is a typo that should be fixed
description: the id or name of the user to delete
package_delete:
delete:
operationId: package_delete
summary: package_delete
description: |
Delete a dataset (package).
This makes the dataset disappear from all web & API views, apart from the trash.
You must be authorized to delete the dataset.
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
id:
type: string
description: the id or name of the dataset to delete
dataset_purge:
delete:
operationId: dataset_purge
summary: dataset_purge
# Original docs say "Purging a database" which may be a typo for "Purging a dataset"
description: |
Purge a dataset.
<Callout title="Warning!" type="warn">Purging a dataset cannot be undone!</Callout>
Purging a dataset completely removes the dataset from the CKAN database, whereas deleting a dataset simply marks the dataset as deleted (it will no longer show up in the front-end, but is still in the db).
You must be authorized to purge the dataset.
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
id:
type: string
description: the id or name of the dataset to be purged
resource_delete:
delete:
operationId: resource_delete
summary: resource_delete
description: |
Delete a resource from a dataset.
You must be a sysadmin or the owner of the resource to delete it.
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
id:
type: string
description: the id of the resource
resource_view_delete:
delete:
operationId: resource_view_delete
summary: resource_view_delete
description: |
Delete a resource_view.
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
id:
type: string
description: the id of the resource_view
resource_view_clear:
delete:
operationId: resource_view_clear
summary: resource_view_clear
description: |
Delete all resource views, or all of a particular type.
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
view_types:
type: array
description: specific types to delete
items:
type: string
package_relationship_delete:
delete:
operationId: package_relationship_delete
summary: package_relationship_delete
description: |
Delete a dataset (package) relationship.
You must be authorised to delete dataset relationships, and to edit both the subject and the object datasets.
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
subject:
type: string
description: the id or name of the dataset that is the subject of the relationship
object:
type: string
description: the id or name of the dataset that is the object of the relationship
type:
type: string
description: the type of the relationship
member_delete:
delete:
operationId: member_delete
summary: member_delete
description: |
Remove an object (e.g. a user, dataset or group) from a group.
You must be authorized to edit a group to remove objects from it.
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
id:
type: string
description: the id of the group
object:
type: string
description: the id or name of the object to be removed
object_type:
type: string
description: the type of the object to be removed, e.g. `package` or `user`
package_collaborator_delete:
delete:
operationId: package_collaborator_delete
summary: package_collaborator_delete
description: |
Remove a collaborator from a dataset.
Currently you must be an Admin on the dataset owner organization to manage collaborators.
Note: This action requires the collaborators feature to be enabled with the [`ckan.auth.allow_dataset_collaborators`](https://docs.ckan.org/en/2.11/maintaining/configuration.html#ckan-auth-allow-dataset-collaborators) configuration option.
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
id:
type: string
description: the id or name of the dataset
user_id:
type: string
description: the id or name of the user to remove
group_delete:
delete:
operationId: group_delete
summary: group_delete
description: |
Delete a group.
You must be authorized to delete the group.
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
id:
type: string
description: the name or id of the group
organization_delete:
delete:
operationId: organization_delete
summary: organization_delete
description: |
Delete an organization.
You must be authorized to delete the organization and no datasets should belong to the organization unless `'ckan.auth.create_unowned_dataset=True'`
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
id:
type: string
description: the name or id of the organization
group_purge:
delete:
operationId: group_purge
summary: group_purge
# Original docs say "Datasets in the organization will remain", however this should probably say "in the group"
description: |
Purge a group.
<Callout title="Warning!" type="warn">Purging a group cannot be undone!</Callout>
Purging a group completely removes the group from the CKAN database, whereas deleting a group simply marks the group as deleted (it will no longer show up in the frontend, but is still in the db).
Datasets in the group will remain, just not in the purged group.
You must be authorized to purge the group.
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
id:
type: string
description: the name or id of the group to be purged
organization_purge:
delete:
operationId: organization_purge
summary: organization_purge
# Original docs say "any more" when it should be "anymore"
description: |
Purge an organization.
<Callout title="Warning!" type="warn">Purging an organization cannot be undone!</Callout>
Purging an organization completely removes the organization from the CKAN database, whereas deleting a organization simply marks the organization as deleted (it will no longer show up in the frontend, but is still in the db).
Datasets owned by the organization will remain, just not in an organization anymore.
You must be authorized to purge the organization.
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
id:
type: string
description: the name or id of the organization to be purged
task_status_delete:
delete:
operationId: task_status_delete
summary: task_status_delete
description: |
Delete a task status.
You must be a sysadmin to delete task statuses.
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
id:
type: string
description: the id of the task status to delete
vocabulary_delete:
delete:
operationId: vocabulary_delete
summary: vocabulary_delete
description: |
Delete a tag vocabulary.
You must be a sysadmin to delete vocabularies.
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
id:
type: string
description: the id of the vocabulary
tag_delete:
delete:
operationId: tag_delete
summary: tag_delete
description: |
Delete a tag.
You must be a sysadmin to delete tags.
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
id:
type: string
description: the id or name of the tag
vocabulary_id:
type: string
description: "the id or name of the vocabulary that the tag belongs to (default: `None`)"
unfollow_user:
delete:
operationId: unfollow_user
summary: unfollow_user
description: |
Stop following a user.
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
id:
type: string
description: the id or name of the user to stop following
unfollow_dataset:
delete:
operationId: unfollow_dataset
summary: unfollow_dataset
description: |
Stop following a dataset.
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
id:
type: string
description: the id or name of the dataset to stop following
group_member_delete:
delete:
operationId: group_member_delete
summary: group_member_delete
description: |
Remove a user from a group.
You must be authorized to edit the group.
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
id:
type: string
description: the id or name of the group
username:
type: string
description: name or id of the user to be removed
organization_member_delete:
delete:
operationId: organization_member_delete
summary: organization_member_delete
description: |
Remove a user from an organization.
You must be authorized to edit the organization.
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
id:
type: string
description: the id or name of the organization
username:
type: string
description: name or id of the user to be removed
unfollow_group:
delete:
operationId: unfollow_group
summary: unfollow_group
description: |
Stop following a group.
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
id:
type: string
description: the id or name of the group to stop following
job_clear:
delete:
operationId: job_clear
summary: job_clear
description: |
Clear background job queues.
Does not affect jobs that are already being processed.
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
queues:
type: array
description: The queues to clear. If not given then ALL queues are cleared.
items:
type: string
job_cancel:
delete:
operationId: job_cancel
summary: job_cancel
description: |
Cancel a queued background job.
Removes the job from the queue and deletes it.
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
id:
type: string
description: The ID of the background job.
api_token_revoke:
delete:
operationId: api_token_revoke
summary: api_token_revoke
description: |
Delete API Token.
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
token:
type: string
# Original docs don't have a space between remove and (
description: Token to remove (required if `jti` not specified)
jti:
type: string
# Original docs don't capitalize D in ID and don't have space between remove and (
description: ID of the token to remove (overrides `token` if specified)