Skip to content

Commit a0fb214

Browse files
committed
## Python SDK Changes:
* `glean.client.chat.create()`: * `request.messages[].citations[].source_document.metadata.author.related_documents[].results[].structured_results[].custom_entity.roles[].group.type.enum(collection_audience)` **Added** * `response` **Changed** (Breaking ⚠️) * `glean.client.pins.update()`: `response.attribution.related_documents[].query_suggestion.ranges[].document.metadata.collections[].added_roles[].group.type.enum(collection_audience)` **Added** * `glean.client.announcements.update()`: * `request.body.structured_list[].document.metadata.author.related_documents[].results[].structured_results[].custom_entity.roles[].group.type.enum(collection_audience)` **Added** * `response.body.structured_list[].document.metadata.author.related_documents[].results[].structured_results[].custom_entity.roles[].group.type.enum(collection_audience)` **Added** * `glean.client.answers.create()`: * `request.data.added_roles[].group.type.enum(collection_audience)` **Added** * `response.added_roles[].group.type.enum(collection_audience)` **Added** * `glean.client.answers.update()`: * `request.added_roles[].group.type.enum(collection_audience)` **Added** * `response.added_roles[].group.type.enum(collection_audience)` **Added** * `glean.client.answers.retrieve()`: `response.answer_result.answer.added_roles[].group.type.enum(collection_audience)` **Added** * `glean.client.answers.list()`: `response.answer_results[].answer.added_roles[].group.type.enum(collection_audience)` **Added** * `glean.client.announcements.create()`: * `request.body.structured_list[].document.metadata.author.related_documents[].results[].structured_results[].custom_entity.roles[].group.type.enum(collection_audience)` **Added** * `response.body.structured_list[].document.metadata.author.related_documents[].results[].structured_results[].custom_entity.roles[].group.type.enum(collection_audience)` **Added** * `glean.client.chat.retrieve()`: `response.chat_result.chat.created_by.related_documents[].query_suggestion.ranges[].document.metadata.collections[].added_roles[].group.type.enum(collection_audience)` **Added** * `glean.client.chat.list()`: `response.chat_results[].chat.created_by.related_documents[].query_suggestion.ranges[].document.metadata.collections[].added_roles[].group.type.enum(collection_audience)` **Added** * `glean.client.chat.create_stream()`: * `request.messages[].citations[].source_document.metadata.author.related_documents[].results[].structured_results[].custom_entity.roles[].group.type.enum(collection_audience)` **Added** * `glean.client.collections.add_items()`: `response.collection.added_roles[].group.type.enum(collection_audience)` **Added** * `glean.client.collections.create()`: * `request.added_roles[].group.type.enum(collection_audience)` **Added** * `response.union(class (0)).collection.added_roles[].group.type.enum(collection_audience)` **Added** * `glean.client.collections.delete_item()`: `response.collection.added_roles[].group.type.enum(collection_audience)` **Added** * `glean.client.collections.update()`: * `request.added_roles[].group.type.enum(collection_audience)` **Added** * `response.added_roles[].group.type.enum(collection_audience)` **Added** * `glean.client.collections.update_item()`: `response.collection.added_roles[].group.type.enum(collection_audience)` **Added** * `glean.client.collections.retrieve()`: `response.collection.added_roles[].group.type.enum(collection_audience)` **Added** * `glean.client.collections.list()`: `response.collections[].added_roles[].group.type.enum(collection_audience)` **Added** * `glean.client.documents.retrieve()`: `response.documents.Map<DocumentOrError>.union(Document).metadata.author.related_documents[].results[].structured_results[].custom_entity.roles[].group.type.enum(collection_audience)` **Added** * `glean.client.documents.retrieve_by_facets()`: `response.documents[].metadata.author.related_documents[].results[].structured_results[].custom_entity.roles[].group.type.enum(collection_audience)` **Added** * `glean.client.insights.retrieve()`: `response.glean_assist.activity_insights[].user.related_documents[].query_suggestion.ranges[].document.metadata.collections[].added_roles[].group.type.enum(collection_audience)` **Added** * `glean.client.pins.retrieve()`: `response.pin.attribution.related_documents[].query_suggestion.ranges[].document.metadata.collections[].added_roles[].group.type.enum(collection_audience)` **Added** * `glean.client.messages.retrieve()`: `response.search_response.results[].structured_results[].document.metadata.collections[].added_roles[].group.type.enum(collection_audience)` **Added** * `glean.agents.create_agent()`: **Added** * `glean.client.pins.list()`: `response.pins[].attribution.related_documents[].query_suggestion.ranges[].document.metadata.collections[].added_roles[].group.type.enum(collection_audience)` **Added** * `glean.client.pins.create()`: `response.attribution.related_documents[].query_suggestion.ranges[].document.metadata.collections[].added_roles[].group.type.enum(collection_audience)` **Added** * `glean.client.search.query_as_admin()`: * `request.source_document.metadata.author.related_documents[].results[].structured_results[].custom_entity.roles[].group.type.enum(collection_audience)` **Added** * `response.results[].structured_results[].document.metadata.collections[].added_roles[].group.type.enum(collection_audience)` **Added** * `glean.client.search.autocomplete()`: `response.results[].document.metadata.author.related_documents[].results[].structured_results[].custom_entity.roles[].group.type.enum(collection_audience)` **Added** * `glean.client.search.retrieve_feed()`: `response.results[]` **Changed** * `glean.client.search.recommendations()`: * `request.source_document.metadata.author.related_documents[].results[].structured_results[].custom_entity.roles[].group.type.enum(collection_audience)` **Added** * `response.results[].structured_results[].document.metadata.collections[].added_roles[].group.type.enum(collection_audience)` **Added** * `glean.client.search.query()`: * `request.source_document.metadata.author.related_documents[].results[].structured_results[].custom_entity.roles[].group.type.enum(collection_audience)` **Added** * `response.results[].structured_results[].document.metadata.collections[].added_roles[].group.type.enum(collection_audience)` **Added** * `glean.client.entities.list()`: `response.results[].related_documents[].query_suggestion.ranges[].document.metadata.collections[].added_roles[].group.type.enum(collection_audience)` **Added** * `glean.client.entities.read_people()`: `response.results[].related_documents[].query_suggestion.ranges[].document.metadata.collections[].added_roles[].group.type.enum(collection_audience)` **Added** * `glean.client.shortcuts.create()`: * `request.data.added_roles[].group.type.enum(collection_audience)` **Added** * `response.shortcut.added_roles[].group.type.enum(collection_audience)` **Added** * `glean.client.shortcuts.retrieve()`: `response.shortcut.added_roles[].group.type.enum(collection_audience)` **Added** * `glean.client.shortcuts.list()`: `response.shortcuts[].added_roles[].group.type.enum(collection_audience)` **Added** * `glean.client.shortcuts.update()`: * `request.added_roles[].group.type.enum(collection_audience)` **Added** * `response.shortcut.added_roles[].group.type.enum(collection_audience)` **Added** * `glean.client.verification.add_reminder()`: `response.metadata.last_verifier.related_documents[].query_suggestion.ranges[].document.metadata.collections[].added_roles[].group.type.enum(collection_audience)` **Added** * `glean.client.verification.list()`: `response.documents[].metadata.last_verifier.related_documents[].query_suggestion.ranges[].document.metadata.collections[].added_roles[].group.type.enum(collection_audience)` **Added** * `glean.client.verification.verify()`: `response.metadata.last_verifier.related_documents[].query_suggestion.ranges[].document.metadata.collections[].added_roles[].group.type.enum(collection_audience)` **Added** * `glean.client.governance.data.policies.retrieve()`: `response.report.config.allowlist_options.regexes` **Added** * `glean.client.governance.data.policies.update()`: * `request.config.allowlist_options.regexes` **Added** * `glean.client.governance.data.policies.list()`: `response.reports[].config.allowlist_options.regexes` **Added** * `glean.client.governance.data.policies.create()`: * `request.config.allowlist_options.regexes` **Added** * `response.report.config.allowlist_options.regexes` **Added** * `glean.client.governance.data.reports.create()`: * `request.config.allowlist_options.regexes` **Added**
1 parent 8411597 commit a0fb214

