Skip to content

Commit 0c451a5

Browse files
committed
## Python SDK Changes Detected:
* `glean.client.documents.retrieve()`: * `request.document_specs.[].[class]` **Changed** **Breaking** ⚠️ * `response.documents.{}.[document].metadata.author.related_documents.[].query_suggestion.request_options.inclusions.container_specs.[].[class]` **Changed** * `glean.client.announcements.update()`: * `request.body.structured_list.[].document.metadata.author.related_documents.[].query_suggestion.request_options.inclusions.container_specs.[].[class]` **Changed** **Breaking** ⚠️ * `response.body.structured_list.[].document.metadata.author.related_documents.[].query_suggestion.request_options.inclusions.container_specs.[].[class]` **Changed** * `glean.client.answers.create()`: * `request.data.added_roles.[].source_document_spec.[class]` **Changed** **Breaking** ⚠️ * `response.added_roles.[].source_document_spec.[class]` **Changed** * `glean.client.answers.update()`: * `request.added_roles.[].source_document_spec.[class]` **Changed** **Breaking** ⚠️ * `response.added_roles.[].source_document_spec.[class]` **Changed** * `glean.client.shortcuts.update()`: * `request.added_roles.[].source_document_spec.[class]` **Changed** **Breaking** ⚠️ * `response.shortcut.added_roles.[].source_document_spec.[class]` **Changed** * `glean.client.shortcuts.create()`: * `request.data.added_roles.[].source_document_spec.[class]` **Changed** **Breaking** ⚠️ * `response.shortcut.added_roles.[].source_document_spec.[class]` **Changed** * `glean.client.chat.create()`: * `request.messages.[].citations.[].source_document.metadata.author.related_documents.[].query_suggestion.request_options.inclusions.container_specs.[].[class]` **Changed** **Breaking** ⚠️ * `response.messages.[].citations.[].source_document.metadata.author.related_documents.[].query_suggestion.request_options.inclusions.container_specs.[].[class]` **Changed** * `glean.client.search.query()`: * `request.source_document.metadata.author.related_documents.[].query_suggestion.request_options.inclusions.container_specs.[].[class]` **Changed** **Breaking** ⚠️ * `response.results.[].structured_results.[].document.metadata.author.related_documents.[].query_suggestion.request_options.inclusions.container_specs.[].[class]` **Changed** * `glean.client.search.recommendations()`: * `request.source_document.metadata.author.related_documents.[].query_suggestion.request_options.inclusions.container_specs.[].[class]` **Changed** **Breaking** ⚠️ * `response.results.[].structured_results.[].document.metadata.author.related_documents.[].query_suggestion.request_options.inclusions.container_specs.[].[class]` **Changed** * `glean.client.chat.create_stream()`: * `request.messages.[].citations.[].source_document.metadata.author.related_documents.[].query_suggestion.request_options.inclusions.container_specs.[].[class]` **Changed** **Breaking** ⚠️ * `glean.client.announcements.create()`: * `request.body.structured_list.[].document.metadata.author.related_documents.[].query_suggestion.request_options.inclusions.container_specs.[].[class]` **Changed** **Breaking** ⚠️ * `response.body.structured_list.[].document.metadata.author.related_documents.[].query_suggestion.request_options.inclusions.container_specs.[].[class]` **Changed** * `glean.client.collections.create()`: * `request.added_roles.[].source_document_spec.[class]` **Changed** **Breaking** ⚠️ * `response` **Changed** **Breaking** ⚠️ * `glean.client.search.query_as_admin()`: * `request.source_document.metadata.author.related_documents.[].query_suggestion.request_options.inclusions.container_specs.[].[class]` **Changed** **Breaking** ⚠️ * `response.results.[].structured_results.[].document.metadata.author.related_documents.[].query_suggestion.request_options.inclusions.container_specs.[].[class]` **Changed** * `glean.client.collections.update()`: * `request.added_roles.[].source_document_spec.[class]` **Changed** **Breaking** ⚠️ * `response.added_roles.[].source_document_spec.[class]` **Changed** * `glean.client.documents.summarize()`: * `request.document_specs.[].[class]` **Changed** **Breaking** ⚠️ * `glean.client.collections.add_items()`: `response.collection.added_roles.[].source_document_spec.[class]` **Changed** * `glean.client.search.retrieve_feed()`: `response.results.[].primary_entry` **Changed** * `glean.client.collections.retrieve()`: `response.collection.added_roles.[].source_document_spec.[class]` **Changed** * `glean.client.documents.retrieve_by_facets()`: `response.documents.[].metadata.author.related_documents.[].query_suggestion.request_options.inclusions.container_specs.[].[class]` **Changed** * `glean.client.collections.update_item()`: `response.collection.added_roles.[].source_document_spec.[class]` **Changed** * `glean.client.insights.retrieve()`: `response.users.activity_insights.[].user.related_documents.[].query_suggestion.request_options.inclusions.container_specs.[].[class]` **Changed** * `glean.client.messages.retrieve()`: `response.search_response.results.[].structured_results.[].document.metadata.author.related_documents.[].query_suggestion.request_options.inclusions.container_specs.[].[class]` **Changed** * `glean.client.pins.update()`: `response.attribution.related_documents.[].query_suggestion.request_options.inclusions.container_specs.[].[class]` **Changed** * `glean.client.pins.retrieve()`: `response.pin.attribution.related_documents.[].query_suggestion.request_options.inclusions.container_specs.[].[class]` **Changed** * `glean.client.pins.list()`: `response.pins.[].attribution.related_documents.[].query_suggestion.request_options.inclusions.container_specs.[].[class]` **Changed** * `glean.client.pins.create()`: `response.attribution.related_documents.[].query_suggestion.request_options.inclusions.container_specs.[].[class]` **Changed** * `glean.client.collections.delete_item()`: `response.collection.added_roles.[].source_document_spec.[class]` **Changed** * `glean.client.search.autocomplete()`: `response.results.[].document.metadata.author.related_documents.[].query_suggestion.request_options.inclusions.container_specs.[].[class]` **Changed** * `glean.client.collections.list()`: `response.collections.[].added_roles.[].source_document_spec.[class]` **Changed** * `glean.client.chat.list()`: `response.chat_results.[].chat.created_by.related_documents.[].query_suggestion.request_options.inclusions.container_specs.[].[class]` **Changed** * `glean.client.chat.retrieve()`: `response.chat_result.chat` **Changed** * `glean.client.entities.list()`: `response.results.[].related_documents.[].query_suggestion.request_options.inclusions.container_specs.[].[class]` **Changed** * `glean.client.entities.read_people()`: `response.results.[].related_documents.[].query_suggestion.request_options.inclusions.container_specs.[].[class]` **Changed** * `glean.client.answers.list()`: `response.answer_results.[].answer.added_roles.[].source_document_spec.[class]` **Changed** * `glean.client.shortcuts.retrieve()`: `response.shortcut.added_roles.[].source_document_spec.[class]` **Changed** * `glean.client.shortcuts.list()`: `response.shortcuts.[].added_roles.[].source_document_spec.[class]` **Changed** * `glean.client.answers.retrieve()`: `response.answer_result.answer.added_roles.[].source_document_spec.[class]` **Changed** * `glean.client.verification.add_reminder()`: `response.metadata.last_verifier.related_documents.[].query_suggestion.request_options.inclusions.container_specs.[].[class]` **Changed** * `glean.client.verification.list()`: `response.documents.[].metadata.last_verifier.related_documents.[].query_suggestion.request_options.inclusions.container_specs.[].[class]` **Changed** * `glean.client.verification.verify()`: `response.metadata.last_verifier.related_documents.[].query_suggestion.request_options.inclusions.container_specs.[].[class]` **Changed**
1 parent 8bc35c4 commit 0c451a5

