Skip to content

Commit 8d8bbab

Browse files
committed
## Python SDK Changes:
* `glean.search.query()`: * `request.datasource_instances` **Removed** (Breaking ⚠️) * `response` **Changed** (Breaking ⚠️) * `error` **Changed** * `glean.indexing.documents.debug()`: `response.status[200]` **Changed** (Breaking ⚠️) * `glean.indexing.documents.debug_many()`: `response.status[200]` **Changed** (Breaking ⚠️) * `glean.indexing.documents.debug_events()`: `response.status[200]` **Changed** (Breaking ⚠️) * `glean.indexing.datasource.status()`: `response.status[200]` **Changed** (Breaking ⚠️) * `glean.indexing.people.debug()`: `response.status[200]` **Changed** (Breaking ⚠️) * `glean.client.chat.create_stream()`: * `request.messages[]` **Changed** * `glean.client.collections.create()`: * `request.added_roles[].person.metadata.job_function` **Added** * `response.union(class (0)).collection.added_roles[].person.metadata.job_function` **Added** * `glean.search.list_filters()`: **Added** * `glean.client.agents.import()`: **Added** * `glean.client.tools.get_tool_server_tools()`: **Added** * `glean.agents.search()`: `error.code.enum(tools_unauthorized)` **Added** * `glean.agents.get()`: `error.code.enum(tools_unauthorized)` **Added** * `glean.agents.get_schemas()`: `error.code.enum(tools_unauthorized)` **Added** * `glean.agents.create_run()`: `error` **Changed** * `glean.skills.create()`: `error.code.enum(tools_unauthorized)` **Added** * `glean.skills.list()`: `error.code.enum(tools_unauthorized)` **Added** * `glean.skills.validate()`: `error.code.enum(tools_unauthorized)` **Added** * `glean.skills.retrieve()`: `error.code.enum(tools_unauthorized)` **Added** * `glean.skills.retrieve_content()`: `error.code.enum(tools_unauthorized)` **Added** * `glean.skills.create_version()`: `error.code.enum(tools_unauthorized)` **Added** * `glean.skills.list_versions()`: `error.code.enum(tools_unauthorized)` **Added** * `glean.skills.retrieve_version()`: `error.code.enum(tools_unauthorized)` **Added** * `glean.skills.retrieve_version_content()`: `error.code.enum(tools_unauthorized)` **Added** * `glean.client.activity.feedback()`: * `request.feedback1.manual_feedback_info.issues[]` **Changed** * `glean.client.announcements.create()`: * `request.body.structured_list[].document.metadata.author.metadata.job_function` **Added** * `response.body.structured_list[].document.metadata.author.metadata.job_function` **Added** * `glean.client.announcements.update()`: * `request.body.structured_list[].document.metadata.author.metadata.job_function` **Added** * `response.body.structured_list[].document.metadata.author.metadata.job_function` **Added** * `glean.client.answers.create()`: * `request.data.added_roles[].person.metadata.job_function` **Added** * `response.added_roles[].person.metadata.job_function` **Added** * `glean.client.answers.update()`: * `request.added_roles[].person.metadata.job_function` **Added** * `response.added_roles[].person.metadata.job_function` **Added** * `glean.client.answers.retrieve()`: `response.answer_result.answer.added_roles[].person.metadata.job_function` **Added** * `glean.client.answers.list()`: `response.answer_results[].answer.added_roles[].person.metadata.job_function` **Added** * `glean.client.chat.create()`: * `request.messages[]` **Changed** * `response.messages[]` **Changed** * `glean.client.chat.retrieve()`: * `response.chat_result.chat` **Changed** * `error.status[403]` **Added** * `glean.client.chat.list()`: `response.chat_results[].chat.created_by.metadata.job_function` **Added** * `glean.skills.preview_source()`: **Added** * `glean.client.agents.create()`: `response.workflow.author.metadata.job_function` **Added** * `glean.skills.update()`: **Added** * `glean.client.agents.run_stream()`: `error` **Changed** * `glean.client.documents.retrieve_by_facets()`: `response.documents[].metadata.author.metadata.job_function` **Added** * `glean.client.agents.run()`: `error.status[422]` **Added** * `glean.client.collections.delete_item()`: `response.collection.added_roles[].person.metadata.job_function` **Added** * `glean.client.collections.update()`: * `request.added_roles[].person.metadata.job_function` **Added** * `response.added_roles[].person.metadata.job_function` **Added** * `glean.client.collections.update_item()`: `response.collection.added_roles[].person.metadata.job_function` **Added** * `glean.client.collections.retrieve()`: `response.collection.added_roles[].person.metadata.job_function` **Added** * `glean.client.collections.list()`: `response.collections[].added_roles[].person.metadata.job_function` **Added** * `glean.client.documents.retrieve()`: `response.documents.Map<DocumentOrError>.union(Document).metadata.author.metadata.job_function` **Added** * `glean.client.collections.add_items()`: `response.collection.added_roles[].person.metadata.job_function` **Added** * `glean.client.insights.retrieve()`: `response.glean_assist.activity_insights[].user.metadata.job_function` **Added** * `glean.client.messages.retrieve()`: `response.search_response.results[].structured_results[].document.metadata.author.metadata.job_function` **Added** * `glean.client.pins.update()`: `response.attribution.metadata.job_function` **Added** * `glean.client.pins.retrieve()`: `response.pin.attribution.metadata.job_function` **Added** * `glean.client.pins.list()`: `response.pins[].attribution.metadata.job_function` **Added** * `glean.client.pins.create()`: `response.attribution.metadata.job_function` **Added** * `glean.client.search.query_as_admin()`: * `request.source_document.metadata.author.metadata.job_function` **Added** * `response.results[].structured_results[].document.metadata.author.metadata.job_function` **Added** * `glean.client.search.autocomplete()`: `response.results[].document.metadata.author.metadata.job_function` **Added** * `glean.client.search.retrieve_feed()`: * `request.categories[].enum(meeting_prep_automation)` **Added** * `response.results[]` **Changed** * `glean.client.search.recommendations()`: * `request.source_document.metadata.author.metadata.job_function` **Added** * `response.results[].structured_results[].document.metadata.author.metadata.job_function` **Added** * `glean.client.search.query()`: * `request.source_document.metadata.author.metadata.job_function` **Added** * `response.results[].structured_results[].document.metadata.author.metadata.job_function` **Added** * `glean.client.entities.list()`: `response.results[].metadata.job_function` **Added** * `glean.client.entities.read_people()`: `response.results[].metadata.job_function` **Added** * `glean.client.shortcuts.create()`: * `request.data.added_roles[].person.metadata.job_function` **Added** * `response.shortcut.added_roles[].person.metadata.job_function` **Added** * `glean.client.shortcuts.retrieve()`: `response.shortcut.added_roles[].person.metadata.job_function` **Added** * `glean.client.shortcuts.list()`: `response.shortcuts[].added_roles[].person.metadata.job_function` **Added** * `glean.chat.create()`: **Added** * `glean.client.shortcuts.update()`: * `request.added_roles[].person.metadata.job_function` **Added** * `response.shortcut.added_roles[].person.metadata.job_function` **Added** * `glean.client.verification.add_reminder()`: `response.metadata.last_verifier.metadata.job_function` **Added** * `glean.client.verification.list()`: `response.documents[].metadata.last_verifier.metadata.job_function` **Added** * `glean.client.verification.verify()`: `response.metadata.last_verifier.metadata.job_function` **Added** * `glean.indexing.datasources.add()`: `request` **Changed** * `glean.indexing.datasources.retrieve_config()`: `response` **Changed**
1 parent 5aaa028 commit 8d8bbab