61 files changed

Lines changed: 1653 additions & 625 deletions

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: 146 additions & 106 deletions
Large diffs are not rendered by default.

.speakeasy/gen.yaml

Lines changed: 5 additions & 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.13.0
37+
version: 0.13.1
3838
additionalDependencies:
3939
dev: {}
4040
main: {}
@@ -54,6 +54,9 @@ python:
5454
enableCustomCodeRegions: false
5555
enumFormat: enum
5656
envVarPrefix: GLEAN
57+
eventStreamClassNames:
58+
async: EventStreamAsync
59+
sync: EventStream
5760
fixFlags:
5861
asyncPaginationSep2025: false
5962
conflictResistantModelImportsFeb2026: false
@@ -73,6 +76,7 @@ python:
7376
webhooks: ""
7477
inferUnionDiscriminators: true
7578
inputModelSuffix: input
79+
inputTypedDictSuffix: TypedDict
7680
legacyPyright: true
7781
license: ""
7882
maxMethodParams: 999

.speakeasy/glean-merged-spec.yaml

Lines changed: 144 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ openapi: 3.0.0
22
info:
33
version: 0.9.0
44
title: Glean API
5-
x-source-commit-sha: deacbe1e0fd0b5074c1b1445f05b4a5df529f487
5+
x-source-commit-sha: ecd165626f8ae7c16c4080a5fffda47dedf7fc79
66
description: |
77
# Introduction
88
In addition to the data sources that Glean has built-in support for, Glean also provides a REST API that enables customers to put arbitrary content in the search index. This is useful, for example, for doing permissions-aware search over content in internal tools that reside on-prem as well as for searching over applications that Glean does not currently support first class. In addition these APIs allow the customer to push organization data (people info, organization structure etc) into Glean.
@@ -22,7 +22,7 @@ info:
2222
These API clients provide type-safe, idiomatic interfaces for working with Glean IndexingAPIs in your language of choice.
2323
x-logo:
2424
url: https://app.glean.com/images/glean-text2.svg
25-
x-open-api-commit-sha: 7de1c5956c93a8bdd7b4a2c6a4c6fd98b0c4df70
25+
x-open-api-commit-sha: dee7b81a7c82d053efac049637cc22aa92bd1b35
2626
x-speakeasy-name: 'Glean API'
2727
servers:
2828
- url: https://{instance}-be.glean.com
@@ -569,6 +569,23 @@ paths:
569569
startIndex: 0
570570
endIndex: 12
571571
type: CITATION
572+
"202":
573+
description: |
574+
Request accepted but not yet processed. Returned when another
575+
in-flight request is already running for the same chat session;
576+
the body's `queuedRequestId` identifies the deferred run and
577+
output will be persisted to the chat session referenced by
578+
`chatId`.
579+
content:
580+
application/json:
581+
schema:
582+
$ref: "#/components/schemas/ChatResponse"
583+
examples:
584+
queuedExample:
585+
value:
586+
chatId: abc123
587+
queuedRequestId: qr-xyz
588+
isSavedToChatHistory: true
572589
"400":
573590
description: Invalid request
574591
"401":
@@ -893,6 +910,40 @@ paths:
893910
description: Internal server error.
894911
security:
895912
- APIToken: []
913+
/rest/api/v1/agents:
914+
post:
915+
tags:
916+
- Agents
917+
summary: Create an agent
918+
description: Create an agent.
919+
operationId: createAgent
920+
x-visibility: Preview
921+
parameters:
922+
- $ref: "#/components/parameters/locale"
923+
- $ref: "#/components/parameters/timezoneOffset"
924+
requestBody:
925+
required: true
926+
content:
927+
application/json:
928+
schema:
929+
$ref: "#/components/schemas/CreateWorkflowRequest"
930+
responses:
931+
"200":
932+
description: Success
933+
content:
934+
application/json:
935+
schema:
936+
$ref: "#/components/schemas/CreateWorkflowResponse"
937+
"400":
938+
description: Bad request
939+
"401":
940+
description: Not Authorized
941+
"403":
942+
description: Forbidden
943+
"500":
944+
description: Internal server error
945+
security:
946+
- APIToken: []
896947
/rest/api/v1/agents/{agent_id}:
897948
get:
898949
tags:
@@ -6002,6 +6053,8 @@ components:
60026053
GroupType:
60036054
type: string
60046055
description: The type of user group
6056+
x-enumDescriptions:
6057+
COLLECTION_AUDIENCE: Refers to any viewers of the Collection.
60056058
enum:
60066059
- DEPARTMENT
60076060
- ALL
@@ -6011,6 +6064,9 @@ components:
60116064
- LOCATION
60126065
- REGION
60136066
- EXTERNAL_GROUP
6067+
- COLLECTION_AUDIENCE
6068+
x-speakeasy-enum-descriptions:
6069+
COLLECTION_AUDIENCE: Refers to any viewers of the Collection.
60146070
Group:
60156071
required:
60166072
- type
@@ -8973,6 +9029,80 @@ components:
89739029
items:
89749030
type: string
89759031
description: IDs of files to delete.
9032+
WorkflowDraftableProperties:
9033+
properties:
9034+
name:
9035+
type: string
9036+
description: The name of the workflow.
9037+
WorkflowMutableProperties:
9038+
type: object
9039+
allOf:
9040+
- $ref: "#/components/schemas/WorkflowDraftableProperties"
9041+
- type: object
9042+
CreateWorkflowRequest:
9043+
allOf:
9044+
- $ref: "#/components/schemas/WorkflowMutableProperties"
9045+
- type: object
9046+
properties:
9047+
transient:
9048+
type: boolean
9049+
description: Used to create a transient workflow.
9050+
parentWorkflowId:
9051+
type: string
9052+
description: id of the parent workflow for transient workflows
9053+
WorkflowMetadata:
9054+
allOf:
9055+
- type: object
9056+
properties:
9057+
author:
9058+
$ref: "#/components/schemas/Person"
9059+
createTimestamp:
9060+
type: integer
9061+
description: Server Unix timestamp of the creation time.
9062+
lastUpdateTimestamp:
9063+
type: integer
9064+
description: Server Unix timestamp of the last update time.
9065+
lastDraftSavedAt:
9066+
type: integer
9067+
description: Server Unix timestamp of the last time the draft was saved.
9068+
lastDraftSavedBy:
9069+
description: The person who last saved the draft.
9070+
$ref: "#/components/schemas/Person"
9071+
lastDraftGitAuthorId:
9072+
type: string
9073+
description: ID of the VCS user (e.g. GitHub username) who last saved the draft. Set only by the draft save path via the external Git integration API.
9074+
lastUpdatedBy:
9075+
$ref: "#/components/schemas/Person"
9076+
AttributionProperties: {}
9077+
Workflow:
9078+
allOf:
9079+
- $ref: "#/components/schemas/PermissionedObject"
9080+
- $ref: "#/components/schemas/WorkflowMutableProperties"
9081+
- $ref: "#/components/schemas/WorkflowMetadata"
9082+
- $ref: "#/components/schemas/AttributionProperties"
9083+
- type: object
9084+
properties:
9085+
id:
9086+
type: string
9087+
description: The ID of the workflow.
9088+
verified:
9089+
type: boolean
9090+
readOnly: true
9091+
description: When present, indicates this workflow is admin-verified. Set via the dedicated admin settings endpoint, not by regular edits.
9092+
showOrganizationAsAuthor:
9093+
type: boolean
9094+
readOnly: true
9095+
description: When true, displays organization name instead of author name in agent card. Set via the dedicated admin settings endpoint, not by regular edits.
9096+
WorkflowResult:
9097+
type: object
9098+
required:
9099+
- workflow
9100+
properties:
9101+
workflow:
9102+
$ref: "#/components/schemas/Workflow"
9103+
CreateWorkflowResponse:
9104+
allOf:
9105+
- $ref: "#/components/schemas/WorkflowResult"
89769106
Agent:
89779107
title: Agent
89789108
type: object
@@ -9025,16 +9155,6 @@ components:
90259155
message:
90269156
type: string
90279157
description: Client-facing error message describing what went wrong
9028-
WorkflowDraftableProperties:
9029-
properties:
9030-
name:
9031-
type: string
9032-
description: The name of the workflow.
9033-
WorkflowMutableProperties:
9034-
type: object
9035-
allOf:
9036-
- $ref: "#/components/schemas/WorkflowDraftableProperties"
9037-
- type: object
90389158
EditWorkflowRequest:
90399159
allOf:
90409160
- $ref: "#/components/schemas/WorkflowMutableProperties"
@@ -11293,7 +11413,6 @@ components:
1129311413
description: A list of removed user roles for the Workflow.
1129411414
items:
1129511415
$ref: "#/components/schemas/UserRoleSpecification"
11296-
AttributionProperties: {}
1129711416
PromptTemplate:
1129811417
allOf:
1129911418
- $ref: "#/components/schemas/PromptTemplateMutableProperties"
@@ -11369,55 +11488,6 @@ components:
1136911488
runCount:
1137011489
$ref: "#/components/schemas/CountInfo"
1137111490
description: This tracks how many times this prompt template was run. If user runs a prompt template after modifying the original one, it still counts as a run for the original template.
11372-
WorkflowMetadata:
11373-
allOf:
11374-
- type: object
11375-
properties:
11376-
author:
11377-
$ref: "#/components/schemas/Person"
11378-
createTimestamp:
11379-
type: integer
11380-
description: Server Unix timestamp of the creation time.
11381-
lastUpdateTimestamp:
11382-
type: integer
11383-
description: Server Unix timestamp of the last update time.
11384-
lastDraftSavedAt:
11385-
type: integer
11386-
description: Server Unix timestamp of the last time the draft was saved.
11387-
lastDraftSavedBy:
11388-
description: The person who last saved the draft.
11389-
$ref: "#/components/schemas/Person"
11390-
lastDraftGitAuthorId:
11391-
type: string
11392-
description: ID of the VCS user (e.g. GitHub username) who last saved the draft. Set only by the draft save path via the external Git integration API.
11393-
lastUpdatedBy:
11394-
$ref: "#/components/schemas/Person"
11395-
Workflow:
11396-
allOf:
11397-
- $ref: "#/components/schemas/PermissionedObject"
11398-
- $ref: "#/components/schemas/WorkflowMutableProperties"
11399-
- $ref: "#/components/schemas/WorkflowMetadata"
11400-
- $ref: "#/components/schemas/AttributionProperties"
11401-
- type: object
11402-
properties:
11403-
id:
11404-
type: string
11405-
description: The ID of the workflow.
11406-
verified:
11407-
type: boolean
11408-
readOnly: true
11409-
description: When present, indicates this workflow is admin-verified. Set via the dedicated admin settings endpoint, not by regular edits.
11410-
showOrganizationAsAuthor:
11411-
type: boolean
11412-
readOnly: true
11413-
description: When true, displays organization name instead of author name in agent card. Set via the dedicated admin settings endpoint, not by regular edits.
11414-
WorkflowResult:
11415-
type: object
11416-
required:
11417-
- workflow
11418-
properties:
11419-
workflow:
11420-
$ref: "#/components/schemas/Workflow"
1142111491
UserActivity:
1142211492
properties:
1142311493
actor:
@@ -11622,6 +11692,12 @@ components:
1162211692
rank:
1162311693
type: integer
1162411694
description: Rank of the result. Rank is suggested by server. Client side rank may differ.
11695+
placementReason:
11696+
type: string
11697+
enum:
11698+
- ORGANIC
11699+
- PROMO
11700+
description: Placement source for ranked feed results. ORGANIC means the card was emitted by normal feed ranking. PROMO means the card was inserted by the homepage cards promo framework.
1162511701
FeedResponse:
1162611702
required:
1162711703
- serverTimestamp
@@ -14272,7 +14348,12 @@ components:
1427214348
items:
1427314349
type: string
1427414350
description: list of words and phrases to consider as whitelisted content
14275-
description: Terms that are allow-listed during the scans. If any finding picked up by a rule exactly matches a term in the allow-list, it will not be counted as a violation.
14351+
regexes:
14352+
type: array
14353+
items:
14354+
type: string
14355+
description: list of regular expressions whose matches are considered whitelisted content
14356+
description: Terms and regexes that are allow-listed during the scans. If any finding picked up by a rule exactly matches a term, or matches a regex, in the allow-list, it will not be counted as a violation.
1427614357
DlpConfig:
1427714358
properties:
1427814359
version:

