From b73d6cdfdb954cee277b72754d7091f5b0623d2d Mon Sep 17 00:00:00 2001 From: speakeasybot Date: Fri, 26 Dec 2025 01:50:49 +0000 Subject: [PATCH 1/2] ## Python SDK Changes: * `glean.client.announcements.create()`: * `request.body.structured_list.[].document.metadata.author.related_documents.[].results.[].structured_results.[].meeting` **Changed** * `response.body.structured_list.[].document.metadata.author.related_documents.[].results.[].structured_results.[].meeting` **Changed** * `glean.client.announcements.update()`: * `request.body.structured_list.[].document.metadata.author.related_documents.[].results.[].structured_results.[].meeting` **Changed** * `response.body.structured_list.[].document.metadata.author.related_documents.[].results.[].structured_results.[].meeting` **Changed** * `glean.client.answers.create()`: * `request.data.added_roles.[].person.related_documents.[].results.[].structured_results.[].meeting` **Changed** * `response.added_roles.[].person.related_documents.[].results.[].structured_results.[].meeting` **Changed** * `glean.client.answers.update()`: * `request.added_roles.[].person.related_documents.[].results.[].structured_results.[].meeting` **Changed** * `response.added_roles.[].person.related_documents.[].results.[].structured_results.[].meeting` **Changed** * `glean.client.answers.retrieve()`: `response.answer_result.answer.added_roles.[].person.related_documents.[].results.[].structured_results.[].meeting` **Changed** * `glean.client.answers.list()`: `response.answer_results.[].answer.added_roles.[].person.related_documents.[].results.[].structured_results.[].meeting` **Changed** * `glean.client.chat.create()`: * `request.messages.[].citations.[].source_document.metadata.author.related_documents.[].results.[].structured_results.[].meeting` **Changed** * `response.messages.[].citations.[].source_document.metadata.author.related_documents.[].results.[].structured_results.[].meeting` **Changed** * `glean.client.chat.retrieve()`: `response.chat_result.chat.created_by.related_documents.[].results.[].structured_results.[].meeting` **Changed** * `glean.client.chat.list()`: `response.chat_results.[].chat.created_by.related_documents.[].results.[].structured_results.[].meeting` **Changed** * `glean.client.chat.create_stream()`: * `request.messages.[].citations.[].source_document.metadata.author.related_documents.[].results.[].structured_results.[].meeting` **Changed** * `glean.client.collections.add_items()`: `response.collection.added_roles.[].person.related_documents.[].results.[].structured_results.[].meeting` **Changed** * `glean.client.collections.create()`: * `request.added_roles.[].person.related_documents.[].results.[].structured_results.[].meeting` **Changed** * `response.[class].collection.added_roles.[].person.related_documents.[].results.[].structured_results.[].meeting` **Changed** * `glean.client.collections.delete_item()`: `response.collection.added_roles.[].person.related_documents.[].results.[].structured_results.[].meeting` **Changed** * `glean.client.collections.update()`: * `request.added_roles.[].person.related_documents.[].results.[].structured_results.[].meeting` **Changed** * `response.added_roles.[].person.related_documents.[].results.[].structured_results.[].meeting` **Changed** * `glean.client.collections.update_item()`: `response.collection.added_roles.[].person.related_documents.[].results.[].structured_results.[].meeting` **Changed** * `glean.client.collections.retrieve()`: `response.collection.added_roles.[].person.related_documents.[].results.[].structured_results.[].meeting` **Changed** * `glean.client.collections.list()`: `response.collections.[].added_roles.[].person.related_documents.[].results.[].structured_results.[].meeting` **Changed** * `glean.client.documents.retrieve()`: `response.documents.{}.[document].metadata.author.related_documents.[].results.[].structured_results.[].meeting` **Changed** * `glean.client.documents.retrieve_by_facets()`: `response.documents.[].metadata.author.related_documents.[].results.[].structured_results.[].meeting` **Changed** * `glean.client.insights.retrieve()`: `response` **Changed** * `glean.client.messages.retrieve()`: `response.search_response.results.[].structured_results.[].meeting` **Changed** * `glean.client.pins.update()`: `response.attribution.related_documents.[].results.[].structured_results.[].meeting` **Changed** * `glean.client.pins.retrieve()`: `response.pin.attribution.related_documents.[].results.[].structured_results.[].meeting` **Changed** * `glean.client.pins.list()`: `response.pins.[].attribution.related_documents.[].results.[].structured_results.[].meeting` **Changed** * `glean.client.pins.create()`: `response.attribution.related_documents.[].results.[].structured_results.[].meeting` **Changed** * `glean.client.search.query_as_admin()`: * `request.source_document.metadata.author.related_documents.[].results.[].structured_results.[].meeting` **Changed** * `response.results.[].structured_results.[].meeting` **Changed** * `glean.client.search.autocomplete()`: `response.results.[].document.metadata.author.related_documents.[].results.[].structured_results.[].meeting` **Changed** * `glean.client.search.retrieve_feed()`: `response.results.[].primary_entry.created_by.related_documents.[].results.[].structured_results.[].meeting` **Changed** * `glean.client.search.recommendations()`: * `request.source_document.metadata.author.related_documents.[].results.[].structured_results.[].meeting` **Changed** * `response.results.[].structured_results.[].meeting` **Changed** * `glean.client.search.query()`: * `request.source_document.metadata.author.related_documents.[].results.[].structured_results.[].meeting` **Changed** * `response.results.[].structured_results.[].meeting` **Changed** * `glean.client.entities.list()`: `response.results.[].related_documents.[].results.[].structured_results.[].meeting` **Changed** * `glean.client.entities.read_people()`: `response.results.[].related_documents.[].results.[].structured_results.[].meeting` **Changed** * `glean.client.shortcuts.create()`: * `request.data.added_roles.[].person.related_documents.[].results.[].structured_results.[].meeting` **Changed** * `response.shortcut.added_roles.[].person.related_documents.[].results.[].structured_results.[].meeting` **Changed** * `glean.client.shortcuts.retrieve()`: `response.shortcut.added_roles.[].person.related_documents.[].results.[].structured_results.[].meeting` **Changed** * `glean.client.shortcuts.list()`: `response.shortcuts.[].added_roles.[].person.related_documents.[].results.[].structured_results.[].meeting` **Changed** * `glean.client.shortcuts.update()`: * `request.added_roles.[].person.related_documents.[].results.[].structured_results.[].meeting` **Changed** * `response.shortcut.added_roles.[].person.related_documents.[].results.[].structured_results.[].meeting` **Changed** * `glean.client.verification.add_reminder()`: `response.metadata.last_verifier.related_documents.[].results.[].structured_results.[].meeting` **Changed** * `glean.client.verification.list()`: `response.documents.[].metadata.last_verifier.related_documents.[].results.[].structured_results.[].meeting` **Changed** * `glean.client.verification.verify()`: `response.metadata.last_verifier.related_documents.[].results.[].structured_results.[].meeting` **Changed** * `glean.client.governance.data.policies.download()`: `error.status[400]` **Added** * `glean.governance.createfindingsexport()`: * `request.filter.archived` **Added** * `response.filter.archived` **Added** * `glean.governance.listfindingsexports()`: `response.exports.[].filter.archived` **Added** --- .speakeasy/gen.lock | 75 ++++++------- .speakeasy/gen.yaml | 3 +- .speakeasy/glean-merged-spec.yaml | 53 ++++++++- .speakeasy/workflow.lock | 14 +-- RELEASES.md | 12 +- docs/models/dlpfindingfilter.md | 3 +- docs/models/insightsoverviewresponse.md | 12 ++ docs/models/meeting.md | 23 ++-- pyproject.toml | 2 +- src/glean/api_client/_version.py | 6 +- src/glean/api_client/errors/gleandataerror.py | 3 - .../api_client/models/dlpfindingfilter.py | 3 + .../models/insightsoverviewresponse.py | 70 ++++++++++++ src/glean/api_client/models/meeting.py | 31 ++++++ src/glean/api_client/policies.py | 8 +- .../sdk/models/components/dlpfindingfilter.go | 8 ++ .../components/insightsoverviewresponse.go | 104 +++++++++++++++++- .../internal/sdk/models/components/meeting.go | 45 ++++++++ .../components/uploadchatfilesrequest.go | 2 +- tests/test_summarize.py | 8 +- 20 files changed, 401 insertions(+), 84 deletions(-) diff --git a/.speakeasy/gen.lock b/.speakeasy/gen.lock index 0c4bf807..ea6af957 100644 --- a/.speakeasy/gen.lock +++ b/.speakeasy/gen.lock @@ -1,26 +1,26 @@ lockVersion: 2.0.0 id: 3e3290ca-0ee8-4981-b1bc-14536048fa63 management: - docChecksum: 155a8a099a04ddbed1268d2c31ba186a + docChecksum: 000e1c81a917010eec101d52c0be6621 docVersion: 0.9.0 - speakeasyVersion: 1.675.4 - generationVersion: 2.779.2 - releaseVersion: 0.11.25 - configChecksum: eeecb9b00ada03322b4c87d8ec90db91 + speakeasyVersion: 1.680.5 + generationVersion: 2.788.7 + releaseVersion: 0.11.26 + configChecksum: 0c1c9816fddc50402b01c1776fed290b repoURL: https://github.com/gleanwork/api-client-python.git installationURL: https://github.com/gleanwork/api-client-python.git published: true persistentEdits: - generation_id: ae27c813-e27b-49f4-8b29-b8ea002c14e7 - pristine_commit_hash: dfb743e628fdc9144777502e9abdbc9ef378ce15 - pristine_tree_hash: eb9728fe81c4c32440414597ccce323de02cf3aa + generation_id: 758a9013-b673-4d1d-9143-8e7f258ea035 + pristine_commit_hash: 6270f824dbde0b217b8d8c2d445238ad7174b041 + pristine_tree_hash: 0385d8319ed797ebe160d86eb9d8934fc3803119 features: python: additionalDependencies: 1.0.0 additionalProperties: 1.0.1 configurableModuleName: 0.2.0 constsAndDefaults: 1.0.5 - core: 5.23.13 + core: 5.23.15 defaultEnabledRetries: 0.2.0 deprecations: 3.0.2 devContainers: 3.0.0 @@ -863,8 +863,8 @@ trackedFiles: pristine_git_object: 1ecf20234bdf5b3eef7acf6fd64a3cab21e8f426 docs/models/dlpfindingfilter.md: id: 72eab9f49f83 - last_write_checksum: sha1:3e05c02f068497b454727e10e7bd5ca532fdd4d9 - pristine_git_object: e49bf3d650d63318146b2454d5ac97197934cbac + last_write_checksum: sha1:4be69bed621e6c0433cc0a2617c3926241d7587b + pristine_git_object: cf64c8cf51510a13bab54be7e3f90fd6db7e5f30 docs/models/dlpfrequency.md: id: f4604a8ff945 last_write_checksum: sha1:944330ad33b1bb325cd4ae91c483c477fa7aa5a2 @@ -1519,8 +1519,8 @@ trackedFiles: pristine_git_object: 90e12f31c489fd3953b486a9ba20043f50362bc5 docs/models/insightsoverviewresponse.md: id: c980a8e3a69e - last_write_checksum: sha1:04df4423d819bec8a572f5b35164ecded1f3f1b5 - pristine_git_object: 6cd38a87732d77c1897c7506f30cf1b3642bfb70 + last_write_checksum: sha1:a897dd65b610928d7980734f630b0e1f8bd3b400 + pristine_git_object: 76c9c9a8334d732dd6fb8e01a5aeeeb448b93547 docs/models/insightsrequest.md: id: 13eaa34edff4 last_write_checksum: sha1:3c7a299a7dc4c0e615ce11aaa18d6a3318330ab7 @@ -1667,8 +1667,8 @@ trackedFiles: pristine_git_object: 3ba4a1bed8c0ebd3f754b4a500682415943db7de docs/models/meeting.md: id: 823ab6288010 - last_write_checksum: sha1:952b1e12f2021ff9633fe02e7a37556c524a879e - pristine_git_object: 80770e91e4536b21f85bac471151f366c822cecd + last_write_checksum: sha1:9efd1c28c84b767ea662cd26598364b032e35cf3 + pristine_git_object: 977c94c1f354f712855d58eecf856e5055d23342 docs/models/message.md: id: a9614076792b last_write_checksum: sha1:683c85b12ba65929d2c250f60767f043cc8edc9e @@ -2611,8 +2611,8 @@ trackedFiles: pristine_git_object: 8e34b78a71b8bb97bad6dea99d0f791beb134e5b pyproject.toml: id: 5d07e7d72637 - last_write_checksum: sha1:5e9a1c86cdbf59f5853a8ff79c448cab1b21a33c - pristine_git_object: 74e7a505ae169183c934b33ef1e3550bbd93a903 + last_write_checksum: sha1:233ebc1d99b9615e686ac8a7ee87edc4c55d5e56 + pristine_git_object: 4d89b75dcebf511db639dab0144a4889f32bbf75 scripts/prepare_readme.py: id: e0c5957a6035 last_write_checksum: sha1:c2c83f71dea61eb50c9e05da83b16d18b4da8794 @@ -2639,8 +2639,8 @@ trackedFiles: pristine_git_object: 58c4d70ac1797b86ff5c4237cafbc344c42d8f64 src/glean/api_client/_version.py: id: 0ce22b26136b - last_write_checksum: sha1:30abb718971de47ac189a7bd4cb7e7aad5c010ce - pristine_git_object: 54635c2e1ffa97430bf82ab8d4db3a8e77e1512d + last_write_checksum: sha1:9eb286ff68b1345469d8fdd675450ca2257a7dc2 + pristine_git_object: 5a198b45d20dba551e87ac5253b64387b6c73db7 src/glean/api_client/agents.py: id: b925701a9217 last_write_checksum: sha1:56f1329fbf799ea92ed30229d4ed2404666d455d @@ -2719,8 +2719,8 @@ trackedFiles: pristine_git_object: b2f7acde3c293f63d1af370cf1bd4266048c3834 src/glean/api_client/errors/gleandataerror.py: id: 8bae5389c0bf - last_write_checksum: sha1:c1370d185bd0200759b4a132866fd175a1e64641 - pristine_git_object: 6ac9f877b4aef9427e0719ae16c611788b09a385 + last_write_checksum: sha1:29d39ccabff4905216e98b25d1d265a71d731785 + pristine_git_object: 978b0be0e85d64351fd71c8cfe765dbd341cf5ee src/glean/api_client/errors/gleanerror.py: id: 9f1d85652f59 last_write_checksum: sha1:a7a2bc1335123c6bd8c9f945a9c653f061e14167 @@ -3419,8 +3419,8 @@ trackedFiles: pristine_git_object: bc314c4e6f96ffc46367d227afbc69e2fdd59a5e src/glean/api_client/models/dlpfindingfilter.py: id: 6ef2e5304df7 - last_write_checksum: sha1:39d94eb282f4e0d7b131fff349210e4279176425 - pristine_git_object: 4f262ed8053649a70c5dbf780c3395f37e694ae8 + last_write_checksum: sha1:7941a1ce21fa0c6117a40a1addf5edc52147bd05 + pristine_git_object: 903b3bb55b1c70b59082a9c889ce11866a2b0fd9 src/glean/api_client/models/dlpfrequency.py: id: f6f484c2d7a4 last_write_checksum: sha1:7c48fc297e95a40d143de6e4b81b76f7db4dbfdd @@ -3931,8 +3931,8 @@ trackedFiles: pristine_git_object: 1c6f8a400a6e5374f693a3d03fe4cd9e0014e514 src/glean/api_client/models/insightsoverviewresponse.py: id: 9f278319d18c - last_write_checksum: sha1:5e1c82a150a7bb7c9ff7a280c25bebaf3d890a96 - pristine_git_object: 32b4ca5c917ebb888ebed9f65794d5b87741e6c3 + last_write_checksum: sha1:020d966768b22c7254ba1fb4673a8ed4bd9efc74 + pristine_git_object: ba7b19e9dd1754ee6fe914539b06fd1ca445fe81 src/glean/api_client/models/insightsrequest.py: id: 72fbc9d1c47b last_write_checksum: sha1:87d348f9999fff8d203241caf3f90151f5901122 @@ -4031,8 +4031,8 @@ trackedFiles: pristine_git_object: 562b42c37c6fdef80ce706a5e2e30175240b39f2 src/glean/api_client/models/meeting.py: id: 0b1f0fdee050 - last_write_checksum: sha1:ca7595c6b02ee62c0de58e0309b362682a0aab9a - pristine_git_object: 956309eb5aa7683ee01351941808697a8a6e5ca0 + last_write_checksum: sha1:06c52eb11c5430578d9ff2888ded27f700043052 + pristine_git_object: a877398e86b916ddbf49db075287cb9ff1f6b9b8 src/glean/api_client/models/message.py: id: d2e44a188d40 last_write_checksum: sha1:545a477f6692ff8349490a3138ee6b3b55b410e3 @@ -4667,8 +4667,8 @@ trackedFiles: pristine_git_object: 80d29702200a5b87416508d7633563589571a275 src/glean/api_client/policies.py: id: 680f941e0620 - last_write_checksum: sha1:cbcf5815fa49a379a67c314d44404bdd284d37d9 - pristine_git_object: 5019d51b5c5e7f8e438f629d36741881d6ad0b63 + last_write_checksum: sha1:e5797a03f6e6c29083253e7c4cc51e9e28a36f61 + pristine_git_object: b2349e2e40906aee4b8bfb4b71a045c68e4b58b4 src/glean/api_client/py.typed: id: 85a37d5088f9 last_write_checksum: sha1:8efc425ffe830805ffcc0f3055871bdcdc542c60 @@ -5298,7 +5298,7 @@ trackedFiles: tests/mockserver/internal/sdk/models/components/dlpexportfindingsrequest.go: last_write_checksum: sha1:0bc22bf0ef0c29a307616c120f898544e81660f7 tests/mockserver/internal/sdk/models/components/dlpfindingfilter.go: - last_write_checksum: sha1:f284a365d5f7346c8265a5488e24ece4080b126c + last_write_checksum: sha1:c71dd3ed02678385eda72478f6497fc342ad18a8 tests/mockserver/internal/sdk/models/components/dlpfrequency.go: last_write_checksum: sha1:a43530a5536fc8d7e9e059f9256acb659e57f636 tests/mockserver/internal/sdk/models/components/dlpperson.go: @@ -5530,7 +5530,7 @@ trackedFiles: tests/mockserver/internal/sdk/models/components/insightsoverviewrequest.go: last_write_checksum: sha1:f41a223c0da4e4edee140cdd8a7697a45969a239 tests/mockserver/internal/sdk/models/components/insightsoverviewresponse.go: - last_write_checksum: sha1:70827886af51f8dac41dff93943dff3b08c8fee4 + last_write_checksum: sha1:6b78d9baa749aa3e03c2e20964a9a5ddcaab97ad tests/mockserver/internal/sdk/models/components/insightsrequest.go: last_write_checksum: sha1:eb012d78051f22fd42f8b58a31f1de61b6ee970a tests/mockserver/internal/sdk/models/components/insightsresponse.go: @@ -5572,7 +5572,7 @@ trackedFiles: tests/mockserver/internal/sdk/models/components/manualfeedbacksidebysideinfo.go: last_write_checksum: sha1:9c066d47590c5ee9823f57a51466268e2893a13b tests/mockserver/internal/sdk/models/components/meeting.go: - last_write_checksum: sha1:4ff57e27d2ed0b67c4b3e6f1ce8a8badab3186ba + last_write_checksum: sha1:3cf5bc5fd2b5a40c545bfe1d9f768a98c3360d11 tests/mockserver/internal/sdk/models/components/message.go: last_write_checksum: sha1:e26e4e76e56ff85f2df34f754db3bddaf57b1475 tests/mockserver/internal/sdk/models/components/messagesrequest.go: @@ -5826,7 +5826,7 @@ trackedFiles: tests/mockserver/internal/sdk/models/components/updatetype.go: last_write_checksum: sha1:e1ab594be688dd3fedb265c39338efd490f59f6f tests/mockserver/internal/sdk/models/components/uploadchatfilesrequest.go: - last_write_checksum: sha1:4f1567813e38d56ea798095282df52a6fb0f5167 + last_write_checksum: sha1:00e0f9e75e7158fcbab4881b4ce1151f0d889919 tests/mockserver/internal/sdk/models/components/uploadchatfilesresponse.go: last_write_checksum: sha1:7879f60132d94f5788e6a855b4487ef69f491e86 tests/mockserver/internal/sdk/models/components/uploadshortcutsrequest.go: @@ -6255,8 +6255,8 @@ trackedFiles: pristine_git_object: df2944ebda36db652b2770dd1c23be83df90fc99 tests/test_summarize.py: id: a255d8a6f627 - last_write_checksum: sha1:6383d6969c6f1bf1832e5ace511e5c2ffaa6d86f - pristine_git_object: cac8e9788f25fda1ff78bd2e3e36917319145e82 + last_write_checksum: sha1:4f50b660d414adea1d509dfc957eb74a12654ee4 + pristine_git_object: 63b4eb8541c2b110dab6dda746fef9ac074611f1 tests/test_tools.py: id: 70889bdf7321 last_write_checksum: sha1:3c0c220f8975b050c322f6475e95f7af4e65b995 @@ -7144,10 +7144,7 @@ generatedTests: updateshortcut: "2025-06-12T19:13:52-04:00" listfindingsexports: "2025-12-10T17:53:31Z" downloadfindingsexport: "2025-12-10T17:53:31Z" -releaseNotes: | - ## Python SDK Changes: - * `glean.governance.createfindingsexport()`: `response.export_size` **Added** - * `glean.governance.listfindingsexports()`: `response.exports.[].export_size` **Added** +releaseNotes: "## Python SDK Changes:\n* `glean.client.announcements.create()`: \n * `request.body.structured_list.[].document.metadata.author.related_documents.[].results.[].structured_results.[].meeting` **Changed**\n * `response.body.structured_list.[].document.metadata.author.related_documents.[].results.[].structured_results.[].meeting` **Changed**\n* `glean.client.announcements.update()`: \n * `request.body.structured_list.[].document.metadata.author.related_documents.[].results.[].structured_results.[].meeting` **Changed**\n * `response.body.structured_list.[].document.metadata.author.related_documents.[].results.[].structured_results.[].meeting` **Changed**\n* `glean.client.answers.create()`: \n * `request.data.added_roles.[].person.related_documents.[].results.[].structured_results.[].meeting` **Changed**\n * `response.added_roles.[].person.related_documents.[].results.[].structured_results.[].meeting` **Changed**\n* `glean.client.answers.update()`: \n * `request.added_roles.[].person.related_documents.[].results.[].structured_results.[].meeting` **Changed**\n * `response.added_roles.[].person.related_documents.[].results.[].structured_results.[].meeting` **Changed**\n* `glean.client.answers.retrieve()`: `response.answer_result.answer.added_roles.[].person.related_documents.[].results.[].structured_results.[].meeting` **Changed**\n* `glean.client.answers.list()`: `response.answer_results.[].answer.added_roles.[].person.related_documents.[].results.[].structured_results.[].meeting` **Changed**\n* `glean.client.chat.create()`: \n * `request.messages.[].citations.[].source_document.metadata.author.related_documents.[].results.[].structured_results.[].meeting` **Changed**\n * `response.messages.[].citations.[].source_document.metadata.author.related_documents.[].results.[].structured_results.[].meeting` **Changed**\n* `glean.client.chat.retrieve()`: `response.chat_result.chat.created_by.related_documents.[].results.[].structured_results.[].meeting` **Changed**\n* `glean.client.chat.list()`: `response.chat_results.[].chat.created_by.related_documents.[].results.[].structured_results.[].meeting` **Changed**\n* `glean.client.chat.create_stream()`: \n * `request.messages.[].citations.[].source_document.metadata.author.related_documents.[].results.[].structured_results.[].meeting` **Changed**\n* `glean.client.collections.add_items()`: `response.collection.added_roles.[].person.related_documents.[].results.[].structured_results.[].meeting` **Changed**\n* `glean.client.collections.create()`: \n * `request.added_roles.[].person.related_documents.[].results.[].structured_results.[].meeting` **Changed**\n * `response.[class].collection.added_roles.[].person.related_documents.[].results.[].structured_results.[].meeting` **Changed**\n* `glean.client.collections.delete_item()`: `response.collection.added_roles.[].person.related_documents.[].results.[].structured_results.[].meeting` **Changed**\n* `glean.client.collections.update()`: \n * `request.added_roles.[].person.related_documents.[].results.[].structured_results.[].meeting` **Changed**\n * `response.added_roles.[].person.related_documents.[].results.[].structured_results.[].meeting` **Changed**\n* `glean.client.collections.update_item()`: `response.collection.added_roles.[].person.related_documents.[].results.[].structured_results.[].meeting` **Changed**\n* `glean.client.collections.retrieve()`: `response.collection.added_roles.[].person.related_documents.[].results.[].structured_results.[].meeting` **Changed**\n* `glean.client.collections.list()`: `response.collections.[].added_roles.[].person.related_documents.[].results.[].structured_results.[].meeting` **Changed**\n* `glean.client.documents.retrieve()`: `response.documents.{}.[document].metadata.author.related_documents.[].results.[].structured_results.[].meeting` **Changed**\n* `glean.client.documents.retrieve_by_facets()`: `response.documents.[].metadata.author.related_documents.[].results.[].structured_results.[].meeting` **Changed**\n* `glean.client.insights.retrieve()`: `response` **Changed**\n* `glean.client.messages.retrieve()`: `response.search_response.results.[].structured_results.[].meeting` **Changed**\n* `glean.client.pins.update()`: `response.attribution.related_documents.[].results.[].structured_results.[].meeting` **Changed**\n* `glean.client.pins.retrieve()`: `response.pin.attribution.related_documents.[].results.[].structured_results.[].meeting` **Changed**\n* `glean.client.pins.list()`: `response.pins.[].attribution.related_documents.[].results.[].structured_results.[].meeting` **Changed**\n* `glean.client.pins.create()`: `response.attribution.related_documents.[].results.[].structured_results.[].meeting` **Changed**\n* `glean.client.search.query_as_admin()`: \n * `request.source_document.metadata.author.related_documents.[].results.[].structured_results.[].meeting` **Changed**\n * `response.results.[].structured_results.[].meeting` **Changed**\n* `glean.client.search.autocomplete()`: `response.results.[].document.metadata.author.related_documents.[].results.[].structured_results.[].meeting` **Changed**\n* `glean.client.search.retrieve_feed()`: `response.results.[].primary_entry.created_by.related_documents.[].results.[].structured_results.[].meeting` **Changed**\n* `glean.client.search.recommendations()`: \n * `request.source_document.metadata.author.related_documents.[].results.[].structured_results.[].meeting` **Changed**\n * `response.results.[].structured_results.[].meeting` **Changed**\n* `glean.client.search.query()`: \n * `request.source_document.metadata.author.related_documents.[].results.[].structured_results.[].meeting` **Changed**\n * `response.results.[].structured_results.[].meeting` **Changed**\n* `glean.client.entities.list()`: `response.results.[].related_documents.[].results.[].structured_results.[].meeting` **Changed**\n* `glean.client.entities.read_people()`: `response.results.[].related_documents.[].results.[].structured_results.[].meeting` **Changed**\n* `glean.client.shortcuts.create()`: \n * `request.data.added_roles.[].person.related_documents.[].results.[].structured_results.[].meeting` **Changed**\n * `response.shortcut.added_roles.[].person.related_documents.[].results.[].structured_results.[].meeting` **Changed**\n* `glean.client.shortcuts.retrieve()`: `response.shortcut.added_roles.[].person.related_documents.[].results.[].structured_results.[].meeting` **Changed**\n* `glean.client.shortcuts.list()`: `response.shortcuts.[].added_roles.[].person.related_documents.[].results.[].structured_results.[].meeting` **Changed**\n* `glean.client.shortcuts.update()`: \n * `request.added_roles.[].person.related_documents.[].results.[].structured_results.[].meeting` **Changed**\n * `response.shortcut.added_roles.[].person.related_documents.[].results.[].structured_results.[].meeting` **Changed**\n* `glean.client.verification.add_reminder()`: `response.metadata.last_verifier.related_documents.[].results.[].structured_results.[].meeting` **Changed**\n* `glean.client.verification.list()`: `response.documents.[].metadata.last_verifier.related_documents.[].results.[].structured_results.[].meeting` **Changed**\n* `glean.client.verification.verify()`: `response.metadata.last_verifier.related_documents.[].results.[].structured_results.[].meeting` **Changed**\n* `glean.client.governance.data.policies.download()`: `error.status[400]` **Added**\n* `glean.governance.createfindingsexport()`: \n * `request.filter.archived` **Added**\n * `response.filter.archived` **Added**\n* `glean.governance.listfindingsexports()`: `response.exports.[].filter.archived` **Added**\n" generatedFiles: - .devcontainer/README.md - .devcontainer/devcontainer.json diff --git a/.speakeasy/gen.yaml b/.speakeasy/gen.yaml index 597163b3..c30cc2a2 100644 --- a/.speakeasy/gen.yaml +++ b/.speakeasy/gen.yaml @@ -31,7 +31,7 @@ generation: generateNewTests: true skipResponseBodyAssertions: true python: - version: 0.11.25 + version: 0.11.26 additionalDependencies: dev: {} main: {} @@ -44,6 +44,7 @@ python: - Glean Technologies, Inc. baseErrorName: GleanBaseError clientServerStatusCodesAsErrors: true + constFieldCasing: upper defaultErrorName: GleanError description: Python Client SDK Generated by Speakeasy. enableCustomCodeRegions: false diff --git a/.speakeasy/glean-merged-spec.yaml b/.speakeasy/glean-merged-spec.yaml index e448c8b1..2a213c2b 100644 --- a/.speakeasy/glean-merged-spec.yaml +++ b/.speakeasy/glean-merged-spec.yaml @@ -2,7 +2,7 @@ openapi: 3.0.0 info: version: 0.9.0 title: Glean API - x-source-commit-sha: 6c18cdaa8da169e191cc66885c326e2ea6d13644 + x-source-commit-sha: c19ca7b171064c3327461f56e24b989d9d91019a description: | # Introduction 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: These API clients provide type-safe, idiomatic interfaces for working with Glean IndexingAPIs in your language of choice. x-logo: url: https://app.glean.com/images/glean-text2.svg - x-open-api-commit-sha: c7a6190b989a16d24b879348f08e27efcb304566 + x-open-api-commit-sha: dff96374f270e664e9e5679f38291977f77e4b27 x-speakeasy-name: 'Glean API' servers: - url: https://{instance}-be.glean.com @@ -3350,6 +3350,8 @@ paths: schema: description: CSV of all the violations found for this policy. type: string + "400": + description: Bad request error (e.g., continuous policies are not supported). "403": description: Permissions error "500": @@ -5873,6 +5875,21 @@ components: attendees: $ref: "#/components/schemas/CalendarAttendees" description: The attendee list, including their response status + isCancelled: + type: boolean + description: Whether the meeting has been cancelled + location: + type: string + description: The location/venue of the meeting + responseStatus: + type: string + description: The current user's response status (accepted, declined, tentativelyAccepted, none) + conferenceUri: + type: string + description: The meeting join link (Teams, Zoom, etc.) + conferenceProvider: + type: string + description: The conference provider (e.g., "Microsoft Teams", "Zoom") AppResult: required: - datasource @@ -7617,6 +7634,9 @@ components: chatId: type: string description: The id of the Chat that context should be retrieved from and messages added to. An empty id starts a new Chat, and the Chat is saved if saveChat is true. + agentConfig: + $ref: "#/components/schemas/AgentConfig" + description: Describes the agent that will execute the request. ChatRestrictionFilters: allOf: - $ref: "#/components/schemas/RestrictionFilters" @@ -7635,9 +7655,6 @@ components: - $ref: "#/components/schemas/ChatRequestBase" - type: object properties: - agentConfig: - $ref: "#/components/schemas/AgentConfig" - description: Describes the agent that will execute the request. inclusions: $ref: "#/components/schemas/ChatRestrictionFilters" description: A list of filters which only allows chat to access certain content. @@ -8718,6 +8735,30 @@ components: $ref: "#/components/schemas/LabeledCountInfo" dailyActiveUserTimeseries: $ref: "#/components/schemas/LabeledCountInfo" + searchMonthlyActiveUserTimeseries: + $ref: "#/components/schemas/LabeledCountInfo" + searchWeeklyActiveUserTimeseries: + $ref: "#/components/schemas/LabeledCountInfo" + searchDailyActiveUserTimeseries: + $ref: "#/components/schemas/LabeledCountInfo" + assistantMonthlyActiveUserTimeseries: + $ref: "#/components/schemas/LabeledCountInfo" + assistantWeeklyActiveUserTimeseries: + $ref: "#/components/schemas/LabeledCountInfo" + assistantDailyActiveUserTimeseries: + $ref: "#/components/schemas/LabeledCountInfo" + agentsMonthlyActiveUserTimeseries: + $ref: "#/components/schemas/LabeledCountInfo" + agentsWeeklyActiveUserTimeseries: + $ref: "#/components/schemas/LabeledCountInfo" + agentsDailyActiveUserTimeseries: + $ref: "#/components/schemas/LabeledCountInfo" + searchesTimeseries: + $ref: "#/components/schemas/LabeledCountInfo" + assistantInteractionsTimeseries: + $ref: "#/components/schemas/LabeledCountInfo" + agentRunsTimeseries: + $ref: "#/components/schemas/LabeledCountInfo" searchDatasourceCounts: type: object additionalProperties: @@ -13045,6 +13086,8 @@ components: $ref: "#/components/schemas/DlpSeverity" timeRange: $ref: "#/components/schemas/TimeRangeFilter" + archived: + type: boolean ExportInfo: properties: createdBy: diff --git a/.speakeasy/workflow.lock b/.speakeasy/workflow.lock index 31f1aeca..26a76149 100644 --- a/.speakeasy/workflow.lock +++ b/.speakeasy/workflow.lock @@ -1,12 +1,12 @@ -speakeasyVersion: 1.675.4 +speakeasyVersion: 1.680.5 sources: Glean API: sourceNamespace: glean-api-specs - sourceRevisionDigest: sha256:a38a82dd27fe58019cf7c85c19cbd402e93361c9df38ce070f2ca419eeab832f - sourceBlobDigest: sha256:3840e8da76cb1e20b3c7f053acee46de0e4bcb58e17379e235342990ead4c8f8 + sourceRevisionDigest: sha256:687f43dc9c2b2ec4b99b40adf81c264e8270bd6accd9c24933eae789b59231c8 + sourceBlobDigest: sha256:021e3e4b29e41050b2817022ab005e49f9dfad612a674fe0984bb64404dfbc68 tags: - latest - - speakeasy-sdk-regen-1765503976 + - speakeasy-sdk-regen-1765586442 Glean Client API: sourceNamespace: glean-client-api sourceRevisionDigest: sha256:4edc63ad559e4f2c9fb9ebf5edaaaaa9269f1874d271cfd84b441d6dacac43d2 @@ -17,10 +17,10 @@ targets: glean: source: Glean API sourceNamespace: glean-api-specs - sourceRevisionDigest: sha256:a38a82dd27fe58019cf7c85c19cbd402e93361c9df38ce070f2ca419eeab832f - sourceBlobDigest: sha256:3840e8da76cb1e20b3c7f053acee46de0e4bcb58e17379e235342990ead4c8f8 + sourceRevisionDigest: sha256:687f43dc9c2b2ec4b99b40adf81c264e8270bd6accd9c24933eae789b59231c8 + sourceBlobDigest: sha256:021e3e4b29e41050b2817022ab005e49f9dfad612a674fe0984bb64404dfbc68 codeSamplesNamespace: glean-api-specs-python-code-samples - codeSamplesRevisionDigest: sha256:f411ba167f9247fde5f4d1684411db4c43e5c04dcdcf5a631b904551a5fed7b1 + codeSamplesRevisionDigest: sha256:049c58bf36e9a996c088dc9107438febd3a0b7fe2d6dcb5bd9c3efa7402d4aad workflow: workflowVersion: 1.0.0 speakeasyVersion: latest diff --git a/RELEASES.md b/RELEASES.md index 30b2bc17..156df548 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -478,4 +478,14 @@ Based on: ### Generated - [python v0.11.25] . ### Releases -- [PyPI v0.11.25] https://pypi.org/project/glean-api-client/0.11.25 - . \ No newline at end of file +- [PyPI v0.11.25] https://pypi.org/project/glean-api-client/0.11.25 - . + +## 2025-12-26 01:47:06 +### Changes +Based on: +- OpenAPI Doc +- Speakeasy CLI 1.680.5 (2.788.7) https://github.com/speakeasy-api/speakeasy +### Generated +- [python v0.11.26] . +### Releases +- [PyPI v0.11.26] https://pypi.org/project/glean-api-client/0.11.26 - . \ No newline at end of file diff --git a/docs/models/dlpfindingfilter.md b/docs/models/dlpfindingfilter.md index e49bf3d6..cf64c8cf 100644 --- a/docs/models/dlpfindingfilter.md +++ b/docs/models/dlpfindingfilter.md @@ -13,4 +13,5 @@ | `document_ids` | List[*str*] | :heavy_minus_sign: | N/A | | `severity` | [Optional[models.DlpSeverity]](../models/dlpseverity.md) | :heavy_minus_sign: | Severity levels for DLP findings and analyses. | | `document_severity` | List[[models.DlpSeverity](../models/dlpseverity.md)] | :heavy_minus_sign: | N/A | -| `time_range` | [Optional[models.TimeRangeFilter]](../models/timerangefilter.md) | :heavy_minus_sign: | N/A | \ No newline at end of file +| `time_range` | [Optional[models.TimeRangeFilter]](../models/timerangefilter.md) | :heavy_minus_sign: | N/A | +| `archived` | *Optional[bool]* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/insightsoverviewresponse.md b/docs/models/insightsoverviewresponse.md index 6cd38a87..76c9c9a8 100644 --- a/docs/models/insightsoverviewresponse.md +++ b/docs/models/insightsoverviewresponse.md @@ -19,6 +19,18 @@ | `monthly_active_user_timeseries` | [Optional[models.LabeledCountInfo]](../models/labeledcountinfo.md) | :heavy_minus_sign: | N/A | | `weekly_active_user_timeseries` | [Optional[models.LabeledCountInfo]](../models/labeledcountinfo.md) | :heavy_minus_sign: | N/A | | `daily_active_user_timeseries` | [Optional[models.LabeledCountInfo]](../models/labeledcountinfo.md) | :heavy_minus_sign: | N/A | +| `search_monthly_active_user_timeseries` | [Optional[models.LabeledCountInfo]](../models/labeledcountinfo.md) | :heavy_minus_sign: | N/A | +| `search_weekly_active_user_timeseries` | [Optional[models.LabeledCountInfo]](../models/labeledcountinfo.md) | :heavy_minus_sign: | N/A | +| `search_daily_active_user_timeseries` | [Optional[models.LabeledCountInfo]](../models/labeledcountinfo.md) | :heavy_minus_sign: | N/A | +| `assistant_monthly_active_user_timeseries` | [Optional[models.LabeledCountInfo]](../models/labeledcountinfo.md) | :heavy_minus_sign: | N/A | +| `assistant_weekly_active_user_timeseries` | [Optional[models.LabeledCountInfo]](../models/labeledcountinfo.md) | :heavy_minus_sign: | N/A | +| `assistant_daily_active_user_timeseries` | [Optional[models.LabeledCountInfo]](../models/labeledcountinfo.md) | :heavy_minus_sign: | N/A | +| `agents_monthly_active_user_timeseries` | [Optional[models.LabeledCountInfo]](../models/labeledcountinfo.md) | :heavy_minus_sign: | N/A | +| `agents_weekly_active_user_timeseries` | [Optional[models.LabeledCountInfo]](../models/labeledcountinfo.md) | :heavy_minus_sign: | N/A | +| `agents_daily_active_user_timeseries` | [Optional[models.LabeledCountInfo]](../models/labeledcountinfo.md) | :heavy_minus_sign: | N/A | +| `searches_timeseries` | [Optional[models.LabeledCountInfo]](../models/labeledcountinfo.md) | :heavy_minus_sign: | N/A | +| `assistant_interactions_timeseries` | [Optional[models.LabeledCountInfo]](../models/labeledcountinfo.md) | :heavy_minus_sign: | N/A | +| `agent_runs_timeseries` | [Optional[models.LabeledCountInfo]](../models/labeledcountinfo.md) | :heavy_minus_sign: | N/A | | `search_datasource_counts` | Dict[str, *int*] | :heavy_minus_sign: | Counts of search result clicks, by datasource, over the specified time period in the specified departments. | | `chat_datasource_counts` | Dict[str, *int*] | :heavy_minus_sign: | Counts of cited documents in chat, by datasource, over the specified time period in the specified departments. | | `per_user_insights` | List[[models.PerUserInsight](../models/peruserinsight.md)] | :heavy_minus_sign: | Per-user insights, over the specified time period in the specified departments. All current users in the organization who have signed into Glean at least once are included. | \ No newline at end of file diff --git a/docs/models/meeting.md b/docs/models/meeting.md index 80770e91..977c94c1 100644 --- a/docs/models/meeting.md +++ b/docs/models/meeting.md @@ -3,12 +3,17 @@ ## Fields -| Field | Type | Required | Description | -| -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | -| `id` | *Optional[str]* | :heavy_minus_sign: | N/A | -| `title` | *Optional[str]* | :heavy_minus_sign: | N/A | -| `description` | *Optional[str]* | :heavy_minus_sign: | N/A | -| `url` | *Optional[str]* | :heavy_minus_sign: | N/A | -| `start_time` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_minus_sign: | N/A | -| `end_time` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_minus_sign: | N/A | -| `attendees` | [Optional[models.CalendarAttendees]](../models/calendarattendees.md) | :heavy_minus_sign: | N/A | \ No newline at end of file +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | +| `id` | *Optional[str]* | :heavy_minus_sign: | N/A | +| `title` | *Optional[str]* | :heavy_minus_sign: | N/A | +| `description` | *Optional[str]* | :heavy_minus_sign: | N/A | +| `url` | *Optional[str]* | :heavy_minus_sign: | N/A | +| `start_time` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_minus_sign: | N/A | +| `end_time` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_minus_sign: | N/A | +| `attendees` | [Optional[models.CalendarAttendees]](../models/calendarattendees.md) | :heavy_minus_sign: | N/A | +| `is_cancelled` | *Optional[bool]* | :heavy_minus_sign: | Whether the meeting has been cancelled | +| `location` | *Optional[str]* | :heavy_minus_sign: | The location/venue of the meeting | +| `response_status` | *Optional[str]* | :heavy_minus_sign: | The current user's response status (accepted, declined, tentativelyAccepted, none) | +| `conference_uri` | *Optional[str]* | :heavy_minus_sign: | The meeting join link (Teams, Zoom, etc.) | +| `conference_provider` | *Optional[str]* | :heavy_minus_sign: | The conference provider (e.g., "Microsoft Teams", "Zoom") | \ No newline at end of file diff --git a/pyproject.toml b/pyproject.toml index 74e7a505..4d89b75d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,7 +1,7 @@ [project] name = "glean-api-client" -version = "0.11.25" +version = "0.11.26" description = "Python Client SDK Generated by Speakeasy." authors = [{ name = "Glean Technologies, Inc." },] readme = "README-PYPI.md" diff --git a/src/glean/api_client/_version.py b/src/glean/api_client/_version.py index 54635c2e..5a198b45 100644 --- a/src/glean/api_client/_version.py +++ b/src/glean/api_client/_version.py @@ -3,10 +3,10 @@ import importlib.metadata __title__: str = "glean-api-client" -__version__: str = "0.11.25" +__version__: str = "0.11.26" __openapi_doc_version__: str = "0.9.0" -__gen_version__: str = "2.779.2" -__user_agent__: str = "speakeasy-sdk/python 0.11.25 2.779.2 0.9.0 glean-api-client" +__gen_version__: str = "2.788.7" +__user_agent__: str = "speakeasy-sdk/python 0.11.26 2.788.7 0.9.0 glean-api-client" try: if __package__ is not None: diff --git a/src/glean/api_client/errors/gleandataerror.py b/src/glean/api_client/errors/gleandataerror.py index 6ac9f877..978b0be0 100644 --- a/src/glean/api_client/errors/gleandataerror.py +++ b/src/glean/api_client/errors/gleandataerror.py @@ -19,18 +19,15 @@ class GleanDataErrorData(BaseModel): Optional[bool], pydantic.Field(alias="badGmailToken") ] = None r"""Indicates the gmail results could not be fetched due to bad token.""" - bad_outlook_token: Annotated[ Optional[bool], pydantic.Field(alias="badOutlookToken") ] = None r"""Indicates the outlook results could not be fetched due to bad token.""" - invalid_operators: Annotated[ Optional[List[models_invalidoperatorvalueerror.InvalidOperatorValueError]], pydantic.Field(alias="invalidOperators"), ] = None r"""Indicates results could not be fetched due to invalid operators in the query.""" - error_messages: Annotated[ Optional[List[models_errormessage.ErrorMessage]], pydantic.Field(alias="errorMessages"), diff --git a/src/glean/api_client/models/dlpfindingfilter.py b/src/glean/api_client/models/dlpfindingfilter.py index 4f262ed8..903b3bb5 100644 --- a/src/glean/api_client/models/dlpfindingfilter.py +++ b/src/glean/api_client/models/dlpfindingfilter.py @@ -20,6 +20,7 @@ class DlpFindingFilterTypedDict(TypedDict): r"""Severity levels for DLP findings and analyses.""" document_severity: NotRequired[List[DlpSeverity]] time_range: NotRequired[TimeRangeFilterTypedDict] + archived: NotRequired[bool] class DlpFindingFilter(BaseModel): @@ -47,3 +48,5 @@ class DlpFindingFilter(BaseModel): time_range: Annotated[ Optional[TimeRangeFilter], pydantic.Field(alias="timeRange") ] = None + + archived: Optional[bool] = None diff --git a/src/glean/api_client/models/insightsoverviewresponse.py b/src/glean/api_client/models/insightsoverviewresponse.py index 32b4ca5c..ba7b19e9 100644 --- a/src/glean/api_client/models/insightsoverviewresponse.py +++ b/src/glean/api_client/models/insightsoverviewresponse.py @@ -34,6 +34,18 @@ class InsightsOverviewResponseTypedDict(TypedDict): monthly_active_user_timeseries: NotRequired[LabeledCountInfoTypedDict] weekly_active_user_timeseries: NotRequired[LabeledCountInfoTypedDict] daily_active_user_timeseries: NotRequired[LabeledCountInfoTypedDict] + search_monthly_active_user_timeseries: NotRequired[LabeledCountInfoTypedDict] + search_weekly_active_user_timeseries: NotRequired[LabeledCountInfoTypedDict] + search_daily_active_user_timeseries: NotRequired[LabeledCountInfoTypedDict] + assistant_monthly_active_user_timeseries: NotRequired[LabeledCountInfoTypedDict] + assistant_weekly_active_user_timeseries: NotRequired[LabeledCountInfoTypedDict] + assistant_daily_active_user_timeseries: NotRequired[LabeledCountInfoTypedDict] + agents_monthly_active_user_timeseries: NotRequired[LabeledCountInfoTypedDict] + agents_weekly_active_user_timeseries: NotRequired[LabeledCountInfoTypedDict] + agents_daily_active_user_timeseries: NotRequired[LabeledCountInfoTypedDict] + searches_timeseries: NotRequired[LabeledCountInfoTypedDict] + assistant_interactions_timeseries: NotRequired[LabeledCountInfoTypedDict] + agent_runs_timeseries: NotRequired[LabeledCountInfoTypedDict] search_datasource_counts: NotRequired[Dict[str, int]] r"""Counts of search result clicks, by datasource, over the specified time period in the specified departments.""" chat_datasource_counts: NotRequired[Dict[str, int]] @@ -102,6 +114,64 @@ class InsightsOverviewResponse(BaseModel): Optional[LabeledCountInfo], pydantic.Field(alias="dailyActiveUserTimeseries") ] = None + search_monthly_active_user_timeseries: Annotated[ + Optional[LabeledCountInfo], + pydantic.Field(alias="searchMonthlyActiveUserTimeseries"), + ] = None + + search_weekly_active_user_timeseries: Annotated[ + Optional[LabeledCountInfo], + pydantic.Field(alias="searchWeeklyActiveUserTimeseries"), + ] = None + + search_daily_active_user_timeseries: Annotated[ + Optional[LabeledCountInfo], + pydantic.Field(alias="searchDailyActiveUserTimeseries"), + ] = None + + assistant_monthly_active_user_timeseries: Annotated[ + Optional[LabeledCountInfo], + pydantic.Field(alias="assistantMonthlyActiveUserTimeseries"), + ] = None + + assistant_weekly_active_user_timeseries: Annotated[ + Optional[LabeledCountInfo], + pydantic.Field(alias="assistantWeeklyActiveUserTimeseries"), + ] = None + + assistant_daily_active_user_timeseries: Annotated[ + Optional[LabeledCountInfo], + pydantic.Field(alias="assistantDailyActiveUserTimeseries"), + ] = None + + agents_monthly_active_user_timeseries: Annotated[ + Optional[LabeledCountInfo], + pydantic.Field(alias="agentsMonthlyActiveUserTimeseries"), + ] = None + + agents_weekly_active_user_timeseries: Annotated[ + Optional[LabeledCountInfo], + pydantic.Field(alias="agentsWeeklyActiveUserTimeseries"), + ] = None + + agents_daily_active_user_timeseries: Annotated[ + Optional[LabeledCountInfo], + pydantic.Field(alias="agentsDailyActiveUserTimeseries"), + ] = None + + searches_timeseries: Annotated[ + Optional[LabeledCountInfo], pydantic.Field(alias="searchesTimeseries") + ] = None + + assistant_interactions_timeseries: Annotated[ + Optional[LabeledCountInfo], + pydantic.Field(alias="assistantInteractionsTimeseries"), + ] = None + + agent_runs_timeseries: Annotated[ + Optional[LabeledCountInfo], pydantic.Field(alias="agentRunsTimeseries") + ] = None + search_datasource_counts: Annotated[ Optional[Dict[str, int]], pydantic.Field(alias="searchDatasourceCounts") ] = None diff --git a/src/glean/api_client/models/meeting.py b/src/glean/api_client/models/meeting.py index 956309eb..a877398e 100644 --- a/src/glean/api_client/models/meeting.py +++ b/src/glean/api_client/models/meeting.py @@ -19,6 +19,16 @@ class MeetingTypedDict(TypedDict): start_time: NotRequired[datetime] end_time: NotRequired[datetime] attendees: NotRequired["CalendarAttendeesTypedDict"] + is_cancelled: NotRequired[bool] + r"""Whether the meeting has been cancelled""" + location: NotRequired[str] + r"""The location/venue of the meeting""" + response_status: NotRequired[str] + r"""The current user's response status (accepted, declined, tentativelyAccepted, none)""" + conference_uri: NotRequired[str] + r"""The meeting join link (Teams, Zoom, etc.)""" + conference_provider: NotRequired[str] + r"""The conference provider (e.g., \"Microsoft Teams\", \"Zoom\")""" class Meeting(BaseModel): @@ -35,3 +45,24 @@ class Meeting(BaseModel): end_time: Annotated[Optional[datetime], pydantic.Field(alias="endTime")] = None attendees: Optional["CalendarAttendees"] = None + + is_cancelled: Annotated[Optional[bool], pydantic.Field(alias="isCancelled")] = None + r"""Whether the meeting has been cancelled""" + + location: Optional[str] = None + r"""The location/venue of the meeting""" + + response_status: Annotated[ + Optional[str], pydantic.Field(alias="responseStatus") + ] = None + r"""The current user's response status (accepted, declined, tentativelyAccepted, none)""" + + conference_uri: Annotated[Optional[str], pydantic.Field(alias="conferenceUri")] = ( + None + ) + r"""The meeting join link (Teams, Zoom, etc.)""" + + conference_provider: Annotated[ + Optional[str], pydantic.Field(alias="conferenceProvider") + ] = None + r"""The conference provider (e.g., \"Microsoft Teams\", \"Zoom\")""" diff --git a/src/glean/api_client/policies.py b/src/glean/api_client/policies.py index 5019d51b..b2349e2e 100644 --- a/src/glean/api_client/policies.py +++ b/src/glean/api_client/policies.py @@ -835,13 +835,13 @@ def download( ), ), request=req, - error_status_codes=["403", "4XX", "500", "5XX"], + error_status_codes=["400", "403", "4XX", "500", "5XX"], retry_config=retry_config, ) if utils.match_response(http_res, "200", "text/csv; charset=UTF-8"): return http_res.text - if utils.match_response(http_res, ["403", "4XX"], "*"): + if utils.match_response(http_res, ["400", "403", "4XX"], "*"): http_res_text = utils.stream_to_text(http_res) raise errors.GleanError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, ["500", "5XX"], "*"): @@ -919,13 +919,13 @@ async def download_async( ), ), request=req, - error_status_codes=["403", "4XX", "500", "5XX"], + error_status_codes=["400", "403", "4XX", "500", "5XX"], retry_config=retry_config, ) if utils.match_response(http_res, "200", "text/csv; charset=UTF-8"): return http_res.text - if utils.match_response(http_res, ["403", "4XX"], "*"): + if utils.match_response(http_res, ["400", "403", "4XX"], "*"): http_res_text = await utils.stream_to_text_async(http_res) raise errors.GleanError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, ["500", "5XX"], "*"): diff --git a/tests/mockserver/internal/sdk/models/components/dlpfindingfilter.go b/tests/mockserver/internal/sdk/models/components/dlpfindingfilter.go index a9a6d262..89c4da54 100644 --- a/tests/mockserver/internal/sdk/models/components/dlpfindingfilter.go +++ b/tests/mockserver/internal/sdk/models/components/dlpfindingfilter.go @@ -13,6 +13,7 @@ type DlpFindingFilter struct { Severity *DlpSeverity `json:"severity,omitempty"` DocumentSeverity []DlpSeverity `json:"documentSeverity,omitempty"` TimeRange *TimeRangeFilter `json:"timeRange,omitempty"` + Archived *bool `json:"archived,omitempty"` } func (o *DlpFindingFilter) GetInfoType() *string { @@ -77,3 +78,10 @@ func (o *DlpFindingFilter) GetTimeRange() *TimeRangeFilter { } return o.TimeRange } + +func (o *DlpFindingFilter) GetArchived() *bool { + if o == nil { + return nil + } + return o.Archived +} diff --git a/tests/mockserver/internal/sdk/models/components/insightsoverviewresponse.go b/tests/mockserver/internal/sdk/models/components/insightsoverviewresponse.go index 83ba55ca..96074649 100644 --- a/tests/mockserver/internal/sdk/models/components/insightsoverviewresponse.go +++ b/tests/mockserver/internal/sdk/models/components/insightsoverviewresponse.go @@ -20,10 +20,22 @@ type InsightsOverviewResponse struct { // Unix timestamp of the last update for the insights data in the response. LastUpdatedTs *int64 `json:"lastUpdatedTs,omitempty"` // Search session satisfaction rate, over the specified time period in the specified departments. - SearchSessionSatisfaction *float32 `json:"searchSessionSatisfaction,omitempty"` - MonthlyActiveUserTimeseries *LabeledCountInfo `json:"monthlyActiveUserTimeseries,omitempty"` - WeeklyActiveUserTimeseries *LabeledCountInfo `json:"weeklyActiveUserTimeseries,omitempty"` - DailyActiveUserTimeseries *LabeledCountInfo `json:"dailyActiveUserTimeseries,omitempty"` + SearchSessionSatisfaction *float32 `json:"searchSessionSatisfaction,omitempty"` + MonthlyActiveUserTimeseries *LabeledCountInfo `json:"monthlyActiveUserTimeseries,omitempty"` + WeeklyActiveUserTimeseries *LabeledCountInfo `json:"weeklyActiveUserTimeseries,omitempty"` + DailyActiveUserTimeseries *LabeledCountInfo `json:"dailyActiveUserTimeseries,omitempty"` + SearchMonthlyActiveUserTimeseries *LabeledCountInfo `json:"searchMonthlyActiveUserTimeseries,omitempty"` + SearchWeeklyActiveUserTimeseries *LabeledCountInfo `json:"searchWeeklyActiveUserTimeseries,omitempty"` + SearchDailyActiveUserTimeseries *LabeledCountInfo `json:"searchDailyActiveUserTimeseries,omitempty"` + AssistantMonthlyActiveUserTimeseries *LabeledCountInfo `json:"assistantMonthlyActiveUserTimeseries,omitempty"` + AssistantWeeklyActiveUserTimeseries *LabeledCountInfo `json:"assistantWeeklyActiveUserTimeseries,omitempty"` + AssistantDailyActiveUserTimeseries *LabeledCountInfo `json:"assistantDailyActiveUserTimeseries,omitempty"` + AgentsMonthlyActiveUserTimeseries *LabeledCountInfo `json:"agentsMonthlyActiveUserTimeseries,omitempty"` + AgentsWeeklyActiveUserTimeseries *LabeledCountInfo `json:"agentsWeeklyActiveUserTimeseries,omitempty"` + AgentsDailyActiveUserTimeseries *LabeledCountInfo `json:"agentsDailyActiveUserTimeseries,omitempty"` + SearchesTimeseries *LabeledCountInfo `json:"searchesTimeseries,omitempty"` + AssistantInteractionsTimeseries *LabeledCountInfo `json:"assistantInteractionsTimeseries,omitempty"` + AgentRunsTimeseries *LabeledCountInfo `json:"agentRunsTimeseries,omitempty"` // Counts of search result clicks, by datasource, over the specified time period in the specified departments. SearchDatasourceCounts map[string]int64 `json:"searchDatasourceCounts,omitempty"` // Counts of cited documents in chat, by datasource, over the specified time period in the specified departments. @@ -130,6 +142,90 @@ func (o *InsightsOverviewResponse) GetDailyActiveUserTimeseries() *LabeledCountI return o.DailyActiveUserTimeseries } +func (o *InsightsOverviewResponse) GetSearchMonthlyActiveUserTimeseries() *LabeledCountInfo { + if o == nil { + return nil + } + return o.SearchMonthlyActiveUserTimeseries +} + +func (o *InsightsOverviewResponse) GetSearchWeeklyActiveUserTimeseries() *LabeledCountInfo { + if o == nil { + return nil + } + return o.SearchWeeklyActiveUserTimeseries +} + +func (o *InsightsOverviewResponse) GetSearchDailyActiveUserTimeseries() *LabeledCountInfo { + if o == nil { + return nil + } + return o.SearchDailyActiveUserTimeseries +} + +func (o *InsightsOverviewResponse) GetAssistantMonthlyActiveUserTimeseries() *LabeledCountInfo { + if o == nil { + return nil + } + return o.AssistantMonthlyActiveUserTimeseries +} + +func (o *InsightsOverviewResponse) GetAssistantWeeklyActiveUserTimeseries() *LabeledCountInfo { + if o == nil { + return nil + } + return o.AssistantWeeklyActiveUserTimeseries +} + +func (o *InsightsOverviewResponse) GetAssistantDailyActiveUserTimeseries() *LabeledCountInfo { + if o == nil { + return nil + } + return o.AssistantDailyActiveUserTimeseries +} + +func (o *InsightsOverviewResponse) GetAgentsMonthlyActiveUserTimeseries() *LabeledCountInfo { + if o == nil { + return nil + } + return o.AgentsMonthlyActiveUserTimeseries +} + +func (o *InsightsOverviewResponse) GetAgentsWeeklyActiveUserTimeseries() *LabeledCountInfo { + if o == nil { + return nil + } + return o.AgentsWeeklyActiveUserTimeseries +} + +func (o *InsightsOverviewResponse) GetAgentsDailyActiveUserTimeseries() *LabeledCountInfo { + if o == nil { + return nil + } + return o.AgentsDailyActiveUserTimeseries +} + +func (o *InsightsOverviewResponse) GetSearchesTimeseries() *LabeledCountInfo { + if o == nil { + return nil + } + return o.SearchesTimeseries +} + +func (o *InsightsOverviewResponse) GetAssistantInteractionsTimeseries() *LabeledCountInfo { + if o == nil { + return nil + } + return o.AssistantInteractionsTimeseries +} + +func (o *InsightsOverviewResponse) GetAgentRunsTimeseries() *LabeledCountInfo { + if o == nil { + return nil + } + return o.AgentRunsTimeseries +} + func (o *InsightsOverviewResponse) GetSearchDatasourceCounts() map[string]int64 { if o == nil { return nil diff --git a/tests/mockserver/internal/sdk/models/components/meeting.go b/tests/mockserver/internal/sdk/models/components/meeting.go index b34e924e..0c852dd3 100644 --- a/tests/mockserver/internal/sdk/models/components/meeting.go +++ b/tests/mockserver/internal/sdk/models/components/meeting.go @@ -15,6 +15,16 @@ type Meeting struct { StartTime *time.Time `json:"startTime,omitempty"` EndTime *time.Time `json:"endTime,omitempty"` Attendees *CalendarAttendees `json:"attendees,omitempty"` + // Whether the meeting has been cancelled + IsCancelled *bool `json:"isCancelled,omitempty"` + // The location/venue of the meeting + Location *string `json:"location,omitempty"` + // The current user's response status (accepted, declined, tentativelyAccepted, none) + ResponseStatus *string `json:"responseStatus,omitempty"` + // The meeting join link (Teams, Zoom, etc.) + ConferenceURI *string `json:"conferenceUri,omitempty"` + // The conference provider (e.g., "Microsoft Teams", "Zoom") + ConferenceProvider *string `json:"conferenceProvider,omitempty"` } func (m Meeting) MarshalJSON() ([]byte, error) { @@ -76,3 +86,38 @@ func (o *Meeting) GetAttendees() *CalendarAttendees { } return o.Attendees } + +func (o *Meeting) GetIsCancelled() *bool { + if o == nil { + return nil + } + return o.IsCancelled +} + +func (o *Meeting) GetLocation() *string { + if o == nil { + return nil + } + return o.Location +} + +func (o *Meeting) GetResponseStatus() *string { + if o == nil { + return nil + } + return o.ResponseStatus +} + +func (o *Meeting) GetConferenceURI() *string { + if o == nil { + return nil + } + return o.ConferenceURI +} + +func (o *Meeting) GetConferenceProvider() *string { + if o == nil { + return nil + } + return o.ConferenceProvider +} diff --git a/tests/mockserver/internal/sdk/models/components/uploadchatfilesrequest.go b/tests/mockserver/internal/sdk/models/components/uploadchatfilesrequest.go index 7c324627..0a5cc028 100644 --- a/tests/mockserver/internal/sdk/models/components/uploadchatfilesrequest.go +++ b/tests/mockserver/internal/sdk/models/components/uploadchatfilesrequest.go @@ -27,7 +27,7 @@ func (o *File) GetContent() io.Reader { type UploadChatFilesRequest struct { // Raw files to be uploaded for chat in binary format. - Files []File `multipartForm:"file"` + Files []File `multipartForm:"file,name=files"` } func (o *UploadChatFilesRequest) GetFiles() []File { diff --git a/tests/test_summarize.py b/tests/test_summarize.py index cac8e978..63b4eb85 100644 --- a/tests/test_summarize.py +++ b/tests/test_summarize.py @@ -1,6 +1,6 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" -from glean.api_client import Glean, models +from glean.api_client import Glean import os from tests.test_client import create_test_http_client @@ -18,12 +18,10 @@ def test_summarize_summarize(): res = glean.client.documents.summarize( document_specs=[ { - "ugc_type": models.DocumentSpecUgcType1.SHORTCUTS, - "content_id": 602763, + "url": "https://dim-glider.com/", }, { - "ugc_type": models.DocumentSpecUgcType1.SHORTCUTS, - "content_id": 602763, + "id": "", }, ] ) From 7d7b633b691a54d39b44e7490c531e672f180fcf Mon Sep 17 00:00:00 2001 From: "speakeasy-github[bot]" <128539517+speakeasy-github[bot]@users.noreply.github.com> Date: Fri, 26 Dec 2025 01:51:00 +0000 Subject: [PATCH 2/2] empty commit to trigger [run-tests] workflow