252 files changed

Lines changed: 11055 additions & 625 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.speakeasy/gen.lock

Lines changed: 912 additions & 188 deletions
Large diffs are not rendered by default.

.speakeasy/gen.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ generation:
3434
generateNewTests: true
3535
skipResponseBodyAssertions: true
3636
python:
37-
version: 0.15.4
37+
version: 0.15.5
3838
additionalDependencies:
3939
dev: {}
4040
main: {}

.speakeasy/glean-merged-spec.yaml

Lines changed: 1179 additions & 79 deletions
Large diffs are not rendered by default.

.speakeasy/tests.arazzo.yaml

Lines changed: 204 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -158821,7 +158821,7 @@ workflows:
158821158821
- condition: $response.header.Content-Type == application/json
158822158822
- context: $response.body
158823158823
condition: |
158824-
{"results":[],"has_more":false,"next_cursor":"<value>","request_id":"<id>"}
158824+
{"results":[],"has_more":false,"next_cursor":"<value>","request_id":"<id>","warnings":[]}
158825158825
type: simple
158826158826
x-speakeasy-test-group: search
158827158827
x-speakeasy-test-rebuild: true
@@ -159048,3 +159048,206 @@ workflows:
159048159048
type: simple
159049159049
x-speakeasy-test-group: indexing_datasources
159050159050
x-speakeasy-test-rebuild: true
159051+
- workflowId: platform-chat-create
159052+
steps:
159053+
- stepId: test
159054+
operationId: platform-chat-create
159055+
requestBody:
159056+
contentType: application/json
159057+
payload:
159058+
input: <value>
159059+
store: true
159060+
stream: false
159061+
successCriteria:
159062+
- condition: $statusCode == 200
159063+
- condition: $response.header.Content-Type == application/json
159064+
- context: $response.body
159065+
condition: |
159066+
{"id":"<id>","object":"response","created_at":"2026-05-19T05:32:52.505Z","status":"completed","output":[{"type":"message","role":"assistant","content":[{"type":"output_text","text":"<value>"}]}],"store":false,"request_id":"<id>"}
159067+
type: simple
159068+
x-speakeasy-test-group: chat_SDK
159069+
x-speakeasy-test-rebuild: true
159070+
- workflowId: platform-skills-preview-source
159071+
steps:
159072+
- stepId: test
159073+
operationId: platform-skills-preview-source
159074+
requestBody:
159075+
contentType: application/json
159076+
payload:
159077+
source_url: https://ugly-information.name/
159078+
stream: false
159079+
successCriteria:
159080+
- condition: $statusCode == 200
159081+
- condition: $response.header.Content-Type == application/json
159082+
- context: $response.body
159083+
condition: |
159084+
{"skills":[],"failures":[{"source_url":"https://slimy-availability.org","code":"SKILL_FETCH_FAILED","detail":"<value>"}],"request_id":"<id>"}
159085+
type: simple
159086+
x-speakeasy-test-group: skills
159087+
x-speakeasy-test-rebuild: true
159088+
- workflowId: platform-skills-update
159089+
steps:
159090+
- stepId: test
159091+
operationId: platform-skills-update
159092+
parameters:
159093+
- name: skill_id
159094+
in: path
159095+
value: <id>
159096+
requestBody:
159097+
contentType: application/json
159098+
payload:
159099+
status: DISABLED
159100+
successCriteria:
159101+
- condition: $statusCode == 200
159102+
- condition: $response.header.Content-Type == application/json
159103+
- context: $response.body
159104+
condition: |
159105+
{"skill":{"id":"<id>","display_name":"Afton14","description":"taut netsuke duh sonata boastfully elegantly management come","latest_version":425795,"latest_minor_version":741364,"status":"DISABLED","origin":"CUSTOM","owner":{"name":"<value>"},"created_at":"2024-12-20T01:31:39.364Z","updated_at":"2025-12-04T02:59:37.124Z"},"request_id":"<id>"}
159106+
type: simple
159107+
x-speakeasy-test-group: skills
159108+
x-speakeasy-test-rebuild: true
159109+
- workflowId: platform-search-filters
159110+
steps:
159111+
- stepId: test
159112+
operationId: platform-search-filters
159113+
successCriteria:
159114+
- condition: $statusCode == 200
159115+
- condition: $response.header.Content-Type == application/json
159116+
- context: $response.body
159117+
condition: |
159118+
{"datasources":[],"request_id":"<id>"}
159119+
type: simple
159120+
x-speakeasy-test-group: search
159121+
x-speakeasy-test-rebuild: true
159122+
- workflowId: importAgent
159123+
steps:
159124+
- stepId: test
159125+
operationId: importAgent
159126+
parameters:
159127+
- name: agent_id
159128+
in: path
159129+
value: <id>
159130+
requestBody:
159131+
contentType: multipart/form-data
159132+
payload:
159133+
bundle: 'x-file: example.file'
159134+
successCriteria:
159135+
- condition: $statusCode == 200
159136+
- condition: $response.header.Content-Type == application/json
159137+
- context: $response.body
159138+
condition: |
159139+
{"workflowResult":{"workflow":{"author":{"name":"George Clooney","obfuscatedId":"abc123"},"lastDraftSavedBy":{"name":"George Clooney","obfuscatedId":"abc123"},"lastUpdatedBy":{"name":"George Clooney","obfuscatedId":"abc123"}}}}
159140+
type: simple
159141+
x-speakeasy-test-group: client_agents
159142+
x-speakeasy-test-rebuild: true
159143+
- workflowId: getToolServerTools
159144+
steps:
159145+
- stepId: test
159146+
operationId: getToolServerTools
159147+
parameters:
159148+
- name: serverId
159149+
in: path
159150+
value: <id>
159151+
- name: toolNames
159152+
in: query
159153+
value:
159154+
- <value 1>
159155+
- <value 2>
159156+
- <value 3>
159157+
successCriteria:
159158+
- condition: $statusCode == 200
159159+
- condition: $response.header.Content-Type == application/json
159160+
- context: $response.body
159161+
condition: |
159162+
{"tools":[{"serverId":"<id>","name":"<value>"}]}
159163+
type: simple
159164+
x-speakeasy-test-group: tools
159165+
x-speakeasy-test-rebuild: true
159166+
- workflowId: post_/api/index/v1/debug/{datasource}/document
159167+
steps:
159168+
- stepId: test
159169+
operationId: post_/api/index/v1/debug/{datasource}/document
159170+
parameters:
159171+
- name: datasource
159172+
in: path
159173+
value: <value>
159174+
requestBody:
159175+
contentType: application/json
159176+
payload:
159177+
docId: art123
159178+
objectType: Article
159179+
successCriteria:
159180+
- condition: $statusCode == 200
159181+
- condition: $response.header.Content-Type == application/json
159182+
- context: $response.body
159183+
condition: |
159184+
{"status":{"uploadStatus":"UPLOADED","lastUploadedAt":"2021-08-06T17:58:01.000Z","indexingStatus":"INDEXED","lastIndexedAt":"2021-08-06T17:58:01.000Z","permissionIdentityStatus":"UPLOADED"}}
159185+
type: simple
159186+
x-speakeasy-test-group: indexing_documents
159187+
x-speakeasy-test-rebuild: true
159188+
- workflowId: post_/api/index/v1/debug/{datasource}/documents
159189+
steps:
159190+
- stepId: test
159191+
operationId: post_/api/index/v1/debug/{datasource}/documents
159192+
parameters:
159193+
- name: datasource
159194+
in: path
159195+
value: <value>
159196+
requestBody:
159197+
contentType: application/json
159198+
payload:
159199+
debugDocuments: []
159200+
successCriteria:
159201+
- condition: $statusCode == 200
159202+
- condition: $response.header.Content-Type == application/json
159203+
- context: $response.body
159204+
condition: |
159205+
{"documentStatuses":[{"debugInfo":{"status":{"uploadStatus":"UPLOADED","lastUploadedAt":"2021-08-06T17:58:01.000Z","indexingStatus":"INDEXED","lastIndexedAt":"2021-08-06T17:58:01.000Z","permissionIdentityStatus":"UPLOADED"}}}]}
159206+
type: simple
159207+
x-speakeasy-test-group: indexing_documents
159208+
x-speakeasy-test-rebuild: true
159209+
- workflowId: post_/api/index/v1/debug/{datasource}/document/events
159210+
steps:
159211+
- stepId: test
159212+
operationId: post_/api/index/v1/debug/{datasource}/document/events
159213+
parameters:
159214+
- name: datasource
159215+
in: path
159216+
value: <value>
159217+
requestBody:
159218+
contentType: application/json
159219+
payload:
159220+
docId: art123
159221+
maxEvents: 50
159222+
objectType: Article
159223+
startDate: "2025-05-01"
159224+
successCriteria:
159225+
- condition: $statusCode == 200
159226+
- condition: $response.header.Content-Type == application/json
159227+
- context: $response.body
159228+
condition: |
159229+
{"lifeCycleEvents":[{"event":"INDEXED","timestamp":"2021-08-06T17:58:01.000Z"}]}
159230+
type: simple
159231+
x-speakeasy-test-group: indexing_documents
159232+
x-speakeasy-test-rebuild: true
159233+
- workflowId: post_/api/index/v1/debug/{datasource}/user
159234+
steps:
159235+
- stepId: test
159236+
operationId: post_/api/index/v1/debug/{datasource}/user
159237+
parameters:
159238+
- name: datasource
159239+
in: path
159240+
value: <value>
159241+
requestBody:
159242+
contentType: application/json
159243+
payload:
159244+
email: u1@foo.com
159245+
successCriteria:
159246+
- condition: $statusCode == 200
159247+
- condition: $response.header.Content-Type == application/json
159248+
- context: $response.body
159249+
condition: |
159250+
{"status":{"isActiveUser":true,"uploadStatus":"UPLOADED","lastUploadedAt":"2021-08-06T17:58:01.000Z"}}
159251+
type: simple
159252+
x-speakeasy-test-group: people
159253+
x-speakeasy-test-rebuild: true