File tree

76 files changed

+1293
-928
lines changed

Some content is hidden

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

76 files changed

+1293
-928
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
.env
2+
.env.local
13
**/__pycache__/
24
**/.speakeasy/temp/
35
**/.speakeasy/logs/

.speakeasy/gen.lock

Lines changed: 29 additions & 14 deletions
Large diffs are not rendered by default.

.speakeasy/gen.yaml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,15 @@ generation:
1919
auth:
2020
oAuth2ClientCredentialsEnabled: false
2121
oAuth2PasswordEnabled: false
22+
hoistGlobalSecurity: true
2223
mockServer:
2324
disabled: false
2425
tests:
2526
generateTests: true
2627
generateNewTests: true
2728
skipResponseBodyAssertions: true
2829
python:
29-
version: 0.7.3
30+
version: 0.7.4
3031
additionalDependencies:
3132
dev: {}
3233
main: {}
@@ -65,4 +66,5 @@ python:
6566
pytestFilterWarnings: []
6667
pytestTimeout: 0
6768
responseFormat: flat
69+
sseFlatResponse: false
6870
templateVersion: v2

.speakeasy/glean-merged-spec.yaml

Lines changed: 117 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4261,18 +4261,28 @@ components:
42614261
tokenType: Bearer
42624262
authUser: "1"
42634263
DocumentSpec:
4264+
x-multiple-discriminators: true
42644265
oneOf:
42654266
- type: object
4267+
required:
4268+
- url
42664269
properties:
42674270
url:
42684271
type: string
4272+
x-discriminator: true
42694273
description: The URL of the document.
42704274
- type: object
4275+
required:
4276+
- id
42714277
properties:
42724278
id:
42734279
type: string
4280+
x-discriminator: true
42744281
description: The ID of the document.
42754282
- type: object
4283+
required:
4284+
- contentId
4285+
- ugcType
42764286
properties:
42774287
ugcType:
42784288
type: string
@@ -4284,6 +4294,7 @@ components:
42844294
description: The type of the user generated content (UGC datasource).
42854295
contentId:
42864296
type: integer
4297+
x-discriminator: true
42874298
description: The id for user generated content.
42884299
docType:
42894300
type: string
@@ -7287,7 +7298,7 @@ components:
72877298
additionalProperties:
72887299
$ref: "#/components/schemas/WriteActionParameter"
72897300
ChatMessageFragment:
7290-
description: Represents a part of a ChatMessage that originates from a single action/tool. It is designed to support rich data formats beyond simple text, allowing for a more dynamic and interactive chat experience. Each fragment can include various types of content, such as text, search queries, action information, and more. Also, each ChatMessageFragment should only have one of structuredResults, querySuggestion, writeAction, followupAction, or file.
7301+
description: Represents a part of a ChatMessage that originates from a single action/tool. It is designed to support rich data formats beyond simple text, allowing for a more dynamic and interactive chat experience. Each fragment can include various types of content, such as text, search queries, action information, and more. Also, each ChatMessageFragment should only have one of structuredResults, querySuggestion, writeAction, followupAction, agentRecommendation or file.
72917302
allOf:
72927303
- $ref: "#/components/schemas/Result"
72937304
- type: object
@@ -7354,6 +7365,7 @@ components:
73547365
ERROR: A message that describes an error while processing the request.
73557366
HEADING: A heading message used to distinguish different sections of the holistic response.
73567367
WARNING: A warning message to be shown to the user.
7368+
SERVER_TOOL: A message used to for server-side tool auth/use, for request and response.
73577369
enum:
73587370
- UPDATE
73597371
- CONTENT
@@ -7363,6 +7375,7 @@ components:
73637375
- ERROR
73647376
- HEADING
73657377
- WARNING
7378+
- SERVER_TOOL
73667379
hasMoreFragments:
73677380
deprecated: true
73687381
type: boolean
@@ -7489,12 +7502,18 @@ components:
74897502
description: A historical representation of a series of chat messages a user had with Glean Assistant.
74907503
allOf:
74917504
- $ref: "#/components/schemas/ChatMetadata"
7505+
- $ref: "#/components/schemas/PermissionedObject"
74927506
properties:
74937507
messages:
74947508
type: array
74957509
items:
74967510
$ref: "#/components/schemas/ChatMessage"
74977511
description: The chat messages within a Chat.
7512+
roles:
7513+
type: array
7514+
items:
7515+
$ref: "#/components/schemas/UserRoleSpecification"
7516+
description: A list of roles for this Chat.
74987517
ChatResult:
74997518
properties:
75007519
chat:
@@ -7808,9 +7827,12 @@ components:
78087827
- NO_PERMISSIONS
78097828
CreateCollectionResponse:
78107829
allOf:
7811-
- $ref: "#/components/schemas/Collection"
7812-
- $ref: "#/components/schemas/CollectionError"
78137830
- type: object
7831+
anyOf:
7832+
- required:
7833+
- collection
7834+
- required:
7835+
- error
78147836
properties:
78157837
collection:
78167838
$ref: "#/components/schemas/Collection"
@@ -9153,6 +9175,7 @@ components:
91539175
- ZERO_STATE_WORKFLOW_POPULAR
91549176
- ZERO_STATE_WORKFLOW_SUGGESTION
91559177
- PERSONALIZED_CHAT_SUGGESTION
9178+
- DAILY_DIGEST
91569179
description: Categories of content requested. An allowlist gives flexibility to request content separately or together.
91579180
requestOptions:
91589181
$ref: "#/components/schemas/FeedRequestOptions"
@@ -9308,6 +9331,91 @@ components:
93089331
type: array
93099332
items:
93109333
$ref: "#/components/schemas/GeneratedAttachment"
9334+
SectionType:
9335+
type: string
9336+
description: Type of the section. This defines how the section should be interpreted and rendered in the digest.
9337+
x-enumDescriptions:
9338+
CHANNEL: A standard section for channel-based digests (e.g. from Slack, Teams).
9339+
MENTIONS: A dedicated section that surfaces user mentions (actionable, informative, or all).
9340+
TOPIC: A section driven by a generic topic, not tied to any specific channel or instance.
9341+
enum:
9342+
- CHANNEL
9343+
- MENTIONS
9344+
- TOPIC
9345+
UpdateType:
9346+
type: string
9347+
description: Optional type classification for the update.
9348+
x-enumDescriptions:
9349+
ACTIONABLE: Updates that require user attention or action
9350+
INFORMATIVE: Updates that are purely informational
9351+
enum:
9352+
- ACTIONABLE
9353+
- INFORMATIVE
9354+
DigestUpdate:
9355+
type: object
9356+
properties:
9357+
url:
9358+
type: string
9359+
description: URL link to the content or document.
9360+
title:
9361+
type: string
9362+
description: Title or headline of the update.
9363+
datasource:
9364+
type: string
9365+
description: Name or identifier of the data source (e.g., slack, confluence, etc.).
9366+
summary:
9367+
type: string
9368+
description: Brief summary or description of the update content.
9369+
type:
9370+
$ref: "#/components/schemas/UpdateType"
9371+
DigestSection:
9372+
type: object
9373+
required:
9374+
- id
9375+
- type
9376+
- updates
9377+
properties:
9378+
id:
9379+
type: string
9380+
description: Unique identifier for the digest section.
9381+
type:
9382+
$ref: "#/components/schemas/SectionType"
9383+
displayName:
9384+
type: string
9385+
description: Human-readable name for the digest section.
9386+
channelName:
9387+
type: string
9388+
description: Name of the channel (applicable for CHANNEL type sections). Used to display in the frontend.
9389+
instanceId:
9390+
type: string
9391+
description: Instance identifier for the channel or workspace. Used for constructing channel URLs to display in the frontend.
9392+
url:
9393+
type: string
9394+
description: Optional URL for the digest section. Should be populated only if the section is a CHANNEL type section.
9395+
updates:
9396+
type: array
9397+
items:
9398+
$ref: "#/components/schemas/DigestUpdate"
9399+
description: List of updates within this digest section.
9400+
Digest:
9401+
type: object
9402+
properties:
9403+
podcastFileId:
9404+
type: string
9405+
description: Identifier for the podcast file generated from this digest content.
9406+
podcastDuration:
9407+
type: number
9408+
format: float
9409+
description: Duration of the podcast file in seconds.
9410+
digestDate:
9411+
type: string
9412+
description: The date this digest covers, in YYYY-MM-DD format. Represents the specific day for which the digest content and updates were compiled. This can be empty if the digest is not yet available.
9413+
example: "2025-09-03"
9414+
sections:
9415+
type: array
9416+
items:
9417+
$ref: "#/components/schemas/DigestSection"
9418+
description: Array of digest sections from which the podcast was created.
93119419
ChatSuggestion:
93129420
properties:
93139421
query:
@@ -9530,6 +9638,7 @@ components:
95309638
- ZERO_STATE_STATIC_WORKFLOW_SUGGESTION
95319639
- ZERO_STATE_AGENT_SUGGESTION
95329640
- PERSONALIZED_CHAT_SUGGESTION
9641+
- DAILY_DIGEST
95339642
description: Type of the justification.
95349643
justification:
95359644
type: string
@@ -9546,6 +9655,8 @@ components:
95469655
$ref: "#/components/schemas/CalendarEvent"
95479656
announcement:
95489657
$ref: "#/components/schemas/Announcement"
9658+
digest:
9659+
$ref: "#/components/schemas/Digest"
95499660
collection:
95509661
$ref: "#/components/schemas/Collection"
95519662
collectionItem:
@@ -9598,6 +9709,7 @@ components:
95989709
- ZERO_STATE_WORKFLOW_POPULAR
95999710
- ZERO_STATE_WORKFLOW_SUGGESTION
96009711
- PERSONALIZED_CHAT_SUGGESTION
9712+
- DAILY_DIGEST
96019713
description: Category of the result, one of the requested categories in incoming request.
96029714
primaryEntry:
96039715
$ref: "#/components/schemas/FeedEntry"
@@ -11595,6 +11707,7 @@ components:
1159511707
- EXTERNAL_SHORTCUT
1159611708
- ENTITY
1159711709
- CALENDAR
11710+
- AGENTS
1159811711
description: The document category of this object type.
1159911712
propertyDefinitions:
1160011713
type: array
@@ -11649,6 +11762,7 @@ components:
1164911762
- EXTERNAL_SHORTCUT
1165011763
- ENTITY
1165111764
- CALENDAR
11765+
- AGENTS
1165211766
default: UNCATEGORIZED
1165311767
description: The type of this datasource. It is an important signal for relevance and must be specified and cannot be UNCATEGORIZED. Please refer to [this](https://developers.glean.com/docs/indexing_api_datasource_category/) for more details.
1165411768
urlRegex:

.speakeasy/workflow.lock

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
speakeasyVersion: 1.606.9
1+
speakeasyVersion: 1.615.2
22
sources:
33
Glean API:
44
sourceNamespace: glean-api-specs
5-
sourceRevisionDigest: sha256:35193fded9c9797576c742f6e93e2e3e9d507aa2ab2c55a5458825561552f33e
6-
sourceBlobDigest: sha256:1dc638c477afb69ccc30ba6482d7ac2e7237238d44638da8d0c4ece45f36d416
5+
sourceRevisionDigest: sha256:468d64d768f97e3b09134a46339ea6c35392cc9d70ad902e6c23c3e7bb3330ee
6+
sourceBlobDigest: sha256:0d9b7840c0d0d6ac735b1e3b39e0166e43d67d8c4e3a2925a6f147c8190a7058
77
tags:
88
- latest
9-
- speakeasy-sdk-regen-1755200990
9+
- speakeasy-sdk-regen-1756833812
1010
Glean Client API:
1111
sourceNamespace: glean-client-api
1212
sourceRevisionDigest: sha256:4edc63ad559e4f2c9fb9ebf5edaaaaa9269f1874d271cfd84b441d6dacac43d2
@@ -17,10 +17,10 @@ targets:
1717
glean:
1818
source: Glean API
1919
sourceNamespace: glean-api-specs
20-
sourceRevisionDigest: sha256:35193fded9c9797576c742f6e93e2e3e9d507aa2ab2c55a5458825561552f33e
21-
sourceBlobDigest: sha256:1dc638c477afb69ccc30ba6482d7ac2e7237238d44638da8d0c4ece45f36d416
20+
sourceRevisionDigest: sha256:468d64d768f97e3b09134a46339ea6c35392cc9d70ad902e6c23c3e7bb3330ee
21+
sourceBlobDigest: sha256:0d9b7840c0d0d6ac735b1e3b39e0166e43d67d8c4e3a2925a6f147c8190a7058
2222
codeSamplesNamespace: glean-api-specs-python-code-samples
23-
codeSamplesRevisionDigest: sha256:ec1033795495ed5feb092f4ca786534382c763ff1787a997db77303ef0539ad9
23+
codeSamplesRevisionDigest: sha256:563f78ec1bda5b7c69aeb38afab5efeb178ea57f303e2bf69ead938058016bad
2424
workflow:
2525
workflowVersion: 1.0.0
2626
speakeasyVersion: latest

RELEASES.md

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -208,4 +208,14 @@ Based on:
208208
### Generated
209209
- [python v0.7.3] .
210210
### Releases
211-
- [PyPI v0.7.3] https://pypi.org/project/glean/0.7.3 - .
211+
- [PyPI v0.7.3] https://pypi.org/project/glean/0.7.3 - .
212+
213+
## 2025-09-15 16:34:08
214+
### Changes
215+
Based on:
216+
- OpenAPI Doc
217+
- Speakeasy CLI 1.615.2 (2.698.4) https://github.com/speakeasy-api/speakeasy
218+
### Generated
219+
- [python v0.7.4] .
220+
### Releases
221+
- [PyPI v0.7.4] https://pypi.org/project/glean/0.7.4 - .

docs/models/chat.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,6 @@ A historical representation of a series of chat messages a user had with Glean A
1515
| `application_id` | *Optional[str]* | :heavy_minus_sign: | The ID of the AI App that this Chat is associated to. | |
1616
| `application_name` | *Optional[str]* | :heavy_minus_sign: | The display name of the AI App that this Chat is associated to. | |
1717
| `icon` | [Optional[models.IconConfig]](../models/iconconfig.md) | :heavy_minus_sign: | Defines how to render an icon | {<br/>"color": "#343CED",<br/>"key": "person_icon",<br/>"iconType": "GLYPH",<br/>"name": "user"<br/>} |
18-
| `messages` | List[[models.ChatMessage](../models/chatmessage.md)] | :heavy_minus_sign: | The chat messages within a Chat. | |
18+
| `permissions` | [Optional[models.ObjectPermissions]](../models/objectpermissions.md) | :heavy_minus_sign: | N/A | |
19+
| `messages` | List[[models.ChatMessage](../models/chatmessage.md)] | :heavy_minus_sign: | The chat messages within a Chat. | |
20+
| `roles` | List[[models.UserRoleSpecification](../models/userrolespecification.md)] | :heavy_minus_sign: | A list of roles for this Chat. | |

docs/models/chatmessagefragment.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# ChatMessageFragment
22

3-
Represents a part of a ChatMessage that originates from a single action/tool. It is designed to support rich data formats beyond simple text, allowing for a more dynamic and interactive chat experience. Each fragment can include various types of content, such as text, search queries, action information, and more. Also, each ChatMessageFragment should only have one of structuredResults, querySuggestion, writeAction, followupAction, or file.
3+
Represents a part of a ChatMessage that originates from a single action/tool. It is designed to support rich data formats beyond simple text, allowing for a more dynamic and interactive chat experience. Each fragment can include various types of content, such as text, search queries, action information, and more. Also, each ChatMessageFragment should only have one of structuredResults, querySuggestion, writeAction, followupAction, agentRecommendation or file.
44

55

66
## Fields

0 commit comments

Comments
 (0)