.speakeasy/tests.arazzo.yaml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158705,3 +158705,19 @@ workflows:
158705158705
type: simple
158706158706
x-speakeasy-test-group: Datasources
158707158707
x-speakeasy-test-rebuild: true
158708+
- workflowId: createAgent
158709+
steps:
158710+
- stepId: test
158711+
operationId: createAgent
158712+
requestBody:
158713+
contentType: application/json
158714+
payload: {}
158715+
successCriteria:
158716+
- condition: $statusCode == 200
158717+
- condition: $response.header.Content-Type == application/json
158718+
- context: $response.body
158719+
condition: |
158720+
{"workflow":{"author":{"name":"George Clooney","obfuscatedId":"abc123"},"lastDraftSavedBy":{"name":"George Clooney","obfuscatedId":"abc123"},"lastUpdatedBy":{"name":"George Clooney","obfuscatedId":"abc123"}}}
158721+
type: simple
158722+
x-speakeasy-test-group: Agents
158723+
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.770.0
1+
speakeasyVersion: 1.778.0
22
sources:
33
Glean API:
44
sourceNamespace: glean-api-specs
5-
sourceRevisionDigest: sha256:500649ecd919cc2dcfeb6c54fe552ddcf8628a42b2f67a2ef0f206ad8561a56c
6-
sourceBlobDigest: sha256:cb8902f4548ad637f07f6be9b7ef3f0d5fda8fe6f6540c7eea338bf4dde98413
5+
sourceRevisionDigest: sha256:dd8d0e93313fe5767fcfa748d1c68c9173266bd558ce95bb569957fe46e9428f
6+
sourceBlobDigest: sha256:69f553e9de3b1008daaf0d41a3cc9370e7c62ddeabbbee515d221ba6075ec054
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:500649ecd919cc2dcfeb6c54fe552ddcf8628a42b2f67a2ef0f206ad8561a56c
20-
sourceBlobDigest: sha256:cb8902f4548ad637f07f6be9b7ef3f0d5fda8fe6f6540c7eea338bf4dde98413
19+
sourceRevisionDigest: sha256:dd8d0e93313fe5767fcfa748d1c68c9173266bd558ce95bb569957fe46e9428f
20+
sourceBlobDigest: sha256:69f553e9de3b1008daaf0d41a3cc9370e7c62ddeabbbee515d221ba6075ec054
2121
codeSamplesNamespace: glean-api-specs-python-code-samples
22-
codeSamplesRevisionDigest: sha256:cc23275cb351da5ef6256061aed3868dab2d09e7764658ea22e4958928b42d8c
22+
codeSamplesRevisionDigest: sha256:60aa38a0f093349fa189ac4f535bcdf0b2bc99464ffb48ebf83b4318400ff5de
2323
workflow:
2424
workflowVersion: 1.0.0
2525
speakeasyVersion: latest

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -339,6 +339,7 @@ For more information on obtaining the appropriate token type, please contact you
339339

340340
### [Agents](docs/sdks/agents/README.md)
341341

342+
* [create_agent](docs/sdks/agents/README.md#create_agent) - Create an agent
342343
* [edit_agent](docs/sdks/agents/README.md#edit_agent) - Edit an agent
343344

344345
### [Authentication](docs/sdks/authentication/README.md)

RELEASES.md

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -748,4 +748,14 @@ Based on:
748748
### Generated
749749
- [python v0.13.0] .
750750
### Releases
751-
- [PyPI v0.13.0] https://pypi.org/project/glean-api-client/0.13.0 - .
751+
- [PyPI v0.13.0] https://pypi.org/project/glean-api-client/0.13.0 - .
752+
753+
## 2026-06-15 13:13:11
754+
### Changes
755+
Based on:
756+
- OpenAPI Doc
757+
- Speakeasy CLI 1.778.0 (2.904.2) https://github.com/speakeasy-api/speakeasy
758+
### Generated
759+
- [python v0.13.1] .
760+
### Releases
761+
- [PyPI v0.13.1] https://pypi.org/project/glean-api-client/0.13.1 - .

0 commit comments

Comments
 (0)