.speakeasy/workflow.lock

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
speakeasyVersion: 1.790.3
1+
speakeasyVersion: 1.791.4
22
sources:
33
Glean API:
44
sourceNamespace: glean-api-specs
5-
sourceRevisionDigest: sha256:bb3bada7cfd1fef35eb00e096010fcd9238a6dde135ee387c782bba65dfa45fb
6-
sourceBlobDigest: sha256:5552ea5e20187c775de44c60abbd112a31cf189b9486aafe2e303b5f71e76f0b
5+
sourceRevisionDigest: sha256:4d19dfbc7913eabdd15138c6c4b9df5a80cd7eb3460ae2ff1af4cc065e76d9ef
6+
sourceBlobDigest: sha256:721b9be4d93803929f0102ff8df294cbd094661ebeb8f464b5ec341365b76f74
77
tags:
88
- latest
99
Glean Client API:
@@ -16,10 +16,10 @@ targets:
1616
glean:
1717
source: Glean API
1818
sourceNamespace: glean-api-specs
19-
sourceRevisionDigest: sha256:bb3bada7cfd1fef35eb00e096010fcd9238a6dde135ee387c782bba65dfa45fb
20-
sourceBlobDigest: sha256:5552ea5e20187c775de44c60abbd112a31cf189b9486aafe2e303b5f71e76f0b
19+
sourceRevisionDigest: sha256:4d19dfbc7913eabdd15138c6c4b9df5a80cd7eb3460ae2ff1af4cc065e76d9ef
20+
sourceBlobDigest: sha256:721b9be4d93803929f0102ff8df294cbd094661ebeb8f464b5ec341365b76f74
2121
codeSamplesNamespace: glean-api-specs-python-code-samples
22-
codeSamplesRevisionDigest: sha256:943570f36dd3410a28a56036049c09ace110d13bee2075f5f335acc143463cee
22+
codeSamplesRevisionDigest: sha256:e5d1d9766ec89745925c3dbe5efd7b9f446bfe3737efa2332f5fd6931c986f28
2323
workflow:
2424
workflowVersion: 1.0.0
2525
speakeasyVersion: latest

README.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -321,6 +321,10 @@ For more information on obtaining the appropriate token type, please contact you
321321
* [get_schemas](docs/sdks/agents/README.md#get_schemas) - Get agent schemas
322322
* [create_run](docs/sdks/agents/README.md#create_run) - Create agent run
323323

324+
### [Chat](docs/sdks/chatsdk/README.md)
325+
326+
* [create](docs/sdks/chatsdk/README.md#create) - Create a chat response
327+
324328
### [Client.Activity](docs/sdks/clientactivity/README.md)
325329

326330
* [report](docs/sdks/clientactivity/README.md#report) - Report document activity
@@ -332,6 +336,7 @@ For more information on obtaining the appropriate token type, please contact you
332336
* [retrieve](docs/sdks/clientagents/README.md#retrieve) - Retrieve an agent
333337
* [update](docs/sdks/clientagents/README.md#update) - Edit an agent
334338
* [retrieve_schemas](docs/sdks/clientagents/README.md#retrieve_schemas) - List an agent's schemas
339+
* [import_](docs/sdks/clientagents/README.md#import_) - Import an agent
335340
* [list](docs/sdks/clientagents/README.md#list) - Search agents
336341
* [run_stream](docs/sdks/clientagents/README.md#run_stream) - Create an agent run and stream the response
337342
* [run](docs/sdks/clientagents/README.md#run) - Create an agent run and wait for the response
@@ -466,6 +471,7 @@ For more information on obtaining the appropriate token type, please contact you
466471
* [authorize_action_pack](docs/sdks/tools/README.md#authorize_action_pack) - Start the OAuth authorization flow for an action pack.
467472
* [retrieve_tool_server_auth_status](docs/sdks/tools/README.md#retrieve_tool_server_auth_status) - Get end-user authentication status for a tool server.
468473
* [authorize_tool_server](docs/sdks/tools/README.md#authorize_tool_server) - Start the OAuth authorization flow for a tool server.
474+
* [get_tool_server_tools](docs/sdks/tools/README.md#get_tool_server_tools) - Get tool definitions from a tool server.
469475

470476
### [Client.Verification](docs/sdks/clientverification/README.md)
471477

@@ -549,12 +555,15 @@ For more information on obtaining the appropriate token type, please contact you
549555
### [Search](docs/sdks/search/README.md)
550556

551557
* [query](docs/sdks/search/README.md#query) - Search
558+
* [list_filters](docs/sdks/search/README.md#list_filters) - List search filters
552559

553560
### [Skills](docs/sdks/skills/README.md)
554561

555562
* [create](docs/sdks/skills/README.md#create) - Create skill
556563
* [list](docs/sdks/skills/README.md#list) - List skills
557564
* [validate](docs/sdks/skills/README.md#validate) - Validate skill bundle
565+
* [preview_source](docs/sdks/skills/README.md#preview_source) - Preview a GitHub skill source
566+
* [update](docs/sdks/skills/README.md#update) - Update skill
558567
* [retrieve](docs/sdks/skills/README.md#retrieve) - Retrieve skill
559568
* [retrieve_content](docs/sdks/skills/README.md#retrieve_content) - Download skill content
560569
* [create_version](docs/sdks/skills/README.md#create_version) - Create skill version

RELEASES.md

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -808,4 +808,14 @@ Based on:
808808
### Generated
809809
- [python v0.15.4] .
810810
### Releases
811-
- [PyPI v0.15.4] https://pypi.org/project/glean-api-client/0.15.4 - .
811+
- [PyPI v0.15.4] https://pypi.org/project/glean-api-client/0.15.4 - .
812+
813+
## 2026-08-06 02:36:25
814+
### Changes
815+
Based on:
816+
- OpenAPI Doc
817+
- Speakeasy CLI 1.791.4 (2.926.8) https://github.com/speakeasy-api/speakeasy
818+
### Generated
819+
- [python v0.15.5] .
820+
### Releases
821+
- [PyPI v0.15.5] https://pypi.org/project/glean-api-client/0.15.5 - .
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# AccessRequestPermissionDeniedResponseError
2+
3+
4+
## Fields
5+
6+
| Field | Type | Required | Description | Example |
7+
| -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- |
8+
| `error_type` | [models.AccessRequestPermissionDeniedResponseErrorType](../models/accessrequestpermissiondeniedresponseerrortype.md) | :heavy_check_mark: | N/A | |
9+
| `created_by` | [models.Person](../models/person.md) | :heavy_check_mark: | N/A | {<br/>"name": "George Clooney",<br/>"obfuscatedId": "abc123"<br/>} |
10+
| `requestable_roles` | List[[models.UserRole](../models/userrole.md)] | :heavy_check_mark: | N/A | |
11+
| `has_pending_request` | *bool* | :heavy_check_mark: | N/A | |

0 commit comments

Comments
 (0)