From 351d601eb8f9708910250b96bcaed08bb2ba0486 Mon Sep 17 00:00:00 2001 From: speakeasybot Date: Wed, 25 Feb 2026 18:16:26 +0000 Subject: [PATCH 1/2] =?UTF-8?q?##=20Python=20SDK=20Changes:=20*=20`glean.c?= =?UTF-8?q?lient.messages.retrieve()`:=20=20`response.search=5Fresponse.gl?= =?UTF-8?q?ean=5Fdata=5Ferror.unauthorized=5Fdatasource=5Finstances`=20**R?= =?UTF-8?q?emoved**=20(Breaking=20=E2=9A=A0=EF=B8=8F)=20*=20`glean.client.?= =?UTF-8?q?search.query()`:=20=20=20*=20=20`response.glean=5Fdata=5Ferror.?= =?UTF-8?q?unauthorized=5Fdatasource=5Finstances`=20**Removed**=20(Breakin?= =?UTF-8?q?g=20=E2=9A=A0=EF=B8=8F)=20=20=20*=20=20`error.unauthorized=5Fda?= =?UTF-8?q?tasource=5Finstances`=20**Removed**=20(Breaking=20=E2=9A=A0?= =?UTF-8?q?=EF=B8=8F)=20*=20`glean.client.chat.create()`:=20=20`response.u?= =?UTF-8?q?nauthorized=5Fdatasource=5Finstances`=20**Removed**=20(Breaking?= =?UTF-8?q?=20=E2=9A=A0=EF=B8=8F)=20*=20`glean.client.search.recommendatio?= =?UTF-8?q?ns()`:=20=20`response.glean=5Fdata=5Ferror.unauthorized=5Fdatas?= =?UTF-8?q?ource=5Finstances`=20**Removed**=20(Breaking=20=E2=9A=A0?= =?UTF-8?q?=EF=B8=8F)=20*=20`glean.client.search.autocomplete()`:=20=20`re?= =?UTF-8?q?sponse.glean=5Fdata=5Ferror.unauthorized=5Fdatasource=5Finstanc?= =?UTF-8?q?es`=20**Removed**=20(Breaking=20=E2=9A=A0=EF=B8=8F)=20*=20`glea?= =?UTF-8?q?n.client.search.query=5Fas=5Fadmin()`:=20=20=20*=20=20`response?= =?UTF-8?q?.glean=5Fdata=5Ferror.unauthorized=5Fdatasource=5Finstances`=20?= =?UTF-8?q?**Removed**=20(Breaking=20=E2=9A=A0=EF=B8=8F)=20=20=20*=20=20`e?= =?UTF-8?q?rror.unauthorized=5Fdatasource=5Finstances`=20**Removed**=20(Br?= =?UTF-8?q?eaking=20=E2=9A=A0=EF=B8=8F)=20*=20`glean.client.agents.retriev?= =?UTF-8?q?e()`:=20=20`error.status[404]`=20**Added**=20*=20`glean.client.?= =?UTF-8?q?agents.run=5Fstream()`:=20=20`error`=20**Changed**=20*=20`glean?= =?UTF-8?q?.client.agents.list()`:=20=20`error`=20**Changed**=20*=20`glean?= =?UTF-8?q?.client.agents.retrieve=5Fschemas()`:=20=20=20*=20=20`response.?= =?UTF-8?q?tools[]`=20**Changed**=20=20=20*=20=20`error`=20**Changed**=20*?= =?UTF-8?q?=20`glean.datasources.get=5Fdatasource=5Finstance=5Fconfigurati?= =?UTF-8?q?on()`:=20**Added**=20*=20`glean.datasources.update=5Fdatasource?= =?UTF-8?q?=5Finstance=5Fconfiguration()`:=20**Added**=20*=20`glean.indexi?= =?UTF-8?q?ng.people.bulk=5Findex()`:=20**Deprecated**?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .speakeasy/gen.lock | 692 +- .speakeasy/gen.yaml | 3 +- .speakeasy/glean-merged-spec.yaml | 26785 ++++++++-------- .speakeasy/tests.arazzo.yaml | 45 + .speakeasy/workflow.lock | 14 +- README.md | 13 +- RELEASES.md | 12 +- docs/errors/errorresponse.md | 10 + docs/errors/gleandataerror.md | 15 +- docs/models/actionsummary.md | 13 +- docs/models/chatresponse.md | 15 +- docs/models/configurationvalue.md | 11 + .../models/datasourceconfigurationresponse.md | 11 + .../models/datasourceinstanceconfiguration.md | 10 + ...tdatasourceinstanceconfigurationrequest.md | 9 + docs/models/gleandataerror.md | 15 +- docs/models/inviteinfo.md | 4 +- .../updatedatasourceconfigurationrequest.md | 11 + ...edatasourceinstanceconfigurationrequest.md | 10 + docs/sdks/agents/README.md | 28 +- docs/sdks/datasources/README.md | 109 +- docs/sdks/indexingdatasources/README.md | 118 + docs/sdks/people/README.md | 6 +- pyproject.toml | 2 +- src/glean/api_client/_version.py | 6 +- src/glean/api_client/agents.py | 52 +- src/glean/api_client/datasources.py | 428 +- src/glean/api_client/errors/__init__.py | 5 + src/glean/api_client/errors/errorresponse.py | 31 + src/glean/api_client/errors/gleandataerror.py | 10 - src/glean/api_client/indexing.py | 6 +- src/glean/api_client/indexing_datasources.py | 565 + src/glean/api_client/models/__init__.py | 45 + src/glean/api_client/models/actionsummary.py | 77 +- src/glean/api_client/models/agentconfig.py | 25 +- .../api_client/models/agentexecutionstatus.py | 3 +- src/glean/api_client/models/agentrun.py | 12 +- src/glean/api_client/models/announcement.py | 25 +- src/glean/api_client/models/anonymousevent.py | 14 +- src/glean/api_client/models/answer.py | 14 +- src/glean/api_client/models/authconfig.py | 36 +- src/glean/api_client/models/authstatus.py | 3 +- .../api_client/models/autocompleteresult.py | 14 +- .../models/bulkuploadhistoryevent.py | 25 +- .../api_client/models/calendarattendee.py | 14 +- src/glean/api_client/models/calendarevent.py | 14 +- .../api_client/models/channelinviteinfo.py | 12 +- .../models/chatfilefailurereason.py | 3 +- .../api_client/models/chatfilemetadata.py | 21 +- src/glean/api_client/models/chatfilestatus.py | 3 +- src/glean/api_client/models/chatmessage.py | 25 +- src/glean/api_client/models/chatresponse.py | 19 - src/glean/api_client/models/clustergroup.py | 12 +- .../api_client/models/clustertypeenum.py | 3 +- .../api_client/models/collectionerror.py | 13 +- src/glean/api_client/models/collectionitem.py | 14 +- .../models/collectionpinnablecategories.py | 3 +- .../models/collectionpinnabletargets.py | 3 +- .../api_client/models/collectionpintarget.py | 21 +- .../api_client/models/communicationchannel.py | 3 +- src/glean/api_client/models/conferencedata.py | 25 +- .../api_client/models/configurationvalue.py | 49 + src/glean/api_client/models/connectortype.py | 3 +- .../models/createdlpreportrequest.py | 12 +- .../models/customdatasourceconfig.py | 27 +- .../api_client/models/customsensitiverule.py | 23 +- .../models/customsensitiveruletype.py | 3 +- .../models/datasourceconfigurationresponse.py | 23 + .../models/datasourceinstanceconfiguration.py | 21 + .../models/debugdatasourcestatusresponse.py | 14 +- src/glean/api_client/models/digestsection.py | 12 +- src/glean/api_client/models/digestupdate.py | 12 +- src/glean/api_client/models/disambiguation.py | 12 +- .../api_client/models/dlpfindingfilter.py | 12 +- src/glean/api_client/models/dlpfrequency.py | 3 +- src/glean/api_client/models/dlpreport.py | 32 +- .../api_client/models/dlpreportstatus.py | 3 +- src/glean/api_client/models/dlpseverity.py | 3 +- .../api_client/models/dlpsimpleresult.py | 3 +- src/glean/api_client/models/document.py | 12 +- .../api_client/models/documentmetadata.py | 12 +- .../api_client/models/documentspec_union.py | 25 +- .../api_client/models/documentvisibility.py | 3 +- .../models/documentvisibilityoverride.py | 14 +- .../models/documentvisibilityupdateresult.py | 14 +- .../models/editcollectionresponse.py | 14 +- .../api_client/models/entitiessortorder.py | 3 +- src/glean/api_client/models/entitytype.py | 3 +- .../api_client/models/eventstrategyname.py | 3 +- src/glean/api_client/models/exportinfo.py | 14 +- .../api_client/models/facetfiltervalue.py | 14 +- src/glean/api_client/models/favoriteinfo.py | 12 +- src/glean/api_client/models/feedentry.py | 14 +- src/glean/api_client/models/feedresult.py | 14 +- .../api_client/models/generatedattachment.py | 12 +- src/glean/api_client/models/generatedqna.py | 14 +- src/glean/api_client/models/getanswererror.py | 14 +- .../getdatasourceinstanceconfigurationop.py | 30 + src/glean/api_client/models/gleandataerror.py | 19 - .../api_client/models/grantpermission.py | 12 +- src/glean/api_client/models/group.py | 12 +- src/glean/api_client/models/grouptype.py | 3 +- src/glean/api_client/models/iconconfig.py | 14 +- src/glean/api_client/models/inputoptions.py | 25 +- src/glean/api_client/models/inviteinfo.py | 4 +- .../api_client/models/objectdefinition.py | 14 +- .../api_client/models/operatormetadata.py | 14 +- src/glean/api_client/models/personmetadata.py | 14 +- src/glean/api_client/models/personteam.py | 14 +- .../models/persontoteamrelationship.py | 14 +- .../api_client/models/propertydefinition.py | 25 +- src/glean/api_client/models/quicklink.py | 3 +- src/glean/api_client/models/readpermission.py | 12 +- .../api_client/models/relateddocuments.py | 14 +- .../api_client/models/reportstatusresponse.py | 14 +- src/glean/api_client/models/scopetype.py | 3 +- .../api_client/models/searchrequestoptions.py | 3 +- src/glean/api_client/models/searchresult.py | 21 +- .../models/searchresultprominenceenum.py | 3 +- src/glean/api_client/models/searchwarning.py | 14 +- src/glean/api_client/models/sectiontype.py | 3 +- .../api_client/models/sensitiveinfotype.py | 14 +- src/glean/api_client/models/shortcuterror.py | 14 +- .../api_client/models/structuredresult.py | 25 +- src/glean/api_client/models/team.py | 14 +- src/glean/api_client/models/textrange.py | 14 +- .../api_client/models/timerangefilter.py | 14 +- src/glean/api_client/models/tool.py | 14 +- src/glean/api_client/models/toolmetadata.py | 47 +- src/glean/api_client/models/toolparameter.py | 14 +- src/glean/api_client/models/ugctype.py | 3 +- .../models/unauthorizeddatasourceinstance.py | 12 +- .../updatedatasourceconfigurationrequest.py | 23 + ...updatedatasourceinstanceconfigurationop.py | 42 + .../models/updatedlpconfigresponse.py | 12 +- .../models/updatedlpreportrequest.py | 21 +- .../models/updatedlpreportresponse.py | 12 +- src/glean/api_client/models/updatetype.py | 3 +- .../api_client/models/uploadstatusenum.py | 3 +- src/glean/api_client/models/useractivity.py | 14 +- .../api_client/models/useractivityinsight.py | 14 +- src/glean/api_client/models/userrole.py | 3 +- .../models/userrolespecification.py | 12 +- .../api_client/models/userstatusresponse.py | 12 +- src/glean/api_client/models/verification.py | 14 +- src/glean/api_client/models/viewerinfo.py | 14 +- .../api_client/models/writeactionparameter.py | 14 +- .../api_client/models/writepermission.py | 12 +- src/glean/api_client/people.py | 6 + src/glean/api_client/sdk.py | 4 + .../internal/handler/generated_handlers.go | 2 + ...asourcesdatasourceidinstancesinstanceid.go | 68 + ...asourcesdatasourceidinstancesinstanceid.go | 71 + .../handler/pathpostrestapiv1adminsearch.go | 2 +- .../pathpostrestapiv1createcollection.go | 20 +- .../handler/pathpostrestapiv1messages.go | 2 +- .../handler/pathpostrestapiv1search.go | 2 +- .../sdk/models/components/actionsummary.go | 55 + .../models/components/autocompleteresponse.go | 8 +- .../sdk/models/components/chatresponse.go | 10 - .../models/components/configurationvalue.go | 25 + .../datasourceconfigurationresponse.go | 16 + .../datasourceinstanceconfiguration.go | 16 + .../sdk/models/components/gleandataerror.go | 10 - .../sdk/models/components/inviteinfo.go | 4 +- .../sdk/models/components/resultsresponse.go | 6 +- .../sdk/models/components/searchresponse.go | 6 +- .../updatedatasourceconfigurationrequest.go | 16 + .../getdatasourceinstanceconfiguration.go | 48 + .../updatedatasourceinstanceconfiguration.go | 56 + .../sdk/models/sdkerrors/errorresponse.go | 22 + .../sdk/models/sdkerrors/gleandataerror.go | 7 +- tests/test_datasources.py | 36 + tests/test_summarize.py | 8 +- 174 files changed, 16990 insertions(+), 14293 deletions(-) create mode 100644 docs/errors/errorresponse.md create mode 100644 docs/models/configurationvalue.md create mode 100644 docs/models/datasourceconfigurationresponse.md create mode 100644 docs/models/datasourceinstanceconfiguration.md create mode 100644 docs/models/getdatasourceinstanceconfigurationrequest.md create mode 100644 docs/models/updatedatasourceconfigurationrequest.md create mode 100644 docs/models/updatedatasourceinstanceconfigurationrequest.md create mode 100644 docs/sdks/indexingdatasources/README.md create mode 100644 src/glean/api_client/errors/errorresponse.py create mode 100644 src/glean/api_client/indexing_datasources.py create mode 100644 src/glean/api_client/models/configurationvalue.py create mode 100644 src/glean/api_client/models/datasourceconfigurationresponse.py create mode 100644 src/glean/api_client/models/datasourceinstanceconfiguration.py create mode 100644 src/glean/api_client/models/getdatasourceinstanceconfigurationop.py create mode 100644 src/glean/api_client/models/updatedatasourceconfigurationrequest.py create mode 100644 src/glean/api_client/models/updatedatasourceinstanceconfigurationop.py create mode 100644 tests/mockserver/internal/handler/pathgetrestapiv1configuredatasourcesdatasourceidinstancesinstanceid.go create mode 100644 tests/mockserver/internal/handler/pathpatchrestapiv1configuredatasourcesdatasourceidinstancesinstanceid.go create mode 100644 tests/mockserver/internal/sdk/models/components/configurationvalue.go create mode 100644 tests/mockserver/internal/sdk/models/components/datasourceconfigurationresponse.go create mode 100644 tests/mockserver/internal/sdk/models/components/datasourceinstanceconfiguration.go create mode 100644 tests/mockserver/internal/sdk/models/components/updatedatasourceconfigurationrequest.go create mode 100644 tests/mockserver/internal/sdk/models/operations/getdatasourceinstanceconfiguration.go create mode 100644 tests/mockserver/internal/sdk/models/operations/updatedatasourceinstanceconfiguration.go create mode 100644 tests/mockserver/internal/sdk/models/sdkerrors/errorresponse.go diff --git a/.speakeasy/gen.lock b/.speakeasy/gen.lock index 0cfbc743..6b969275 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: 168d09185da75c45f6edca32cb2bc2dd + docChecksum: 3994d4b69dbab0d0c050b5770fabec67 docVersion: 0.9.0 - speakeasyVersion: 1.722.7 - generationVersion: 2.832.9 - releaseVersion: 0.12.8 - configChecksum: 50bf621427a8287d9ca62293e512f86a + speakeasyVersion: 1.729.0 + generationVersion: 2.841.0 + releaseVersion: 0.12.9 + configChecksum: 7fcb9aea80caa0123a1d1b4b07dfed9b repoURL: https://github.com/gleanwork/api-client-python.git installationURL: https://github.com/gleanwork/api-client-python.git published: true persistentEdits: - generation_id: bcf8dca0-d5eb-40ce-a204-2aa32fe24c88 - pristine_commit_hash: 41297bcf79da7abf5156c3d09490fd4236aff892 - pristine_tree_hash: 639a9981217f2ac59f39e86a5e053a64e33f9fbe + generation_id: 0524b82e-bc38-4391-9fdf-c17488feccac + pristine_commit_hash: 731945fcb101e44486472b9151a0ebe137f038ef + pristine_tree_hash: 07c9062240d1dcaaa4dbd36a77ec691c8082298d features: python: additionalDependencies: 1.0.0 additionalProperties: 1.0.1 configurableModuleName: 0.2.0 - constsAndDefaults: 1.0.6 - core: 6.0.11 + constsAndDefaults: 1.0.7 + core: 6.0.12 defaultEnabledRetries: 0.2.0 deprecations: 3.0.2 devContainers: 3.0.0 @@ -37,7 +37,7 @@ features: methodArguments: 1.0.2 mockServer: 0.1.1 multipartFileContentType: 1.0.0 - nameOverrides: 3.0.1 + nameOverrides: 3.0.3 responseFormat: 1.1.0 retries: 3.0.4 sdkHooks: 1.2.1 @@ -73,14 +73,18 @@ trackedFiles: id: 3d0bc04308fd last_write_checksum: sha1:b0c6864817dbdc3bde8fee4a1e142d51e89f781c pristine_git_object: a6800fed5ba94f25934cdd5b8fe3fa6832f51239 + docs/errors/errorresponse.md: + id: 910ef333346b + last_write_checksum: sha1:1f4ebb1db37a510e68d02e7f1f5b7b2fd63c0311 + pristine_git_object: 7ac30077e52db91693472ff9b82ee421d24014d5 docs/errors/gleandataerror.md: id: d8679ae13234 - last_write_checksum: sha1:3183d01d67f7287140f55de2737e649e7ce32ec9 - pristine_git_object: 4ea69fbe9f4add8572cfe6c755aca8fe1d2ba11e + last_write_checksum: sha1:a6567c83c6c0bf8eaed55f50af08001869d6a5de + pristine_git_object: 7c4c0d90fd0a2de3e48b99ce691c1e9a6ab03041 docs/models/actionsummary.md: id: 1ff225176066 - last_write_checksum: sha1:278bb81fcc7b886e7f2c7d04112cdd1adaf6492f - pristine_git_object: 3bf02ee017770a749252e2af6370bdd8b7904323 + last_write_checksum: sha1:e5eb353efca3b865fe1a67809c9c3c2a7c2531c1 + pristine_git_object: 853df19f07848e7ac7f235ab47d82406a011e1fe docs/models/activity.md: id: 78c9fe854b65 last_write_checksum: sha1:2bb3d1005124784d416910cff9777277facaebb2 @@ -427,8 +431,8 @@ trackedFiles: pristine_git_object: 743e1fd15ef2e5a212c755a793811ccbf19d46a5 docs/models/chatresponse.md: id: f59beb8f6c98 - last_write_checksum: sha1:fc09d73117b02239395524f00faf9661dc6b9c34 - pristine_git_object: 0ea540ed8c772f8f0e6b446ed5e0e4c7782ac99e + last_write_checksum: sha1:fb69e7b641548c4a72d60bb607b87443fb9abc06 + pristine_git_object: c1e42aeb62c37b61a4bf6ee0dcbdd44c8cb3feba docs/models/chatrestrictionfilters.md: id: cae12da2c86d last_write_checksum: sha1:0cbed53f5ff5fe8fe9f44909300ad9ab82ace936 @@ -545,6 +549,10 @@ trackedFiles: id: 0ef7e380c9bc last_write_checksum: sha1:c597b1a30b09f87991a13bb59c53400410134f35 pristine_git_object: b9e1060aed3df9dcc4a396b895e26bd7529f6d61 + docs/models/configurationvalue.md: + id: 4dd9104463d1 + last_write_checksum: sha1:97fd02f694962abf4799b31a586b688966cac4ea + pristine_git_object: aea215fe87d00675a3b97d150d81470b16fe2a84 docs/models/connectortype.md: id: e6f4d8f19cd5 last_write_checksum: sha1:9efd332a75fba3f2023b761f238f274680a46d81 @@ -705,10 +713,18 @@ trackedFiles: id: 0480a1f35070 last_write_checksum: sha1:9dad3acf74b5977a6476f86ba6c45781c352aa81 pristine_git_object: 44d81a93960839704e0ee5f0d19ec4884aab0c4e + docs/models/datasourceconfigurationresponse.md: + id: 7c6f38290f96 + last_write_checksum: sha1:10c0068be581150ab5915785029e610bdf472ab5 + pristine_git_object: ba3be1321e92d6af0bfdad972ec394d96dec7baf docs/models/datasourcegroupdefinition.md: id: 2b5e3862da5c last_write_checksum: sha1:594f0d360c5a2466e6492ca11e05a7c46c070208 pristine_git_object: e716c04f9ea29e7b8acca40f62f429b35c795614 + docs/models/datasourceinstanceconfiguration.md: + id: 968e0a9feb17 + last_write_checksum: sha1:7674d089b7dc06b3fdde2a7fe1a44e50b871ca83 + pristine_git_object: 4aa3cb988fe844a3994344f543171622bf11e227 docs/models/datasourcemembershipdefinition.md: id: 8e527b6d054c last_write_checksum: sha1:e381cf7d015eaa27815876df0388f2d92e96fa96 @@ -1357,6 +1373,10 @@ trackedFiles: id: 4cf100b4fe49 last_write_checksum: sha1:2209ee35f4f21791035a6785f464befc568e9afd pristine_git_object: 6bd845ab38a08ac7ec5473920c9d1f6567716ced + docs/models/getdatasourceinstanceconfigurationrequest.md: + id: bb085196abd9 + last_write_checksum: sha1:d2971d5d295c276de0cdcee2ba9d4b761b10f7b2 + pristine_git_object: 949f49d131967a1bf1906f604908c5d09c8b40de docs/models/getdlpreportresponse.md: id: 3e011132423a last_write_checksum: sha1:b9907518fd1ceb0348ba69ca31459073dd5e2160 @@ -1479,8 +1499,8 @@ trackedFiles: pristine_git_object: 51f7027a16bc10bb4effbdd438eab18581703421 docs/models/gleandataerror.md: id: feb7c60631e4 - last_write_checksum: sha1:3183d01d67f7287140f55de2737e649e7ce32ec9 - pristine_git_object: 4ea69fbe9f4add8572cfe6c755aca8fe1d2ba11e + last_write_checksum: sha1:a6567c83c6c0bf8eaed55f50af08001869d6a5de + pristine_git_object: 7c4c0d90fd0a2de3e48b99ce691c1e9a6ab03041 docs/models/grantpermission.md: id: 740a53de1e0a last_write_checksum: sha1:6f0d12e70708144b4978da20cccda528785c9e0d @@ -1619,8 +1639,8 @@ trackedFiles: pristine_git_object: e6acc93ce0eae76434a8ef9f94ba080e954f022e docs/models/inviteinfo.md: id: 3d5da9535438 - last_write_checksum: sha1:653cc53628464696143b2ffb85cadb0d3dcad5d5 - pristine_git_object: e929b03338151b780598fbe5b96ffa19bc3eb583 + last_write_checksum: sha1:5f65df8961f7c86a847f4808a3e1fffe97ae0082 + pristine_git_object: 627329922765aae3e91345adcf21351b2877ebc1 docs/models/issue.md: id: 44d611a73cb7 last_write_checksum: sha1:f6909f3a5070d87eeb198d7f7c3d04a75ca718c3 @@ -2429,6 +2449,14 @@ trackedFiles: id: 1f63a3763a40 last_write_checksum: sha1:a31407e081b2b90412c3b07162ccddbda181547a pristine_git_object: e08d3f9c8a6cec4f310eaeddfd9cc981101e9fa8 + docs/models/updatedatasourceconfigurationrequest.md: + id: 63517c4319b5 + last_write_checksum: sha1:06e2a875f4305e6afa50168d4c91f9b68c281b37 + pristine_git_object: 938e8f1b385c9831916cc3d151aaeab65d43f933 + docs/models/updatedatasourceinstanceconfigurationrequest.md: + id: 5230dc3a739c + last_write_checksum: sha1:5a41bbe2580b258489b341371634e3e5a979b98e + pristine_git_object: 50e0f667546eb80337155afc9d9a503b9f522a41 docs/models/updatedlpconfigrequest.md: id: 3bcc0c7398d0 last_write_checksum: sha1:1a0b62f51d306beeb83f6f8ef7d68c6a85eab65d @@ -2611,8 +2639,8 @@ trackedFiles: pristine_git_object: 61dd41f0319201cc105e29174ab1cc0018cecbce docs/sdks/agents/README.md: id: 5965d8232fd8 - last_write_checksum: sha1:ac437d9707a34794688d275ba9b9daad024f0410 - pristine_git_object: bf4a2db8f086430f20eb25bf3cc7652b3a4bcef6 + last_write_checksum: sha1:f4fd02ccef64c791d216a40e1c9fcd4dfa43bd2e + pristine_git_object: 2856eeeb88599fe960b4060271977966c0650d39 docs/sdks/announcements/README.md: id: 3d2e130a217c last_write_checksum: sha1:ecfa655bb27dee6890656542cfafda0aa6ed1ab9 @@ -2655,8 +2683,8 @@ trackedFiles: pristine_git_object: f311071e89056a0df703b15f5ebdd17de75e9488 docs/sdks/datasources/README.md: id: 024d3ed36945 - last_write_checksum: sha1:9e06819a20a8e78cc82c7b4ea7c84e69206a4d29 - pristine_git_object: c9f66bdb622b4684f9f8d14a8ba8720b2809f463 + last_write_checksum: sha1:717afc78a8ff1b75fc467f73d7804507a7dbb848 + pristine_git_object: 03c2257dc739cd6b6bfc5b5201c2e962a04a4b32 docs/sdks/entities/README.md: id: a140ac5181b9 last_write_checksum: sha1:c5955573d5570bc98bb911311860abf4c85d19ac @@ -2673,6 +2701,10 @@ trackedFiles: id: 12c7fa0c818a last_write_checksum: sha1:6ef7ed841d5ee04864791ef63a43f728d931b713 pristine_git_object: 9e293dca8d87e21416cedc1dcc033cf091f9baac + docs/sdks/indexingdatasources/README.md: + id: aa113bda8cbc + last_write_checksum: sha1:9e06819a20a8e78cc82c7b4ea7c84e69206a4d29 + pristine_git_object: c9f66bdb622b4684f9f8d14a8ba8720b2809f463 docs/sdks/indexingdocuments/README.md: id: 7ca38da53414 last_write_checksum: sha1:4d55ef9f7d2e8d0c4457753721f5044943a46db4 @@ -2695,8 +2727,8 @@ trackedFiles: pristine_git_object: 0aa193b38d7d95cd3301469f9a6ad1260a1b1b51 docs/sdks/people/README.md: id: ff7b3ee21c2b - last_write_checksum: sha1:4bb2592f2d27226672308fa1f3cb5c7ebb7691fb - pristine_git_object: 8b35d44df3afdcf9a3e3bc320a315da2651d095b + last_write_checksum: sha1:a7b323db5d75d1adbfa36aed65bc8575e002e44a + pristine_git_object: 363dfc325f462a4b4340777a8c9164da8f619e97 docs/sdks/pins/README.md: id: e887aca9ba0f last_write_checksum: sha1:c11aea840d911395a606a528575fe224c8a6b86a @@ -2735,8 +2767,8 @@ trackedFiles: pristine_git_object: e2fda7fe263c2a111e53872e3ad5bc324b4dccfe pyproject.toml: id: 5d07e7d72637 - last_write_checksum: sha1:cd9618a071dc65e548c604011f7922a19bd4e112 - pristine_git_object: 358810d2a9d3bd25e6fbe61eaab9cc0c6b9e374c + last_write_checksum: sha1:4303358b763c488897a3ec7f2f11e666cbed14ab + pristine_git_object: 3dce96bfa6c29e5d5d8367a56a3296bea2766f72 scripts/prepare_readme.py: id: e0c5957a6035 last_write_checksum: sha1:c2c83f71dea61eb50c9e05da83b16d18b4da8794 @@ -2763,12 +2795,12 @@ trackedFiles: pristine_git_object: 58c4d70ac1797b86ff5c4237cafbc344c42d8f64 src/glean/api_client/_version.py: id: 0ce22b26136b - last_write_checksum: sha1:1e660e8b70d98a8dc857edd2b64e505881b58095 - pristine_git_object: ff2fde5492a4ff878e3ea49923b2f26af789a187 + last_write_checksum: sha1:c5ea82dfe862f05fbba910783a7bc19dba555a76 + pristine_git_object: ae854139b5d9329accd0c843b045c87c0fc018d5 src/glean/api_client/agents.py: id: b925701a9217 - last_write_checksum: sha1:c1688c3d141db7707458f3ac7ff29c4a71e6812b - pristine_git_object: e83595d0b12f20855f2e75dae207c28168c0f25c + last_write_checksum: sha1:ee99ae3d58f7f77ac2eba99c104d04d53c16c09c + pristine_git_object: 134cc9bac9504c13c06a316f74fcce7dfc6eb054 src/glean/api_client/announcements.py: id: 452f3d593912 last_write_checksum: sha1:f46bdf97d06f038b579907fdb879a65bc995d326 @@ -2827,28 +2859,32 @@ trackedFiles: pristine_git_object: 756e122c3e258805290344aa6d978b351bcbfbf5 src/glean/api_client/datasources.py: id: 22aad0060f38 - last_write_checksum: sha1:07f1693c31b5372fb55f178e5b9bd02b7c40c3bf - pristine_git_object: d7340a086976fc1e2d3f10acaac30895defbc504 + last_write_checksum: sha1:4bae18a40be4792dc8c78b4f0b79e2c2cfbe6ec6 + pristine_git_object: 60e6da53662c711d224bd5731140220c9152cb18 src/glean/api_client/entities.py: id: 38ebbab2f8a0 last_write_checksum: sha1:2cda7b3a04563e5e452eb65a71e357e34707e144 pristine_git_object: 2564ac766b63e3373d8db9350570edcf319d211d src/glean/api_client/errors/__init__.py: id: 88bbd5450191 - last_write_checksum: sha1:a070425d6b343a94b14e395754898f1169c899f3 - pristine_git_object: 185efb348fb668e36af44ca0d59cf401ca40c003 + last_write_checksum: sha1:c690818d01852a6dfe4049feb3f7e0069ed09a58 + pristine_git_object: b8998ad3d52363edb5c468d4da1f0d11dd2e5c7e src/glean/api_client/errors/collectionerror.py: id: c0932ce3ae9f last_write_checksum: sha1:0b5f08e5372726fe70cd721719c386d0e21d0dcc pristine_git_object: aa03a80dd8295663dfa6b12558de485cd17f3c1d + src/glean/api_client/errors/errorresponse.py: + id: 908371c9ccd7 + last_write_checksum: sha1:8aebd1486c552bb87f95f8bd1f2d4cb7a8323f96 + pristine_git_object: 70cab4aacef1e755b93552a80c88cc9998f134ea src/glean/api_client/errors/gleanbaseerror.py: id: 1d7d890ee3e5 last_write_checksum: sha1:75b3f2e5195423e6a5f5be3b3268d3eaa0b83e74 pristine_git_object: b2f7acde3c293f63d1af370cf1bd4266048c3834 src/glean/api_client/errors/gleandataerror.py: id: 8bae5389c0bf - last_write_checksum: sha1:87460de08c511bb260863496050be12c17831c23 - pristine_git_object: 7b0dfa056f506e6b3c33c3a648b43d41287163b8 + last_write_checksum: sha1:d9db844614059154744d99927a7468306de298c2 + pristine_git_object: 754c85de70a38e982ea6368b9c4f922883a9a040 src/glean/api_client/errors/gleanerror.py: id: 9f1d85652f59 last_write_checksum: sha1:a7a2bc1335123c6bd8c9f945a9c653f061e14167 @@ -2875,8 +2911,8 @@ trackedFiles: pristine_git_object: 89560b566073785535643e694c112bedbd3db13d src/glean/api_client/indexing.py: id: 46c62151847b - last_write_checksum: sha1:25a4b21167ee3b2148c858a17dd377fcf032d697 - pristine_git_object: 27b07e8e6b7df92743407034732d27968a16e86b + last_write_checksum: sha1:ca2f3df9dc68bbf4d1d666ffe4a197e40dd89e7d + pristine_git_object: 3a668c8ce7805ea922a292ce35ff9c4f1f4d6afc src/glean/api_client/indexing_authentication.py: id: ab6b40ef5aa5 last_write_checksum: sha1:0df45ff755a309dbad2287463b541b1a7fc4d8ac @@ -2885,6 +2921,10 @@ trackedFiles: id: 97727f0727c1 last_write_checksum: sha1:1e39324e38f2abbaf1bb65dd2a5525308f9a92e1 pristine_git_object: 7e118cd30a61f7e8eab81c9e2b5efd83c4c5a594 + src/glean/api_client/indexing_datasources.py: + id: 9520e2db8686 + last_write_checksum: sha1:664c01e7d5f697ebbaa91ab37f662d605d58a10c + pristine_git_object: f5f5506766b76212d51986d2ec10dfeaf9b1eae7 src/glean/api_client/indexing_documents.py: id: b5c2b64ee1fa last_write_checksum: sha1:d480232a8f694d6596e45943ea59e03448c636d6 @@ -2907,12 +2947,12 @@ trackedFiles: pristine_git_object: 1c182cb0150642014463e1ceec8bc8b785e5b9f3 src/glean/api_client/models/__init__.py: id: d5f6ea5efcbe - last_write_checksum: sha1:063f018262ae580319a4e731ecb96e5f42def78d - pristine_git_object: 87205efe337c29272a0f98670502f8ba401e231d + last_write_checksum: sha1:6239f4bb2a3b69fe65135925bcc3e04983c6af4d + pristine_git_object: 980bdd63db8f58a09de5485817a4cafadb1b3367 src/glean/api_client/models/actionsummary.py: id: 34ccdf9f1526 - last_write_checksum: sha1:feac9468c6b2885ce11bf306ca94d3de53aac70f - pristine_git_object: ed3d1250613625c71ef8e73ae4b26b4ba6522b79 + last_write_checksum: sha1:9d447ec50aa8f0746f2792393d5b39a94bd3169a + pristine_git_object: a547e75ea4edba4596ced072108c53605510c00a src/glean/api_client/models/activity.py: id: 6ea27628a0fd last_write_checksum: sha1:27f676cc8276973c98176252bf06e2b4b965935e @@ -2959,16 +2999,16 @@ trackedFiles: pristine_git_object: 51443a2df3edb4ca3574a495d45757b7d93d8789 src/glean/api_client/models/agentconfig.py: id: 6bc960f78847 - last_write_checksum: sha1:196005383cfea5363c720347a6e24df58c16f4fa - pristine_git_object: a4b95362d9e5803519846a73b4b41d0481d94239 + last_write_checksum: sha1:20c94c99eadde4ec9d92f9c652668173d5eb613c + pristine_git_object: 8ec290edc9adc4d9443edc18c9c8ab5fcef91eab src/glean/api_client/models/agentexecutionstatus.py: id: ab4f2c2f8eed - last_write_checksum: sha1:b7333d24342b551d95d36dd4ce1021db65fbfdc6 - pristine_git_object: fa71fb35d11dede8cb81dbfc83f7ec2fa2ea52d0 + last_write_checksum: sha1:d3bb768f118d7474a4fae0a7685922c6405d0f90 + pristine_git_object: b93cae26675bab7b692af5f97f005040faff7958 src/glean/api_client/models/agentrun.py: id: b808ffdaa4d9 - last_write_checksum: sha1:69120d4a77c7f4670973a7e41af55b4ea2af1f8b - pristine_git_object: 4c519b560d3fffcab870f148df81060487beb16f + last_write_checksum: sha1:21eb4e6590484355e32709b7ff1377f3209676a7 + pristine_git_object: 259808ebc83a54a3bb41223a9e298a68d8430ea5 src/glean/api_client/models/agentruncreate.py: id: e987c7a76285 last_write_checksum: sha1:d02fda45ed106de951c65f67dbc23110223e66ee @@ -3003,16 +3043,16 @@ trackedFiles: pristine_git_object: f49943d26a8e71d4c0795c3d4ac8c8b811634ab9 src/glean/api_client/models/announcement.py: id: acb78a04f33a - last_write_checksum: sha1:c253f5ae1abc67f3f7a68b21ccd2cbac00d086d5 - pristine_git_object: 10be615e0dcea2003e3d71e4ddb44e9d231ff11d + last_write_checksum: sha1:f04153352a6b1640d758720c49bd07b7449f7aff + pristine_git_object: 3f5ec7e1458ad7edbd46588f3ccd1cf54c45eb91 src/glean/api_client/models/anonymousevent.py: id: 6b288f5ca26b - last_write_checksum: sha1:57b389f5fbe18625fb2a3caf16841e342ff4f6bb - pristine_git_object: 03b8cf1d6d9c7357703cbb20d80b533434274f38 + last_write_checksum: sha1:fc035c37f08598221c7334da116e2835966156ad + pristine_git_object: 4b4ef1d95fb1f9e1b4b4a67d71c6953bf9f374c1 src/glean/api_client/models/answer.py: id: f7b69d1846ba - last_write_checksum: sha1:b28d496872409cbd73da3250e62ebe866775d622 - pristine_git_object: b6791d1e8e0488a77be5c6aa073787582fdf0e93 + last_write_checksum: sha1:e37deec10b9cd26927b4f8469d6d598267e37901 + pristine_git_object: 31b7944a3cfe52d03e2848e3d183f8371c757371 src/glean/api_client/models/answercreationdata.py: id: 85c82aca1720 last_write_checksum: sha1:dfc6c75e412895a40394a7fb2486d7ee2f95b120 @@ -3039,12 +3079,12 @@ trackedFiles: pristine_git_object: 700d8807b56085904c763bcc748f4956ad2f0aaf src/glean/api_client/models/authconfig.py: id: 9e88a246ee36 - last_write_checksum: sha1:cb4761c20c3260335f8e9155ce002e5b271c681d - pristine_git_object: 4179e9d2c4884514cbc0d6b67a21fe4744db982b + last_write_checksum: sha1:53fae942560d22f8d2ff2829b087613d10fbe156 + pristine_git_object: 86f978f579e0670402385ea08c5e692d5e040226 src/glean/api_client/models/authstatus.py: id: 75167e3b3ad0 - last_write_checksum: sha1:d89b931424ebacb324e54f53df822ca788bc6dc8 - pristine_git_object: 0916a8319eca076dea3eef19c17d4f0e3bc673a6 + last_write_checksum: sha1:4cdc7988894d6c50dbc42d0613bc22dbe6a29666 + pristine_git_object: ea66e4544c221d502b224d8c6479cc5e3adb9872 src/glean/api_client/models/authtoken.py: id: 32cff6c3af95 last_write_checksum: sha1:05d6a1988895ae285d96f101785640ebf82a247b @@ -3063,8 +3103,8 @@ trackedFiles: pristine_git_object: 3dbd74976fbe39ac070a1a469741d6643cabc438 src/glean/api_client/models/autocompleteresult.py: id: e88abde43844 - last_write_checksum: sha1:5bfb07e61d7871fac3b045b39eab0a1ec18cc8cd - pristine_git_object: 2a7b178947d872fcab6a5cba60c3766b20a6481a + last_write_checksum: sha1:5dda5b4e62b3839de7964e63c86cb8f7d3e08402 + pristine_git_object: cd95aafb12e811d44912ed8f4faf43eaf84285e4 src/glean/api_client/models/autocompleteresultgroup.py: id: 10a91a57b6a0 last_write_checksum: sha1:0095e9e0dc59aa0a847a3933265e6291d222720e @@ -3103,28 +3143,28 @@ trackedFiles: pristine_git_object: fc487a53466ce443dfc4b1aa20b7bbe3df5a2f80 src/glean/api_client/models/bulkuploadhistoryevent.py: id: e0fc56b32d01 - last_write_checksum: sha1:ac3c2549c067a1ad53b9a5fd366be1fa4d7f4380 - pristine_git_object: a5e3d43dcc61dabdfa80f12c7c416ff5d15a570b + last_write_checksum: sha1:af293f8d0a7bcedc03b245bf2e134429692fe649 + pristine_git_object: 19b02462bd483d094f81ae9fc0686fcfe9062c6f src/glean/api_client/models/calendarattendee.py: id: f061e829600d - last_write_checksum: sha1:11c42afe51b5feb76f88ee90f13f5babf8819b19 - pristine_git_object: 3f79c72a47a0bc9ad9ead44d06aa9a1ba1e94d62 + last_write_checksum: sha1:dd490fda26a9f2b0bd8da5c8454ed87edf901e88 + pristine_git_object: a9376eb5be7881243a7e369ccdef5f43af8a6fd7 src/glean/api_client/models/calendarattendees.py: id: dd3d8d18619f last_write_checksum: sha1:2170a33a351c0a2b6787f74d55342e5709c76ac2 pristine_git_object: 71bc24186e52e5b79b65af58b30e292297064a27 src/glean/api_client/models/calendarevent.py: id: 1b4d4993373e - last_write_checksum: sha1:e1df6445a4e182aef2c4a4ff92f3f22f95620457 - pristine_git_object: bf08702d47e3320372bab2d237b1810daaf9d21a + last_write_checksum: sha1:73a05f3ceeecde429f70fc2a92fd4d3a86af0c98 + pristine_git_object: 9fe344300b06e37924e56fdc847a71ed60a09c01 src/glean/api_client/models/canonicalizingregextype.py: id: b2cd5b9de633 last_write_checksum: sha1:fbe47d3fcba8de2ba377f1b6e50b271ed6e134ae pristine_git_object: db7e8b6cd3d8a6f6c9141ae5c33f0de4fe2b8551 src/glean/api_client/models/channelinviteinfo.py: id: 71173b2b0492 - last_write_checksum: sha1:2a658f2b9d0a7228df5c33f4ab24d630965bd922 - pristine_git_object: d7d38ee42fc4cf30b50eec6de95d6af42ff6bb0b + last_write_checksum: sha1:aabe263c137160e1ebd82e24d6a933299c51f540 + pristine_git_object: f8743a889c5681e6b6bfb1eb5c60f92bd0664368 src/glean/api_client/models/chat.py: id: 5566eef6a9a3 last_write_checksum: sha1:30c75bb6a1252723da71fe02731cae355149eec4 @@ -3135,20 +3175,20 @@ trackedFiles: pristine_git_object: c852218652c34be66fb9f6bfdef6ed3547655264 src/glean/api_client/models/chatfilefailurereason.py: id: c60997a33e36 - last_write_checksum: sha1:025e7cc000253326a9efd004cc5c7225f775927f - pristine_git_object: fdae31905651d8b10cbe8d645e41584a3dae769c + last_write_checksum: sha1:5f85f87d571be1ed3f67e3563720fa1e02e2ef1e + pristine_git_object: cb81e15e55a5889f6503eefe8103c320df460e0a src/glean/api_client/models/chatfilemetadata.py: id: b8648f87910e - last_write_checksum: sha1:609a346f41bff5cab804a30640f0c26377c1c033 - pristine_git_object: 2c657df73e5a66ec0add1a4063fef791021a8e61 + last_write_checksum: sha1:c3e2ae2c987074cea24aadba3cbce4e0bc720861 + pristine_git_object: 73d55cac1010bfd9d692382e5e4263ca9525fbb7 src/glean/api_client/models/chatfilestatus.py: id: 0e6c1c7a372c - last_write_checksum: sha1:0c3e5390a70a53dd6e3ef035fd7de1f2c1567e1b - pristine_git_object: c9a17724686676e11d3633dfb11ad4ab9c1cce45 + last_write_checksum: sha1:4af0557f8574e729bbd16805c2d02172bbef9eb6 + pristine_git_object: 0628b167f1b538ab6b9c0ed6021708456aa98c31 src/glean/api_client/models/chatmessage.py: id: d1d93cc94501 - last_write_checksum: sha1:4196e6ca580fb6027d7a460c43b038003f2be72f - pristine_git_object: 1755a240907fe7b65f7e3f5b933541fb3ca0e27d + last_write_checksum: sha1:6eb7a6856a33aa4bd782ebdd44f014d5420d3cca + pristine_git_object: 16aa62ea473c33a025cb7ac8baf7805846022576 src/glean/api_client/models/chatmessagecitation.py: id: dae0d568e81c last_write_checksum: sha1:b778c145ec6fa153cf06eddaba2de7fc74994959 @@ -3175,8 +3215,8 @@ trackedFiles: pristine_git_object: 3e72aea468f1c9c83d45155388fa88f18544f3f4 src/glean/api_client/models/chatresponse.py: id: 9ae42b3bd99f - last_write_checksum: sha1:59bf0345b51d68f21811d34ce203a26ce4c6f113 - pristine_git_object: 1ca6171214235ca5b1c1594e7bceab314bc7645a + last_write_checksum: sha1:7576ec371a0c177ffbf4333e083cfbb82518bbaf + pristine_git_object: 1d9c491f21c403621cb58e02b7e67ca832c4fc5e src/glean/api_client/models/chatrestrictionfilters.py: id: 634c14f688c1 last_write_checksum: sha1:ad469e59884fe6280376b1952943067000eaedb8 @@ -3211,12 +3251,12 @@ trackedFiles: pristine_git_object: fb2cdec6985876d88878e912a94ee09a414f08e8 src/glean/api_client/models/clustergroup.py: id: f84bec5b82fe - last_write_checksum: sha1:e2e9b9504731b3aad69770171ff8717deee7eec5 - pristine_git_object: e8a93332bee413de9069b238947d3f238b119230 + last_write_checksum: sha1:40ba9155e7eaae77e38aa0ad5b0790dca98b721b + pristine_git_object: 64317cf2e7729ef0b2cfbc849d5961b5a66c63f2 src/glean/api_client/models/clustertypeenum.py: id: 0ddd45a5d0d9 - last_write_checksum: sha1:b25da71fd0a80257766af1096929f9cdf0eb52c7 - pristine_git_object: 3e83e2efa461dd1d1e8ed06277bb1dbab8e35fcd + last_write_checksum: sha1:1f63c4b39dde561b3339908f8a9a35a6bf0f7257 + pristine_git_object: d599d8ac677a258ec0041ffc08142138b410fc2b src/glean/api_client/models/code.py: id: 11b08e43c314 last_write_checksum: sha1:6575c61b2a91631596ff71a3eaee73c1433db2ec @@ -3231,12 +3271,12 @@ trackedFiles: pristine_git_object: cdf2108fb6fd51bb4476a250a48e0aab9075971f src/glean/api_client/models/collectionerror.py: id: 12c5118f6fba - last_write_checksum: sha1:b68a0905674ac00856c42ae33e8be68efbed3945 - pristine_git_object: ed055edac1066978af979f2b1cf8fcfee9292002 + last_write_checksum: sha1:f8671540bade2e1c8d978ffacae8c69e4ad94a06 + pristine_git_object: ef1aa0da4454c57c0c8d635bbe89d3961043c027 src/glean/api_client/models/collectionitem.py: id: 42e837b333ec - last_write_checksum: sha1:ad4186636755dfcecaeb00165c14ec40f955709a - pristine_git_object: 5a4f41f2a672a05632df078f8108a1ec04799f4b + last_write_checksum: sha1:f40ae4fa054db28709ce5e805041418b10084858 + pristine_git_object: 0f05f119179be8704c779a16d694eb74a920e492 src/glean/api_client/models/collectionitemdescriptor.py: id: 8211e595e120 last_write_checksum: sha1:ddc64bf36a957e2228786341a55860362e751733 @@ -3247,40 +3287,44 @@ trackedFiles: pristine_git_object: fcd3edbe1c44ef3b7be0ceb77f1b3c1c137359e4 src/glean/api_client/models/collectionpinnablecategories.py: id: 319efd508d76 - last_write_checksum: sha1:79f857139cca1e295e78c3edfe755568b27f9946 - pristine_git_object: d28cd94ab7648cca4fd758055ba8ac44afe407ca + last_write_checksum: sha1:db649f26c3107b6497a9ba6cfda8a495cd35d00c + pristine_git_object: 55c467b9b6e46f86e9d82f9f86273f6215eaaece src/glean/api_client/models/collectionpinnabletargets.py: id: e4d5f87c0adc - last_write_checksum: sha1:ecde48b3ce184d46bac79212fce769a26fa89c78 - pristine_git_object: eac2d5e73e21405b25198d7925132b197482ea73 + last_write_checksum: sha1:65c20e406a0bbc95cc4d69702e71bbd8cb8c8faa + pristine_git_object: c440d47330824d6e174617b25ee22c54055f6a7e src/glean/api_client/models/collectionpinnedmetadata.py: id: 20fcaec70c41 last_write_checksum: sha1:22df092fd625128d399186c5723906e1e0eebab2 pristine_git_object: 44100bf476178fd48adf58263ce6caa6ea41416a src/glean/api_client/models/collectionpintarget.py: id: 74c6f50fcb8b - last_write_checksum: sha1:4b1f196c2b73f27ff5222eca93b37aacb69ce252 - pristine_git_object: 173bcf4fb46b0164a9dbf4071304f3ffb52824a7 + last_write_checksum: sha1:dbe5e971afaa38b85e68cd298469b6238dd2ae0b + pristine_git_object: 54c8ec92a697fef6f71a990d3e8787c69ea79547 src/glean/api_client/models/commentdefinition.py: id: 7a510d4ae16a last_write_checksum: sha1:5f8869dfea479ac71bab09d2eaba853484541c94 pristine_git_object: 46409ef9cce130bae42cb98eb84bfb2eacfa727b src/glean/api_client/models/communicationchannel.py: id: 097ef2bc37d8 - last_write_checksum: sha1:8c36e783ae2c093098418e7a70029849cfd1021c - pristine_git_object: e315cc1daee3f0fc6a900da424f69ccbdf4707be + last_write_checksum: sha1:9240b0a6b43557df8f3d2c0db453b484162271c8 + pristine_git_object: 36d9d830a9c46f6addc6a92f828ccdab8d18885f src/glean/api_client/models/company.py: id: 3fac904660c4 last_write_checksum: sha1:d5fee828207745c6edfb4cbb5554a96d84200fdb pristine_git_object: 6f272141fa715f456b56e02c27c26f236e67460a src/glean/api_client/models/conferencedata.py: id: ca82aa4c03bd - last_write_checksum: sha1:658befbb40482aed3799f2b163762b09c0909e19 - pristine_git_object: a890a8d1221fdde21ec1d2986ab59992c9b764da + last_write_checksum: sha1:8bd6f3e20f9c7bec8cc6480de5c1bfa77d6dfa85 + pristine_git_object: 805276d0333fbd0c92b70a747234b6a193336e0c + src/glean/api_client/models/configurationvalue.py: + id: 78d9bb1ab4a6 + last_write_checksum: sha1:cf9da13bfc5d3e35860cb12ced8ba5a760934917 + pristine_git_object: 2055a0a3395ab2b6c5dcf33a05203a128ab3f13a src/glean/api_client/models/connectortype.py: id: 12d50eaaf8ba - last_write_checksum: sha1:5c160e04787ed30652694e8a7ec41fb8420e1250 - pristine_git_object: 8d612d979830aba61a136b5f2992176df4490dbd + last_write_checksum: sha1:adbdd18a3d0dcab7c1a8fe9abdf49ce8a60eb8d6 + pristine_git_object: 8e99dab8e7283ea64e5dc2e7f770999ddcceaef8 src/glean/api_client/models/contentdefinition.py: id: be5d817e66bb last_write_checksum: sha1:8c4923b2e58d965aa4f33fbbd2021c84a62a27df @@ -3323,8 +3367,8 @@ trackedFiles: pristine_git_object: 46d5874e2c589df4cc66e96bcb87990414482cb3 src/glean/api_client/models/createdlpreportrequest.py: id: ead547f06612 - last_write_checksum: sha1:ffee07077069fd462be197d74ffe153ae6d93dbe - pristine_git_object: aa1c7eff113e3ebcff12448f7d01971d8c675dd0 + last_write_checksum: sha1:8d735bd7519d1663676885c9f36fe0041e51441d + pristine_git_object: 1af31f17ac8dba7049c725b67e53543017d01a74 src/glean/api_client/models/createdlpreportresponse.py: id: 12ae9b936795 last_write_checksum: sha1:d8bb2f7615e9c998fb1228f6512d23ec23cb669e @@ -3347,8 +3391,8 @@ trackedFiles: pristine_git_object: e225e27361ffa3b42f947127b60abbb58d684583 src/glean/api_client/models/customdatasourceconfig.py: id: fb9b6a1441c1 - last_write_checksum: sha1:98fecd72850fc62bd936783384093df7dac3cf02 - pristine_git_object: 1e4a488d8db678307fae6617de0ac6cfe49c78f7 + last_write_checksum: sha1:c87f8c8e2c13d9239d1bada3fd9ea25208552195 + pristine_git_object: 919ca09d29b218ed2550ab330a20775e8b9bd618 src/glean/api_client/models/customdatavalue.py: id: 956eba94ae1a last_write_checksum: sha1:74edb94c3b8e0e1f1d3f92352f13af31f36245fb @@ -3399,20 +3443,28 @@ trackedFiles: pristine_git_object: 1842e19bd26836c19f9ec035aa879412dad83079 src/glean/api_client/models/customsensitiverule.py: id: 80d2ba78e110 - last_write_checksum: sha1:558af30f6668b745cb2a86f2d25f65db30d4f180 - pristine_git_object: b1c06a84d33a647a1d30feafca72605a737f4d34 + last_write_checksum: sha1:e062ccfb6e8c7a73ac1e61e0aeb3c003f7c094ed + pristine_git_object: 15b459734ef3edb906d3ed2b8a3b7d1bc411c4ae src/glean/api_client/models/customsensitiveruletype.py: id: fbea8b8f6a75 - last_write_checksum: sha1:1e04a196aa25a5d4ce012e17912a7f2ae38da2ed - pristine_git_object: be887e842d3374374ba8cc71504d09fc4b72b67a + last_write_checksum: sha1:ddbdf0eb4821466cfe7d82ae3116a42da0b8f8af + pristine_git_object: b273ac9824d6a273765462dfd73483c75c4c46c8 src/glean/api_client/models/datasourcebulkmembershipdefinition.py: id: 8e48908cf200 last_write_checksum: sha1:2dbe0097ea064113d445953b02e8e18bd4d8ac92 pristine_git_object: 3113d5021832616ed3e5b4e273c2346f6611d996 + src/glean/api_client/models/datasourceconfigurationresponse.py: + id: e9a385b637e9 + last_write_checksum: sha1:69a5dd2f67380cfe0fa0bc5c37eddb5796560ffc + pristine_git_object: 15b227d993619ed946b21ec7e94a9d31b968b195 src/glean/api_client/models/datasourcegroupdefinition.py: id: f7c84882fbcf last_write_checksum: sha1:324acffd92e4e0753b7c3238f17d41f6ea66d5d3 pristine_git_object: 745d20c30b71f9c6c0a9bfa5807373bc29b79e76 + src/glean/api_client/models/datasourceinstanceconfiguration.py: + id: 706b80a1fa59 + last_write_checksum: sha1:ea2e402287097244228eff8122c2337dc1658bee + pristine_git_object: de6cd8aaa59ff7ae08ba5535508b72229ddaba56 src/glean/api_client/models/datasourcemembershipdefinition.py: id: f881717d8c97 last_write_checksum: sha1:1b9e18dedcdbcb47ec1a2f021c6bfd7bd7f008e8 @@ -3435,8 +3487,8 @@ trackedFiles: pristine_git_object: 291568948befef5444d5d6a84f9e1aba7a3f33a6 src/glean/api_client/models/debugdatasourcestatusresponse.py: id: 706c4bfc6802 - last_write_checksum: sha1:06be5c202c9d509ce33968f71b647e6fd87aff43 - pristine_git_object: 46212470a9f431cabfbd3230a118819f8fbc9f0b + last_write_checksum: sha1:05f40dcbaf4c6d29637cb8a235a9bc3754bd3979 + pristine_git_object: 9ebfaf15d0d2f503adeae818bb95490e38e56ec0 src/glean/api_client/models/debugdocumentrequest.py: id: c27a3d5acb34 last_write_checksum: sha1:994d4388bf08f2a89c7891aeb7d98c7bf67c7215 @@ -3563,16 +3615,16 @@ trackedFiles: pristine_git_object: aae5e37dc43c46c6513467e0ea67695fb114209f src/glean/api_client/models/digestsection.py: id: 35356f6b6146 - last_write_checksum: sha1:bd03677e68a7368327032f25ea5099b922a7112d - pristine_git_object: 3916bd17da42242d033349f39f486a17d5522d59 + last_write_checksum: sha1:b78802aa2e7f6ecfee27e704424f47dce00cfd85 + pristine_git_object: 0aafd8aa3bf1816601d1c7c26cf21352696cae53 src/glean/api_client/models/digestupdate.py: id: 604c4e51476b - last_write_checksum: sha1:0581e0ba93f155f0e49918809c4fa6134cfea95a - pristine_git_object: caba0d3bfb7a521bea50accfb5dd67211398effe + last_write_checksum: sha1:4512dba5d379c9d8a753438a1ae36d52daf13dc7 + pristine_git_object: dc68cb9a1a446cadf964e4be602e600bc25dcb26 src/glean/api_client/models/disambiguation.py: id: 7223d97bb07c - last_write_checksum: sha1:b7490ede0956558797ea9ee2d0f92a4fc373c49d - pristine_git_object: e4bf574ed973a568359539edc476ea085b3bcc28 + last_write_checksum: sha1:44cff67ecb9979ce65eb901edca938b8420e6f41 + pristine_git_object: 4c2f6f063ecbc5ec0a458f7ef48cb5c9ec1eba00 src/glean/api_client/models/displayablelistitemuiconfig.py: id: 93c058182294 last_write_checksum: sha1:2f026c937d0dc4d493b66683b7bdfc170f1ec8f0 @@ -3587,12 +3639,12 @@ trackedFiles: pristine_git_object: e38155cf4182e0c28744477fa9746921b33df2d9 src/glean/api_client/models/dlpfindingfilter.py: id: 6ef2e5304df7 - last_write_checksum: sha1:4ee397d4930547c52cc24afc73285c7ae93f40dd - pristine_git_object: 4b8b53771328627ddff1db948f18c675ad305b19 + last_write_checksum: sha1:c87a5fc3c9d57530ed1184d2cca6818d7cf36202 + pristine_git_object: 5ff0c89d90d719227d77395596dd60c1033f9ead src/glean/api_client/models/dlpfrequency.py: id: f6f484c2d7a4 - last_write_checksum: sha1:7c48fc297e95a40d143de6e4b81b76f7db4dbfdd - pristine_git_object: a7da3a83ac16c0fd906e64fd02f84a17b03d1396 + last_write_checksum: sha1:487ce5e7651214ea7906d0d4e74371544cc436f8 + pristine_git_object: 334f894fe2a36391f40ff6831cfdc5aeecddbf21 src/glean/api_client/models/dlpperson.py: id: 15e2ffa25e1a last_write_checksum: sha1:5bf5af63c77909290460f8f241a930d14b783476 @@ -3603,24 +3655,24 @@ trackedFiles: pristine_git_object: 9f5e147e42bbc1ec1e83dc63b74a83438aac0415 src/glean/api_client/models/dlpreport.py: id: 6a534cac7e31 - last_write_checksum: sha1:a7c2ea0698e34b2757b7fc52846847d81b9674e4 - pristine_git_object: 706524ef5ec4900b94009f7790cf56b06041aa63 + last_write_checksum: sha1:08f3f73856a36b4def8bbd04c9f2081e68504d2c + pristine_git_object: 457ebe8aa1a0fc5d075d97ec558fd936f0a2d969 src/glean/api_client/models/dlpreportstatus.py: id: 4b288f23576f - last_write_checksum: sha1:82107288d2c55c02aa96efe668fc1be326b380b7 - pristine_git_object: 89f5b52fc7c0778a18fbf466d58872733ce85743 + last_write_checksum: sha1:9e9bbab7ec6b06d3034ea61f19208cf15be3a98b + pristine_git_object: c7768ce7bd50c02cbd7a212ab45e721e81002e54 src/glean/api_client/models/dlpseverity.py: id: 3c14229136ab - last_write_checksum: sha1:bf9f62b4c6e594bf9ea24964a1d777fad8a98ece - pristine_git_object: 625f32b87d94aaaf420f5521f3961fec9df6fdf9 + last_write_checksum: sha1:f61afbc43794f1cd3fe453fdd7bbc2a6386c9343 + pristine_git_object: bd785981c594353dada51425cefe60b44d806ea5 src/glean/api_client/models/dlpsimpleresult.py: id: b50c9a50553f - last_write_checksum: sha1:8424527d5f2924602749fc42883b7fd2789e2d5e - pristine_git_object: 83e953255d0df7f94b267511f117d10bc06957c7 + last_write_checksum: sha1:fdf7ae261c37a65ec7354426e7003934325f9efb + pristine_git_object: 212efae1a21283c3d96458029e9b64886d2100ae src/glean/api_client/models/document.py: id: f62889df4380 - last_write_checksum: sha1:d250fb540bb21129e2a3c8c5923a5fab04c0bb20 - pristine_git_object: 43f4b20ec132f8a771fde70e5221952684916225 + last_write_checksum: sha1:c0cfd5b57211ad30a39e8342270d9f5479932766 + pristine_git_object: 8817169144fc3f9781dc00282d394bad056c8a86 src/glean/api_client/models/documentcontent.py: id: 5002c1dea323 last_write_checksum: sha1:83485a0ac91d8fb2e276e01007e3727c7ab1d0b2 @@ -3639,8 +3691,8 @@ trackedFiles: pristine_git_object: a0f8c83d0df22df8877603b209d08fb44e472b83 src/glean/api_client/models/documentmetadata.py: id: 203606bfdd41 - last_write_checksum: sha1:80b7d35dbd045f3042224b0d4feb99cc10d351df - pristine_git_object: 19cb2dc2f1aec134489beb7e77ce1d8eefa6e121 + last_write_checksum: sha1:0c6582094aa1cbda94a1bac096872e610d06bb15 + pristine_git_object: 6fd3ba739ef3a0309797f000df46cfe7f8110956 src/glean/api_client/models/documentorerror_union.py: id: 1851ad2d77e1 last_write_checksum: sha1:edd4bee869906b3874fd1640bd3657e9aef66292 @@ -3655,24 +3707,24 @@ trackedFiles: pristine_git_object: 2a00129600c74f79a112dcb48c21b699c0cbc696 src/glean/api_client/models/documentspec_union.py: id: 9b7e01401389 - last_write_checksum: sha1:522461b2b802ae0a3042e655e3aa2d10a450c1d6 - pristine_git_object: f0509023b7a24899c6936e9f23bef10bb94886c5 + last_write_checksum: sha1:194ddee78f5030edb711e9250532c6cf14d90873 + pristine_git_object: 368263cd76c3f63f3356dd3a040f3b55d262f5ae src/glean/api_client/models/documentstatusresponse.py: id: 03c5597a3ee0 last_write_checksum: sha1:535d9ba8ae657b97394e8d8e5beb149f77dfd5c8 pristine_git_object: 9ab97c4243b15ba896a3d721fb2eced875864f19 src/glean/api_client/models/documentvisibility.py: id: de44fa8f48da - last_write_checksum: sha1:6f4e5a80c9e554fc9e19e881f5bca1e096db10f3 - pristine_git_object: fb5813a945e04d9c777afb2a874a7b4310772905 + last_write_checksum: sha1:985c869e95a61595826842cb225d63dc3d8c4d29 + pristine_git_object: 59bfc0522f5c880450dca0184b601a0c4c6617f2 src/glean/api_client/models/documentvisibilityoverride.py: id: d5c36989b68a - last_write_checksum: sha1:527b2a6ab55361ac5814720f780d4026663426ea - pristine_git_object: 27fb5add33e2d14cf590821a741c6d5b50d26c24 + last_write_checksum: sha1:dddbceb0c50df213f2ed943052c130970e9cadde + pristine_git_object: 694f8cd4fa3341c1579627ac2218105f3af0c2d5 src/glean/api_client/models/documentvisibilityupdateresult.py: id: 499e53f55b75 - last_write_checksum: sha1:5d3242a167c224fa8b6a9bf2c4942583138d4986 - pristine_git_object: 2781be2ad675b42f33071a999baef52bb108c071 + last_write_checksum: sha1:9301ef4daf0632c60d1eb3aea79e1fb9d1c95b3b + pristine_git_object: 7d8784b97e213ec476863501b10662c30c50d5d6 src/glean/api_client/models/downloadfindingsexportop.py: id: 2694d3597292 last_write_checksum: sha1:272810d856c01cc1fe68b55286be0092fd5ddc06 @@ -3715,8 +3767,8 @@ trackedFiles: pristine_git_object: 09a38ab2c438c189cc6c473cc9f5f96a528f2d4f src/glean/api_client/models/editcollectionresponse.py: id: d5021e1e02ea - last_write_checksum: sha1:d3b7fa65db3e8b8e02746fb7be1c338aa0c9161b - pristine_git_object: 43e051a9568e591c786b1956041d73e3fa96ae96 + last_write_checksum: sha1:2e60908c3cbb0d22e2f0fcf0809b3c347b03d911 + pristine_git_object: 5030396bcf39e617f91c34eb3f607bc756f9f051 src/glean/api_client/models/editpinop.py: id: ccf2c7c31a0e last_write_checksum: sha1:362557599334d8df280cd62d5dd818ed519f0221 @@ -3735,16 +3787,16 @@ trackedFiles: pristine_git_object: 1505b40dc6cc6318fa0bb146a79c5608c7d05607 src/glean/api_client/models/entitiessortorder.py: id: cd626c042435 - last_write_checksum: sha1:3748f760b70c5a78b1b001073c1d0b8e862d1a6e - pristine_git_object: 76d80c681674fbf494dd0205499e21275377b13f + last_write_checksum: sha1:606f29ffe3a88b92c0c916b49c5bc1a290b9637f + pristine_git_object: f3e5ae63a7927d043a525616b22e8e9a5540df69 src/glean/api_client/models/entityrelationship.py: id: 0494cdf060ff last_write_checksum: sha1:ca39e9ad5a91d34509e8d55401df9d0e77f7ce84 pristine_git_object: 0c2c8e5c3c921f30cf17ca89339d192d9d102323 src/glean/api_client/models/entitytype.py: id: 22a4370b1380 - last_write_checksum: sha1:10dd0f78d620747d60368e5d2f874dfa200647ef - pristine_git_object: 43e538599309d65615c83de006b63d6ba9131b9a + last_write_checksum: sha1:b091bec335fef2262c725afa624f188a92ba4b10 + pristine_git_object: af479617f97e668b22634dd88373471ceea7c7a6 src/glean/api_client/models/errormessage.py: id: b2d0a949c567 last_write_checksum: sha1:da8fa8ad368d85903af1bcde7961d3f42a664852 @@ -3759,12 +3811,12 @@ trackedFiles: pristine_git_object: 01bf73544b870d294c46010643e8bbb21c98765d src/glean/api_client/models/eventstrategyname.py: id: 72f93cc36b77 - last_write_checksum: sha1:5de70362e2a1252dd712ed013460c7ba4e5a3887 - pristine_git_object: 5ede7c8c9cad35bbf68587ce4247ee51cf74b55e + last_write_checksum: sha1:f359da6c05742c564e50b84faba2ea0652cd59a1 + pristine_git_object: 2fc0a34fb83cf361d4167e22685f67eaa1cd269c src/glean/api_client/models/exportinfo.py: id: 7039fdf82b53 - last_write_checksum: sha1:3a531fbdc7b6b503d12a9e3c4b556557988b7e59 - pristine_git_object: 9a2325f909e24ce4912114488c49249318276152 + last_write_checksum: sha1:84ae515ccbd441e7d4e603e08d597fe0652cd00e + pristine_git_object: 44eea991445d2d5c77b62e1ce1b33c1fc18a5024 src/glean/api_client/models/externalsharingoptions.py: id: 0df611382e60 last_write_checksum: sha1:a97d071c79734c837c1728c2973bbaa7eac7cf9d @@ -3795,8 +3847,8 @@ trackedFiles: pristine_git_object: 660a4cfd2bd0c88bcd0b9fbebf1817ad380d3524 src/glean/api_client/models/facetfiltervalue.py: id: 2538d6322ce2 - last_write_checksum: sha1:09a30da1d2e454c9fd2f31b2f3a66967d29e2ceb - pristine_git_object: ee889ffbe521d236d0970d9a991487491eb46d26 + last_write_checksum: sha1:1081241c66b814def983fa020b001aead9543b12 + pristine_git_object: c7c45af9635dd2f119b3faa0c41a1745ce45cf23 src/glean/api_client/models/facetresult.py: id: 0b08040192a1 last_write_checksum: sha1:0c21c0dffedd210c1524c4ac03485d3d8b692188 @@ -3807,8 +3859,8 @@ trackedFiles: pristine_git_object: 6a461b85515e30157f9881510c99fd9fea76ada9 src/glean/api_client/models/favoriteinfo.py: id: c8966a607f00 - last_write_checksum: sha1:bf44d5b80309b4bf4af82e5efb354cfc1772099b - pristine_git_object: 3c88b9647ed7148ea20fca6971c09d893db9e22d + last_write_checksum: sha1:95cee1e6b22e0e4bec19beba5e570601e803217b + pristine_git_object: ea11d36b2e8ea8d25498b4aaed1425888d433360 src/glean/api_client/models/feedback.py: id: 511140b14aff last_write_checksum: sha1:b9a4dc761128549b63ecc6d14ab1785fada489e7 @@ -3823,8 +3875,8 @@ trackedFiles: pristine_git_object: 43338d24117a2b2f4dd568237be9403bf09dfcac src/glean/api_client/models/feedentry.py: id: 023eb6c10ae1 - last_write_checksum: sha1:5c665b772cdfb2f4cbd01c6f0642811d95068fdd - pristine_git_object: ae5a612b54653ac242a8ae6479c83b37ec01657d + last_write_checksum: sha1:2af356fdfa8ab0063da12a3c9f029cb916b84949 + pristine_git_object: aaa2eee3f925ce5c1e6157797c1bfbc857c09136 src/glean/api_client/models/feedop.py: id: b8067ac0a127 last_write_checksum: sha1:5785aaa7871eae155d76917b70f37e1015c0fe93 @@ -3843,24 +3895,24 @@ trackedFiles: pristine_git_object: bf833fd23bd31bf8a71ff755477d54e9d1fa653e src/glean/api_client/models/feedresult.py: id: ae187332b37a - last_write_checksum: sha1:0aee65004edf1c3064f7cc76892783bac5d4ee70 - pristine_git_object: f6bec358821bfb5585e416d7fa77d2c73f0f696b + last_write_checksum: sha1:a3fb2996e41ef7e726ad5914bd1f74674d291bb3 + pristine_git_object: 062146c7a5429034692a75d1a70a0a95f7a652f7 src/glean/api_client/models/followupaction.py: id: e2de5c4c8524 last_write_checksum: sha1:0eaa912005684ae12060f0a4014a4f79bd7785e3 pristine_git_object: 45106ff320229c7bf9e06be23502b2612f748ce8 src/glean/api_client/models/generatedattachment.py: id: 257c5ef9996e - last_write_checksum: sha1:ad22a66e98ccf6d5417bd68a727f63efd5982dfc - pristine_git_object: a5a3a950bc930df6514f3e2d5d76ef1c3c4fb486 + last_write_checksum: sha1:ae538bcc82dca6aee9e591914e45a312ef893aea + pristine_git_object: 6041ec086037b6e1ccf81d3d3e8555cb5b1ca509 src/glean/api_client/models/generatedattachmentcontent.py: id: cd6ddc3356e2 last_write_checksum: sha1:6737d5071dc3ce32dfffbff89cc1b5df574f3bc3 pristine_git_object: 01bc041b16d38b41b259e29ed6a641ccf6527176 src/glean/api_client/models/generatedqna.py: id: c505fd0d1ece - last_write_checksum: sha1:8726cbf98d7304152dac6d1beae35e165b2b13e7 - pristine_git_object: 04c0536e6d62983d4706d8e7c13bdfb4b9e59fc4 + last_write_checksum: sha1:de29b41956bbc72082b7af05459eb9bf3a580b3e + pristine_git_object: c1d59b7a6a901941ea4ad64a1867f9c4fb3a4c88 src/glean/api_client/models/get_rest_api_v1_tools_listop.py: id: 34cf81e82af3 last_write_checksum: sha1:9e5027f9774624385e72bb6bac456369860b6fa4 @@ -3875,8 +3927,8 @@ trackedFiles: pristine_git_object: 49e8e1d462f73fcc10f88477696567cf3270539f src/glean/api_client/models/getanswererror.py: id: 7d4df3bf2bfc - last_write_checksum: sha1:506183d20b0e4546648d81907e914be5d89b0c82 - pristine_git_object: dc1a13d880eab799f4b4482ed9f9aa0bb6f3d809 + last_write_checksum: sha1:18d467ae758755118ba2e50a1a0c5edcf06a3d29 + pristine_git_object: 827524e42187b0440a690f6c856e62e880d2b17f src/glean/api_client/models/getanswerop.py: id: d02c69702982 last_write_checksum: sha1:c39e1d250ec79b89621d461ca696cc5e88fabcac @@ -3941,6 +3993,10 @@ trackedFiles: id: 42b2eeea0fdc last_write_checksum: sha1:72e44bdd713ea77abbd991bd01e7f433cd2443ea pristine_git_object: 0fa42a25ca61cb0ca2430b59780801adc55c754b + src/glean/api_client/models/getdatasourceinstanceconfigurationop.py: + id: 2d3c120f1d97 + last_write_checksum: sha1:18081db02ec047f57c1ca29fb90201fa33d69cd2 + pristine_git_object: 25a21bd1a03a9e6966f1e979e2be8830d4f93243 src/glean/api_client/models/getdlpreportresponse.py: id: 0e0111b5d484 last_write_checksum: sha1:ac2b5a4bd5bb5a72c9b33abbb37295193e8e3927 @@ -4051,24 +4107,24 @@ trackedFiles: pristine_git_object: 5a8b8c4ca76c23ac31550210d033fda8b47c4bc3 src/glean/api_client/models/gleandataerror.py: id: 86e8dc6c1eb5 - last_write_checksum: sha1:61e26eaa8e58f81b916f333f4c011eddd4acd876 - pristine_git_object: 707fe60fb4a9055bc6f3372df5929af5a67383bb + last_write_checksum: sha1:1cf177fb553b65bffd57484ac211c96ca8418cfc + pristine_git_object: 5bacca94972fe1a4759dd89dbe63f5a0d4df46bd src/glean/api_client/models/grantpermission.py: id: 0cfd67112b08 - last_write_checksum: sha1:9235ebc4130201f32acec912451caa4689ed17ef - pristine_git_object: 92df0762cf0f6dd5cd75b4a3857a573a7660b726 + last_write_checksum: sha1:15ea53ededf32a1b491e1d6f2956cef844110f3f + pristine_git_object: 70cf7aedec54b0b648fc72969937204ae0b282dc src/glean/api_client/models/greenlistusersrequest.py: id: cc54677a6916 last_write_checksum: sha1:a96583391fcfa804c899066bac902344bc5b22bc pristine_git_object: 85f19cbf2b8e66d45efdd067db1a9d98227edb4d src/glean/api_client/models/group.py: id: 5387fa5912b5 - last_write_checksum: sha1:12568033a44a5f14e6b4f947fcc69b57fc9b901f - pristine_git_object: 8b846642c55305e7a320f742b24dd46d1f7645d4 + last_write_checksum: sha1:9babd6ecb832b20fff877837f76a265b125504f1 + pristine_git_object: 1996f0079034f5b12f5f4160663348fb556e0f80 src/glean/api_client/models/grouptype.py: id: 64925e34480c - last_write_checksum: sha1:6c8d73f709e074154923b8eb682544df19b0398f - pristine_git_object: 30e949feec9063c0aae4e55a98a9a664ce4254bf + last_write_checksum: sha1:c8119cbb1f44d407b78c99228be80c65cdcdbcf9 + pristine_git_object: c94336ed992ffa187193a41ac0a1b2e072d25338 src/glean/api_client/models/hotword.py: id: 0a4b0a179e14 last_write_checksum: sha1:366562e7db6998836b47b70df9ec0c4c3b12191a @@ -4079,8 +4135,8 @@ trackedFiles: pristine_git_object: 358c86568bc6f919f2c9f10e54278029956909fa src/glean/api_client/models/iconconfig.py: id: fec761319e41 - last_write_checksum: sha1:71ae3fefd42fad2c3f3bb826466f47848eaa7740 - pristine_git_object: 97ca9a256ec13c0e1da5ce9a91d18b39bbe95192 + last_write_checksum: sha1:1866e9f45ca1cf6459237f7744892e393548a728 + pristine_git_object: abe3f54eb285bfbb8dd6fca35824197ea353aab1 src/glean/api_client/models/indexdocumentrequest.py: id: 39de79505ed8 last_write_checksum: sha1:1948967b77f2d0d0f23a2da8484d3c25c69faa7a @@ -4119,8 +4175,8 @@ trackedFiles: pristine_git_object: 21e0654e94d799c3f1841da75c14ba31501a6cd0 src/glean/api_client/models/inputoptions.py: id: 29608097f74b - last_write_checksum: sha1:992b3142ce575d302a4b2bbed6af966e4c06e0fb - pristine_git_object: 07eba7dd96b4e5d8db4988f69e5c95c21675f796 + last_write_checksum: sha1:3008abda080af92047d21cb8d05dfd202bb040c7 + pristine_git_object: f85b73270ea3e66af3dc9c5b42cd717d28735128 src/glean/api_client/models/insightsassistantrequest.py: id: ff69cec68e31 last_write_checksum: sha1:61b5756d08f5013309a14d4a9a538522c6e6a0d3 @@ -4159,8 +4215,8 @@ trackedFiles: pristine_git_object: 4ed84420941dca5ebf2f05246fff5047d4265a3a src/glean/api_client/models/inviteinfo.py: id: ba829cd6990e - last_write_checksum: sha1:308837a393d9fceb21d423c5c5cf0762548dfa25 - pristine_git_object: 3b68e8a5b16606e5e7807ba293526316d1f26535 + last_write_checksum: sha1:e132f7d3caf33ca512784458aa2f17726f142261 + pristine_git_object: 98c8577e6b9c127e0b2ecca727ccb75483164079 src/glean/api_client/models/labeledcountinfo.py: id: 35eebfd45449 last_write_checksum: sha1:40cb55c9487a4a10c8734c648eac64f68fd34964 @@ -4275,16 +4331,16 @@ trackedFiles: pristine_git_object: 28584294b900a5925054380d37b2623f766c15f0 src/glean/api_client/models/objectdefinition.py: id: 96d425234754 - last_write_checksum: sha1:f0b4493a08fcfa00141c346b2227a6ba56ab45cd - pristine_git_object: 148c3eeee5f3574d5c469ffbbe35c05429541fe9 + last_write_checksum: sha1:fe8c6e1c6c2839181fcd1926d3f674adf68629b8 + pristine_git_object: 6f8001cad625de291f0b2cce14556c98e7eb3553 src/glean/api_client/models/objectpermissions.py: id: 6a2561118579 last_write_checksum: sha1:a8e544a6845dba4a08654a0bc42e4a2582b332f8 pristine_git_object: 5515fd875a11a126043bca0e95cc7097b9448fa8 src/glean/api_client/models/operatormetadata.py: id: 820aa2772189 - last_write_checksum: sha1:590e474f963d00e0606e3a2814148b24393c4618 - pristine_git_object: d03e9506e19ffba46d23c19ebc785735c1265c16 + last_write_checksum: sha1:de775143c1ea509ff87f50b6dea165df4acd0350 + pristine_git_object: 55fffe7707d9dd43a3467dbb6907559d112ab063 src/glean/api_client/models/operatorscope.py: id: 143660b5a54b last_write_checksum: sha1:1fa91c313b4259beb30b7d590d5c32b3f2a45be0 @@ -4327,20 +4383,20 @@ trackedFiles: pristine_git_object: e9511127696034578efc1cc3b778b87564be531e src/glean/api_client/models/personmetadata.py: id: c3af6f3d50a4 - last_write_checksum: sha1:19f4e1d39b6f0bf2d38ae53f417938ff9a91b08c - pristine_git_object: 113c013c438a2a6a2a065910502f8d3e52d0663c + last_write_checksum: sha1:b5c97bde53c1d54deed65cd0fb4f53020759ddc3 + pristine_git_object: 19252b1b781d908b5ad9ff3d9ecb9383053f8352 src/glean/api_client/models/personobject.py: id: 59af9c1e1c5f last_write_checksum: sha1:8e37069549deee32a725de213e86c704bf1352ab pristine_git_object: ab476930b20a2aafb05dc45a84edc2abf666a128 src/glean/api_client/models/personteam.py: id: af542996b2bc - last_write_checksum: sha1:35ff8182143974a0e1fc50954e96a18fc3850410 - pristine_git_object: 9901d3e3243a983ef70a2e7f6a1c8c1635b8fa52 + last_write_checksum: sha1:ac1408767fcd5e02d39347b5dc5378b00b623753 + pristine_git_object: c6a148ca03dc3dbd2199a8d22e9b502eec8f0a41 src/glean/api_client/models/persontoteamrelationship.py: id: d81f4d7f9bd8 - last_write_checksum: sha1:228be121735e0cb122348922461066cef1a701af - pristine_git_object: 6cb4d329f709e57186df6f26be075a4e6ef6b33c + last_write_checksum: sha1:5f3c59624c25290487aed0d93877b5ae15098314 + pristine_git_object: 44d01449dec7c189c6a9176d90052bb21219cbd0 src/glean/api_client/models/peruserassistantinsight.py: id: aad2213c6217 last_write_checksum: sha1:74bf0d3fce89166352965da456ed3068e356f0d7 @@ -4403,8 +4459,8 @@ trackedFiles: pristine_git_object: 83dadeda33bfe6a4cbc6a4953627354d0af122e2 src/glean/api_client/models/propertydefinition.py: id: a5640d2ddbc8 - last_write_checksum: sha1:2a4ccd9b9360534685f2a6fce2b371c71ff45dbb - pristine_git_object: 8116de2d2aa95d93219cca38063736cf063b0a20 + last_write_checksum: sha1:28c1685b84127fbca7e73da923a95a3c2c2a709c + pristine_git_object: 2e5775c9e98d9c844c3145fb84b4c5a33e36c4b0 src/glean/api_client/models/propertygroup.py: id: f592edab23dd last_write_checksum: sha1:7e06b0a348880244352809c95ce0be5ba5e3cb72 @@ -4419,16 +4475,16 @@ trackedFiles: pristine_git_object: 8d5b0fedd461aa35cb427bd96d989accb305401b src/glean/api_client/models/quicklink.py: id: 0304461c2f90 - last_write_checksum: sha1:73b41ae0507ced2e67a87a15a688943d45953558 - pristine_git_object: 0312b05d54abb2bb90fec5c347fcc5c562f3cdcd + last_write_checksum: sha1:f24197e57a9d57d4b768de3210d6ed112201e65f + pristine_git_object: 9ade67c4eb52f36066c72a993ab3796dd95a512b src/glean/api_client/models/reaction.py: id: 076b69450df3 last_write_checksum: sha1:2fba20d30abeb7cd48a36392e4ad83ad25417a59 pristine_git_object: d6af14e2c6b394603c35eb1a060d47c8b97fbf44 src/glean/api_client/models/readpermission.py: id: 13410259df92 - last_write_checksum: sha1:6bbacbd60aecaf4e8d10020dbd46a05f5ef4e5a7 - pristine_git_object: 9ac9f9e25e97e55877820a762f1ecfbb72fab46a + last_write_checksum: sha1:1ae3e2b1810cc6af344d5eb249f6e7da852b5420 + pristine_git_object: 9c80bb2e7de99ef3e9ab9d863c7669073312d700 src/glean/api_client/models/recommendationsop.py: id: ee5dd14cd496 last_write_checksum: sha1:448097fe0d644676361b5ddaf75f70724dec4018 @@ -4447,8 +4503,8 @@ trackedFiles: pristine_git_object: 45726489c4ea6a2a664e679bfb833b4ddc49e1ed src/glean/api_client/models/relateddocuments.py: id: "956195080413" - last_write_checksum: sha1:bd9688bde6bf74d4f4270d62ef3c75146d08c78f - pristine_git_object: 034a4c3a437b9f641a8ff4934ca4748d7648ea33 + last_write_checksum: sha1:6fe40fafb830815c5d743ec4d310e2b7c62b9026 + pristine_git_object: 55f46adf0fd58de98baaeb343443b2777701345d src/glean/api_client/models/relatedobject.py: id: c8937c435039 last_write_checksum: sha1:420e9303bf60fc927a99d5efda0174d8565d1464 @@ -4471,8 +4527,8 @@ trackedFiles: pristine_git_object: 774077db3c79a83593958d01595ed3f6b6b8a6e8 src/glean/api_client/models/reportstatusresponse.py: id: 772284b8ed0e - last_write_checksum: sha1:5254967a9c2c2afaf99e2eafdaa6faaa0e6614ef - pristine_git_object: 2522a82e660b9911510d19a6d2c6dabdd975b707 + last_write_checksum: sha1:dc063af1b02cfa0ddd4e138b9bab8130b7d96ac1 + pristine_git_object: 58380be4cf9fe139e4a61c01fbf3cc48704530e1 src/glean/api_client/models/restrictionfilters.py: id: 2fb7b9c3c114 last_write_checksum: sha1:a4a5b50c69652947127d21bc5e87798107a22d3c @@ -4495,8 +4551,8 @@ trackedFiles: pristine_git_object: f9b9e44f8b3128fa27e85accd60bf34bf3f23a0c src/glean/api_client/models/scopetype.py: id: 2f48507a9410 - last_write_checksum: sha1:d460ea7e8d17a038e43c2eb26ce16ac276140d87 - pristine_git_object: 3f3b0004bc5152c445ae5e6b2a52e3a2d416d9fe + last_write_checksum: sha1:4245fb548034949fad3ffea8f6afa5ddea1ffde0 + pristine_git_object: e45814ba47a94bde527ff4fe6f216224211eb3af src/glean/api_client/models/searchagentsrequest.py: id: e4777828bb53 last_write_checksum: sha1:304fec4d49f1ea5033de379d68809ee463e569d2 @@ -4523,8 +4579,8 @@ trackedFiles: pristine_git_object: f5ea350845369391ec299ffe056f8f471299bcb8 src/glean/api_client/models/searchrequestoptions.py: id: c7963bd59328 - last_write_checksum: sha1:cc91cc0d63d811f44d4cce961d0bb356c9dfee40 - pristine_git_object: 9ee1139fb9b5619fb6eafd782e6a11d7e20c6bda + last_write_checksum: sha1:a57e90171b5a4609f51871752f3004dd8104b595 + pristine_git_object: a25a2d04bbedf92a2bdc23580a6067686c26df11 src/glean/api_client/models/searchresponse.py: id: d705ad40d03c last_write_checksum: sha1:83d422a78f65c92a234626e4b8e2e55a279596e4 @@ -4535,24 +4591,24 @@ trackedFiles: pristine_git_object: c7157ae618ad475d51fcdd87ea55802e931fefe0 src/glean/api_client/models/searchresult.py: id: 80390a0977b7 - last_write_checksum: sha1:f02cd34af816102446a9df80a898c1dc84bb34b4 - pristine_git_object: c476686ed7b98ee0b8e069b13963d1e75d627ebb + last_write_checksum: sha1:25cd177ecfa5b61f92abb88003b4fd061c4020c4 + pristine_git_object: ceb26500bffd76556bfac4e838e2c8fd8dcadfcb src/glean/api_client/models/searchresultprominenceenum.py: id: 611302793a36 - last_write_checksum: sha1:4225ab438686c0ad0beb7c0f11bcb523a01e3e67 - pristine_git_object: ddf2e8f1cfe9e3860a5753d118bbde9bbb3ed34c + last_write_checksum: sha1:75da9f35ae33d71515f58654134b6d614f453ecf + pristine_git_object: 27ef471f64a9f280f3142d2f9b825c0058b2c365 src/glean/api_client/models/searchresultsnippet.py: id: 70ba81075b57 last_write_checksum: sha1:926645aaabf6aac684e5018645b73cf6dfd723a0 pristine_git_object: c235ac1f310e375c69bff593f56d226d37793e0f src/glean/api_client/models/searchwarning.py: id: c2eca228f00f - last_write_checksum: sha1:4951154af78b80453a435e8f3b7f235e5142720b - pristine_git_object: 72c2fb915b0a912916067ff56e5b5d6054f8b8c5 + last_write_checksum: sha1:25aa42ef2ea3e48d5210036853a88492daeae464 + pristine_git_object: 062363ded2714b3e6671f1a5b79308b952d069b1 src/glean/api_client/models/sectiontype.py: id: 9b5de392015d - last_write_checksum: sha1:6bfac99bee31c88303dbda27576b7f283eb0eabf - pristine_git_object: 2dbb489e5e57896b6bac27ee2e7aa6d9b6acc986 + last_write_checksum: sha1:130b8a1f543787e1f3f63915036bcf448ec52ceb + pristine_git_object: 59fe1bb6ae5db2711599be0bb64971a8a8aa4c9f src/glean/api_client/models/security.py: id: 79159407101e last_write_checksum: sha1:d6eec3a1ca1d3a71d6c2ba5d89d45b6ed644bb9e @@ -4571,8 +4627,8 @@ trackedFiles: pristine_git_object: ddc4bf2e43c37f93aead49b02339dd7780d077cb src/glean/api_client/models/sensitiveinfotype.py: id: 6d9d1a461507 - last_write_checksum: sha1:eeda43e2e6e951aa72c007d7b4b29633b5c89307 - pristine_git_object: 69c211224ef92c406a6cea81fd9bf10c2a3476f8 + last_write_checksum: sha1:18c1fe30f253045f329338a5eb7e38356cca2613 + pristine_git_object: 95dec2f71c4e4235160bec884d91fef32a3007b0 src/glean/api_client/models/sessioninfo.py: id: 4127a11bdfbc last_write_checksum: sha1:f81f0f43df044f115bc04120f6122c9a52d764b2 @@ -4591,8 +4647,8 @@ trackedFiles: pristine_git_object: c36e2aa4522107840f3d5fcb3d8b11cbd33bb97f src/glean/api_client/models/shortcuterror.py: id: 2f86c1d02a49 - last_write_checksum: sha1:267fbcee22f522f1dba995b778eb6087a32d57f2 - pristine_git_object: bc2d9b7fe2642c63690226658357a88c3c806200 + last_write_checksum: sha1:ac9b6a68c7b67aab2a5c6f16de7dc947e0e0c392 + pristine_git_object: ac2407ce9d1cea8509cca5a38dddf61d1cf1e341 src/glean/api_client/models/shortcutmutableproperties.py: id: 16671c35b7ba last_write_checksum: sha1:15dad72640797d70f44e84a8bcce767d809daa9b @@ -4627,8 +4683,8 @@ trackedFiles: pristine_git_object: b4281e4e2e4a9058ac0be6d86f6e0262bd3c50c2 src/glean/api_client/models/structuredresult.py: id: 1777b707d24b - last_write_checksum: sha1:0eb9dc0e8959d4947afcddd83c1603a4682cc647 - pristine_git_object: ece0abe67a14e54392afb30f40b099ed84c373e7 + last_write_checksum: sha1:faec99113dba8d01b66d853a55c3dd42da8f7b64 + pristine_git_object: 8f1d1e2824dc80e0bc850fc451c678f4d590bcdc src/glean/api_client/models/structuredtext.py: id: 5a5980e70744 last_write_checksum: sha1:c27d7710c18265efe0f3ae36a3a5218834ce0411 @@ -4659,8 +4715,8 @@ trackedFiles: pristine_git_object: a99d75250f0054283cd58035654a7808e2458a2d src/glean/api_client/models/team.py: id: 8899a02080f7 - last_write_checksum: sha1:5c9a717187e8fe5d67bf2eeb8095190a61da80a6 - pristine_git_object: c688efcded11ab107b167ad9d9b6c950c5ffc353 + last_write_checksum: sha1:b5ec9026571a54bb61339923f9ce1ea47e45b90d + pristine_git_object: 4abb136d2f0ff142ba0ec0c14d682c22fced605c src/glean/api_client/models/teamemail.py: id: e0dd0042405b last_write_checksum: sha1:132b7d70088f21bb60f3d6837637bce513498c0a @@ -4675,8 +4731,8 @@ trackedFiles: pristine_git_object: d6cece46d1ce6bf24e0233b882eb5060218b535d src/glean/api_client/models/textrange.py: id: fd0971fbe1a2 - last_write_checksum: sha1:764d7773d4cce699f50bedc6c9fff66ca1b3fabe - pristine_git_object: 2d665a5175674f42972967a8905ee1333c3c9646 + last_write_checksum: sha1:12a2657f0cab8fd70ac4a0f6df3c01f0a4ce2029 + pristine_git_object: fea3df5e0ef885877d93df525287f8775684b0b1 src/glean/api_client/models/thumbnail.py: id: f1c4780867a9 last_write_checksum: sha1:a5bcb1ac09080d558fcb1233ee92499c2292186b @@ -4695,24 +4751,24 @@ trackedFiles: pristine_git_object: c8b09f0dfc36c43b457735a04f05b40defd00a3c src/glean/api_client/models/timerangefilter.py: id: 0eead7612909 - last_write_checksum: sha1:80a5705ef0d89b517c49398428ba467352cb981f - pristine_git_object: 92f7896e6fe209e76f49ef557b5ec89edcf4b8a7 + last_write_checksum: sha1:58a0b71b056d6e8d54c6b206eeddf70fad8d615f + pristine_git_object: 49087f7a388533520f5bcddf9268c3628c239199 src/glean/api_client/models/tool.py: id: acaa76f0ab87 - last_write_checksum: sha1:e7c5f78afb4df7a4055f87b4b48157475e6add8a - pristine_git_object: 7252330cef23eb73eb1dc59d7d8e861698162979 + last_write_checksum: sha1:23eb68406940b432e2a21c41182c782670071581 + pristine_git_object: 6469ec58da7363dc67e70cb280f74678d0d2cd52 src/glean/api_client/models/toolinfo.py: id: f210c6276023 last_write_checksum: sha1:641917d251dda9d4be07e214d2b4d1e9671fcd91 pristine_git_object: a83308e92b4f42f49bb53e8b81ae6af103f296f7 src/glean/api_client/models/toolmetadata.py: id: 7ed199e1f217 - last_write_checksum: sha1:2c9ffcf95cc30526a0a8d15de1c11a8fdccd6760 - pristine_git_object: 10e8f64dfc89c729232a8ea787cb30962b456cf3 + last_write_checksum: sha1:30edd211c5481866ebb236c0b2c8db8a895e89c2 + pristine_git_object: bac0b288c27e25296472ae6aabae24dd8f9f2666 src/glean/api_client/models/toolparameter.py: id: 630b822ac98b - last_write_checksum: sha1:efdfb57855d6f12507bb9b16c32669abcacd5a57 - pristine_git_object: 31e41566b184b56f787bb46a60815d89bc6c03ca + last_write_checksum: sha1:fa235cdb66ece6bd8c830fcbf31efe9ba1ac0e39 + pristine_git_object: a01ddb8e9b65d4ba1680822a6d737ca93bfc62ea src/glean/api_client/models/toolscallparameter.py: id: 983b41ea115b last_write_checksum: sha1:1dde2fd7bfd393a253f0303f067362deebe8ba44 @@ -4735,12 +4791,12 @@ trackedFiles: pristine_git_object: d20d237b50f1ee24740e67aeaee522b0999d5fb1 src/glean/api_client/models/ugctype.py: id: 9afda9fb9dd7 - last_write_checksum: sha1:8f7e4236f023551cae93d5a75872ea6d1a3d3c29 - pristine_git_object: 9594a7bfffd04c21e4fdf0c792b3474ed631cb6d + last_write_checksum: sha1:7bb78a72d4d92f1c8a40fac54473773b6021273c + pristine_git_object: 7ed8033e228711e774ab6486840e0b85f159413e src/glean/api_client/models/unauthorizeddatasourceinstance.py: id: d3507c78b8df - last_write_checksum: sha1:f296ce21379e31857108f7d3f0c77c4346385bef - pristine_git_object: bec92224397eb6772fbc857bb6048360d48b5eb1 + last_write_checksum: sha1:e3fa0a443633af8a9ce33af5eb4d968020044e4e + pristine_git_object: c4067eccdc55a843f937122d01a5740244a98c7d src/glean/api_client/models/unpin.py: id: fd3f7ecf7a4f last_write_checksum: sha1:38b097cc87897b932f2f52ecc1e8cebc9a7833a8 @@ -4757,22 +4813,30 @@ trackedFiles: id: 4e395ad26b24 last_write_checksum: sha1:e64f4b907ba1a3772743265b327ac18786567362 pristine_git_object: ef92fe1d3b9a1b80dca2de84fe415d3c13c9a167 + src/glean/api_client/models/updatedatasourceconfigurationrequest.py: + id: 2d2985d17d84 + last_write_checksum: sha1:e08a352d5d8c680c7d07e762f8eacefbb5122bc8 + pristine_git_object: e1a2c5a3409aaa0d3dc3a187d2a2c294064771ab + src/glean/api_client/models/updatedatasourceinstanceconfigurationop.py: + id: 8678b3d30355 + last_write_checksum: sha1:64a508426d218a72ef740a0d5aa0bd2924b421f8 + pristine_git_object: 1f77deeb8fb6a8a875f49e590e9a98381e5fce41 src/glean/api_client/models/updatedlpconfigrequest.py: id: a3d254d01c5f last_write_checksum: sha1:34623e584ba9a2816d236628d4b0c7a8b2d3649d pristine_git_object: 9111f9594e279c16a0f3b4cddb401a2f00a56a7e src/glean/api_client/models/updatedlpconfigresponse.py: id: ebdba2bf5b4f - last_write_checksum: sha1:f92222e8d3f302abd684094e2c7d62a3a8771e62 - pristine_git_object: d415f88dc3a7afa2f8b45fb526a82273c5da51cb + last_write_checksum: sha1:d792b72dd8d02d35e63d5d38a9709de98186c7b4 + pristine_git_object: 469506585a8fd48f09ef6535b8b2144c49186b1a src/glean/api_client/models/updatedlpreportrequest.py: id: 955dc0f697ca - last_write_checksum: sha1:55a4f8cb42668fbe54332b3beab188aa6d251ceb - pristine_git_object: 63f109621370d73b887ac18861f96f2ae392be89 + last_write_checksum: sha1:3bb4ba640c4a3214d2e9804d9b7624760eb418fe + pristine_git_object: 4f30204129c852720f00acbc7d5039becd9b9efc src/glean/api_client/models/updatedlpreportresponse.py: id: 4d603da790ea - last_write_checksum: sha1:2ac8aba5b1984b62064116ac115c4841e799a173 - pristine_git_object: c65474b8476df87408a80b0504e69c2238ac7981 + last_write_checksum: sha1:09af5d21f0546892bafc9ed52009933ca75ab37a + pristine_git_object: fd8846794821958b4005d7d017e8a662586da1ef src/glean/api_client/models/updatedocumentvisibilityoverridesrequest.py: id: 90d244edbd6e last_write_checksum: sha1:361acce6d6e7374db7016978da474b2d79aa4bef @@ -4803,8 +4867,8 @@ trackedFiles: pristine_git_object: ed28c5ae287b6c83e83cae488702f3a7046ee6d6 src/glean/api_client/models/updatetype.py: id: bdade91a9b2b - last_write_checksum: sha1:e4958a4a45413b8e471a5311068792ab8c6adb96 - pristine_git_object: 687544d47bd9c1e71f933ec6fb4e5a33f197b49b + last_write_checksum: sha1:7b185f14a24c29e8b53ce58533971828af23f4ef + pristine_git_object: 6a51a4bbf41b92eae18eeca9df409b52522ab70d src/glean/api_client/models/uploadchatfilesop.py: id: 29eaccdd7727 last_write_checksum: sha1:4754d58e641d54d4d16c2f2423ca2c1ecf99cbdf @@ -4823,20 +4887,20 @@ trackedFiles: pristine_git_object: 292988f6e1fae0b2665567fea0f33ab87b9d6ccb src/glean/api_client/models/uploadstatusenum.py: id: a93d3718abcc - last_write_checksum: sha1:867bb71590ac5c8188a6123232f168bbdecbdd43 - pristine_git_object: c7ca19e2a45578fa30dc8ca998f2e4197149cd17 + last_write_checksum: sha1:3de738be3c16545f46bc3a05ba903e5cab17a216 + pristine_git_object: 950f6a404fa4ea4f8667a58817fd471f0b000b7a src/glean/api_client/models/user.py: id: 4a3ebe791009 last_write_checksum: sha1:1d8ac49787f531c6d9eb2535d649e7103c0fd890 pristine_git_object: 01fc7ac27357a9e8f11513cbd740b11b53728e4f src/glean/api_client/models/useractivity.py: id: 7ed02b8eeead - last_write_checksum: sha1:0ada3cb3d5fb89e9b4e4c2725373fb99869fa0e5 - pristine_git_object: 5108bb40601228bd8798e2bfae259b48becae62e + last_write_checksum: sha1:ae9c2cf794333d040d663001e25bd60b0783f41f + pristine_git_object: c194604a30237f7e9d3ddf7a482019e9378e9786 src/glean/api_client/models/useractivityinsight.py: id: 07ac5bf2e903 - last_write_checksum: sha1:9831f8d682fde6d6cc3620e28daa778e986e8800 - pristine_git_object: 76d1560024db47e6a7efe3863300185d7bb0f9f1 + last_write_checksum: sha1:866aca94e7fa533ac68a0df7411d139d6897b47b + pristine_git_object: 9eae4fc553f8bfbe30aec896a0e9f9d561ce77c2 src/glean/api_client/models/usergeneratedcontentid.py: id: e51bf3d3e0b3 last_write_checksum: sha1:59eca6f26e30abfb8589fd5d3edb6e1231b2be65 @@ -4847,24 +4911,24 @@ trackedFiles: pristine_git_object: 9c914212cf415865eb92b0e538b0b24b4b4e442f src/glean/api_client/models/userrole.py: id: 63599e4c3216 - last_write_checksum: sha1:d4af1e99c1ee0fbb990b5b7e6c12eaa5f6a1c1fb - pristine_git_object: f4aa28fa6fb4bd2effb97fa28569a9fba7271800 + last_write_checksum: sha1:4ec82f0c733b59d7b8de27a5d655e8edba17e88b + pristine_git_object: 2768603fd77e16d9f82da184d9e236a9e2a8fde2 src/glean/api_client/models/userrolespecification.py: id: c746dd831aa4 - last_write_checksum: sha1:26aaf275b11e92afc1cbe7c115a0cf979a9973e4 - pristine_git_object: b6902a8c240c1dbd277b6ad7d726dfd9c5aefd25 + last_write_checksum: sha1:1f31ef036c5e6161963da1a372e49f0ca81a4e91 + pristine_git_object: d67f51b852f764dc90a2219a4632da01372f0ed3 src/glean/api_client/models/userstatusresponse.py: id: 30477cf9a61f - last_write_checksum: sha1:e5681fa1f9894a2ca8b37eab2ab57233caa3b0c9 - pristine_git_object: e8fb646ff576ff3eae2c46df59899988bc979bf9 + last_write_checksum: sha1:ee7bdf416296c94a5cb8bda66c63341122338183 + pristine_git_object: 8131eca9e924a539e0235c4b46d8055357ed146a src/glean/api_client/models/userviewinfo.py: id: d03415292af5 last_write_checksum: sha1:9bc5a59461e0220ad3b82c7b510f476fb52f8ca6 pristine_git_object: a81bd1ea1d07274bd46f3b5f601e105e91baed1f src/glean/api_client/models/verification.py: id: f20b858aacfe - last_write_checksum: sha1:b5a6f0075cc0ed99893b1c25f392b3c733d76432 - pristine_git_object: 4aa8837dbf80e8e486795e1377812f49b4b3d5f4 + last_write_checksum: sha1:2b47c65ece4ed049060977ebc3ab470110b8cbeb + pristine_git_object: 752197e3de2c7f48e9871008b6c1db08c90ed900 src/glean/api_client/models/verificationfeed.py: id: a4d305725b8f last_write_checksum: sha1:c5c5ccdc36871293a8a9982b62c9afac19fd93a9 @@ -4883,8 +4947,8 @@ trackedFiles: pristine_git_object: acdc17d5eeaac57038aa3a2c80e62837ff2690c2 src/glean/api_client/models/viewerinfo.py: id: dc44fac102b9 - last_write_checksum: sha1:3475d911e27f276f8c91025e359b38374e256ce1 - pristine_git_object: b27ade10d3eb1f02c1956f33f7da6aae34e8216d + last_write_checksum: sha1:0a37ee4b111e8859011da416f126e816572be078 + pristine_git_object: f707d635a99b81cf082a9579e253caa89ecd06ac src/glean/api_client/models/workflow.py: id: e59e0fe5f663 last_write_checksum: sha1:21a4afe44430b007e269272463239ffca96427ac @@ -4899,16 +4963,16 @@ trackedFiles: pristine_git_object: b3e81a84fad5595cccb410baafe741420914243c src/glean/api_client/models/writeactionparameter.py: id: 3a7daceaf3fc - last_write_checksum: sha1:14b9e94734e9f25e5f006f575e1c47f3a966165c - pristine_git_object: cd9682d9f9474e24b050e26503a4d9ef8ff77907 + last_write_checksum: sha1:70ae8e918dbf0543f6d0086ab6e80af9c7970245 + pristine_git_object: aff7513d27c23970ea0496152945359d256760ef src/glean/api_client/models/writepermission.py: id: e15ed09cb123 - last_write_checksum: sha1:cebd5dc2e98d93b6ecae3bc236d0dcc748b92f25 - pristine_git_object: 4a9c4635d3ed78a5b63c770dfbcb16373789a90e + last_write_checksum: sha1:2713c19278c3de809dcad841328c5dc709f231e6 + pristine_git_object: 7cea3a93bcb833f4e970a3a3495218fe1e0f02b6 src/glean/api_client/people.py: id: e32c03723ded - last_write_checksum: sha1:02560fa5e7b4358ec6c3677c27e7ee575f241d7f - pristine_git_object: 984073db79503d8bde3a58f8cddc54ddfc2ee331 + last_write_checksum: sha1:9535a8a2203accd99ed9b319a3a4d1263068f0c9 + pristine_git_object: f240b57ccfe87b35762689f0a44122f33618ecb9 src/glean/api_client/pins.py: id: 4a37ead65f8a last_write_checksum: sha1:9c72f34fc747fd9753beb6dcb967366d8c1c9181 @@ -4927,8 +4991,8 @@ trackedFiles: pristine_git_object: fc7fbb02488d301c6bdfcfe1430d61e35efd4e6f src/glean/api_client/sdk.py: id: e2de37b3ce92 - last_write_checksum: sha1:87a22ee048fef8c5ac40fd39aae8027b032849a2 - pristine_git_object: a0a9f4fe7d0fa93eed408014189bb36e537da847 + last_write_checksum: sha1:20b123aa68f6f743456a2483e97c05ceb3583bdc + pristine_git_object: be0521641c7aaea770d62e9347538ad716205930 src/glean/api_client/sdkconfiguration.py: id: f356ce00b5b7 last_write_checksum: sha1:1ae43e08ae57ae277b3ab5e66b52d020149ebe00 @@ -5060,11 +5124,13 @@ trackedFiles: tests/mockserver/internal/handler/generated_handler.go: last_write_checksum: sha1:32101ddff940c59f43a805af303cf645a2bcca0d tests/mockserver/internal/handler/generated_handlers.go: - last_write_checksum: sha1:2aaafbb3aade11b06561dc8efe935abbe714195d + last_write_checksum: sha1:19821864a3ed96150e35949d5d12e9220cfb6ff6 tests/mockserver/internal/handler/pathgetrestapiv1agentsagentid.go: last_write_checksum: sha1:5210b43a5c1c7157ff57f7140449d82dc622931f tests/mockserver/internal/handler/pathgetrestapiv1agentsagentidschemas.go: last_write_checksum: sha1:a70fc628d284a0c11701c7d69a5d22dfdf118706 + tests/mockserver/internal/handler/pathgetrestapiv1configuredatasourcesdatasourceidinstancesinstanceid.go: + last_write_checksum: sha1:be1ef6d303273236aa6b9797453a04bb778cdd62 tests/mockserver/internal/handler/pathgetrestapiv1governancedatafindingsexports.go: last_write_checksum: sha1:06b13f04c06621c32cd5d4664612a3804ffc49c2 tests/mockserver/internal/handler/pathgetrestapiv1governancedatapolicies.go: @@ -5073,6 +5139,8 @@ trackedFiles: last_write_checksum: sha1:08b8057f91f2a800304987937336f033580406df tests/mockserver/internal/handler/pathgetrestapiv1toolslist.go: last_write_checksum: sha1:8b0d26cd221009e78396ed0c573e78c0ac719e36 + tests/mockserver/internal/handler/pathpatchrestapiv1configuredatasourcesdatasourceidinstancesinstanceid.go: + last_write_checksum: sha1:14d3e93a3f37b61145188a9e6544398fcfc200e4 tests/mockserver/internal/handler/pathpostapiindexv1adddatasource.go: last_write_checksum: sha1:f1c92a8b8e4db16ee9334d7e28f8abec8c52d50e tests/mockserver/internal/handler/pathpostapiindexv1betausers.go: @@ -5130,7 +5198,7 @@ trackedFiles: tests/mockserver/internal/handler/pathpostrestapiv1addverificationreminder.go: last_write_checksum: sha1:c84407a2fea61f697db312567614db6b63718d19 tests/mockserver/internal/handler/pathpostrestapiv1adminsearch.go: - last_write_checksum: sha1:eca93b5859c110232d3d2235976ea5d4681fc2e1 + last_write_checksum: sha1:f72a007fdcdc280a3750b7743281ff5a1babbbc3 tests/mockserver/internal/handler/pathpostrestapiv1autocomplete.go: last_write_checksum: sha1:094d64ddc73a91d38e64e3be18690ebb9d4ef3d3 tests/mockserver/internal/handler/pathpostrestapiv1chat.go: @@ -5144,7 +5212,7 @@ trackedFiles: tests/mockserver/internal/handler/pathpostrestapiv1createauthtoken.go: last_write_checksum: sha1:6ce83ba03066acb436796c018d19715615f548c1 tests/mockserver/internal/handler/pathpostrestapiv1createcollection.go: - last_write_checksum: sha1:f9f4c718408bddadbdf826194f07970bb111e57e + last_write_checksum: sha1:14b4a1d98dd55ce2b487ae1aaab4a7dece08df25 tests/mockserver/internal/handler/pathpostrestapiv1createshortcut.go: last_write_checksum: sha1:dcdf684a85e20db1aee571db9a54a3ee259d71d5 tests/mockserver/internal/handler/pathpostrestapiv1deleteallchats.go: @@ -5212,7 +5280,7 @@ trackedFiles: tests/mockserver/internal/handler/pathpostrestapiv1listverifications.go: last_write_checksum: sha1:7b99f010057f6b98a1221d36c4eb56c1db2b0024 tests/mockserver/internal/handler/pathpostrestapiv1messages.go: - last_write_checksum: sha1:410a1891eccae89371ea0a5ad56e1a8e929d08c4 + last_write_checksum: sha1:aa643571dade54af9fd139769a3f89ffdabfad9f tests/mockserver/internal/handler/pathpostrestapiv1people.go: last_write_checksum: sha1:7a2c7c4195547c84ad45b183e8f3ad0992d531fc tests/mockserver/internal/handler/pathpostrestapiv1pin.go: @@ -5220,7 +5288,7 @@ trackedFiles: tests/mockserver/internal/handler/pathpostrestapiv1recommendations.go: last_write_checksum: sha1:1fd737e7116aee5777f6805e5687923531d171b0 tests/mockserver/internal/handler/pathpostrestapiv1search.go: - last_write_checksum: sha1:936fe2abfb7a02c61f1fd7fc399938da801cc744 + last_write_checksum: sha1:fa29db563d6e88b9dd0f93dbe02a00fe13cc471f tests/mockserver/internal/handler/pathpostrestapiv1summarize.go: last_write_checksum: sha1:eafbc420f54c1395f41af4735d74af6105c8d50d tests/mockserver/internal/handler/pathpostrestapiv1toolscall.go: @@ -5252,7 +5320,7 @@ trackedFiles: tests/mockserver/internal/logging/oas_operation_call.go: last_write_checksum: sha1:1ec2244b5fc171dfe7e4e339420b2b17f0df48c9 tests/mockserver/internal/sdk/models/components/actionsummary.go: - last_write_checksum: sha1:26174d625f915fc8a07febb491ccce4dd6d1cbbd + last_write_checksum: sha1:b0345a64f421c33e04cd1aa4c8206c43d7d0f649 tests/mockserver/internal/sdk/models/components/activity.go: last_write_checksum: sha1:62ed2988de11a8af0b36342f9e557621d32cb6d4 tests/mockserver/internal/sdk/models/components/activityevent.go: @@ -5318,7 +5386,7 @@ trackedFiles: tests/mockserver/internal/sdk/models/components/autocompleterequest.go: last_write_checksum: sha1:1afcc6580c049f904d96944dcbf6f96dc9ba0b5a tests/mockserver/internal/sdk/models/components/autocompleteresponse.go: - last_write_checksum: sha1:cb095d71f723f218f37e5846e06708f2c62831c2 + last_write_checksum: sha1:ac7d26f25b2828f520494f4fbe7cd7c2beb9f44a tests/mockserver/internal/sdk/models/components/autocompleteresult.go: last_write_checksum: sha1:8438ff71f398ed3de8208f2f2c8b2d63819c83f2 tests/mockserver/internal/sdk/models/components/autocompleteresultgroup.go: @@ -5374,7 +5442,7 @@ trackedFiles: tests/mockserver/internal/sdk/models/components/chatrequest.go: last_write_checksum: sha1:7d090933c080d356c3716f23a13b2b92cdc93ee9 tests/mockserver/internal/sdk/models/components/chatresponse.go: - last_write_checksum: sha1:9ac97b99d0307f7027ccde644388b29c463de31b + last_write_checksum: sha1:4c8a0d78656e7d6d5f68b5c13734c4c8de76a815 tests/mockserver/internal/sdk/models/components/chatrestrictionfilters.go: last_write_checksum: sha1:528172b6e5a087f2f516ee7e192a7772bc1ee373 tests/mockserver/internal/sdk/models/components/chatresult.go: @@ -5423,6 +5491,8 @@ trackedFiles: last_write_checksum: sha1:26417a78d66849ecd21f05bf40899c5db373f39b tests/mockserver/internal/sdk/models/components/conferencedata.go: last_write_checksum: sha1:64eabce460dc274803c7fb0b7bb45cc9d58d8463 + tests/mockserver/internal/sdk/models/components/configurationvalue.go: + last_write_checksum: sha1:ddbf742f0df37badaee68310779ed24a2895bc72 tests/mockserver/internal/sdk/models/components/connectortype.go: last_write_checksum: sha1:0e2f6006ffa974b582362f1d259dd55fdb02a00e tests/mockserver/internal/sdk/models/components/contentdefinition.go: @@ -5481,8 +5551,12 @@ trackedFiles: last_write_checksum: sha1:f30c464c189f3ca3bd09a64e0949add64287ed40 tests/mockserver/internal/sdk/models/components/datasourcebulkmembershipdefinition.go: last_write_checksum: sha1:7461564626030cdc092d351d101243469e0cf16a + tests/mockserver/internal/sdk/models/components/datasourceconfigurationresponse.go: + last_write_checksum: sha1:0e571c4aab6d7ed0f03e2d834369353cdf4b82d3 tests/mockserver/internal/sdk/models/components/datasourcegroupdefinition.go: last_write_checksum: sha1:7901f25f2a1b52801631df10246ed50357d37837 + tests/mockserver/internal/sdk/models/components/datasourceinstanceconfiguration.go: + last_write_checksum: sha1:f4022b1e8bf17fcaeaaf52f4cdcf1763749389c3 tests/mockserver/internal/sdk/models/components/datasourcemembershipdefinition.go: last_write_checksum: sha1:b2671c4d71318bb6c61f5c7a8b374ef7a5c3f544 tests/mockserver/internal/sdk/models/components/datasourceobjecttypedocumentcountentry.go: @@ -5734,7 +5808,7 @@ trackedFiles: tests/mockserver/internal/sdk/models/components/gleanassistinsightsresponse.go: last_write_checksum: sha1:5b8a4fdefd05ed9e53cbee94c32b0a428175ad22 tests/mockserver/internal/sdk/models/components/gleandataerror.go: - last_write_checksum: sha1:574707e36ef6fbd82f22e354f1771cde58491703 + last_write_checksum: sha1:fa6d4a5917a90f72a97628ba20e31dd31b02af0c tests/mockserver/internal/sdk/models/components/grantpermission.go: last_write_checksum: sha1:83d69c5a502306994095bc1a515d6c52798fa696 tests/mockserver/internal/sdk/models/components/greenlistusersrequest.go: @@ -5788,7 +5862,7 @@ trackedFiles: tests/mockserver/internal/sdk/models/components/invalidoperatorvalueerror.go: last_write_checksum: sha1:6e8e407afa9e6caf4bc946a51054037a0b64100f tests/mockserver/internal/sdk/models/components/inviteinfo.go: - last_write_checksum: sha1:61032a89375395328097e99d31bf547ae52f5870 + last_write_checksum: sha1:a34f4007a255687f057ad9d07c76096ffc122a99 tests/mockserver/internal/sdk/models/components/labeledcountinfo.go: last_write_checksum: sha1:93763fcdc7d3a1e7b6ffc5cfc2e77fe7270e736d tests/mockserver/internal/sdk/models/components/listanswersrequest.go: @@ -5918,7 +5992,7 @@ trackedFiles: tests/mockserver/internal/sdk/models/components/resultsdescription.go: last_write_checksum: sha1:222d4cd162257aa1fa51a4618c5fe5878f620e51 tests/mockserver/internal/sdk/models/components/resultsresponse.go: - last_write_checksum: sha1:0f0c1e24f84e466afbe162723e77c992ea86234a + last_write_checksum: sha1:11f1bf56e8b41e71b3b458d39f4a18b9ad7ae0e3 tests/mockserver/internal/sdk/models/components/resulttab.go: last_write_checksum: sha1:0c61e42fad9332219ca1e3642fb386c3cf9228ad tests/mockserver/internal/sdk/models/components/rotatetokenresponse.go: @@ -5938,7 +6012,7 @@ trackedFiles: tests/mockserver/internal/sdk/models/components/searchrequestoptions.go: last_write_checksum: sha1:17ee2976b192f2b65f9b431afb0e9056aae72278 tests/mockserver/internal/sdk/models/components/searchresponse.go: - last_write_checksum: sha1:f5525fc2fce0c9527511393ea5f25dd9ef017535 + last_write_checksum: sha1:eb63c5279cb78ba8d445ec077a50a898af7f3cc4 tests/mockserver/internal/sdk/models/components/searchresponsemetadata.go: last_write_checksum: sha1:5ba373bccf0e7b975614650485d334c3099aa38a tests/mockserver/internal/sdk/models/components/searchresult.go: @@ -6047,6 +6121,8 @@ trackedFiles: last_write_checksum: sha1:6bd1f6c9f451492810949a589b7cf0e07ede176d tests/mockserver/internal/sdk/models/components/updateannouncementrequest.go: last_write_checksum: sha1:8b10184d480e07a4631098d08ef3c16bfbdfcc33 + tests/mockserver/internal/sdk/models/components/updatedatasourceconfigurationrequest.go: + last_write_checksum: sha1:5710dfb763b96275a55fe0e6b16269cded3f9b9d tests/mockserver/internal/sdk/models/components/updatedlpconfigrequest.go: last_write_checksum: sha1:0612a19ee35705f71346a5d3b6ec4eaec4d9f029 tests/mockserver/internal/sdk/models/components/updatedlpconfigresponse.go: @@ -6199,6 +6275,8 @@ trackedFiles: last_write_checksum: sha1:b9331fcb429d8bb22487234f7fa3627ee91b21f9 tests/mockserver/internal/sdk/models/operations/getcollection.go: last_write_checksum: sha1:758de3276a51cb9ef5e2bc09d8e689a95ff4fc53 + tests/mockserver/internal/sdk/models/operations/getdatasourceinstanceconfiguration.go: + last_write_checksum: sha1:1570d25442383d4a4d95f8e55ffc0f6c426f683e tests/mockserver/internal/sdk/models/operations/getdocpermissions.go: last_write_checksum: sha1:dfd7bfff0ab9672ecfed72ca75845eeb6e1572b3 tests/mockserver/internal/sdk/models/operations/getdocuments.go: @@ -6333,6 +6411,8 @@ trackedFiles: last_write_checksum: sha1:ebc6723ce70f20e4847d322b1f63ab297b7b4d39 tests/mockserver/internal/sdk/models/operations/updateannouncement.go: last_write_checksum: sha1:219c6a8e147028e49185ebfe1488b8efe1e5f4a3 + tests/mockserver/internal/sdk/models/operations/updatedatasourceinstanceconfiguration.go: + last_write_checksum: sha1:9138b5126887e93c98c8c5d936909af27faa6236 tests/mockserver/internal/sdk/models/operations/updatepolicy.go: last_write_checksum: sha1:555e1077b891a4d7a21f275bcffe983b7fff9120 tests/mockserver/internal/sdk/models/operations/updateshortcut.go: @@ -6343,8 +6423,10 @@ trackedFiles: last_write_checksum: sha1:f20f8fd1bbf3169e0e4516595d7971e5cae03951 tests/mockserver/internal/sdk/models/sdkerrors/collectionerror.go: last_write_checksum: sha1:a8ce08145cf00a84487714f875ba1d3a8d84be1d + tests/mockserver/internal/sdk/models/sdkerrors/errorresponse.go: + last_write_checksum: sha1:eecdd5dcfa17d3c57965b06f8d75065b5ccf243b tests/mockserver/internal/sdk/models/sdkerrors/gleandataerror.go: - last_write_checksum: sha1:5f4302649777ef141443c9a78f4f2fe8e9a5fbc0 + last_write_checksum: sha1:ee697c8e2807f2b86c3de73bcbc013bbaf4ee2e9 tests/mockserver/internal/sdk/types/bigint.go: last_write_checksum: sha1:49b004005d0461fb04b846eca062b070b0360b31 tests/mockserver/internal/sdk/types/date.go: @@ -6445,8 +6527,8 @@ trackedFiles: pristine_git_object: 4e7e05cd255ebd497afde50b97fcfa63e4367e2a tests/test_datasources.py: id: 0a9c5268286f - last_write_checksum: sha1:a762f2d7867ba2516772bc38f230660fd4f4c847 - pristine_git_object: 8aaeb530d87bce0eeaf8c1ee7b55d04b4871bde6 + last_write_checksum: sha1:9e67336fc25773bafd6fcf48aeadc3353b2e8344 + pristine_git_object: 68d59bc6412f5a078b332b11f73ecc5db38e5a7a tests/test_displayablelists.py: id: aa656a7efeb2 last_write_checksum: sha1:ad6e518e489b98d4f21c7e0ebab2f085f49be421 @@ -6501,8 +6583,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 @@ -6591,7 +6673,7 @@ examples: application/json: {"messages": [{"author": "USER", "fragments": [{"text": "Who was the first person to land on the moon?"}], "messageType": "CONTENT"}], "agentConfig": {"agent": "GPT"}} responses: "200": - application/json: {"messages": [{"author": "USER", "citations": [{"sourceDocument": {"containerDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "parentDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "sourceFile": {"id": "FILE_1234", "url": "www.google.com", "name": "sample.pdf"}, "sourcePerson": {"name": "George Clooney", "obfuscatedId": "abc123"}, "referenceRanges": [{"textRange": {"startIndex": 831084, "document": {"containerDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "parentDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}}, "snippets": [{"mimeType": "mimeType", "snippet": "snippet"}]}]}], "fragments": [{"structuredResults": [{"document": {"containerDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "parentDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "person": {"name": "George Clooney", "obfuscatedId": "abc123"}, "customer": {"id": "", "company": {"name": "", "location": "New York City", "industry": "Finances", "about": "Financial, software, data, and media company headquartered in Midtown Manhattan, New York City"}, "poc": [{"name": "George Clooney", "obfuscatedId": "abc123"}], "mergedCustomers": [{"id": "", "company": {"name": "", "location": "New York City", "industry": "Finances", "about": "Financial, software, data, and media company headquartered in Midtown Manhattan, New York City"}, "notes": "CIO is interested in trying out the product."}], "notes": "CIO is interested in trying out the product."}, "team": {"id": "", "name": "", "members": [{"person": {"name": "George Clooney", "obfuscatedId": "abc123"}, "relationship": "MEMBER"}], "customFields": [{"label": "", "values": [{}], "displayable": true}], "datasourceProfiles": [{"datasource": "github", "handle": ""}], "status": "PROCESSED", "canBeDeleted": true}, "customEntity": {"roles": [{"person": {"name": "George Clooney", "obfuscatedId": "abc123"}, "role": "VIEWER"}]}, "answer": {"id": 3, "docId": "ANSWERS_answer_3", "question": "Why is the sky blue?", "bodyText": "From https://en.wikipedia.org/wiki/Diffuse_sky_radiation, the sky is blue because blue light is more strongly scattered than longer-wavelength light.", "audienceFilters": [{"fieldName": "type", "values": [{"value": "Spreadsheet", "relationType": "EQUALS"}, {"value": "Presentation", "relationType": "EQUALS"}]}], "addedRoles": [{"person": {"name": "George Clooney", "obfuscatedId": "abc123"}, "role": "ANSWER_MODERATOR"}], "removedRoles": [{"person": {"name": "George Clooney", "obfuscatedId": "abc123"}, "role": "VERIFIER"}], "combinedAnswerText": {"text": "From https://en.wikipedia.org/wiki/Diffuse_sky_radiation, the sky is blue because blue light is more strongly scattered than longer-wavelength light.", "structuredList": [{"link": "https://en.wikipedia.org/wiki/Diffuse_sky_radiation", "document": {"containerDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "parentDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "text": "Because its wavelengths are shorter, blue light is more strongly scattered than the longer-wavelength lights, red or green. Hence the result that when looking at the sky away from the direct incident sunlight, the human eye perceives the sky to be blue.", "structuredResult": {"document": {"containerDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "parentDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "person": {"name": "George Clooney", "obfuscatedId": "abc123"}, "customer": {"id": "", "company": {"name": "", "location": "New York City", "industry": "Finances", "about": "Financial, software, data, and media company headquartered in Midtown Manhattan, New York City"}, "poc": [{"name": "George Clooney", "obfuscatedId": "abc123"}], "mergedCustomers": [{"id": "", "company": {"name": "", "location": "New York City", "industry": "Finances", "about": "Financial, software, data, and media company headquartered in Midtown Manhattan, New York City"}, "notes": "CIO is interested in trying out the product."}], "notes": "CIO is interested in trying out the product."}, "team": {"id": "", "name": "", "members": [{"person": {"name": "George Clooney", "obfuscatedId": "abc123"}, "relationship": "MEMBER"}], "customFields": [{"label": "", "values": [{}], "displayable": true}], "datasourceProfiles": [{"datasource": "github", "handle": ""}], "status": "PROCESSED", "canBeDeleted": true}, "customEntity": {"roles": [{"person": {"name": "George Clooney", "obfuscatedId": "abc123"}, "role": "VIEWER"}]}, "answer": {"id": 3, "docId": "ANSWERS_answer_3", "question": "Why is the sky blue?", "bodyText": "From https://en.wikipedia.org/wiki/Diffuse_sky_radiation, the sky is blue because blue light is more strongly scattered than longer-wavelength light.", "audienceFilters": [{"fieldName": "type", "values": [{"value": "Spreadsheet", "relationType": "EQUALS"}, {"value": "Presentation", "relationType": "EQUALS"}]}], "combinedAnswerText": {"text": "From https://en.wikipedia.org/wiki/Diffuse_sky_radiation, the sky is blue because blue light is more strongly scattered than longer-wavelength light."}, "likes": {"likedBy": [], "likedByUser": false, "numLikes": 204638}, "author": {"name": "George Clooney", "obfuscatedId": "abc123"}, "updatedBy": {"name": "George Clooney", "obfuscatedId": "abc123"}, "verification": {"state": "UNVERIFIED", "metadata": {"lastVerifier": {"name": "George Clooney", "obfuscatedId": "abc123"}, "document": {"containerDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "parentDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "reminders": [{"assignee": {"name": "George Clooney", "obfuscatedId": "abc123"}, "requestor": {"name": "George Clooney", "obfuscatedId": "abc123"}, "remindAt": 175584}], "lastReminder": {"assignee": {"name": "George Clooney", "obfuscatedId": "abc123"}, "requestor": {"name": "George Clooney", "obfuscatedId": "abc123"}, "remindAt": 100341}, "candidateVerifiers": [{"name": "George Clooney", "obfuscatedId": "abc123"}]}}, "collections": [{"name": "", "description": "or into as", "audienceFilters": [{"fieldName": "type", "values": [{"value": "Spreadsheet", "relationType": "EQUALS"}, {"value": "Presentation", "relationType": "EQUALS"}]}], "id": 547453, "creator": {"name": "George Clooney", "obfuscatedId": "abc123"}, "updatedBy": {"name": "George Clooney", "obfuscatedId": "abc123"}, "items": [{"collectionId": 741089, "createdBy": {"name": "George Clooney", "obfuscatedId": "abc123"}, "document": {"containerDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "parentDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "shortcut": {"inputAlias": "", "createdBy": {"name": "George Clooney", "obfuscatedId": "abc123"}, "updatedBy": {"name": "George Clooney", "obfuscatedId": "abc123"}, "destinationDocument": {"containerDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "parentDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}}, "collection": {"name": "", "description": "inside acknowledge painfully", "audienceFilters": [{"fieldName": "type", "values": [{"value": "Spreadsheet", "relationType": "EQUALS"}, {"value": "Presentation", "relationType": "EQUALS"}]}], "id": 902618, "creator": {"name": "George Clooney", "obfuscatedId": "abc123"}, "updatedBy": {"name": "George Clooney", "obfuscatedId": "abc123"}, "children": [{"name": "", "description": "inwardly quietly clinch whether murky before ew diver that knottily", "audienceFilters": [{"fieldName": "type", "values": [{"value": "Spreadsheet", "relationType": "EQUALS"}, {"value": "Presentation", "relationType": "EQUALS"}]}], "id": 719075, "creator": {"name": "George Clooney", "obfuscatedId": "abc123"}, "updatedBy": {"name": "George Clooney", "obfuscatedId": "abc123"}}]}, "itemType": "COLLECTION"}]}], "sourceDocument": {"containerDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "parentDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}}, "extractedQnA": {"questionResult": {"title": "title", "url": "https://example.com/foo/bar", "nativeAppUrl": "slack://foo/bar", "snippets": [{"mimeType": "mimeType", "snippet": "snippet"}], "mustIncludeSuggestions": {"suggestions": [{"query": "app:github type:pull author:mortimer", "label": "Mortimer's PRs", "datasource": "github"}], "person": {"name": "George Clooney", "obfuscatedId": "abc123"}}}}, "meeting": {"attendees": {"people": [{"person": {"name": "George Clooney", "obfuscatedId": "abc123"}, "groupAttendees": [{"person": {"name": "George Clooney", "obfuscatedId": "abc123"}}]}]}}, "collection": {"name": "", "description": "inside acknowledge painfully", "audienceFilters": [{"fieldName": "type", "values": [{"value": "Spreadsheet", "relationType": "EQUALS"}, {"value": "Presentation", "relationType": "EQUALS"}]}], "id": 902618, "creator": {"name": "George Clooney", "obfuscatedId": "abc123"}, "updatedBy": {"name": "George Clooney", "obfuscatedId": "abc123"}, "children": [{"name": "", "description": "inwardly quietly clinch whether murky before ew diver that knottily", "audienceFilters": [{"fieldName": "type", "values": [{"value": "Spreadsheet", "relationType": "EQUALS"}, {"value": "Presentation", "relationType": "EQUALS"}]}], "id": 719075, "creator": {"name": "George Clooney", "obfuscatedId": "abc123"}, "updatedBy": {"name": "George Clooney", "obfuscatedId": "abc123"}}]}, "code": {"repoName": "scio", "fileName": "README.md"}, "shortcut": {"inputAlias": "", "createdBy": {"name": "George Clooney", "obfuscatedId": "abc123"}, "updatedBy": {"name": "George Clooney", "obfuscatedId": "abc123"}, "destinationDocument": {"containerDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "parentDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}}, "querySuggestions": {"person": {"name": "George Clooney", "obfuscatedId": "abc123"}}, "relatedDocuments": [{"querySuggestion": {"query": "app:github type:pull author:mortimer", "label": "Mortimer's PRs", "datasource": "github"}, "results": [{"title": "title", "url": "https://example.com/foo/bar", "nativeAppUrl": "slack://foo/bar", "snippets": [{"mimeType": "mimeType", "snippet": "snippet"}], "mustIncludeSuggestions": {"person": {"name": "George Clooney", "obfuscatedId": "abc123"}}}]}], "relatedQuestion": {"ranges": [{"startIndex": 629124, "document": {"containerDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "parentDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}}]}}}]}, "likes": {"likedBy": [], "likedByUser": false, "numLikes": 204638}, "author": {"name": "George Clooney", "obfuscatedId": "abc123"}, "updatedBy": {"name": "George Clooney", "obfuscatedId": "abc123"}, "verification": {"state": "UNVERIFIED", "metadata": {"lastVerifier": {"name": "George Clooney", "obfuscatedId": "abc123"}, "document": {"containerDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "parentDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "reminders": [{"assignee": {"name": "George Clooney", "obfuscatedId": "abc123"}, "requestor": {"name": "George Clooney", "obfuscatedId": "abc123"}, "remindAt": 175584}], "lastReminder": {"assignee": {"name": "George Clooney", "obfuscatedId": "abc123"}, "requestor": {"name": "George Clooney", "obfuscatedId": "abc123"}, "remindAt": 100341}, "candidateVerifiers": [{"name": "George Clooney", "obfuscatedId": "abc123"}]}}, "sourceDocument": {"containerDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "parentDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}}, "extractedQnA": {"questionResult": {"title": "title", "url": "https://example.com/foo/bar", "nativeAppUrl": "slack://foo/bar", "snippets": [{"mimeType": "mimeType", "snippet": "snippet"}], "mustIncludeSuggestions": {"suggestions": [{"query": "app:github type:pull author:mortimer", "label": "Mortimer's PRs", "datasource": "github"}], "person": {"name": "George Clooney", "obfuscatedId": "abc123"}}}}, "meeting": {"attendees": {"people": [{"person": {"name": "George Clooney", "obfuscatedId": "abc123"}, "groupAttendees": [{"person": {"name": "George Clooney", "obfuscatedId": "abc123"}}]}]}}, "collection": {"name": "", "description": "inside acknowledge painfully", "audienceFilters": [{"fieldName": "type", "values": [{"value": "Spreadsheet", "relationType": "EQUALS"}, {"value": "Presentation", "relationType": "EQUALS"}]}], "id": 902618, "creator": {"name": "George Clooney", "obfuscatedId": "abc123"}, "updatedBy": {"name": "George Clooney", "obfuscatedId": "abc123"}, "children": [{"name": "", "description": "inwardly quietly clinch whether murky before ew diver that knottily", "audienceFilters": [{"fieldName": "type", "values": [{"value": "Spreadsheet", "relationType": "EQUALS"}, {"value": "Presentation", "relationType": "EQUALS"}]}], "id": 719075, "creator": {"name": "George Clooney", "obfuscatedId": "abc123"}, "updatedBy": {"name": "George Clooney", "obfuscatedId": "abc123"}}]}, "code": {"repoName": "scio", "fileName": "README.md"}, "shortcut": {"inputAlias": "", "createdBy": {"name": "George Clooney", "obfuscatedId": "abc123"}, "updatedBy": {"name": "George Clooney", "obfuscatedId": "abc123"}, "destinationDocument": {"containerDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "parentDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}}, "querySuggestions": {"person": {"name": "George Clooney", "obfuscatedId": "abc123"}}, "relatedQuestion": {"ranges": [{"startIndex": 629124, "document": {"containerDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "parentDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}}]}}], "querySuggestion": {"query": "app:github type:pull author:mortimer", "label": "Mortimer's PRs", "datasource": "github"}, "file": {"id": "FILE_1234", "url": "www.google.com", "name": "sample.pdf"}, "action": {"metadata": {"type": "RETRIEVAL", "name": "", "displayName": "Cecil20", "displayDescription": "", "objectName": "[\"HR ticket\",\"Email\",\"Chat message\"]"}}}], "messageType": "CONTENT"}], "backendTimeMillis": 1100, "unauthorizedDatasourceInstances": [{"datasourceInstance": "slack_0", "displayName": "Slack"}]} + application/json: {"messages": [{"author": "USER", "citations": [{"sourceDocument": {"containerDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "parentDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "sourceFile": {"id": "FILE_1234", "url": "www.google.com", "name": "sample.pdf"}, "sourcePerson": {"name": "George Clooney", "obfuscatedId": "abc123"}, "referenceRanges": [{"textRange": {"startIndex": 831084, "document": {"containerDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "parentDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}}, "snippets": [{"mimeType": "mimeType", "snippet": "snippet"}]}]}], "fragments": [{"structuredResults": [{"document": {"containerDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "parentDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "person": {"name": "George Clooney", "obfuscatedId": "abc123"}, "customer": {"id": "", "company": {"name": "", "location": "New York City", "industry": "Finances", "about": "Financial, software, data, and media company headquartered in Midtown Manhattan, New York City"}, "poc": [{"name": "George Clooney", "obfuscatedId": "abc123"}], "mergedCustomers": [{"id": "", "company": {"name": "", "location": "New York City", "industry": "Finances", "about": "Financial, software, data, and media company headquartered in Midtown Manhattan, New York City"}, "notes": "CIO is interested in trying out the product."}], "notes": "CIO is interested in trying out the product."}, "team": {"id": "", "name": "", "members": [{"person": {"name": "George Clooney", "obfuscatedId": "abc123"}, "relationship": "MEMBER"}], "customFields": [{"label": "", "values": [{}], "displayable": true}], "datasourceProfiles": [{"datasource": "github", "handle": ""}], "status": "PROCESSED", "canBeDeleted": true}, "customEntity": {"roles": [{"person": {"name": "George Clooney", "obfuscatedId": "abc123"}, "role": "VIEWER"}]}, "answer": {"id": 3, "docId": "ANSWERS_answer_3", "question": "Why is the sky blue?", "bodyText": "From https://en.wikipedia.org/wiki/Diffuse_sky_radiation, the sky is blue because blue light is more strongly scattered than longer-wavelength light.", "audienceFilters": [{"fieldName": "type", "values": [{"value": "Spreadsheet", "relationType": "EQUALS"}, {"value": "Presentation", "relationType": "EQUALS"}]}], "addedRoles": [{"person": {"name": "George Clooney", "obfuscatedId": "abc123"}, "role": "ANSWER_MODERATOR"}], "removedRoles": [{"person": {"name": "George Clooney", "obfuscatedId": "abc123"}, "role": "VERIFIER"}], "combinedAnswerText": {"text": "From https://en.wikipedia.org/wiki/Diffuse_sky_radiation, the sky is blue because blue light is more strongly scattered than longer-wavelength light.", "structuredList": [{"link": "https://en.wikipedia.org/wiki/Diffuse_sky_radiation", "document": {"containerDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "parentDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "text": "Because its wavelengths are shorter, blue light is more strongly scattered than the longer-wavelength lights, red or green. Hence the result that when looking at the sky away from the direct incident sunlight, the human eye perceives the sky to be blue.", "structuredResult": {"document": {"containerDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "parentDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "person": {"name": "George Clooney", "obfuscatedId": "abc123"}, "customer": {"id": "", "company": {"name": "", "location": "New York City", "industry": "Finances", "about": "Financial, software, data, and media company headquartered in Midtown Manhattan, New York City"}, "poc": [{"name": "George Clooney", "obfuscatedId": "abc123"}], "mergedCustomers": [{"id": "", "company": {"name": "", "location": "New York City", "industry": "Finances", "about": "Financial, software, data, and media company headquartered in Midtown Manhattan, New York City"}, "notes": "CIO is interested in trying out the product."}], "notes": "CIO is interested in trying out the product."}, "team": {"id": "", "name": "", "members": [{"person": {"name": "George Clooney", "obfuscatedId": "abc123"}, "relationship": "MEMBER"}], "customFields": [{"label": "", "values": [{}], "displayable": true}], "datasourceProfiles": [{"datasource": "github", "handle": ""}], "status": "PROCESSED", "canBeDeleted": true}, "customEntity": {"roles": [{"person": {"name": "George Clooney", "obfuscatedId": "abc123"}, "role": "VIEWER"}]}, "answer": {"id": 3, "docId": "ANSWERS_answer_3", "question": "Why is the sky blue?", "bodyText": "From https://en.wikipedia.org/wiki/Diffuse_sky_radiation, the sky is blue because blue light is more strongly scattered than longer-wavelength light.", "audienceFilters": [{"fieldName": "type", "values": [{"value": "Spreadsheet", "relationType": "EQUALS"}, {"value": "Presentation", "relationType": "EQUALS"}]}], "combinedAnswerText": {"text": "From https://en.wikipedia.org/wiki/Diffuse_sky_radiation, the sky is blue because blue light is more strongly scattered than longer-wavelength light."}, "likes": {"likedBy": [], "likedByUser": false, "numLikes": 204638}, "author": {"name": "George Clooney", "obfuscatedId": "abc123"}, "updatedBy": {"name": "George Clooney", "obfuscatedId": "abc123"}, "verification": {"state": "UNVERIFIED", "metadata": {"lastVerifier": {"name": "George Clooney", "obfuscatedId": "abc123"}, "document": {"containerDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "parentDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "reminders": [{"assignee": {"name": "George Clooney", "obfuscatedId": "abc123"}, "requestor": {"name": "George Clooney", "obfuscatedId": "abc123"}, "remindAt": 175584}], "lastReminder": {"assignee": {"name": "George Clooney", "obfuscatedId": "abc123"}, "requestor": {"name": "George Clooney", "obfuscatedId": "abc123"}, "remindAt": 100341}, "candidateVerifiers": [{"name": "George Clooney", "obfuscatedId": "abc123"}]}}, "collections": [{"name": "", "description": "or into as", "audienceFilters": [{"fieldName": "type", "values": [{"value": "Spreadsheet", "relationType": "EQUALS"}, {"value": "Presentation", "relationType": "EQUALS"}]}], "id": 547453, "creator": {"name": "George Clooney", "obfuscatedId": "abc123"}, "updatedBy": {"name": "George Clooney", "obfuscatedId": "abc123"}, "items": [{"collectionId": 741089, "createdBy": {"name": "George Clooney", "obfuscatedId": "abc123"}, "document": {"containerDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "parentDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "shortcut": {"inputAlias": "", "createdBy": {"name": "George Clooney", "obfuscatedId": "abc123"}, "updatedBy": {"name": "George Clooney", "obfuscatedId": "abc123"}, "destinationDocument": {"containerDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "parentDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}}, "collection": {"name": "", "description": "inside acknowledge painfully", "audienceFilters": [{"fieldName": "type", "values": [{"value": "Spreadsheet", "relationType": "EQUALS"}, {"value": "Presentation", "relationType": "EQUALS"}]}], "id": 902618, "creator": {"name": "George Clooney", "obfuscatedId": "abc123"}, "updatedBy": {"name": "George Clooney", "obfuscatedId": "abc123"}, "children": [{"name": "", "description": "inwardly quietly clinch whether murky before ew diver that knottily", "audienceFilters": [{"fieldName": "type", "values": [{"value": "Spreadsheet", "relationType": "EQUALS"}, {"value": "Presentation", "relationType": "EQUALS"}]}], "id": 719075, "creator": {"name": "George Clooney", "obfuscatedId": "abc123"}, "updatedBy": {"name": "George Clooney", "obfuscatedId": "abc123"}}]}, "itemType": "COLLECTION"}]}], "sourceDocument": {"containerDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "parentDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}}, "extractedQnA": {"questionResult": {"title": "title", "url": "https://example.com/foo/bar", "nativeAppUrl": "slack://foo/bar", "snippets": [{"mimeType": "mimeType", "snippet": "snippet"}], "mustIncludeSuggestions": {"suggestions": [{"query": "app:github type:pull author:mortimer", "label": "Mortimer's PRs", "datasource": "github"}], "person": {"name": "George Clooney", "obfuscatedId": "abc123"}}}}, "meeting": {"attendees": {"people": [{"person": {"name": "George Clooney", "obfuscatedId": "abc123"}, "groupAttendees": [{"person": {"name": "George Clooney", "obfuscatedId": "abc123"}}]}]}}, "collection": {"name": "", "description": "inside acknowledge painfully", "audienceFilters": [{"fieldName": "type", "values": [{"value": "Spreadsheet", "relationType": "EQUALS"}, {"value": "Presentation", "relationType": "EQUALS"}]}], "id": 902618, "creator": {"name": "George Clooney", "obfuscatedId": "abc123"}, "updatedBy": {"name": "George Clooney", "obfuscatedId": "abc123"}, "children": [{"name": "", "description": "inwardly quietly clinch whether murky before ew diver that knottily", "audienceFilters": [{"fieldName": "type", "values": [{"value": "Spreadsheet", "relationType": "EQUALS"}, {"value": "Presentation", "relationType": "EQUALS"}]}], "id": 719075, "creator": {"name": "George Clooney", "obfuscatedId": "abc123"}, "updatedBy": {"name": "George Clooney", "obfuscatedId": "abc123"}}]}, "code": {"repoName": "scio", "fileName": "README.md"}, "shortcut": {"inputAlias": "", "createdBy": {"name": "George Clooney", "obfuscatedId": "abc123"}, "updatedBy": {"name": "George Clooney", "obfuscatedId": "abc123"}, "destinationDocument": {"containerDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "parentDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}}, "querySuggestions": {"person": {"name": "George Clooney", "obfuscatedId": "abc123"}}, "relatedDocuments": [{"querySuggestion": {"query": "app:github type:pull author:mortimer", "label": "Mortimer's PRs", "datasource": "github"}, "results": [{"title": "title", "url": "https://example.com/foo/bar", "nativeAppUrl": "slack://foo/bar", "snippets": [{"mimeType": "mimeType", "snippet": "snippet"}], "mustIncludeSuggestions": {"person": {"name": "George Clooney", "obfuscatedId": "abc123"}}}]}], "relatedQuestion": {"ranges": [{"startIndex": 629124, "document": {"containerDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "parentDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}}]}}}]}, "likes": {"likedBy": [], "likedByUser": false, "numLikes": 204638}, "author": {"name": "George Clooney", "obfuscatedId": "abc123"}, "updatedBy": {"name": "George Clooney", "obfuscatedId": "abc123"}, "verification": {"state": "UNVERIFIED", "metadata": {"lastVerifier": {"name": "George Clooney", "obfuscatedId": "abc123"}, "document": {"containerDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "parentDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "reminders": [{"assignee": {"name": "George Clooney", "obfuscatedId": "abc123"}, "requestor": {"name": "George Clooney", "obfuscatedId": "abc123"}, "remindAt": 175584}], "lastReminder": {"assignee": {"name": "George Clooney", "obfuscatedId": "abc123"}, "requestor": {"name": "George Clooney", "obfuscatedId": "abc123"}, "remindAt": 100341}, "candidateVerifiers": [{"name": "George Clooney", "obfuscatedId": "abc123"}]}}, "sourceDocument": {"containerDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "parentDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}}, "extractedQnA": {"questionResult": {"title": "title", "url": "https://example.com/foo/bar", "nativeAppUrl": "slack://foo/bar", "snippets": [{"mimeType": "mimeType", "snippet": "snippet"}], "mustIncludeSuggestions": {"suggestions": [{"query": "app:github type:pull author:mortimer", "label": "Mortimer's PRs", "datasource": "github"}], "person": {"name": "George Clooney", "obfuscatedId": "abc123"}}}}, "meeting": {"attendees": {"people": [{"person": {"name": "George Clooney", "obfuscatedId": "abc123"}, "groupAttendees": [{"person": {"name": "George Clooney", "obfuscatedId": "abc123"}}]}]}}, "collection": {"name": "", "description": "inside acknowledge painfully", "audienceFilters": [{"fieldName": "type", "values": [{"value": "Spreadsheet", "relationType": "EQUALS"}, {"value": "Presentation", "relationType": "EQUALS"}]}], "id": 902618, "creator": {"name": "George Clooney", "obfuscatedId": "abc123"}, "updatedBy": {"name": "George Clooney", "obfuscatedId": "abc123"}, "children": [{"name": "", "description": "inwardly quietly clinch whether murky before ew diver that knottily", "audienceFilters": [{"fieldName": "type", "values": [{"value": "Spreadsheet", "relationType": "EQUALS"}, {"value": "Presentation", "relationType": "EQUALS"}]}], "id": 719075, "creator": {"name": "George Clooney", "obfuscatedId": "abc123"}, "updatedBy": {"name": "George Clooney", "obfuscatedId": "abc123"}}]}, "code": {"repoName": "scio", "fileName": "README.md"}, "shortcut": {"inputAlias": "", "createdBy": {"name": "George Clooney", "obfuscatedId": "abc123"}, "updatedBy": {"name": "George Clooney", "obfuscatedId": "abc123"}, "destinationDocument": {"containerDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "parentDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}}, "querySuggestions": {"person": {"name": "George Clooney", "obfuscatedId": "abc123"}}, "relatedQuestion": {"ranges": [{"startIndex": 629124, "document": {"containerDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "parentDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}}]}}], "querySuggestion": {"query": "app:github type:pull author:mortimer", "label": "Mortimer's PRs", "datasource": "github"}, "file": {"id": "FILE_1234", "url": "www.google.com", "name": "sample.pdf"}, "action": {"metadata": {"type": "RETRIEVAL", "name": "", "displayName": "Cecil20", "displayDescription": "", "objectName": "[\"HR ticket\",\"Email\",\"Chat message\"]"}}}], "messageType": "CONTENT"}], "backendTimeMillis": 1100} streamingExample: requestBody: application/json: {"messages": [], "timeoutMillis": 30000} @@ -6691,6 +6773,8 @@ examples: responses: "200": application/json: {"agent_id": "mho4lwzylcozgoc2", "name": "HR Policy Agent", "description": "This agent answers questions about the current company HR policies.", "capabilities": {}} + "404": + application/json: {} getAgentSchemas: speakeasy-default-get-agent-schemas: parameters: @@ -6699,6 +6783,8 @@ examples: responses: "200": application/json: {"agent_id": "mho4lwzylcozgoc2", "input_schema": {}, "output_schema": {}} + "404": + application/json: {} searchAgents: speakeasy-default-search-agents: requestBody: @@ -6706,6 +6792,8 @@ examples: responses: "200": application/json: {"agents": [{"agent_id": "mho4lwzylcozgoc2", "name": "HR Policy Agent", "description": "This agent answers questions about the current company HR policies.", "capabilities": {}}]} + "404": + application/json: {} createAndStreamRun: speakeasy-default-create-and-stream-run: requestBody: @@ -6713,6 +6801,8 @@ examples: responses: "200": text/event-stream: "" + "404": + application/json: {} createAndWaitRun: speakeasy-default-create-and-wait-run: requestBody: @@ -6860,7 +6950,7 @@ examples: "200": application/json: {"trackingToken": "trackingToken", "results": [{"title": "title", "url": "https://www.example.com/", "snippets": [{"mimeType": "mimeType", "snippet": "snippet"}]}, {"title": "title", "url": "https://www.example.com/", "snippets": [{"mimeType": "mimeType", "snippet": "snippet"}]}], "errorInfo": {"errorMessages": [{"source": "gmail", "errorMessage": "invalid token"}, {"source": "slack", "errorMessage": "expired token"}]}, "requestID": "5e345ae500ff0befa2b9d1a3ba0001737e7363696f312d323535323137000171756572792d656e64706f696e743a323032303031333074313830343032000100", "facetResults": [{"sourceName": "sourceName", "operatorName": "operatorName", "buckets": [{"count": 1, "percentage": 5, "value": {"stringValue": "stringValue", "integerValue": 5}}, {"count": 1, "percentage": 5, "value": {"stringValue": "stringValue", "integerValue": 5}}]}, {"sourceName": "sourceName", "operatorName": "operatorName", "buckets": [{"count": 1, "percentage": 5, "value": {"stringValue": "stringValue", "integerValue": 5}}, {"count": 1, "percentage": 5, "value": {"stringValue": "stringValue", "integerValue": 5}}]}], "rewrittenFacetFilters": [{"fieldName": "fieldName", "values": [{"value": "Spreadsheet", "relationType": "EQUALS"}, {"value": "Spreadsheet", "relationType": "EQUALS"}]}, {"fieldName": "fieldName", "values": [{"value": "Spreadsheet", "relationType": "EQUALS"}, {"value": "Spreadsheet", "relationType": "EQUALS"}]}], "hasMoreResults": true} "403": - application/json: {"unauthorizedDatasourceInstances": [{"datasourceInstance": "slack_0", "displayName": "Slack"}]} + application/json: {} autocomplete: speakeasy-default-autocomplete: requestBody: @@ -6881,7 +6971,7 @@ examples: application/json: {"sourceDocument": {"containerDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "parentDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "pageSize": 100, "maxSnippetSize": 400, "requestOptions": {"facetFilterSets": [{"filters": [{"fieldName": "type", "values": [{"value": "Spreadsheet", "relationType": "EQUALS"}, {"value": "Presentation", "relationType": "EQUALS"}]}]}], "context": {"containerDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "parentDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}}} responses: "200": - application/json: {"results": [{"title": "title", "url": "https://example.com/foo/bar", "nativeAppUrl": "slack://foo/bar", "snippets": [{"mimeType": "mimeType", "snippet": "snippet"}], "mustIncludeSuggestions": {"suggestions": [{"query": "app:github type:pull author:mortimer", "label": "Mortimer's PRs", "datasource": "github"}], "person": {"name": "George Clooney", "obfuscatedId": "abc123"}}}], "structuredResults": [{"document": {"containerDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "parentDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "person": {"name": "George Clooney", "obfuscatedId": "abc123"}, "customer": {"id": "", "company": {"name": "", "location": "New York City", "industry": "Finances", "about": "Financial, software, data, and media company headquartered in Midtown Manhattan, New York City"}, "poc": [{"name": "George Clooney", "obfuscatedId": "abc123"}], "mergedCustomers": [{"id": "", "company": {"name": "", "location": "New York City", "industry": "Finances", "about": "Financial, software, data, and media company headquartered in Midtown Manhattan, New York City"}, "notes": "CIO is interested in trying out the product."}], "notes": "CIO is interested in trying out the product."}, "team": {"id": "", "name": "", "members": [{"person": {"name": "George Clooney", "obfuscatedId": "abc123"}, "relationship": "MEMBER"}], "customFields": [{"label": "", "values": [], "displayable": true}], "datasourceProfiles": [{"datasource": "github", "handle": ""}], "status": "PROCESSED", "canBeDeleted": true}, "customEntity": {"roles": [{"person": {"name": "George Clooney", "obfuscatedId": "abc123"}, "role": "EDITOR"}]}, "answer": {"id": 3, "docId": "ANSWERS_answer_3", "question": "Why is the sky blue?", "bodyText": "From https://en.wikipedia.org/wiki/Diffuse_sky_radiation, the sky is blue because blue light is more strongly scattered than longer-wavelength light.", "audienceFilters": [{"fieldName": "type", "values": [{"value": "Spreadsheet", "relationType": "EQUALS"}, {"value": "Presentation", "relationType": "EQUALS"}]}], "addedRoles": [{"person": {"name": "George Clooney", "obfuscatedId": "abc123"}, "role": "EDITOR"}], "removedRoles": [{"person": {"name": "George Clooney", "obfuscatedId": "abc123"}, "role": "ANSWER_MODERATOR"}], "combinedAnswerText": {"text": "From https://en.wikipedia.org/wiki/Diffuse_sky_radiation, the sky is blue because blue light is more strongly scattered than longer-wavelength light.", "structuredList": [{"link": "https://en.wikipedia.org/wiki/Diffuse_sky_radiation", "document": {"containerDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "parentDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "text": "Because its wavelengths are shorter, blue light is more strongly scattered than the longer-wavelength lights, red or green. Hence the result that when looking at the sky away from the direct incident sunlight, the human eye perceives the sky to be blue.", "structuredResult": {"document": {"containerDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "parentDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "person": {"name": "George Clooney", "obfuscatedId": "abc123"}, "customer": {"id": "", "company": {"name": "", "location": "New York City", "industry": "Finances", "about": "Financial, software, data, and media company headquartered in Midtown Manhattan, New York City"}, "poc": [{"name": "George Clooney", "obfuscatedId": "abc123"}], "mergedCustomers": [{"id": "", "company": {"name": "", "location": "New York City", "industry": "Finances", "about": "Financial, software, data, and media company headquartered in Midtown Manhattan, New York City"}, "notes": "CIO is interested in trying out the product."}], "notes": "CIO is interested in trying out the product."}, "team": {"id": "", "name": "", "members": [{"person": {"name": "George Clooney", "obfuscatedId": "abc123"}, "relationship": "MEMBER"}], "customFields": [{"label": "", "values": [], "displayable": true}], "datasourceProfiles": [{"datasource": "github", "handle": ""}], "status": "PROCESSED", "canBeDeleted": true}, "customEntity": {"roles": [{"person": {"name": "George Clooney", "obfuscatedId": "abc123"}, "role": "EDITOR"}]}, "answer": {"id": 3, "docId": "ANSWERS_answer_3", "question": "Why is the sky blue?", "bodyText": "From https://en.wikipedia.org/wiki/Diffuse_sky_radiation, the sky is blue because blue light is more strongly scattered than longer-wavelength light.", "audienceFilters": [{"fieldName": "type", "values": [{"value": "Spreadsheet", "relationType": "EQUALS"}, {"value": "Presentation", "relationType": "EQUALS"}]}], "combinedAnswerText": {"text": "From https://en.wikipedia.org/wiki/Diffuse_sky_radiation, the sky is blue because blue light is more strongly scattered than longer-wavelength light."}, "likes": {"likedBy": [{"user": {"name": "George Clooney", "obfuscatedId": "abc123"}}], "likedByUser": true, "numLikes": 252096}, "author": {"name": "George Clooney", "obfuscatedId": "abc123"}, "updatedBy": {"name": "George Clooney", "obfuscatedId": "abc123"}, "verification": {"state": "VERIFIED", "metadata": {"lastVerifier": {"name": "George Clooney", "obfuscatedId": "abc123"}, "document": {"containerDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "parentDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "reminders": [{"assignee": {"name": "George Clooney", "obfuscatedId": "abc123"}, "requestor": {"name": "George Clooney", "obfuscatedId": "abc123"}, "remindAt": 321130}], "lastReminder": {"assignee": {"name": "George Clooney", "obfuscatedId": "abc123"}, "requestor": {"name": "George Clooney", "obfuscatedId": "abc123"}, "remindAt": 284307}, "candidateVerifiers": [{"name": "George Clooney", "obfuscatedId": "abc123"}]}}, "collections": [{"name": "", "description": "untimely underneath boo", "audienceFilters": [{"fieldName": "type", "values": [{"value": "Spreadsheet", "relationType": "EQUALS"}, {"value": "Presentation", "relationType": "EQUALS"}]}], "id": 106210, "creator": {"name": "George Clooney", "obfuscatedId": "abc123"}, "updatedBy": {"name": "George Clooney", "obfuscatedId": "abc123"}, "items": [{"collectionId": 502218, "createdBy": {"name": "George Clooney", "obfuscatedId": "abc123"}, "document": {"containerDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "parentDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "shortcut": {"inputAlias": "", "createdBy": {"name": "George Clooney", "obfuscatedId": "abc123"}, "updatedBy": {"name": "George Clooney", "obfuscatedId": "abc123"}, "destinationDocument": {"containerDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "parentDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}}, "collection": {"name": "", "description": "than ew cycle beyond twist", "audienceFilters": [{"fieldName": "type", "values": [{"value": "Spreadsheet", "relationType": "EQUALS"}, {"value": "Presentation", "relationType": "EQUALS"}]}], "id": 612012, "creator": {"name": "George Clooney", "obfuscatedId": "abc123"}, "updatedBy": {"name": "George Clooney", "obfuscatedId": "abc123"}, "children": [{"name": "", "description": "furlough lest hydrant past unto ah", "audienceFilters": [{"fieldName": "type", "values": [{"value": "Spreadsheet", "relationType": "EQUALS"}, {"value": "Presentation", "relationType": "EQUALS"}]}], "id": 234815, "creator": {"name": "George Clooney", "obfuscatedId": "abc123"}, "updatedBy": {"name": "George Clooney", "obfuscatedId": "abc123"}}]}, "itemType": "COLLECTION"}]}], "sourceDocument": {"containerDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "parentDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}}, "extractedQnA": {"questionResult": {"title": "title", "url": "https://example.com/foo/bar", "nativeAppUrl": "slack://foo/bar", "snippets": [{"mimeType": "mimeType", "snippet": "snippet"}], "mustIncludeSuggestions": {"person": {"name": "George Clooney", "obfuscatedId": "abc123"}}}}, "meeting": {"attendees": {"people": [{"person": {"name": "George Clooney", "obfuscatedId": "abc123"}, "groupAttendees": [{"person": {"name": "George Clooney", "obfuscatedId": "abc123"}}]}]}}, "collection": {"name": "", "description": "than ew cycle beyond twist", "audienceFilters": [{"fieldName": "type", "values": [{"value": "Spreadsheet", "relationType": "EQUALS"}, {"value": "Presentation", "relationType": "EQUALS"}]}], "id": 612012, "creator": {"name": "George Clooney", "obfuscatedId": "abc123"}, "updatedBy": {"name": "George Clooney", "obfuscatedId": "abc123"}, "children": [{"name": "", "description": "furlough lest hydrant past unto ah", "audienceFilters": [{"fieldName": "type", "values": [{"value": "Spreadsheet", "relationType": "EQUALS"}, {"value": "Presentation", "relationType": "EQUALS"}]}], "id": 234815, "creator": {"name": "George Clooney", "obfuscatedId": "abc123"}, "updatedBy": {"name": "George Clooney", "obfuscatedId": "abc123"}}]}, "code": {"repoName": "scio", "fileName": "README.md"}, "shortcut": {"inputAlias": "", "createdBy": {"name": "George Clooney", "obfuscatedId": "abc123"}, "updatedBy": {"name": "George Clooney", "obfuscatedId": "abc123"}, "destinationDocument": {"containerDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "parentDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}}, "querySuggestions": {"person": {"name": "George Clooney", "obfuscatedId": "abc123"}}, "relatedDocuments": [{"querySuggestion": {"query": "app:github type:pull author:mortimer", "label": "Mortimer's PRs", "datasource": "github"}}], "relatedQuestion": {"ranges": [{"startIndex": 710108, "document": {"containerDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "parentDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}}]}}}]}, "likes": {"likedBy": [{"user": {"name": "George Clooney", "obfuscatedId": "abc123"}}], "likedByUser": true, "numLikes": 252096}, "author": {"name": "George Clooney", "obfuscatedId": "abc123"}, "updatedBy": {"name": "George Clooney", "obfuscatedId": "abc123"}, "verification": {"state": "VERIFIED", "metadata": {"lastVerifier": {"name": "George Clooney", "obfuscatedId": "abc123"}, "document": {"containerDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "parentDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "reminders": [{"assignee": {"name": "George Clooney", "obfuscatedId": "abc123"}, "requestor": {"name": "George Clooney", "obfuscatedId": "abc123"}, "remindAt": 321130}], "lastReminder": {"assignee": {"name": "George Clooney", "obfuscatedId": "abc123"}, "requestor": {"name": "George Clooney", "obfuscatedId": "abc123"}, "remindAt": 284307}, "candidateVerifiers": [{"name": "George Clooney", "obfuscatedId": "abc123"}]}}, "sourceDocument": {"containerDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "parentDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}}, "extractedQnA": {"questionResult": {"title": "title", "url": "https://example.com/foo/bar", "nativeAppUrl": "slack://foo/bar", "snippets": [{"mimeType": "mimeType", "snippet": "snippet"}], "mustIncludeSuggestions": {"person": {"name": "George Clooney", "obfuscatedId": "abc123"}}}}, "meeting": {"attendees": {"people": [{"person": {"name": "George Clooney", "obfuscatedId": "abc123"}, "groupAttendees": [{"person": {"name": "George Clooney", "obfuscatedId": "abc123"}}]}]}}, "collection": {"name": "", "description": "than ew cycle beyond twist", "audienceFilters": [{"fieldName": "type", "values": [{"value": "Spreadsheet", "relationType": "EQUALS"}, {"value": "Presentation", "relationType": "EQUALS"}]}], "id": 612012, "creator": {"name": "George Clooney", "obfuscatedId": "abc123"}, "updatedBy": {"name": "George Clooney", "obfuscatedId": "abc123"}, "children": [{"name": "", "description": "furlough lest hydrant past unto ah", "audienceFilters": [{"fieldName": "type", "values": [{"value": "Spreadsheet", "relationType": "EQUALS"}, {"value": "Presentation", "relationType": "EQUALS"}]}], "id": 234815, "creator": {"name": "George Clooney", "obfuscatedId": "abc123"}, "updatedBy": {"name": "George Clooney", "obfuscatedId": "abc123"}}]}, "code": {"repoName": "scio", "fileName": "README.md"}, "shortcut": {"inputAlias": "", "createdBy": {"name": "George Clooney", "obfuscatedId": "abc123"}, "updatedBy": {"name": "George Clooney", "obfuscatedId": "abc123"}, "destinationDocument": {"containerDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "parentDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}}, "querySuggestions": {"person": {"name": "George Clooney", "obfuscatedId": "abc123"}}, "relatedQuestion": {"ranges": [{"startIndex": 710108, "document": {"containerDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "parentDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}}]}}], "generatedQnaResult": {"ranges": [{"startIndex": 710108, "document": {"containerDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "parentDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}}]}, "errorInfo": {"unauthorizedDatasourceInstances": [{"datasourceInstance": "slack_0", "displayName": "Slack"}]}, "backendTimeMillis": 1100} + application/json: {"results": [{"title": "title", "url": "https://example.com/foo/bar", "nativeAppUrl": "slack://foo/bar", "snippets": [{"mimeType": "mimeType", "snippet": "snippet"}], "mustIncludeSuggestions": {"suggestions": [{"query": "app:github type:pull author:mortimer", "label": "Mortimer's PRs", "datasource": "github"}], "person": {"name": "George Clooney", "obfuscatedId": "abc123"}}}], "structuredResults": [{"document": {"containerDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "parentDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "person": {"name": "George Clooney", "obfuscatedId": "abc123"}, "customer": {"id": "", "company": {"name": "", "location": "New York City", "industry": "Finances", "about": "Financial, software, data, and media company headquartered in Midtown Manhattan, New York City"}, "poc": [{"name": "George Clooney", "obfuscatedId": "abc123"}], "mergedCustomers": [{"id": "", "company": {"name": "", "location": "New York City", "industry": "Finances", "about": "Financial, software, data, and media company headquartered in Midtown Manhattan, New York City"}, "notes": "CIO is interested in trying out the product."}], "notes": "CIO is interested in trying out the product."}, "team": {"id": "", "name": "", "members": [{"person": {"name": "George Clooney", "obfuscatedId": "abc123"}, "relationship": "MEMBER"}], "customFields": [{"label": "", "values": [], "displayable": true}], "datasourceProfiles": [{"datasource": "github", "handle": ""}], "status": "PROCESSED", "canBeDeleted": true}, "customEntity": {"roles": [{"person": {"name": "George Clooney", "obfuscatedId": "abc123"}, "role": "EDITOR"}]}, "answer": {"id": 3, "docId": "ANSWERS_answer_3", "question": "Why is the sky blue?", "bodyText": "From https://en.wikipedia.org/wiki/Diffuse_sky_radiation, the sky is blue because blue light is more strongly scattered than longer-wavelength light.", "audienceFilters": [{"fieldName": "type", "values": [{"value": "Spreadsheet", "relationType": "EQUALS"}, {"value": "Presentation", "relationType": "EQUALS"}]}], "addedRoles": [{"person": {"name": "George Clooney", "obfuscatedId": "abc123"}, "role": "EDITOR"}], "removedRoles": [{"person": {"name": "George Clooney", "obfuscatedId": "abc123"}, "role": "ANSWER_MODERATOR"}], "combinedAnswerText": {"text": "From https://en.wikipedia.org/wiki/Diffuse_sky_radiation, the sky is blue because blue light is more strongly scattered than longer-wavelength light.", "structuredList": [{"link": "https://en.wikipedia.org/wiki/Diffuse_sky_radiation", "document": {"containerDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "parentDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "text": "Because its wavelengths are shorter, blue light is more strongly scattered than the longer-wavelength lights, red or green. Hence the result that when looking at the sky away from the direct incident sunlight, the human eye perceives the sky to be blue.", "structuredResult": {"document": {"containerDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "parentDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "person": {"name": "George Clooney", "obfuscatedId": "abc123"}, "customer": {"id": "", "company": {"name": "", "location": "New York City", "industry": "Finances", "about": "Financial, software, data, and media company headquartered in Midtown Manhattan, New York City"}, "poc": [{"name": "George Clooney", "obfuscatedId": "abc123"}], "mergedCustomers": [{"id": "", "company": {"name": "", "location": "New York City", "industry": "Finances", "about": "Financial, software, data, and media company headquartered in Midtown Manhattan, New York City"}, "notes": "CIO is interested in trying out the product."}], "notes": "CIO is interested in trying out the product."}, "team": {"id": "", "name": "", "members": [{"person": {"name": "George Clooney", "obfuscatedId": "abc123"}, "relationship": "MEMBER"}], "customFields": [{"label": "", "values": [], "displayable": true}], "datasourceProfiles": [{"datasource": "github", "handle": ""}], "status": "PROCESSED", "canBeDeleted": true}, "customEntity": {"roles": [{"person": {"name": "George Clooney", "obfuscatedId": "abc123"}, "role": "EDITOR"}]}, "answer": {"id": 3, "docId": "ANSWERS_answer_3", "question": "Why is the sky blue?", "bodyText": "From https://en.wikipedia.org/wiki/Diffuse_sky_radiation, the sky is blue because blue light is more strongly scattered than longer-wavelength light.", "audienceFilters": [{"fieldName": "type", "values": [{"value": "Spreadsheet", "relationType": "EQUALS"}, {"value": "Presentation", "relationType": "EQUALS"}]}], "combinedAnswerText": {"text": "From https://en.wikipedia.org/wiki/Diffuse_sky_radiation, the sky is blue because blue light is more strongly scattered than longer-wavelength light."}, "likes": {"likedBy": [{"user": {"name": "George Clooney", "obfuscatedId": "abc123"}}], "likedByUser": true, "numLikes": 252096}, "author": {"name": "George Clooney", "obfuscatedId": "abc123"}, "updatedBy": {"name": "George Clooney", "obfuscatedId": "abc123"}, "verification": {"state": "VERIFIED", "metadata": {"lastVerifier": {"name": "George Clooney", "obfuscatedId": "abc123"}, "document": {"containerDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "parentDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "reminders": [{"assignee": {"name": "George Clooney", "obfuscatedId": "abc123"}, "requestor": {"name": "George Clooney", "obfuscatedId": "abc123"}, "remindAt": 321130}], "lastReminder": {"assignee": {"name": "George Clooney", "obfuscatedId": "abc123"}, "requestor": {"name": "George Clooney", "obfuscatedId": "abc123"}, "remindAt": 284307}, "candidateVerifiers": [{"name": "George Clooney", "obfuscatedId": "abc123"}]}}, "collections": [{"name": "", "description": "untimely underneath boo", "audienceFilters": [{"fieldName": "type", "values": [{"value": "Spreadsheet", "relationType": "EQUALS"}, {"value": "Presentation", "relationType": "EQUALS"}]}], "id": 106210, "creator": {"name": "George Clooney", "obfuscatedId": "abc123"}, "updatedBy": {"name": "George Clooney", "obfuscatedId": "abc123"}, "items": [{"collectionId": 502218, "createdBy": {"name": "George Clooney", "obfuscatedId": "abc123"}, "document": {"containerDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "parentDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "shortcut": {"inputAlias": "", "createdBy": {"name": "George Clooney", "obfuscatedId": "abc123"}, "updatedBy": {"name": "George Clooney", "obfuscatedId": "abc123"}, "destinationDocument": {"containerDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "parentDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}}, "collection": {"name": "", "description": "than ew cycle beyond twist", "audienceFilters": [{"fieldName": "type", "values": [{"value": "Spreadsheet", "relationType": "EQUALS"}, {"value": "Presentation", "relationType": "EQUALS"}]}], "id": 612012, "creator": {"name": "George Clooney", "obfuscatedId": "abc123"}, "updatedBy": {"name": "George Clooney", "obfuscatedId": "abc123"}, "children": [{"name": "", "description": "furlough lest hydrant past unto ah", "audienceFilters": [{"fieldName": "type", "values": [{"value": "Spreadsheet", "relationType": "EQUALS"}, {"value": "Presentation", "relationType": "EQUALS"}]}], "id": 234815, "creator": {"name": "George Clooney", "obfuscatedId": "abc123"}, "updatedBy": {"name": "George Clooney", "obfuscatedId": "abc123"}}]}, "itemType": "COLLECTION"}]}], "sourceDocument": {"containerDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "parentDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}}, "extractedQnA": {"questionResult": {"title": "title", "url": "https://example.com/foo/bar", "nativeAppUrl": "slack://foo/bar", "snippets": [{"mimeType": "mimeType", "snippet": "snippet"}], "mustIncludeSuggestions": {"person": {"name": "George Clooney", "obfuscatedId": "abc123"}}}}, "meeting": {"attendees": {"people": [{"person": {"name": "George Clooney", "obfuscatedId": "abc123"}, "groupAttendees": [{"person": {"name": "George Clooney", "obfuscatedId": "abc123"}}]}]}}, "collection": {"name": "", "description": "than ew cycle beyond twist", "audienceFilters": [{"fieldName": "type", "values": [{"value": "Spreadsheet", "relationType": "EQUALS"}, {"value": "Presentation", "relationType": "EQUALS"}]}], "id": 612012, "creator": {"name": "George Clooney", "obfuscatedId": "abc123"}, "updatedBy": {"name": "George Clooney", "obfuscatedId": "abc123"}, "children": [{"name": "", "description": "furlough lest hydrant past unto ah", "audienceFilters": [{"fieldName": "type", "values": [{"value": "Spreadsheet", "relationType": "EQUALS"}, {"value": "Presentation", "relationType": "EQUALS"}]}], "id": 234815, "creator": {"name": "George Clooney", "obfuscatedId": "abc123"}, "updatedBy": {"name": "George Clooney", "obfuscatedId": "abc123"}}]}, "code": {"repoName": "scio", "fileName": "README.md"}, "shortcut": {"inputAlias": "", "createdBy": {"name": "George Clooney", "obfuscatedId": "abc123"}, "updatedBy": {"name": "George Clooney", "obfuscatedId": "abc123"}, "destinationDocument": {"containerDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "parentDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}}, "querySuggestions": {"person": {"name": "George Clooney", "obfuscatedId": "abc123"}}, "relatedDocuments": [{"querySuggestion": {"query": "app:github type:pull author:mortimer", "label": "Mortimer's PRs", "datasource": "github"}}], "relatedQuestion": {"ranges": [{"startIndex": 710108, "document": {"containerDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "parentDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}}]}}}]}, "likes": {"likedBy": [{"user": {"name": "George Clooney", "obfuscatedId": "abc123"}}], "likedByUser": true, "numLikes": 252096}, "author": {"name": "George Clooney", "obfuscatedId": "abc123"}, "updatedBy": {"name": "George Clooney", "obfuscatedId": "abc123"}, "verification": {"state": "VERIFIED", "metadata": {"lastVerifier": {"name": "George Clooney", "obfuscatedId": "abc123"}, "document": {"containerDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "parentDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "reminders": [{"assignee": {"name": "George Clooney", "obfuscatedId": "abc123"}, "requestor": {"name": "George Clooney", "obfuscatedId": "abc123"}, "remindAt": 321130}], "lastReminder": {"assignee": {"name": "George Clooney", "obfuscatedId": "abc123"}, "requestor": {"name": "George Clooney", "obfuscatedId": "abc123"}, "remindAt": 284307}, "candidateVerifiers": [{"name": "George Clooney", "obfuscatedId": "abc123"}]}}, "sourceDocument": {"containerDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "parentDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}}, "extractedQnA": {"questionResult": {"title": "title", "url": "https://example.com/foo/bar", "nativeAppUrl": "slack://foo/bar", "snippets": [{"mimeType": "mimeType", "snippet": "snippet"}], "mustIncludeSuggestions": {"person": {"name": "George Clooney", "obfuscatedId": "abc123"}}}}, "meeting": {"attendees": {"people": [{"person": {"name": "George Clooney", "obfuscatedId": "abc123"}, "groupAttendees": [{"person": {"name": "George Clooney", "obfuscatedId": "abc123"}}]}]}}, "collection": {"name": "", "description": "than ew cycle beyond twist", "audienceFilters": [{"fieldName": "type", "values": [{"value": "Spreadsheet", "relationType": "EQUALS"}, {"value": "Presentation", "relationType": "EQUALS"}]}], "id": 612012, "creator": {"name": "George Clooney", "obfuscatedId": "abc123"}, "updatedBy": {"name": "George Clooney", "obfuscatedId": "abc123"}, "children": [{"name": "", "description": "furlough lest hydrant past unto ah", "audienceFilters": [{"fieldName": "type", "values": [{"value": "Spreadsheet", "relationType": "EQUALS"}, {"value": "Presentation", "relationType": "EQUALS"}]}], "id": 234815, "creator": {"name": "George Clooney", "obfuscatedId": "abc123"}, "updatedBy": {"name": "George Clooney", "obfuscatedId": "abc123"}}]}, "code": {"repoName": "scio", "fileName": "README.md"}, "shortcut": {"inputAlias": "", "createdBy": {"name": "George Clooney", "obfuscatedId": "abc123"}, "updatedBy": {"name": "George Clooney", "obfuscatedId": "abc123"}, "destinationDocument": {"containerDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "parentDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}}, "querySuggestions": {"person": {"name": "George Clooney", "obfuscatedId": "abc123"}}, "relatedQuestion": {"ranges": [{"startIndex": 710108, "document": {"containerDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "parentDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}}]}}], "generatedQnaResult": {"ranges": [{"startIndex": 710108, "document": {"containerDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "parentDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}}]}, "backendTimeMillis": 1100} search: speakeasy-default-search: requestBody: @@ -6890,7 +6980,7 @@ examples: "200": application/json: {"trackingToken": "trackingToken", "results": [{"title": "title", "url": "https://www.example.com/", "snippets": [{"mimeType": "mimeType", "snippet": "snippet"}]}, {"title": "title", "url": "https://www.example.com/", "snippets": [{"mimeType": "mimeType", "snippet": "snippet"}]}], "errorInfo": {"errorMessages": [{"source": "gmail", "errorMessage": "invalid token"}, {"source": "slack", "errorMessage": "expired token"}]}, "requestID": "5e345ae500ff0befa2b9d1a3ba0001737e7363696f312d323535323137000171756572792d656e64706f696e743a323032303031333074313830343032000100", "facetResults": [{"sourceName": "sourceName", "operatorName": "operatorName", "buckets": [{"count": 1, "percentage": 5, "value": {"stringValue": "stringValue", "integerValue": 5}}, {"count": 1, "percentage": 5, "value": {"stringValue": "stringValue", "integerValue": 5}}]}, {"sourceName": "sourceName", "operatorName": "operatorName", "buckets": [{"count": 1, "percentage": 5, "value": {"stringValue": "stringValue", "integerValue": 5}}, {"count": 1, "percentage": 5, "value": {"stringValue": "stringValue", "integerValue": 5}}]}], "rewrittenFacetFilters": [{"fieldName": "fieldName", "values": [{"value": "Spreadsheet", "relationType": "EQUALS"}, {"value": "Spreadsheet", "relationType": "EQUALS"}]}, {"fieldName": "fieldName", "values": [{"value": "Spreadsheet", "relationType": "EQUALS"}, {"value": "Spreadsheet", "relationType": "EQUALS"}]}], "hasMoreResults": true} "403": - application/json: {"unauthorizedDatasourceInstances": [{"datasourceInstance": "slack_0", "displayName": "Slack"}]} + application/json: {} listentities: speakeasy-default-listentities: requestBody: @@ -7248,6 +7338,30 @@ examples: responses: "200": application/json: {"unauthorizedDatasourceInstances": [{"datasourceInstance": "slack_0", "displayName": "Slack"}]} + getDatasourceInstanceConfiguration: + speakeasy-default-get-datasource-instance-configuration: + parameters: + path: + datasourceId: "o365sharepoint" + instanceId: "o365sharepoint_abc123" + responses: + "200": + application/json: {"configuration": {"values": {"key": {}}}} + "400": + application/json: {} + updateDatasourceInstanceConfiguration: + speakeasy-default-update-datasource-instance-configuration: + parameters: + path: + datasourceId: "o365sharepoint" + instanceId: "o365sharepoint_abc123" + requestBody: + application/json: {"configuration": {"values": {}}} + responses: + "200": + application/json: {"configuration": {"values": {}}} + "400": + application/json: {} examplesVersion: 1.0.2 generatedTests: activity: "2025-04-28T22:05:12+01:00" @@ -7396,9 +7510,9 @@ generatedTests: listfindingsexports: "2025-12-10T17:53:31Z" downloadfindingsexport: "2025-12-10T17:53:31Z" checkdatasourceauth: "2026-02-19T15:48:52Z" -releaseNotes: | - ## Python SDK Changes: - * `glean.authentication.checkdatasourceauth()`: `response.unauthorized_datasource_instances` **Changed** + getDatasourceInstanceConfiguration: "2026-02-25T18:14:08Z" + updateDatasourceInstanceConfiguration: "2026-02-25T18:14:08Z" +releaseNotes: "## Python SDK Changes:\n* `glean.client.messages.retrieve()`: `response.search_response.glean_data_error.unauthorized_datasource_instances` **Removed** (Breaking ⚠️)\n* `glean.client.search.query()`: \n * `response.glean_data_error.unauthorized_datasource_instances` **Removed** (Breaking ⚠️)\n * `error.unauthorized_datasource_instances` **Removed** (Breaking ⚠️)\n* `glean.client.chat.create()`: `response.unauthorized_datasource_instances` **Removed** (Breaking ⚠️)\n* `glean.client.search.recommendations()`: `response.glean_data_error.unauthorized_datasource_instances` **Removed** (Breaking ⚠️)\n* `glean.client.search.autocomplete()`: `response.glean_data_error.unauthorized_datasource_instances` **Removed** (Breaking ⚠️)\n* `glean.client.search.query_as_admin()`: \n * `response.glean_data_error.unauthorized_datasource_instances` **Removed** (Breaking ⚠️)\n * `error.unauthorized_datasource_instances` **Removed** (Breaking ⚠️)\n* `glean.client.agents.retrieve()`: `error.status[404]` **Added**\n* `glean.client.agents.run_stream()`: `error` **Changed**\n* `glean.client.agents.list()`: `error` **Changed**\n* `glean.client.agents.retrieve_schemas()`: \n * `response.tools[]` **Changed**\n * `error` **Changed**\n* `glean.datasources.get_datasource_instance_configuration()`: **Added**\n* `glean.datasources.update_datasource_instance_configuration()`: **Added**\n* `glean.indexing.people.bulk_index()`: **Deprecated**\n" generatedFiles: - .devcontainer/README.md - .devcontainer/devcontainer.json diff --git a/.speakeasy/gen.yaml b/.speakeasy/gen.yaml index c00ea6f2..7f8ba298 100644 --- a/.speakeasy/gen.yaml +++ b/.speakeasy/gen.yaml @@ -17,6 +17,7 @@ generation: securityFeb2025: true sharedErrorComponentsApr2025: true sharedNestedComponentsJan2026: false + nameOverrideFeb2026: false auth: oAuth2ClientCredentialsEnabled: false oAuth2PasswordEnabled: false @@ -33,7 +34,7 @@ generation: generateNewTests: true skipResponseBodyAssertions: true python: - version: 0.12.8 + version: 0.12.9 additionalDependencies: dev: {} main: {} diff --git a/.speakeasy/glean-merged-spec.yaml b/.speakeasy/glean-merged-spec.yaml index a069bf8a..07d8702b 100644 --- a/.speakeasy/glean-merged-spec.yaml +++ b/.speakeasy/glean-merged-spec.yaml @@ -1,13353 +1,13536 @@ openapi: 3.0.0 info: - version: 0.9.0 - title: Glean API - x-source-commit-sha: 56c08697ca3b6869022a262114e61f1385914425 - 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. + version: 0.9.0 + title: Glean API + x-source-commit-sha: 342922726df51d12382b2858241a49aab0411d4b + 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. - # Usage guidelines - This API is evolving fast. Glean will provide advance notice of any planned backwards incompatible changes along - with a 6-month sunset period for anything that requires developers to adopt the new versions. + # Usage guidelines + This API is evolving fast. Glean will provide advance notice of any planned backwards incompatible changes along + with a 6-month sunset period for anything that requires developers to adopt the new versions. - # API Clients - Official API clients for the Glean Indexing API are available in multiple languages: + # API Clients + Official API clients for the Glean Indexing API are available in multiple languages: - - [Python](https://github.com/gleanwork/api-client-python) - - [TypeScript](https://github.com/gleanwork/api-client-typescript) - - [Go](https://github.com/gleanwork/api-client-go) - - [Java](https://github.com/gleanwork/api-client-java) + - [Python](https://github.com/gleanwork/api-client-python) + - [TypeScript](https://github.com/gleanwork/api-client-typescript) + - [Go](https://github.com/gleanwork/api-client-go) + - [Java](https://github.com/gleanwork/api-client-java) - 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: daa8736a6f0763faffd2c1079da8a42345536ed7 - x-speakeasy-name: 'Glean API' + 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: 315de857835fe795fd66880cf9aa36f70b5d74c5 + x-speakeasy-name: 'Glean API' servers: - - url: https://{instance}-be.glean.com - variables: - instance: - default: instance-name - description: The instance name (typically the email domain without the TLD) that determines the deployment backend. + - url: https://{instance}-be.glean.com + variables: + instance: + default: instance-name + description: The instance name (typically the email domain without the TLD) that determines the deployment backend. security: - - APIToken: [] + - APIToken: [] paths: - /rest/api/v1/activity: - post: - tags: - - Activity - summary: Report document activity - description: Report user activity that occurs on indexed documents such as viewing or editing. This signal improves search quality. - operationId: activity - x-visibility: Public - x-codegen-request-body-name: payload - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/Activity" - required: true - x-exportParamName: Activity - responses: - "200": - description: OK - "400": - description: Invalid request - "401": - description: Not Authorized - "429": - description: Too Many Requests - x-speakeasy-name-override: report - x-speakeasy-group: client.activity - /rest/api/v1/feedback: - post: - tags: - - Activity - summary: Report client activity - description: Report events that happen to results within a Glean client UI, such as search result views and clicks. This signal improves search quality. - operationId: feedback - x-visibility: Public - x-codegen-request-body-name: payload - parameters: - - name: feedback - in: query - description: A URL encoded versions of Feedback. This is useful for requests. - required: false - schema: - type: string - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/Feedback" - x-exportParamName: Feedback - responses: - "200": - description: OK - "400": - description: Invalid request - "401": - description: Not Authorized - "429": - description: Too Many Requests - x-speakeasy-group: client.activity - /rest/api/v1/createannouncement: - post: - tags: - - Announcements - summary: Create Announcement - description: Create a textual announcement visible to some set of users based on department and location. - operationId: createannouncement - x-visibility: Public - x-codegen-request-body-name: payload - parameters: - - $ref: "#/components/parameters/locale" - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/CreateAnnouncementRequest" - description: Announcement content - required: true - x-exportParamName: Request - responses: - "200": - description: OK - content: - application/json: - schema: - $ref: "#/components/schemas/Announcement" - "400": - description: Invalid request - "401": - description: Not Authorized - "429": - description: Too Many Requests - x-speakeasy-name-override: create - x-speakeasy-group: client.announcements - /rest/api/v1/deleteannouncement: - post: - tags: - - Announcements - summary: Delete Announcement - description: Delete an existing user-generated announcement. - operationId: deleteannouncement - x-visibility: Public - x-codegen-request-body-name: payload - parameters: - - $ref: "#/components/parameters/locale" - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/DeleteAnnouncementRequest" - description: Delete announcement request - required: true - x-exportParamName: Request - responses: - "200": - description: OK - "400": - description: Invalid request - "401": - description: Not Authorized - "429": - description: Too Many Requests - x-speakeasy-name-override: delete - x-speakeasy-group: client.announcements - /rest/api/v1/updateannouncement: - post: - tags: - - Announcements - summary: Update Announcement - description: Update a textual announcement visible to some set of users based on department and location. - operationId: updateannouncement - x-visibility: Public - x-codegen-request-body-name: payload - parameters: - - $ref: "#/components/parameters/locale" - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/UpdateAnnouncementRequest" - description: Announcement content. Id need to be specified for the announcement. - required: true - x-exportParamName: Request - responses: - "200": - description: OK - content: - application/json: - schema: - $ref: "#/components/schemas/Announcement" - "400": - description: Invalid request - "401": - description: Not Authorized - "429": - description: Too Many Requests - x-speakeasy-name-override: update - x-speakeasy-group: client.announcements - /rest/api/v1/createanswer: - post: - tags: - - Answers - summary: Create Answer - description: Create a user-generated Answer that contains a question and answer. - operationId: createanswer - x-visibility: Public - x-codegen-request-body-name: payload - parameters: - - $ref: "#/components/parameters/locale" - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/CreateAnswerRequest" - description: CreateAnswer request - required: true - x-exportParamName: Request - responses: - "200": - description: OK - content: - application/json: - schema: - $ref: "#/components/schemas/Answer" - "400": - description: Invalid request - "401": - description: Not Authorized - "429": - description: Too Many Requests - x-speakeasy-name-override: create - x-speakeasy-group: client.answers - /rest/api/v1/deleteanswer: - post: - tags: - - Answers - summary: Delete Answer - description: Delete an existing user-generated Answer. - operationId: deleteanswer - x-visibility: Public - x-codegen-request-body-name: payload - parameters: - - $ref: "#/components/parameters/locale" - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/DeleteAnswerRequest" - description: DeleteAnswer request - required: true - x-exportParamName: Request - responses: - "200": - description: OK - "400": - description: Invalid request - "401": - description: Not Authorized - "429": - description: Too Many Requests - x-speakeasy-name-override: delete - x-speakeasy-group: client.answers - /rest/api/v1/editanswer: - post: - tags: - - Answers - summary: Update Answer - description: Update an existing user-generated Answer. - operationId: editanswer - x-visibility: Public - x-codegen-request-body-name: payload - parameters: - - $ref: "#/components/parameters/locale" - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/EditAnswerRequest" - description: EditAnswer request - required: true - x-exportParamName: Request - responses: - "200": - description: OK - content: - application/json: - schema: - $ref: "#/components/schemas/Answer" - "400": - description: Invalid request - "401": - description: Not Authorized - "429": - description: Too Many Requests - x-speakeasy-name-override: update - x-speakeasy-group: client.answers - /rest/api/v1/getanswer: - post: - tags: - - Answers - summary: Read Answer - description: Read the details of a particular Answer given its ID. - operationId: getanswer - x-visibility: Public - x-codegen-request-body-name: payload - parameters: - - $ref: "#/components/parameters/locale" - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/GetAnswerRequest" - description: GetAnswer request - required: true - x-exportParamName: Request - responses: - "200": - description: OK - content: - application/json: - schema: - $ref: "#/components/schemas/GetAnswerResponse" - "400": - description: Invalid request - "401": - description: Not Authorized - "429": - description: Too Many Requests - x-speakeasy-name-override: retrieve - x-speakeasy-group: client.answers - /rest/api/v1/listanswers: - post: - tags: - - Answers - summary: List Answers - description: List Answers created by the current user. - operationId: listanswers - deprecated: true - x-visibility: Public - x-codegen-request-body-name: payload - parameters: - - $ref: "#/components/parameters/locale" - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/ListAnswersRequest" - description: ListAnswers request - required: true - x-exportParamName: Request - responses: - "200": - description: OK - content: - application/json: - schema: - $ref: "#/components/schemas/ListAnswersResponse" - "400": - description: Invalid request - "401": - description: Not Authorized - "429": - description: Too Many Requests - x-glean-deprecated: - id: 4c0923bd-64c7-45b9-99a5-b36f2705e618 - introduced: "2026-01-21" - message: Answer boards have been removed and this endpoint no longer serves a purpose - removal: "2026-10-15" - x-speakeasy-deprecation-message: "Deprecated on 2026-01-21, removal scheduled for 2026-10-15: Answer boards have been removed and this endpoint no longer serves a purpose" - x-speakeasy-name-override: list - x-speakeasy-group: client.answers - /rest/api/v1/checkdatasourceauth: - post: - tags: - - Authentication - summary: Check datasource authorization - description: | - Returns all datasource instances that require per-user OAuth authorization - for the authenticated user, along with a transient auth token that can be - appended to auth URLs to complete OAuth flows. + /rest/api/v1/activity: + post: + tags: + - Activity + summary: Report document activity + description: Report user activity that occurs on indexed documents such as viewing or editing. This signal improves search quality. + operationId: activity + x-visibility: Public + x-codegen-request-body-name: payload + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/Activity" + required: true + x-exportParamName: Activity + responses: + "200": + description: OK + "400": + description: Invalid request + "401": + description: Not Authorized + "429": + description: Too Many Requests + x-speakeasy-name-override: report + x-speakeasy-group: client.activity + /rest/api/v1/feedback: + post: + tags: + - Activity + summary: Report client activity + description: Report events that happen to results within a Glean client UI, such as search result views and clicks. This signal improves search quality. + operationId: feedback + x-visibility: Public + x-codegen-request-body-name: payload + parameters: + - name: feedback + in: query + description: A URL encoded versions of Feedback. This is useful for requests. + required: false + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/Feedback" + x-exportParamName: Feedback + responses: + "200": + description: OK + "400": + description: Invalid request + "401": + description: Not Authorized + "429": + description: Too Many Requests + x-speakeasy-group: client.activity + /rest/api/v1/createannouncement: + post: + tags: + - Announcements + summary: Create Announcement + description: Create a textual announcement visible to some set of users based on department and location. + operationId: createannouncement + x-visibility: Public + x-codegen-request-body-name: payload + parameters: + - $ref: "#/components/parameters/locale" + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/CreateAnnouncementRequest" + description: Announcement content + required: true + x-exportParamName: Request + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/Announcement" + "400": + description: Invalid request + "401": + description: Not Authorized + "429": + description: Too Many Requests + x-speakeasy-name-override: create + x-speakeasy-group: client.announcements + /rest/api/v1/deleteannouncement: + post: + tags: + - Announcements + summary: Delete Announcement + description: Delete an existing user-generated announcement. + operationId: deleteannouncement + x-visibility: Public + x-codegen-request-body-name: payload + parameters: + - $ref: "#/components/parameters/locale" + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/DeleteAnnouncementRequest" + description: Delete announcement request + required: true + x-exportParamName: Request + responses: + "200": + description: OK + "400": + description: Invalid request + "401": + description: Not Authorized + "429": + description: Too Many Requests + x-speakeasy-name-override: delete + x-speakeasy-group: client.announcements + /rest/api/v1/updateannouncement: + post: + tags: + - Announcements + summary: Update Announcement + description: Update a textual announcement visible to some set of users based on department and location. + operationId: updateannouncement + x-visibility: Public + x-codegen-request-body-name: payload + parameters: + - $ref: "#/components/parameters/locale" + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/UpdateAnnouncementRequest" + description: Announcement content. Id need to be specified for the announcement. + required: true + x-exportParamName: Request + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/Announcement" + "400": + description: Invalid request + "401": + description: Not Authorized + "429": + description: Too Many Requests + x-speakeasy-name-override: update + x-speakeasy-group: client.announcements + /rest/api/v1/createanswer: + post: + tags: + - Answers + summary: Create Answer + description: Create a user-generated Answer that contains a question and answer. + operationId: createanswer + x-visibility: Public + x-codegen-request-body-name: payload + parameters: + - $ref: "#/components/parameters/locale" + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/CreateAnswerRequest" + description: CreateAnswer request + required: true + x-exportParamName: Request + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/Answer" + "400": + description: Invalid request + "401": + description: Not Authorized + "429": + description: Too Many Requests + x-speakeasy-name-override: create + x-speakeasy-group: client.answers + /rest/api/v1/deleteanswer: + post: + tags: + - Answers + summary: Delete Answer + description: Delete an existing user-generated Answer. + operationId: deleteanswer + x-visibility: Public + x-codegen-request-body-name: payload + parameters: + - $ref: "#/components/parameters/locale" + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/DeleteAnswerRequest" + description: DeleteAnswer request + required: true + x-exportParamName: Request + responses: + "200": + description: OK + "400": + description: Invalid request + "401": + description: Not Authorized + "429": + description: Too Many Requests + x-speakeasy-name-override: delete + x-speakeasy-group: client.answers + /rest/api/v1/editanswer: + post: + tags: + - Answers + summary: Update Answer + description: Update an existing user-generated Answer. + operationId: editanswer + x-visibility: Public + x-codegen-request-body-name: payload + parameters: + - $ref: "#/components/parameters/locale" + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/EditAnswerRequest" + description: EditAnswer request + required: true + x-exportParamName: Request + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/Answer" + "400": + description: Invalid request + "401": + description: Not Authorized + "429": + description: Too Many Requests + x-speakeasy-name-override: update + x-speakeasy-group: client.answers + /rest/api/v1/getanswer: + post: + tags: + - Answers + summary: Read Answer + description: Read the details of a particular Answer given its ID. + operationId: getanswer + x-visibility: Public + x-codegen-request-body-name: payload + parameters: + - $ref: "#/components/parameters/locale" + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/GetAnswerRequest" + description: GetAnswer request + required: true + x-exportParamName: Request + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/GetAnswerResponse" + "400": + description: Invalid request + "401": + description: Not Authorized + "429": + description: Too Many Requests + x-speakeasy-name-override: retrieve + x-speakeasy-group: client.answers + /rest/api/v1/listanswers: + post: + tags: + - Answers + summary: List Answers + description: List Answers created by the current user. + operationId: listanswers + deprecated: true + x-visibility: Public + x-codegen-request-body-name: payload + x-glean-deprecated: + id: 4c0923bd-64c7-45b9-99a5-b36f2705e618 + introduced: "2026-01-21" + message: Answer boards have been removed and this endpoint no longer serves a purpose + removal: "2026-10-15" + parameters: + - $ref: "#/components/parameters/locale" + x-speakeasy-deprecation-message: "Deprecated on 2026-01-21, removal scheduled for 2026-10-15: Answer boards have been removed and this endpoint no longer serves a purpose" + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/ListAnswersRequest" + description: ListAnswers request + required: true + x-exportParamName: Request + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/ListAnswersResponse" + "400": + description: Invalid request + "401": + description: Not Authorized + "429": + description: Too Many Requests + x-speakeasy-name-override: list + x-speakeasy-group: client.answers + /rest/api/v1/checkdatasourceauth: + post: + tags: + - Authentication + summary: Check datasource authorization + description: | + Returns all datasource instances that require per-user OAuth authorization + for the authenticated user, along with a transient auth token that can be + appended to auth URLs to complete OAuth flows. - Clients construct the full OAuth URL by combining the backend base URL, - the `authUrlRelativePath` from each instance, and the transient auth token: - `/?transient_auth_token=`. - operationId: checkdatasourceauth - x-visibility: Public - parameters: [] - responses: - "200": - description: OK - content: - application/json: - schema: - $ref: "#/components/schemas/CheckDatasourceAuthResponse" - "401": - description: Not Authorized - "429": - description: Too Many Requests - /rest/api/v1/createauthtoken: - post: - tags: - - Authentication - summary: Create authentication token - description: | - Creates an authentication token for the authenticated user. These are - specifically intended to be used with the [Web SDK](https://developers.glean.com/web). + Clients construct the full OAuth URL by combining the backend base URL, + the `authUrlRelativePath` from each instance, and the transient auth token: + `/?transient_auth_token=`. + operationId: checkdatasourceauth + x-visibility: Public + parameters: [] + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/CheckDatasourceAuthResponse" + "401": + description: Not Authorized + "429": + description: Too Many Requests + /rest/api/v1/createauthtoken: + post: + tags: + - Authentication + summary: Create authentication token + description: | + Creates an authentication token for the authenticated user. These are + specifically intended to be used with the [Web SDK](https://developers.glean.com/web). - Note: The tokens generated from this endpoint are **not** valid tokens - for use with the Client API (e.g. `/rest/api/v1/*`). - operationId: createauthtoken - x-visibility: Public - parameters: [] - responses: - "200": - description: OK - content: - application/json: - schema: - $ref: "#/components/schemas/CreateAuthTokenResponse" - "400": - description: Invalid Request - "401": - description: Not Authorized - "429": - description: Too Many Requests - x-speakeasy-name-override: createToken - x-speakeasy-group: client.authentication - /rest/api/v1/chat: - post: - tags: - - Chat - summary: Chat - description: Have a conversation with Glean AI. - operationId: chat - x-visibility: Public - x-codegen-request-body-name: payload - parameters: - - $ref: "#/components/parameters/locale" - - $ref: "#/components/parameters/timezoneOffset" - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/ChatRequest" - examples: - defaultExample: - value: - messages: - - author: USER - messageType: CONTENT - fragments: - - text: What are the company holidays this year? - gptAgentExample: - value: - agentConfig: - agent: GPT - messages: - - author: USER - messageType: CONTENT - fragments: - - text: Who was the first person to land on the moon? - description: Includes chat history for Glean AI to respond to. - required: true - x-exportParamName: Request - responses: - "200": - description: OK - content: - application/json: - schema: - $ref: '#/components/schemas/ChatResponse' - examples: - defaultExample: - value: - messages: - - author: GLEAN_AI - messageType: CONTENT - hasMoreFragments: false - agentConfig: - agent: DEFAULT - mode: DEFAULT - fragments: - - text: There are no holidays! - streamingExample: - value: - messages: - - author: GLEAN_AI - messageType: CONTENT - agentConfig: - agent: DEFAULT - mode: DEFAULT - hasMoreFragments: true - fragments: null - - author: GLEAN_AI - messageType: CONTENT - agentConfig: - agent: DEFAULT - mode: DEFAULT - hasMoreFragments: true - fragments: null - - author: GLEAN_AI - messageType: CONTENT - agentConfig: - agent: DEFAULT - mode: DEFAULT - hasMoreFragments: true - fragments: - - text: e are - - author: GLEAN_AI - messageType: CONTENT - agentConfig: - agent: DEFAULT - mode: DEFAULT - hasMoreFragments: true - fragments: - - text: no hol - - author: GLEAN_AI - messageType: CONTENT - agentConfig: - agent: DEFAULT - mode: DEFAULT - hasMoreFragments: false - fragments: - - text: idays! - updateResponse: - value: - messages: - - author: GLEAN_AI - messageType: UPDATE - agentConfig: - agent: DEFAULT - mode: DEFAULT - fragments: - - text: '**Reading:**' - - structuredResults: - - document: - id: '123' - title: Company Handbook - citationResponse: - value: - messages: - - author: GLEAN_AI - messageType: CONTENT - agentConfig: - agent: DEFAULT - mode: DEFAULT - citations: - - sourceDocument: - id: '123' - title: Company Handbook - referenceRanges: - - textRange: - startIndex: 0 - endIndex: 12 - type: CITATION - "400": - description: Invalid request - "401": - description: Not Authorized - "408": - description: Request Timeout - "429": - description: Too Many Requests - x-speakeasy-group: client.chat - x-speakeasy-name-override: create - x-speakeasy-usage-example: true - /rest/api/v1/deleteallchats: - post: - tags: - - Chat - summary: Deletes all saved Chats owned by a user - description: Deletes all saved Chats a user has had and all their contained conversational content. - operationId: deleteallchats - x-visibility: Public - x-codegen-request-body-name: payload - parameters: - - $ref: "#/components/parameters/locale" - - $ref: "#/components/parameters/timezoneOffset" - responses: - "200": - description: OK - "400": - description: Invalid request - "401": - description: Not Authorized - "403": - description: Forbidden - x-speakeasy-name-override: deleteAll - x-speakeasy-group: client.chat - /rest/api/v1/deletechats: - post: - tags: - - Chat - summary: Deletes saved Chats - description: Deletes saved Chats and all their contained conversational content. - operationId: deletechats - x-visibility: Public - x-codegen-request-body-name: payload - parameters: - - $ref: "#/components/parameters/locale" - - $ref: "#/components/parameters/timezoneOffset" - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/DeleteChatsRequest" - required: true - x-exportParamName: Request - responses: - "200": - description: OK - "400": - description: Invalid request - "401": - description: Not Authorized - "403": - description: Forbidden - "429": - description: Too Many Requests - x-speakeasy-name-override: delete - x-speakeasy-group: client.chat - /rest/api/v1/getchat: - post: - tags: - - Chat - summary: Retrieves a Chat - description: Retrieves the chat history between Glean Assistant and the user for a given Chat. - operationId: getchat - x-visibility: Public - x-codegen-request-body-name: payload - parameters: - - $ref: "#/components/parameters/locale" - - $ref: "#/components/parameters/timezoneOffset" - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/GetChatRequest" - required: true - x-exportParamName: Request - responses: - "200": - description: OK - content: - application/json: - schema: - $ref: "#/components/schemas/GetChatResponse" - "400": - description: Invalid request - "401": - description: Not Authorized - "403": - description: Forbidden - "429": - description: Too Many Requests - x-speakeasy-name-override: retrieve - x-speakeasy-group: client.chat - /rest/api/v1/listchats: - post: - tags: - - Chat - summary: Retrieves all saved Chats - description: Retrieves all the saved Chats between Glean Assistant and the user. The returned Chats contain only metadata and no conversational content. - operationId: listchats - x-visibility: Public - x-codegen-request-body-name: payload - parameters: - - $ref: "#/components/parameters/locale" - - $ref: "#/components/parameters/timezoneOffset" - responses: - "200": - description: OK - content: - application/json: - schema: - $ref: "#/components/schemas/ListChatsResponse" - "401": - description: Not Authorized - "403": - description: Forbidden - "429": - description: Too Many Requests - x-speakeasy-name-override: list - x-speakeasy-group: client.chat - /rest/api/v1/getchatapplication: - post: - tags: - - Chat - summary: Gets the metadata for a custom Chat application - description: Gets the Chat application details for the specified application ID. - operationId: getchatapplication - x-visibility: Preview - x-codegen-request-body-name: payload - parameters: - - $ref: "#/components/parameters/locale" - - $ref: "#/components/parameters/timezoneOffset" - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/GetChatApplicationRequest" - required: true - x-exportParamName: Request - responses: - "200": - description: OK - content: - application/json: - schema: - $ref: "#/components/schemas/GetChatApplicationResponse" - "400": - description: Invalid request - "401": - description: Not Authorized - "403": - description: Forbidden - x-speakeasy-name-override: retrieveApplication - x-speakeasy-group: client.chat - /rest/api/v1/uploadchatfiles: - post: - tags: - - Chat - summary: Upload files for Chat. - description: Upload files for Chat. - operationId: uploadchatfiles - x-visibility: Public - parameters: - - $ref: "#/components/parameters/locale" - - $ref: "#/components/parameters/timezoneOffset" - requestBody: - required: true - content: - multipart/form-data: - schema: - $ref: "#/components/schemas/UploadChatFilesRequest" - x-exportParamName: Request - responses: - "200": - description: OK - content: - application/json: - schema: - $ref: "#/components/schemas/UploadChatFilesResponse" - "400": - description: Invalid request - "401": - description: Not Authorized - "403": - description: Forbidden - "429": - description: Too Many Requests - x-speakeasy-name-override: uploadFiles - x-speakeasy-group: client.chat - /rest/api/v1/getchatfiles: - post: - tags: - - Chat - summary: Get files uploaded by a user for Chat. - description: Get files uploaded by a user for Chat. - operationId: getchatfiles - x-visibility: Public - parameters: - - $ref: "#/components/parameters/locale" - - $ref: "#/components/parameters/timezoneOffset" - requestBody: - required: true - content: - application/json: - schema: - $ref: "#/components/schemas/GetChatFilesRequest" - x-exportParamName: Request - responses: - "200": - description: OK - content: - application/json: - schema: - $ref: "#/components/schemas/GetChatFilesResponse" - "400": - description: Invalid request - "401": - description: Not Authorized - "403": - description: Forbidden - "429": - description: Too Many Requests - x-speakeasy-name-override: retrieveFiles - x-speakeasy-group: client.chat - /rest/api/v1/deletechatfiles: - post: - tags: - - Chat - summary: Delete files uploaded by a user for chat. - description: Delete files uploaded by a user for Chat. - operationId: deletechatfiles - x-visibility: Public - parameters: - - $ref: "#/components/parameters/locale" - - $ref: "#/components/parameters/timezoneOffset" - requestBody: - required: true - content: - application/json: - schema: - $ref: "#/components/schemas/DeleteChatFilesRequest" - responses: - "200": - description: OK - "400": - description: Invalid request - "401": - description: Not Authorized - "403": - description: Forbidden - "429": - description: Too Many Requests - x-speakeasy-name-override: deleteFiles - x-speakeasy-group: client.chat - /rest/api/v1/agents/{agent_id}: - get: - tags: - - Agents - summary: Retrieve an agent - description: Returns details of an [agent](https://developers.glean.com/agents/agents-api) created in the Agent Builder. - operationId: getAgent - x-visibility: Preview - parameters: - - $ref: "#/components/parameters/locale" - - $ref: "#/components/parameters/timezoneOffset" - - description: The ID of the agent. - required: true - schema: - type: string - title: Agent ID - description: The ID of the agent. - name: agent_id - in: path - responses: - "200": - description: Success - content: - application/json: - schema: - $ref: "#/components/schemas/Agent" - "400": - description: Bad request - "403": - description: Forbidden - "404": - description: Not Found - content: - application/json: - schema: - $ref: "#/components/schemas/ErrorResponse" - "500": - description: Internal server error - x-speakeasy-group: client.agents - x-speakeasy-name-override: retrieve - /rest/api/v1/agents/{agent_id}/schemas: - get: - tags: - - Agents - summary: List an agent's schemas - description: Return [agent](https://developers.glean.com/agents/agents-api)'s input and output schemas. You can use these schemas to detect changes to an agent's input or output structure. - operationId: getAgentSchemas - x-visibility: Preview - parameters: - - $ref: "#/components/parameters/locale" - - $ref: "#/components/parameters/timezoneOffset" - - description: The ID of the agent. - required: true - schema: - type: string - title: Agent Id - description: The ID of the agent. - name: agent_id - in: path - responses: - "200": - description: Success - content: - application/json: - schema: - $ref: "#/components/schemas/AgentSchemas" - "400": - description: Bad request - "403": - description: Forbidden - "404": - description: Not Found - content: - application/json: - schema: - $ref: "#/components/schemas/ErrorResponse" - "422": - description: Validation Error - content: - application/json: - schema: - $ref: "#/components/schemas/ErrorResponse" - "500": - description: Internal server error - x-speakeasy-group: client.agents - x-speakeasy-name-override: retrieveSchemas - /rest/api/v1/agents/search: - post: - tags: - - Agents - summary: Search agents - description: Search for [agents](https://developers.glean.com/agents/agents-api) by agent name. - operationId: searchAgents - x-visibility: Preview - requestBody: - required: true - content: - application/json: - schema: - $ref: "#/components/schemas/SearchAgentsRequest" - responses: - "200": - description: Success - content: - application/json: - schema: - $ref: "#/components/schemas/SearchAgentsResponse" - "400": - description: Bad request - "403": - description: Forbidden - "404": - description: Not Found - content: - application/json: - schema: - $ref: "#/components/schemas/ErrorResponse" - "422": - description: Validation Error - content: - application/json: - schema: - $ref: "#/components/schemas/ErrorResponse" - "500": - description: Internal server error - x-speakeasy-group: client.agents - x-speakeasy-name-override: list - /rest/api/v1/agents/runs/stream: - post: - tags: - - Agents - summary: Create an agent run and stream the response - description: "Executes an [agent](https://developers.glean.com/agents/agents-api) run and returns the result as a stream of server-sent events (SSE). **Note**: If the agent uses an input form trigger, all form fields (including optional fields) must be included in the `input` object." - operationId: createAndStreamRun - x-visibility: Preview - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/AgentRunCreate" - required: true - responses: - "200": - description: Success - content: - text/event-stream: - schema: - type: string - description: The server will send a stream of events in server-sent events (SSE) format. - example: | - id: 1 - event: message - data: {"messages":[{"role":"GLEAN_AI","content":[{"text":"Hello","type":"text"}]}]} + Note: The tokens generated from this endpoint are **not** valid tokens + for use with the Client API (e.g. `/rest/api/v1/*`). + operationId: createauthtoken + x-visibility: Public + parameters: [] + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/CreateAuthTokenResponse" + "400": + description: Invalid Request + "401": + description: Not Authorized + "429": + description: Too Many Requests + x-speakeasy-name-override: createToken + x-speakeasy-group: client.authentication + /rest/api/v1/chat: + post: + tags: + - Chat + summary: Chat + description: Have a conversation with Glean AI. + operationId: chat + x-visibility: Public + x-codegen-request-body-name: payload + parameters: + - $ref: "#/components/parameters/locale" + - $ref: "#/components/parameters/timezoneOffset" + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/ChatRequest" + examples: + defaultExample: + value: + messages: + - author: USER + messageType: CONTENT + fragments: + - text: What are the company holidays this year? + gptAgentExample: + value: + agentConfig: + agent: GPT + messages: + - author: USER + messageType: CONTENT + fragments: + - text: Who was the first person to land on the moon? + description: Includes chat history for Glean AI to respond to. + required: true + x-exportParamName: Request + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/ChatResponse' + examples: + defaultExample: + value: + messages: + - author: GLEAN_AI + messageType: CONTENT + hasMoreFragments: false + agentConfig: + agent: DEFAULT + mode: DEFAULT + fragments: + - text: There are no holidays! + streamingExample: + value: + messages: + - author: GLEAN_AI + messageType: CONTENT + agentConfig: + agent: DEFAULT + mode: DEFAULT + hasMoreFragments: true + fragments: null + - author: GLEAN_AI + messageType: CONTENT + agentConfig: + agent: DEFAULT + mode: DEFAULT + hasMoreFragments: true + fragments: null + - author: GLEAN_AI + messageType: CONTENT + agentConfig: + agent: DEFAULT + mode: DEFAULT + hasMoreFragments: true + fragments: + - text: e are + - author: GLEAN_AI + messageType: CONTENT + agentConfig: + agent: DEFAULT + mode: DEFAULT + hasMoreFragments: true + fragments: + - text: no hol + - author: GLEAN_AI + messageType: CONTENT + agentConfig: + agent: DEFAULT + mode: DEFAULT + hasMoreFragments: false + fragments: + - text: idays! + updateResponse: + value: + messages: + - author: GLEAN_AI + messageType: UPDATE + agentConfig: + agent: DEFAULT + mode: DEFAULT + fragments: + - text: '**Reading:**' + - structuredResults: + - document: + id: '123' + title: Company Handbook + citationResponse: + value: + messages: + - author: GLEAN_AI + messageType: CONTENT + agentConfig: + agent: DEFAULT + mode: DEFAULT + citations: + - sourceDocument: + id: '123' + title: Company Handbook + referenceRanges: + - textRange: + startIndex: 0 + endIndex: 12 + type: CITATION + "400": + description: Invalid request + "401": + description: Not Authorized + "408": + description: Request Timeout + "429": + description: Too Many Requests + x-speakeasy-group: client.chat + x-speakeasy-name-override: create + x-speakeasy-usage-example: true + /rest/api/v1/deleteallchats: + post: + tags: + - Chat + summary: Deletes all saved Chats owned by a user + description: Deletes all saved Chats a user has had and all their contained conversational content. + operationId: deleteallchats + x-visibility: Public + x-codegen-request-body-name: payload + parameters: + - $ref: "#/components/parameters/locale" + - $ref: "#/components/parameters/timezoneOffset" + responses: + "200": + description: OK + "400": + description: Invalid request + "401": + description: Not Authorized + "403": + description: Forbidden + x-speakeasy-name-override: deleteAll + x-speakeasy-group: client.chat + /rest/api/v1/deletechats: + post: + tags: + - Chat + summary: Deletes saved Chats + description: Deletes saved Chats and all their contained conversational content. + operationId: deletechats + x-visibility: Public + x-codegen-request-body-name: payload + parameters: + - $ref: "#/components/parameters/locale" + - $ref: "#/components/parameters/timezoneOffset" + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/DeleteChatsRequest" + required: true + x-exportParamName: Request + responses: + "200": + description: OK + "400": + description: Invalid request + "401": + description: Not Authorized + "403": + description: Forbidden + "429": + description: Too Many Requests + x-speakeasy-name-override: delete + x-speakeasy-group: client.chat + /rest/api/v1/getchat: + post: + tags: + - Chat + summary: Retrieves a Chat + description: Retrieves the chat history between Glean Assistant and the user for a given Chat. + operationId: getchat + x-visibility: Public + x-codegen-request-body-name: payload + parameters: + - $ref: "#/components/parameters/locale" + - $ref: "#/components/parameters/timezoneOffset" + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/GetChatRequest" + required: true + x-exportParamName: Request + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/GetChatResponse" + "400": + description: Invalid request + "401": + description: Not Authorized + "403": + description: Forbidden + "429": + description: Too Many Requests + x-speakeasy-name-override: retrieve + x-speakeasy-group: client.chat + /rest/api/v1/listchats: + post: + tags: + - Chat + summary: Retrieves all saved Chats + description: Retrieves all the saved Chats between Glean Assistant and the user. The returned Chats contain only metadata and no conversational content. + operationId: listchats + x-visibility: Public + x-codegen-request-body-name: payload + parameters: + - $ref: "#/components/parameters/locale" + - $ref: "#/components/parameters/timezoneOffset" + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/ListChatsResponse" + "401": + description: Not Authorized + "403": + description: Forbidden + "429": + description: Too Many Requests + x-speakeasy-name-override: list + x-speakeasy-group: client.chat + /rest/api/v1/getchatapplication: + post: + tags: + - Chat + summary: Gets the metadata for a custom Chat application + description: Gets the Chat application details for the specified application ID. + operationId: getchatapplication + x-visibility: Preview + x-codegen-request-body-name: payload + parameters: + - $ref: "#/components/parameters/locale" + - $ref: "#/components/parameters/timezoneOffset" + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/GetChatApplicationRequest" + required: true + x-exportParamName: Request + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/GetChatApplicationResponse" + "400": + description: Invalid request + "401": + description: Not Authorized + "403": + description: Forbidden + x-speakeasy-name-override: retrieveApplication + x-speakeasy-group: client.chat + /rest/api/v1/uploadchatfiles: + post: + tags: + - Chat + summary: Upload files for Chat. + description: Upload files for Chat. + operationId: uploadchatfiles + x-visibility: Public + parameters: + - $ref: "#/components/parameters/locale" + - $ref: "#/components/parameters/timezoneOffset" + requestBody: + required: true + content: + multipart/form-data: + schema: + $ref: "#/components/schemas/UploadChatFilesRequest" + x-exportParamName: Request + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/UploadChatFilesResponse" + "400": + description: Invalid request + "401": + description: Not Authorized + "403": + description: Forbidden + "429": + description: Too Many Requests + x-speakeasy-name-override: uploadFiles + x-speakeasy-group: client.chat + /rest/api/v1/getchatfiles: + post: + tags: + - Chat + summary: Get files uploaded by a user for Chat. + description: Get files uploaded by a user for Chat. + operationId: getchatfiles + x-visibility: Public + parameters: + - $ref: "#/components/parameters/locale" + - $ref: "#/components/parameters/timezoneOffset" + requestBody: + required: true + content: + application/json: + schema: + $ref: "#/components/schemas/GetChatFilesRequest" + x-exportParamName: Request + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/GetChatFilesResponse" + "400": + description: Invalid request + "401": + description: Not Authorized + "403": + description: Forbidden + "429": + description: Too Many Requests + x-speakeasy-name-override: retrieveFiles + x-speakeasy-group: client.chat + /rest/api/v1/deletechatfiles: + post: + tags: + - Chat + summary: Delete files uploaded by a user for chat. + description: Delete files uploaded by a user for Chat. + operationId: deletechatfiles + x-visibility: Public + parameters: + - $ref: "#/components/parameters/locale" + - $ref: "#/components/parameters/timezoneOffset" + requestBody: + required: true + content: + application/json: + schema: + $ref: "#/components/schemas/DeleteChatFilesRequest" + responses: + "200": + description: OK + "400": + description: Invalid request + "401": + description: Not Authorized + "403": + description: Forbidden + "429": + description: Too Many Requests + x-speakeasy-name-override: deleteFiles + x-speakeasy-group: client.chat + /rest/api/v1/agents/{agent_id}: + get: + tags: + - Agents + summary: Retrieve an agent + description: Returns details of an [agent](https://developers.glean.com/agents/agents-api) created in the Agent Builder. + operationId: getAgent + x-visibility: Preview + parameters: + - $ref: "#/components/parameters/locale" + - $ref: "#/components/parameters/timezoneOffset" + - description: The ID of the agent. + required: true + schema: + type: string + title: Agent ID + description: The ID of the agent. + name: agent_id + in: path + responses: + "200": + description: Success + content: + application/json: + schema: + $ref: "#/components/schemas/Agent" + "400": + description: Bad request + "403": + description: Forbidden + "404": + description: Not Found + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorResponse" + "500": + description: Internal server error + x-speakeasy-group: client.agents + x-speakeasy-name-override: retrieve + /rest/api/v1/agents/{agent_id}/schemas: + get: + tags: + - Agents + summary: List an agent's schemas + description: Return [agent](https://developers.glean.com/agents/agents-api)'s input and output schemas. You can use these schemas to detect changes to an agent's input or output structure. + operationId: getAgentSchemas + x-visibility: Preview + parameters: + - $ref: "#/components/parameters/locale" + - $ref: "#/components/parameters/timezoneOffset" + - description: The ID of the agent. + required: true + schema: + type: string + title: Agent Id + description: The ID of the agent. + name: agent_id + in: path + responses: + "200": + description: Success + content: + application/json: + schema: + $ref: "#/components/schemas/AgentSchemas" + "400": + description: Bad request + "403": + description: Forbidden + "404": + description: Not Found + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorResponse" + "422": + description: Validation Error + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorResponse" + "500": + description: Internal server error + x-speakeasy-group: client.agents + x-speakeasy-name-override: retrieveSchemas + /rest/api/v1/agents/search: + post: + tags: + - Agents + summary: Search agents + description: Search for [agents](https://developers.glean.com/agents/agents-api) by agent name. + operationId: searchAgents + x-visibility: Preview + requestBody: + required: true + content: + application/json: + schema: + $ref: "#/components/schemas/SearchAgentsRequest" + responses: + "200": + description: Success + content: + application/json: + schema: + $ref: "#/components/schemas/SearchAgentsResponse" + "400": + description: Bad request + "403": + description: Forbidden + "404": + description: Not Found + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorResponse" + "422": + description: Validation Error + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorResponse" + "500": + description: Internal server error + x-speakeasy-group: client.agents + x-speakeasy-name-override: list + /rest/api/v1/agents/runs/stream: + post: + tags: + - Agents + summary: Create an agent run and stream the response + description: "Executes an [agent](https://developers.glean.com/agents/agents-api) run and returns the result as a stream of server-sent events (SSE). **Note**: If the agent uses an input form trigger, all form fields (including optional fields) must be included in the `input` object." + operationId: createAndStreamRun + x-visibility: Preview + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/AgentRunCreate" + required: true + responses: + "200": + description: Success + content: + text/event-stream: + schema: + type: string + description: The server will send a stream of events in server-sent events (SSE) format. + example: | + id: 1 + event: message + data: {"messages":[{"role":"GLEAN_AI","content":[{"text":"Hello","type":"text"}]}]} - id: 2 - event: message - data: {"messages":[{"role":"GLEAN_AI","content":[{"text":",","type":"text"}]}]} + id: 2 + event: message + data: {"messages":[{"role":"GLEAN_AI","content":[{"text":",","type":"text"}]}]} - id: 3 - event: message - data: {"messages":[{"role":"GLEAN_AI","content":[{"text":" I'm","type":"text"}]}]} + id: 3 + event: message + data: {"messages":[{"role":"GLEAN_AI","content":[{"text":" I'm","type":"text"}]}]} - id: 4 - event: message - data: {"messages":[{"role":"GLEAN_AI","content":[{"text":" your","type":"text"}]}]} - "400": - description: Bad request - "403": - description: Forbidden - "404": - description: Not Found - content: - application/json: - schema: - $ref: "#/components/schemas/ErrorResponse" - "409": - description: Conflict - content: - application/json: - schema: - $ref: "#/components/schemas/ErrorResponse" - "422": - description: Validation Error - content: - application/json: - schema: - $ref: "#/components/schemas/ErrorResponse" - "500": - description: Internal server error - x-speakeasy-group: client.agents - x-speakeasy-name-override: runStream - /rest/api/v1/agents/runs/wait: - post: - tags: - - Agents - summary: Create an agent run and wait for the response - description: "Executes an [agent](https://developers.glean.com/agents/agents-api) run and returns the final response. **Note**: If the agent uses an input form trigger, all form fields (including optional fields) must be included in the `input` object." - operationId: createAndWaitRun - x-visibility: Preview - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/AgentRunCreate" - required: true - responses: - "200": - description: Success - content: - application/json: - schema: - $ref: "#/components/schemas/AgentRunWaitResponse" - "400": - description: Bad request - "403": - description: Forbidden - "404": - description: Not Found - "409": - description: Conflict - "422": - description: Validation Error - "500": - description: Internal server error - x-speakeasy-group: client.agents - x-speakeasy-name-override: run - /rest/api/v1/addcollectionitems: - post: - tags: - - Collections - summary: Add Collection item - description: Add items to a Collection. - operationId: addcollectionitems - x-visibility: Public - x-codegen-request-body-name: payload - parameters: - - $ref: "#/components/parameters/locale" - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/AddCollectionItemsRequest" - description: Data describing the add operation. - required: true - x-exportParamName: Request - responses: - "200": - description: OK - content: - application/json: - schema: - $ref: "#/components/schemas/AddCollectionItemsResponse" - "400": - description: Invalid request - "401": - description: Not Authorized - "429": - description: Too Many Requests - x-speakeasy-name-override: addItems - x-speakeasy-group: client.collections - /rest/api/v1/createcollection: - post: - tags: - - Collections - summary: Create Collection - description: Create a publicly visible (empty) Collection of documents. - operationId: createcollection - x-visibility: Public - x-codegen-request-body-name: payload - parameters: - - $ref: "#/components/parameters/locale" - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/CreateCollectionRequest" - description: Collection content plus any additional metadata for the request. - required: true - x-exportParamName: Request - responses: - "200": - description: OK - content: - application/json: - schema: - $ref: "#/components/schemas/CreateCollectionResponse" - "400": - description: Invalid request - "401": - description: Not Authorized - "422": - description: Semantic error - content: - application/json: - schema: - $ref: "#/components/schemas/CollectionError" - "429": - description: Too Many Requests - x-speakeasy-group: client.collections - x-speakeasy-name-override: create - /rest/api/v1/deletecollection: - post: - tags: - - Collections - summary: Delete Collection - description: Delete a Collection given the Collection's ID. - operationId: deletecollection - x-visibility: Public - x-codegen-request-body-name: payload - parameters: - - $ref: "#/components/parameters/locale" - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/DeleteCollectionRequest" - description: DeleteCollection request - required: true - x-exportParamName: Request - responses: - "200": - description: OK - "400": - description: Invalid request - "401": - description: Not Authorized - "422": - description: Semantic error - content: - application/json: - schema: - $ref: "#/components/schemas/CollectionError" - "429": - description: Too Many Requests - x-speakeasy-name-override: delete - x-speakeasy-group: client.collections - /rest/api/v1/deletecollectionitem: - post: - tags: - - Collections - summary: Delete Collection item - description: Delete a single item from a Collection. - operationId: deletecollectionitem - x-visibility: Public - x-codegen-request-body-name: payload - parameters: - - $ref: "#/components/parameters/locale" - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/DeleteCollectionItemRequest" - description: Data describing the delete operation. - required: true - x-exportParamName: Request - responses: - "200": - description: OK - content: - application/json: - schema: - $ref: "#/components/schemas/DeleteCollectionItemResponse" - "400": - description: Invalid request - "401": - description: Not Authorized - "422": - description: Failed to save deletion - "429": - description: Too Many Requests - x-speakeasy-name-override: deleteItem - x-speakeasy-group: client.collections - /rest/api/v1/editcollection: - post: - tags: - - Collections - summary: Update Collection - description: Update the properties of an existing Collection. - operationId: editcollection - x-visibility: Public - x-codegen-request-body-name: payload - parameters: - - $ref: "#/components/parameters/locale" - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/EditCollectionRequest" - description: Collection content plus any additional metadata for the request. - required: true - x-exportParamName: Request - responses: - "200": - description: OK - content: - application/json: - schema: - $ref: "#/components/schemas/EditCollectionResponse" - "400": - description: Invalid request - "401": - description: Not Authorized - "422": - description: Semantic error - content: - application/json: - schema: - $ref: "#/components/schemas/CollectionError" - "429": - description: Too Many Requests - x-speakeasy-name-override: update - x-speakeasy-group: client.collections - /rest/api/v1/editcollectionitem: - post: - tags: - - Collections - summary: Update Collection item - description: Update the URL, Glean Document ID, description of an item within a Collection given its ID. - operationId: editcollectionitem - x-visibility: Public - x-codegen-request-body-name: payload - parameters: - - $ref: "#/components/parameters/locale" - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/EditCollectionItemRequest" - description: Edit Collection Items request - required: true - x-exportParamName: Request - responses: - "200": - description: OK - content: - application/json: - schema: - $ref: "#/components/schemas/EditCollectionItemResponse" - "400": - description: Invalid request - "401": - description: Not Authorized - "429": - description: Too Many Requests - x-speakeasy-name-override: updateItem - x-speakeasy-group: client.collections - /rest/api/v1/getcollection: - post: - tags: - - Collections - summary: Read Collection - description: Read the details of a Collection given its ID. Does not fetch items in this Collection. - operationId: getcollection - x-visibility: Preview - x-codegen-request-body-name: payload - parameters: - - $ref: "#/components/parameters/locale" - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/GetCollectionRequest" - description: GetCollection request - required: true - x-exportParamName: Request - responses: - "200": - description: OK - content: - application/json: - schema: - $ref: "#/components/schemas/GetCollectionResponse" - "400": - description: Invalid request - "401": - description: Not Authorized - "429": - description: Too Many Requests - x-speakeasy-name-override: retrieve - x-speakeasy-group: client.collections - /rest/api/v1/listcollections: - post: - tags: - - Collections - summary: List Collections - description: List all existing Collections. - operationId: listcollections - x-visibility: Public - x-codegen-request-body-name: payload - parameters: - - $ref: "#/components/parameters/locale" - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/ListCollectionsRequest" - description: ListCollections request - required: true - x-exportParamName: Request - responses: - "200": - description: OK - content: - application/json: - schema: - $ref: "#/components/schemas/ListCollectionsResponse" - "400": - description: Invalid request - "401": - description: Not Authorized - "429": - description: Too Many Requests - x-speakeasy-name-override: list - x-speakeasy-group: client.collections - /rest/api/v1/getdocpermissions: - post: - tags: - - Documents - summary: Read document permissions - description: Read the emails of all users who have access to the given document. - operationId: getdocpermissions - x-visibility: Preview - x-codegen-request-body-name: payload - parameters: - - $ref: "#/components/parameters/locale" - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/GetDocPermissionsRequest" - description: Document permissions request - required: true - x-exportParamName: Request - responses: - "200": - description: OK - content: - application/json: - schema: - $ref: "#/components/schemas/GetDocPermissionsResponse" - "400": - description: Invalid request - "401": - description: Not Authorized - "403": - description: Forbidden - "429": - description: Too Many Requests - x-speakeasy-name-override: retrievePermissions - x-speakeasy-group: client.documents - /rest/api/v1/getdocuments: - post: - tags: - - Documents - summary: Read documents - description: Read the documents including metadata (does not include enhanced metadata via `/documentmetadata`) for the given list of Glean Document IDs or URLs specified in the request. - operationId: getdocuments - x-visibility: Public - x-codegen-request-body-name: payload - parameters: - - $ref: "#/components/parameters/locale" - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/GetDocumentsRequest" - description: Information about documents requested. - responses: - "200": - description: OK - content: - application/json: - schema: - $ref: "#/components/schemas/GetDocumentsResponse" - "400": - description: Invalid request - "401": - description: Not Authorized - "403": - description: Documents does not exist, or user cannot access documents. - "429": - description: Too Many Requests - x-speakeasy-name-override: retrieve - x-speakeasy-group: client.documents - /rest/api/v1/getdocumentsbyfacets: - post: - tags: - - Documents - summary: Read documents by facets - description: Read the documents including metadata (does not include enhanced metadata via `/documentmetadata`) macthing the given facet conditions. - operationId: getdocumentsbyfacets - x-visibility: Preview - x-codegen-request-body-name: payload - parameters: - - $ref: "#/components/parameters/locale" - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/GetDocumentsByFacetsRequest" - description: Information about facet conditions for documents to be retrieved. - responses: - "200": - description: OK - content: - application/json: - schema: - $ref: "#/components/schemas/GetDocumentsByFacetsResponse" - "400": - description: Invalid request - "401": - description: Not Authorized - "404": - description: Not Found - "429": - description: Too Many Requests - x-speakeasy-name-override: retrieveByFacets - x-speakeasy-group: client.documents - /rest/api/v1/insights: - post: - tags: - - Insights - summary: Get insights - description: Gets the aggregate usage insights data displayed in the Insights Dashboards. - operationId: insights - x-visibility: Public - x-codegen-request-body-name: payload - parameters: - - $ref: "#/components/parameters/locale" - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/InsightsRequest" - description: Includes request parameters for insights requests. - required: true - x-exportParamName: InsightsRequest - responses: - "200": - description: OK - content: - application/json: - schema: - $ref: "#/components/schemas/InsightsResponse" - "400": - description: Invalid request - "401": - description: Not Authorized - "429": - description: Too Many Requests - x-speakeasy-name-override: retrieve - x-speakeasy-group: client.insights - /rest/api/v1/messages: - post: - tags: - - Messages - summary: Read messages - description: Retrieves list of messages from messaging/chat datasources (e.g. Slack, Teams). - operationId: messages - x-visibility: Preview - x-codegen-request-body-name: payload - parameters: - - $ref: "#/components/parameters/locale" - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/MessagesRequest" - description: Includes request params such as the id for channel/message and direction. - required: true - x-exportParamName: MessagesRequest - responses: - "200": - description: OK - content: - application/json: - schema: - $ref: "#/components/schemas/MessagesResponse" - "400": - description: Invalid request - "401": - description: Not Authorized - "429": - description: Too Many Requests - x-speakeasy-name-override: retrieve - x-speakeasy-group: client.messages - /rest/api/v1/editpin: - post: - tags: - - Pins - summary: Update pin - description: Update an existing user-generated pin. - operationId: editpin - x-visibility: Public - x-codegen-request-body-name: payload - parameters: - - $ref: "#/components/parameters/locale" - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/EditPinRequest" - description: Edit pins request - required: true - x-exportParamName: Request - responses: - "200": - description: OK - content: - application/json: - schema: - $ref: "#/components/schemas/PinDocument" - "400": - description: Invalid request - "401": - description: Not Authorized - "429": - description: Too Many Requests - x-speakeasy-name-override: update - x-speakeasy-group: client.pins - /rest/api/v1/getpin: - post: - tags: - - Pins - summary: Read pin - description: Read pin details given its ID. - operationId: getpin - x-visibility: Public - x-codegen-request-body-name: payload - parameters: - - $ref: "#/components/parameters/locale" - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/GetPinRequest" - description: Get pin request - required: true - x-exportParamName: Request - responses: - "200": - description: OK - content: - application/json: - schema: - $ref: "#/components/schemas/GetPinResponse" - "400": - description: Invalid request - "401": - description: Not Authorized - "429": - description: Too Many Requests - x-speakeasy-name-override: retrieve - x-speakeasy-group: client.pins - /rest/api/v1/listpins: - post: - tags: - - Pins - summary: List pins - description: Lists all pins. - operationId: listpins - x-visibility: Public - x-codegen-request-body-name: payload - parameters: - - $ref: "#/components/parameters/locale" - requestBody: - content: - application/json: - schema: - type: object - description: List pins request - required: true - x-exportParamName: Request - responses: - "200": - description: OK - content: - application/json: - schema: - $ref: "#/components/schemas/ListPinsResponse" - "400": - description: Invalid request - "401": - description: Not Authorized - "429": - description: Too Many Requests - x-speakeasy-name-override: list - x-speakeasy-group: client.pins - /rest/api/v1/pin: - post: - tags: - - Pins - summary: Create pin - description: Pin a document as a result for a given search query.Pin results that are known to be a good match. - operationId: pin - x-visibility: Public - x-codegen-request-body-name: payload - parameters: - - $ref: "#/components/parameters/locale" - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/PinRequest" - description: Details about the document and query for the pin. - required: true - x-exportParamName: PinDocument - responses: - "200": - description: OK - content: - application/json: - schema: - $ref: "#/components/schemas/PinDocument" - "400": - description: Invalid request - "401": - description: Not Authorized - "429": - description: Too Many Requests - x-speakeasy-name-override: create - x-speakeasy-group: client.pins - /rest/api/v1/unpin: - post: - tags: - - Pins - summary: Delete pin - description: Unpin a previously pinned result. - operationId: unpin - x-visibility: Public - x-codegen-request-body-name: payload - parameters: - - $ref: "#/components/parameters/locale" - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/Unpin" - description: Details about the pin being unpinned. - required: true - x-exportParamName: Unpin - responses: - "200": - description: OK - "400": - description: Invalid request - "401": - description: Not Authorized - "403": - description: Forbidden from unpinning someone else's pin - "429": - description: Too Many Requests - x-speakeasy-name-override: remove - x-speakeasy-group: client.pins - /rest/api/v1/adminsearch: - post: - tags: - - Search - summary: Search the index (admin) - description: Retrieves results for search query without respect for permissions. This is available only to privileged users. - operationId: adminsearch - x-visibility: Preview - x-codegen-request-body-name: payload - parameters: - - $ref: "#/components/parameters/locale" - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/SearchRequest" - description: Admin search request - required: true - x-exportParamName: Request - responses: - "200": - description: OK - content: - application/json: - schema: - $ref: "#/components/schemas/SearchResponse" - "400": - description: Invalid request - "401": - description: Not Authorized - "403": - description: Forbidden - content: - application/json: - schema: - $ref: "#/components/schemas/ErrorInfo" - "422": - description: Invalid Query - content: - application/json: - schema: - $ref: "#/components/schemas/ErrorInfo" - "429": - description: Too Many Requests - x-speakeasy-group: client.search - x-speakeasy-name-override: queryAsAdmin - /rest/api/v1/autocomplete: - post: - tags: - - Search - summary: Autocomplete - description: Retrieve query suggestions, operators and documents for the given partially typed query. - operationId: autocomplete - x-visibility: Public - x-codegen-request-body-name: payload - parameters: - - $ref: "#/components/parameters/locale" - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/AutocompleteRequest" - description: Autocomplete request - required: true - x-exportParamName: Request - responses: - "200": - description: OK - content: - application/json: - schema: - $ref: "#/components/schemas/AutocompleteResponse" - "400": - description: Invalid request - "401": - description: Not Authorized - "429": - description: Too Many Requests - x-speakeasy-group: client.search - x-speakeasy-name-override: autocomplete - /rest/api/v1/feed: - post: - tags: - - Search - summary: Feed of documents and events - description: The personalized feed/home includes different types of contents including suggestions, recents, calendar events and many more. - operationId: feed - x-visibility: Public - x-codegen-request-body-name: payload - parameters: - - $ref: "#/components/parameters/locale" - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/FeedRequest" - description: Includes request params, client data and more for making user's feed. - required: true - x-exportParamName: FeedRequest - responses: - "200": - description: OK - content: - application/json: - schema: - $ref: "#/components/schemas/FeedResponse" - "400": - description: Invalid request - "401": - description: Not Authorized - "408": - description: Request Timeout - "429": - description: Too Many Requests - x-speakeasy-name-override: retrieveFeed - x-speakeasy-group: client.search - /rest/api/v1/recommendations: - post: - tags: - - Search - summary: Recommend documents - description: Retrieve recommended documents for the given URL or Glean Document ID. - operationId: recommendations - x-visibility: Preview - x-codegen-request-body-name: payload - parameters: - - $ref: "#/components/parameters/locale" - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/RecommendationsRequest" - description: Recommendations request - required: true - x-exportParamName: Request - responses: - "200": - description: OK - content: - application/json: - schema: - $ref: "#/components/schemas/RecommendationsResponse" - "202": - description: Accepted. The Retry-After header has a hint about when the response will be available - "204": - description: There are no recommendations for this URL - "400": - description: Invalid request - "401": - description: Not Authorized - "403": - description: Document does not exist or user cannot access document - "429": - description: Too Many Requests - x-speakeasy-group: client.search - x-speakeasy-name-override: recommendations - /rest/api/v1/search: - post: - tags: - - Search - summary: Search - description: Retrieve results from the index for the given query and filters. - operationId: search - x-visibility: Public - x-codegen-request-body-name: payload - parameters: - - $ref: "#/components/parameters/locale" - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/SearchRequest" - description: Search request - required: true - x-exportParamName: Request - responses: - "200": - description: OK - content: - application/json: - schema: - $ref: "#/components/schemas/SearchResponse" - "400": - description: Invalid request - "401": - description: Not Authorized - "403": - description: Forbidden - content: - application/json: - schema: - $ref: "#/components/schemas/ErrorInfo" - "408": - description: Request Timeout - "422": - description: Invalid Query - content: - application/json: - schema: - $ref: "#/components/schemas/ErrorInfo" - "429": - description: Too Many Requests - x-speakeasy-group: client.search - x-speakeasy-name-override: query - /rest/api/v1/listentities: - post: - tags: - - Entities - summary: List entities - description: List some set of details for all entities that fit the given criteria and return in the requested order. Does not support negation in filters, assumes relation type EQUALS. There is a limit of 10000 entities that can be retrieved via this endpoint, except when using FULL_DIRECTORY request type for people entities. - operationId: listentities - x-visibility: Public - x-codegen-request-body-name: payload - parameters: - - $ref: "#/components/parameters/locale" - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/ListEntitiesRequest" - description: List people request - required: true - x-exportParamName: Request - responses: - "200": - description: OK - content: - application/json: - schema: - $ref: "#/components/schemas/ListEntitiesResponse" - "400": - description: Invalid request - "401": - description: Not Authorized - "429": - description: Too Many Requests - x-speakeasy-group: client.entities - x-speakeasy-name-override: list - /rest/api/v1/people: - post: - tags: - - Entities - summary: Read people - description: Read people details for the given IDs. - operationId: people - x-visibility: Public - x-codegen-request-body-name: payload - parameters: - - $ref: "#/components/parameters/locale" - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/PeopleRequest" - description: People request - required: true - x-exportParamName: Request - responses: - "200": - description: OK - content: - application/json: - schema: - $ref: "#/components/schemas/PeopleResponse" - "400": - description: Invalid request - "401": - description: Not Authorized - "429": - description: Too Many Requests - x-speakeasy-name-override: readPeople - x-speakeasy-group: client.entities - /rest/api/v1/createshortcut: - post: - tags: - - Shortcuts - summary: Create shortcut - description: Create a user-generated shortcut that contains an alias and destination URL. - operationId: createshortcut - x-visibility: Public - x-codegen-request-body-name: payload - parameters: - - $ref: "#/components/parameters/locale" - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/CreateShortcutRequest" - description: CreateShortcut request - required: true - x-exportParamName: Request - responses: - "200": - description: OK - content: - application/json: - schema: - $ref: "#/components/schemas/CreateShortcutResponse" - "400": - description: Invalid request - "401": - description: Not Authorized - "429": - description: Too Many Requests - x-speakeasy-name-override: create - x-speakeasy-group: client.shortcuts - /rest/api/v1/deleteshortcut: - post: - tags: - - Shortcuts - summary: Delete shortcut - description: Delete an existing user-generated shortcut. - operationId: deleteshortcut - x-visibility: Public - x-codegen-request-body-name: payload - parameters: - - $ref: "#/components/parameters/locale" - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/DeleteShortcutRequest" - description: DeleteShortcut request - required: true - x-exportParamName: Request - responses: - "200": - description: OK - "400": - description: Invalid request - "401": - description: Not Authorized - "429": - description: Too Many Requests - x-speakeasy-name-override: delete - x-speakeasy-group: client.shortcuts - /rest/api/v1/getshortcut: - post: - tags: - - Shortcuts - summary: Read shortcut - description: Read a particular shortcut's details given its ID. - operationId: getshortcut - x-visibility: Public - x-codegen-request-body-name: payload - parameters: - - $ref: "#/components/parameters/locale" - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/GetShortcutRequest" - description: GetShortcut request - required: true - x-exportParamName: Request - responses: - "200": - description: OK - content: - application/json: - schema: - $ref: "#/components/schemas/GetShortcutResponse" - "400": - description: Invalid request - "401": - description: Not Authorized - "429": - description: Too Many Requests - x-speakeasy-group: client.shortcuts - x-speakeasy-name-override: retrieve - /rest/api/v1/listshortcuts: - post: - tags: - - Shortcuts - summary: List shortcuts - description: List shortcuts editable/owned by the currently authenticated user. - operationId: listshortcuts - x-visibility: Public - x-codegen-request-body-name: payload - parameters: - - $ref: "#/components/parameters/locale" - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/ListShortcutsPaginatedRequest" - description: Filters, sorters, paging params required for pagination - required: true - x-exportParamName: Request - responses: - "200": - description: OK - content: - application/json: - schema: - $ref: "#/components/schemas/ListShortcutsPaginatedResponse" - "400": - description: Invalid request - "401": - description: Not Authorized - "429": - description: Too Many Requests - x-speakeasy-group: client.shortcuts - x-speakeasy-name-override: list - /rest/api/v1/updateshortcut: - post: - tags: - - Shortcuts - summary: Update shortcut - description: Updates the shortcut with the given ID. - operationId: updateshortcut - x-visibility: Public - x-codegen-request-body-name: payload - parameters: - - $ref: "#/components/parameters/locale" - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/UpdateShortcutRequest" - description: Shortcut content. Id need to be specified for the shortcut. - required: true - x-exportParamName: Request - responses: - "200": - description: OK - content: - application/json: - schema: - $ref: "#/components/schemas/UpdateShortcutResponse" - "400": - description: Invalid request - "401": - description: Not Authorized - "429": - description: Too Many Requests - x-speakeasy-group: client.shortcuts - x-speakeasy-name-override: update - /rest/api/v1/summarize: - post: - tags: - - Summarize - summary: Summarize documents - description: Generate an AI summary of the requested documents. - operationId: summarize - x-visibility: Public - x-codegen-request-body-name: payload - parameters: - - $ref: "#/components/parameters/locale" - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/SummarizeRequest" - description: Includes request params such as the query and specs of the documents to summarize. - required: true - x-exportParamName: Request - responses: - "200": - description: OK - content: - application/json: - schema: - $ref: "#/components/schemas/SummarizeResponse" - "400": - description: Invalid request - "401": - description: Not Authorized - "429": - description: Too Many Requests - x-speakeasy-name-override: summarize - x-speakeasy-group: client.documents - /rest/api/v1/addverificationreminder: - post: - tags: - - Verification - summary: Create verification - description: Creates a verification reminder for the document. Users can create verification reminders from different product surfaces. - operationId: addverificationreminder - x-visibility: Public - x-codegen-request-body-name: payload - parameters: - - $ref: "#/components/parameters/locale" - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/ReminderRequest" - description: Details about the reminder. - required: true - x-exportParamName: ReminderRequest - responses: - "200": - description: OK - content: - application/json: - schema: - $ref: "#/components/schemas/Verification" - "400": - description: Invalid request - "401": - description: Not Authorized - "403": - description: Document does not exist, does not support verification or user cannot access document - "429": - description: Too Many Requests - x-speakeasy-name-override: addReminder - x-speakeasy-group: client.verification - /rest/api/v1/listverifications: - post: - tags: - - Verification - summary: List verifications - description: Returns the information to be rendered in verification dashboard. Includes information for each document owned by user regarding their verifications. - operationId: listverifications - x-visibility: Public - x-codegen-request-body-name: payload - parameters: - - in: query - name: count - description: Maximum number of documents to return - required: false - schema: - type: integer - - $ref: "#/components/parameters/locale" - responses: - "200": - description: OK - content: - application/json: - schema: - $ref: "#/components/schemas/VerificationFeed" - "400": - description: Invalid request - "401": - description: Not Authorized - "429": - description: Too Many Requests - x-speakeasy-name-override: list - x-speakeasy-group: client.verification - /rest/api/v1/verify: - post: - tags: - - Verification - summary: Update verification - description: Verify documents to keep the knowledge up to date within customer corpus. - operationId: verify - x-visibility: Public - x-codegen-request-body-name: payload - parameters: - - $ref: "#/components/parameters/locale" - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/VerifyRequest" - description: Details about the verification request. - required: true - x-exportParamName: VerifyRequest - responses: - "200": - description: OK - content: - application/json: - schema: - $ref: "#/components/schemas/Verification" - "400": - description: Invalid request - "401": - description: Not Authorized - "403": - description: Document does not exist, does not support verification or user cannot access document - "429": - description: Too Many Requests - x-speakeasy-name-override: verify - x-speakeasy-group: client.verification - /rest/api/v1/tools/list: - get: - summary: List available tools - description: Returns a filtered set of available tools based on optional tool name parameters. If no filters are provided, all available tools are returned. - x-visibility: Preview - parameters: - - in: query - name: toolNames - description: Optional array of tool names to filter by - required: false - schema: - type: array - items: - type: string - style: form - explode: false - responses: - "200": - description: Successful operation - content: - application/json: - schema: - $ref: "#/components/schemas/ToolsListResponse" - "400": - description: Bad Request - "401": - description: Unauthorized - "404": - description: Not Found - "429": - description: Too Many Requests - tags: - - Tools - x-speakeasy-name-override: list - x-speakeasy-group: client.tools - /rest/api/v1/tools/call: - post: - summary: Execute the specified tool - description: Execute the specified tool with provided parameters - x-visibility: Preview - requestBody: - required: true - content: - application/json: - schema: - $ref: "#/components/schemas/ToolsCallRequest" - responses: - "200": - description: Successful operation - content: - application/json: - schema: - $ref: "#/components/schemas/ToolsCallResponse" - "400": - description: Bad Request - "401": - description: Unauthorized - "404": - description: Not Found - "429": - description: Too Many Requests - tags: - - Tools - x-speakeasy-name-override: run - x-speakeasy-group: client.tools - /api/index/v1/indexdocument: - post: - summary: Index document - description: Adds a document to the index or updates an existing document. - tags: - - Documents - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/IndexDocumentRequest' - required: true - x-exportParamName: IndexDocumentRequest - responses: - "200": - description: OK - "400": - description: Bad Request - "401": - description: Not Authorized - "409": - description: Conflict - "429": - description: Too Many Requests - x-speakeasy-name-override: addOrUpdate - x-speakeasy-group: indexing.documents - /api/index/v1/indexdocuments: - post: - summary: Index documents - description: Adds or updates multiple documents in the index. Please refer to the [bulk indexing](https://developers.glean.com/indexing/documents/bulk-indexing/choosing-indexdocuments-vs-bulkindexdocuments) documentation for an explanation of when to use this endpoint. - tags: - - Documents - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/IndexDocumentsRequest' - required: true - x-exportParamName: IndexDocumentsRequest - responses: - "200": - description: OK - "400": - description: Bad Request - "401": - description: Not Authorized - "409": - description: Conflict - "429": - description: Too Many Requests - x-speakeasy-name-override: index - x-speakeasy-group: indexing.documents - /api/index/v1/bulkindexdocuments: - post: - summary: Bulk index documents - description: Replaces the documents in a datasource using paginated batch API calls. Please refer to the [bulk indexing](https://developers.glean.com/indexing/documents/bulk-upload-model) documentation for an explanation of how to use bulk endpoints. - tags: - - Documents - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BulkIndexDocumentsRequest' - required: true - x-exportParamName: BulkIndexDocumentsRequest - responses: - "200": - description: OK - "400": - description: Bad Request - "401": - description: Not Authorized - "409": - description: Conflict - x-speakeasy-name-override: bulkIndex - x-speakeasy-group: indexing.documents - /api/index/v1/updatepermissions: - post: - summary: Update document permissions - description: Updates the permissions for a given document without modifying document content. - tags: - - Documents - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/UpdatePermissionsRequest' - required: true - x-exportParamName: UpdatePermissionsRequest - responses: - "200": - description: OK - "400": - description: Bad Request - "401": - description: Not Authorized - "409": - description: Conflict - "429": - description: Too Many Requests - x-speakeasy-name-override: updatePermissions - x-speakeasy-group: indexing.permissions - /api/index/v1/processalldocuments: - post: - summary: Schedules the processing of uploaded documents - description: | - Schedules the immediate processing of documents uploaded through the indexing API. By default the uploaded documents will be processed asynchronously but this API can be used to schedule processing of all documents on demand. + id: 4 + event: message + data: {"messages":[{"role":"GLEAN_AI","content":[{"text":" your","type":"text"}]}]} + "400": + description: Bad request + "403": + description: Forbidden + "404": + description: Not Found + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorResponse" + "409": + description: Conflict + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorResponse" + "422": + description: Validation Error + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorResponse" + "500": + description: Internal server error + x-speakeasy-group: client.agents + x-speakeasy-name-override: runStream + /rest/api/v1/agents/runs/wait: + post: + tags: + - Agents + summary: Create an agent run and wait for the response + description: "Executes an [agent](https://developers.glean.com/agents/agents-api) run and returns the final response. **Note**: If the agent uses an input form trigger, all form fields (including optional fields) must be included in the `input` object." + operationId: createAndWaitRun + x-visibility: Preview + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/AgentRunCreate" + required: true + responses: + "200": + description: Success + content: + application/json: + schema: + $ref: "#/components/schemas/AgentRunWaitResponse" + "400": + description: Bad request + "403": + description: Forbidden + "404": + description: Not Found + "409": + description: Conflict + "422": + description: Validation Error + "500": + description: Internal server error + x-speakeasy-group: client.agents + x-speakeasy-name-override: run + /rest/api/v1/addcollectionitems: + post: + tags: + - Collections + summary: Add Collection item + description: Add items to a Collection. + operationId: addcollectionitems + x-visibility: Public + x-codegen-request-body-name: payload + parameters: + - $ref: "#/components/parameters/locale" + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/AddCollectionItemsRequest" + description: Data describing the add operation. + required: true + x-exportParamName: Request + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/AddCollectionItemsResponse" + "400": + description: Invalid request + "401": + description: Not Authorized + "429": + description: Too Many Requests + x-speakeasy-name-override: addItems + x-speakeasy-group: client.collections + /rest/api/v1/createcollection: + post: + tags: + - Collections + summary: Create Collection + description: Create a publicly visible (empty) Collection of documents. + operationId: createcollection + x-visibility: Public + x-codegen-request-body-name: payload + parameters: + - $ref: "#/components/parameters/locale" + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/CreateCollectionRequest" + description: Collection content plus any additional metadata for the request. + required: true + x-exportParamName: Request + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/CreateCollectionResponse" + "400": + description: Invalid request + "401": + description: Not Authorized + "422": + description: Semantic error + content: + application/json: + schema: + $ref: "#/components/schemas/CollectionError" + "429": + description: Too Many Requests + x-speakeasy-group: client.collections + x-speakeasy-name-override: create + /rest/api/v1/deletecollection: + post: + tags: + - Collections + summary: Delete Collection + description: Delete a Collection given the Collection's ID. + operationId: deletecollection + x-visibility: Public + x-codegen-request-body-name: payload + parameters: + - $ref: "#/components/parameters/locale" + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/DeleteCollectionRequest" + description: DeleteCollection request + required: true + x-exportParamName: Request + responses: + "200": + description: OK + "400": + description: Invalid request + "401": + description: Not Authorized + "422": + description: Semantic error + content: + application/json: + schema: + $ref: "#/components/schemas/CollectionError" + "429": + description: Too Many Requests + x-speakeasy-name-override: delete + x-speakeasy-group: client.collections + /rest/api/v1/deletecollectionitem: + post: + tags: + - Collections + summary: Delete Collection item + description: Delete a single item from a Collection. + operationId: deletecollectionitem + x-visibility: Public + x-codegen-request-body-name: payload + parameters: + - $ref: "#/components/parameters/locale" + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/DeleteCollectionItemRequest" + description: Data describing the delete operation. + required: true + x-exportParamName: Request + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/DeleteCollectionItemResponse" + "400": + description: Invalid request + "401": + description: Not Authorized + "422": + description: Failed to save deletion + "429": + description: Too Many Requests + x-speakeasy-name-override: deleteItem + x-speakeasy-group: client.collections + /rest/api/v1/editcollection: + post: + tags: + - Collections + summary: Update Collection + description: Update the properties of an existing Collection. + operationId: editcollection + x-visibility: Public + x-codegen-request-body-name: payload + parameters: + - $ref: "#/components/parameters/locale" + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/EditCollectionRequest" + description: Collection content plus any additional metadata for the request. + required: true + x-exportParamName: Request + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/EditCollectionResponse" + "400": + description: Invalid request + "401": + description: Not Authorized + "422": + description: Semantic error + content: + application/json: + schema: + $ref: "#/components/schemas/CollectionError" + "429": + description: Too Many Requests + x-speakeasy-name-override: update + x-speakeasy-group: client.collections + /rest/api/v1/editcollectionitem: + post: + tags: + - Collections + summary: Update Collection item + description: Update the URL, Glean Document ID, description of an item within a Collection given its ID. + operationId: editcollectionitem + x-visibility: Public + x-codegen-request-body-name: payload + parameters: + - $ref: "#/components/parameters/locale" + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/EditCollectionItemRequest" + description: Edit Collection Items request + required: true + x-exportParamName: Request + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/EditCollectionItemResponse" + "400": + description: Invalid request + "401": + description: Not Authorized + "429": + description: Too Many Requests + x-speakeasy-name-override: updateItem + x-speakeasy-group: client.collections + /rest/api/v1/getcollection: + post: + tags: + - Collections + summary: Read Collection + description: Read the details of a Collection given its ID. Does not fetch items in this Collection. + operationId: getcollection + x-visibility: Preview + x-codegen-request-body-name: payload + parameters: + - $ref: "#/components/parameters/locale" + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/GetCollectionRequest" + description: GetCollection request + required: true + x-exportParamName: Request + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/GetCollectionResponse" + "400": + description: Invalid request + "401": + description: Not Authorized + "429": + description: Too Many Requests + x-speakeasy-name-override: retrieve + x-speakeasy-group: client.collections + /rest/api/v1/listcollections: + post: + tags: + - Collections + summary: List Collections + description: List all existing Collections. + operationId: listcollections + x-visibility: Public + x-codegen-request-body-name: payload + parameters: + - $ref: "#/components/parameters/locale" + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/ListCollectionsRequest" + description: ListCollections request + required: true + x-exportParamName: Request + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/ListCollectionsResponse" + "400": + description: Invalid request + "401": + description: Not Authorized + "429": + description: Too Many Requests + x-speakeasy-name-override: list + x-speakeasy-group: client.collections + /rest/api/v1/getdocpermissions: + post: + tags: + - Documents + summary: Read document permissions + description: Read the emails of all users who have access to the given document. + operationId: getdocpermissions + x-visibility: Preview + x-codegen-request-body-name: payload + parameters: + - $ref: "#/components/parameters/locale" + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/GetDocPermissionsRequest" + description: Document permissions request + required: true + x-exportParamName: Request + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/GetDocPermissionsResponse" + "400": + description: Invalid request + "401": + description: Not Authorized + "403": + description: Forbidden + "429": + description: Too Many Requests + x-speakeasy-name-override: retrievePermissions + x-speakeasy-group: client.documents + /rest/api/v1/getdocuments: + post: + tags: + - Documents + summary: Read documents + description: Read the documents including metadata (does not include enhanced metadata via `/documentmetadata`) for the given list of Glean Document IDs or URLs specified in the request. + operationId: getdocuments + x-visibility: Public + x-codegen-request-body-name: payload + parameters: + - $ref: "#/components/parameters/locale" + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/GetDocumentsRequest" + description: Information about documents requested. + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/GetDocumentsResponse" + "400": + description: Invalid request + "401": + description: Not Authorized + "403": + description: Documents does not exist, or user cannot access documents. + "429": + description: Too Many Requests + x-speakeasy-name-override: retrieve + x-speakeasy-group: client.documents + /rest/api/v1/getdocumentsbyfacets: + post: + tags: + - Documents + summary: Read documents by facets + description: Read the documents including metadata (does not include enhanced metadata via `/documentmetadata`) macthing the given facet conditions. + operationId: getdocumentsbyfacets + x-visibility: Preview + x-codegen-request-body-name: payload + parameters: + - $ref: "#/components/parameters/locale" + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/GetDocumentsByFacetsRequest" + description: Information about facet conditions for documents to be retrieved. + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/GetDocumentsByFacetsResponse" + "400": + description: Invalid request + "401": + description: Not Authorized + "404": + description: Not Found + "429": + description: Too Many Requests + x-speakeasy-name-override: retrieveByFacets + x-speakeasy-group: client.documents + /rest/api/v1/insights: + post: + tags: + - Insights + summary: Get insights + description: Gets the aggregate usage insights data displayed in the Insights Dashboards. + operationId: insights + x-visibility: Public + x-codegen-request-body-name: payload + parameters: + - $ref: "#/components/parameters/locale" + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/InsightsRequest" + description: Includes request parameters for insights requests. + required: true + x-exportParamName: InsightsRequest + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/InsightsResponse" + "400": + description: Invalid request + "401": + description: Not Authorized + "429": + description: Too Many Requests + x-speakeasy-name-override: retrieve + x-speakeasy-group: client.insights + /rest/api/v1/messages: + post: + tags: + - Messages + summary: Read messages + description: Retrieves list of messages from messaging/chat datasources (e.g. Slack, Teams). + operationId: messages + x-visibility: Preview + x-codegen-request-body-name: payload + parameters: + - $ref: "#/components/parameters/locale" + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/MessagesRequest" + description: Includes request params such as the id for channel/message and direction. + required: true + x-exportParamName: MessagesRequest + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/MessagesResponse" + "400": + description: Invalid request + "401": + description: Not Authorized + "429": + description: Too Many Requests + x-speakeasy-name-override: retrieve + x-speakeasy-group: client.messages + /rest/api/v1/editpin: + post: + tags: + - Pins + summary: Update pin + description: Update an existing user-generated pin. + operationId: editpin + x-visibility: Public + x-codegen-request-body-name: payload + parameters: + - $ref: "#/components/parameters/locale" + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/EditPinRequest" + description: Edit pins request + required: true + x-exportParamName: Request + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/PinDocument" + "400": + description: Invalid request + "401": + description: Not Authorized + "429": + description: Too Many Requests + x-speakeasy-name-override: update + x-speakeasy-group: client.pins + /rest/api/v1/getpin: + post: + tags: + - Pins + summary: Read pin + description: Read pin details given its ID. + operationId: getpin + x-visibility: Public + x-codegen-request-body-name: payload + parameters: + - $ref: "#/components/parameters/locale" + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/GetPinRequest" + description: Get pin request + required: true + x-exportParamName: Request + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/GetPinResponse" + "400": + description: Invalid request + "401": + description: Not Authorized + "429": + description: Too Many Requests + x-speakeasy-name-override: retrieve + x-speakeasy-group: client.pins + /rest/api/v1/listpins: + post: + tags: + - Pins + summary: List pins + description: Lists all pins. + operationId: listpins + x-visibility: Public + x-codegen-request-body-name: payload + parameters: + - $ref: "#/components/parameters/locale" + requestBody: + content: + application/json: + schema: + type: object + description: List pins request + required: true + x-exportParamName: Request + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/ListPinsResponse" + "400": + description: Invalid request + "401": + description: Not Authorized + "429": + description: Too Many Requests + x-speakeasy-name-override: list + x-speakeasy-group: client.pins + /rest/api/v1/pin: + post: + tags: + - Pins + summary: Create pin + description: Pin a document as a result for a given search query.Pin results that are known to be a good match. + operationId: pin + x-visibility: Public + x-codegen-request-body-name: payload + parameters: + - $ref: "#/components/parameters/locale" + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/PinRequest" + description: Details about the document and query for the pin. + required: true + x-exportParamName: PinDocument + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/PinDocument" + "400": + description: Invalid request + "401": + description: Not Authorized + "429": + description: Too Many Requests + x-speakeasy-name-override: create + x-speakeasy-group: client.pins + /rest/api/v1/unpin: + post: + tags: + - Pins + summary: Delete pin + description: Unpin a previously pinned result. + operationId: unpin + x-visibility: Public + x-codegen-request-body-name: payload + parameters: + - $ref: "#/components/parameters/locale" + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/Unpin" + description: Details about the pin being unpinned. + required: true + x-exportParamName: Unpin + responses: + "200": + description: OK + "400": + description: Invalid request + "401": + description: Not Authorized + "403": + description: Forbidden from unpinning someone else's pin + "429": + description: Too Many Requests + x-speakeasy-name-override: remove + x-speakeasy-group: client.pins + /rest/api/v1/adminsearch: + post: + tags: + - Search + summary: Search the index (admin) + description: Retrieves results for search query without respect for permissions. This is available only to privileged users. + operationId: adminsearch + x-visibility: Preview + x-codegen-request-body-name: payload + parameters: + - $ref: "#/components/parameters/locale" + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/SearchRequest" + description: Admin search request + required: true + x-exportParamName: Request + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/SearchResponse" + "400": + description: Invalid request + "401": + description: Not Authorized + "403": + description: Forbidden + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorInfo" + "422": + description: Invalid Query + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorInfo" + "429": + description: Too Many Requests + x-speakeasy-group: client.search + x-speakeasy-name-override: queryAsAdmin + /rest/api/v1/autocomplete: + post: + tags: + - Search + summary: Autocomplete + description: Retrieve query suggestions, operators and documents for the given partially typed query. + operationId: autocomplete + x-visibility: Public + x-codegen-request-body-name: payload + parameters: + - $ref: "#/components/parameters/locale" + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/AutocompleteRequest" + description: Autocomplete request + required: true + x-exportParamName: Request + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/AutocompleteResponse" + "400": + description: Invalid request + "401": + description: Not Authorized + "429": + description: Too Many Requests + x-speakeasy-group: client.search + x-speakeasy-name-override: autocomplete + /rest/api/v1/feed: + post: + tags: + - Search + summary: Feed of documents and events + description: The personalized feed/home includes different types of contents including suggestions, recents, calendar events and many more. + operationId: feed + x-visibility: Public + x-codegen-request-body-name: payload + parameters: + - $ref: "#/components/parameters/locale" + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/FeedRequest" + description: Includes request params, client data and more for making user's feed. + required: true + x-exportParamName: FeedRequest + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/FeedResponse" + "400": + description: Invalid request + "401": + description: Not Authorized + "408": + description: Request Timeout + "429": + description: Too Many Requests + x-speakeasy-name-override: retrieveFeed + x-speakeasy-group: client.search + /rest/api/v1/recommendations: + post: + tags: + - Search + summary: Recommend documents + description: Retrieve recommended documents for the given URL or Glean Document ID. + operationId: recommendations + x-visibility: Preview + x-codegen-request-body-name: payload + parameters: + - $ref: "#/components/parameters/locale" + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/RecommendationsRequest" + description: Recommendations request + required: true + x-exportParamName: Request + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/RecommendationsResponse" + "202": + description: Accepted. The Retry-After header has a hint about when the response will be available + "204": + description: There are no recommendations for this URL + "400": + description: Invalid request + "401": + description: Not Authorized + "403": + description: Document does not exist or user cannot access document + "429": + description: Too Many Requests + x-speakeasy-group: client.search + x-speakeasy-name-override: recommendations + /rest/api/v1/search: + post: + tags: + - Search + summary: Search + description: Retrieve results from the index for the given query and filters. + operationId: search + x-visibility: Public + x-codegen-request-body-name: payload + parameters: + - $ref: "#/components/parameters/locale" + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/SearchRequest" + description: Search request + required: true + x-exportParamName: Request + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/SearchResponse" + "400": + description: Invalid request + "401": + description: Not Authorized + "403": + description: Forbidden + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorInfo" + "408": + description: Request Timeout + "422": + description: Invalid Query + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorInfo" + "429": + description: Too Many Requests + x-speakeasy-group: client.search + x-speakeasy-name-override: query + /rest/api/v1/listentities: + post: + tags: + - Entities + summary: List entities + description: List some set of details for all entities that fit the given criteria and return in the requested order. Does not support negation in filters, assumes relation type EQUALS. There is a limit of 10000 entities that can be retrieved via this endpoint, except when using FULL_DIRECTORY request type for people entities. + operationId: listentities + x-visibility: Public + x-codegen-request-body-name: payload + parameters: + - $ref: "#/components/parameters/locale" + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/ListEntitiesRequest" + description: List people request + required: true + x-exportParamName: Request + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/ListEntitiesResponse" + "400": + description: Invalid request + "401": + description: Not Authorized + "429": + description: Too Many Requests + x-speakeasy-group: client.entities + x-speakeasy-name-override: list + /rest/api/v1/people: + post: + tags: + - Entities + summary: Read people + description: Read people details for the given IDs. + operationId: people + x-visibility: Public + x-codegen-request-body-name: payload + parameters: + - $ref: "#/components/parameters/locale" + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/PeopleRequest" + description: People request + required: true + x-exportParamName: Request + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/PeopleResponse" + "400": + description: Invalid request + "401": + description: Not Authorized + "429": + description: Too Many Requests + x-speakeasy-name-override: readPeople + x-speakeasy-group: client.entities + /rest/api/v1/createshortcut: + post: + tags: + - Shortcuts + summary: Create shortcut + description: Create a user-generated shortcut that contains an alias and destination URL. + operationId: createshortcut + x-visibility: Public + x-codegen-request-body-name: payload + parameters: + - $ref: "#/components/parameters/locale" + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/CreateShortcutRequest" + description: CreateShortcut request + required: true + x-exportParamName: Request + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/CreateShortcutResponse" + "400": + description: Invalid request + "401": + description: Not Authorized + "429": + description: Too Many Requests + x-speakeasy-name-override: create + x-speakeasy-group: client.shortcuts + /rest/api/v1/deleteshortcut: + post: + tags: + - Shortcuts + summary: Delete shortcut + description: Delete an existing user-generated shortcut. + operationId: deleteshortcut + x-visibility: Public + x-codegen-request-body-name: payload + parameters: + - $ref: "#/components/parameters/locale" + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/DeleteShortcutRequest" + description: DeleteShortcut request + required: true + x-exportParamName: Request + responses: + "200": + description: OK + "400": + description: Invalid request + "401": + description: Not Authorized + "429": + description: Too Many Requests + x-speakeasy-name-override: delete + x-speakeasy-group: client.shortcuts + /rest/api/v1/getshortcut: + post: + tags: + - Shortcuts + summary: Read shortcut + description: Read a particular shortcut's details given its ID. + operationId: getshortcut + x-visibility: Public + x-codegen-request-body-name: payload + parameters: + - $ref: "#/components/parameters/locale" + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/GetShortcutRequest" + description: GetShortcut request + required: true + x-exportParamName: Request + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/GetShortcutResponse" + "400": + description: Invalid request + "401": + description: Not Authorized + "429": + description: Too Many Requests + x-speakeasy-group: client.shortcuts + x-speakeasy-name-override: retrieve + /rest/api/v1/listshortcuts: + post: + tags: + - Shortcuts + summary: List shortcuts + description: List shortcuts editable/owned by the currently authenticated user. + operationId: listshortcuts + x-visibility: Public + x-codegen-request-body-name: payload + parameters: + - $ref: "#/components/parameters/locale" + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/ListShortcutsPaginatedRequest" + description: Filters, sorters, paging params required for pagination + required: true + x-exportParamName: Request + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/ListShortcutsPaginatedResponse" + "400": + description: Invalid request + "401": + description: Not Authorized + "429": + description: Too Many Requests + x-speakeasy-group: client.shortcuts + x-speakeasy-name-override: list + /rest/api/v1/updateshortcut: + post: + tags: + - Shortcuts + summary: Update shortcut + description: Updates the shortcut with the given ID. + operationId: updateshortcut + x-visibility: Public + x-codegen-request-body-name: payload + parameters: + - $ref: "#/components/parameters/locale" + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/UpdateShortcutRequest" + description: Shortcut content. Id need to be specified for the shortcut. + required: true + x-exportParamName: Request + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/UpdateShortcutResponse" + "400": + description: Invalid request + "401": + description: Not Authorized + "429": + description: Too Many Requests + x-speakeasy-group: client.shortcuts + x-speakeasy-name-override: update + /rest/api/v1/summarize: + post: + tags: + - Summarize + summary: Summarize documents + description: Generate an AI summary of the requested documents. + operationId: summarize + x-visibility: Public + x-codegen-request-body-name: payload + parameters: + - $ref: "#/components/parameters/locale" + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/SummarizeRequest" + description: Includes request params such as the query and specs of the documents to summarize. + required: true + x-exportParamName: Request + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/SummarizeResponse" + "400": + description: Invalid request + "401": + description: Not Authorized + "429": + description: Too Many Requests + x-speakeasy-name-override: summarize + x-speakeasy-group: client.documents + /rest/api/v1/addverificationreminder: + post: + tags: + - Verification + summary: Create verification + description: Creates a verification reminder for the document. Users can create verification reminders from different product surfaces. + operationId: addverificationreminder + x-visibility: Public + x-codegen-request-body-name: payload + parameters: + - $ref: "#/components/parameters/locale" + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/ReminderRequest" + description: Details about the reminder. + required: true + x-exportParamName: ReminderRequest + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/Verification" + "400": + description: Invalid request + "401": + description: Not Authorized + "403": + description: Document does not exist, does not support verification or user cannot access document + "429": + description: Too Many Requests + x-speakeasy-name-override: addReminder + x-speakeasy-group: client.verification + /rest/api/v1/listverifications: + post: + tags: + - Verification + summary: List verifications + description: Returns the information to be rendered in verification dashboard. Includes information for each document owned by user regarding their verifications. + operationId: listverifications + x-visibility: Public + x-codegen-request-body-name: payload + parameters: + - in: query + name: count + description: Maximum number of documents to return + required: false + schema: + type: integer + - $ref: "#/components/parameters/locale" + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/VerificationFeed" + "400": + description: Invalid request + "401": + description: Not Authorized + "429": + description: Too Many Requests + x-speakeasy-name-override: list + x-speakeasy-group: client.verification + /rest/api/v1/verify: + post: + tags: + - Verification + summary: Update verification + description: Verify documents to keep the knowledge up to date within customer corpus. + operationId: verify + x-visibility: Public + x-codegen-request-body-name: payload + parameters: + - $ref: "#/components/parameters/locale" + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/VerifyRequest" + description: Details about the verification request. + required: true + x-exportParamName: VerifyRequest + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/Verification" + "400": + description: Invalid request + "401": + description: Not Authorized + "403": + description: Document does not exist, does not support verification or user cannot access document + "429": + description: Too Many Requests + x-speakeasy-name-override: verify + x-speakeasy-group: client.verification + /rest/api/v1/tools/list: + get: + summary: List available tools + description: Returns a filtered set of available tools based on optional tool name parameters. If no filters are provided, all available tools are returned. + x-visibility: Preview + parameters: + - in: query + name: toolNames + description: Optional array of tool names to filter by + required: false + schema: + type: array + items: + type: string + style: form + explode: false + responses: + "200": + description: Successful operation + content: + application/json: + schema: + $ref: "#/components/schemas/ToolsListResponse" + "400": + description: Bad Request + "401": + description: Unauthorized + "404": + description: Not Found + "429": + description: Too Many Requests + tags: + - Tools + x-speakeasy-name-override: list + x-speakeasy-group: client.tools + /rest/api/v1/tools/call: + post: + summary: Execute the specified tool + description: Execute the specified tool with provided parameters + x-visibility: Preview + requestBody: + required: true + content: + application/json: + schema: + $ref: "#/components/schemas/ToolsCallRequest" + responses: + "200": + description: Successful operation + content: + application/json: + schema: + $ref: "#/components/schemas/ToolsCallResponse" + "400": + description: Bad Request + "401": + description: Unauthorized + "404": + description: Not Found + "429": + description: Too Many Requests + tags: + - Tools + x-speakeasy-name-override: run + x-speakeasy-group: client.tools + /api/index/v1/indexdocument: + post: + summary: Index document + description: Adds a document to the index or updates an existing document. + tags: + - Documents + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/IndexDocumentRequest" + required: true + x-exportParamName: IndexDocumentRequest + responses: + "200": + description: OK + "400": + description: Bad Request + "401": + description: Not Authorized + "409": + description: Conflict + "429": + description: Too Many Requests + x-speakeasy-name-override: addOrUpdate + x-speakeasy-group: indexing.documents + /api/index/v1/indexdocuments: + post: + summary: Index documents + description: Adds or updates multiple documents in the index. Please refer to the [bulk indexing](https://developers.glean.com/indexing/documents/bulk-indexing/choosing-indexdocuments-vs-bulkindexdocuments) documentation for an explanation of when to use this endpoint. + tags: + - Documents + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/IndexDocumentsRequest" + required: true + x-exportParamName: IndexDocumentsRequest + responses: + "200": + description: OK + "400": + description: Bad Request + "401": + description: Not Authorized + "409": + description: Conflict + "429": + description: Too Many Requests + x-speakeasy-name-override: index + x-speakeasy-group: indexing.documents + /api/index/v1/bulkindexdocuments: + post: + summary: Bulk index documents + description: Replaces the documents in a datasource using paginated batch API calls. Please refer to the [bulk indexing](https://developers.glean.com/indexing/documents/bulk-upload-model) documentation for an explanation of how to use bulk endpoints. + tags: + - Documents + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/BulkIndexDocumentsRequest" + required: true + x-exportParamName: BulkIndexDocumentsRequest + responses: + "200": + description: OK + "400": + description: Bad Request + "401": + description: Not Authorized + "409": + description: Conflict + x-speakeasy-name-override: bulkIndex + x-speakeasy-group: indexing.documents + /api/index/v1/updatepermissions: + post: + summary: Update document permissions + description: Updates the permissions for a given document without modifying document content. + tags: + - Documents + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/UpdatePermissionsRequest" + required: true + x-exportParamName: UpdatePermissionsRequest + responses: + "200": + description: OK + "400": + description: Bad Request + "401": + description: Not Authorized + "409": + description: Conflict + "429": + description: Too Many Requests + x-speakeasy-name-override: updatePermissions + x-speakeasy-group: indexing.permissions + /api/index/v1/processalldocuments: + post: + summary: Schedules the processing of uploaded documents + description: | + Schedules the immediate processing of documents uploaded through the indexing API. By default the uploaded documents will be processed asynchronously but this API can be used to schedule processing of all documents on demand. - If a `datasource` parameter is specified, processing is limited to that custom datasource. Without it, processing applies to all documents across all custom datasources. - #### Rate Limits - This endpoint is rate-limited to one usage every 3 hours. Exceeding this limit results in a 429 response code. Here's how the rate limit works: - 1. Calling `/processalldocuments` for datasource `foo` prevents another call for `foo` for 3 hours. - 2. Calling `/processalldocuments` for datasource `foo` doesn't affect immediate calls for `bar`. - 3. Calling `/processalldocuments` for all datasources prevents any datasource calls for 3 hours. - 4. Calling `/processalldocuments` for datasource `foo` doesn't affect immediate calls for all datasources. + If a `datasource` parameter is specified, processing is limited to that custom datasource. Without it, processing applies to all documents across all custom datasources. + #### Rate Limits + This endpoint is rate-limited to one usage every 3 hours. Exceeding this limit results in a 429 response code. Here's how the rate limit works: + 1. Calling `/processalldocuments` for datasource `foo` prevents another call for `foo` for 3 hours. + 2. Calling `/processalldocuments` for datasource `foo` doesn't affect immediate calls for `bar`. + 3. Calling `/processalldocuments` for all datasources prevents any datasource calls for 3 hours. + 4. Calling `/processalldocuments` for datasource `foo` doesn't affect immediate calls for all datasources. - For more frequent document processing, contact Glean support. - tags: - - Documents - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ProcessAllDocumentsRequest' - x-exportParamName: ProcessAllDocumentsRequest - responses: - "200": - description: OK - "400": - description: Bad Request - "401": - description: Not Authorized - "429": - description: Too Many Requests - x-speakeasy-name-override: processAll - x-speakeasy-group: indexing.documents - /api/index/v1/deletedocument: - post: - summary: Delete document - description: Deletes the specified document from the index. Succeeds if document is not present. - tags: - - Documents - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/DeleteDocumentRequest' - required: true - x-exportParamName: DeleteDocumentRequest - responses: - "200": - description: OK - "400": - description: Bad Request - "401": - description: Not Authorized - "409": - description: Conflict - x-speakeasy-name-override: delete - x-speakeasy-group: indexing.documents - /api/index/v1/indexuser: - post: - summary: Index user - description: Adds a datasource user or updates an existing user. - tags: - - Permissions - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/IndexUserRequest' - required: true - x-exportParamName: IndexUserRequest - responses: - "200": - description: OK - "400": - description: Bad Request - "401": - description: Not Authorized - "409": - description: Conflict - x-speakeasy-name-override: indexUser - x-speakeasy-group: indexing.permissions - /api/index/v1/bulkindexusers: - post: - summary: Bulk index users - description: | - Replaces the users in a datasource using paginated batch API calls. Please refer to the [bulk indexing](https://developers.glean.com/indexing/documents/bulk-upload-model) documentation for an explanation of how to use bulk endpoints. - Note: Any users deleted from the existing set will have their associated memberships deleted as well. - tags: - - Permissions - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BulkIndexUsersRequest' - required: true - x-exportParamName: BulkIndexUsersRequest - responses: - "200": - description: OK - "400": - description: Bad Request - "401": - description: Not Authorized - "409": - description: Conflict - x-speakeasy-name-override: bulkIndexUsers - x-speakeasy-group: indexing.permissions - /api/index/v1/indexgroup: - post: - summary: Index group - description: Add or update a group in the datasource. - tags: - - Permissions - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/IndexGroupRequest' - required: true - x-exportParamName: IndexGroupRequest - responses: - "200": - description: OK - "400": - description: Bad Request - "401": - description: Not Authorized - "409": - description: Conflict - x-speakeasy-name-override: indexGroup - x-speakeasy-group: indexing.permissions - /api/index/v1/bulkindexgroups: - post: - summary: Bulk index groups - description: | - Replaces the groups in a datasource using paginated batch API calls. Please refer to the [bulk indexing](https://developers.glean.com/indexing/documents/bulk-upload-model) documentation for an explanation of how to use bulk endpoints. - Note: Any groups deleted from the existing set will have their associated memberships deleted as well. - tags: - - Permissions - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BulkIndexGroupsRequest' - required: true - x-exportParamName: BulkIndexGroupsRequest - responses: - "200": - description: OK - "400": - description: Bad Request - "401": - description: Not Authorized - "409": - description: Conflict - x-speakeasy-name-override: bulkIndexGroups - x-speakeasy-group: indexing.permissions - /api/index/v1/indexmembership: - post: - summary: Index membership - description: Add the memberships of a group in the datasource. - tags: - - Permissions - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/IndexMembershipRequest' - required: true - x-exportParamName: IndexMembershipRequest - responses: - "200": - description: OK - "400": - description: Bad Request - "401": - description: Not Authorized - "409": - description: Conflict - x-speakeasy-name-override: indexMembership - x-speakeasy-group: indexing.permissions - /api/index/v1/bulkindexmemberships: - post: - summary: Bulk index memberships for a group - description: Replaces the memberships for a group in a datasource using paginated batch API calls. Please refer to the [bulk indexing](https://developers.glean.com/indexing/documents/bulk-upload-model) documentation for an explanation of how to use bulk endpoints. - tags: - - Permissions - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BulkIndexMembershipsRequest' - required: true - x-exportParamName: BulkIndexMembershipsRequest - responses: - "200": - description: OK - "400": - description: Bad Request - "401": - description: Not Authorized - "409": - description: Conflict - x-speakeasy-name-override: bulkIndexMemberships - x-speakeasy-group: indexing.permissions - /api/index/v1/processallmemberships: - post: - summary: Schedules the processing of group memberships - description: | - Schedules the immediate processing of all group memberships uploaded through the indexing API. By default the uploaded group memberships will be processed asynchronously but this API can be used to schedule processing of all memberships on demand. - tags: - - Permissions - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ProcessAllMembershipsRequest' - x-exportParamName: ProcessAllMembershipsRequest - responses: - "200": - description: OK - "400": - description: Bad Request - "401": - description: Not Authorized - x-speakeasy-name-override: processMemberships - x-speakeasy-group: indexing.permissions - /api/index/v1/deleteuser: - post: - summary: Delete user - description: | - Delete the user from the datasource. Silently succeeds if user is not present. - Note: All memberships associated with the deleted user will also be deleted. - tags: - - Permissions - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/DeleteUserRequest' - required: true - x-exportParamName: DeleteUserRequest - responses: - "200": - description: OK - "400": - description: Bad Request - "401": - description: Not Authorized - "409": - description: Conflict - x-speakeasy-name-override: deleteUser - x-speakeasy-group: indexing.permissions - /api/index/v1/deletegroup: - post: - summary: Delete group - description: | - Delete group from the datasource. Silently succeeds if group is not present. - Note: All memberships associated with the deleted group will also be deleted. - tags: - - Permissions - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/DeleteGroupRequest' - required: true - x-exportParamName: DeleteGroupRequest - responses: - "200": - description: OK - "400": - description: Bad Request - "401": - description: Not Authorized - "409": - description: Conflict - x-speakeasy-name-override: deleteGroup - x-speakeasy-group: indexing.permissions - /api/index/v1/deletemembership: - post: - summary: Delete membership - description: Delete membership to a group in the specified datasource. Silently succeeds if membership is not present. - tags: - - Permissions - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/DeleteMembershipRequest' - required: true - x-exportParamName: DeleteMembershipRequest - responses: - "200": - description: OK - "400": - description: Bad Request - "401": - description: Not Authorized - "409": - description: Conflict - x-speakeasy-name-override: deleteMembership - x-speakeasy-group: indexing.permissions - /api/index/v1/debug/{datasource}/status: - post: - summary: | - Beta: Get datasource status - description: | - Gather information about the datasource's overall status. Currently in beta, might undergo breaking changes without prior notice. + For more frequent document processing, contact Glean support. + tags: + - Documents + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/ProcessAllDocumentsRequest" + x-exportParamName: ProcessAllDocumentsRequest + responses: + "200": + description: OK + "400": + description: Bad Request + "401": + description: Not Authorized + "429": + description: Too Many Requests + x-speakeasy-name-override: processAll + x-speakeasy-group: indexing.documents + /api/index/v1/deletedocument: + post: + summary: Delete document + description: Deletes the specified document from the index. Succeeds if document is not present. + tags: + - Documents + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/DeleteDocumentRequest" + required: true + x-exportParamName: DeleteDocumentRequest + responses: + "200": + description: OK + "400": + description: Bad Request + "401": + description: Not Authorized + "409": + description: Conflict + x-speakeasy-name-override: delete + x-speakeasy-group: indexing.documents + /api/index/v1/indexuser: + post: + summary: Index user + description: Adds a datasource user or updates an existing user. + tags: + - Permissions + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/IndexUserRequest" + required: true + x-exportParamName: IndexUserRequest + responses: + "200": + description: OK + "400": + description: Bad Request + "401": + description: Not Authorized + "409": + description: Conflict + x-speakeasy-name-override: indexUser + x-speakeasy-group: indexing.permissions + /api/index/v1/bulkindexusers: + post: + summary: Bulk index users + description: | + Replaces the users in a datasource using paginated batch API calls. Please refer to the [bulk indexing](https://developers.glean.com/indexing/documents/bulk-upload-model) documentation for an explanation of how to use bulk endpoints. + Note: Any users deleted from the existing set will have their associated memberships deleted as well. + tags: + - Permissions + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/BulkIndexUsersRequest" + required: true + x-exportParamName: BulkIndexUsersRequest + responses: + "200": + description: OK + "400": + description: Bad Request + "401": + description: Not Authorized + "409": + description: Conflict + x-speakeasy-name-override: bulkIndexUsers + x-speakeasy-group: indexing.permissions + /api/index/v1/indexgroup: + post: + summary: Index group + description: Add or update a group in the datasource. + tags: + - Permissions + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/IndexGroupRequest" + required: true + x-exportParamName: IndexGroupRequest + responses: + "200": + description: OK + "400": + description: Bad Request + "401": + description: Not Authorized + "409": + description: Conflict + x-speakeasy-name-override: indexGroup + x-speakeasy-group: indexing.permissions + /api/index/v1/bulkindexgroups: + post: + summary: Bulk index groups + description: | + Replaces the groups in a datasource using paginated batch API calls. Please refer to the [bulk indexing](https://developers.glean.com/indexing/documents/bulk-upload-model) documentation for an explanation of how to use bulk endpoints. + Note: Any groups deleted from the existing set will have their associated memberships deleted as well. + tags: + - Permissions + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/BulkIndexGroupsRequest" + required: true + x-exportParamName: BulkIndexGroupsRequest + responses: + "200": + description: OK + "400": + description: Bad Request + "401": + description: Not Authorized + "409": + description: Conflict + x-speakeasy-name-override: bulkIndexGroups + x-speakeasy-group: indexing.permissions + /api/index/v1/indexmembership: + post: + summary: Index membership + description: Add the memberships of a group in the datasource. + tags: + - Permissions + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/IndexMembershipRequest" + required: true + x-exportParamName: IndexMembershipRequest + responses: + "200": + description: OK + "400": + description: Bad Request + "401": + description: Not Authorized + "409": + description: Conflict + x-speakeasy-name-override: indexMembership + x-speakeasy-group: indexing.permissions + /api/index/v1/bulkindexmemberships: + post: + summary: Bulk index memberships for a group + description: Replaces the memberships for a group in a datasource using paginated batch API calls. Please refer to the [bulk indexing](https://developers.glean.com/indexing/documents/bulk-upload-model) documentation for an explanation of how to use bulk endpoints. + tags: + - Permissions + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/BulkIndexMembershipsRequest" + required: true + x-exportParamName: BulkIndexMembershipsRequest + responses: + "200": + description: OK + "400": + description: Bad Request + "401": + description: Not Authorized + "409": + description: Conflict + x-speakeasy-name-override: bulkIndexMemberships + x-speakeasy-group: indexing.permissions + /api/index/v1/processallmemberships: + post: + summary: Schedules the processing of group memberships + description: | + Schedules the immediate processing of all group memberships uploaded through the indexing API. By default the uploaded group memberships will be processed asynchronously but this API can be used to schedule processing of all memberships on demand. + tags: + - Permissions + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/ProcessAllMembershipsRequest" + x-exportParamName: ProcessAllMembershipsRequest + responses: + "200": + description: OK + "400": + description: Bad Request + "401": + description: Not Authorized + x-speakeasy-name-override: processMemberships + x-speakeasy-group: indexing.permissions + /api/index/v1/deleteuser: + post: + summary: Delete user + description: | + Delete the user from the datasource. Silently succeeds if user is not present. + Note: All memberships associated with the deleted user will also be deleted. + tags: + - Permissions + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/DeleteUserRequest" + required: true + x-exportParamName: DeleteUserRequest + responses: + "200": + description: OK + "400": + description: Bad Request + "401": + description: Not Authorized + "409": + description: Conflict + x-speakeasy-name-override: deleteUser + x-speakeasy-group: indexing.permissions + /api/index/v1/deletegroup: + post: + summary: Delete group + description: | + Delete group from the datasource. Silently succeeds if group is not present. + Note: All memberships associated with the deleted group will also be deleted. + tags: + - Permissions + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/DeleteGroupRequest" + required: true + x-exportParamName: DeleteGroupRequest + responses: + "200": + description: OK + "400": + description: Bad Request + "401": + description: Not Authorized + "409": + description: Conflict + x-speakeasy-name-override: deleteGroup + x-speakeasy-group: indexing.permissions + /api/index/v1/deletemembership: + post: + summary: Delete membership + description: Delete membership to a group in the specified datasource. Silently succeeds if membership is not present. + tags: + - Permissions + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/DeleteMembershipRequest" + required: true + x-exportParamName: DeleteMembershipRequest + responses: + "200": + description: OK + "400": + description: Bad Request + "401": + description: Not Authorized + "409": + description: Conflict + x-speakeasy-name-override: deleteMembership + x-speakeasy-group: indexing.permissions + /api/index/v1/debug/{datasource}/status: + post: + x-beta: true + summary: | + Beta: Get datasource status + description: | + Gather information about the datasource's overall status. Currently in beta, might undergo breaking changes without prior notice. - Tip: Refer to the [Troubleshooting tutorial](https://developers.glean.com/indexing/debugging/datasource-config) for more information. - tags: - - Troubleshooting - parameters: - - name: datasource - in: path - description: The datasource to get debug status for. - required: true - schema: - type: string - responses: - "200": - description: OK - content: - application/json; charset=UTF-8: - schema: - $ref: '#/components/schemas/DebugDatasourceStatusResponse' - "400": - description: Bad Request - "401": - description: Not Authorized - x-beta: true - x-speakeasy-name-override: status - x-speakeasy-group: indexing.datasource - /api/index/v1/debug/{datasource}/document: - post: - summary: | - Beta: Get document information - description: | - Gives various information that would help in debugging related to a particular document. Currently in beta, might undergo breaking changes without prior notice. + Tip: Refer to the [Troubleshooting tutorial](https://developers.glean.com/indexing/debugging/datasource-config) for more information. + tags: + - Troubleshooting + parameters: + - name: datasource + in: path + description: The datasource to get debug status for. + required: true + schema: + type: string + responses: + "200": + description: OK + content: + application/json; charset=UTF-8: + schema: + $ref: "#/components/schemas/DebugDatasourceStatusResponse" + "400": + description: Bad Request + "401": + description: Not Authorized + x-speakeasy-name-override: status + x-speakeasy-group: indexing.datasource + /api/index/v1/debug/{datasource}/document: + post: + x-beta: true + summary: | + Beta: Get document information + description: | + Gives various information that would help in debugging related to a particular document. Currently in beta, might undergo breaking changes without prior notice. - Tip: Refer to the [Troubleshooting tutorial](https://developers.glean.com/indexing/debugging/datasource-config) for more information. - tags: - - Troubleshooting - parameters: - - name: datasource - in: path - description: The datasource to which the document belongs - required: true - schema: - type: string - requestBody: - content: - application/json; charset=UTF-8: - schema: - $ref: '#/components/schemas/DebugDocumentRequest' - required: true - x-exportParamName: DebugDocumentRequest - responses: - "200": - description: OK - content: - application/json; charset=UTF-8: - schema: - $ref: '#/components/schemas/DebugDocumentResponse' - "400": - description: Bad Request - "401": - description: Not Authorized - x-beta: true - x-speakeasy-group: indexing.documents - x-speakeasy-name-override: debug - /api/index/v1/debug/{datasource}/documents: - post: - summary: | - Beta: Get information of a batch of documents - description: | - Gives various information that would help in debugging related to a batch of documents. Currently in beta, might undergo breaking changes without prior notice. + Tip: Refer to the [Troubleshooting tutorial](https://developers.glean.com/indexing/debugging/datasource-config) for more information. + tags: + - Troubleshooting + parameters: + - name: datasource + in: path + description: The datasource to which the document belongs + required: true + schema: + type: string + requestBody: + content: + application/json; charset=UTF-8: + schema: + $ref: "#/components/schemas/DebugDocumentRequest" + required: true + x-exportParamName: DebugDocumentRequest + responses: + "200": + description: OK + content: + application/json; charset=UTF-8: + schema: + $ref: "#/components/schemas/DebugDocumentResponse" + "400": + description: Bad Request + "401": + description: Not Authorized + x-speakeasy-group: indexing.documents + x-speakeasy-name-override: debug + /api/index/v1/debug/{datasource}/documents: + post: + x-beta: true + summary: | + Beta: Get information of a batch of documents + description: | + Gives various information that would help in debugging related to a batch of documents. Currently in beta, might undergo breaking changes without prior notice. - Tip: Refer to the [Troubleshooting tutorial](https://developers.glean.com/indexing/debugging/datasource-config) for more information. - tags: - - Troubleshooting - parameters: - - name: datasource - in: path - description: The datasource to which the document belongs - required: true - schema: - type: string - requestBody: - content: - application/json; charset=UTF-8: - schema: - $ref: '#/components/schemas/DebugDocumentsRequest' - required: true - x-exportParamName: DebugDocumentsRequest - responses: - "200": - description: OK - content: - application/json; charset=UTF-8: - schema: - $ref: '#/components/schemas/DebugDocumentsResponse' - "400": - description: Bad Request - "401": - description: Not Authorized - x-beta: true - x-speakeasy-group: indexing.documents - x-speakeasy-name-override: debugMany - /api/index/v1/debug/{datasource}/user: - post: - summary: | - Beta: Get user information - description: | - Gives various information that would help in debugging related to a particular user. Currently in beta, might undergo breaking changes without prior notice. + Tip: Refer to the [Troubleshooting tutorial](https://developers.glean.com/indexing/debugging/datasource-config) for more information. + tags: + - Troubleshooting + parameters: + - name: datasource + in: path + description: The datasource to which the document belongs + required: true + schema: + type: string + requestBody: + content: + application/json; charset=UTF-8: + schema: + $ref: "#/components/schemas/DebugDocumentsRequest" + required: true + x-exportParamName: DebugDocumentsRequest + responses: + "200": + description: OK + content: + application/json; charset=UTF-8: + schema: + $ref: "#/components/schemas/DebugDocumentsResponse" + "400": + description: Bad Request + "401": + description: Not Authorized + x-speakeasy-group: indexing.documents + x-speakeasy-name-override: debugMany + /api/index/v1/debug/{datasource}/user: + post: + x-beta: true + summary: | + Beta: Get user information + description: | + Gives various information that would help in debugging related to a particular user. Currently in beta, might undergo breaking changes without prior notice. - Tip: Refer to the [Troubleshooting tutorial](https://developers.glean.com/indexing/debugging/datasource-config) for more information. - tags: - - Troubleshooting - parameters: - - name: datasource - in: path - description: The datasource to which the user belongs - required: true - schema: - type: string - requestBody: - content: - application/json; charset=UTF-8: - schema: - $ref: '#/components/schemas/DebugUserRequest' - required: true - x-exportParamName: DebugUserRequest - responses: - "200": - description: OK - content: - application/json; charset=UTF-8: - schema: - $ref: '#/components/schemas/DebugUserResponse' - "400": - description: Bad Request - "401": - description: Not Authorized - x-beta: true - x-speakeasy-name-override: debug - x-speakeasy-group: indexing.people - /api/index/v1/checkdocumentaccess: - post: - summary: Check document access - description: | - Check if a given user has access to access a document in a custom datasource + Tip: Refer to the [Troubleshooting tutorial](https://developers.glean.com/indexing/debugging/datasource-config) for more information. + tags: + - Troubleshooting + parameters: + - name: datasource + in: path + description: The datasource to which the user belongs + required: true + schema: + type: string + requestBody: + content: + application/json; charset=UTF-8: + schema: + $ref: "#/components/schemas/DebugUserRequest" + required: true + x-exportParamName: DebugUserRequest + responses: + "200": + description: OK + content: + application/json; charset=UTF-8: + schema: + $ref: "#/components/schemas/DebugUserResponse" + "400": + description: Bad Request + "401": + description: Not Authorized + x-speakeasy-name-override: debug + x-speakeasy-group: indexing.people + /api/index/v1/checkdocumentaccess: + post: + summary: Check document access + description: | + Check if a given user has access to access a document in a custom datasource - Tip: Refer to the [Troubleshooting tutorial](https://developers.glean.com/indexing/debugging/datasource-config) for more information. - tags: - - Troubleshooting - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/CheckDocumentAccessRequest' - required: true - x-exportParamName: CheckDocumentAccessRequest - responses: - "200": - description: OK - content: - application/json: - schema: - $ref: '#/components/schemas/CheckDocumentAccessResponse' - "400": - description: Bad Request - "401": - description: Not Authorized - "429": - description: Too Many Requests - x-speakeasy-group: indexing.documents - x-speakeasy-name-override: checkAccess - /api/index/v1/getdocumentstatus: - post: - summary: Get document upload and indexing status - description: | - Intended for debugging/validation. Fetches the current upload and indexing status of documents. + Tip: Refer to the [Troubleshooting tutorial](https://developers.glean.com/indexing/debugging/datasource-config) for more information. + tags: + - Troubleshooting + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/CheckDocumentAccessRequest" + required: true + x-exportParamName: CheckDocumentAccessRequest + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/CheckDocumentAccessResponse" + "400": + description: Bad Request + "401": + description: Not Authorized + "429": + description: Too Many Requests + x-speakeasy-group: indexing.documents + x-speakeasy-name-override: checkAccess + /api/index/v1/getdocumentstatus: + post: + deprecated: true + summary: Get document upload and indexing status + description: | + Intended for debugging/validation. Fetches the current upload and indexing status of documents. - Tip: Use [/debug/{datasource}/document](https://developers.glean.com/indexing/debugging/datasource-document) for richer information. - tags: - - Troubleshooting - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/GetDocumentStatusRequest' - required: true - x-exportParamName: GetDocumentStatusRequest - responses: - "200": - description: OK - content: - application/json: - schema: - $ref: '#/components/schemas/GetDocumentStatusResponse' - "400": - description: Bad Request - "401": - description: Not Authorized - "429": - description: Too Many Requests - deprecated: true - x-speakeasy-group: indexing.documents - x-speakeasy-name-override: status - /api/index/v1/getdocumentcount: - post: - summary: Get document count - description: | - Fetches document count for the specified custom datasource. + Tip: Use [/debug/{datasource}/document](https://developers.glean.com/indexing/debugging/datasource-document) for richer information. + tags: + - Troubleshooting + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/GetDocumentStatusRequest" + required: true + x-exportParamName: GetDocumentStatusRequest + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/GetDocumentStatusResponse" + "400": + description: Bad Request + "401": + description: Not Authorized + "429": + description: Too Many Requests + x-speakeasy-group: indexing.documents + x-speakeasy-name-override: status + /api/index/v1/getdocumentcount: + post: + deprecated: true + summary: Get document count + description: | + Fetches document count for the specified custom datasource. - Tip: Use [/debug/{datasource}/status](https://developers.glean.com/indexing/debugging/datasource-status) for richer information. - tags: - - Troubleshooting - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/GetDocumentCountRequest' - required: true - x-exportParamName: GetDocumentCountRequest - responses: - "200": - description: OK - content: - application/json: - schema: - $ref: '#/components/schemas/GetDocumentCountResponse' - "400": - description: Bad Request - "401": - description: Not Authorized - "409": - description: Conflict - deprecated: true - x-speakeasy-group: indexing.documents - x-speakeasy-name-override: count - /api/index/v1/getusercount: - post: - summary: Get user count - description: | - Fetches user count for the specified custom datasource. + Tip: Use [/debug/{datasource}/status](https://developers.glean.com/indexing/debugging/datasource-status) for richer information. + tags: + - Troubleshooting + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/GetDocumentCountRequest" + required: true + x-exportParamName: GetDocumentCountRequest + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/GetDocumentCountResponse" + "400": + description: Bad Request + "401": + description: Not Authorized + "409": + description: Conflict + x-speakeasy-group: indexing.documents + x-speakeasy-name-override: count + /api/index/v1/getusercount: + post: + deprecated: true + summary: Get user count + description: | + Fetches user count for the specified custom datasource. - Tip: Use [/debug/{datasource}/status](https://developers.glean.com/indexing/debugging/datasource-status) for richer information. - tags: - - Troubleshooting - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/GetUserCountRequest' - required: true - x-exportParamName: GetUserCountRequest - responses: - "200": - description: OK - content: - application/json: - schema: - $ref: '#/components/schemas/GetUserCountResponse' - "400": - description: Bad Request - "401": - description: Not Authorized - "409": - description: Conflict - deprecated: true - x-speakeasy-name-override: count - x-speakeasy-group: indexing.people - /api/index/v1/betausers: - post: - summary: Beta users - description: Allow the datasource be visible to the specified beta users. The default behaviour is datasource being visible to all users if it is enabled and not visible to any user if it is not enabled. - tags: - - Permissions - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/GreenlistUsersRequest' - required: true - x-exportParamName: GreenlistUsersRequest - responses: - "200": - description: OK - "400": - description: Bad Request - "401": - description: Not Authorized - "409": - description: Conflict - x-speakeasy-name-override: authorizeBetaUsers - x-speakeasy-group: indexing.permissions - /api/index/v1/adddatasource: - post: - summary: Add or update datasource - description: Add or update a custom datasource and its schema. - tags: - - Datasources - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/CustomDatasourceConfig' - required: true - x-exportParamName: DatasourceConfig - responses: - "200": - description: OK - "400": - description: Bad Request - "401": - description: Not Authorized - x-speakeasy-name-override: add - x-speakeasy-group: indexing.datasources - /api/index/v1/getdatasourceconfig: - post: - summary: Get datasource config - description: Fetches the datasource config for the specified custom datasource. - tags: - - Datasources - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/GetDatasourceConfigRequest' - required: true - x-exportParamName: GetDatasourceConfigRequest - responses: - "200": - description: OK - content: - application/json: - schema: - $ref: '#/components/schemas/CustomDatasourceConfig' - "400": - description: Bad Request - "401": - description: Not Authorized - "409": - description: Conflict - x-speakeasy-name-override: retrieveConfig - x-speakeasy-group: indexing.datasources - /api/index/v1/rotatetoken: - post: - summary: Rotate token - description: Rotates the secret value inside the Indexing API token and returns the new raw secret. All other properties of the token are unchanged. In order to rotate the secret value, include the token as the bearer token in the `/rotatetoken` request. Please refer to [Token rotation](https://developers.glean.com/indexing/authentication/token-rotation) documentation for more information. - tags: - - Authentication - responses: - "200": - description: OK - content: - application/json: - schema: - $ref: '#/components/schemas/RotateTokenResponse' - "400": - description: Bad Request - "401": - description: Not Authorized - x-speakeasy-name-override: rotateToken - x-speakeasy-group: indexing.authentication - /api/index/v1/indexemployee: - post: - summary: Index employee - description: Adds an employee or updates information about an employee - tags: - - People - requestBody: - content: - application/json; charset=UTF-8: - schema: - $ref: '#/components/schemas/IndexEmployeeRequest' - required: true - x-exportParamName: IndexEmployeeRequest - responses: - "200": - description: OK - "400": - description: Bad Request - "401": - description: Not Authorized - "409": - description: Conflict - x-speakeasy-name-override: index - x-speakeasy-group: indexing.people - /api/index/v1/bulkindexemployees: - post: - summary: Bulk index employees - description: Replaces all the currently indexed employees using paginated batch API calls. Please refer to the [bulk indexing](https://developers.glean.com/indexing/documents/bulk-upload-model) documentation for an explanation of how to use bulk endpoints. - tags: - - People - requestBody: - content: - application/json; charset=UTF-8: - schema: - $ref: '#/components/schemas/BulkIndexEmployeesRequest' - required: true - x-exportParamName: BulkIndexEmployeesRequest - responses: - "200": - description: OK - "400": - description: Bad Request - "401": - description: Not Authorized - "409": - description: Conflict - x-speakeasy-name-override: bulkIndex - x-speakeasy-group: indexing.people - /api/index/v1/indexemployeelist: {} - /api/index/v1/processallemployeesandteams: - post: - summary: Schedules the processing of uploaded employees and teams - description: | - Schedules the immediate processing of employees and teams uploaded through the indexing API. By default all uploaded people data will be processed asynchronously but this API can be used to schedule its processing on demand. - tags: - - People - responses: - "200": - description: OK - "400": - description: Bad Request - "401": - description: Not Authorized - "429": - description: Too Many Requests - x-speakeasy-name-override: processAllEmployeesAndTeams - x-speakeasy-group: indexing.people - /api/index/v1/deleteemployee: - post: - summary: Delete employee - description: Delete an employee. Silently succeeds if employee is not present. - tags: - - People - requestBody: - content: - application/json; charset=UTF-8: - schema: - $ref: '#/components/schemas/DeleteEmployeeRequest' - required: true - x-exportParamName: DeleteEmployeeRequest - responses: - "200": - description: OK - "400": - description: Bad Request - "401": - description: Not Authorized - "409": - description: Conflict - x-speakeasy-name-override: delete - x-speakeasy-group: indexing.people - /api/index/v1/indexteam: - post: - summary: Index team - description: Adds a team or updates information about a team - tags: - - People - requestBody: - content: - application/json; charset=UTF-8: - schema: - $ref: '#/components/schemas/IndexTeamRequest' - required: true - x-exportParamName: IndexTeamRequest - responses: - "200": - description: OK - "400": - description: Bad Request - "401": - description: Not Authorized - "409": - description: Conflict - x-speakeasy-name-override: indexTeam - x-speakeasy-group: indexing.people - /api/index/v1/deleteteam: - post: - summary: Delete team - description: Delete a team based on provided id. - tags: - - People - requestBody: - content: - application/json; charset=UTF-8: - schema: - $ref: '#/components/schemas/DeleteTeamRequest' - required: true - x-exportParamName: DeleteTeamRequest - responses: - "200": - description: OK - "400": - description: Bad Request - "401": - description: Not Authorized - "409": - description: Conflict - x-speakeasy-name-override: deleteTeam - x-speakeasy-group: indexing.people - /api/index/v1/bulkindexteams: - post: - summary: Bulk index teams - description: Replaces all the currently indexed teams using paginated batch API calls. Please refer to the [bulk indexing](https://developers.glean.com/indexing/documents/bulk-upload-model) documentation for an explanation of how to use bulk endpoints. - tags: - - People - requestBody: - content: - application/json; charset=UTF-8: - schema: - $ref: '#/components/schemas/BulkIndexTeamsRequest' - required: true - x-exportParamName: BulkIndexTeamsRequest - responses: - "200": - description: OK - "400": - description: Bad Request - "401": - description: Not Authorized - "409": - description: Conflict - x-speakeasy-name-override: bulkIndexTeams - x-speakeasy-group: indexing.people - /api/index/v1/bulkindexshortcuts: - post: - summary: Bulk index external shortcuts - description: Replaces all the currently indexed shortcuts using paginated batch API calls. Note that this endpoint is used for indexing shortcuts not hosted by Glean. If you want to upload shortcuts that would be hosted by Glean, please use the `/uploadshortcuts` endpoint. For information on what you can do with Golinks, which are Glean-hosted shortcuts, please refer to [this](https://help.glean.com/en/articles/5628838-how-go-links-work) page. - tags: - - Shortcuts - requestBody: - content: - application/json; charset=UTF-8: - schema: - $ref: '#/components/schemas/BulkIndexShortcutsRequest' - required: true - x-exportParamName: BulkIndexShortcutsRequest - responses: - "200": - description: OK - "400": - description: Bad Request - "401": - description: Not Authorized - "409": - description: Conflict - x-speakeasy-name-override: bulkIndex - x-speakeasy-group: indexing.shortcuts - /api/index/v1/uploadshortcuts: - post: - summary: Upload shortcuts - description: Creates glean shortcuts for uploaded shortcuts info. Glean would host the shortcuts, and they can be managed in the knowledge tab once uploaded. - tags: - - Shortcuts - requestBody: - content: - application/json; charset=UTF-8: - schema: - $ref: '#/components/schemas/UploadShortcutsRequest' - required: true - x-exportParamName: UploadShortcutsRequest - responses: - "200": - description: OK - "400": - description: Bad Request - "401": - description: Not Authorized - "409": - description: Conflict - x-speakeasy-name-override: upload - x-speakeasy-group: indexing.shortcuts - /rest/api/v1/governance/data/policies/{id}: - get: - operationId: getpolicy - summary: Gets specified policy - description: Fetches the specified policy version, or the latest if no version is provided. - tags: - - Governance - parameters: - - name: id - in: path - description: The id of the policy to fetch. - required: true - schema: + Tip: Use [/debug/{datasource}/status](https://developers.glean.com/indexing/debugging/datasource-status) for richer information. + tags: + - Troubleshooting + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/GetUserCountRequest" + required: true + x-exportParamName: GetUserCountRequest + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/GetUserCountResponse" + "400": + description: Bad Request + "401": + description: Not Authorized + "409": + description: Conflict + x-speakeasy-name-override: count + x-speakeasy-group: indexing.people + /api/index/v1/betausers: + post: + summary: Beta users + description: Allow the datasource be visible to the specified beta users. The default behaviour is datasource being visible to all users if it is enabled and not visible to any user if it is not enabled. + tags: + - Permissions + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/GreenlistUsersRequest" + required: true + x-exportParamName: GreenlistUsersRequest + responses: + "200": + description: OK + "400": + description: Bad Request + "401": + description: Not Authorized + "409": + description: Conflict + x-speakeasy-name-override: authorizeBetaUsers + x-speakeasy-group: indexing.permissions + /api/index/v1/adddatasource: + post: + summary: Add or update datasource + description: Add or update a custom datasource and its schema. + tags: + - Datasources + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/CustomDatasourceConfig" + required: true + x-exportParamName: DatasourceConfig + responses: + "200": + description: OK + "400": + description: Bad Request + "401": + description: Not Authorized + x-speakeasy-name-override: add + x-speakeasy-group: indexing.datasources + /api/index/v1/getdatasourceconfig: + post: + summary: Get datasource config + description: Fetches the datasource config for the specified custom datasource. + tags: + - Datasources + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/GetDatasourceConfigRequest" + required: true + x-exportParamName: GetDatasourceConfigRequest + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/CustomDatasourceConfig" + "400": + description: Bad Request + "401": + description: Not Authorized + "409": + description: Conflict + x-speakeasy-name-override: retrieveConfig + x-speakeasy-group: indexing.datasources + /api/index/v1/rotatetoken: + post: + summary: Rotate token + description: Rotates the secret value inside the Indexing API token and returns the new raw secret. All other properties of the token are unchanged. In order to rotate the secret value, include the token as the bearer token in the `/rotatetoken` request. Please refer to [Token rotation](https://developers.glean.com/indexing/authentication/token-rotation) documentation for more information. + tags: + - Authentication + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/RotateTokenResponse" + "400": + description: Bad Request + "401": + description: Not Authorized + x-speakeasy-name-override: rotateToken + x-speakeasy-group: indexing.authentication + /api/index/v1/indexemployee: + post: + summary: Index employee + description: Adds an employee or updates information about an employee + tags: + - People + requestBody: + content: + application/json; charset=UTF-8: + schema: + $ref: "#/components/schemas/IndexEmployeeRequest" + required: true + x-exportParamName: IndexEmployeeRequest + responses: + "200": + description: OK + "400": + description: Bad Request + "401": + description: Not Authorized + "409": + description: Conflict + x-speakeasy-name-override: index + x-speakeasy-group: indexing.people + /api/index/v1/bulkindexemployees: + post: + summary: Bulk index employees + description: Replaces all the currently indexed employees using paginated batch API calls. Please refer to the [bulk indexing](https://developers.glean.com/indexing/documents/bulk-upload-model) documentation for an explanation of how to use bulk endpoints. + tags: + - People + requestBody: + content: + application/json; charset=UTF-8: + schema: + $ref: "#/components/schemas/BulkIndexEmployeesRequest" + required: true + x-exportParamName: BulkIndexEmployeesRequest + responses: + "200": + description: OK + "400": + description: Bad Request + "401": + description: Not Authorized + "409": + description: Conflict + x-glean-deprecated: + id: ce596f49-55c4-465e-bf3c-5a3a33906e1f + introduced: "2026-02-03" + message: Endpoint is deprecated + removal: "2026-10-15" + x-speakeasy-deprecation-message: "Deprecated on 2026-02-03, removal scheduled for 2026-10-15: Endpoint is deprecated" + deprecated: true + x-speakeasy-name-override: bulkIndex + x-speakeasy-group: indexing.people + /api/index/v1/indexemployeelist: {} + /api/index/v1/processallemployeesandteams: + post: + summary: Schedules the processing of uploaded employees and teams + description: | + Schedules the immediate processing of employees and teams uploaded through the indexing API. By default all uploaded people data will be processed asynchronously but this API can be used to schedule its processing on demand. + tags: + - People + responses: + "200": + description: OK + "400": + description: Bad Request + "401": + description: Not Authorized + "429": + description: Too Many Requests + x-speakeasy-name-override: processAllEmployeesAndTeams + x-speakeasy-group: indexing.people + /api/index/v1/deleteemployee: + post: + summary: Delete employee + description: Delete an employee. Silently succeeds if employee is not present. + tags: + - People + requestBody: + content: + application/json; charset=UTF-8: + schema: + $ref: "#/components/schemas/DeleteEmployeeRequest" + required: true + x-exportParamName: DeleteEmployeeRequest + responses: + "200": + description: OK + "400": + description: Bad Request + "401": + description: Not Authorized + "409": + description: Conflict + x-speakeasy-name-override: delete + x-speakeasy-group: indexing.people + /api/index/v1/indexteam: + post: + summary: Index team + description: Adds a team or updates information about a team + tags: + - People + requestBody: + content: + application/json; charset=UTF-8: + schema: + $ref: "#/components/schemas/IndexTeamRequest" + required: true + x-exportParamName: IndexTeamRequest + responses: + "200": + description: OK + "400": + description: Bad Request + "401": + description: Not Authorized + "409": + description: Conflict + x-speakeasy-name-override: indexTeam + x-speakeasy-group: indexing.people + /api/index/v1/deleteteam: + post: + summary: Delete team + description: Delete a team based on provided id. + tags: + - People + requestBody: + content: + application/json; charset=UTF-8: + schema: + $ref: "#/components/schemas/DeleteTeamRequest" + required: true + x-exportParamName: DeleteTeamRequest + responses: + "200": + description: OK + "400": + description: Bad Request + "401": + description: Not Authorized + "409": + description: Conflict + x-speakeasy-name-override: deleteTeam + x-speakeasy-group: indexing.people + /api/index/v1/bulkindexteams: + post: + summary: Bulk index teams + description: Replaces all the currently indexed teams using paginated batch API calls. Please refer to the [bulk indexing](https://developers.glean.com/indexing/documents/bulk-upload-model) documentation for an explanation of how to use bulk endpoints. + tags: + - People + requestBody: + content: + application/json; charset=UTF-8: + schema: + $ref: "#/components/schemas/BulkIndexTeamsRequest" + required: true + x-exportParamName: BulkIndexTeamsRequest + responses: + "200": + description: OK + "400": + description: Bad Request + "401": + description: Not Authorized + "409": + description: Conflict + x-speakeasy-name-override: bulkIndexTeams + x-speakeasy-group: indexing.people + /api/index/v1/bulkindexshortcuts: + post: + summary: Bulk index external shortcuts + description: Replaces all the currently indexed shortcuts using paginated batch API calls. Note that this endpoint is used for indexing shortcuts not hosted by Glean. If you want to upload shortcuts that would be hosted by Glean, please use the `/uploadshortcuts` endpoint. For information on what you can do with Golinks, which are Glean-hosted shortcuts, please refer to [this](https://help.glean.com/en/articles/5628838-how-go-links-work) page. + tags: + - Shortcuts + requestBody: + content: + application/json; charset=UTF-8: + schema: + $ref: "#/components/schemas/BulkIndexShortcutsRequest" + required: true + x-exportParamName: BulkIndexShortcutsRequest + responses: + "200": + description: OK + "400": + description: Bad Request + "401": + description: Not Authorized + "409": + description: Conflict + x-speakeasy-name-override: bulkIndex + x-speakeasy-group: indexing.shortcuts + /api/index/v1/uploadshortcuts: + post: + summary: Upload shortcuts + description: Creates glean shortcuts for uploaded shortcuts info. Glean would host the shortcuts, and they can be managed in the knowledge tab once uploaded. + tags: + - Shortcuts + requestBody: + content: + application/json; charset=UTF-8: + schema: + $ref: "#/components/schemas/UploadShortcutsRequest" + required: true + x-exportParamName: UploadShortcutsRequest + responses: + "200": + description: OK + "400": + description: Bad Request + "401": + description: Not Authorized + "409": + description: Conflict + x-speakeasy-name-override: upload + x-speakeasy-group: indexing.shortcuts + /rest/api/v1/governance/data/policies/{id}: + get: + description: Fetches the specified policy version, or the latest if no version is provided. + summary: Gets specified policy + operationId: getpolicy + x-visibility: Public + tags: + - Governance + parameters: + - name: id + in: path + description: The id of the policy to fetch. + required: true + schema: + type: string + - name: version + in: query + description: The version of the policy to fetch. Each time a policy is updated, the older version is still stored. If this is left empty, the latest policy is fetched. + required: false + schema: + type: integer + format: int64 + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/GetDlpReportResponse" + "403": + description: Permissions error + "500": + description: Internal error + x-speakeasy-group: client.governance.data.policies + x-speakeasy-name-override: retrieve + post: + description: Updates an existing policy. + summary: Updates an existing policy + operationId: updatepolicy + tags: + - Governance + parameters: + - name: id + in: path + description: The id of the policy to fetch. + required: true + schema: + type: string + requestBody: + content: + application/json; charset=UTF-8: + schema: + $ref: "#/components/schemas/UpdateDlpReportRequest" + required: true + responses: + "200": + description: OK + content: + application/json; charset=UTF-8: + schema: + $ref: "#/components/schemas/UpdateDlpReportResponse" + "403": + description: Permissions error + "500": + description: Internal error + x-speakeasy-group: client.governance.data.policies + x-speakeasy-name-override: update + /rest/api/v1/governance/data/policies: + get: + description: Lists policies with filtering. + summary: Lists policies + operationId: listpolicies + x-visibility: Public + tags: + - Governance + parameters: + - name: autoHide + in: query + description: Filter to return reports with a given value of auto-hide. + required: false + schema: + type: boolean + - name: frequency + in: query + description: Filter to return reports with a given frequency. + required: false + schema: + type: string + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/ListDlpReportsResponse" + "403": + description: Permissions error + "500": + description: Internal error + x-speakeasy-group: client.governance.data.policies + x-speakeasy-name-override: list + post: + description: Creates a new policy with specified specifications and returns its id. + summary: Creates new policy + operationId: createpolicy + x-visibility: Public + tags: + - Governance + requestBody: + content: + application/json; charset=UTF-8: + schema: + $ref: "#/components/schemas/CreateDlpReportRequest" + required: true + responses: + "200": + description: OK + content: + application/json; charset=UTF-8: + schema: + $ref: "#/components/schemas/CreateDlpReportResponse" + "403": + description: Permissions error + "500": + description: Internal error + x-speakeasy-group: client.governance.data.policies + x-speakeasy-name-override: create + /rest/api/v1/governance/data/policies/{id}/download: + get: + description: Downloads CSV violations report for a specific policy id. This does not support continuous policies. + summary: Downloads violations CSV for policy + operationId: downloadpolicycsv + x-visibility: Public + tags: + - Governance + parameters: + - name: id + in: path + description: The id of the policy to download violations for. + required: true + schema: + type: string + responses: + "200": + description: Downloads csv of batch policy violations. + content: + text/csv; charset=UTF-8: + 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": + description: Internal error + x-speakeasy-group: client.governance.data.policies + x-speakeasy-name-override: download + /rest/api/v1/governance/data/reports: + post: + description: Creates a new one-time report and executes its batch job. + summary: Creates new one-time report + operationId: createreport + x-visibility: Public + tags: + - Governance + requestBody: + content: + application/json; charset=UTF-8: + schema: + $ref: "#/components/schemas/UpdateDlpConfigRequest" + required: true + responses: + "200": + description: OK + content: + application/json; charset=UTF-8: + schema: + $ref: "#/components/schemas/UpdateDlpConfigResponse" + "403": + description: Permissions error + "500": + description: Internal error + x-speakeasy-group: client.governance.data.reports + x-speakeasy-name-override: create + /rest/api/v1/governance/data/reports/{id}/download: + get: + description: Downloads CSV violations report for a specific report id. + summary: Downloads violations CSV for report + operationId: downloadreportcsv + x-visibility: Public + tags: + - Governance + parameters: + - name: id + in: path + description: The id of the report to download violations for. + required: true + schema: + type: string + responses: + "200": + description: Downloads csv of one-time report violations. + content: + text/csv; charset=UTF-8: + schema: + description: CSV of all the violations found for this report. + type: string + "403": + description: Permissions error + "500": + description: Internal error + x-speakeasy-group: client.governance.data.reports + x-speakeasy-name-override: download + /rest/api/v1/governance/data/reports/{id}/status: + get: + description: Fetches the status of the run corresponding to the report-id. + summary: Fetches report run status + operationId: getreportstatus + x-visibility: Public + tags: + - Governance + parameters: + - name: id + in: path + description: The id of the report to get run status for. + required: true + schema: + type: string + responses: + "200": + description: Fetches status of report run. + content: + application/json; charset=UTF-8: + schema: + $ref: "#/components/schemas/ReportStatusResponse" + "403": + description: Permissions error + "500": + description: Internal error + x-speakeasy-group: client.governance.data.reports + x-speakeasy-name-override: status + /rest/api/v1/governance/documents/visibilityoverrides: + get: + description: Fetches the visibility override status of the documents passed. + summary: Fetches documents visibility + operationId: getdocvisibility + x-visibility: Public + tags: + - Governance + parameters: + - name: docIds + in: query + description: List of doc-ids which will have their hide status fetched. + schema: + type: array + items: + type: string + responses: + "200": + description: The visibility status of documents + content: + application/json; charset=UTF-8: + schema: + $ref: "#/components/schemas/GetDocumentVisibilityOverridesResponse" + "403": + description: Permissions error + "500": + description: Internal error + x-speakeasy-group: client.governance.documents.visibilityoverrides + x-speakeasy-name-override: list + post: + description: Sets the visibility-override state of the documents specified, effectively hiding or un-hiding documents. + summary: Hide or unhide docs + operationId: setdocvisibility + x-visibility: Public + tags: + - Governance + requestBody: + content: + application/json; charset=UTF-8: + schema: + $ref: "#/components/schemas/UpdateDocumentVisibilityOverridesRequest" + required: true + responses: + "200": + description: OK + content: + application/json; charset=UTF-8: + schema: + $ref: "#/components/schemas/UpdateDocumentVisibilityOverridesResponse" + "403": + description: Permissions error + "500": + description: Internal error + x-speakeasy-group: client.governance.documents.visibilityoverrides + x-speakeasy-name-override: create + /rest/api/v1/governance/data/findings/exports: + post: + description: Creates a new DLP findings export job. + summary: Creates findings export + operationId: createfindingsexport + x-visibility: Public + tags: + - Governance + requestBody: + content: + application/json; charset=UTF-8: + schema: + $ref: "#/components/schemas/DlpExportFindingsRequest" + required: true + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/ExportInfo" + "403": + description: Permissions error + "500": + description: Internal error + get: + description: Lists all DLP findings exports. + summary: Lists findings exports + operationId: listfindingsexports + x-visibility: Public + tags: + - Governance + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/ListDlpFindingsExportsResponse" + "403": + description: Permissions error + "500": + description: Internal error + /rest/api/v1/governance/data/findings/exports/{id}: + get: + description: Downloads a DLP findings export as a CSV file. + summary: Downloads findings export + operationId: downloadfindingsexport + x-visibility: Public + tags: + - Governance + parameters: + - name: id + in: path + description: The ID of the export to download. + required: true + schema: + type: string + responses: + "200": + description: Downloads CSV of exported findings. + content: + text/csv; charset=UTF-8: + schema: + description: CSV of all the exported findings. + type: string + "403": + description: Permissions error + "500": + description: Internal error + delete: + description: Deletes a DLP findings export. + summary: Deletes findings export + operationId: deletefindingsexport + x-visibility: Public + tags: + - Governance + parameters: + - name: id + in: path + description: The ID of the export to delete. + required: true + schema: + type: integer + format: int64 + responses: + "200": + description: OK + "403": + description: Permissions error + "500": + description: Internal error + /rest/api/v1/configure/datasources/{datasourceId}/instances/{instanceId}: + get: + description: | + Gets the greenlisted configuration values for a datasource instance. Returns only configuration keys that are exposed via the public API greenlist. + summary: Get datasource instance configuration + operationId: getDatasourceInstanceConfiguration + x-visibility: Preview + tags: + - Datasources + parameters: + - $ref: "#/components/parameters/datasourceId" + - $ref: "#/components/parameters/instanceId" + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/DatasourceConfigurationResponse" + "400": + description: Invalid request + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorResponse" + "401": + description: Not authorized + "403": + description: Forbidden + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorResponse" + "404": + description: Datasource instance not found + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorResponse" + patch: + description: | + Updates the greenlisted configuration values for a datasource instance. Only configuration keys that are exposed via the public API greenlist may be set. Returns the full greenlisted configuration after the update is applied. + summary: Update datasource instance configuration + operationId: updateDatasourceInstanceConfiguration + x-visibility: Preview + tags: + - Datasources + parameters: + - $ref: "#/components/parameters/datasourceId" + - $ref: "#/components/parameters/instanceId" + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/UpdateDatasourceConfigurationRequest" + required: true + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/DatasourceConfigurationResponse" + "400": + description: Invalid request + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorResponse" + "401": + description: Not authorized + "403": + description: Forbidden + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorResponse" + "404": + description: Datasource instance not found + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorResponse" + /rest/api/v1/chat#stream: + post: + tags: + - Chat + summary: Chat + description: Have a conversation with Glean AI. + operationId: chatStream + x-visibility: Public + x-codegen-request-body-name: payload + parameters: + - $ref: '#/components/parameters/timezoneOffset' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ChatRequest' + examples: + defaultExample: + value: + messages: + - author: USER + messageType: CONTENT + fragments: + - text: What are the company holidays this year? + gptAgentExample: + value: + agentConfig: + agent: GPT + messages: + - author: USER + messageType: CONTENT + fragments: + - text: Who was the first person to land on the moon? + description: Includes chat history for Glean AI to respond to. + required: true + x-exportParamName: Request + responses: + '200': + description: OK + content: + text/plain: + schema: + $ref: '#/components/schemas/ChatRequestStream' + examples: + defaultExample: + value: + messages: + - author: GLEAN_AI + messageType: CONTENT + hasMoreFragments: false + agentConfig: + agent: DEFAULT + mode: DEFAULT + fragments: + - text: There are no holidays! + streamingExample: + value: + messages: + - author: GLEAN_AI + messageType: CONTENT + agentConfig: + agent: DEFAULT + mode: DEFAULT + hasMoreFragments: true + fragments: null + - author: GLEAN_AI + messageType: CONTENT + agentConfig: + agent: DEFAULT + mode: DEFAULT + hasMoreFragments: true + fragments: null + - author: GLEAN_AI + messageType: CONTENT + agentConfig: + agent: DEFAULT + mode: DEFAULT + hasMoreFragments: true + fragments: + - text: e are + - author: GLEAN_AI + messageType: CONTENT + agentConfig: + agent: DEFAULT + mode: DEFAULT + hasMoreFragments: true + fragments: + - text: no hol + - author: GLEAN_AI + messageType: CONTENT + agentConfig: + agent: DEFAULT + mode: DEFAULT + hasMoreFragments: false + fragments: + - text: idays! + updateResponse: + value: + messages: + - author: GLEAN_AI + messageType: UPDATE + agentConfig: + agent: DEFAULT + mode: DEFAULT + fragments: + - text: '**Reading:**' + - structuredResults: + - document: + id: '123' + title: Company Handbook + citationResponse: + value: + messages: + - author: GLEAN_AI + messageType: CONTENT + agentConfig: + agent: DEFAULT + mode: DEFAULT + citations: + - sourceDocument: + id: '123' + title: Company Handbook + referenceRanges: + - textRange: + startIndex: 0 + endIndex: 12 + type: CITATION + '400': + description: Invalid request + '401': + description: Not Authorized + '408': + description: Request Timeout + '429': + description: Too Many Requests + x-speakeasy-group: client.chat + x-speakeasy-name-override: createStream + x-speakeasy-usage-example: true +components: + securitySchemes: + APIToken: + scheme: bearer + type: http + schemas: + ActivityEventParams: + properties: + bodyContent: + description: The HTML content of the page body. + type: string + datasourceInstance: + type: string + description: The full datasource instance name inferred from the URL of the event + datasource: + type: string + description: The datasource without the instance inferred from the URL of the event + instanceOnlyName: + type: string + description: The instance only name of the datasource instance, e.g. 1 for jira_1, inferred from the URL of the event + duration: + description: Length in seconds of the activity. For VIEWS, this represents the amount the page was visible in the foreground. + type: integer + query: + description: The user's search query associated with a SEARCH. + type: string + referrer: + description: The referring URL of the VIEW or SEARCH. + type: string + title: + description: The page title associated with the URL of the event + type: string + truncated: + description: Indicates that the parameters are incomplete and more parameters may be sent with the same action+timestamp+URL in the future. This is used for sending the duration when a `VIEW` is finished. + type: boolean + ActivityEvent: + required: + - action + - source + - timestamp + - url + properties: + id: + type: string + description: Universally unique identifier of the event. To allow for reliable retransmission, only the earliest received event of a given UUID is considered valid by the server and subsequent are ignored. + action: + type: string + description: The type of activity this represents. + x-enumDescriptions: + VIEW: Represents a visit to the given `url`. + EDIT: Represents an edit of the document represented by the `url`. + SEARCH: Represents a search performed at the given `url`. + COMMENT: Represents a comment on the document represented by the `url`. + CRAWL: Represents an explicit request to index the given `url` along with associated attributes in this payload. + HISTORICAL_SEARCH: Represents a search performed at the given `url` as indicated by the user's history. + HISTORICAL_VIEW: Represents a visit to the given `url` as indicated by the user's history. + x-speakeasy-enum-descriptions: + VIEW: Represents a visit to the given `url`. + EDIT: Represents an edit of the document represented by the `url`. + SEARCH: Represents a search performed at the given `url`. + COMMENT: Represents a comment on the document represented by the `url`. + CRAWL: Represents an explicit request to index the given `url` along with associated attributes in this payload. + HISTORICAL_SEARCH: Represents a search performed at the given `url` as indicated by the user's history. + HISTORICAL_VIEW: Represents a visit to the given `url` as indicated by the user's history. + enum: + - VIEW + - EDIT + - SEARCH + - COMMENT + - CRAWL + - HISTORICAL_SEARCH + - HISTORICAL_VIEW + params: + $ref: "#/components/schemas/ActivityEventParams" + timestamp: + type: string + description: The ISO 8601 timestamp when the activity began. + format: date-time + url: + description: The URL of the activity. + type: string + Activity: + required: + - events + properties: + events: + type: array + items: + $ref: "#/components/schemas/ActivityEvent" + example: + events: + - url: https://example.com/ + action: HISTORICAL_VIEW + timestamp: "2000-01-23T04:56:07.000Z" + - url: https://example.com/search?q=query + action: SEARCH + timestamp: "2000-01-23T04:56:07.000Z" + params: + query: query + - url: https://example.com/ + action: VIEW + timestamp: "2000-01-23T04:56:07.000Z" + params: + duration: 20 + referrer: https://example.com/document + SessionInfo: + properties: + sessionTrackingToken: + type: string + description: A unique token for this session. A new session (and token) is created when the user issues a request from a new tab or when our server hasn't seen activity for more than 10 minutes from a tab. + tabId: + type: string + description: A unique id for all requests a user makes from a given tab, no matter how far apart. A new tab id is only generated when a user issues a request from a new tab. + lastSeen: + type: string + format: date-time + description: The last time the server saw this token. + lastQuery: + type: string + description: The last query seen by the server. + User: + properties: + userID: + description: An opaque user ID for the claimed authority (i.e., the actas param, or the origid if actas is not specified). + type: string + origID: + description: An opaque user ID for the authenticated user (ignores actas). + type: string + FeedbackChatExchange: + properties: + timestamp: + type: integer + format: int64 + description: Unix timestamp in millis for the chat request. + agent: + type: string + description: Either DEFAULT (company knowledge) or GPT (world knowledge). + userQuery: + type: string + description: Initial query entered by the user. + searchQuery: + type: string + description: Search query performed by the agent. + resultDocuments: + type: array + description: List of documents read by the agent. + items: + properties: + title: + type: string + url: + type: string + response: + type: string + ManualFeedbackInfo: + properties: + email: + type: string + description: The email address of the user who submitted the Feedback.event.MANUAL_FEEDBACK event. + deprecated: true + source: + type: string + description: The source associated with the Feedback.event.MANUAL_FEEDBACK event. + enum: + - AUTOCOMPLETE + - CALENDAR + - CHAT + - CHAT_GENERAL + - CONCEPT_CARD + - DESKTOP_APP + - DISAMBIGUATION_CARD + - EXPERT_DETECTION + - FEED + - GENERATED_Q_AND_A + - INLINE_MENU + - NATIVE_RESULT + - PRISM + - Q_AND_A + - RELATED_QUESTIONS + - REPORT_ISSUE + - SCIOBOT + - SEARCH + - SIDEBAR + - SUMMARY + - TASKS + - TASK_EXECUTION + issue: + type: string + description: The issue the user indicated in the feedback. + deprecated: true + issues: + type: array + description: The issue(s) the user indicated in the feedback. + items: + type: string + enum: + - INACCURATE_RESPONSE + - INCOMPLETE_OR_NO_ANSWER + - INCORRECT_CITATION + - MISSING_CITATION + - OTHER + - OUTDATED_RESPONSE + - RESULT_MISSING + - RESULT_SHOULD_NOT_APPEAR + - RESULTS_HELPFUL + - RESULTS_POOR_ORDER + - TOO_MUCH_ONE_KIND + imageUrls: + type: array + items: + type: string + description: URLs of images uploaded by user when providing feedback + query: + type: string + description: The query associated with the Feedback.event.MANUAL_FEEDBACK event. + obscuredQuery: + type: string + description: The query associated with the Feedback.event.MANUAL_FEEDBACK event, but obscured such that the vowels are replaced with special characters. For search feedback events only. + activeTab: + type: string + description: Which tabs the user had chosen at the time of the Feedback.event.MANUAL_FEEDBACK event. For search feedback events only. + comments: + type: string + description: The comments users can optionally add to the Feedback.event.MANUAL_FEEDBACK events. + searchResults: + type: array + items: + type: string + description: The array of search result Glean Document IDs, ordered by top to bottom result. + previousMessages: + type: array + items: + type: string + description: The array of previous messages in a chat session, ordered by oldest to newest. + chatTranscript: + type: array + items: + $ref: "#/components/schemas/FeedbackChatExchange" + description: Array of previous request/response exchanges, ordered by oldest to newest. + numQueriesFromFirstRun: + type: integer + description: How many times this query has been run in the past. + vote: + type: string + description: The vote associated with the Feedback.event.MANUAL_FEEDBACK event. + enum: + - UPVOTE + - DOWNVOTE + rating: + type: integer + description: A rating associated with the user feedback. The value will be between one and the maximum given by ratingScale, inclusive. + ratingKey: + type: string + description: A description of the rating that contextualizes how it appeared to the user, e.g. "satisfied". + ratingScale: + type: integer + description: The scale of comparison for a rating associated with the feedback. Rating values start from one and go up to the maximum specified by ratingScale. For example, a five-option satisfaction rating will have a ratingScale of 5 and a thumbs-up/thumbs-down rating will have a ratingScale of 2. + SideBySideImplementation: + properties: + implementationId: + type: string + description: Unique identifier for this implementation variant. + implementationName: + type: string + description: Human-readable name for this implementation (e.g., "Variant A", "GPT-4", "Claude"). + searchParams: + type: object + description: The search/chat parameters used for this implementation. + additionalProperties: + type: string + response: + type: string + description: The full response generated by this implementation. + responseMetadata: + type: object + description: Metadata about the response (e.g., latency, token count). + properties: + latencyMs: + type: integer + description: Time taken to generate the response in milliseconds. + tokenCount: + type: integer + description: Number of tokens in the response. + modelUsed: + type: string + description: The specific model version used. + ManualFeedbackSideBySideInfo: + properties: + email: + type: string + description: The email address of the user who submitted the side-by-side feedback. + source: + type: string + description: The source associated with the side-by-side feedback event. + enum: + - LIVE_EVAL + - CHAT + - SEARCH + query: + type: string + description: The query or prompt that was evaluated across multiple implementations. + implementations: + type: array + description: Array of implementations that were compared side-by-side. + items: + $ref: "#/components/schemas/SideBySideImplementation" + evaluationSessionId: + type: string + description: Unique identifier for this evaluation session to group related feedback events. + implementationId: + type: string + description: The ID of the implementation this specific feedback event is for. + vote: + type: string + description: The vote for this specific implementation. + enum: + - UPVOTE + - DOWNVOTE + - NEUTRAL + comments: + type: string + description: Specific feedback comments for this implementation. + SeenFeedbackInfo: + properties: + isExplicit: + type: boolean + description: The confidence of the user seeing the object is high because they explicitly interacted with it e.g. answer impression in SERP with additional user interaction. + UserViewInfo: + properties: + docId: + type: string + description: Unique Glean Document ID of the associated document. + docTitle: + type: string + description: Title of associated document. + docUrl: + type: string + description: URL of associated document. + WorkflowFeedbackInfo: + properties: + source: + type: string + enum: + - ZERO_STATE + - LIBRARY + - HOMEPAGE + description: Where the feedback of the workflow originated from + Feedback: + required: + - event + - trackingTokens + properties: + id: + type: string + description: Universally unique identifier of the event. To allow for reliable retransmission, only the earliest received event of a given UUID is considered valid by the server and subsequent are ignored. + category: + type: string + description: The feature category to which the feedback applies. These should be broad product areas such as Announcements, Answers, Search, etc. rather than specific components or UI treatments within those areas. + enum: + - ANNOUNCEMENT + - AUTOCOMPLETE + - COLLECTIONS + - FEED + - SEARCH + - CHAT + - NTP + - WORKFLOWS + - SUMMARY + - GENERAL + - PRISM + - PROMPTS + trackingTokens: + type: array + description: A list of server-generated trackingTokens to which this event applies. + items: + type: string + event: + type: string + description: The action the user took within a Glean client with respect to the object referred to by the given `trackingToken`. + x-enumDescriptions: + CLICK: The object's primary link was clicked with the intent to view its full representation. Depending on the object type, this may imply an external navigation or navigating to a new page or view within the Glean app. + CONTAINER_CLICK: A link to the object's parent container (e.g. the folder in which it's located) was clicked. + COPY_LINK: The user copied a link to the primary link. + CREATE: The user creates a document. + DISMISS: The user dismissed the object such that it was hidden from view. + DOWNVOTE: The user gave feedback that the object was not useful. + EMAIL: The user attempted to send an email. + EXECUTE: The user executed the object (e.g. ran a workflow). + FILTER: The user applied a filter. + FIRST_TOKEN: The first token of a streaming response is received. + FOCUS_IN: The user clicked into an interactive element, e.g. the search box. + LAST_TOKEN: The final token of a streaming response is received. + MANUAL_FEEDBACK: The user submitted textual manual feedback regarding the object. + MANUAL_FEEDBACK_SIDE_BY_SIDE: The user submitted comparative feedback for multiple side-by-side implementations. + FEEDBACK_TIME_SAVED: The user submitted feedback about time saved by an agent or workflow. + MARK_AS_READ: The user explicitly marked the content as read. + MESSAGE: The user attempted to send a message using their default messaing app. + MIDDLE_CLICK: The user middle clicked the object's primary link with the intent to open its full representation in a new tab. + PAGE_BLUR: The user puts a page out of focus but keeps it in the background. + PAGE_FOCUS: The user puts a page in focus, meaning it is the first to receive keyboard events. + PAGE_LEAVE: The user leaves a page and it is unloaded (by clicking a link, closing the tab/window, etc). + PREVIEW: The user clicked the object's inline preview affordance. + RIGHT_CLICK: The user right clicked the object's primary link. This may indicate an intent to open it in a new tab or copy it. + SECTION_CLICK: The user clicked a link to a subsection of the primary object. + SEEN: The user has likely seen the object (e.g. took action to make the object visible within the user's viewport). + SELECT: The user explicitly selected something, eg. a chat response variant they prefer. + SHARE: The user shared the object with another user. + SHOW_MORE: The user clicked the object's show more affordance. + UPVOTE: The user gave feedback that the object was useful. + VIEW: The object was visible within the user's viewport. + VISIBLE: The object was visible within the user's viewport. + x-speakeasy-enum-descriptions: + CLICK: The object's primary link was clicked with the intent to view its full representation. Depending on the object type, this may imply an external navigation or navigating to a new page or view within the Glean app. + CONTAINER_CLICK: A link to the object's parent container (e.g. the folder in which it's located) was clicked. + COPY_LINK: The user copied a link to the primary link. + CREATE: The user creates a document. + DISMISS: The user dismissed the object such that it was hidden from view. + DOWNVOTE: The user gave feedback that the object was not useful. + EMAIL: The user attempted to send an email. + EXECUTE: The user executed the object (e.g. ran a workflow). + FILTER: The user applied a filter. + FIRST_TOKEN: The first token of a streaming response is received. + FOCUS_IN: The user clicked into an interactive element, e.g. the search box. + LAST_TOKEN: The final token of a streaming response is received. + MANUAL_FEEDBACK: The user submitted textual manual feedback regarding the object. + MANUAL_FEEDBACK_SIDE_BY_SIDE: The user submitted comparative feedback for multiple side-by-side implementations. + FEEDBACK_TIME_SAVED: The user submitted feedback about time saved by an agent or workflow. + MARK_AS_READ: The user explicitly marked the content as read. + MESSAGE: The user attempted to send a message using their default messaing app. + MIDDLE_CLICK: The user middle clicked the object's primary link with the intent to open its full representation in a new tab. + PAGE_BLUR: The user puts a page out of focus but keeps it in the background. + PAGE_FOCUS: The user puts a page in focus, meaning it is the first to receive keyboard events. + PAGE_LEAVE: The user leaves a page and it is unloaded (by clicking a link, closing the tab/window, etc). + PREVIEW: The user clicked the object's inline preview affordance. + RIGHT_CLICK: The user right clicked the object's primary link. This may indicate an intent to open it in a new tab or copy it. + SECTION_CLICK: The user clicked a link to a subsection of the primary object. + SEEN: The user has likely seen the object (e.g. took action to make the object visible within the user's viewport). + SELECT: The user explicitly selected something, eg. a chat response variant they prefer. + SHARE: The user shared the object with another user. + SHOW_MORE: The user clicked the object's show more affordance. + UPVOTE: The user gave feedback that the object was useful. + VIEW: The object was visible within the user's viewport. + VISIBLE: The object was visible within the user's viewport. + enum: + - CLICK + - CONTAINER_CLICK + - COPY_LINK + - CREATE + - DISMISS + - DOWNVOTE + - EMAIL + - EXECUTE + - FILTER + - FIRST_TOKEN + - FOCUS_IN + - LAST_TOKEN + - MANUAL_FEEDBACK + - MANUAL_FEEDBACK_SIDE_BY_SIDE + - FEEDBACK_TIME_SAVED + - MARK_AS_READ + - MESSAGE + - MIDDLE_CLICK + - PAGE_BLUR + - PAGE_FOCUS + - PAGE_LEAVE + - PREVIEW + - RELATED_CLICK + - RIGHT_CLICK + - SECTION_CLICK + - SEEN + - SELECT + - SHARE + - SHOW_MORE + - UPVOTE + - VIEW + - VISIBLE + position: + type: integer + description: Position of the element in the case that the client controls order (such as feed and autocomplete). + payload: + type: string + description: For type MANUAL_FEEDBACK, contains string of user feedback. For autocomplete, partial query string. For feed, string of user feedback in addition to manual feedback signals extracted from all suggested content. + sessionInfo: + $ref: "#/components/schemas/SessionInfo" + timestamp: + type: string + description: The ISO 8601 timestamp when the event occured. + format: date-time + user: + $ref: "#/components/schemas/User" + pathname: + type: string + description: The path the client was at when the feedback event triggered. + channels: + type: array + description: Where the feedback will be sent, e.g. to Glean, the user's company, or both. If no channels are specified, feedback will go only to Glean. + items: + type: string + enum: + - COMPANY + - GLEAN + url: + type: string + description: The URL the client was at when the feedback event triggered. + uiTree: + description: The UI element tree associated with the event, if any. + items: + type: string + type: array + uiElement: + type: string + description: The UI element associated with the event, if any. + manualFeedbackInfo: + $ref: "#/components/schemas/ManualFeedbackInfo" + manualFeedbackSideBySideInfo: + $ref: "#/components/schemas/ManualFeedbackSideBySideInfo" + seenFeedbackInfo: + $ref: "#/components/schemas/SeenFeedbackInfo" + userViewInfo: + $ref: "#/components/schemas/UserViewInfo" + workflowFeedbackInfo: + $ref: "#/components/schemas/WorkflowFeedbackInfo" + applicationId: + type: string + description: The application ID of the client that sent the feedback event. + agentId: + type: string + description: The agent ID of the client that sent the feedback event. + example: + trackingTokens: + - trackingTokens + event: VIEW + StructuredTextMutableProperties: + required: + - text + properties: + text: + type: string + example: From https://en.wikipedia.org/wiki/Diffuse_sky_radiation, the sky is blue because blue light is more strongly scattered than longer-wavelength light. + ConnectorType: type: string - - name: version - in: query - description: The version of the policy to fetch. Each time a policy is updated, the older version is still stored. If this is left empty, the latest policy is fetched. - required: false - schema: - type: integer - format: int64 - responses: - "200": - description: OK - content: - application/json: - schema: - $ref: '#/components/schemas/GetDlpReportResponse' - "403": - description: Permissions error - "500": - description: Internal error - x-visibility: Public - x-speakeasy-group: client.governance.data.policies - x-speakeasy-name-override: retrieve - post: - operationId: updatepolicy - summary: Updates an existing policy - description: Updates an existing policy. - tags: - - Governance - parameters: - - name: id - in: path - description: The id of the policy to fetch. - required: true - schema: + description: The source from which document content was pulled, e.g. an API crawl or browser history + enum: + - API_CRAWL + - BROWSER_CRAWL + - BROWSER_HISTORY + - BUILTIN + - FEDERATED_SEARCH + - PUSH_API + - WEB_CRAWL + - NATIVE_HISTORY + DocumentContent: + properties: + fullTextList: + type: array + items: + type: string + description: The plaintext content of the document. + Document: + properties: + id: + type: string + description: The Glean Document ID. + datasource: + type: string + description: The app or other repository type from which the document was extracted + connectorType: + $ref: "#/components/schemas/ConnectorType" + docType: + type: string + description: The datasource-specific type of the document (e.g. for Jira issues, this is the issue type such as Bug or Feature Request). + content: + $ref: "#/components/schemas/DocumentContent" + containerDocument: + $ref: "#/components/schemas/Document" + parentDocument: + $ref: "#/components/schemas/Document" + title: + type: string + description: The title of the document. + url: + type: string + description: A permalink for the document. + metadata: + $ref: "#/components/schemas/DocumentMetadata" + sections: + type: array + description: A list of content sub-sections in the document, e.g. text blocks with different headings in a Drive doc or Confluence page. + items: + $ref: "#/components/schemas/DocumentSection" + SearchProviderInfo: + properties: + name: + type: string + description: Name of the search provider. + logoUrl: + type: string + description: URL to the provider's logo. + searchLinkUrlTemplate: + type: string + description: URL template that can be used to perform the suggested search by replacing the {query} placeholder with the query suggestion. + example: + name: Google + logo: https://app.glean.com/images/feather/globe.svg + searchLinkUrlTemplate: https://www.google.com/search?q={query}&hl=en + ResultTab: + properties: + id: + type: string + description: The unique ID of the tab. Can be passed in a search request to get results for that tab. + count: + type: integer + description: The number of results in this tab for the current query. + datasource: + type: string + description: The datasource associated with the tab, if any. + datasourceInstance: + type: string + description: The datasource instance associated with the tab, if any. + FacetFilterValue: + properties: + value: + type: string + example: Spreadsheet + relationType: + type: string + enum: + - EQUALS + - ID_EQUALS + - LT + - GT + - NOT_EQUALS + x-enumDescriptions: + EQUALS: The value is equal to the specified value. + ID_EQUALS: The value is equal to the specified ID. + LT: The value is less than the specified value. + GT: The value is greater than the specified value. + NOT_EQUALS: The value is not equal to the specified value. + x-speakeasy-enum-descriptions: + EQUALS: The value is equal to the specified value. + ID_EQUALS: The value is equal to the specified ID. + LT: The value is less than the specified value. + GT: The value is greater than the specified value. + NOT_EQUALS: The value is not equal to the specified value. + example: EQUALS + isNegated: + type: boolean + deprecated: true + description: DEPRECATED - please use relationType instead + x-glean-deprecated: + id: 75a48c79-b36a-4171-a0a0-4af7189da66e + introduced: "2026-02-05" + message: Use relationType instead + removal: "2026-10-15" + x-speakeasy-deprecation-message: "Deprecated on 2026-02-05, removal scheduled for 2026-10-15: Use relationType instead" + FacetFilter: + properties: + fieldName: + type: string + example: owner + values: + type: array + items: + $ref: "#/components/schemas/FacetFilterValue" + description: Within a single FacetFilter, the values are to be treated like an OR. For example, fieldName type with values [EQUALS Presentation, EQUALS Spreadsheet] means we want to show a document if it's a Presentation OR a Spreadsheet. + groupName: + type: string + example: Spreadsheet + description: Indicates the value of a facet, if any, that the given facet is grouped under. This is only used for nested facets, for example, fieldName could be owner and groupName would be Spreadsheet if showing all owners for spreadsheets as a nested facet. + example: + fieldName: type + values: + - value: Spreadsheet + relationType: EQUALS + - value: Presentation + relationType: EQUALS + FacetFilterSet: + properties: + filters: + type: array + items: + $ref: "#/components/schemas/FacetFilter" + description: Within a single FacetFilterSet, the filters are treated as AND. For example, owner Sumeet and type Spreadsheet shows documents that are by Sumeet AND are Spreadsheets. + FacetBucketFilter: + properties: + facet: + type: string + description: The facet whose buckets should be filtered. + prefix: + type: string + description: The per-term prefix that facet buckets should be filtered on. + AuthToken: + required: + - accessToken + - datasource + properties: + accessToken: + type: string + datasource: + type: string + scope: + type: string + tokenType: + type: string + authUser: + description: Used by Google to indicate the index of the logged in user. Useful for generating hyperlinks that support multilogin. + type: string + expiration: + description: Unix timestamp when this token expires (in seconds since epoch UTC). + type: integer + format: int64 + example: + accessToken: 123abc + datasource: gmail + scope: email profile https://www.googleapis.com/auth/gmail.readonly + tokenType: Bearer + authUser: "1" + DocumentSpec: + x-multiple-discriminators: true + oneOf: + - type: object + required: + - url + properties: + url: + type: string + x-discriminator: true + description: The URL of the document. + - type: object + required: + - id + properties: + id: + type: string + x-discriminator: true + description: The ID of the document. + - type: object + required: + - contentId + - ugcType + properties: + ugcType: + type: string + enum: + - ANNOUNCEMENTS + - ANSWERS + - COLLECTIONS + - SHORTCUTS + - CHATS + description: The type of the user generated content (UGC datasource). + contentId: + type: integer + x-discriminator: true + description: The numeric id for user generated content. Used for ANNOUNCEMENTS, ANSWERS, COLLECTIONS, SHORTCUTS. + docType: + type: string + description: The specific type of the user generated content type. + - type: object + required: + - ugcType + - ugcId + properties: + ugcType: + type: string + enum: + - ANNOUNCEMENTS + - ANSWERS + - COLLECTIONS + - SHORTCUTS + - CHATS + description: The type of the user generated content (UGC datasource). + ugcId: + type: string + x-discriminator: true + description: The string id for user generated content. Used for CHATS. + docType: + type: string + description: The specific type of the user generated content type. + RestrictionFilters: + properties: + containerSpecs: + description: "Specifications for containers that should be used as part of the restriction (include/exclude). Memberships are recursively defined for a subset of datasources (currently: SharePoint, OneDrive, Google Drive, and Confluence). Please contact the Glean team to enable this for more datasources. Recursive memberships do not apply for Collections." + type: array + items: + $ref: "#/components/schemas/DocumentSpec" + SearchRequestOptions: + required: + - facetBucketSize + properties: + datasourceFilter: + type: string + description: Filter results to a single datasource name (e.g. gmail, slack). All results are returned if missing. + datasourcesFilter: + type: array + items: + type: string + description: Filter results to one or more datasources (e.g. gmail, slack). All results are returned if missing. + queryOverridesFacetFilters: + type: boolean + description: If true, the operators in the query are taken to override any operators in facetFilters in the case of conflict. This is used to correctly set rewrittenFacetFilters and rewrittenQuery. + facetFilters: + type: array + items: + $ref: "#/components/schemas/FacetFilter" + description: A list of filters for the query. An AND is assumed between different facetFilters. For example, owner Sumeet and type Spreadsheet shows documents that are by Sumeet AND are Spreadsheets. + facetFilterSets: + type: array + items: + $ref: "#/components/schemas/FacetFilterSet" + description: A list of facet filter sets that will be OR'ed together. SearchRequestOptions where both facetFilterSets and facetFilters set are considered as bad request. Callers should set only one of these fields. + facetBucketFilter: + $ref: "#/components/schemas/FacetBucketFilter" + facetBucketSize: + type: integer + description: The maximum number of FacetBuckets to return in each FacetResult. + defaultFacets: + type: array + items: + type: string + description: Facets for which FacetResults should be fetched and that don't apply to a particular datasource. If specified, these values will replace the standard default facets (last_updated_at, from, etc.). The requested facets will be returned alongside datasource-specific facets if searching a single datasource. + authTokens: + type: array + description: Auth tokens which may be used for non-indexed, federated results (e.g. Gmail). + items: + $ref: "#/components/schemas/AuthToken" + fetchAllDatasourceCounts: + type: boolean + description: Hints that the QE should return result counts (via the datasource facet result) for all supported datasources, rather than just those specified in the datasource[s]Filter + responseHints: + type: array + description: Array of hints containing which fields should be populated in the response. + items: + type: string + description: Hints for the response content. + x-enumDescriptions: + ALL_RESULT_COUNTS: Return result counts for each result set which has non-zero results, even when the request itself is limited to a subset. + FACET_RESULTS: Return only facet results. + QUERY_METADATA: Returns result counts for each result set which has non-zero results, as well as other information about the search such as suggested spelling corrections. + RESULTS: Return search result documents. + SPELLCHECK_METADATA: Return metadata pertaining to spellcheck results. + x-speakeasy-enum-descriptions: + ALL_RESULT_COUNTS: Return result counts for each result set which has non-zero results, even when the request itself is limited to a subset. + FACET_RESULTS: Return only facet results. + QUERY_METADATA: Returns result counts for each result set which has non-zero results, as well as other information about the search such as suggested spelling corrections. + RESULTS: Return search result documents. + SPELLCHECK_METADATA: Return metadata pertaining to spellcheck results. + enum: + - ALL_RESULT_COUNTS + - FACET_RESULTS + - QUERY_METADATA + - RESULTS + - SPELLCHECK_METADATA + timezoneOffset: + type: integer + description: The offset of the client's timezone in minutes from UTC. e.g. PDT is -420 because it's 7 hours behind UTC. + disableSpellcheck: + type: boolean + description: Whether or not to disable spellcheck. + disableQueryAutocorrect: + type: boolean + description: Disables automatic adjustment of the input query for spelling corrections or other reasons. + returnLlmContentOverSnippets: + type: boolean + description: Enables expanded content to be returned for LLM usage. The size of content per result returned should be modified using maxSnippetSize. Server may return less or more than what is specified in maxSnippetSize. For more details, see https://developers.glean.com/guides/search/llm-content. + inclusions: + $ref: "#/components/schemas/RestrictionFilters" + description: A list of filters which restrict the search results to only the specified content. + exclusions: + $ref: "#/components/schemas/RestrictionFilters" + description: A list of filters specifying content to avoid getting search results from. Exclusions take precendence over inclusions and other query parameters, such as search operators and search facets. + example: + datasourceFilter: JIRA + datasourcesFilter: + - JIRA + queryOverridesFacetFilters: true + facetFilters: + - fieldName: fieldName + values: + - fieldValues + - fieldValues + - fieldName: fieldName + values: + - fieldValues + - fieldValues + TextRange: + required: + - startIndex + description: A subsection of a given string to which some special formatting should be applied. + properties: + startIndex: + type: integer + description: The inclusive start index of the range. + endIndex: + type: integer + description: The exclusive end index of the range. + type: + type: string + enum: + - BOLD + - CITATION + - HIGHLIGHT + - LINK + url: + type: string + description: The URL associated with the range, if applicable. For example, the linked URL for a LINK range. + document: + $ref: "#/components/schemas/Document" + description: A document corresponding to the range, if applicable. For example, the cited document for a CITATION range. + SearchRequestInputDetails: + properties: + hasCopyPaste: + type: boolean + description: Whether the associated query was at least partially copy-pasted. If subsequent requests are issued after a copy-pasted query is constructed (e.g. with facet modifications), this bit should continue to be set for those requests. + example: + hasCopyPaste: true + QuerySuggestion: + required: + - query + properties: + missingTerm: + type: string + description: A query term missing from the original query on which this suggestion is based. + query: + type: string + description: The query being suggested (e.g. enforcing the missing term from the original query). + searchProviderInfo: + $ref: "#/components/schemas/SearchProviderInfo" + description: Information about the search provider that generated this suggestion. + label: + type: string + description: A user-facing description to display for the suggestion. + datasource: + type: string + description: The datasource associated with the suggestion. + resultTab: + $ref: "#/components/schemas/ResultTab" + description: The result tab associated with the suggestion. + requestOptions: + $ref: "#/components/schemas/SearchRequestOptions" + ranges: + type: array + items: + $ref: "#/components/schemas/TextRange" + description: The bolded ranges within the query of the QuerySuggestion. + inputDetails: + $ref: "#/components/schemas/SearchRequestInputDetails" + example: + query: app:github type:pull author:mortimer + label: Mortimer's PRs + datasource: github + Person: + required: + - name + - obfuscatedId + properties: + name: + type: string + description: The display name. + obfuscatedId: + type: string + description: An opaque identifier that can be used to request metadata for a Person. + relatedDocuments: + type: array + items: + $ref: "#/components/schemas/RelatedDocuments" + description: A list of documents related to this person. + metadata: + $ref: "#/components/schemas/PersonMetadata" + example: + name: George Clooney + obfuscatedId: abc123 + Company: + required: + - name + properties: + name: + type: string + description: User-friendly display name. + profileUrl: + type: string + description: Link to internal company company profile. + websiteUrls: + type: array + description: Link to company's associated websites. + items: + type: string + logoUrl: + type: string + description: The URL of the company's logo. Public, Glean-authenticated and Base64 encoded data URLs are all valid (but not third-party-authenticated URLs). + location: + type: string + description: User facing string representing the company's location. + example: New York City + phone: + type: string + description: Phone number as a number string. + fax: + type: string + description: Fax number as a number string. + industry: + type: string + description: User facing string representing the company's industry. + example: Finances + annualRevenue: + type: number + format: double + description: Average company's annual revenue for reference. + numberOfEmployees: + type: integer + format: int64 + description: Average company's number of employees for reference. + stockSymbol: + type: string + description: Company's stock symbol if company is public. + foundedDate: + type: string + format: date + description: The date when the company was founded. + about: + type: string + description: User facing description of company. + example: Financial, software, data, and media company headquartered in Midtown Manhattan, New York City + DocumentCounts: + type: object + description: A map of {string, int} pairs representing counts of each document type associated with this customer. + additionalProperties: + type: integer + CustomDataValue: + properties: + displayLabel: + type: string + stringValue: + type: string + stringListValue: + type: array + description: list of strings for multi-value properties + items: + type: string + numberValue: + type: number + booleanValue: + type: boolean + CustomData: + type: object + description: Custom fields specific to individual datasources + additionalProperties: + $ref: "#/components/schemas/CustomDataValue" + CustomerMetadata: + properties: + datasourceId: + type: string + description: The user visible id of the salesforce customer account. + customData: + $ref: "#/components/schemas/CustomData" + Customer: + required: + - id + - company + properties: + id: + type: string + description: Unique identifier. + domains: + type: array + description: Link to company's associated website domains. + items: + type: string + company: + $ref: "#/components/schemas/Company" + documentCounts: + $ref: "#/components/schemas/DocumentCounts" + poc: + type: array + description: A list of POC for company. + items: + $ref: "#/components/schemas/Person" + metadata: + $ref: "#/components/schemas/CustomerMetadata" + mergedCustomers: + type: array + description: A list of Customers. + items: + $ref: "#/components/schemas/Customer" + startDate: + type: string + format: date + description: The date when the interaction with customer started. + contractAnnualRevenue: + type: number + format: double + description: Average contract annual revenue with that customer. + notes: + type: string + description: User facing (potentially generated) notes about company. + example: CIO is interested in trying out the product. + RelatedObject: + required: + - id + properties: + id: + type: string + description: The ID of the related object + metadata: + type: object + description: Some metadata of the object which can be displayed, while not having the actual object. + properties: + name: + type: string + description: Placeholder name of the object, not the relationship. + RelatedObjectEdge: + properties: + objects: + type: array + items: + $ref: "#/components/schemas/RelatedObject" + RelatedObjects: + properties: + relatedObjects: + type: object + description: A list of objects related to a source object. + additionalProperties: + $ref: "#/components/schemas/RelatedObjectEdge" + ScopeType: type: string - requestBody: - content: - application/json; charset=UTF-8: - schema: - $ref: '#/components/schemas/UpdateDlpReportRequest' - required: true - responses: - "200": - description: OK - content: - application/json; charset=UTF-8: - schema: - $ref: '#/components/schemas/UpdateDlpReportResponse' - "403": - description: Permissions error - "500": - description: Internal error - x-speakeasy-group: client.governance.data.policies - x-speakeasy-name-override: update - /rest/api/v1/governance/data/policies: - get: - operationId: listpolicies - summary: Lists policies - description: Lists policies with filtering. - tags: - - Governance - parameters: - - name: autoHide - in: query - description: Filter to return reports with a given value of auto-hide. - required: false - schema: - type: boolean - - name: frequency - in: query - description: Filter to return reports with a given frequency. - required: false - schema: + description: Describes the scope for a ReadPermission, WritePermission, or GrantPermission object + enum: + - GLOBAL + - OWN + WritePermission: + description: Describes the write permissions levels that a user has for a specific feature + properties: + scopeType: + $ref: "#/components/schemas/ScopeType" + create: + type: boolean + description: True if user has create permission for this feature and scope + update: + type: boolean + description: True if user has update permission for this feature and scope + delete: + type: boolean + description: True if user has delete permission for this feature and scope + ObjectPermissions: + properties: + write: + $ref: "#/components/schemas/WritePermission" + PermissionedObject: + properties: + permissions: + $ref: "#/components/schemas/ObjectPermissions" + description: The permissions the current viewer has with respect to a particular object. + PersonToTeamRelationship: + required: + - person + type: object + description: Metadata about the relationship of a person to a team. + properties: + person: + $ref: "#/components/schemas/Person" + relationship: + type: string + description: The team member's relationship to the team. This defaults to MEMBER if not set. + default: MEMBER + enum: + - MEMBER + - MANAGER + - LEAD + - POINT_OF_CONTACT + - OTHER + customRelationshipStr: + type: string + description: Displayed name for the relationship if relationship is set to `OTHER`. + joinDate: + type: string + format: date-time + description: The team member's start date + TeamEmail: + type: object + description: Information about a team's email + properties: + email: + type: string + format: email + description: An email address + type: + type: string + description: An enum of `PRIMARY`, `SECONDARY`, `ONCALL`, `OTHER` + default: OTHER + required: + - email + - type + CustomFieldValueStr: + properties: + strText: + type: string + description: Text field for string value. + CustomFieldValueHyperlink: + properties: + urlAnchor: + type: string + description: Anchor text for hyperlink. + urlLink: + type: string + description: Link for this URL. + CustomFieldValuePerson: + properties: + person: + $ref: "#/components/schemas/Person" + CustomFieldValue: + oneOf: + - $ref: "#/components/schemas/CustomFieldValueStr" + - $ref: "#/components/schemas/CustomFieldValueHyperlink" + - $ref: "#/components/schemas/CustomFieldValuePerson" + CustomFieldData: + required: + - label + - values + - displayable + properties: + label: + type: string + description: A user-facing label for this field. + values: + type: array + items: + $ref: "#/components/schemas/CustomFieldValue" + displayable: + type: boolean + description: Determines whether the client should display this custom field + default: true + DatasourceProfile: + required: + - datasource + - handle + properties: + datasource: + type: string + example: github + description: The datasource the profile is of. + handle: + type: string + description: The display name of the entity in the given datasource. + url: + type: string + description: URL to view the entity's profile. + nativeAppUrl: + type: string + description: A deep link, if available, into the datasource's native application for the entity's platform (i.e. slack://...). + isUserGenerated: + type: boolean + description: For internal use only. True iff the data source profile was manually added by a user from within Glean (aka not from the original data source) + Team: + allOf: + - $ref: "#/components/schemas/RelatedObjects" + - $ref: "#/components/schemas/PermissionedObject" + - type: object + required: + - id + - name + properties: + id: + type: string + description: Unique identifier + name: + type: string + description: Team name + description: + type: string + description: A description of the team + businessUnit: + type: string + description: Typically the highest level organizational unit; generally applies to bigger companies with multiple distinct businesses. + department: + type: string + description: An organizational unit where everyone has a similar task, e.g. `Engineering`. + photoUrl: + type: string + format: url + description: A link to the team's photo. + bannerUrl: + type: string + format: url + description: A link to the team's banner photo. + externalLink: + type: string + format: uri + description: Link to a team page on the internet or your company's intranet + members: + type: array + description: The members on this team + items: + $ref: "#/components/schemas/PersonToTeamRelationship" + memberCount: + type: integer + description: Number of members on this team (recursive; includes all individuals that belong to this team, and all individuals that belong to a subteam within this team) + emails: + type: array + description: The emails for this team + items: + $ref: "#/components/schemas/TeamEmail" + customFields: + type: array + description: Customizable fields for additional team information. + items: + $ref: "#/components/schemas/CustomFieldData" + datasourceProfiles: + type: array + description: The datasource profiles of the team + items: + $ref: "#/components/schemas/DatasourceProfile" + datasource: + type: string + description: the data source of the team, e.g. GDRIVE + createdFrom: + type: string + description: For teams created from docs, the doc title. Otherwise empty. + lastUpdatedAt: + type: string + format: date-time + description: when this team was last updated. + status: + type: string + description: whether this team is fully processed or there are still unprocessed operations that'll affect it + default: PROCESSED + enum: + - PROCESSED + - QUEUED_FOR_CREATION + - QUEUED_FOR_DELETION + canBeDeleted: + type: boolean + description: can this team be deleted. Some manually ingested teams like GCS_CSV or PUSH_API cannot + default: true + loggingId: + type: string + description: The logging id of the team used in scrubbed logs, client analytics, and metrics. + CustomEntityMetadata: + properties: + customData: + $ref: "#/components/schemas/CustomData" + GroupType: type: string - responses: - "200": - description: OK - content: - application/json: - schema: - $ref: '#/components/schemas/ListDlpReportsResponse' - "403": - description: Permissions error - "500": - description: Internal error - x-visibility: Public - x-speakeasy-group: client.governance.data.policies - x-speakeasy-name-override: list - post: - operationId: createpolicy - summary: Creates new policy - description: Creates a new policy with specified specifications and returns its id. - tags: - - Governance - requestBody: - content: - application/json; charset=UTF-8: - schema: - $ref: '#/components/schemas/CreateDlpReportRequest' - required: true - responses: - "200": - description: OK - content: - application/json; charset=UTF-8: - schema: - $ref: '#/components/schemas/CreateDlpReportResponse' - "403": - description: Permissions error - "500": - description: Internal error - x-visibility: Public - x-speakeasy-group: client.governance.data.policies - x-speakeasy-name-override: create - /rest/api/v1/governance/data/policies/{id}/download: - get: - operationId: downloadpolicycsv - summary: Downloads violations CSV for policy - description: Downloads CSV violations report for a specific policy id. This does not support continuous policies. - tags: - - Governance - parameters: - - name: id - in: path - description: The id of the policy to download violations for. - required: true - schema: + description: The type of user group + enum: + - DEPARTMENT + - ALL + - TEAM + - JOB_TITLE + - ROLE_TYPE + - LOCATION + - REGION + - EXTERNAL_GROUP + Group: + required: + - type + - id + properties: + type: + $ref: "#/components/schemas/GroupType" + id: + type: string + description: A unique identifier for the group. May be the same as name. + name: + type: string + description: Name of the group. + datasourceInstance: + type: string + description: Datasource instance if the group belongs to one e.g. external groups. + provisioningId: + type: string + description: identifier for greenlist provisioning, aka sciokey + UserRole: type: string - responses: - "200": - description: Downloads csv of batch policy violations. - content: - text/csv; charset=UTF-8: - schema: - type: string - description: CSV of all the violations found for this policy. - "400": - description: Bad request error (e.g., continuous policies are not supported). - "403": - description: Permissions error - "500": - description: Internal error - x-visibility: Public - x-speakeasy-group: client.governance.data.policies - x-speakeasy-name-override: download - /rest/api/v1/governance/data/reports: - post: - operationId: createreport - summary: Creates new one-time report - description: Creates a new one-time report and executes its batch job. - tags: - - Governance - requestBody: - content: - application/json; charset=UTF-8: - schema: - $ref: '#/components/schemas/UpdateDlpConfigRequest' - required: true - responses: - "200": - description: OK - content: - application/json; charset=UTF-8: - schema: - $ref: '#/components/schemas/UpdateDlpConfigResponse' - "403": - description: Permissions error - "500": - description: Internal error - x-visibility: Public - x-speakeasy-group: client.governance.data.reports - x-speakeasy-name-override: create - /rest/api/v1/governance/data/reports/{id}/download: - get: - operationId: downloadreportcsv - summary: Downloads violations CSV for report - description: Downloads CSV violations report for a specific report id. - tags: - - Governance - parameters: - - name: id - in: path - description: The id of the report to download violations for. - required: true - schema: + description: A user's role with respect to a specific document. + enum: + - OWNER + - VIEWER + - ANSWER_MODERATOR + - EDITOR + - VERIFIER + UserRoleSpecification: + required: + - role + properties: + sourceDocumentSpec: + $ref: "#/components/schemas/DocumentSpec" + description: The document spec of the object this role originates from. The object this role is included with will usually have the same information as this document spec, but if the role is inherited, then the document spec refers to the parent document that the role came from. + person: + $ref: "#/components/schemas/Person" + group: + $ref: "#/components/schemas/Group" + role: + $ref: "#/components/schemas/UserRole" + CustomEntity: + allOf: + - $ref: "#/components/schemas/PermissionedObject" + - type: object + properties: + id: + type: string + description: Unique identifier. + title: + type: string + description: Title or name of the custom entity. + datasource: + type: string + description: The datasource the custom entity is from. + objectType: + type: string + description: The type of the entity. Interpretation is specific to each datasource + metadata: + $ref: "#/components/schemas/CustomEntityMetadata" + roles: + type: array + description: A list of user roles for the custom entity explicitly granted by the owner. + items: + $ref: "#/components/schemas/UserRoleSpecification" + AnswerId: + properties: + id: + type: integer + description: The opaque ID of the Answer. + example: 3 + AnswerDocId: + properties: + docId: + type: string + description: Glean Document ID of the Answer. The Glean Document ID is supported for cases where the Answer ID isn't available. If both are available, using the Answer ID is preferred. + example: ANSWERS_answer_3 + AnswerMutableProperties: + properties: + question: + type: string + example: Why is the sky blue? + questionVariations: + type: array + description: Additional ways of phrasing this question. + items: + type: string + bodyText: + type: string + description: The plain text answer to the question. + example: From https://en.wikipedia.org/wiki/Diffuse_sky_radiation, the sky is blue because blue light is more strongly scattered than longer-wavelength light. + boardId: + type: integer + description: The parent board ID of this Answer, or 0 if it's a floating Answer. Adding Answers to Answer Boards is no longer permitted. + deprecated: true + x-glean-deprecated: + id: 3729bc64-8859-4159-b93c-ce2d5f0e7304 + introduced: "2026-02-05" + message: Answer Boards no longer supported + removal: "2026-10-15" + x-speakeasy-deprecation-message: "Deprecated on 2026-02-05, removal scheduled for 2026-10-15: Answer Boards no longer supported" + audienceFilters: + type: array + description: Filters which restrict who should see the answer. Values are taken from the corresponding filters in people search. + items: + $ref: "#/components/schemas/FacetFilter" + addedRoles: + type: array + description: A list of user roles for the answer added by the owner. + items: + $ref: "#/components/schemas/UserRoleSpecification" + removedRoles: + type: array + description: A list of user roles for the answer removed by the owner. + items: + $ref: "#/components/schemas/UserRoleSpecification" + roles: + type: array + description: A list of roles for this answer explicitly granted by an owner, editor, or admin. + items: + $ref: "#/components/schemas/UserRoleSpecification" + sourceDocumentSpec: + $ref: "#/components/schemas/DocumentSpec" + sourceType: + type: string + enum: + - DOCUMENT + - ASSISTANT + StructuredText: + allOf: + - $ref: "#/components/schemas/StructuredTextMutableProperties" + - type: object + properties: + structuredList: + type: array + items: + $ref: "#/components/schemas/StructuredTextItem" + description: An array of objects each of which contains either a string or a link which optionally corresponds to a document. + AnswerLike: + properties: + user: + $ref: "#/components/schemas/Person" + createTime: + type: string + format: date-time + description: The time the user liked the answer in ISO format (ISO 8601). + AnswerLikes: + required: + - likedBy + - likedByUser + - numLikes + properties: + likedBy: + type: array + items: + $ref: "#/components/schemas/AnswerLike" + likedByUser: + type: boolean + description: Whether the user in context liked the answer. + numLikes: + type: integer + description: The total number of likes for the answer. + Reminder: + required: + - assignee + - remindAt + properties: + assignee: + $ref: "#/components/schemas/Person" + requestor: + $ref: "#/components/schemas/Person" + remindAt: + type: integer + description: Unix timestamp for when the reminder should trigger (in seconds since epoch UTC). + createdAt: + type: integer + description: Unix timestamp for when the reminder was first created (in seconds since epoch UTC). + reason: + type: string + description: An optional free-text reason for the reminder. This is particularly useful when a reminder is used to ask for verification from another user (for example, "Duplicate", "Incomplete", "Incorrect"). + TimePoint: + properties: + epochSeconds: + type: integer + description: Epoch seconds. Has precedence over daysFromNow. + daysFromNow: + type: integer + description: The number of days from now. Specification relative to current time. Can be negative. + Period: + properties: + minDaysFromNow: + type: integer + description: DEPRECATED - The number of days from now in the past to define upper boundary of time period. + deprecated: true + maxDaysFromNow: + type: integer + description: DEPRECATED - The number of days from now in the past to define lower boundary of time period. + deprecated: true + start: + $ref: "#/components/schemas/TimePoint" + end: + $ref: "#/components/schemas/TimePoint" + CountInfo: + required: + - count + properties: + count: + type: integer + description: The counter value + period: + $ref: "#/components/schemas/Period" + org: + type: string + description: The unit of organization over which we did the count aggregation, e.g. org (department) or company + VerificationMetadata: + required: + - documentId + properties: + lastVerifier: + $ref: "#/components/schemas/Person" + lastVerificationTs: + type: integer + description: The unix timestamp of the verification (in seconds since epoch UTC). + expirationTs: + type: integer + description: The unix timestamp of the verification expiration if applicable (in seconds since epoch UTC). + document: + $ref: "#/components/schemas/Document" + reminders: + type: array + items: + $ref: "#/components/schemas/Reminder" + description: Info about all outstanding verification reminders for the document if exists. + lastReminder: + $ref: "#/components/schemas/Reminder" + visitorCount: + type: array + items: + $ref: "#/components/schemas/CountInfo" + description: Number of visitors to the document during included time periods. + candidateVerifiers: + type: array + items: + $ref: "#/components/schemas/Person" + description: List of potential verifiers for the document e.g. old verifiers and/or users with view/edit permissions. + Verification: + required: + - state + properties: + state: + type: string + enum: + - UNVERIFIED + - VERIFIED + - DEPRECATED + description: The verification state for the document. + metadata: + $ref: "#/components/schemas/VerificationMetadata" + CollectionBaseMutableProperties: + required: + - name + properties: + name: + type: string + description: The unique name of the Collection. + description: + type: string + description: A brief summary of the Collection's contents. + addedRoles: + type: array + description: A list of added user roles for the Collection. + items: + $ref: "#/components/schemas/UserRoleSpecification" + removedRoles: + type: array + description: A list of removed user roles for the Collection. + items: + $ref: "#/components/schemas/UserRoleSpecification" + audienceFilters: + type: array + items: + $ref: "#/components/schemas/FacetFilter" + description: Filters which restrict who should see this Collection. Values are taken from the corresponding filters in people search. + Thumbnail: + properties: + photoId: + type: string + description: Photo id if the thumbnail is from splash. + url: + type: string + description: Thumbnail URL. This can be user provided image and/or from downloaded images hosted by Glean. + CollectionMutableProperties: + allOf: + - $ref: "#/components/schemas/CollectionBaseMutableProperties" + - type: object + required: + - name + properties: + icon: + type: string + description: The emoji icon of this Collection. + adminLocked: + type: boolean + description: Indicates whether edits are allowed for everyone or only admins. + parentId: + type: integer + description: The parent of this Collection, or 0 if it's a top-level Collection. + thumbnail: + $ref: "#/components/schemas/Thumbnail" + allowedDatasource: + type: string + description: The datasource type this Collection can hold. + CollectionItemMutableProperties: + properties: + name: + type: string + description: The optional name of the Collection item. + description: + type: string + description: A helpful description of why this CollectionItem is in the Collection that it's in. + icon: + type: string + description: The emoji icon for this CollectionItem. Only used for Text type items. + UserGeneratedContentId: + properties: + id: + type: integer + description: The opaque id of the user generated content. + ShortcutMutableProperties: + properties: + inputAlias: + type: string + description: Link text following go/ prefix as entered by the user. + destinationUrl: + type: string + description: Destination URL for the shortcut. + destinationDocumentId: + type: string + description: Glean Document ID for the URL, if known. + description: + type: string + description: A short, plain text blurb to help people understand the intent of the shortcut. + unlisted: + type: boolean + description: Whether this shortcut is unlisted or not. Unlisted shortcuts are visible to author + admins only. + urlTemplate: + type: string + description: For variable shortcuts, contains the URL template; note, `destinationUrl` contains default URL. + addedRoles: + type: array + description: A list of user roles added for the Shortcut. + items: + $ref: "#/components/schemas/UserRoleSpecification" + removedRoles: + type: array + description: A list of user roles removed for the Shortcut. + items: + $ref: "#/components/schemas/UserRoleSpecification" + ShortcutMetadata: + properties: + createdBy: + $ref: "#/components/schemas/Person" + createTime: + type: string + format: date-time + description: The time the shortcut was created in ISO format (ISO 8601). + updatedBy: + $ref: "#/components/schemas/Person" + updateTime: + type: string + format: date-time + description: The time the shortcut was updated in ISO format (ISO 8601). + destinationDocument: + $ref: "#/components/schemas/Document" + description: Document that corresponds to the destination URL, if applicable. + intermediateUrl: + type: string + description: The URL from which the user is then redirected to the destination URL. Full replacement for https://go/. + viewPrefix: + type: string + description: The part of the shortcut preceding the input alias when used for showing shortcuts to users. Should end with "/". e.g. "go/" for native shortcuts. + isExternal: + type: boolean + description: Indicates whether a shortcut is native or external. + editUrl: + type: string + description: The URL using which the user can access the edit page of the shortcut. + Shortcut: + allOf: + - $ref: "#/components/schemas/UserGeneratedContentId" + - $ref: "#/components/schemas/ShortcutMutableProperties" + - $ref: "#/components/schemas/PermissionedObject" + - $ref: "#/components/schemas/ShortcutMetadata" + - type: object + required: + - inputAlias + properties: + alias: + type: string + description: canonical link text following go/ prefix where hyphen/underscore is removed. + title: + type: string + description: Title for the Go Link + roles: + type: array + description: A list of user roles for the Go Link. + items: + $ref: "#/components/schemas/UserRoleSpecification" + Collection: + allOf: + - $ref: "#/components/schemas/CollectionMutableProperties" + - $ref: "#/components/schemas/PermissionedObject" + - type: object + required: + - id + - description + properties: + id: + type: integer + description: The unique ID of the Collection. + createTime: + type: string + format: date-time + updateTime: + type: string + format: date-time + creator: + $ref: "#/components/schemas/Person" + updatedBy: + $ref: "#/components/schemas/Person" + itemCount: + type: integer + description: The number of items currently in the Collection. Separated from the actual items so we can grab the count without items. + childCount: + type: integer + description: The number of children Collections. Separated from the actual children so we can grab the count without children. + items: + type: array + items: + $ref: "#/components/schemas/CollectionItem" + description: The items in this Collection. + pinMetadata: + $ref: "#/components/schemas/CollectionPinnedMetadata" + description: Metadata having what categories this Collection is pinned to and the eligible categories to pin to + shortcuts: + type: array + items: + type: string + description: The names of the shortcuts (Go Links) that point to this Collection. + children: + type: array + items: + $ref: "#/components/schemas/Collection" + description: The children Collections of this Collection. + roles: + type: array + description: A list of user roles for the Collection. + items: + $ref: "#/components/schemas/UserRoleSpecification" + CollectionItem: + allOf: + - $ref: "#/components/schemas/CollectionItemMutableProperties" + - type: object + required: + - collectionId + - itemType + properties: + collectionId: + type: integer + description: The Collection ID of the Collection that this CollectionItem belongs in. + documentId: + type: string + description: If this CollectionItem is indexed, the Glean Document ID of that document. + url: + type: string + description: The URL of this CollectionItem. + itemId: + type: string + description: Unique identifier for the item within the Collection it belongs to. + createdBy: + $ref: "#/components/schemas/Person" + description: The person who added this Collection item. + createdAt: + type: string + format: date-time + description: Unix timestamp for when the item was first added (in seconds since epoch UTC). + document: + $ref: "#/components/schemas/Document" + description: The Document this CollectionItem corresponds to (omitted if item is a non-indexed URL). + shortcut: + $ref: "#/components/schemas/Shortcut" + description: The Shortcut this CollectionItem corresponds to (only included if item URL is for a Go Link). + collection: + $ref: "#/components/schemas/Collection" + description: The Collection this CollectionItem corresponds to (only included if item type is COLLECTION). + itemType: + type: string + enum: + - DOCUMENT + - TEXT + - URL + - COLLECTION + CollectionPinnableCategories: type: string - responses: - "200": - description: Downloads csv of one-time report violations. - content: - text/csv; charset=UTF-8: - schema: - type: string - description: CSV of all the violations found for this report. - "403": - description: Permissions error - "500": - description: Internal error - x-visibility: Public - x-speakeasy-group: client.governance.data.reports - x-speakeasy-name-override: download - /rest/api/v1/governance/data/reports/{id}/status: - get: - operationId: getreportstatus - summary: Fetches report run status - description: Fetches the status of the run corresponding to the report-id. - tags: - - Governance - parameters: - - name: id - in: path - description: The id of the report to get run status for. - required: true - schema: + description: Categories a Collection can be pinned to. + enum: + - COMPANY_RESOURCE + - DEPARTMENT_RESOURCE + - TEAM_RESOURCE + CollectionPinnableTargets: type: string - responses: - "200": - description: Fetches status of report run. - content: - application/json; charset=UTF-8: - schema: - $ref: '#/components/schemas/ReportStatusResponse' - "403": - description: Permissions error - "500": - description: Internal error - x-visibility: Public - x-speakeasy-group: client.governance.data.reports - x-speakeasy-name-override: status - /rest/api/v1/governance/documents/visibilityoverrides: - get: - operationId: getdocvisibility - summary: Fetches documents visibility - description: Fetches the visibility override status of the documents passed. - tags: - - Governance - parameters: - - name: docIds - in: query - description: List of doc-ids which will have their hide status fetched. - schema: + description: What targets can a Collection be pinned to. + enum: + - RESOURCE_CARD + - TEAM_PROFILE_PAGE + CollectionPinTarget: + required: + - category + properties: + category: + $ref: "#/components/schemas/CollectionPinnableCategories" + value: + type: string + description: Optional. If category supports values, then the additional value for the category e.g. department name for DEPARTMENT_RESOURCE, team name/id for TEAM_RESOURCE and so on. + target: + $ref: "#/components/schemas/CollectionPinnableTargets" + CollectionPinMetadata: + required: + - id + - target + properties: + id: + type: integer + description: The ID of the Collection. + target: + $ref: "#/components/schemas/CollectionPinTarget" + CollectionPinnedMetadata: + required: + - pinnedCategories + - eligibleCategoriesForPinning + properties: + existingPins: + type: array + items: + $ref: "#/components/schemas/CollectionPinTarget" + description: List of targets this Collection is pinned to. + eligiblePins: + type: array + items: + $ref: "#/components/schemas/CollectionPinMetadata" + description: List of targets this Collection can be pinned to, excluding the targets this Collection is already pinned to. We also include Collection ID already is pinned to each eligible target, which will be 0 if the target has no pinned Collection. + Answer: + allOf: + - $ref: "#/components/schemas/AnswerId" + - $ref: "#/components/schemas/AnswerDocId" + - $ref: "#/components/schemas/AnswerMutableProperties" + - $ref: "#/components/schemas/PermissionedObject" + - type: object + required: + - id + properties: + combinedAnswerText: + $ref: "#/components/schemas/StructuredText" + likes: + $ref: "#/components/schemas/AnswerLikes" + author: + $ref: "#/components/schemas/Person" + createTime: + type: string + format: date-time + description: The time the answer was created in ISO format (ISO 8601). + updateTime: + type: string + format: date-time + description: The time the answer was last updated in ISO format (ISO 8601). + updatedBy: + $ref: "#/components/schemas/Person" + verification: + $ref: "#/components/schemas/Verification" + collections: + type: array + description: The collections to which the answer belongs. + items: + $ref: "#/components/schemas/Collection" + documentCategory: + type: string + description: The document's document_category(.proto). + sourceDocument: + $ref: "#/components/schemas/Document" + FollowupAction: + description: A follow-up action that can be invoked by the user after a response. The action parameters are not included and need to be predicted/filled separately. + properties: + actionRunId: + type: string + description: Unique identifier for this actionRun recommendation event. + actionInstanceId: + type: string + description: The ID of the action instance that will be invoked. + actionId: + type: string + description: The ID of the associated action. + parameters: + type: object + description: Map of assistant predicted parameters and their corresponding values. + additionalProperties: + type: string + recommendationText: + type: string + description: Text to be displayed to the user when recommending the action instance. + actionLabel: + type: string + description: The label to be used when displaying a button to execute this action instance. + userConfirmationRequired: + type: boolean + description: Whether user confirmation is needed before executing this action instance. + GeneratedQna: + properties: + question: + type: string + description: Search query rephrased into a question. + answer: + type: string + description: Answer generated for the given query or the generated question. + followUpPrompts: + type: array + items: + type: string + description: List of all follow-up prompts generated for the given query or the generated question. + followupActions: + description: List of follow-up actions generated for the given query or the generated question. + type: array + items: + $ref: "#/components/schemas/FollowupAction" + ranges: + type: array + items: + $ref: "#/components/schemas/TextRange" + description: Answer subsections to mark with special formatting (citations, bolding etc) + status: + type: string + enum: + - COMPUTING + - DISABLED + - FAILED + - NO_ANSWER + - SKIPPED + - STREAMING + - SUCCEEDED + - TIMEOUT + description: Status of backend generating the answer + cursor: + type: string + description: An opaque cursor representing the search request + trackingToken: + type: string + description: An opaque token that represents this particular result in this particular query. To be used for /feedback reporting. + SearchResult: + required: + - url + allOf: + - $ref: "#/components/schemas/Result" + - type: object + properties: + document: + $ref: "#/components/schemas/Document" + title: + type: string + url: + type: string + nativeAppUrl: + type: string + description: A deep link, if available, into the datasource's native application for the user's platform (e.g. slack://...). + snippets: + type: array + items: + $ref: "#/components/schemas/SearchResultSnippet" + description: Text content from the result document which contains search query terms, if available. + fullText: + type: string + description: The full body text of the result if not already contained in the snippets. Only populated for conversation results (e.g. results from a messaging app such as Slack). + fullTextList: + type: array + description: The full body text of the result if not already contained in the snippets; each item in the array represents a separate line in the original text. Only populated for conversation results (e.g. results from a messaging app such as Slack). + items: + type: string + relatedResults: + type: array + items: + $ref: "#/components/schemas/RelatedDocuments" + description: A list of results related to this search result. Eg. for conversation results it contains individual messages from the conversation document which will be shown on SERP. + clusteredResults: + type: array + description: A list of results that should be displayed as associated with this result. + items: + $ref: "#/components/schemas/SearchResult" + allClusteredResults: + type: array + description: A list of results that should be displayed as associated with this result. + items: + $ref: "#/components/schemas/ClusterGroup" + attachmentCount: + type: integer + description: The total number of attachments. + attachments: + type: array + description: A (potentially partial) list of results representing documents attached to the main result document. + items: + $ref: "#/components/schemas/SearchResult" + backlinkResults: + type: array + description: A list of results that should be displayed as backlinks of this result in reverse chronological order. + items: + $ref: "#/components/schemas/SearchResult" + clusterType: + $ref: "#/components/schemas/ClusterTypeEnum" + mustIncludeSuggestions: + $ref: "#/components/schemas/QuerySuggestionList" + querySuggestion: + $ref: "#/components/schemas/QuerySuggestion" + prominence: + $ref: "#/components/schemas/SearchResultProminenceEnum" + attachmentContext: + type: string + description: Additional context for the relationship between the result and the document it's attached to. + pins: + type: array + description: A list of pins associated with this search result. + items: + $ref: "#/components/schemas/PinDocument" + example: + snippets: + - snippet: snippet + mimeType: mimeType + metadata: + container: container + createTime: "2000-01-23T04:56:07.000Z" + datasource: datasource + author: + name: name + documentId: documentId + updateTime: "2000-01-23T04:56:07.000Z" + mimeType: mimeType + objectType: objectType + title: title + url: https://example.com/foo/bar + nativeAppUrl: slack://foo/bar + mustIncludeSuggestions: + - missingTerm: container + query: container + ExtractedQnA: + properties: + heading: + type: string + description: Heading text that was matched to produce this result. + question: + type: string + description: Question text that was matched to produce this result. + questionResult: + $ref: "#/components/schemas/SearchResult" + CalendarAttendee: + required: + - person + properties: + isOrganizer: + type: boolean + description: Whether or not this attendee is an organizer. + isInGroup: + type: boolean + description: Whether or not this attendee is in a group. Needed temporarily at least to support both flat attendees and tree for compatibility. + person: + $ref: "#/components/schemas/Person" + groupAttendees: + type: array + description: If this attendee is a group, represents the list of individual attendees in the group. + items: + $ref: "#/components/schemas/CalendarAttendee" + responseStatus: + type: string + enum: + - ACCEPTED + - DECLINED + - NO_RESPONSE + - TENTATIVE + CalendarAttendees: + properties: + people: + type: array + items: + $ref: "#/components/schemas/CalendarAttendee" + description: Full details of some of the attendees of this event + isLimit: + type: boolean + description: Whether the total count of the people returned is at the retrieval limit. + total: + type: integer + description: Total number of attendees in this event. + numAccepted: + type: integer + description: Total number of attendees who have accepted this event. + numDeclined: + type: integer + description: Total number of attendees who have declined this event. + numNoResponse: + type: integer + description: Total number of attendees who have not responded to this event. + numTentative: + type: integer + description: Total number of attendees who have responded tentatively (i.e. responded maybe) to this event. + Meeting: + properties: + id: + type: string + title: + type: string + description: + type: string + url: + type: string + startTime: + type: string + format: date-time + endTime: + type: string + format: date-time + 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 + properties: + datasource: + type: string + description: The app or other repository type this represents + docType: + type: string + description: The datasource-specific type of the document (e.g. for Jira issues, this is the issue type such as Bug or Feature Request). + mimeType: + type: string + description: Mimetype is used to differentiate between sub applications from a datasource (e.g. Sheets, Docs from Gdrive) + iconUrl: + type: string + description: If there is available icon URL. + CodeLine: + properties: + lineNumber: + type: integer + content: + type: string + ranges: + type: array + items: + $ref: "#/components/schemas/TextRange" + description: Index ranges depicting matched sections of the line + Code: + properties: + repoName: + type: string + fileName: + type: string + fileUrl: + type: string + lines: + type: array + items: + $ref: "#/components/schemas/CodeLine" + isLastMatch: + type: boolean + description: Last file match for a repo + example: + repoName: scio + fileName: README.md + matches: + - lineNumber: 1 + content: Welcome to the beginning + ranges: [] + - lineNumber: 2 + content: Second line of the file + ranges: [] + - lineNumber: 3 + content: hello world hello world + ranges: + - startindex: 0 + endIndex: 5 + - startIndex: 12 + endIndex: 17 + QuerySuggestionList: + properties: + suggestions: + type: array + items: + $ref: "#/components/schemas/QuerySuggestion" + person: + $ref: "#/components/schemas/Person" + IconConfig: + description: Defines how to render an icon + properties: + generatedBackgroundColorKey: + type: string + backgroundColor: + type: string + color: + type: string + key: + type: string + iconType: + enum: + - COLLECTION + - CUSTOM + - DATASOURCE + - DATASOURCE_INSTANCE + - FAVICON + - FILE_TYPE + - GENERATED_BACKGROUND + - GLYPH + - MIME_TYPE + - NO_ICON + - PERSON + - REACTIONS + - URL + masked: + type: boolean + description: Whether the icon should be masked based on current theme. + name: + type: string + description: The name of the icon if applicable, e.g. the glyph name for `IconType.GLYPH` icons. + url: + type: string + description: The URL to an image to be displayed if applicable, e.g. the URL for `iconType.URL` icons. + example: + color: "#343CED" + key: person_icon + iconType: GLYPH + name: user + ChatMetadata: + description: Metadata of a Chat a user had with Glean Assistant. This contains no actual conversational content. + properties: + id: + type: string + description: The opaque id of the Chat. + createTime: + type: integer + description: Server Unix timestamp of the creation time (in seconds since epoch UTC). + createdBy: + $ref: "#/components/schemas/Person" + description: The user who created this Chat. + updateTime: + type: integer + description: Server Unix timestamp of the update time (in seconds since epoch UTC). + name: + type: string + description: The name of the Chat. + applicationId: + type: string + description: The ID of the AI App that this Chat is associated to. + applicationName: + type: string + description: The display name of the AI App that this Chat is associated to. + icon: + $ref: "#/components/schemas/IconConfig" + RelatedDocuments: + properties: + relation: + type: string + description: How this document relates to the including entity. + enum: + - ATTACHMENT + - CANONICAL + - CASE + - contact + - CONTACT + - CONVERSATION_MESSAGES + - EXPERT + - FROM + - HIGHLIGHT + - opportunity + - OPPORTUNITY + - RECENT + - SOURCE + - TICKET + - TRANSCRIPT + - WITH + x-enumDescriptions: + CANONICAL: Canonical documents for the entity, such as overview docs, architecture docs elastic. + x-speakeasy-enum-descriptions: + CANONICAL: Canonical documents for the entity, such as overview docs, architecture docs elastic. + associatedEntityId: + type: string + description: Which entity in the response that this entity relates to. Relevant when there are multiple entities associated with the response (such as merged customers) + querySuggestion: + $ref: "#/components/schemas/QuerySuggestion" + documents: + type: array + items: + $ref: "#/components/schemas/Document" + description: A truncated list of documents with this relation. TO BE DEPRECATED. + deprecated: true + x-glean-deprecated: + id: 68de0429-b0cc-4b40-8061-f848788079a2 + introduced: "2026-02-05" + message: Field is deprecated + removal: "2026-10-15" + x-speakeasy-deprecation-message: "Deprecated on 2026-02-05, removal scheduled for 2026-10-15: Field is deprecated" + results: + type: array + items: + $ref: "#/components/schemas/SearchResult" + description: A truncated list of documents associated with this relation. To be used in favor of `documents` because it contains a trackingToken. + RelatedQuestion: + properties: + question: + type: string + description: The text of the related question + answer: + type: string + description: The answer for the related question + ranges: + type: array + items: + $ref: "#/components/schemas/TextRange" + description: Subsections of the answer string to which some special formatting should be applied (eg. bold) + EntityType: + type: string + description: The type of entity. + x-include-enum-class-prefix: true + enum: + - PERSON + - PROJECT + - CUSTOMER + Disambiguation: + type: object + description: A disambiguation between multiple entities with the same name + properties: + name: + type: string + description: Name of the ambiguous entity + id: + type: string + description: The unique id of the entity in the knowledge graph + type: + $ref: "#/components/schemas/EntityType" + SearchResultSnippet: + required: + - snippet + properties: + mimeType: + type: string + description: The mime type of the snippets, currently either text/plain or text/html. + text: + type: string + description: A matching snippet from the document with no highlights. + snippetTextOrdering: + type: integer + description: Used for sorting based off the snippet's location within all_snippetable_text + ranges: + type: array + items: + $ref: "#/components/schemas/TextRange" + description: The bolded ranges within text. + url: + type: string + description: A URL, generated based on availability, that links to the position of the snippet text or to the nearest header above the snippet text. + snippet: + type: string + deprecated: true + description: A matching snippet from the document. Query term matches are marked by the unicode characters uE006 and uE007. Use 'text' field instead. + example: + snippet: snippet + mimeType: mimeType + StructuredResult: + description: A single object that can support any object in the work graph. Only a single object will be populated. + properties: + document: + $ref: "#/components/schemas/Document" + person: + $ref: "#/components/schemas/Person" + customer: + $ref: "#/components/schemas/Customer" + team: + $ref: "#/components/schemas/Team" + customEntity: + $ref: "#/components/schemas/CustomEntity" + answer: + $ref: "#/components/schemas/Answer" + generatedQna: + $ref: "#/components/schemas/GeneratedQna" + extractedQnA: + $ref: "#/components/schemas/ExtractedQnA" + meeting: + $ref: "#/components/schemas/Meeting" + app: + $ref: "#/components/schemas/AppResult" + collection: + $ref: "#/components/schemas/Collection" + code: + $ref: "#/components/schemas/Code" + shortcut: + $ref: "#/components/schemas/Shortcut" + querySuggestions: + $ref: "#/components/schemas/QuerySuggestionList" + chat: + $ref: "#/components/schemas/ChatMetadata" + relatedDocuments: + type: array + items: + $ref: "#/components/schemas/RelatedDocuments" + description: A list of documents related to this structured result. + relatedQuestion: + $ref: "#/components/schemas/RelatedQuestion" + disambiguation: + $ref: "#/components/schemas/Disambiguation" + snippets: + description: Any snippets associated to the populated object. + type: array + items: + $ref: "#/components/schemas/SearchResultSnippet" + trackingToken: + type: string + description: An opaque token that represents this particular result in this particular query. To be used for /feedback reporting. + prominence: + type: string + description: The level of visual distinction that should be given to a result. + x-enumDescriptions: + HERO: A high-confidence result that should feature prominently on the page. + PROMOTED: May not be the best result but should be given additional visual distinction. + STANDARD: Should not be distinct from any other results. + x-speakeasy-enum-descriptions: + HERO: A high-confidence result that should feature prominently on the page. + PROMOTED: May not be the best result but should be given additional visual distinction. + STANDARD: Should not be distinct from any other results. + enum: + - HERO + - PROMOTED + - STANDARD + source: + type: string + description: Source context for this result. Possible values depend on the result type. + enum: + - EXPERT_DETECTION + - ENTITY_NLQ + - CALENDAR_EVENT + - AGENT + Result: + properties: + structuredResults: + type: array + description: An array of entities in the work graph retrieved via a data request. + items: + $ref: "#/components/schemas/StructuredResult" + trackingToken: + type: string + description: An opaque token that represents this particular result in this particular query. To be used for /feedback reporting. + ClusterTypeEnum: + type: string + description: The reason for inclusion of clusteredResults. + enum: + - SIMILAR + - FRESHNESS + - TITLE + - CONTENT + - NONE + - THREAD_REPLY + - THREAD_ROOT + - PREFIX + - SUFFIX + - AUTHOR_PREFIX + - AUTHOR_SUFFIX + ClusterGroup: + required: + - visibleCountHint + properties: + clusteredResults: + type: array + description: A list of results that should be displayed as associated with this result. + items: + $ref: "#/components/schemas/SearchResult" + clusterType: + $ref: "#/components/schemas/ClusterTypeEnum" + visibleCountHint: + type: integer + description: The default number of results to display before truncating and showing a "see more" link + SearchResultProminenceEnum: + type: string + description: | + The level of visual distinction that should be given to a result. + x-enumDescriptions: + HERO: A high-confidence result that should feature prominently on the page. + PROMOTED: May not be the best result but should be given additional visual distinction. + STANDARD: Should not be distinct from any other results. + x-speakeasy-enum-descriptions: + HERO: A high-confidence result that should feature prominently on the page. + PROMOTED: May not be the best result but should be given additional visual distinction. + STANDARD: Should not be distinct from any other results. + enum: + - HERO + - PROMOTED + - STANDARD + PinDocumentMutableProperties: + properties: + queries: + type: array + description: The query strings for which the pinned result will show. + items: + type: string + audienceFilters: + type: array + description: Filters which restrict who should see the pinned document. Values are taken from the corresponding filters in people search. + items: + $ref: "#/components/schemas/FacetFilter" + PinDocument: + allOf: + - $ref: "#/components/schemas/PinDocumentMutableProperties" + - type: object + required: + - documentId + properties: + id: + type: string + description: The opaque id of the pin. + documentId: + type: string + description: The document which should be a pinned result. + audienceFilters: + type: array + description: Filters which restrict who should see the pinned document. Values are taken from the corresponding filters in people search. + items: + $ref: "#/components/schemas/FacetFilter" + attribution: + $ref: "#/components/schemas/Person" + updatedBy: + $ref: "#/components/schemas/Person" + createTime: + type: string + format: date-time + updateTime: + type: string + format: date-time + PersonTeam: + description: Use `id` if you index teams via Glean, and use `name` and `externalLink` if you want to use your own team pages + properties: + id: + type: string + description: Unique identifier + name: + type: string + description: Team name + externalLink: + type: string + format: uri + description: Link to a team page on the internet or your company's intranet + relationship: + type: string + description: The team member's relationship to the team. This defaults to MEMBER if not set. + default: MEMBER + enum: + - MEMBER + - MANAGER + - LEAD + - POINT_OF_CONTACT + - OTHER + joinDate: + type: string + format: date-time + description: The team member's start date + StructuredLocation: + type: object + description: Detailed location with information about country, state, city etc. + properties: + deskLocation: + type: string + description: Desk number. + timezone: + type: string + description: Location's timezone, e.g. UTC, PST. + address: + type: string + description: Office address or name. + city: + type: string + description: Name of the city. + state: + type: string + description: State code. + region: + type: string + description: Region information, e.g. NORAM, APAC. + zipCode: + type: string + description: ZIP Code for the address. + country: + type: string + description: Country name. + countryCode: + type: string + description: Alpha-2 or Alpha-3 ISO 3166 country code, e.g. US or USA. + SocialNetwork: + required: + - name + - profileUrl + properties: + name: + type: string + description: Possible values are "twitter", "linkedin". + profileName: + type: string + description: Human-readable profile name. + profileUrl: + type: string + format: url + description: Link to profile. + PersonDistance: + required: + - name + - obfuscatedId + - distance + properties: + name: + type: string + description: The display name. + obfuscatedId: + type: string + description: An opaque identifier that can be used to request metadata for a Person. + distance: + type: number + format: float + description: Distance to person, refer to PeopleDistance pipeline on interpretation of the value. + CommunicationChannel: + type: string + enum: + - COMMUNICATION_CHANNEL_EMAIL + - COMMUNICATION_CHANNEL_SLACK + ChannelInviteInfo: + description: Information regarding the invite status of a person for a particular channel. + properties: + channel: + description: Channel through which the invite was sent + $ref: "#/components/schemas/CommunicationChannel" + isAutoInvite: + description: Bit that tracks if this invite was automatically sent or user-sent + type: boolean + inviter: + description: The person that invited this person. + $ref: "#/components/schemas/Person" + inviteTime: + type: string + format: date-time + description: The time this person was invited in ISO format (ISO 8601). + reminderTime: + type: string + format: date-time + description: The time this person was reminded in ISO format (ISO 8601) if a reminder was sent. + InviteInfo: + description: Information regarding the invite status of a person. + properties: + signUpTime: + type: string + format: date-time + description: The time this person signed up in ISO format (ISO 8601). + invites: + type: array + items: + $ref: "#/components/schemas/ChannelInviteInfo" + description: Latest invites received by the user for each channel + inviter: + deprecated: true + description: The person that invited this person. + $ref: "#/components/schemas/Person" + x-glean-deprecated: + id: 1d3cd23f-9085-4378-b466-9bdc2e344a71 + introduced: "2026-02-05" + message: Use ChannelInviteInfo instead + removal: "2026-10-15" + x-speakeasy-deprecation-message: "Deprecated on 2026-02-05, removal scheduled for 2026-10-15: Use ChannelInviteInfo instead" + inviteTime: + deprecated: true + type: string + format: date-time + description: The time this person was invited in ISO format (ISO 8601). + x-glean-deprecated: + id: 2dc3f572-cded-483d-af07-fc9fc7fd0ae4 + introduced: "2026-02-05" + message: Use ChannelInviteInfo instead + removal: "2026-10-15" + x-speakeasy-deprecation-message: "Deprecated on 2026-02-05, removal scheduled for 2026-10-15: Use ChannelInviteInfo instead" + reminderTime: + deprecated: true + type: string + format: date-time + description: The time this person was reminded in ISO format (ISO 8601) if a reminder was sent. + x-glean-deprecated: + id: d02d58cf-eb90-45d0-ab90-f7a9d707ae3c + introduced: "2026-02-05" + message: Use ChannelInviteInfo instead + removal: "2026-10-15" + x-speakeasy-deprecation-message: "Deprecated on 2026-02-05, removal scheduled for 2026-10-15: Use ChannelInviteInfo instead" + ReadPermission: + description: Describes the read permission level that a user has for a specific feature + properties: + scopeType: + $ref: "#/components/schemas/ScopeType" + ReadPermissions: + description: Describes the read permission levels that a user has for permissioned features. Key must be PermissionedFeatureOrObject + additionalProperties: + type: array + description: List of read permissions (for different scopes but same feature) + items: + $ref: "#/components/schemas/ReadPermission" + WritePermissions: + description: Describes the write permissions levels that a user has for permissioned features. Key must be PermissionedFeatureOrObject + additionalProperties: + type: array + description: List of write permissions (for different scopes but same feature) + items: + $ref: "#/components/schemas/WritePermission" + GrantPermission: + description: Describes the grant permission level that a user has for a specific feature + properties: + scopeType: + $ref: "#/components/schemas/ScopeType" + GrantPermissions: + description: Describes the grant permission levels that a user has for permissioned features. Key must be PermissionedFeatureOrObject + additionalProperties: + type: array + description: List of grant permissions (for different scopes but same feature) + items: + $ref: "#/components/schemas/GrantPermission" + Permissions: + description: |- + Describes the permissions levels that a user has for permissioned features. When the client sends this, Permissions.read and Permissions.write are the additional permissions granted to a user on top of what they have via their roles. + When the server sends this, Permissions.read and Permissions.write are the complete (merged) set of permissions the user has, and Permissions.roles is just for display purposes. + properties: + canAdminSearch: + type: boolean + description: TODO--deprecate in favor of the read and write properties. True if the user has access to /adminsearch + canAdminClientApiGlobalTokens: + type: boolean + description: TODO--deprecate in favor of the read and write properties. True if the user can administrate client API tokens with global scope + canDlp: + type: boolean + description: TODO--deprecate in favor of the read and write properties. True if the user has access to data loss prevention (DLP) features + read: + $ref: "#/components/schemas/ReadPermissions" + write: + $ref: "#/components/schemas/WritePermissions" + grant: + $ref: "#/components/schemas/GrantPermissions" + role: + type: string + description: The roleId of the canonical role a user has. The displayName is equal to the roleId. + roles: + type: array + description: The roleIds of the roles a user has. + items: + type: string + TimeInterval: + required: + - start + - end + properties: + start: + type: string + description: The RFC3339 timestamp formatted start time of this event. + end: + type: string + description: The RFC3339 timestamp formatted end time of this event. + AnonymousEvent: + description: A generic, light-weight calendar event. + type: object + properties: + time: + $ref: "#/components/schemas/TimeInterval" + eventType: + description: The nature of the event, for example "out of office". + type: string + enum: + - DEFAULT + - OUT_OF_OFFICE + Badge: + type: object + description: Displays a user's accomplishment or milestone + properties: + key: + type: string + description: An auto generated unique identifier. + displayName: + type: string + description: The badge name displayed to users + iconConfig: + $ref: "#/components/schemas/IconConfig" + pinned: + type: boolean + description: The badge should be shown on the PersonAttribution + example: + key: deployment_name_new_hire + displayName: New hire + iconConfig: + color: "#343CED" + key: person_icon + iconType: GLYPH + name: user + PersonMetadata: + properties: + type: + type: string + x-enumDescriptions: + FULL_TIME: The person is a current full-time employee of the company. + CONTRACTOR: The person is a current contractor of the company. + NON_EMPLOYEE: The person object represents a non-human actor such as a service or admin account. + FORMER_EMPLOYEE: The person is a previous employee of the company. + x-speakeasy-enum-descriptions: + FULL_TIME: The person is a current full-time employee of the company. + CONTRACTOR: The person is a current contractor of the company. + NON_EMPLOYEE: The person object represents a non-human actor such as a service or admin account. + FORMER_EMPLOYEE: The person is a previous employee of the company. + enum: + - FULL_TIME + - CONTRACTOR + - NON_EMPLOYEE + - FORMER_EMPLOYEE + example: FULL_TIME + firstName: + type: string + description: The first name of the person + lastName: + type: string + description: The last name of the person + title: + type: string + description: Job title. + businessUnit: + type: string + description: Typically the highest level organizational unit; generally applies to bigger companies with multiple distinct businesses. + department: + type: string + description: An organizational unit where everyone has a similar task, e.g. `Engineering`. + teams: + description: Info about the employee's team(s). + type: array + items: + $ref: "#/components/schemas/PersonTeam" + departmentCount: + type: integer + description: The number of people in this person's department. + email: + type: string + description: The user's primary email address + aliasEmails: + type: array + description: Additional email addresses of this user beyond the primary, if any. + items: + type: string + location: + type: string + description: User facing string representing the person's location. + structuredLocation: + $ref: "#/components/schemas/StructuredLocation" + externalProfileLink: + type: string + description: Link to a customer's internal profile page. This is set to '#' when no link is desired. + manager: + $ref: "#/components/schemas/Person" + managementChain: + description: The chain of reporting in the company as far up as it goes. The last entry is this person's direct manager. + type: array + items: + $ref: "#/components/schemas/Person" + phone: + type: string + description: Phone number as a number string. + timezone: + type: string + description: The timezone of the person. E.g. "Pacific Daylight Time". + timezoneOffset: + type: integer + format: int64 + description: The offset of the person's timezone in seconds from UTC. + timezoneIANA: + type: string + description: The IANA timezone identifier, e.g. "America/Los_Angeles". + photoUrl: + type: string + format: url + description: The URL of the person's avatar. Public, glean-authenticated and Base64 encoded data URLs are all valid (but not third-party-authenticated URLs). + uneditedPhotoUrl: + type: string + format: url + description: The original photo URL of the person's avatar before any edits they made are applied + bannerUrl: + type: string + format: url + description: The URL of the person's banner photo. + reports: + type: array + items: + $ref: "#/components/schemas/Person" + startDate: + type: string + description: The date when the employee started. + format: date + endDate: + type: string + format: date + description: If a former employee, the last date of employment. + bio: + type: string + description: Short biography or mission statement of the employee. + pronoun: + type: string + description: She/her, He/his or other pronoun. + orgSizeCount: + type: integer + description: The total recursive size of the people reporting to this person, or 1 + directReportsCount: + type: integer + description: The total number of people who directly report to this person, or 0 + preferredName: + type: string + description: The preferred name of the person, or a nickname. + socialNetwork: + description: List of social network profiles. + type: array + items: + $ref: "#/components/schemas/SocialNetwork" + datasourceProfile: + type: array + description: List of profiles this user has in different datasources / tools that they use. + items: + $ref: "#/components/schemas/DatasourceProfile" + querySuggestions: + $ref: "#/components/schemas/QuerySuggestionList" + peopleDistance: + type: array + items: + $ref: "#/components/schemas/PersonDistance" + description: List of people and distances to those people from this person. Optionally with metadata. + inviteInfo: + $ref: "#/components/schemas/InviteInfo" + isSignedUp: + type: boolean + description: Whether the user has signed into Glean at least once. + lastExtensionUse: + type: string + format: date-time + description: The last time the user has used the Glean extension in ISO 8601 format. + permissions: + $ref: "#/components/schemas/Permissions" + customFields: + type: array + description: User customizable fields for additional people information. + items: + $ref: "#/components/schemas/CustomFieldData" + loggingId: + type: string + description: The logging id of the person used in scrubbed logs, tracking GA metrics. + startDatePercentile: + type: number + format: float + description: Percentage of the company that started strictly after this person. Between [0,100). + busyEvents: + type: array + items: + $ref: "#/components/schemas/AnonymousEvent" + description: Intervals of busy time for this person, along with the type of event they're busy with. + profileBoolSettings: + type: object + additionalProperties: + type: boolean + description: flag settings to indicate user profile settings for certain items + badges: + type: array + items: + $ref: "#/components/schemas/Badge" + description: The badges that a user has earned over their lifetime. + isOrgRoot: + type: boolean + description: Whether this person is a "root" node in their organization's hierarchy. + example: + department: Movies + email: george@example.com + location: Hollywood, CA + phone: 6505551234 + photoUrl: https://example.com/george.jpg + startDate: "2000-01-23" + title: Actor + DocumentVisibility: + type: string + description: The level of visibility of the document as understood by our system. + x-enumDescriptions: + PRIVATE: Only one person is able to see the document. + SPECIFIC_PEOPLE_AND_GROUPS: Only specific people and/or groups can see the document. + DOMAIN_LINK: Anyone in the domain with the link can see the document. + DOMAIN_VISIBLE: Anyone in the domain can search for the document. + PUBLIC_LINK: Anyone with the link can see the document. + PUBLIC_VISIBLE: Anyone on the internet can search for the document. + x-speakeasy-enum-descriptions: + PRIVATE: Only one person is able to see the document. + SPECIFIC_PEOPLE_AND_GROUPS: Only specific people and/or groups can see the document. + DOMAIN_LINK: Anyone in the domain with the link can see the document. + DOMAIN_VISIBLE: Anyone in the domain can search for the document. + PUBLIC_LINK: Anyone with the link can see the document. + PUBLIC_VISIBLE: Anyone on the internet can search for the document. + enum: + - PRIVATE + - SPECIFIC_PEOPLE_AND_GROUPS + - DOMAIN_LINK + - DOMAIN_VISIBLE + - PUBLIC_LINK + - PUBLIC_VISIBLE + Reaction: + properties: + type: + type: string + count: + type: integer + description: The count of the reaction type on the document. + reactors: + type: array + items: + $ref: "#/components/schemas/Person" + reactedByViewer: + type: boolean + description: Whether the user in context reacted with this type to the document. + Share: + description: Search endpoint will only fill out numDays ago since that's all we need to display shared badge; docmetadata endpoint will fill out all the fields so that we can display shared badge tooltip + required: + - numDaysAgo + properties: + numDaysAgo: + type: integer + description: The number of days that has passed since the share happened + sharer: + $ref: "#/components/schemas/Person" + sharingDocument: + $ref: "#/components/schemas/Document" + DocumentInteractions: + properties: + numComments: + type: integer + description: The count of comments (thread replies in the case of slack). + numReactions: + type: integer + description: The count of reactions on the document. + reactions: + type: array + description: To be deprecated in favor of reacts. A (potentially non-exhaustive) list of reactions for the document. + deprecated: true + items: + type: string + x-glean-deprecated: + id: cd754845-6eec-480f-b395-c93478aff563 + introduced: "2026-02-05" + message: Use reacts instead + removal: "2026-10-15" + x-speakeasy-deprecation-message: "Deprecated on 2026-02-05, removal scheduled for 2026-10-15: Use reacts instead" + reacts: + type: array + items: + $ref: "#/components/schemas/Reaction" + shares: + type: array + items: + $ref: "#/components/schemas/Share" + description: Describes instances of someone posting a link to this document in one of our indexed datasources. + visitorCount: + $ref: "#/components/schemas/CountInfo" + ViewerInfo: + properties: + role: + type: string + enum: + - ANSWER_MODERATOR + - OWNER + - VIEWER + description: DEPRECATED - use permissions instead. Viewer's role on the specific document. + deprecated: true + x-glean-deprecated: + - id: fbc55efe-3e6c-485c-8b60-bab574c3813b + introduced: "2026-02-05" + kind: property + message: Use permissions instead + removal: "2026-10-15" + x-speakeasy-deprecation-message: "Deprecated on 2026-02-05, removal scheduled for 2026-10-15: Use permissions instead" + lastViewedTime: + type: string + format: date-time + IndexStatus: + properties: + lastCrawledTime: + description: When the document was last crawled + type: string + format: date-time + lastIndexedTime: + description: When the document was last indexed + type: string + format: date-time + DocumentMetadata: + properties: + datasource: + type: string + datasourceInstance: + type: string + description: The datasource instance from which the document was extracted. + objectType: + type: string + description: The type of the result. Interpretation is specific to each datasource. (e.g. for Jira issues, this is the issue type such as Bug or Feature Request). + container: + type: string + description: The name of the container (higher level parent, not direct parent) of the result. Interpretation is specific to each datasource (e.g. Channels for Slack, Project for Jira). cf. parentId + containerId: + type: string + description: The Glean Document ID of the container. Uniquely identifies the container. + superContainerId: + type: string + description: The Glean Document ID of the super container. Super container represents a broader abstraction that contains many containers. For example, whereas container might refer to a folder, super container would refer to a drive. + parentId: + type: string + description: The id of the direct parent of the result. Interpretation is specific to each datasource (e.g. parent issue for Jira). cf. container + mimeType: + type: string + documentId: + type: string + description: The index-wide unique identifier. + loggingId: + type: string + description: A unique identifier used to represent the document in any logging or feedback requests in place of documentId. + documentIdHash: + type: string + description: Hash of the Glean Document ID. + createTime: + type: string + format: date-time + updateTime: + type: string + format: date-time + author: + $ref: "#/components/schemas/Person" + owner: + $ref: "#/components/schemas/Person" + mentionedPeople: + type: array + items: + $ref: "#/components/schemas/Person" + description: A list of people mentioned in the document. + visibility: + $ref: "#/components/schemas/DocumentVisibility" + components: + type: array + description: A list of components this result is associated with. Interpretation is specific to each datasource. (e.g. for Jira issues, these are [components](https://confluence.atlassian.com/jirasoftwarecloud/organizing-work-with-components-764478279.html).) + items: + type: string + status: + type: string + description: The status or disposition of the result. Interpretation is specific to each datasource. (e.g. for Jira issues, this is the issue status such as Done, In Progress or Will Not Fix). + statusCategory: + type: string + description: The status category of the result. Meant to be more general than status. Interpretation is specific to each datasource. + pins: + type: array + description: A list of stars associated with this result. "Pin" is an older name. + items: + $ref: "#/components/schemas/PinDocument" + priority: + type: string + description: The document priority. Interpretation is datasource specific. + assignedTo: + $ref: "#/components/schemas/Person" + updatedBy: + $ref: "#/components/schemas/Person" + labels: + type: array + description: A list of tags for the document. Interpretation is datasource specific. + items: + type: string + collections: + type: array + description: A list of collections that the document belongs to. + items: + $ref: "#/components/schemas/Collection" + datasourceId: + type: string + description: The user-visible datasource specific id (e.g. Salesforce case number for example, GitHub PR number). + interactions: + $ref: "#/components/schemas/DocumentInteractions" + verification: + $ref: "#/components/schemas/Verification" + viewerInfo: + $ref: "#/components/schemas/ViewerInfo" + permissions: + $ref: "#/components/schemas/ObjectPermissions" + visitCount: + $ref: "#/components/schemas/CountInfo" + shortcuts: + type: array + description: A list of shortcuts of which destination URL is for the document. + items: + $ref: "#/components/schemas/Shortcut" + path: + type: string + description: For file datasources like onedrive/github etc this has the path to the file + customData: + $ref: "#/components/schemas/CustomData" + documentCategory: + type: string + description: The document's document_category(.proto). + contactPerson: + $ref: "#/components/schemas/Person" + thumbnail: + $ref: "#/components/schemas/Thumbnail" + description: A thumbnail image representing this document. + indexStatus: + $ref: "#/components/schemas/IndexStatus" + ancestors: + type: array + description: A list of documents that are ancestors of this document in the hierarchy of the document's datasource, for example parent folders or containers. Ancestors can be of different types and some may not be indexed. Higher level ancestors appear earlier in the list. + items: + $ref: "#/components/schemas/Document" + example: + container: container + parentId: JIRA_EN-1337 + createTime: "2000-01-23T04:56:07.000Z" + datasource: datasource + author: + name: name + documentId: documentId + updateTime: "2000-01-23T04:56:07.000Z" + mimeType: mimeType + objectType: Feature Request + components: + - Backend + - Networking + status: + - Done + customData: + someCustomField: someCustomValue + DocumentSection: + type: object + properties: + title: + type: string + description: The title of the document section (e.g. the section header). + url: + type: string + description: The permalink of the document section. + StructuredTextItem: + properties: + link: + type: string + example: https://en.wikipedia.org/wiki/Diffuse_sky_radiation + document: + deprecated: true + description: Deprecated. To be gradually migrated to structuredResult. + $ref: "#/components/schemas/Document" + text: + type: string + example: Because its wavelengths are shorter, blue light is more strongly scattered than the longer-wavelength lights, red or green. Hence the result that when looking at the sky away from the direct incident sunlight, the human eye perceives the sky to be blue. + structuredResult: + $ref: "#/components/schemas/StructuredResult" + AnnouncementMutableProperties: + properties: + startTime: + type: string + format: date-time + description: The date and time at which the announcement becomes active. + endTime: + type: string + format: date-time + description: The date and time at which the announcement expires. + title: + type: string + description: The headline of the announcement. + body: + $ref: "#/components/schemas/StructuredText" + emoji: + type: string + description: An emoji used to indicate the nature of the announcement. + thumbnail: + $ref: "#/components/schemas/Thumbnail" + banner: + $ref: "#/components/schemas/Thumbnail" + description: Optional variant of thumbnail cropped for header background. + audienceFilters: + type: array + description: Filters which restrict who should see the announcement. Values are taken from the corresponding filters in people search. + items: + $ref: "#/components/schemas/FacetFilter" + sourceDocumentId: + type: string + description: The Glean Document ID of the source document this Announcement was created from (e.g. Slack thread). + hideAttribution: + type: boolean + description: Whether or not to hide an author attribution. + channel: + type: string + enum: + - MAIN + - SOCIAL_FEED + description: This determines whether this is a Social Feed post or a regular announcement. + postType: + type: string + enum: + - TEXT + - LINK + description: This determines whether this is an external-link post or a regular announcement post. TEXT - Regular announcement that can contain rich text. LINK - Announcement that is linked to an external site. + isPrioritized: + type: boolean + description: Used by the Social Feed to pin posts to the front of the feed. + viewUrl: + type: string + description: URL for viewing the announcement. It will be set to document URL for announcements from other datasources e.g. simpplr. Can only be written when channel="SOCIAL_FEED". + CreateAnnouncementRequest: + allOf: + - $ref: "#/components/schemas/AnnouncementMutableProperties" + - type: object + required: + - title + - startTime + - endTime + DraftProperties: + properties: + draftId: + type: integer + description: The opaque id of the associated draft. + example: + draftId: 342 + Announcement: + allOf: + - $ref: "#/components/schemas/AnnouncementMutableProperties" + - $ref: "#/components/schemas/DraftProperties" + - $ref: "#/components/schemas/PermissionedObject" + - type: object + properties: + id: + type: integer + description: The opaque id of the announcement. + author: + $ref: "#/components/schemas/Person" + createTimestamp: + type: integer + description: Server Unix timestamp of the creation time (in seconds since epoch UTC). + lastUpdateTimestamp: + type: integer + description: Server Unix timestamp of the last update time (in seconds since epoch UTC). + updatedBy: + $ref: "#/components/schemas/Person" + viewerInfo: + type: object + properties: + isDismissed: + type: boolean + description: Whether the viewer has dismissed the announcement. + isRead: + type: boolean + description: Whether the viewer has read the announcement. + sourceDocument: + $ref: "#/components/schemas/Document" + description: The source document if the announcement is created from one. + isPublished: + type: boolean + description: Whether or not the announcement is published. + DeleteAnnouncementRequest: + required: + - id + properties: + id: + type: integer + description: The opaque id of the announcement to be deleted. + UpdateAnnouncementRequest: + allOf: + - $ref: "#/components/schemas/AnnouncementMutableProperties" + - type: object + required: + - id + - title + - startTime + - endTime + properties: + id: + type: integer + description: The opaque id of the announcement. + AddedCollections: + properties: + addedCollections: + type: array + items: + type: integer + description: IDs of Collections to which a document is added. + AnswerCreationData: + allOf: + - $ref: "#/components/schemas/AnswerMutableProperties" + - $ref: "#/components/schemas/AddedCollections" + - type: object + properties: + combinedAnswerText: + $ref: "#/components/schemas/StructuredTextMutableProperties" + CreateAnswerRequest: + required: + - data + properties: + data: + $ref: "#/components/schemas/AnswerCreationData" + DeleteAnswerRequest: + allOf: + - $ref: "#/components/schemas/AnswerId" + - $ref: "#/components/schemas/AnswerDocId" + - type: object + required: + - id + RemovedCollections: + properties: + removedCollections: + type: array + items: + type: integer + description: IDs of Collections from which a document is removed. + EditAnswerRequest: + allOf: + - $ref: "#/components/schemas/AnswerId" + - $ref: "#/components/schemas/AnswerDocId" + - $ref: "#/components/schemas/AnswerMutableProperties" + - $ref: "#/components/schemas/AddedCollections" + - $ref: "#/components/schemas/RemovedCollections" + - type: object + required: + - id + properties: + combinedAnswerText: + $ref: "#/components/schemas/StructuredTextMutableProperties" + GetAnswerRequest: + allOf: + - $ref: "#/components/schemas/AnswerId" + - $ref: "#/components/schemas/AnswerDocId" + AnswerResult: + required: + - answer + properties: + answer: + $ref: "#/components/schemas/Answer" + trackingToken: + type: string + description: An opaque token that represents this particular Answer. To be used for `/feedback` reporting. + GetAnswerError: + properties: + errorType: + type: string + enum: + - NO_PERMISSION + - INVALID_ID + answerAuthor: + $ref: "#/components/schemas/Person" + GetAnswerResponse: + properties: + answerResult: + $ref: "#/components/schemas/AnswerResult" + error: + $ref: "#/components/schemas/GetAnswerError" + ListAnswersRequest: + properties: + boardId: + type: integer + description: The Answer Board Id to list answers on. + ListAnswersResponse: + required: + - answers + - answerResults + properties: + answerResults: + type: array + items: + $ref: "#/components/schemas/AnswerResult" + description: List of answers with tracking tokens. + AuthStatus: + type: string + description: The per-user authorization status for a datasource. + enum: + - DISABLED + - AWAITING_AUTH + - AUTHORIZED + - STALE_OAUTH + - SEG_MIGRATION + x-enum-varnames: + - AUTH_STATUS_DISABLED + - AUTH_STATUS_AWAITING_AUTH + - AUTH_STATUS_AUTHORIZED + - AUTH_STATUS_STALE_OAUTH + - AUTH_STATUS_SEG_MIGRATION + UnauthorizedDatasourceInstance: + description: | + A datasource instance that could not return results for this request because the user has not completed or has expired per-user OAuth. + properties: + datasourceInstance: + type: string + description: | + The instance identifier (e.g. "github", "github_enterprise_0", "slack_0"). Matches the instance names used in datasource configuration. + example: slack_0 + displayName: + type: string + description: Human-readable name of the datasource instance for display. + example: Slack + authStatus: + $ref: "#/components/schemas/AuthStatus" + authUrlRelativePath: + type: string + description: | + Relative path to initiate or resume OAuth for the current user and instance, including a one-time authentication token as a query parameter. Clients should prepend their configured Glean backend base URL. + CheckDatasourceAuthResponse: + required: + - unauthorizedDatasourceInstances + properties: + unauthorizedDatasourceInstances: + type: array + description: | + Datasource instances that require per-user OAuth authorization. Empty when all datasources are authorized. + items: + $ref: "#/components/schemas/UnauthorizedDatasourceInstance" + CreateAuthTokenResponse: + required: + - token + - expirationTime + properties: + token: + type: string + description: An authentication token that can be passed to any endpoint via Bearer Authentication + expirationTime: + description: Unix timestamp for when this token expires (in seconds since epoch UTC). + type: integer + format: int64 + ToolSets: + type: object + description: The types of tools that the agent is allowed to use. Only works with FAST and ADVANCED `agent` values + properties: + enableWebSearch: + type: boolean + description: "Whether the agent is allowed to use web search (default: true)." + enableCompanyTools: + type: boolean + description: "Whether the agent is allowed to search internal company resources (default: true)." + AgentConfig: + description: Describes the agent that executes the request. + properties: + agent: + type: string + description: Name of the agent. + x-enumDescriptions: + DEFAULT: Integrates with your company's knowledge. This will soon be deprecated in favor of the FAST and ADVANCED `agent` values + GPT: Communicates directly with the LLM. This will soon be deprecated in favor of the FAST and ADVANCED `agent` values + UNIVERSAL: Uses both company and web knowledge. This will soon be deprecated in favor of the FAST and ADVANCED `agent` values + FAST: Uses an agent powered by the agentic engine that responds faster but may have lower quality results. Requires the agentic engine to be enabled in the deployment. + ADVANCED: Uses an agent powered by the agentic engine that thinks for longer and potentially makes more LLM calls to return higher quality results. Requires the agentic engine to be enabled in the deployment. + AUTO: Uses an agent powered by the agentic engine that routes between reasoning efforts based on the question and context. + x-speakeasy-enum-descriptions: + DEFAULT: Integrates with your company's knowledge. This will soon be deprecated in favor of the FAST and ADVANCED `agent` values + GPT: Communicates directly with the LLM. This will soon be deprecated in favor of the FAST and ADVANCED `agent` values + UNIVERSAL: Uses both company and web knowledge. This will soon be deprecated in favor of the FAST and ADVANCED `agent` values + FAST: Uses an agent powered by the agentic engine that responds faster but may have lower quality results. Requires the agentic engine to be enabled in the deployment. + ADVANCED: Uses an agent powered by the agentic engine that thinks for longer and potentially makes more LLM calls to return higher quality results. Requires the agentic engine to be enabled in the deployment. + AUTO: Uses an agent powered by the agentic engine that routes between reasoning efforts based on the question and context. + enum: + - DEFAULT + - GPT + - UNIVERSAL + - FAST + - ADVANCED + - AUTO + toolSets: + $ref: "#/components/schemas/ToolSets" + mode: + type: string + description: Top level modes to run GleanChat in. + x-enumDescriptions: + DEFAULT: Used if no mode supplied. + QUICK: Deprecated. + x-speakeasy-enum-descriptions: + DEFAULT: Used if no mode supplied. + QUICK: Deprecated. + enum: + - DEFAULT + - QUICK + useImageGeneration: + type: boolean + description: Whether the agent should create an image. + ChatFileStatus: + type: string + description: Current status of the file. + x-include-enum-class-prefix: true + enum: + - PROCESSING + - PROCESSED + - FAILED + - DELETED + ChatFileFailureReason: + type: string + description: Reason for failed status. + x-include-enum-class-prefix: true + enum: + - PARSE_FAILED + - AV_SCAN_FAILED + - FILE_TOO_SMALL + - FILE_TOO_LARGE + - FILE_EXTENSION_UNSUPPORTED + - FILE_METADATA_VALIDATION_FAIL + - FILE_PROCESSING_TIMED_OUT + - OAUTH_NEEDED + - URL_FETCH_FAILED + - EMPTY_CONTENT + - AUTH_REQUIRED + ChatFileMetadata: + type: object + description: Metadata of a file uploaded by a user for Chat. + properties: + status: + $ref: "#/components/schemas/ChatFileStatus" + uploadTime: + type: integer + format: int64 + description: Upload time, in epoch seconds. + processedSize: + type: integer + format: int64 + description: Size of the processed file in bytes. + failureReason: + $ref: "#/components/schemas/ChatFileFailureReason" + mimeType: + description: MIME type of the file. + type: string + ChatFile: + type: object + description: Structure for file uploaded by a user for Chat. + properties: + id: + type: string + description: Unique identifier of the file. + example: FILE_1234 + url: + type: string + description: Url of the file. + example: www.google.com + name: + type: string + description: Name of the uploaded file. + example: sample.pdf + metadata: + $ref: "#/components/schemas/ChatFileMetadata" + ReferenceRange: + description: Each text range from the response can correspond to an array of snippets from the citation source. + properties: + textRange: + $ref: "#/components/schemas/TextRange" + snippets: + type: array + items: + $ref: "#/components/schemas/SearchResultSnippet" + ChatMessageCitation: + description: Information about the source for a ChatMessage. + properties: + trackingToken: + type: string + description: An opaque token that represents this particular result in this particular ChatMessage. To be used for /feedback reporting. + sourceDocument: + $ref: "#/components/schemas/Document" + sourceFile: + $ref: "#/components/schemas/ChatFile" + sourcePerson: + $ref: "#/components/schemas/Person" + referenceRanges: + description: Each reference range and its corresponding snippets + type: array + items: + $ref: "#/components/schemas/ReferenceRange" + displayName: + description: Human understandable name of the tool. Max 50 characters. + type: string + logoUrl: + type: string + description: URL used to fetch the logo. + objectName: + type: string + description: Name of the generated object. This will be used to indicate to the end user what the generated object contains. + example: + - HR ticket + - Email + - Chat message + PersonObject: + required: + - name + - obfuscatedId + properties: + name: + type: string + description: The display name. + obfuscatedId: + type: string + description: An opaque identifier that can be used to request metadata for a Person. + AuthConfig: + description: Config for tool's authentication method. + type: object + properties: + isOnPrem: + type: boolean + description: Whether or not this tool is hosted on-premise. + usesCentralAuth: + type: boolean + description: Whether or not this uses central auth. + type: + type: string + enum: + - NONE + - OAUTH_USER + - OAUTH_ADMIN + - API_KEY + - BASIC_AUTH + - DWD + description: | + The type of authentication being used. + Use 'OAUTH_*' when Glean calls an external API (e.g., Jira) on behalf of a user to obtain an OAuth token. + 'OAUTH_ADMIN' utilizes an admin token for external API calls on behalf all users. + 'OAUTH_USER' uses individual user tokens for external API calls. + 'DWD' refers to domain wide delegation. + grantType: + type: string + enum: + - AUTH_CODE + - CLIENT_CREDENTIALS + description: The type of grant type being used. + status: + type: string + description: Auth status of the tool. + enum: + - AWAITING_AUTH + - AUTHORIZED + - AUTH_DISABLED + client_url: + type: string + format: url + description: The URL where users will be directed to start the OAuth flow. + scopes: + type: array + items: + type: string + description: A list of strings denoting the different scopes or access levels required by the tool. + audiences: + type: array + items: + type: string + description: A list of strings denoting the different audience which can access the tool. + authorization_url: + type: string + format: url + description: The OAuth provider's endpoint, where access tokens are requested. + lastAuthorizedAt: + type: string + format: date-time + description: The time the tool was last authorized in ISO format (ISO 8601). + ToolMetadata: + description: The manifest for a tool that can be used to augment Glean Assistant. + required: + - type + - name + - displayName + - displayDescription + properties: + type: + description: The type of tool. + type: string + enum: + - RETRIEVAL + - ACTION + name: + description: Unique identifier for the tool. Name should be understandable by the LLM, and will be used to invoke a tool. + type: string + displayName: + $ref: "#/components/schemas/displayName" + toolId: + type: string + description: An opaque id which is unique identifier for the tool. + displayDescription: + description: Description of the tool meant for a human. + type: string + logoUrl: + $ref: "#/components/schemas/logoUrl" + objectName: + $ref: "#/components/schemas/objectName" + knowledgeType: + type: string + description: Indicates the kind of knowledge a tool would access or modify. + enum: + - NEUTRAL_KNOWLEDGE + - COMPANY_KNOWLEDGE + - WORLD_KNOWLEDGE + createdBy: + $ref: "#/components/schemas/PersonObject" + lastUpdatedBy: + $ref: "#/components/schemas/PersonObject" + createdAt: + type: string + format: date-time + description: The time the tool was created in ISO format (ISO 8601) + lastUpdatedAt: + type: string + format: date-time + description: The time the tool was last updated in ISO format (ISO 8601) + writeActionType: + type: string + description: Valid only for write actions. Represents the type of write action. REDIRECT - The client renders the URL which contains information for carrying out the action. EXECUTION - Send a request to an external server and execute the action. MCP - Send a tools/call request to an MCP server to execute the action. + enum: + - REDIRECT + - EXECUTION + - MCP + authType: + type: string + enum: + - NONE + - OAUTH_USER + - OAUTH_ADMIN + - API_KEY + - BASIC_AUTH + - DWD + description: | + The type of authentication being used. + Use 'OAUTH_*' when Glean calls an external API (e.g., Jira) on behalf of a user to obtain an OAuth token. + 'OAUTH_ADMIN' utilizes an admin token for external API calls on behalf all users. + 'OAUTH_USER' uses individual user tokens for external API calls. + 'DWD' refers to domain wide delegation. + auth: + deprecated: true + $ref: "#/components/schemas/AuthConfig" + permissions: + deprecated: true + $ref: "#/components/schemas/ObjectPermissions" + usageInstructions: + description: Usage instructions for the LLM to use this action. + type: string + isSetupFinished: + type: boolean + description: Whether this action has been fully configured and validated. + PossibleValue: + type: object + description: Possible value of a specific parameter + properties: + value: + type: string + description: Possible value + label: + type: string + description: User-friendly label associated with the value + WriteActionParameter: + type: object + properties: + type: + type: string + description: The type of the value (e.g., integer, string, boolean, etc.) + enum: + - UNKNOWN + - INTEGER + - STRING + - BOOLEAN + displayName: + type: string + description: Human readable display name for the key. + value: + type: string + description: The value of the field. + isRequired: + type: boolean + description: Is the parameter a required field. + description: + type: string + description: Description of the parameter. + possibleValues: + type: array + items: + $ref: "#/components/schemas/PossibleValue" + description: Possible values that the parameter can take. + ToolInfo: + type: object + properties: + metadata: + $ref: "#/components/schemas/ToolMetadata" + parameters: + type: object + description: Parameters supported by the tool. + additionalProperties: + $ref: "#/components/schemas/WriteActionParameter" + ChatMessageFragment: + 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, followupRoutingSuggestion or file. + allOf: + - $ref: "#/components/schemas/Result" + - type: object + properties: + text: + type: string + querySuggestion: + description: The search queries issued while responding. + $ref: "#/components/schemas/QuerySuggestion" + file: + description: Files referenced in the message fragment. This is used to construct rich-text messages with file references. + $ref: "#/components/schemas/ChatFile" + action: + description: Basic information about an action. This can be used to construct rich-text messages with action references. + $ref: "#/components/schemas/ToolInfo" + citation: + description: Inline citation. + $ref: "#/components/schemas/ChatMessageCitation" + ChatMessage: + description: A message that is rendered as one coherent unit with one given sender. + properties: + agentConfig: + $ref: "#/components/schemas/AgentConfig" + description: Describes the agent config that generated this message. Populated on responses and not required on requests. + author: + default: USER + enum: + - USER + - GLEAN_AI + citations: + type: array + items: + $ref: "#/components/schemas/ChatMessageCitation" + description: "Deprecated: Use inline citations via ChatMessageFragment.citation instead. For detailed reference information, use ChatMessageCitation.referenceRanges. This field is still populated for backward compatibility." + deprecated: true + x-glean-deprecated: + id: 6446f85e-c90e-4c00-9717-796f9db3dc61 + introduced: "2026-02-06" + message: Use inline citations via ChatMessageFragment.citation and ChatMessageCitation.referenceRanges instead. This field is still populated for backward compatibility. + removal: "2026-10-15" + x-speakeasy-deprecation-message: "Deprecated on 2026-02-06, removal scheduled for 2026-10-15: Use inline citations via ChatMessageFragment.citation and ChatMessageCitation.referenceRanges instead. This field is still populated for backward compatibility." + uploadedFileIds: + type: array + items: + type: string + description: IDs of files uploaded in the message that are referenced to generate the answer. + fragments: + type: array + description: A list of rich data used to represent the response or formulate a request. These are linearly stitched together to support richer data formats beyond simple text. + items: + $ref: "#/components/schemas/ChatMessageFragment" + ts: + type: string + description: Response timestamp of the message. + messageId: + type: string + description: A unique server-side generated ID used to identify a message, automatically populated for any USER authored messages. + messageTrackingToken: + type: string + description: Opaque tracking token generated server-side. + messageType: + type: string + default: CONTENT + description: Semantically groups content of a certain type. It can be used for purposes such as differential UI treatment. USER authored messages should be of type CONTENT and do not need `messageType` specified. + x-enumDescriptions: + UPDATE: An intermediate state message for progress updates. + CONTENT: A user query or response message. + CONTEXT: A message providing context in addition to the user query. + CONTROL: Control signal for message streaming. + CONTROL_START: Control signal indicating the start of a message stream. + CONTROL_FINISH: Control signal indicating the end of a message stream. + CONTROL_CANCEL: Control signal indicating the message stream was cancelled. + CONTROL_RETRY: Indicates the message streaming needed to be retried. + CONTROL_UNKNOWN: Fallback control signal for unrecognized control types. + DEBUG: A debug message. Strictly used internally. + DEBUG_EXTERNAL: A debug message to be used while debugging Action creation. + ERROR: A message that describes an error while processing the request. + HEADING: A heading message used to distinguish different sections of the holistic response. + WARNING: A warning message to be shown to the user. + SERVER_TOOL: A message used to for server-side tool auth/use, for request and response. + x-speakeasy-enum-descriptions: + UPDATE: An intermediate state message for progress updates. + CONTENT: A user query or response message. + CONTEXT: A message providing context in addition to the user query. + CONTROL: Control signal for message streaming. + CONTROL_START: Control signal indicating the start of a message stream. + CONTROL_FINISH: Control signal indicating the end of a message stream. + CONTROL_CANCEL: Control signal indicating the message stream was cancelled. + CONTROL_RETRY: Indicates the message streaming needed to be retried. + CONTROL_UNKNOWN: Fallback control signal for unrecognized control types. + DEBUG: A debug message. Strictly used internally. + DEBUG_EXTERNAL: A debug message to be used while debugging Action creation. + ERROR: A message that describes an error while processing the request. + HEADING: A heading message used to distinguish different sections of the holistic response. + WARNING: A warning message to be shown to the user. + SERVER_TOOL: A message used to for server-side tool auth/use, for request and response. + enum: + - UPDATE + - CONTENT + - CONTEXT + - CONTROL + - CONTROL_START + - CONTROL_FINISH + - CONTROL_CANCEL + - CONTROL_RETRY + - CONTROL_UNKNOWN + - DEBUG + - DEBUG_EXTERNAL + - ERROR + - HEADING + - WARNING + - SERVER_TOOL + hasMoreFragments: + deprecated: true + type: boolean + description: Signals there are additional response fragments incoming. + ChatRequestBase: + required: + - messages + description: The minimal set of fields that form a chat request. + properties: + messages: + type: array + description: A list of chat messages, from most recent to least recent. At least one message must specify a USER author. + items: + $ref: "#/components/schemas/ChatMessage" + sessionInfo: + description: Optional object for tracking the session used by the client and for debugging purposes. + $ref: "#/components/schemas/SessionInfo" + saveChat: + type: boolean + description: Save the current interaction as a Chat for the user to access and potentially continue later. + 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" + - type: object + properties: + documentSpecs: + type: array + items: + $ref: "#/components/schemas/DocumentSpec" + datasourceInstances: + type: array + items: + type: string + ChatRequest: + allOf: + - $ref: "#/components/schemas/ChatRequestBase" + - type: object + properties: + inclusions: + $ref: "#/components/schemas/ChatRestrictionFilters" + description: A list of filters which only allows chat to access certain content. + exclusions: + $ref: "#/components/schemas/ChatRestrictionFilters" + description: A list of filters which disallows chat from accessing certain content. If content is in both inclusions and exclusions, it'll be excluded. + timeoutMillis: + type: integer + description: Timeout in milliseconds for the request. A `408` error will be returned if handling the request takes longer. + example: 30000 + applicationId: + type: string + description: The ID of the application this request originates from, used to determine the configuration of underlying chat processes. This should correspond to the ID set during admin setup. If not specified, the default chat experience will be used. + agentId: + type: string + description: The ID of the Agent that should process this chat request. Only Agents with trigger set to 'User chat message' are invokable through this API. If not specified, the default chat experience will be used. + stream: + type: boolean + description: If set, response lines will be streamed one-by-one as they become available. Each will be a ChatResponse, formatted as JSON, and separated by a new line. If false, the entire response will be returned at once. Note that if this is set and the model being used does not support streaming, the model's response will not be streamed, but other messages from the endpoint still will be. + ChatResponse: + description: A single response from the /chat backend. + properties: + messages: + type: array + items: + $ref: "#/components/schemas/ChatMessage" + chatId: + type: string + description: The id of the associated Chat the messages belong to, if one exists. + followUpPrompts: + type: array + items: + type: string + description: Follow-up prompts for the user to potentially use + backendTimeMillis: + type: integer + format: int64 + description: Time in milliseconds the backend took to respond to the request. + example: 1100 + chatSessionTrackingToken: + type: string + description: A token that is used to track the session. + DeleteChatsRequest: + required: + - ids + properties: + ids: + type: array + items: + type: string + description: A non-empty list of ids of the Chats to be deleted. + GetChatRequest: + required: + - id + properties: + id: + type: string + description: The id of the Chat to be retrieved. + Chat: + description: A historical representation of a series of chat messages a user had with Glean Assistant. + allOf: + - $ref: "#/components/schemas/ChatMetadata" + - $ref: "#/components/schemas/PermissionedObject" + properties: + messages: + type: array + items: + $ref: "#/components/schemas/ChatMessage" + description: The chat messages within a Chat. + roles: + type: array + items: + $ref: "#/components/schemas/UserRoleSpecification" + description: A list of roles for this Chat. + ChatResult: + properties: + chat: + $ref: "#/components/schemas/Chat" + trackingToken: + type: string + description: An opaque token that represents this particular Chat. To be used for `/feedback` reporting. + GetChatResponse: + properties: + chatResult: + $ref: "#/components/schemas/ChatResult" + ChatMetadataResult: + properties: + chat: + $ref: "#/components/schemas/ChatMetadata" + trackingToken: + type: string + description: An opaque token that represents this particular Chat. To be used for `/feedback` reporting. + ListChatsResponse: + properties: + chatResults: + type: array + items: + $ref: "#/components/schemas/ChatMetadataResult" + x-includeEmpty: true + GetChatApplicationRequest: + required: + - id + properties: + id: + type: string + description: The id of the Chat application to be retrieved. + ChatApplicationDetails: {} + GetChatApplicationResponse: + properties: + application: + $ref: "#/components/schemas/ChatApplicationDetails" + UploadChatFilesRequest: + required: + - files + properties: + files: + type: array + items: + type: string + format: binary + description: Raw files to be uploaded for chat in binary format. + UploadChatFilesResponse: + properties: + files: + type: array + items: + $ref: "#/components/schemas/ChatFile" + description: Files uploaded for chat. + GetChatFilesRequest: + required: + - fileIds + properties: + fileIds: + type: array + items: + type: string + description: IDs of files to fetch. + GetChatFilesResponse: + properties: + files: + description: A map of file IDs to ChatFile structs. + type: object + additionalProperties: + $ref: "#/components/schemas/ChatFile" + DeleteChatFilesRequest: + required: + - fileIds + properties: + fileIds: + type: array + items: + type: string + description: IDs of files to delete. + Agent: + title: Agent + type: object + required: + - agent_id + - name + - capabilities + properties: + agent_id: + type: string + title: Agent Id + description: The ID of the agent. + example: mho4lwzylcozgoc2 + name: + type: string + title: Agent Name + description: The name of the agent + example: HR Policy Agent + description: + type: string + title: Description + description: The description of the agent. + example: This agent answers questions about the current company HR policies. + metadata: + type: object + title: Metadata + description: The agent metadata. Currently not implemented. + capabilities: + type: object + title: Agent Capabilities + description: |- + Describes features that the agent supports. example: { + "ap.io.messages": true, + "ap.io.streaming": true + } + properties: + ap.io.messages: + type: boolean + title: Messages + description: Whether the agent supports messages as an input. If true, you'll pass `messages` as an input when running the agent. + ap.io.streaming: + type: boolean + title: Streaming + description: Whether the agent supports streaming output. If true, you you can stream agent ouput. All agents currently support streaming. + additionalProperties: true + ErrorResponse: + description: Error response returned for failed requests + type: object + properties: + message: + description: Client-facing error message describing what went wrong + type: string + ActionSummary: + type: object + description: Represents a minimal summary of an action. + required: + - tool_id + - display_name + properties: + tool_id: + type: string + description: The unique identifier of the action. + display_name: + type: string + description: The display name of the action. + type: + type: string + description: The type of tool - RETRIEVAL for read-only operations, ACTION for operations that modify data. + auth_type: + type: string + description: The authentication type required - OAUTH_USER, OAUTH_ADMIN, API_KEY, BASIC_AUTH, DWD (domain-wide delegation), or NONE. + write_action_type: + type: string + description: For write actions only - REDIRECT (client renders URL) or EXECUTION (external server call). + is_setup_finished: + type: boolean + description: Whether this action has been fully configured and validated. + x-includeEmpty: true + data_source: + type: string + description: | + Indicates the kind of knowledge a tool would access or modify. + Company knowledge: + - Glean search, and any native tools that derive from it (e.g., expert search, code search) + - Native federated tools to company data sources (e.g., outlook search) + World knowledge: + - Native tools that bring in public content (e.g., web browser) + - Platform action like bingwebsearch, geminiwebsearch, etc + Neutral knowledge: + - Native tools that don't access or modify content via APIs (e.g., file analyst, think) + - Platform read or write tools (creator has to determine their knowledge implications) + AgentSchemas: + properties: + agent_id: + type: string + title: Agent Id + description: The ID of the agent. + example: mho4lwzylcozgoc2 + input_schema: + type: object + title: Input Schema + description: The schema for the agent input. In JSON Schema format. + output_schema: + type: object + title: Output Schema + description: The schema for the agent output. In JSON Schema format. + tools: + type: array + title: Tools + description: List of tools that the agent can invoke. Only included when include_tools query parameter is set to true. + items: + $ref: "#/components/schemas/ActionSummary" + type: object + required: + - agent_id + - input_schema + - output_schema + title: AgentSchemas + description: Defines the structure and properties of an agent. + SearchAgentsRequest: + type: object + properties: + name: + type: string + description: Filters on the name of the agent. The keyword search is case-insensitive. If search string is ommited or empty, acts as no filter. + example: HR Policy Agent + SearchAgentsResponse: + type: object + title: Response Search Agents + properties: + agents: + type: array + items: + $ref: "#/components/schemas/Agent" + ContentType: + type: string + enum: + - text + Message: + type: object + properties: + role: + type: string + title: Role + description: The role of the message. + example: USER + content: + title: Content + description: The content of the message. + type: array + items: + type: object + properties: + text: + type: string + type: + $ref: "#/components/schemas/ContentType" + required: + - text + - type + title: MessageTextBlock + AgentRunCreate: + description: "Payload for creating a run. **Important**: If the agent uses an input form trigger, the `input` field is required and must include all fields defined in the form schema. Even fields marked as optional in the UI must be included in the request—use an empty string (`\"\"`) for optional fields without values. Omitting required form fields will result in a 500 error." + type: object + required: + - agent_id + properties: + agent_id: + type: string + title: Agent Id + description: The ID of the agent to run. + input: + type: object + title: Input + description: The input to the agent. Required when the agent uses an input form trigger. + additionalProperties: true + messages: + type: array + items: + $ref: "#/components/schemas/Message" + title: Messages + description: The messages to pass an input to the agent. + metadata: + type: object + title: Metadata + description: The metadata to pass to the agent. + additionalProperties: true + AgentExecutionStatus: + description: The status of the run. One of 'error', 'success'. + type: string + enum: + - error + - success + title: AgentExecutionStatus + AgentRun: + allOf: + - $ref: "#/components/schemas/AgentRunCreate" + - type: object + properties: + status: + $ref: "#/components/schemas/AgentExecutionStatus" + AgentRunWaitResponse: + type: object + properties: + run: + $ref: "#/components/schemas/AgentRun" + title: Run + description: The run information. + messages: + type: array + items: + $ref: "#/components/schemas/Message" + title: Messages + description: The messages returned by the run. + CollectionItemDescriptor: + allOf: + - $ref: "#/components/schemas/CollectionItemMutableProperties" + properties: + url: + type: string + description: The URL of the item being added. + documentId: + type: string + description: The Glean Document ID of the item being added if it's an indexed document. + newNextItemId: + type: string + description: The (optional) ItemId of the next CollectionItem in sequence. If omitted, will be added to the end of the Collection + itemType: + type: string + enum: + - DOCUMENT + - TEXT + - URL + AddCollectionItemsRequest: + required: + - collectionId + properties: + collectionId: + type: number + description: The ID of the Collection to add items to. + addedCollectionItemDescriptors: + type: array + items: + $ref: "#/components/schemas/CollectionItemDescriptor" + description: The CollectionItemDescriptors of the items being added. + AddCollectionItemsError: + properties: + errorType: + type: string + enum: + - EXISTING_ITEM + AddCollectionItemsResponse: + properties: + collection: + $ref: "#/components/schemas/Collection" + description: The modified Collection. Only CollectionItemMutableProperties are set for each item. + error: + $ref: "#/components/schemas/AddCollectionItemsError" + CreateCollectionRequest: + allOf: + - $ref: "#/components/schemas/CollectionMutableProperties" + - type: object + properties: + newNextItemId: + type: string + description: The (optional) ItemId of the next CollectionItem in sequence. If omitted, will be added to the end of the Collection. Only used if parentId is specified. + CollectionError: + required: + - errorCode + properties: + errorCode: + type: string + enum: + - NAME_EXISTS + - NOT_FOUND + - COLLECTION_PINNED + - CONCURRENT_HIERARCHY_EDIT + - HEIGHT_VIOLATION + - WIDTH_VIOLATION + - NO_PERMISSIONS + CreateCollectionResponse: + allOf: + - type: object + anyOf: + - required: + - collection + - required: + - error + properties: + collection: + $ref: "#/components/schemas/Collection" + error: + $ref: "#/components/schemas/CollectionError" + DeleteCollectionRequest: + required: + - ids + properties: + ids: + type: array + items: + type: integer + description: The IDs of the Collections to delete. + allowedDatasource: + type: string + description: The datasource allowed in the Collection to be deleted. + DeleteCollectionItemRequest: + required: + - collectionId + - itemId + properties: + collectionId: + type: number + description: The ID of the Collection to remove an item in. + itemId: + type: string + description: The item ID of the CollectionItem to remove from this Collection. + documentId: + type: string + description: The (optional) Glean Document ID of the CollectionItem to remove from this Collection if this is an indexed document. + DeleteCollectionItemResponse: + properties: + collection: + $ref: "#/components/schemas/Collection" + description: The modified Collection. Only CollectionItemMutableProperties are set for each item. + EditCollectionRequest: + allOf: + - $ref: "#/components/schemas/CollectionMutableProperties" + - type: object + required: + - id + properties: + id: + type: integer + description: The ID of the Collection to modify. + EditCollectionResponse: + allOf: + - $ref: "#/components/schemas/Collection" + - $ref: "#/components/schemas/CollectionError" + - type: object + properties: + collection: + $ref: "#/components/schemas/Collection" + error: + $ref: "#/components/schemas/CollectionError" + EditCollectionItemRequest: + required: + - collectionId + - itemId + allOf: + - $ref: "#/components/schemas/CollectionItemMutableProperties" + - type: object + properties: + collectionId: + type: integer + description: The ID of the Collection to edit CollectionItems in. + itemId: + type: string + description: The ID of the CollectionItem to edit. + EditCollectionItemResponse: + properties: + collection: + $ref: "#/components/schemas/Collection" + description: The modified Collection. Only CollectionItemMutableProperties are set for each item. + GetCollectionRequest: + required: + - id + properties: + id: + type: integer + description: The ID of the Collection to be retrieved. + withItems: + type: boolean + description: Whether or not to include the Collection Items in this Collection. Only request if absolutely required, as this is expensive. + withHierarchy: + type: boolean + description: Whether or not to include the top level Collection in this Collection's hierarchy. + allowedDatasource: + type: string + description: The datasource allowed in the Collection returned. + GetCollectionResponse: + properties: + collection: + $ref: "#/components/schemas/Collection" + rootCollection: + $ref: "#/components/schemas/Collection" + trackingToken: + type: string + description: An opaque token that represents this particular Collection. To be used for `/feedback` reporting. + error: + $ref: "#/components/schemas/CollectionError" + ListCollectionsRequest: + properties: + includeAudience: + type: boolean + description: Whether to include the audience filters with the listed Collections. + includeRoles: + type: boolean + description: Whether to include the editor roles with the listed Collections. + allowedDatasource: + type: string + description: |- + The datasource type this Collection can hold. + ANSWERS - for Collections representing answer boards + ListCollectionsResponse: + required: + - collections + properties: + collections: + type: array + items: + $ref: "#/components/schemas/Collection" + description: List of all Collections, no Collection items are fetched. + GetDocPermissionsRequest: + type: object + properties: + documentId: + type: string + description: The Glean Document ID to retrieve permissions for. + GetDocPermissionsResponse: + type: object + properties: + allowedUserEmails: + type: array + items: + type: string + description: A list of emails of users who have access to the document. If the document is visible to all Glean users, a list with only a single value of 'VISIBLE_TO_ALL'. + GetDocumentsRequest: + required: + - documentSpecs + properties: + documentSpecs: + type: array + items: + $ref: "#/components/schemas/DocumentSpec" + description: The specification for the documents to be retrieved. + includeFields: + description: List of Document fields to return (that aren't returned by default) + type: array + items: + type: string + enum: + - LAST_VIEWED_AT + - VISITORS_COUNT + - RECENT_SHARES + - DOCUMENT_CONTENT + - CUSTOM_METADATA + DocumentOrError: + x-omit-error-on-success: true + oneOf: + - $ref: "#/components/schemas/Document" + - type: object + required: + - error + properties: + error: + type: string + description: The text for error, reason. + x-is-error-field: true + GetDocumentsResponse: + properties: + documents: + type: object + additionalProperties: + $ref: "#/components/schemas/DocumentOrError" + description: The document details or the error if document is not found. + GetDocumentsByFacetsRequest: + required: + - filterSets + properties: + datasourcesFilter: + type: array + items: + type: string + description: Filter results to one or more datasources (e.g. gmail, slack). All results are returned if missing. + filterSets: + type: array + items: + $ref: "#/components/schemas/FacetFilterSet" + description: A list of facet filter sets that will be OR'ed together. An AND is assumed between different filters in each set. + cursor: + type: string + description: Pagination cursor. A previously received opaque token representing the position in the overall results at which to start. + GetDocumentsByFacetsResponse: + properties: + documents: + type: array + items: + $ref: "#/components/schemas/Document" + description: The document details, ordered by score. + hasMoreResults: + type: boolean + description: Whether more results are available. Use cursor to retrieve them. + cursor: + type: string + description: Cursor that indicates the start of the next page of results. To be passed in "more" requests for this query. + InsightsOverviewRequest: + properties: + departments: + type: array + items: + type: string + description: Departments for which Insights are requested. + dayRange: + $ref: "#/components/schemas/Period" + description: Time period for which Insights are requested. + InsightsAssistantRequest: + properties: + departments: + type: array + items: + type: string + description: Departments for which Insights are requested. + dayRange: + $ref: "#/components/schemas/Period" + description: Time period for which Insights are requested. + AgentsInsightsV2Request: + properties: + agentIds: + type: array + items: + type: string + description: IDs of the Agents for which Insights should be returned. An empty array signifies all. + departments: + type: array + items: + type: string + description: Departments for which Insights are requested. + dayRange: + $ref: "#/components/schemas/Period" + description: Time period for which Insights are requested. + InsightsRequest: + properties: + overviewRequest: + $ref: "#/components/schemas/InsightsOverviewRequest" + x-visibility: Public + description: If specified, will return data for the Overview section of the Insights Dashboard. + assistantRequest: + $ref: "#/components/schemas/InsightsAssistantRequest" + x-visibility: Public + description: If specified, will return data for the Assistant section of the Insights Dashboard. + agentsRequest: + $ref: "#/components/schemas/AgentsInsightsV2Request" + x-visibility: Public + description: If specified, will return data for the Agents section of the Insights Dashboard. + disablePerUserInsights: + type: boolean + description: If true, suppresses the generation of per-user Insights in the response. Default is false. + UserActivityInsight: + required: + - user + - activity + properties: + user: + $ref: "#/components/schemas/Person" + activity: + type: string + enum: + - ALL + - SEARCH + description: Activity e.g. search, home page visit or all. + lastActivityTimestamp: + type: integer + description: Unix timestamp of the last activity (in seconds since epoch UTC). + activityCount: + $ref: "#/components/schemas/CountInfo" + activeDayCount: + $ref: "#/components/schemas/CountInfo" + GleanAssistInsightsResponse: + properties: + lastLogTimestamp: + type: integer + description: Unix timestamp of the last activity processed to make the response (in seconds since epoch UTC). + activityInsights: + type: array + items: + $ref: "#/components/schemas/UserActivityInsight" + description: Insights for all active users with respect to set of actions. + totalActiveUsers: + type: integer + description: Total number of active users in the requested period. + datasourceInstances: + type: array + items: + type: string + description: List of datasource instances for which glean assist is enabled. + departments: + type: array + items: + type: string + description: List of departments applicable for users tab. + CurrentActiveUsers: + properties: + monthlyActiveUsers: + type: integer + description: Number of current Monthly Active Users, in the specified departments. + weeklyActiveUsers: + type: integer + description: Number of current Weekly Active Users, in the specified departments. + InsightsSearchSummary: + allOf: + - $ref: "#/components/schemas/CurrentActiveUsers" + - type: object + properties: + numSearches: + type: integer + description: Total number of searches by users over the specified time period. + numSearchUsers: + type: integer + description: Total number of distinct users who searched over the specified time period. + InsightsChatSummary: + allOf: + - $ref: "#/components/schemas/CurrentActiveUsers" + - type: object + properties: + numChats: + type: integer + description: Total number of chats by users over the specified time period. + numChatUsers: + type: integer + description: Total number of distinct users who used Chat over the specified time period. + InsightsDepartmentsSummary: + allOf: + - $ref: "#/components/schemas/CurrentActiveUsers" + - type: object + properties: + departments: + type: array + items: + type: string + description: Department name(s). + employeeCount: + type: integer + description: Number of current employees in the specified departments, according to the Org Chart. + totalSignups: + type: integer + description: Number of current signed up employees in the specified departments, according to the Org Chart. + searchSummary: + $ref: "#/components/schemas/InsightsSearchSummary" + chatSummary: + $ref: "#/components/schemas/InsightsChatSummary" + extensionSummary: + $ref: "#/components/schemas/CurrentActiveUsers" + ugcSummary: + $ref: "#/components/schemas/CurrentActiveUsers" + LabeledCountInfo: + required: + - label + properties: + label: + type: string + description: Label for the included count information. + countInfo: + type: array + items: + $ref: "#/components/schemas/CountInfo" + description: List of data points for counts for a given date period. + PerUserInsight: + properties: + person: + $ref: "#/components/schemas/Person" + numSearches: + type: integer + description: Total number of searches by this user over the specified time period. + numChats: + type: integer + description: Total number of chats by this user over the specified time period. + numActiveSessions: + type: integer + description: Total number of active sessions by this user in a Glean client over the specified time period. + numGleanbotUsefulResponses: + type: integer + description: Total number of Gleanbot responses marked useful by this user over the specified time period. + numDaysActive: + type: integer + description: Total number of days this user was an Active User over the specified time period. + numSummarizations: + type: integer + description: Total number of summarized items by this user over the specified time period. + numAiAnswers: + type: integer + description: Total number of AI Answers interacted with by this user over the specified time period. + numAgentRuns: + type: integer + description: Total number of agent runs for this user over the specified time period. + InsightsOverviewResponse: + allOf: + - $ref: "#/components/schemas/InsightsDepartmentsSummary" + - type: object + properties: + lastUpdatedTs: + type: integer + description: Unix timestamp of the last update for the insights data in the response. + searchSessionSatisfaction: + type: number + format: float + description: Search session satisfaction rate, over the specified time period in the specified departments. + monthlyActiveUserTimeseries: + $ref: "#/components/schemas/LabeledCountInfo" + weeklyActiveUserTimeseries: + $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: + type: integer + description: Counts of search result clicks, by datasource, over the specified time period in the specified departments. + chatDatasourceCounts: + type: object + additionalProperties: + type: integer + description: Counts of cited documents in chat, by datasource, over the specified time period in the specified departments. + perUserInsights: + type: array + items: + $ref: "#/components/schemas/PerUserInsight" + description: 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. + PerUserAssistantInsight: + properties: + person: + $ref: "#/components/schemas/Person" + numChatMessages: + type: integer + description: Total number of chat messages sent by this user over the specified time period. + numSummarizations: + type: integer + description: Total number of summarized items by this user over the specified time period. + numAiAnswers: + type: integer + description: Total number of AI Answers interacted with by this user over the specified time period. + numGleanbotInteractions: + type: integer + description: Total number of Gleanbot responses marked useful by this user over the specified time period. + numDaysActive: + type: integer + description: Total number of days this user was active on the Assistant over the specified time period. + AssistantInsightsResponse: + allOf: + - $ref: "#/components/schemas/CurrentActiveUsers" + - type: object + properties: + lastUpdatedTs: + type: integer + description: Unix timestamp of the last update for the insights data in the response. + monthlyActiveUserTimeseries: + $ref: "#/components/schemas/LabeledCountInfo" + weeklyActiveUserTimeseries: + $ref: "#/components/schemas/LabeledCountInfo" + dailyActiveUserTimeseries: + $ref: "#/components/schemas/LabeledCountInfo" + totalSignups: + type: integer + description: Number of current signed up employees in the specified departments, according to the Org Chart. + chatMessagesTimeseries: + $ref: "#/components/schemas/LabeledCountInfo" + summarizationsTimeseries: + $ref: "#/components/schemas/LabeledCountInfo" + aiAnswersTimeseries: + $ref: "#/components/schemas/LabeledCountInfo" + gleanbotInteractionsTimeseries: + $ref: "#/components/schemas/LabeledCountInfo" + perUserInsights: + type: array + items: + $ref: "#/components/schemas/PerUserAssistantInsight" + upvotesTimeseries: + $ref: "#/components/schemas/LabeledCountInfo" + downvotesTimeseries: + $ref: "#/components/schemas/LabeledCountInfo" + PerAgentInsight: + properties: + agentId: + type: string + description: Agent ID + agentName: + type: string + description: Agent name + icon: + $ref: "#/components/schemas/IconConfig" + description: Agent icon configuration + isDeleted: + type: boolean + description: Indicates whether the agent has been deleted + userCount: + type: integer + description: Total number of users for this agent over the specified time period. + runCount: + type: integer + description: Total number of runs for this agent over the specified time period. + upvoteCount: + type: integer + description: Total number of upvotes for this agent over the specified time period. + downvoteCount: + type: integer + description: Total number of downvotes for this agent over the specified time period. + AgentsUsageByDepartmentInsight: + properties: + department: + type: string + description: Name of the department + agentAdoptionRate: + type: number + format: float + description: Percentage of employees in the department who have used agents at least once over the specified time period. + userCount: + type: integer + description: Total number of users in this department who have used any agent over the specified time period. + runCount: + type: integer + description: Total number of runs in this department over the specified time period. + agentId: + type: string + description: ID of the agent to be shown in the agent column in this department over the specified time period. + agentName: + type: string + description: Name of the agent to be shown in the agent column in this department over the specified time period. + icon: + $ref: "#/components/schemas/IconConfig" + description: Agent icon configuration + isDeleted: + type: boolean + description: Indicates whether the agent has been deleted + AgentUsersInsight: + properties: + person: + $ref: "#/components/schemas/Person" + departmentName: + type: string + description: Department name + agentsUsedCount: + type: integer + description: Total number of agents used by this user over the specified time period. + averageRunsPerDayCount: + type: number + format: float + description: Average number of runs per day for this user over the specified time period. + agentsCreatedCount: + type: integer + description: Total number of agents created by this user over the specified time period. + runCount: + type: integer + description: Total number of agent runs for this user over the specified time period. + AgentsInsightsV2Response: + allOf: + - $ref: "#/components/schemas/CurrentActiveUsers" + - type: object + properties: + monthlyActiveUserTimeseries: + $ref: "#/components/schemas/LabeledCountInfo" + weeklyActiveUserTimeseries: + $ref: "#/components/schemas/LabeledCountInfo" + dailyActiveUserTimeseries: + $ref: "#/components/schemas/LabeledCountInfo" + sharedAgentsCount: + type: integer + description: Total number of shared agents. + topAgentsInsights: + type: array + items: + $ref: "#/components/schemas/PerAgentInsight" + agentsUsageByDepartmentInsights: + type: array + items: + $ref: "#/components/schemas/AgentsUsageByDepartmentInsight" + agentUsersInsights: + type: array + items: + $ref: "#/components/schemas/AgentUsersInsight" + dailyAgentRunsTimeseries: + $ref: "#/components/schemas/LabeledCountInfo" + upvotesTimeseries: + $ref: "#/components/schemas/LabeledCountInfo" + downvotesTimeseries: + $ref: "#/components/schemas/LabeledCountInfo" + InsightsResponse: + properties: + gleanAssist: + deprecated: true + $ref: "#/components/schemas/GleanAssistInsightsResponse" + x-glean-deprecated: + id: 15850758-4d95-4d98-8d57-39c50663a796 + introduced: "2026-02-05" + message: Field is deprecated + removal: "2026-10-15" + x-speakeasy-deprecation-message: "Deprecated on 2026-02-05, removal scheduled for 2026-10-15: Field is deprecated" + overviewResponse: + $ref: "#/components/schemas/InsightsOverviewResponse" + assistantResponse: + $ref: "#/components/schemas/AssistantInsightsResponse" + agentsResponse: + $ref: "#/components/schemas/AgentsInsightsV2Response" + MessagesRequest: + required: + - id + - idType + - datasource + properties: + idType: + type: string + enum: + - CHANNEL_NAME + - THREAD_ID + - CONVERSATION_ID + description: Type of the id in the incoming request. + id: + type: string + description: ID corresponding to the requested idType. Note that channel and threads are represented by the underlying datasource's ID and conversations are represented by their document's ID. + workspaceId: + type: string + description: Id for the for the workspace in case of multiple workspaces. + direction: + type: string + enum: + - OLDER + - NEWER + description: The direction of the results asked with respect to the reference timestamp. Missing field defaults to OLDER. Only applicable when using a message_id. + timestampMillis: + type: integer + format: int64 + description: Timestamp in millis of the reference message. Only applicable when using a message_id. + includeRootMessage: + type: boolean + description: Whether to include root message in response. + datasource: + type: string + enum: + - SLACK + - SLACKENTGRID + - MICROSOFTTEAMS + - GCHAT + - FACEBOOKWORKPLACE + description: The type of the data source. + datasourceInstanceDisplayName: + type: string + description: The datasource instance display name from which the document was extracted. This is used for appinstance facet filter for datasources that support multiple instances. + InvalidOperatorValueError: + properties: + key: + description: The operator key that has an invalid value. + type: string + value: + description: The invalid operator value. + type: string + ErrorMessage: + properties: + source: + description: The datasource this message relates to. + type: string + errorMessage: + type: string + ErrorInfo: + properties: + badGmailToken: + type: boolean + description: Indicates the gmail results could not be fetched due to bad token. + badOutlookToken: + type: boolean + description: Indicates the outlook results could not be fetched due to bad token. + invalidOperators: + type: array + description: Indicates results could not be fetched due to invalid operators in the query. + items: + $ref: "#/components/schemas/InvalidOperatorValueError" + errorMessages: + type: array + items: + $ref: "#/components/schemas/ErrorMessage" + federatedSearchRateLimitError: + type: boolean + description: Indicates the federated search results could not be fetched due to rate limiting. + x-speakeasy-name-override: GleanDataError + ResultsResponse: + properties: + trackingToken: + type: string + description: A token that should be passed for additional requests related to this request (such as more results requests). + sessionInfo: + $ref: "#/components/schemas/SessionInfo" + results: + type: array + items: + $ref: "#/components/schemas/SearchResult" + structuredResults: + type: array + items: + $ref: "#/components/schemas/StructuredResult" + generatedQnaResult: + $ref: "#/components/schemas/GeneratedQna" + errorInfo: + $ref: "#/components/schemas/ErrorInfo" + requestID: + type: string + description: A platform-generated request ID to correlate backend logs. + backendTimeMillis: + type: integer + format: int64 + description: Time in milliseconds the backend took to respond to the request. + example: 1100 + BackendExperimentsContext: + properties: + experimentIds: + type: array + items: + type: integer + format: int64 + description: List of experiment ids for the corresponding request. + SearchWarning: + required: + - warningType + properties: + warningType: + type: string + enum: + - LONG_QUERY + - QUOTED_PUNCTUATION + - PUNCTUATION_ONLY + - COPYPASTED_QUOTES + - INVALID_OPERATOR + - MAYBE_INVALID_FACET_QUERY + - TOO_MANY_DATASOURCE_GROUPS + description: The type of the warning. + lastUsedTerm: + type: string + description: The last term we considered in the user's long query. + quotesIgnoredQuery: + type: string + description: The query after ignoring/removing quotes. + ignoredTerms: + type: array + items: + type: string + description: A list of query terms that were ignored when generating search results, if any. For example, terms containing invalid filters such as "updated:invalid_date" will be ignored. + SearchResponseMetadata: + properties: + rewrittenQuery: + type: string + description: A cleaned up or updated version of the query to be displayed in the query box. Useful for mapping visual facets to search operators. + searchedQuery: + type: string + description: The actual query used to perform search and return results. + searchedQueryWithoutNegation: + type: string + description: The query used to perform search and return results, with negated terms and facets removed. + x-includeEmpty: true + searchedQueryRanges: + type: array + items: + $ref: "#/components/schemas/TextRange" + description: The bolded ranges within the searched query. + originalQuery: + type: string + description: The query text sent by the client in the request. + querySuggestion: + $ref: "#/components/schemas/QuerySuggestion" + description: An alternative query to the one provided that may give better results, e.g. a spelling suggestion. + additionalQuerySuggestions: + $ref: "#/components/schemas/QuerySuggestionList" + description: Other alternative queries that may provide better or more specific results than the original query. + negatedTerms: + type: array + items: + type: string + description: A list of terms that were negated when processing the query. + modifiedQueryWasUsed: + type: boolean + description: A different query was performed than the one requested. + originalQueryHadNoResults: + type: boolean + description: No results were found for the original query. The usage of this bit in conjunction with modifiedQueryWasUsed will dictate whether the full page replacement is 0-result or few-result based. + searchWarning: + $ref: "#/components/schemas/SearchWarning" + triggeredExpertDetection: + type: boolean + description: Whether the query triggered expert detection results in the People tab. + isNoQuotesSuggestion: + type: boolean + description: Whether the query was modified to remove quotes + FacetValue: + properties: + stringValue: + type: string + example: engineering + description: The value that should be set in the FacetFilter when applying this filter to a search request. + integerValue: + type: integer + example: 5 + displayLabel: + type: string + example: engineering + description: An optional user-friendly label to display in place of the facet value. + iconConfig: + $ref: "#/components/schemas/IconConfig" + FacetBucket: + properties: + count: + type: integer + description: Estimated number of results in this facet. + example: 1 + datasource: + type: string + example: jira + description: The datasource the value belongs to. This will be used by the all tab to show types across all datasources. + percentage: + type: integer + description: Estimated percentage of results in this facet. + example: 5 + value: + $ref: "#/components/schemas/FacetValue" + FacetResult: + properties: + sourceName: + type: string + description: The source of this facet (e.g. container_name, type, last_updated_at). + example: container_name + operatorName: + type: string + description: How to display this facet. Currently supportes 'SelectSingle' and 'SelectMultiple'. + example: SelectMultiple + buckets: + type: array + description: A list of unique buckets that exist within this result set. + items: + $ref: "#/components/schemas/FacetBucket" + hasMoreBuckets: + type: boolean + description: Returns true if more buckets exist than those returned. Additional buckets can be retrieve by requesting again with a higher facetBucketSize. + example: false + groupName: + type: string + description: For most facets this will be the empty string, meaning the facet is high-level and applies to all documents for the datasource. When non-empty, this is used to group facets together (i.e. group facets for each doctype for a certain datasource) + example: Service Cloud + ResultsDescription: + properties: + text: + type: string + description: Textual description of the results. Can be shown at the top of SERP, e.g. 'People who write about this topic' for experts in people tab. + iconConfig: + $ref: "#/components/schemas/IconConfig" + description: The config for the icon that's displayed with this description + SearchResponse: + allOf: + - $ref: "#/components/schemas/ResultsResponse" + - $ref: "#/components/schemas/BackendExperimentsContext" + - type: object + properties: + metadata: + $ref: "#/components/schemas/SearchResponseMetadata" + facetResults: + type: array + items: + $ref: "#/components/schemas/FacetResult" + resultTabs: + type: array + items: + $ref: "#/components/schemas/ResultTab" + description: All result tabs available for the current query. Populated if QUERY_METADATA is specified in the request. + resultTabIds: + type: array + items: + type: string + description: The unique IDs of the result tabs to which this response belongs. + resultsDescription: + $ref: "#/components/schemas/ResultsDescription" + rewrittenFacetFilters: + type: array + items: + $ref: "#/components/schemas/FacetFilter" + description: The actual applied facet filters based on the operators and facetFilters in the query. Useful for mapping typed operators to visual facets. + cursor: + type: string + description: Cursor that indicates the start of the next page of results. To be passed in "more" requests for this query. + hasMoreResults: + type: boolean + description: Whether more results are available. Use cursor to retrieve them. + example: + trackingToken: trackingToken + suggestedSpellCorrectedQuery: suggestedSpellCorrectedQuery + hasMoreResults: true + errorInfo: + errorMessages: + - source: gmail + errorMessage: invalid token + - source: slack + errorMessage: expired token + requestID: 5e345ae500ff0befa2b9d1a3ba0001737e7363696f312d323535323137000171756572792d656e64706f696e743a323032303031333074313830343032000100 + results: + - snippets: + - snippet: snippet + mimeType: mimeType + metadata: + container: container + createTime: "2000-01-23T04:56:07.000Z" + datasource: datasource + author: + name: name + documentId: documentId + updateTime: "2000-01-23T04:56:07.000Z" + mimeType: mimeType + objectType: objectType + title: title + url: https://www.example.com/ + - snippets: + - snippet: snippet + mimeType: mimeType + metadata: + container: container + createTime: "2000-01-23T04:56:07.000Z" + datasource: datasource + author: + name: name + documentId: documentId + updateTime: "2000-01-23T04:56:07.000Z" + mimeType: mimeType + objectType: objectType + title: title + url: https://www.example.com/ + facetResults: + - buckets: + - percentage: 5 + count: 1 + value: + stringValue: stringValue + integerValue: 5 + - percentage: 5 + count: 1 + value: + stringValue: stringValue + integerValue: 5 + sourceName: sourceName + operatorName: operatorName + objectType: objectType + - buckets: + - percentage: 5 + count: 1 + value: + stringValue: stringValue + integerValue: 5 + - percentage: 5 + count: 1 + value: + stringValue: stringValue + integerValue: 5 + sourceName: sourceName + operatorName: operatorName + objectType: objectType + rewrittenQuery: rewrittenQuery + rewrittenFacetFilters: + - fieldName: fieldName + values: + - fieldValues + - fieldValues + - fieldName: fieldName + values: + - fieldValues + - fieldValues + MessagesResponse: + required: + - hasMore + properties: + hasMore: + type: boolean + description: Whether there are more results for client to continue requesting. + searchResponse: + $ref: "#/components/schemas/SearchResponse" + rootMessage: + $ref: "#/components/schemas/SearchResult" + EditPinRequest: + allOf: + - $ref: "#/components/schemas/PinDocumentMutableProperties" + - type: object + properties: + id: + type: string + description: The opaque id of the pin to be edited. + GetPinRequest: + properties: + id: + type: string + description: The opaque id of the pin to be fetched. + GetPinResponse: + properties: + pin: + $ref: "#/components/schemas/PinDocument" + ListPinsResponse: + required: + - pins + properties: + pins: + type: array + items: + $ref: "#/components/schemas/PinDocument" + description: List of pinned documents. + PinRequest: + allOf: + - $ref: "#/components/schemas/PinDocumentMutableProperties" + - type: object + properties: + documentId: + type: string + description: The document to be pinned. + Unpin: + properties: + id: + type: string + description: The opaque id of the pin to be unpinned. + ResultsRequest: + properties: + timestamp: + type: string + description: The ISO 8601 timestamp associated with the client request. + format: date-time + trackingToken: + type: string + description: A previously received trackingToken for a search associated with the same query. Useful for more requests and requests for other tabs. + sessionInfo: + $ref: "#/components/schemas/SessionInfo" + sourceDocument: + $ref: "#/components/schemas/Document" + description: The document from which the ResultsRequest is issued, if any. + pageSize: + type: integer + example: 100 + description: Hint to the server about how many results to send back. Server may return less or more. Structured results and clustered results don't count towards pageSize. + maxSnippetSize: + type: integer + description: Hint to the server about how many characters long a snippet may be. Server may return less or more. + example: 400 + SearchRequest: + required: + - query + allOf: + - $ref: "#/components/schemas/ResultsRequest" + - type: object + properties: + query: + type: string + description: The search terms. + example: vacation policy + cursor: + type: string + description: Pagination cursor. A previously received opaque token representing the position in the overall results at which to start. + resultTabIds: + type: array + items: + type: string + description: The unique IDs of the result tabs for which to fetch results. This will have precedence over datasource filters if both are specified and in conflict. + inputDetails: + $ref: "#/components/schemas/SearchRequestInputDetails" + requestOptions: + $ref: "#/components/schemas/SearchRequestOptions" + timeoutMillis: + type: integer + description: Timeout in milliseconds for the request. A `408` error will be returned if handling the request takes longer. + example: 5000 + disableSpellcheck: + type: boolean + description: Whether or not to disable spellcheck. + example: + trackingToken: trackingToken + query: vacation policy + pageSize: 10 + requestOptions: + facetFilters: + - fieldName: type + values: + - value: article + relationType: EQUALS + - value: document + relationType: EQUALS + - fieldName: department + values: + - value: engineering + relationType: EQUALS + AutocompleteRequest: + type: object + properties: + trackingToken: + type: string + sessionInfo: + $ref: "#/components/schemas/SessionInfo" + query: + type: string + description: Partially typed query. + example: San Fra + datasourcesFilter: + type: array + items: + type: string + description: Filter results to only those relevant to one or more datasources (e.g. jira, gdrive). Results are unfiltered if missing. + datasource: + type: string + description: Filter to only return results relevant to the given datasource. + resultTypes: + type: array + description: Filter to only return results of the given type(s). All types may be returned if omitted. + items: + type: string + enum: + - ADDITIONAL_DOCUMENT + - APP + - BROWSER_HISTORY + - DATASOURCE + - DOCUMENT + - ENTITY + - GOLINK + - HISTORY + - CHAT_HISTORY + - NEW_CHAT + - OPERATOR + - OPERATOR_VALUE + - QUICKLINK + - SUGGESTION + resultSize: + type: integer + description: | + Maximum number of results to be returned. If no value is provided, the backend will cap at 200. + example: 10 + authTokens: + type: array + description: Auth tokens which may be used for federated results. + items: + $ref: "#/components/schemas/AuthToken" + example: + trackingToken: trackingToken + query: what is a que + datasource: GDRIVE + resultSize: 10 + OperatorScope: + properties: + datasource: + type: string + docType: + type: string + OperatorMetadata: + required: + - name + properties: + name: + type: string + isCustom: + type: boolean + description: Whether this operator is supported by default or something that was created within a workplace app (e.g. custom jira field). + operatorType: + type: string + enum: + - TEXT + - DOUBLE + - DATE + - USER + helpText: + type: string + scopes: + type: array + items: + $ref: "#/components/schemas/OperatorScope" + value: + type: string + description: Raw/canonical value of the operator. Only applies when result is an operator value. + displayValue: + type: string + description: Human readable value of the operator that can be shown to the user. Only applies when result is an operator value. + example: + name: Last Updated + operatorType: DATE + scopes: + - datasource: GDRIVE + docType: Document + - datasource: ZENDESK + Quicklink: + description: An action for a specific datasource that will show up in autocomplete and app card, e.g. "Create new issue" for jira. + properties: + name: + type: string + description: Full action name. Used in autocomplete. + shortName: + type: string + description: Shortened name. Used in app cards. + url: + type: string + description: The URL of the action. + iconConfig: + $ref: "#/components/schemas/IconConfig" + description: The config for the icon for this quicklink + id: + type: string + description: Unique identifier of this quicklink + scopes: + type: array + description: The scopes for which this quicklink is applicable + items: + type: string + enum: + - APP_CARD + - AUTOCOMPLETE_EXACT_MATCH + - AUTOCOMPLETE_FUZZY_MATCH + - AUTOCOMPLETE_ZERO_QUERY + - NEW_TAB_PAGE + AutocompleteResult: + required: + - result + - result_type + properties: + result: + type: string + keywords: + type: array + items: + type: string + description: A list of all possible keywords for given result. + resultType: + type: string + enum: + - ADDITIONAL_DOCUMENT + - APP + - BROWSER_HISTORY + - DATASOURCE + - DOCUMENT + - ENTITY + - GOLINK + - HISTORY + - CHAT_HISTORY + - NEW_CHAT + - OPERATOR + - OPERATOR_VALUE + - QUICKLINK + - SUGGESTION + score: + type: number + description: Higher indicates a more confident match. + operatorMetadata: + $ref: "#/components/schemas/OperatorMetadata" + quicklink: + $ref: "#/components/schemas/Quicklink" + document: + $ref: "#/components/schemas/Document" + url: + type: string + structuredResult: + $ref: "#/components/schemas/StructuredResult" + trackingToken: + type: string + description: A token to be passed in /feedback events associated with this autocomplete result. + ranges: + type: array + items: + $ref: "#/components/schemas/TextRange" + description: Subsections of the result string to which some special formatting should be applied (eg. bold) + example: + result: sample result + resultType: DOCUMENT + score: 4.56 + url: https://www.example.com/ + trackingToken: abcd + metadata: + - datasource: confluence + - objectType: page + AutocompleteResultGroup: + description: A subsection of the results list from which distinct sections should be created. + properties: + startIndex: + type: integer + description: The inclusive start index of the range. + endIndex: + type: integer + description: The exclusive end index of the range. + title: + type: string + description: The title of the result group to be displayed. Empty means no title. + AutocompleteResponse: + allOf: + - $ref: "#/components/schemas/BackendExperimentsContext" + - type: object + properties: + trackingToken: + type: string + description: An opaque token that represents this particular set of autocomplete results. To be used for /feedback reporting. + sessionInfo: + $ref: "#/components/schemas/SessionInfo" + results: + type: array + items: + $ref: "#/components/schemas/AutocompleteResult" + groups: + type: array + items: + $ref: "#/components/schemas/AutocompleteResultGroup" + description: Subsections of the results list from which distinct sections should be created. + errorInfo: + $ref: "#/components/schemas/ErrorInfo" + backendTimeMillis: + type: integer + format: int64 + description: Time in milliseconds the backend took to respond to the request. + example: 1100 + example: + trackingToken: trackingToken + ChatZeroStateSuggestionOptions: + properties: + applicationId: + type: string + description: The Chat Application ID this feed request should be scoped to. Empty means there is no Chat Application ID.. + FeedRequestOptions: + required: + - resultSize + properties: + resultSize: + type: integer + description: Number of results asked in response. If a result is a collection, counts as one. + timezoneOffset: + type: integer + description: The offset of the client's timezone in minutes from UTC. e.g. PDT is -420 because it's 7 hours behind UTC. + categoryToResultSize: + type: object + additionalProperties: + type: object + properties: + resultSize: + type: integer + description: Mapping from category to number of results asked for the category. + datasourceFilter: + type: array + items: + type: string + description: Datasources for which content should be included. Empty is for all. + chatZeroStateSuggestionOptions: + $ref: "#/components/schemas/ChatZeroStateSuggestionOptions" + FeedRequest: + required: + - refreshType + properties: + categories: + type: array + items: + type: string + enum: + - DOCUMENT_SUGGESTION + - DOCUMENT_SUGGESTION_SCENARIO + - TRENDING_DOCUMENT + - VERIFICATION_REMINDER + - EVENT + - ANNOUNCEMENT + - MENTION + - DATASOURCE_AFFINITY + - RECENT + - COMPANY_RESOURCE + - EXPERIMENTAL + - PEOPLE_CELEBRATIONS + - DISPLAYABLE_LIST + - SOCIAL_LINK + - EXTERNAL_TASKS + - WORKFLOW_COLLECTIONS + - ZERO_STATE_CHAT_SUGGESTION + - ZERO_STATE_CHAT_TOOL_SUGGESTION + - ZERO_STATE_WORKFLOW_CREATED_BY_ME + - ZERO_STATE_WORKFLOW_FAVORITES + - ZERO_STATE_WORKFLOW_POPULAR + - ZERO_STATE_WORKFLOW_RECENT + - ZERO_STATE_WORKFLOW_SUGGESTION + - PERSONALIZED_CHAT_SUGGESTION + - DAILY_DIGEST + description: Categories of content requested. An allowlist gives flexibility to request content separately or together. + requestOptions: + $ref: "#/components/schemas/FeedRequestOptions" + timeoutMillis: + type: integer + description: Timeout in milliseconds for the request. A `408` error will be returned if handling the request takes longer. + example: 5000 + sessionInfo: + $ref: "#/components/schemas/SessionInfo" + DisplayableListFormat: + properties: + format: + type: string + enum: + - LIST + description: defines how to render this particular displayable list card + DisplayableListItemUIConfig: + type: object + description: UI configurations for each item of the list + properties: + showNewIndicator: + type: boolean + description: show a "New" pill next to the item + ConferenceData: + required: + - provider + - uri + properties: + provider: + type: string + enum: + - ZOOM + - HANGOUTS + uri: + type: string + description: A permalink for the conference. + source: + type: string + enum: + - NATIVE_CONFERENCE + - LOCATION + - DESCRIPTION + EventClassificationName: + description: The name for a generated classification of an event. + type: string + enum: + - External Event + EventStrategyName: + type: string + description: The name of method used to surface relevant data for a given calendar event. + enum: + - customerCard + - news + - call + - email + - meetingNotes + - linkedIn + - relevantDocuments + - chatFollowUps + - conversations + EventClassification: + description: A generated classification of a given event. + properties: + name: + $ref: "#/components/schemas/EventClassificationName" + strategies: + type: array + items: + $ref: "#/components/schemas/EventStrategyName" + StructuredLink: + description: The display configuration for a link. + properties: + name: + type: string + description: The display name for the link + url: + type: string + description: The URL for the link. + iconConfig: + $ref: "#/components/schemas/IconConfig" + GeneratedAttachmentContent: + description: Content that has been generated or extrapolated from the documents present in the document field. + properties: + displayHeader: + description: The header describing the generated content. + type: string + text: + description: The content that has been generated. + type: string + example: + displayHeader: Action Items + content: You said you'd send over the design document after the meeting. + GeneratedAttachment: + description: These are attachments that aren't natively present on the event, and have been smartly suggested. + properties: + strategyName: + $ref: "#/components/schemas/EventStrategyName" + documents: + type: array + items: + $ref: "#/components/schemas/Document" + person: + $ref: "#/components/schemas/Person" + customer: + $ref: "#/components/schemas/Customer" + externalLinks: + description: A list of links to external sources outside of Glean. + type: array + items: + $ref: "#/components/schemas/StructuredLink" + content: + type: array + items: + $ref: "#/components/schemas/GeneratedAttachmentContent" + CalendarEvent: + required: + - id + - url + allOf: + - $ref: "#/components/schemas/AnonymousEvent" + - type: object + properties: + id: + type: string + description: The calendar event id + url: + type: string + description: A permalink for this calendar event + attendees: + $ref: "#/components/schemas/CalendarAttendees" + location: + type: string + description: The location that this event is taking place at. + conferenceData: + $ref: "#/components/schemas/ConferenceData" + description: + type: string + description: The HTML description of the event. + datasource: + type: string + description: The app or other repository type from which the event was extracted + hasTranscript: + type: boolean + description: The event has a transcript associated with it enabling features like summarization + transcriptUrl: + type: string + description: A link to the transcript of the event + classifications: + type: array + items: + $ref: "#/components/schemas/EventClassification" + generatedAttachments: + type: array + items: + $ref: "#/components/schemas/GeneratedAttachment" + SectionType: + type: string + description: Type of the section. This defines how the section should be interpreted and rendered in the digest. + x-enumDescriptions: + CHANNEL: A standard section for channel-based digests (e.g. from Slack, Teams). + MENTIONS: A dedicated section that surfaces user mentions (actionable, informative, or all). + TOPIC: A section driven by a generic topic, not tied to any specific channel or instance. + x-speakeasy-enum-descriptions: + CHANNEL: A standard section for channel-based digests (e.g. from Slack, Teams). + MENTIONS: A dedicated section that surfaces user mentions (actionable, informative, or all). + TOPIC: A section driven by a generic topic, not tied to any specific channel or instance. + enum: + - CHANNEL + - MENTIONS + - TOPIC + UpdateType: + type: string + description: Optional type classification for the update. + x-enumDescriptions: + ACTIONABLE: Updates that require user attention or action + INFORMATIVE: Updates that are purely informational + x-speakeasy-enum-descriptions: + ACTIONABLE: Updates that require user attention or action + INFORMATIVE: Updates that are purely informational + enum: + - ACTIONABLE + - INFORMATIVE + DigestUpdate: + type: object + properties: + urls: + type: array + description: List of URLs for similar updates that are grouped together and rendered as a single update. + items: + type: string + url: + type: string + description: URL link to the content or document. + title: + type: string + description: Title or headline of the update. + datasource: + type: string + description: Name or identifier of the data source (e.g., slack, confluence, etc.). + summary: + type: string + description: Brief summary or description of the update content. + type: + $ref: "#/components/schemas/UpdateType" + DigestSection: + type: object + required: + - id + - type + - updates + properties: + id: + type: string + description: Unique identifier for the digest section. + type: + $ref: "#/components/schemas/SectionType" + displayName: + type: string + description: Human-readable name for the digest section. + channelName: + type: string + description: Name of the channel (applicable for CHANNEL type sections). Used to display in the frontend. + channelType: + type: string + description: | + Channel visibility/type for CHANNEL sections. For Slack this is typically one of + PublicChannel, PrivateChannel. Omit if not applicable or unknown. + instanceId: + type: string + description: Instance identifier for the channel or workspace. Used for constructing channel URLs to display in the frontend. + url: + type: string + description: Optional URL for the digest section. Should be populated only if the section is a CHANNEL type section. + updates: + type: array + items: + $ref: "#/components/schemas/DigestUpdate" + description: List of updates within this digest section. + Digest: + type: object + properties: + podcastFileId: + type: string + description: Identifier for the podcast file generated from this digest content. + podcastDuration: + type: number + format: float + description: Duration of the podcast file in seconds. + digestDate: + type: string + 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. + example: "2025-09-03" + sections: + type: array + items: + $ref: "#/components/schemas/DigestSection" + description: Array of digest sections from which the podcast was created. + ChatSuggestion: + properties: + query: + type: string + description: The actionable chat query to run when the user selects this suggestion. + feature: + type: string + description: Targeted Glean Chat feature for the suggestion. + PromptTemplateMutableProperties: + required: + - template + properties: + name: + type: string + description: The user-given identifier for this prompt template. + template: + type: string + description: The actual template string. + applicationId: + type: string + description: The Application Id the prompt template should be created under. Empty for default assistant. + inclusions: + $ref: "#/components/schemas/ChatRestrictionFilters" + description: A list of filters which only allows the prompt template to access certain content. + addedRoles: + type: array + description: A list of added user roles for the Workflow. + items: + $ref: "#/components/schemas/UserRoleSpecification" + removedRoles: + type: array + description: A list of removed user roles for the Workflow. + items: + $ref: "#/components/schemas/UserRoleSpecification" + AttributionProperties: {} + PromptTemplate: + allOf: + - $ref: "#/components/schemas/PromptTemplateMutableProperties" + - $ref: "#/components/schemas/PermissionedObject" + - $ref: "#/components/schemas/AttributionProperties" + - type: object + properties: + id: + type: string + description: Opaque id for this prompt template + author: + $ref: "#/components/schemas/Person" + createTimestamp: + type: integer + description: Server Unix timestamp of the creation time. + lastUpdateTimestamp: + type: integer + description: Server Unix timestamp of the last update time. + lastUpdatedBy: + $ref: "#/components/schemas/Person" + roles: + type: array + description: A list of roles for this prompt template explicitly granted. + items: + $ref: "#/components/schemas/UserRoleSpecification" + UgcType: + enum: + - ANNOUNCEMENTS_TYPE + - ANSWERS_TYPE + - COLLECTIONS_TYPE + - SHORTCUTS_TYPE + - WORKFLOWS_TYPE + - PROMPT_TEMPLATES_TYPE + - PRISM_VIEWS_TYPE + FavoriteInfo: + type: object + properties: + ugcType: + $ref: "#/components/schemas/UgcType" + id: + type: string + description: Opaque id of the UGC. + count: + type: integer + x-includeEmpty: true + description: Number of users this object has been favorited by. + favoritedByUser: + type: boolean + x-includeEmpty: true + description: If the requesting user has favorited this object. + PromptTemplateResult: + properties: + promptTemplate: + $ref: "#/components/schemas/PromptTemplate" + trackingToken: + type: string + description: An opaque token that represents this prompt template + favoriteInfo: + $ref: "#/components/schemas/FavoriteInfo" + runCount: + $ref: "#/components/schemas/CountInfo" + 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. + WorkflowDraftableProperties: + properties: + name: + type: string + description: The name of the workflow. + WorkflowMutableProperties: + type: object + allOf: + - $ref: "#/components/schemas/WorkflowDraftableProperties" + - type: object + WorkflowMetadata: + allOf: + - type: object + properties: + author: + $ref: "#/components/schemas/Person" + createTimestamp: + type: integer + description: Server Unix timestamp of the creation time. + lastUpdateTimestamp: + type: integer + description: Server Unix timestamp of the last update time. + lastUpdatedBy: + $ref: "#/components/schemas/Person" + Workflow: + allOf: + - $ref: "#/components/schemas/PermissionedObject" + - $ref: "#/components/schemas/WorkflowMutableProperties" + - $ref: "#/components/schemas/WorkflowMetadata" + - $ref: "#/components/schemas/AttributionProperties" + - type: object + properties: + id: + type: string + description: The ID of the workflow. + WorkflowResult: + type: object + required: + - workflow + properties: + workflow: + $ref: "#/components/schemas/Workflow" + UserActivity: + properties: + actor: + $ref: "#/components/schemas/Person" + timestamp: + type: integer + description: Unix timestamp of the activity (in seconds since epoch UTC). + action: + type: string + enum: + - ADD + - ADD_REMINDER + - CLICK + - COMMENT + - DELETE + - DISMISS + - EDIT + - MENTION + - MOVE + - OTHER + - RESTORE + - UNKNOWN + - VERIFY + - VIEW + description: The action for the activity + aggregateVisitCount: + $ref: "#/components/schemas/CountInfo" + FeedEntry: + required: + - title + properties: + entryId: + type: string + description: optional ID associated with a single feed entry (displayable_list_id) + title: + type: string + description: Title for the result. Can be document title, event title and so on. + thumbnail: + $ref: "#/components/schemas/Thumbnail" + createdBy: + $ref: "#/components/schemas/Person" + uiConfig: + allOf: + - $ref: "#/components/schemas/DisplayableListFormat" + - type: object + properties: + additionalFlags: + $ref: "#/components/schemas/DisplayableListItemUIConfig" + justificationType: + type: string + enum: + - FREQUENTLY_ACCESSED + - RECENTLY_ACCESSED + - TRENDING_DOCUMENT + - VERIFICATION_REMINDER + - SUGGESTED_DOCUMENT + - EMPTY_STATE_SUGGESTION + - FRECENCY_SCORED + - SERVER_GENERATED + - USE_CASE + - UPDATE_SINCE_LAST_VIEW + - RECENTLY_STARTED + - EVENT + - USER_MENTION + - ANNOUNCEMENT + - EXTERNAL_ANNOUNCEMENT + - POPULARITY_BASED_TRENDING + - COMPANY_RESOURCE + - EVENT_DOCUMENT_FROM_CONTENT + - EVENT_DOCUMENT_FROM_SEARCH + - VISIT_AFFINITY_SCORED + - SUGGESTED_APP + - SUGGESTED_PERSON + - ACTIVITY_HIGHLIGHT + - SAVED_SEARCH + - SUGGESTED_CHANNEL + - PEOPLE_CELEBRATIONS + - SOCIAL_LINK + - ZERO_STATE_CHAT_SUGGESTION + - ZERO_STATE_CHAT_TOOL_SUGGESTION + - ZERO_STATE_PROMPT_TEMPLATE_SUGGESTION + - ZERO_STATE_STATIC_WORKFLOW_SUGGESTION + - ZERO_STATE_AGENT_SUGGESTION + - PERSONALIZED_CHAT_SUGGESTION + - DAILY_DIGEST + description: Type of the justification. + justification: + type: string + description: Server side generated justification string if server provides one. + trackingToken: + type: string + description: An opaque token that represents this particular feed entry in this particular response. To be used for /feedback reporting. + viewUrl: + type: string + description: View URL for the entry if based on links that are not documents in Glean. + document: + $ref: "#/components/schemas/Document" + event: + $ref: "#/components/schemas/CalendarEvent" + announcement: + $ref: "#/components/schemas/Announcement" + digest: + $ref: "#/components/schemas/Digest" + collection: + $ref: "#/components/schemas/Collection" + collectionItem: + $ref: "#/components/schemas/CollectionItem" + person: + $ref: "#/components/schemas/Person" + app: + $ref: "#/components/schemas/AppResult" + chatSuggestion: + $ref: "#/components/schemas/ChatSuggestion" + promptTemplate: + $ref: "#/components/schemas/PromptTemplateResult" + workflow: + $ref: "#/components/schemas/WorkflowResult" + activities: + type: array + items: + $ref: "#/components/schemas/UserActivity" + description: List of activity where each activity has user, action, timestamp. + documentVisitorCount: + $ref: "#/components/schemas/CountInfo" + FeedResult: + required: + - category + - primaryEntry + properties: + category: + type: string + enum: + - DOCUMENT_SUGGESTION + - DOCUMENT_SUGGESTION_SCENARIO + - TRENDING_DOCUMENT + - USE_CASE + - VERIFICATION_REMINDER + - EVENT + - ANNOUNCEMENT + - MENTION + - DATASOURCE_AFFINITY + - RECENT + - COMPANY_RESOURCE + - EXPERIMENTAL + - PEOPLE_CELEBRATIONS + - SOCIAL_LINK + - EXTERNAL_TASKS + - DISPLAYABLE_LIST + - ZERO_STATE_CHAT_SUGGESTION + - ZERO_STATE_CHAT_TOOL_SUGGESTION + - ZERO_STATE_WORKFLOW_CREATED_BY_ME + - ZERO_STATE_WORKFLOW_FAVORITES + - ZERO_STATE_WORKFLOW_POPULAR + - ZERO_STATE_WORKFLOW_RECENT + - ZERO_STATE_WORKFLOW_SUGGESTION + - PERSONALIZED_CHAT_SUGGESTION + - DAILY_DIGEST + description: Category of the result, one of the requested categories in incoming request. + primaryEntry: + $ref: "#/components/schemas/FeedEntry" + secondaryEntries: + type: array + items: + $ref: "#/components/schemas/FeedEntry" + description: Secondary entries for the result e.g. suggested docs for the calendar, carousel. + rank: + type: integer + description: Rank of the result. Rank is suggested by server. Client side rank may differ. + FeedResponse: + required: + - serverTimestamp + allOf: + - $ref: "#/components/schemas/BackendExperimentsContext" + - type: object + properties: + trackingToken: + type: string + description: An opaque token that represents this particular feed response. + serverTimestamp: + type: integer + description: Server unix timestamp (in seconds since epoch UTC). + results: + type: array + items: + $ref: "#/components/schemas/FeedResult" + facetResults: + type: object + additionalProperties: + type: array + items: + $ref: "#/components/schemas/FacetResult" + description: Map from category to the list of facets that can be used to filter the entry's content. + mentionsTimeWindowInHours: + type: integer + description: The time window (in hours) used for generating user mentions. + RecommendationsRequestOptions: + properties: + datasourceFilter: + type: string + description: Filter results to a single datasource name (e.g. gmail, slack). All results are returned if missing. + datasourcesFilter: + type: array + items: + type: string + description: Filter results to only those relevant to one or more datasources (e.g. jira, gdrive). All results are returned if missing. + facetFilterSets: + type: array + items: + $ref: "#/components/schemas/FacetFilterSet" + description: A list of facet filter sets that will be OR'ed together. + context: + $ref: "#/components/schemas/Document" + description: Content for either a new or unindexed document, or additional content for an indexed document, which may be used to generate recommendations. + resultProminence: + description: The types of prominence wanted in results returned. Default is any type. + type: array + items: + $ref: "#/components/schemas/SearchResultProminenceEnum" + RecommendationsRequest: + allOf: + - $ref: "#/components/schemas/ResultsRequest" + - type: object + properties: + recommendationDocumentSpec: + $ref: "#/components/schemas/DocumentSpec" + description: Retrieve recommendations for this document. Glean Document ID is preferred over URL. + requestOptions: + $ref: "#/components/schemas/RecommendationsRequestOptions" + description: Options for adjusting the request for recommendations. + RecommendationsResponse: + allOf: + - $ref: "#/components/schemas/ResultsResponse" + SortOptions: + type: object + properties: + orderBy: + type: string + enum: + - ASC + - DESC + sortBy: + type: string + ListEntitiesRequest: + type: object + properties: + filter: + type: array + items: + $ref: "#/components/schemas/FacetFilter" + sort: + description: Use EntitiesSortOrder enum for SortOptions.sortBy + type: array + items: + $ref: "#/components/schemas/SortOptions" + entityType: + type: string + default: PEOPLE + enum: + - PEOPLE + - TEAMS + - CUSTOM_ENTITIES + datasource: + type: string + description: The datasource associated with the entity type, most commonly used with CUSTOM_ENTITIES + query: + type: string + description: A query string to search for entities that each entity in the response must conform to. An empty query does not filter any entities. + includeFields: + description: List of entity fields to return (that aren't returned by default) + type: array + items: + type: string + enum: + - PEOPLE + - TEAMS + - PEOPLE_DISTANCE + - PERMISSIONS + - FACETS + - INVITE_INFO + - LAST_EXTENSION_USE + - MANAGEMENT_DETAILS + - UNPROCESSED_TEAMS + pageSize: + type: integer + example: 100 + description: Hint to the server about how many results to send back. Server may return less. + cursor: + type: string + description: Pagination cursor. A previously received opaque token representing the position in the overall results at which to start. + source: + type: string + description: A string denoting the search surface from which the endpoint is called. + requestType: + type: string + default: STANDARD + description: The type of request being made. + x-enumDescriptions: + STANDARD: Used by default for all requests and satisfies all standard use cases for list requests. Limited to 10000 entities. + FULL_DIRECTORY: Used exclusively to return a comprehensive list of all people entities in the organization, typically for audit like purposes. The recommended approach is to sort by FIRST_NAME or LAST_NAME, and use pagination for large organizations. + x-speakeasy-enum-descriptions: + STANDARD: Used by default for all requests and satisfies all standard use cases for list requests. Limited to 10000 entities. + FULL_DIRECTORY: Used exclusively to return a comprehensive list of all people entities in the organization, typically for audit like purposes. The recommended approach is to sort by FIRST_NAME or LAST_NAME, and use pagination for large organizations. + enum: + - STANDARD + - FULL_DIRECTORY + EntitiesSortOrder: + type: string + description: Different ways of sorting entities + enum: + - ENTITY_NAME + - FIRST_NAME + - LAST_NAME + - ORG_SIZE_COUNT + - START_DATE + - TEAM_SIZE + - RELEVANCE + ListEntitiesResponse: + type: object + properties: + results: + type: array + items: + $ref: "#/components/schemas/Person" + teamResults: + type: array + items: + $ref: "#/components/schemas/Team" + customEntityResults: + type: array + items: + $ref: "#/components/schemas/CustomEntity" + facetResults: + type: array + items: + $ref: "#/components/schemas/FacetResult" + cursor: + type: string + description: Pagination cursor. A previously received opaque token representing the position in the overall results at which to start. + totalCount: + type: integer + description: The total number of entities available + hasMoreResults: + type: boolean + description: Whether or not more entities can be fetched. + sortOptions: + type: array + description: Sort options from EntitiesSortOrder supported for this response. Default is empty list. + items: + $ref: "#/components/schemas/EntitiesSortOrder" + customFacetNames: + type: array + description: list of Person attributes that are custom setup by deployment + items: + type: string + PeopleRequest: + type: object + properties: + timezoneOffset: + type: integer + description: The offset of the client's timezone in minutes from UTC. e.g. PDT is -420 because it's 7 hours behind UTC. + obfuscatedIds: + type: array + items: + type: string + description: The Person IDs to retrieve. If no IDs are requested, the current user's details are returned. + emailIds: + type: array + items: + type: string + description: The email IDs to retrieve. The result is the deduplicated union of emailIds and obfuscatedIds. + includeFields: + description: List of PersonMetadata fields to return (that aren't returned by default) + type: array + items: + type: string + enum: + - BADGES + - BUSY_EVENTS + - DOCUMENT_ACTIVITY + - INVITE_INFO + - PEOPLE_DISTANCE + - PERMISSIONS + - PEOPLE_DETAILS + - MANAGEMENT_DETAILS + - PEOPLE_PROFILE_SETTINGS + - PEOPLE_WITHOUT_MANAGER + includeTypes: + description: The types of people entities to include in the response in addition to those returned by default. + x-enumDescriptions: + PEOPLE_WITHOUT_MANAGER: Returns all people without a manager apart from the requested IDs. + INVALID_ENTITIES: Includes invalid entities in the response if any of the requested IDs are invalid. + x-speakeasy-enum-descriptions: + PEOPLE_WITHOUT_MANAGER: Returns all people without a manager apart from the requested IDs. + INVALID_ENTITIES: Includes invalid entities in the response if any of the requested IDs are invalid. + type: array + items: + type: string + enum: + - PEOPLE_WITHOUT_MANAGER + - INVALID_ENTITIES + source: + type: string + description: A string denoting the search surface from which the endpoint is called. + example: + obfuscatedIds: + - abc123 + - abc456 + PeopleResponse: + properties: + results: + type: array + items: + $ref: "#/components/schemas/Person" + description: A Person for each ID in the request, each with PersonMetadata populated. + relatedDocuments: + type: array + items: + $ref: "#/components/schemas/RelatedDocuments" + description: A list of documents related to this people response. This is only included if DOCUMENT_ACTIVITY is requested and only 1 person is included in the request. + errors: + type: array + items: + type: string + description: A list of IDs that could not be found. + CreateShortcutRequest: + required: + - data + properties: + data: + $ref: "#/components/schemas/ShortcutMutableProperties" + ShortcutError: + properties: + errorType: + type: string + enum: + - NO_PERMISSION + - INVALID_ID + - EXISTING_SHORTCUT + - INVALID_CHARS + CreateShortcutResponse: + properties: + shortcut: + $ref: "#/components/schemas/Shortcut" + error: + $ref: "#/components/schemas/ShortcutError" + DeleteShortcutRequest: + allOf: + - $ref: "#/components/schemas/UserGeneratedContentId" + - type: object + required: + - id + GetShortcutRequest: + oneOf: + - $ref: "#/components/schemas/UserGeneratedContentId" + - type: object + required: + - alias + properties: + alias: + type: string + description: The alias for the shortcut, including any arguments for variable shortcuts. + GetShortcutResponse: + properties: + shortcut: + $ref: "#/components/schemas/Shortcut" + description: Shortcut given the input alias with any provided arguments substituted into the destination URL. + error: + $ref: "#/components/schemas/ShortcutError" + ListShortcutsPaginatedRequest: + required: + - pageSize + properties: + includeFields: + description: Array of fields/data to be included in response that are not included by default + type: array + items: + type: string + enum: + - FACETS + - PEOPLE_DETAILS + pageSize: + type: integer + example: 10 + cursor: + type: string + description: A token specifying the position in the overall results to start at. Received from the endpoint and iterated back. Currently being used as page no (as we implement offset pagination) + filters: + type: array + items: + $ref: "#/components/schemas/FacetFilter" + description: A list of filters for the query. An AND is assumed between different filters. We support filters on Go Link name, author, department and type. + sort: + $ref: "#/components/schemas/SortOptions" + description: Specifies fieldname to sort on and order (ASC|DESC) to sort in + query: + type: string + description: Search query that should be a substring in atleast one of the fields (alias , inputAlias, destinationUrl, description). Empty query does not filter shortcuts. + ShortcutsPaginationMetadata: + properties: + cursor: + type: string + description: Cursor indicates the start of the next page of results + hasNextPage: + type: boolean + totalItemCount: + type: integer + ListShortcutsPaginatedResponse: + required: + - shortcuts + - meta + properties: + shortcuts: + type: array + items: + $ref: "#/components/schemas/Shortcut" + description: List of all shortcuts accessible to the user + facetResults: + type: array + items: + $ref: "#/components/schemas/FacetResult" + meta: + $ref: "#/components/schemas/ShortcutsPaginationMetadata" + description: Contains metadata like total item count and whether next page exists + UpdateShortcutRequest: + allOf: + - $ref: "#/components/schemas/UserGeneratedContentId" + - $ref: "#/components/schemas/ShortcutMutableProperties" + - type: object + required: + - id + UpdateShortcutResponse: + properties: + shortcut: + $ref: "#/components/schemas/Shortcut" + error: + $ref: "#/components/schemas/ShortcutError" + SummarizeRequest: + description: Summary of the document + required: + - documentSpecs + properties: + timestamp: + type: string + description: The ISO 8601 timestamp associated with the client request. + format: date-time + query: + type: string + description: Optional query that the summary should be about + preferredSummaryLength: + type: integer + description: Optional length of summary output. If not given, defaults to 500 chars. + documentSpecs: + type: array + items: + $ref: "#/components/schemas/DocumentSpec" + description: Specifications of documents to summarize + trackingToken: + type: string + description: An opaque token that represents this particular result. To be used for /feedback reporting. + Summary: + properties: + text: + type: string + followUpPrompts: + type: array + items: + type: string + description: Follow-up prompts based on the summarized doc + SummarizeResponse: + properties: + error: + type: object + properties: + message: + type: string + summary: + $ref: "#/components/schemas/Summary" + trackingToken: + type: string + description: An opaque token that represents this summary in this particular query. To be used for /feedback reporting. + ReminderRequest: + required: + - documentId + properties: + documentId: + type: string + description: The document which the verification is for new reminders and/or update. + assignee: + type: string + description: The obfuscated id of the person this verification is assigned to. + remindInDays: + type: integer + description: Reminder for the next verifications in terms of days. For deletion, this will be omitted. + reason: + type: string + description: An optional free-text reason for the reminder. This is particularly useful when a reminder is used to ask for verification from another user (for example, "Duplicate", "Incomplete", "Incorrect"). + VerificationFeed: + properties: + documents: + type: array + items: + $ref: "#/components/schemas/Verification" + description: List of document infos that include verification related information for them. + VerifyRequest: + required: + - documentId + properties: + documentId: + type: string + description: The document which is verified. + action: + type: string + enum: + - VERIFY + - DEPRECATE + - UNVERIFY + description: The verification action requested. + ToolParameter: + type: object + properties: + type: + type: string + description: Parameter type (string, number, boolean, object, array) + enum: + - string + - number + - boolean + - object + - array + name: + type: string + description: The name of the parameter + description: + type: string + description: The description of the parameter + isRequired: + type: boolean + description: Whether the parameter is required + possibleValues: + type: array + description: The possible values for the parameter. Can contain only primitive values or arrays of primitive values. + items: + type: string + items: + type: object + description: When type is 'array', this describes the structure of the item in the array. + $ref: "#/components/schemas/ToolParameter" + properties: + type: object + description: When type is 'object', this describes the structure of the object. + additionalProperties: + $ref: "#/components/schemas/ToolParameter" + Tool: + type: object + properties: + type: + type: string + description: Type of tool (READ, WRITE) + enum: + - READ + - WRITE + name: + type: string + description: Unique identifier for the tool + displayName: + type: string + description: Human-readable name + description: + type: string + description: LLM friendly description of the tool + parameters: + type: object + description: The parameters for the tool. Each key is the name of the parameter and the value is the parameter object. + additionalProperties: + $ref: "#/components/schemas/ToolParameter" + ToolsListResponse: + type: object + properties: + tools: + type: array + items: + $ref: "#/components/schemas/Tool" + ToolsCallParameter: + type: object + required: + - name + - value + properties: + name: + type: string + description: The name of the parameter + value: + type: string + description: The value of the parameter (for primitive types) + items: + type: array + description: The value of the parameter (for array types) + items: + $ref: "#/components/schemas/ToolsCallParameter" + properties: + type: object + description: The value of the parameter (for object types) + additionalProperties: + $ref: "#/components/schemas/ToolsCallParameter" + ToolsCallRequest: + type: object + required: + - name + - parameters + properties: + name: + type: string + description: Required name of the tool to execute + parameters: + type: object + description: The parameters for the tool. Each key is the name of the parameter and the value is the parameter object. + additionalProperties: + $ref: "#/components/schemas/ToolsCallParameter" + ToolsCallResponse: + type: object + properties: + rawResponse: + additionalProperties: true + type: object + description: The raw response from the tool + error: + type: string + description: The error message if applicable + IndexDocumentRequest: + type: object + description: Describes the request body of the /indexdocument API call + properties: + version: + type: integer + format: int64 + description: Version number for document for optimistic concurrency control. If absent or 0 then no version checks are done. + document: + description: Document being added/updated + $ref: "#/components/schemas/DocumentDefinition" + required: + - document + IndexDocumentsRequest: + type: object + description: Describes the request body of the /indexdocuments API call + properties: + uploadId: + type: string + description: Optional id parameter to identify and track a batch of documents. + datasource: + type: string + description: Datasource of the documents + documents: + description: Batch of documents being added/updated + type: array + items: + $ref: "#/components/schemas/DocumentDefinition" + required: + - documents + - datasource + UpdatePermissionsRequest: + type: object + description: Describes the request body of the /updatepermissions API call + properties: + datasource: + type: string + objectType: + type: string + description: The type of the document (Case, KnowledgeArticle for Salesforce for example). It cannot have spaces or _ + id: + type: string + description: The datasource specific id for the document. This field is case insensitive and should not be more than 200 characters in length. + viewURL: + type: string + description: | + The permalink for viewing the document. **Note: viewURL is a required field if id was not set when uploading the document.**' + permissions: + $ref: "#/components/schemas/DocumentPermissionsDefinition" + description: The permissions that define who can view this document in the search results. Please refer to [this](https://developers.glean.com/indexing/documents/permissions) for more details. + required: + - permissions + - datasource + GetDocumentCountRequest: + type: object + description: Describes the request body of the /getdocumentcount API call + properties: + datasource: + type: string + description: Datasource name for which document count is needed. + required: + - datasource + GetDocumentCountResponse: + type: object + description: Describes the response body of the /getdocumentcount API call + properties: + documentCount: + type: integer + description: Number of documents corresponding to the specified custom datasource. + GetDocumentStatusRequest: + type: object + description: Describes the request body for /getdocumentstatus API call + properties: + datasource: + type: string + description: Datasource to get fetch document status for + objectType: + type: string + description: Object type of the document to get the status for + docId: + type: string + description: Glean Document ID within the datasource to get the status for. + required: + - datasource + - objectType + - docId + GetDocumentStatusResponse: + type: object + description: Describes the response body of the /getdocumentstatus API call + properties: + uploadStatus: + type: string + description: Upload status, enum of NOT_UPLOADED, UPLOADED, STATUS_UNKNOWN + lastUploadedAt: + type: integer + format: int64 + description: Time of last successful upload, in epoch seconds + indexingStatus: + type: string + description: Indexing status, enum of NOT_INDEXED, INDEXED, STATUS_UNKNOWN + lastIndexedAt: + type: integer + format: int64 + description: Time of last successful indexing, in epoch seconds + BulkIndexRequest: + type: object + description: Describes the request body of a bulk upload API call + required: + - uploadId + properties: + uploadId: + type: string + description: Unique id that must be used for this bulk upload instance + isFirstPage: + type: boolean + description: true if this is the first page of the upload. Defaults to false + isLastPage: + type: boolean + description: true if this is the last page of the upload. Defaults to false + forceRestartUpload: + type: boolean + description: Flag to discard previous upload attempts and start from scratch. Must be specified with isFirstPage=true + BulkIndexTeamsRequest: + type: object + description: Describes the request body of the /bulkindexteams API call + allOf: + - $ref: "#/components/schemas/BulkIndexRequest" + - type: object + properties: + teams: + description: Batch of team information + type: array + items: + $ref: "#/components/schemas/TeamInfoDefinition" + required: + - teams + BulkIndexEmployeesRequest: + type: object + description: Describes the request body of the /bulkindexemployees API call + allOf: + - $ref: "#/components/schemas/BulkIndexRequest" + - type: object + properties: + employees: + description: Batch of employee information + type: array + items: + $ref: "#/components/schemas/EmployeeInfoDefinition" + disableStaleDataDeletionCheck: + type: boolean + description: True if older employee data needs to be force deleted after the upload completes. Defaults to older data being deleted only if the percentage of data being deleted is less than 20%. This must only be set when `isLastPage = true` + required: + - employees + BulkIndexDocumentsRequest: + type: object + description: Describes the request body of the /bulkindexdocuments API call + allOf: + - $ref: "#/components/schemas/BulkIndexRequest" + - type: object + properties: + datasource: + type: string + description: Datasource of the documents + documents: + description: Batch of documents for the datasource + type: array + items: + $ref: "#/components/schemas/DocumentDefinition" + disableStaleDocumentDeletionCheck: + type: boolean + description: True if older documents need to be force deleted after the upload completes. Defaults to older documents being deleted asynchronously. This must only be set when `isLastPage = true` + required: + - datasource + - documents + ProcessAllDocumentsRequest: + type: object + description: Describes the request body of the /processalldocuments API call + properties: + datasource: + type: string + description: If provided, process documents only for this custom datasource. Otherwise all uploaded documents are processed. + DeleteDocumentRequest: + type: object + description: Describes the request body of the /deletedocument API call + properties: + version: + type: integer + format: int64 + description: Version number for document for optimistic concurrency control. If absent or 0 then no version checks are done. + datasource: + type: string + description: datasource of the document + objectType: + type: string + description: object type of the document + id: + type: string + description: The id of the document + required: + - datasource + - id + - objectType + IndexUserRequest: + type: object + description: Describes the request body of the /indexuser API call + properties: + version: + type: integer + format: int64 + description: Version number for document for optimistic concurrency control. If absent or 0 then no version checks are done. + datasource: + type: string + description: The datasource for which the user is added + user: + description: The user to be added or updated + $ref: "#/components/schemas/DatasourceUserDefinition" + required: + - datasource + - user + GetUserCountRequest: + type: object + description: Describes the request body of the /getusercount API call + properties: + datasource: + type: string + description: Datasource name for which user count is needed. + required: + - datasource + GetUserCountResponse: + type: object + description: Describes the response body of the /getusercount API call + properties: + userCount: + type: integer + description: Number of users corresponding to the specified custom datasource. + BulkIndexUsersRequest: + type: object + description: Describes the request body for the /bulkindexusers API call + properties: + uploadId: + type: string + description: Unique id that must be used for this instance of datasource users upload + isFirstPage: + type: boolean + description: true if this is the first page of the upload. Defaults to false + isLastPage: + type: boolean + description: true if this is the last page of the upload. Defaults to false + forceRestartUpload: + type: boolean + description: Flag to discard previous upload attempts and start from scratch. Must be specified with isFirstPage=true + datasource: + type: string + description: datasource of the users + users: + description: batch of users for the datasource + type: array + items: + $ref: "#/components/schemas/DatasourceUserDefinition" + disableStaleDataDeletionCheck: + type: boolean + description: True if older user data needs to be force deleted after the upload completes. Defaults to older data being deleted only if the percentage of data being deleted is less than a reasonable threshold. This must only be set when `isLastPage = true` + required: + - uploadId + - datasource + - users + GreenlistUsersRequest: + type: object + description: Describes the request body of the /betausers API call + properties: + datasource: + type: string + description: Datasource which needs to be made visible to users specified in the `emails` field. + emails: + type: array + description: The emails of the beta users + items: + type: string + format: email + required: + - datasource + - emails + DatasourceUserDefinition: + type: object + description: describes a user in the datasource + properties: + email: + type: string + userId: + description: To be supplied if the user id in the datasource is not the email + type: string + name: + type: string + isActive: + type: boolean + description: set to false if the user is a former employee or a bot + required: + - email + - name + IndexGroupRequest: + type: object + description: Describes the request body of the /indexgroup API call + properties: + version: + type: integer + format: int64 + description: Version number for document for optimistic concurrency control. If absent or 0 then no version checks are done. + datasource: + type: string + description: The datasource for which the group is added + group: + description: The group to be added or updated + $ref: "#/components/schemas/DatasourceGroupDefinition" + required: + - datasource + - group + BulkIndexGroupsRequest: + type: object + description: Describes the request body for the /bulkindexgroups API call + properties: + uploadId: + type: string + description: Unique id that must be used for this instance of datasource groups upload + isFirstPage: + type: boolean + description: true if this is the first page of the upload. Defaults to false + isLastPage: + type: boolean + description: true if this is the last page of the upload. Defaults to false + forceRestartUpload: + type: boolean + description: Flag to discard previous upload attempts and start from scratch. Must be specified with isFirstPage=true + datasource: + type: string + description: datasource of the groups + groups: + description: batch of groups for the datasource + type: array + items: + $ref: "#/components/schemas/DatasourceGroupDefinition" + disableStaleDataDeletionCheck: + type: boolean + description: True if older group data needs to be force deleted after the upload completes. Defaults to older data being deleted only if the percentage of data being deleted is less than a reasonable threshold. This must only be set when `isLastPage = true` + required: + - uploadId + - datasource + - groups + DatasourceGroupDefinition: + type: object + description: describes a group in the datasource + properties: + name: + type: string + description: name of the group. Should be unique among all groups for the datasource, and cannot have spaces. + required: + - name + IndexMembershipRequest: + type: object + description: Describes the request body of the /indexmembership API call + properties: + version: + type: integer + format: int64 + description: Version number for document for optimistic concurrency control. If absent or 0 then no version checks are done. + datasource: + type: string + description: The datasource for which the membership is added + membership: + description: The membership to be added or updated + $ref: "#/components/schemas/DatasourceMembershipDefinition" + required: + - datasource + - membership + BulkIndexMembershipsRequest: + type: object + description: Describes the request body for the /bulkindexmemberships API call + properties: + uploadId: + type: string + description: Unique id that must be used for this instance of datasource group memberships upload + isFirstPage: + type: boolean + description: true if this is the first page of the upload. Defaults to false + isLastPage: + type: boolean + description: true if this is the last page of the upload. Defaults to false + forceRestartUpload: + type: boolean + description: Flag to discard previous upload attempts and start from scratch. Must be specified with isFirstPage=true + datasource: + type: string + description: datasource of the memberships + group: + type: string + description: group who's memberships are specified + memberships: + description: batch of memberships for the group + type: array + items: + $ref: "#/components/schemas/DatasourceBulkMembershipDefinition" + required: + - uploadId + - datasource + - memberships + ProcessAllMembershipsRequest: + type: object + description: Describes the request body of the /processallmemberships API call + properties: + datasource: + type: string + description: If provided, process group memberships only for this custom datasource. Otherwise all uploaded memberships are processed. + DatasourceMembershipDefinition: + type: object + description: describes the membership row of a group. Only one of memberUserId and memberGroupName can be specified. + properties: + groupName: + description: The group for which the membership is specified + type: string + memberUserId: + description: If the member is a user, then the email or datasource id for the user + type: string + memberGroupName: + description: If the member is a group, then the name of the member group + type: string + required: + - groupName + DatasourceBulkMembershipDefinition: + type: object + description: describes the membership row of a group in the bulk uploaded. Only one of memberUserId and memberGroupName can be specified. + properties: + memberUserId: + description: If the member is a user, then the email or datasource id for the user + type: string + memberGroupName: + description: If the member is a group, then the name of the member group + type: string + DeleteUserRequest: + type: object + description: Describes the request body of the /deleteuser API call + properties: + version: + type: integer + format: int64 + description: Version number for document for optimistic concurrency control. If absent or 0 then no version checks are done. + datasource: + type: string + description: The datasource for which the user is removed + email: + description: The email of the user to be deleted + type: string + required: + - datasource + - email + DeleteGroupRequest: + type: object + description: Describes the request body of the /deletegroup API call + properties: + version: + type: integer + format: int64 + description: Version number for document for optimistic concurrency control. If absent or 0 then no version checks are done. + datasource: + type: string + description: The datasource for which the group is removed + groupName: + description: the name of the group to be deleted + type: string + required: + - datasource + - groupName + DeleteMembershipRequest: + type: object + description: Describes the request body of the /deletemembership API call + properties: + version: + type: integer + format: int64 + description: Version number for document for optimistic concurrency control. If absent or 0 then no version checks are done. + datasource: + type: string + description: The datasource for which the membership is removed + membership: + description: the name of the membership to be deleted + $ref: "#/components/schemas/DatasourceMembershipDefinition" + required: + - datasource + - membership + DeleteEmployeeRequest: + type: object + description: Describes the request body of the /deleteemployee API call + properties: + version: + type: integer + format: int64 + description: Version number for document for optimistic concurrency control. If absent or 0 then no version checks are done. + employeeEmail: + description: The deleted employee's email + type: string + required: + - employeeEmail + DeleteTeamRequest: + type: object + description: Describes the request body of the /deleteteam API call + properties: + id: + description: The deleted team's id + type: string + required: + - id + DocumentDefinition: + type: object + description: Indexable document structure + properties: + title: + type: string + description: Document title, in plain text, if present. If not present, the title would be attempted to be extracted from the content. + filename: + type: string + description: Source filename, in plain text, for the document. May be used as a fallback title for the document, if the title is not provided and cannot be extracted from the content. Populate this if there is no explicit title for the document and the content is sourced from a file. + container: + type: string + description: The container name for the content (Folder for example for file content). + containerDatasourceId: + type: string + description: This represents the datasource sepcific id of the container. + containerObjectType: + type: string + description: This represents the object type of the container. It cannot have spaces or _ + datasource: + type: string + objectType: + type: string + description: The type of the document (Case, KnowledgeArticle for Salesforce for example). It cannot have spaces or _ + viewURL: + type: string + description: | + The permalink for viewing the document. **Note: viewURL is a required field for non-entity datasources, but not required if the datasource is used to push custom entities (ie. datasources where isEntityDatasource is false).**' + id: + type: string + description: | + The datasource specific id for the document. This field is case insensitive and should not be more than 200 characters in length. Note: id is a required field for datasources created after 1st March 2025 + summary: + $ref: "#/components/schemas/ContentDefinition" + body: + $ref: "#/components/schemas/ContentDefinition" + author: + $ref: "#/components/schemas/UserReferenceDefinition" + owner: + $ref: "#/components/schemas/UserReferenceDefinition" + description: The current owner of the document, if not the author. + permissions: + $ref: "#/components/schemas/DocumentPermissionsDefinition" + description: The permissions that define who can view this document in the search results. Please refer to [this](https://developers.glean.com/indexing/documents/permissions) for more details. + createdAt: + type: integer + format: int64 + description: The creation time, in epoch seconds. + updatedAt: + type: integer + format: int64 + description: The last update time, in epoch seconds. + updatedBy: + $ref: "#/components/schemas/UserReferenceDefinition" + tags: + type: array + items: + type: string + description: Labels associated with the document. + interactions: + $ref: "#/components/schemas/DocumentInteractionsDefinition" + status: + type: string + additionalUrls: + type: array + items: + type: string + description: Additional variations of the URL that this document points to. + comments: + type: array + items: + $ref: "#/components/schemas/CommentDefinition" + description: Comments associated with the document. + customProperties: + type: array + items: + $ref: "#/components/schemas/CustomProperty" + description: Additional metadata properties of the document. These can surface as [facets and operators](https://developers.glean.com/indexing/datasource/custom-properties/operators_and_facets). + required: + - datasource + CommentDefinition: + type: object + description: Describes a comment on a document + properties: + id: + type: string + description: The document specific id for the comment. This field is case insensitive and should not be more than 200 characters in length. + author: + $ref: "#/components/schemas/UserReferenceDefinition" + description: The author of the comment. + content: + $ref: "#/components/schemas/ContentDefinition" + description: The content of the comment. + createdAt: + type: integer + format: int64 + description: The creation time, in epoch seconds. + updatedAt: + type: integer + format: int64 + description: The last updated time, in epoch seconds. + updatedBy: + $ref: "#/components/schemas/UserReferenceDefinition" + description: The user who last updated the comment. + required: + - id + ContentDefinition: + type: object + description: Describes text content or base64 encoded binary content + properties: + mimeType: + type: string + textContent: + type: string + description: text content. Only one of textContent or binary content can be specified + binaryContent: + type: string + description: base64 encoded binary content. Only one of textContent or binary content can be specified + required: + - mimeType + UserReferenceDefinition: + type: object + description: Describes how a user is referenced in a document. The user can be referenced by email or by a datasource specific id. + properties: + email: + type: string + datasourceUserId: + type: string + description: some datasources refer to the user by the datasource user id in the document + name: + type: string + PermissionsGroupIntersectionDefinition: + type: object + description: describes a list of groups that are all required in a permissions constraint + properties: + requiredGroups: + type: array + items: + type: string + DocumentPermissionsDefinition: + type: object + description: describes the access control details of the document + properties: + allowedUsers: + description: List of users who can view the document + type: array + items: + $ref: "#/components/schemas/UserReferenceDefinition" + allowedGroups: + description: List of groups that can view the document + type: array + items: + type: string + allowedGroupIntersections: + description: List of allowed group intersections. This describes a permissions constraint of the form ((GroupA AND GroupB AND GroupC) OR (GroupX AND GroupY) OR ... + type: array + items: + $ref: "#/components/schemas/PermissionsGroupIntersectionDefinition" + allowAnonymousAccess: + description: If true, then any Glean user can view the document + type: boolean + allowAllDatasourceUsersAccess: + description: If true, then any user who has an account in the datasource can view the document. + type: boolean + DocumentInteractionsDefinition: + type: object + description: describes the interactions on the document + properties: + numViews: + type: integer + numLikes: + type: integer + numComments: + type: integer + CheckDocumentAccessRequest: + type: object + description: Describes the request body of the /checkdocumentaccess API call + properties: + datasource: + type: string + description: Datasource of document to check access for. + objectType: + type: string + description: Object type of document to check access for. + docId: + type: string + description: Glean Document ID to check access for. + userEmail: + type: string + description: Email of user to check access for. + required: + - datasource + - objectType + - docId + - userEmail + CheckDocumentAccessResponse: + type: object + description: Describes the response body of the /checkdocumentaccess API call + properties: + hasAccess: + type: boolean + description: If true, user has access to document for search + CustomProperty: + type: object + description: Describes the custom properties of the object. + properties: + name: + type: string + value: + description: Must either be a string or an array of strings. An integer, boolean, etc. is not valid. When OpenAPI Generator supports `oneOf`, we can semantically enforce this. + DatasourceConfig: + $ref: "#/components/schemas/SharedDatasourceConfig" + GetDatasourceConfigRequest: + type: object + description: Describes the request body of the /getdatasourceconfig API call + properties: + datasource: + type: string + description: Datasource name for which config is needed. + required: + - datasource + DatasourceConfigList: + description: List of datasource configurations. + required: + - datasourceConfig + properties: + datasourceConfig: + type: array + description: Datasource configuration. + items: + $ref: "#/components/schemas/SharedDatasourceConfig" + RotateTokenResponse: + description: Describes the response body of the /rotatetoken API call + properties: + rawSecret: + type: string + description: New raw secret + createdAt: + type: integer + format: int64 + description: Unix timestamp in seconds when the new secret value is assigned to the token. The token needs to be rotated before `rotationPeriodMinutes` past the createdAt timestamp otherwise it would be rendered unusable. + rotationPeriodMinutes: + type: integer + format: int64 + description: Refers to the time period in minutes before which this token needs to be rotated. It is required to rotate the token within the specified `rotationPeriodMinutes` after each `/rotatetoken` call, otherwise the tokens would expire. Note that the token would still expire at `expiresAt` timestamp provided during token creation even if the token is being regularly rotated. `rotationPeriodMinutes` property is inherited from the parent token being rotated + IndexEmployeeRequest: + type: object + description: Info about an employee and optional version for that info + properties: + employee: + description: Info about the employee + $ref: "#/components/schemas/EmployeeInfoDefinition" + version: + description: Version number for the employee object. If absent or 0 then no version checks are done + type: integer + format: int64 + required: + - employee + IndexEmployeeListRequest: + type: object + description: Describes the request body of the /indexemployeelist API call + properties: + employees: + description: List of employee info and version. + type: array + items: + $ref: "#/components/schemas/IndexEmployeeRequest" + SocialNetworkDefinition: + type: object + description: Employee's social network profile + properties: + name: + type: string + description: Possible values are "twitter", "linkedin". + profileName: + type: string + description: Human-readable profile name. + profileUrl: + type: string + description: Link to profile. + AdditionalFieldDefinition: + type: object + description: Additional information about the employee or team. + properties: + key: + type: string + description: Key to reference this field, e.g. "languages". Note that the key should be all lowercase alphabetic characters with no numbers, spaces, hyphens or underscores. + value: + type: array + description: | + List of type string or HypertextField. + + HypertextField is defined as + ``` + { + anchor: string, // Anchor text for the hypertext field. + hyperlink: string, // URL for the hypertext field. + } + ``` + Example: ```{"anchor":"Glean","hyperlink":"https://glean.com"}``` + + When OpenAPI Generator supports oneOf, we will semantically enforce this in the docs. + + **Note**: If using the Python SDK to pass in a list of strings, the value may need to be a list of dictionaries. In that case, the key in that dictionary will be ignored. + Example: ```"languages": [{"lang":"English","lang":"Spanish",...}]```. In this case, the key "lang" will be ignored and can even be passed in as an empty string. + items: + type: object + description: Either a string or HypertextField. When OpenAPI Generator supports oneOf, we can semantically enforce this in the docs. + HypertextField: + type: object + properties: + anchor: + type: string + description: Anchor text for the hypertext field. + hyperlink: + type: string + description: URL for the hypertext field. + EmployeeInfoDefinition: + type: object + description: Describes employee info + properties: + email: + type: string + description: The employee's email + firstName: + type: string + description: | + The first name of the employee. **Note**: The value cannot be empty + lastName: + type: string + description: | + The last name of the employee. **Note**: The value cannot be empty + preferredName: + type: string + description: The preferred name or nickname of the employee + id: + type: string + description: | + **[Advanced]** A unique universal internal identifier for the employee. This is solely used for understanding manager relationships along with `managerId`. + phoneNumber: + type: string + description: The employee's phone number. + location: + type: string + description: The employee's location (city/office name etc). + deprecated: true + x-glean-deprecated: + id: a7f6fbaa-0eaf-4c0c-a4f5-ab90347f73fd + introduced: "2026-02-05" + message: Field is deprecated + removal: "2026-10-15" + x-speakeasy-deprecation-message: "Deprecated on 2026-02-05, removal scheduled for 2026-10-15: Field is deprecated" + structuredLocation: + description: Detailed location with information about country, state, city etc. + $ref: "#/components/schemas/StructuredLocation" + title: + type: string + description: The employee's role title. + photoUrl: + type: string + format: uri + description: The employee's profile pic + businessUnit: + type: string + description: Typically the highest level organizational unit; generally applies to bigger companies with multiple distinct businesses. + department: + type: string + description: An organizational unit where everyone has a similar task, e.g. `Engineering`. + datasourceProfiles: + type: array + description: The datasource profiles of the employee, e.g. `Slack`,`Github`. + items: + $ref: "#/components/schemas/DatasourceProfile" + teams: + type: array + description: Info about the employee's team(s) + items: + $ref: "#/components/schemas/EmployeeTeamInfo" + startDate: + type: string + format: date + description: The date when the employee started + endDate: + type: string + format: date + description: If a former employee, the last date of employment. + bio: + type: string + description: Short biography or mission statement of the employee. + pronoun: + type: string + description: She/her, He/his or other pronoun. + alsoKnownAs: + type: array + description: Other names associated with the employee. + items: + type: string + profileUrl: + type: string + description: Link to internal company person profile. + socialNetworks: + type: array + description: List of social network profiles. + items: + $ref: "#/components/schemas/SocialNetworkDefinition" + managerEmail: + type: string + description: The email of the employee's manager + managerId: + type: string + description: | + **[Advanced]** A unique universal internal identifier for the employee's manager. This is solely used in conjunction with `id`. + type: + type: string + description: The type of the employee, an enum of `FULL_TIME`, `CONTRACTOR`, `NON_EMPLOYEE` + default: FULL_TIME + relationships: + type: array + description: List of unidirectional relationships with other employees. E.g. this employee (`A`) is a CHIEF_OF_STAFF to another employee (`B`); or this employee (`A`) is an EXECUTIVE_ASSISTANT of another employee (`C`). The mapping should be attached to `A`'s profile. + items: + $ref: "#/components/schemas/EntityRelationship" + status: + type: string + description: The status of the employee, an enum of `CURRENT`, `FUTURE`, `EX` + default: CURRENT + additionalFields: + type: array + description: List of additional fields with more information about the employee. + items: + $ref: "#/components/schemas/AdditionalFieldDefinition" + required: + - department + - email + EmployeeAndVersionDefinition: + type: object + description: describes info about an employee and optional version for that info + properties: + employee: + description: Info about the employee + $ref: "#/components/schemas/EmployeeInfoDefinition" + version: + description: Version number for the employee object. If absent or 0 then no version checks are done + type: integer + format: int64 + required: + - info + EmployeeTeamInfo: + type: object + description: Information about which team an employee belongs to + properties: + id: + type: string + description: unique identifier for this team + name: + type: string + description: Team name + url: + type: string + format: uri + description: Link to internal company team page + EntityRelationship: + type: object + description: Describes a relationship edge between a source and destination entity + required: + - name + - email + properties: + name: + type: string + description: The title or type of relationship. Currently an enum of `CHIEF_OF_STAFF`, `EXECUTIVE_ASSISTANT` + email: + type: string + description: Email of the person with whom the relationship exists. Per the example above, either `B` or `C`'s email depending on the relationship. + TeamMember: + type: object + description: Information about a team's member + properties: + email: + type: string + description: The member's email + format: email + relationship: + type: string + description: The member's relationship to the team, an enum of `MEMBER`, `MANAGER`, `LEAD`, `POINT_OF_CONTACT`, `OTHER` + default: MEMBER + join_date: + type: string + format: date + description: The member's start date + required: + - email + TeamInfoDefinition: + type: object + description: Information about an employee's team + properties: + id: + type: string + description: The unique ID of the team + name: + type: string + description: Human-readable team name + description: + type: string + description: The description of this team + businessUnit: + type: string + description: Typically the highest level organizational unit; generally applies to bigger companies with multiple distinct businesses. + department: + type: string + description: An organizational unit where everyone has a similar task, e.g. `Engineering`. + photoUrl: + type: string + format: uri + description: A link to the team's photo + externalLink: + type: string + format: uri + description: | + A link to an external team page. If set, team results will link to it. + emails: + type: array + description: The emails of the team + items: + $ref: "#/components/schemas/TeamEmail" + datasourceProfiles: + type: array + description: The datasource profiles of the team, e.g. `Slack`,`Github`. + items: + $ref: "#/components/schemas/DatasourceProfile" + members: + type: array + description: The members of the team + items: + $ref: "#/components/schemas/TeamMember" + additionalFields: + type: array + description: List of additional fields with more information about the team. + items: + $ref: "#/components/schemas/AdditionalFieldDefinition" + required: + - id + - members + - name + IndexTeamRequest: + type: object + description: Info about a team and optional version for that info + properties: + team: + description: Info about the team + $ref: "#/components/schemas/TeamInfoDefinition" + version: + description: Version number for the team object. If absent or 0 then no version checks are done + type: integer + format: int64 + required: + - team + BulkIndexShortcutsRequest: + type: object + description: Describes the request body of the /bulkindexshortcuts API call + allOf: + - $ref: "#/components/schemas/BulkIndexRequest" + - type: object + properties: + shortcuts: + description: Batch of shortcuts information + type: array + items: + $ref: "#/components/schemas/ExternalShortcut" + required: + - shortcuts + UploadShortcutsRequest: + type: object + description: Describes the request body of the /uploadshortcuts API call + allOf: + - $ref: "#/components/schemas/BulkIndexRequest" + - type: object + properties: + shortcuts: + description: Batch of shortcuts information + type: array + items: + $ref: "#/components/schemas/IndexingShortcut" + required: + - shortcuts + DebugDatasourceStatusResponse: + type: object + description: Describes the response body of the /debug/{datasource}/status API call + properties: + documents: + type: object + properties: + bulkUploadHistory: + type: object + $ref: "#/components/schemas/BulkUploadHistoryEventList" + counts: + type: object + properties: + uploaded: + type: array + items: + $ref: "#/components/schemas/DatasourceObjectTypeDocumentCountEntry" + description: | + A list of object types and corresponding upload counts. Note: This data may be cached and could be up to 3 hours stale. + indexed: + type: array + description: The number of documents indexed, grouped by objectType + items: + $ref: "#/components/schemas/DatasourceObjectTypeDocumentCountEntry" + processingHistory: + $ref: "#/components/schemas/ProcessingHistoryEventList" + identity: + type: object + properties: + processingHistory: + $ref: "#/components/schemas/ProcessingHistoryEventList" + users: + $ref: "#/components/schemas/DebugDatasourceStatusIdentityResponseComponent" + groups: + $ref: "#/components/schemas/DebugDatasourceStatusIdentityResponseComponent" + memberships: + $ref: "#/components/schemas/DebugDatasourceStatusIdentityResponseComponent" + datasourceVisibility: + type: string + description: The visibility of the datasource, an enum of VISIBLE_TO_ALL, VISIBLE_TO_TEST_GROUP, NOT_VISIBLE + enum: + - ENABLED_FOR_ALL + - ENABLED_FOR_TEST_GROUP + - NOT_ENABLED + example: ENABLED_FOR_ALL + DebugDatasourceStatusIdentityResponseComponent: + type: object + properties: + bulkUploadHistory: + type: object + $ref: "#/components/schemas/BulkUploadHistoryEventList" + counts: + type: object + properties: + uploaded: + type: integer + description: The number of users/groups/memberships uploaded + example: 15 + DatasourceObjectTypeDocumentCountEntry: + type: object + properties: + objectType: + type: string + description: The object type of the document + example: Article + count: + type: integer + description: The number of documents of the corresponding objectType + example: 15 + BulkUploadHistoryEvent: + type: object + description: Information about a successful bulk upload + properties: + uploadId: + type: string + description: The unique ID of the upload + example: upload-id-content-1707403081 + startTime: + type: string + description: The start time of the upload in ISO 8601 format + example: "2021-08-06T17:58:01.000Z" + endTime: + type: string + description: The end time of the upload in ISO 8601 format, 'NA' if the upload is still active + example: "2021-08-06T18:58:01.000Z" + status: + type: string + description: The status of the upload, an enum of ACTIVE, SUCCESSFUL + enum: + - ACTIVE + - SUCCESSFUL + example: SUCCESSFUL + processingState: + type: string + description: The current state of the upload, an enum of UNAVAILABLE, UPLOAD STARTED, UPLOAD IN PROGRESS, UPLOAD COMPLETED, DELETION PAUSED, INDEXING COMPLETED + enum: + - UNAVAILABLE + - UPLOAD STARTED + - UPLOAD IN PROGRESS + - UPLOAD COMPLETED + - DELETION PAUSED + - INDEXING COMPLETED + example: UPLOAD COMPLETED + BulkUploadHistoryEventList: + description: Information about active and recent successful uploads for the datasource + type: array + items: + $ref: "#/components/schemas/BulkUploadHistoryEvent" + DebugDocumentRequest: + type: object + description: Describes the request body of the /debug/{datasource}/document API call. + properties: + objectType: + type: string + description: Object type of the document to get the status for. + example: Article + docId: + type: string + description: Glean Document ID within the datasource to get the status for. + example: art123 + required: + - objectType + - docId + DebugDocumentResponse: + type: object + description: Describes the response body of the /debug/{datasource}/document API call + properties: + status: + type: object + description: Upload and indexing status of the document + $ref: "#/components/schemas/DocumentStatusResponse" + uploadedPermissions: + $ref: "#/components/schemas/DocumentPermissionsDefinition" + DebugDocumentsRequest: + type: object + description: Describes the request body of the /debug/{datasource}/documents API call. + properties: + debugDocuments: + type: array + description: Documents to fetch debug information for + items: + $ref: "#/components/schemas/DebugDocumentRequest" + required: + - debugDocuments + DebugDocumentsResponseItem: + type: object + description: Describes the response body of a single document in the /debug/{datasource}/documents API call + properties: + docId: + type: string + description: Id of the document + objectType: + type: string + description: objectType of the document + debugInfo: + type: object + description: Debug information of the document + $ref: "#/components/schemas/DebugDocumentResponse" + DebugDocumentsResponse: + type: object + description: Describes the response body of a single document in the /debug/{datasource}/documents API call + properties: + documentStatuses: + type: array + description: List of document ids/urls and their debug information + items: + $ref: "#/components/schemas/DebugDocumentsResponseItem" + DocumentStatusResponse: + type: object + description: Describes the document status response body + properties: + uploadStatus: + type: string + description: Upload status, enum of NOT_UPLOADED, UPLOADED, STATUS_UNKNOWN + example: UPLOADED + lastUploadedAt: + type: string + description: Time of last successful upload for the document, in ISO 8601 format + example: "2021-08-06T17:58:01.000Z" + indexingStatus: + type: string + description: Indexing status, enum of NOT_INDEXED, INDEXED, STATUS_UNKNOWN + example: INDEXED + lastIndexedAt: + type: string + description: Time of last successful indexing for the document, in ISO 8601 format + example: "2021-08-06T17:58:01.000Z" + permissionIdentityStatus: + type: string + description: Permission identity status, enum of NOT_UPLOADED, UPLOADED, STATUS_UNKNOWN (Always unknown if `identityDatasourceName` is set). Document visibility may be affected status is `NOT_UPLOADED`. + example: UPLOADED + LifeCycleEvent: + type: object + properties: + event: + type: string + description: Type of event + enum: + - UPLOADED + - INDEXED + - DELETION_REQUESTED + - DELETED + example: INDEXED + timestamp: + type: string + description: Timestamp of the event + example: "2021-08-06T17:58:01.000Z" + ProcessingHistoryEvent: + type: object + description: Processing history event for a datasource + properties: + startTime: + type: string + description: The start time of the processing in ISO 8601 format + example: "2021-08-06T17:58:01.000Z" + endTime: + type: string + description: The end time of the processing in ISO 8601 format, 'NA' if still in progress + example: "2021-08-06T18:58:01.000Z" + ProcessingHistoryEventList: + description: Information about processing history for the datasource type: array items: - type: string - responses: - "200": - description: The visibility status of documents - content: - application/json; charset=UTF-8: - schema: - $ref: '#/components/schemas/GetDocumentVisibilityOverridesResponse' - "403": - description: Permissions error - "500": - description: Internal error - x-visibility: Public - x-speakeasy-group: client.governance.documents.visibilityoverrides - x-speakeasy-name-override: list - post: - operationId: setdocvisibility - summary: Hide or unhide docs - description: Sets the visibility-override state of the documents specified, effectively hiding or un-hiding documents. - tags: - - Governance - requestBody: - content: - application/json; charset=UTF-8: - schema: - $ref: '#/components/schemas/UpdateDocumentVisibilityOverridesRequest' - required: true - responses: - "200": - description: OK - content: - application/json; charset=UTF-8: - schema: - $ref: '#/components/schemas/UpdateDocumentVisibilityOverridesResponse' - "403": - description: Permissions error - "500": - description: Internal error - x-visibility: Public - x-speakeasy-group: client.governance.documents.visibilityoverrides - x-speakeasy-name-override: create - /rest/api/v1/governance/data/findings/exports: - post: - operationId: createfindingsexport - summary: Creates findings export - description: Creates a new DLP findings export job. - tags: - - Governance - requestBody: - content: - application/json; charset=UTF-8: - schema: - $ref: '#/components/schemas/DlpExportFindingsRequest' - required: true - responses: - "200": - description: OK - content: - application/json: - schema: - $ref: '#/components/schemas/ExportInfo' - "403": - description: Permissions error - "500": - description: Internal error - x-visibility: Public - get: - operationId: listfindingsexports - summary: Lists findings exports - description: Lists all DLP findings exports. - tags: - - Governance - responses: - "200": - description: OK - content: - application/json: - schema: - $ref: '#/components/schemas/ListDlpFindingsExportsResponse' - "403": - description: Permissions error - "500": - description: Internal error - x-visibility: Public - /rest/api/v1/governance/data/findings/exports/{id}: - get: - operationId: downloadfindingsexport - summary: Downloads findings export - description: Downloads a DLP findings export as a CSV file. - tags: - - Governance - parameters: - - name: id - in: path - description: The ID of the export to download. - required: true - schema: - type: string - responses: - "200": - description: Downloads CSV of exported findings. - content: - text/csv; charset=UTF-8: - schema: - type: string - description: CSV of all the exported findings. - "403": - description: Permissions error - "500": - description: Internal error - x-visibility: Public - delete: - operationId: deletefindingsexport - summary: Deletes findings export - description: Deletes a DLP findings export. - tags: - - Governance - parameters: - - name: id - in: path - description: The ID of the export to delete. - required: true - schema: - type: integer - format: int64 - responses: - "200": - description: OK - "403": - description: Permissions error - "500": - description: Internal error - x-visibility: Public - /rest/api/v1/chat#stream: - post: - tags: - - Chat - summary: Chat - description: Have a conversation with Glean AI. - operationId: chatStream - x-visibility: Public - x-codegen-request-body-name: payload - parameters: - - $ref: '#/components/parameters/timezoneOffset' - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ChatRequest' - examples: - defaultExample: - value: - messages: - - author: USER - messageType: CONTENT - fragments: - - text: What are the company holidays this year? - gptAgentExample: - value: - agentConfig: - agent: GPT - messages: - - author: USER - messageType: CONTENT - fragments: - - text: Who was the first person to land on the moon? - description: Includes chat history for Glean AI to respond to. - required: true - x-exportParamName: Request - responses: - '200': - description: OK - content: - text/plain: - schema: - $ref: '#/components/schemas/ChatRequestStream' - examples: - defaultExample: - value: - messages: - - author: GLEAN_AI - messageType: CONTENT - hasMoreFragments: false - agentConfig: - agent: DEFAULT - mode: DEFAULT - fragments: - - text: There are no holidays! - streamingExample: - value: - messages: - - author: GLEAN_AI - messageType: CONTENT - agentConfig: - agent: DEFAULT - mode: DEFAULT - hasMoreFragments: true - fragments: null - - author: GLEAN_AI - messageType: CONTENT - agentConfig: - agent: DEFAULT - mode: DEFAULT - hasMoreFragments: true - fragments: null - - author: GLEAN_AI - messageType: CONTENT - agentConfig: - agent: DEFAULT - mode: DEFAULT - hasMoreFragments: true - fragments: - - text: e are - - author: GLEAN_AI - messageType: CONTENT - agentConfig: - agent: DEFAULT - mode: DEFAULT - hasMoreFragments: true - fragments: - - text: no hol - - author: GLEAN_AI - messageType: CONTENT - agentConfig: - agent: DEFAULT - mode: DEFAULT - hasMoreFragments: false - fragments: - - text: idays! - updateResponse: - value: - messages: - - author: GLEAN_AI - messageType: UPDATE - agentConfig: - agent: DEFAULT - mode: DEFAULT - fragments: - - text: '**Reading:**' - - structuredResults: - - document: - id: '123' - title: Company Handbook - citationResponse: - value: - messages: - - author: GLEAN_AI - messageType: CONTENT - agentConfig: - agent: DEFAULT - mode: DEFAULT - citations: - - sourceDocument: - id: '123' - title: Company Handbook - referenceRanges: - - textRange: - startIndex: 0 - endIndex: 12 - type: CITATION - '400': - description: Invalid request - '401': - description: Not Authorized - '408': - description: Request Timeout - '429': - description: Too Many Requests - x-speakeasy-group: client.chat - x-speakeasy-name-override: createStream - x-speakeasy-usage-example: true -components: - securitySchemes: - APIToken: - scheme: bearer - type: http - schemas: - ActivityEventParams: - properties: - bodyContent: - description: The HTML content of the page body. - type: string - datasourceInstance: - type: string - description: The full datasource instance name inferred from the URL of the event - datasource: - type: string - description: The datasource without the instance inferred from the URL of the event - instanceOnlyName: - type: string - description: The instance only name of the datasource instance, e.g. 1 for jira_1, inferred from the URL of the event - duration: - description: Length in seconds of the activity. For VIEWS, this represents the amount the page was visible in the foreground. - type: integer - query: - description: The user's search query associated with a SEARCH. - type: string - referrer: - description: The referring URL of the VIEW or SEARCH. - type: string - title: - description: The page title associated with the URL of the event - type: string - truncated: - description: Indicates that the parameters are incomplete and more parameters may be sent with the same action+timestamp+URL in the future. This is used for sending the duration when a `VIEW` is finished. - type: boolean - ActivityEvent: - required: - - action - - source - - timestamp - - url - properties: - id: - type: string - description: Universally unique identifier of the event. To allow for reliable retransmission, only the earliest received event of a given UUID is considered valid by the server and subsequent are ignored. - action: - type: string - description: The type of activity this represents. - x-enumDescriptions: - VIEW: Represents a visit to the given `url`. - EDIT: Represents an edit of the document represented by the `url`. - SEARCH: Represents a search performed at the given `url`. - COMMENT: Represents a comment on the document represented by the `url`. - CRAWL: Represents an explicit request to index the given `url` along with associated attributes in this payload. - HISTORICAL_SEARCH: Represents a search performed at the given `url` as indicated by the user's history. - HISTORICAL_VIEW: Represents a visit to the given `url` as indicated by the user's history. - enum: - - VIEW - - EDIT - - SEARCH - - COMMENT - - CRAWL - - HISTORICAL_SEARCH - - HISTORICAL_VIEW - x-speakeasy-enum-descriptions: - VIEW: Represents a visit to the given `url`. - EDIT: Represents an edit of the document represented by the `url`. - SEARCH: Represents a search performed at the given `url`. - COMMENT: Represents a comment on the document represented by the `url`. - CRAWL: Represents an explicit request to index the given `url` along with associated attributes in this payload. - HISTORICAL_SEARCH: Represents a search performed at the given `url` as indicated by the user's history. - HISTORICAL_VIEW: Represents a visit to the given `url` as indicated by the user's history. - params: - $ref: "#/components/schemas/ActivityEventParams" - timestamp: - type: string - description: The ISO 8601 timestamp when the activity began. - format: date-time - url: - description: The URL of the activity. - type: string - Activity: - required: - - events - properties: - events: - type: array - items: - $ref: "#/components/schemas/ActivityEvent" - example: - events: - - url: https://example.com/ - action: HISTORICAL_VIEW - timestamp: "2000-01-23T04:56:07.000Z" - - url: https://example.com/search?q=query - action: SEARCH - timestamp: "2000-01-23T04:56:07.000Z" - params: - query: query - - url: https://example.com/ - action: VIEW - timestamp: "2000-01-23T04:56:07.000Z" - params: - duration: 20 - referrer: https://example.com/document - SessionInfo: - properties: - sessionTrackingToken: - type: string - description: A unique token for this session. A new session (and token) is created when the user issues a request from a new tab or when our server hasn't seen activity for more than 10 minutes from a tab. - tabId: - type: string - description: A unique id for all requests a user makes from a given tab, no matter how far apart. A new tab id is only generated when a user issues a request from a new tab. - lastSeen: - type: string - format: date-time - description: The last time the server saw this token. - lastQuery: - type: string - description: The last query seen by the server. - User: - properties: - userID: - description: An opaque user ID for the claimed authority (i.e., the actas param, or the origid if actas is not specified). - type: string - origID: - description: An opaque user ID for the authenticated user (ignores actas). - type: string - FeedbackChatExchange: - properties: - timestamp: - type: integer - format: int64 - description: Unix timestamp in millis for the chat request. - agent: - type: string - description: Either DEFAULT (company knowledge) or GPT (world knowledge). - userQuery: - type: string - description: Initial query entered by the user. - searchQuery: - type: string - description: Search query performed by the agent. - resultDocuments: - type: array - description: List of documents read by the agent. - items: - properties: - title: - type: string - url: - type: string - response: - type: string - ManualFeedbackInfo: - properties: - email: - type: string - description: The email address of the user who submitted the Feedback.event.MANUAL_FEEDBACK event. - deprecated: true - source: - type: string - description: The source associated with the Feedback.event.MANUAL_FEEDBACK event. - enum: - - AUTOCOMPLETE - - CALENDAR - - CHAT - - CHAT_GENERAL - - CONCEPT_CARD - - DESKTOP_APP - - DISAMBIGUATION_CARD - - EXPERT_DETECTION - - FEED - - GENERATED_Q_AND_A - - INLINE_MENU - - NATIVE_RESULT - - PRISM - - Q_AND_A - - RELATED_QUESTIONS - - REPORT_ISSUE - - SCIOBOT - - SEARCH - - SIDEBAR - - SUMMARY - - TASKS - - TASK_EXECUTION - issue: - type: string - description: The issue the user indicated in the feedback. - deprecated: true - issues: - type: array - description: The issue(s) the user indicated in the feedback. - items: - type: string - enum: - - INACCURATE_RESPONSE - - INCOMPLETE_OR_NO_ANSWER - - INCORRECT_CITATION - - MISSING_CITATION - - OTHER - - OUTDATED_RESPONSE - - RESULT_MISSING - - RESULT_SHOULD_NOT_APPEAR - - RESULTS_HELPFUL - - RESULTS_POOR_ORDER - - TOO_MUCH_ONE_KIND - imageUrls: - type: array - items: - type: string - description: URLs of images uploaded by user when providing feedback - query: - type: string - description: The query associated with the Feedback.event.MANUAL_FEEDBACK event. - obscuredQuery: - type: string - description: The query associated with the Feedback.event.MANUAL_FEEDBACK event, but obscured such that the vowels are replaced with special characters. For search feedback events only. - activeTab: - type: string - description: Which tabs the user had chosen at the time of the Feedback.event.MANUAL_FEEDBACK event. For search feedback events only. - comments: - type: string - description: The comments users can optionally add to the Feedback.event.MANUAL_FEEDBACK events. - searchResults: - type: array - items: - type: string - description: The array of search result Glean Document IDs, ordered by top to bottom result. - previousMessages: - type: array - items: - type: string - description: The array of previous messages in a chat session, ordered by oldest to newest. - chatTranscript: - type: array - items: - $ref: "#/components/schemas/FeedbackChatExchange" - description: Array of previous request/response exchanges, ordered by oldest to newest. - numQueriesFromFirstRun: - type: integer - description: How many times this query has been run in the past. - vote: - type: string - description: The vote associated with the Feedback.event.MANUAL_FEEDBACK event. - enum: - - UPVOTE - - DOWNVOTE - rating: - type: integer - description: A rating associated with the user feedback. The value will be between one and the maximum given by ratingScale, inclusive. - ratingKey: - type: string - description: A description of the rating that contextualizes how it appeared to the user, e.g. "satisfied". - ratingScale: - type: integer - description: The scale of comparison for a rating associated with the feedback. Rating values start from one and go up to the maximum specified by ratingScale. For example, a five-option satisfaction rating will have a ratingScale of 5 and a thumbs-up/thumbs-down rating will have a ratingScale of 2. - SideBySideImplementation: - properties: - implementationId: - type: string - description: Unique identifier for this implementation variant. - implementationName: - type: string - description: Human-readable name for this implementation (e.g., "Variant A", "GPT-4", "Claude"). - searchParams: - type: object - description: The search/chat parameters used for this implementation. - additionalProperties: - type: string - response: - type: string - description: The full response generated by this implementation. - responseMetadata: - type: object - description: Metadata about the response (e.g., latency, token count). - properties: - latencyMs: - type: integer - description: Time taken to generate the response in milliseconds. - tokenCount: - type: integer - description: Number of tokens in the response. - modelUsed: - type: string - description: The specific model version used. - ManualFeedbackSideBySideInfo: - properties: - email: - type: string - description: The email address of the user who submitted the side-by-side feedback. - source: - type: string - description: The source associated with the side-by-side feedback event. - enum: - - LIVE_EVAL - - CHAT - - SEARCH - query: - type: string - description: The query or prompt that was evaluated across multiple implementations. - implementations: - type: array - description: Array of implementations that were compared side-by-side. - items: - $ref: "#/components/schemas/SideBySideImplementation" - evaluationSessionId: - type: string - description: Unique identifier for this evaluation session to group related feedback events. - implementationId: - type: string - description: The ID of the implementation this specific feedback event is for. - vote: - type: string - description: The vote for this specific implementation. - enum: - - UPVOTE - - DOWNVOTE - - NEUTRAL - comments: - type: string - description: Specific feedback comments for this implementation. - SeenFeedbackInfo: - properties: - isExplicit: - type: boolean - description: The confidence of the user seeing the object is high because they explicitly interacted with it e.g. answer impression in SERP with additional user interaction. - UserViewInfo: - properties: - docId: - type: string - description: Unique Glean Document ID of the associated document. - docTitle: - type: string - description: Title of associated document. - docUrl: - type: string - description: URL of associated document. - WorkflowFeedbackInfo: - properties: - source: - type: string - enum: - - ZERO_STATE - - LIBRARY - - HOMEPAGE - description: Where the feedback of the workflow originated from - Feedback: - required: - - event - - trackingTokens - properties: - id: - type: string - description: Universally unique identifier of the event. To allow for reliable retransmission, only the earliest received event of a given UUID is considered valid by the server and subsequent are ignored. - category: - type: string - description: The feature category to which the feedback applies. These should be broad product areas such as Announcements, Answers, Search, etc. rather than specific components or UI treatments within those areas. - enum: - - ANNOUNCEMENT - - AUTOCOMPLETE - - COLLECTIONS - - FEED - - SEARCH - - CHAT - - NTP - - WORKFLOWS - - SUMMARY - - GENERAL - - PRISM - - PROMPTS - trackingTokens: - type: array - description: A list of server-generated trackingTokens to which this event applies. - items: - type: string - event: - type: string - description: The action the user took within a Glean client with respect to the object referred to by the given `trackingToken`. - x-enumDescriptions: - CLICK: The object's primary link was clicked with the intent to view its full representation. Depending on the object type, this may imply an external navigation or navigating to a new page or view within the Glean app. - CONTAINER_CLICK: A link to the object's parent container (e.g. the folder in which it's located) was clicked. - COPY_LINK: The user copied a link to the primary link. - CREATE: The user creates a document. - DISMISS: The user dismissed the object such that it was hidden from view. - DOWNVOTE: The user gave feedback that the object was not useful. - EMAIL: The user attempted to send an email. - EXECUTE: The user executed the object (e.g. ran a workflow). - FILTER: The user applied a filter. - FIRST_TOKEN: The first token of a streaming response is received. - FOCUS_IN: The user clicked into an interactive element, e.g. the search box. - LAST_TOKEN: The final token of a streaming response is received. - MANUAL_FEEDBACK: The user submitted textual manual feedback regarding the object. - MANUAL_FEEDBACK_SIDE_BY_SIDE: The user submitted comparative feedback for multiple side-by-side implementations. - FEEDBACK_TIME_SAVED: The user submitted feedback about time saved by an agent or workflow. - MARK_AS_READ: The user explicitly marked the content as read. - MESSAGE: The user attempted to send a message using their default messaing app. - MIDDLE_CLICK: The user middle clicked the object's primary link with the intent to open its full representation in a new tab. - PAGE_BLUR: The user puts a page out of focus but keeps it in the background. - PAGE_FOCUS: The user puts a page in focus, meaning it is the first to receive keyboard events. - PAGE_LEAVE: The user leaves a page and it is unloaded (by clicking a link, closing the tab/window, etc). - PREVIEW: The user clicked the object's inline preview affordance. - RIGHT_CLICK: The user right clicked the object's primary link. This may indicate an intent to open it in a new tab or copy it. - SECTION_CLICK: The user clicked a link to a subsection of the primary object. - SEEN: The user has likely seen the object (e.g. took action to make the object visible within the user's viewport). - SELECT: The user explicitly selected something, eg. a chat response variant they prefer. - SHARE: The user shared the object with another user. - SHOW_MORE: The user clicked the object's show more affordance. - UPVOTE: The user gave feedback that the object was useful. - VIEW: The object was visible within the user's viewport. - VISIBLE: The object was visible within the user's viewport. - enum: - - CLICK - - CONTAINER_CLICK - - COPY_LINK - - CREATE - - DISMISS - - DOWNVOTE - - EMAIL - - EXECUTE - - FILTER - - FIRST_TOKEN - - FOCUS_IN - - LAST_TOKEN - - MANUAL_FEEDBACK - - MANUAL_FEEDBACK_SIDE_BY_SIDE - - FEEDBACK_TIME_SAVED - - MARK_AS_READ - - MESSAGE - - MIDDLE_CLICK - - PAGE_BLUR - - PAGE_FOCUS - - PAGE_LEAVE - - PREVIEW - - RELATED_CLICK - - RIGHT_CLICK - - SECTION_CLICK - - SEEN - - SELECT - - SHARE - - SHOW_MORE - - UPVOTE - - VIEW - - VISIBLE - x-speakeasy-enum-descriptions: - CLICK: The object's primary link was clicked with the intent to view its full representation. Depending on the object type, this may imply an external navigation or navigating to a new page or view within the Glean app. - CONTAINER_CLICK: A link to the object's parent container (e.g. the folder in which it's located) was clicked. - COPY_LINK: The user copied a link to the primary link. - CREATE: The user creates a document. - DISMISS: The user dismissed the object such that it was hidden from view. - DOWNVOTE: The user gave feedback that the object was not useful. - EMAIL: The user attempted to send an email. - EXECUTE: The user executed the object (e.g. ran a workflow). - FILTER: The user applied a filter. - FIRST_TOKEN: The first token of a streaming response is received. - FOCUS_IN: The user clicked into an interactive element, e.g. the search box. - LAST_TOKEN: The final token of a streaming response is received. - MANUAL_FEEDBACK: The user submitted textual manual feedback regarding the object. - MANUAL_FEEDBACK_SIDE_BY_SIDE: The user submitted comparative feedback for multiple side-by-side implementations. - FEEDBACK_TIME_SAVED: The user submitted feedback about time saved by an agent or workflow. - MARK_AS_READ: The user explicitly marked the content as read. - MESSAGE: The user attempted to send a message using their default messaing app. - MIDDLE_CLICK: The user middle clicked the object's primary link with the intent to open its full representation in a new tab. - PAGE_BLUR: The user puts a page out of focus but keeps it in the background. - PAGE_FOCUS: The user puts a page in focus, meaning it is the first to receive keyboard events. - PAGE_LEAVE: The user leaves a page and it is unloaded (by clicking a link, closing the tab/window, etc). - PREVIEW: The user clicked the object's inline preview affordance. - RIGHT_CLICK: The user right clicked the object's primary link. This may indicate an intent to open it in a new tab or copy it. - SECTION_CLICK: The user clicked a link to a subsection of the primary object. - SEEN: The user has likely seen the object (e.g. took action to make the object visible within the user's viewport). - SELECT: The user explicitly selected something, eg. a chat response variant they prefer. - SHARE: The user shared the object with another user. - SHOW_MORE: The user clicked the object's show more affordance. - UPVOTE: The user gave feedback that the object was useful. - VIEW: The object was visible within the user's viewport. - VISIBLE: The object was visible within the user's viewport. - position: - type: integer - description: Position of the element in the case that the client controls order (such as feed and autocomplete). - payload: - type: string - description: For type MANUAL_FEEDBACK, contains string of user feedback. For autocomplete, partial query string. For feed, string of user feedback in addition to manual feedback signals extracted from all suggested content. - sessionInfo: - $ref: "#/components/schemas/SessionInfo" - timestamp: - type: string - description: The ISO 8601 timestamp when the event occured. - format: date-time - user: - $ref: "#/components/schemas/User" - pathname: - type: string - description: The path the client was at when the feedback event triggered. - channels: - type: array - description: Where the feedback will be sent, e.g. to Glean, the user's company, or both. If no channels are specified, feedback will go only to Glean. - items: - type: string - enum: - - COMPANY - - GLEAN - url: - type: string - description: The URL the client was at when the feedback event triggered. - uiTree: - description: The UI element tree associated with the event, if any. - items: - type: string - type: array - uiElement: - type: string - description: The UI element associated with the event, if any. - manualFeedbackInfo: - $ref: "#/components/schemas/ManualFeedbackInfo" - manualFeedbackSideBySideInfo: - $ref: "#/components/schemas/ManualFeedbackSideBySideInfo" - seenFeedbackInfo: - $ref: "#/components/schemas/SeenFeedbackInfo" - userViewInfo: - $ref: "#/components/schemas/UserViewInfo" - workflowFeedbackInfo: - $ref: "#/components/schemas/WorkflowFeedbackInfo" - applicationId: - type: string - description: The application ID of the client that sent the feedback event. - agentId: - type: string - description: The agent ID of the client that sent the feedback event. - example: - trackingTokens: - - trackingTokens - event: VIEW - StructuredTextMutableProperties: - required: - - text - properties: - text: - type: string - example: From https://en.wikipedia.org/wiki/Diffuse_sky_radiation, the sky is blue because blue light is more strongly scattered than longer-wavelength light. - ConnectorType: - type: string - description: The source from which document content was pulled, e.g. an API crawl or browser history - enum: - - API_CRAWL - - BROWSER_CRAWL - - BROWSER_HISTORY - - BUILTIN - - FEDERATED_SEARCH - - PUSH_API - - WEB_CRAWL - - NATIVE_HISTORY - DocumentContent: - properties: - fullTextList: - type: array - items: - type: string - description: The plaintext content of the document. - Document: - properties: - id: - type: string - description: The Glean Document ID. - datasource: - type: string - description: The app or other repository type from which the document was extracted - connectorType: - $ref: "#/components/schemas/ConnectorType" - docType: - type: string - description: The datasource-specific type of the document (e.g. for Jira issues, this is the issue type such as Bug or Feature Request). - content: - $ref: "#/components/schemas/DocumentContent" - containerDocument: - $ref: "#/components/schemas/Document" - parentDocument: - $ref: "#/components/schemas/Document" - title: - type: string - description: The title of the document. - url: - type: string - description: A permalink for the document. - metadata: - $ref: "#/components/schemas/DocumentMetadata" - sections: - type: array - description: A list of content sub-sections in the document, e.g. text blocks with different headings in a Drive doc or Confluence page. - items: - $ref: "#/components/schemas/DocumentSection" - SearchProviderInfo: - properties: - name: - type: string - description: Name of the search provider. - logoUrl: - type: string - description: URL to the provider's logo. - searchLinkUrlTemplate: - type: string - description: URL template that can be used to perform the suggested search by replacing the {query} placeholder with the query suggestion. - example: - name: Google - logo: https://app.glean.com/images/feather/globe.svg - searchLinkUrlTemplate: https://www.google.com/search?q={query}&hl=en - ResultTab: - properties: - id: - type: string - description: The unique ID of the tab. Can be passed in a search request to get results for that tab. - count: - type: integer - description: The number of results in this tab for the current query. - datasource: - type: string - description: The datasource associated with the tab, if any. - datasourceInstance: - type: string - description: The datasource instance associated with the tab, if any. - FacetFilterValue: - properties: - value: - type: string - example: Spreadsheet - relationType: - type: string - enum: - - EQUALS - - ID_EQUALS - - LT - - GT - - NOT_EQUALS - x-enumDescriptions: - EQUALS: The value is equal to the specified value. - ID_EQUALS: The value is equal to the specified ID. - LT: The value is less than the specified value. - GT: The value is greater than the specified value. - NOT_EQUALS: The value is not equal to the specified value. - example: EQUALS - x-speakeasy-enum-descriptions: - EQUALS: The value is equal to the specified value. - ID_EQUALS: The value is equal to the specified ID. - LT: The value is less than the specified value. - GT: The value is greater than the specified value. - NOT_EQUALS: The value is not equal to the specified value. - isNegated: - type: boolean - deprecated: true - description: DEPRECATED - please use relationType instead - x-glean-deprecated: - id: 75a48c79-b36a-4171-a0a0-4af7189da66e - introduced: "2026-02-05" - message: Use relationType instead - removal: "2026-10-15" - x-speakeasy-deprecation-message: "Deprecated on 2026-02-05, removal scheduled for 2026-10-15: Use relationType instead" - FacetFilter: - properties: - fieldName: - type: string - example: owner - values: - type: array - items: - $ref: "#/components/schemas/FacetFilterValue" - description: Within a single FacetFilter, the values are to be treated like an OR. For example, fieldName type with values [EQUALS Presentation, EQUALS Spreadsheet] means we want to show a document if it's a Presentation OR a Spreadsheet. - groupName: - type: string - example: Spreadsheet - description: Indicates the value of a facet, if any, that the given facet is grouped under. This is only used for nested facets, for example, fieldName could be owner and groupName would be Spreadsheet if showing all owners for spreadsheets as a nested facet. - example: - fieldName: type - values: - - value: Spreadsheet - relationType: EQUALS - - value: Presentation - relationType: EQUALS - FacetFilterSet: - properties: - filters: - type: array - items: - $ref: "#/components/schemas/FacetFilter" - description: Within a single FacetFilterSet, the filters are treated as AND. For example, owner Sumeet and type Spreadsheet shows documents that are by Sumeet AND are Spreadsheets. - FacetBucketFilter: - properties: - facet: - type: string - description: The facet whose buckets should be filtered. - prefix: - type: string - description: The per-term prefix that facet buckets should be filtered on. - AuthToken: - required: - - accessToken - - datasource - properties: - accessToken: - type: string - datasource: - type: string - scope: - type: string - tokenType: - type: string - authUser: - description: Used by Google to indicate the index of the logged in user. Useful for generating hyperlinks that support multilogin. - type: string - expiration: - description: Unix timestamp when this token expires (in seconds since epoch UTC). - type: integer - format: int64 - example: - accessToken: 123abc - datasource: gmail - scope: email profile https://www.googleapis.com/auth/gmail.readonly - tokenType: Bearer - authUser: "1" - DocumentSpec: - x-multiple-discriminators: true - oneOf: - - type: object - required: - - url - properties: - url: - type: string - x-discriminator: true - description: The URL of the document. - - type: object - required: - - id - properties: - id: - type: string - x-discriminator: true - description: The ID of the document. - - type: object - required: - - contentId - - ugcType - properties: - ugcType: - type: string - enum: - - ANNOUNCEMENTS - - ANSWERS - - COLLECTIONS - - SHORTCUTS - - CHATS - description: The type of the user generated content (UGC datasource). - contentId: - type: integer - x-discriminator: true - description: The numeric id for user generated content. Used for ANNOUNCEMENTS, ANSWERS, COLLECTIONS, SHORTCUTS. - docType: - type: string - description: The specific type of the user generated content type. - - type: object - required: - - ugcType - - ugcId - properties: - ugcType: - type: string - enum: - - ANNOUNCEMENTS - - ANSWERS - - COLLECTIONS - - SHORTCUTS - - CHATS - description: The type of the user generated content (UGC datasource). - ugcId: - type: string - x-discriminator: true - description: The string id for user generated content. Used for CHATS. - docType: - type: string - description: The specific type of the user generated content type. - RestrictionFilters: - properties: - containerSpecs: - description: "Specifications for containers that should be used as part of the restriction (include/exclude). Memberships are recursively defined for a subset of datasources (currently: SharePoint, OneDrive, Google Drive, and Confluence). Please contact the Glean team to enable this for more datasources. Recursive memberships do not apply for Collections." - type: array - items: - $ref: "#/components/schemas/DocumentSpec" - SearchRequestOptions: - required: - - facetBucketSize - properties: - datasourceFilter: - type: string - description: Filter results to a single datasource name (e.g. gmail, slack). All results are returned if missing. - datasourcesFilter: - type: array - items: - type: string - description: Filter results to one or more datasources (e.g. gmail, slack). All results are returned if missing. - queryOverridesFacetFilters: - type: boolean - description: If true, the operators in the query are taken to override any operators in facetFilters in the case of conflict. This is used to correctly set rewrittenFacetFilters and rewrittenQuery. - facetFilters: - type: array - items: - $ref: "#/components/schemas/FacetFilter" - description: A list of filters for the query. An AND is assumed between different facetFilters. For example, owner Sumeet and type Spreadsheet shows documents that are by Sumeet AND are Spreadsheets. - facetFilterSets: - type: array - items: - $ref: "#/components/schemas/FacetFilterSet" - description: A list of facet filter sets that will be OR'ed together. SearchRequestOptions where both facetFilterSets and facetFilters set are considered as bad request. Callers should set only one of these fields. - facetBucketFilter: - $ref: "#/components/schemas/FacetBucketFilter" - facetBucketSize: - type: integer - description: The maximum number of FacetBuckets to return in each FacetResult. - defaultFacets: - type: array - items: - type: string - description: Facets for which FacetResults should be fetched and that don't apply to a particular datasource. If specified, these values will replace the standard default facets (last_updated_at, from, etc.). The requested facets will be returned alongside datasource-specific facets if searching a single datasource. - authTokens: - type: array - description: Auth tokens which may be used for non-indexed, federated results (e.g. Gmail). - items: - $ref: "#/components/schemas/AuthToken" - fetchAllDatasourceCounts: - type: boolean - description: Hints that the QE should return result counts (via the datasource facet result) for all supported datasources, rather than just those specified in the datasource[s]Filter - responseHints: - type: array - description: Array of hints containing which fields should be populated in the response. - items: + $ref: "#/components/schemas/ProcessingHistoryEvent" + DebugUserRequest: + type: object + description: Describes the request body of the /debug/{datasource}/user API call + properties: + email: + type: string + description: Email ID of the user to get the status for + example: u1@foo.com + required: + - email + DebugUserResponse: + type: object + description: Describes the response body of the /debug/{datasource}/user API call + properties: + status: + type: object + description: Upload and indexing status of the user + $ref: "#/components/schemas/UserStatusResponse" + uploadedGroups: + type: array + description: List of groups the user is a member of, as uploaded via permissions API. + items: + $ref: "#/components/schemas/DatasourceGroupDefinition" + UserStatusResponse: + type: object + description: Describes the user status response body + properties: + isActiveUser: + type: boolean + description: Whether the user is active or not + example: true + uploadStatus: + $ref: "#/components/schemas/UploadStatusEnum" + lastUploadedAt: + type: string + description: Time of last successful upload for the user, in ISO 8601 format + example: "2021-08-06T17:58:01.000Z" + UploadStatusEnum: type: string - description: Hints for the response content. - x-enumDescriptions: - ALL_RESULT_COUNTS: Return result counts for each result set which has non-zero results, even when the request itself is limited to a subset. - FACET_RESULTS: Return only facet results. - QUERY_METADATA: Returns result counts for each result set which has non-zero results, as well as other information about the search such as suggested spelling corrections. - RESULTS: Return search result documents. - SPELLCHECK_METADATA: Return metadata pertaining to spellcheck results. + description: Upload status, enum of NOT_UPLOADED, UPLOADED, STATUS_UNKNOWN enum: - - ALL_RESULT_COUNTS - - FACET_RESULTS - - QUERY_METADATA - - RESULTS - - SPELLCHECK_METADATA - x-speakeasy-enum-descriptions: - ALL_RESULT_COUNTS: Return result counts for each result set which has non-zero results, even when the request itself is limited to a subset. - FACET_RESULTS: Return only facet results. - QUERY_METADATA: Returns result counts for each result set which has non-zero results, as well as other information about the search such as suggested spelling corrections. - RESULTS: Return search result documents. - SPELLCHECK_METADATA: Return metadata pertaining to spellcheck results. - timezoneOffset: - type: integer - description: The offset of the client's timezone in minutes from UTC. e.g. PDT is -420 because it's 7 hours behind UTC. - disableSpellcheck: - type: boolean - description: Whether or not to disable spellcheck. - disableQueryAutocorrect: - type: boolean - description: Disables automatic adjustment of the input query for spelling corrections or other reasons. - returnLlmContentOverSnippets: - type: boolean - description: Enables expanded content to be returned for LLM usage. The size of content per result returned should be modified using maxSnippetSize. Server may return less or more than what is specified in maxSnippetSize. For more details, see https://developers.glean.com/guides/search/llm-content. - inclusions: - $ref: "#/components/schemas/RestrictionFilters" - description: A list of filters which restrict the search results to only the specified content. - exclusions: - $ref: "#/components/schemas/RestrictionFilters" - description: A list of filters specifying content to avoid getting search results from. Exclusions take precendence over inclusions and other query parameters, such as search operators and search facets. - example: - datasourceFilter: JIRA - datasourcesFilter: - - JIRA - queryOverridesFacetFilters: true - facetFilters: - - fieldName: fieldName - values: - - fieldValues - - fieldValues - - fieldName: fieldName - values: - - fieldValues - - fieldValues - TextRange: - required: - - startIndex - description: A subsection of a given string to which some special formatting should be applied. - properties: - startIndex: - type: integer - description: The inclusive start index of the range. - endIndex: - type: integer - description: The exclusive end index of the range. - type: - type: string - enum: - - BOLD - - CITATION - - HIGHLIGHT - - LINK - url: - type: string - description: The URL associated with the range, if applicable. For example, the linked URL for a LINK range. - document: - $ref: "#/components/schemas/Document" - description: A document corresponding to the range, if applicable. For example, the cited document for a CITATION range. - SearchRequestInputDetails: - properties: - hasCopyPaste: - type: boolean - description: Whether the associated query was at least partially copy-pasted. If subsequent requests are issued after a copy-pasted query is constructed (e.g. with facet modifications), this bit should continue to be set for those requests. - example: - hasCopyPaste: true - QuerySuggestion: - required: - - query - properties: - missingTerm: - type: string - description: A query term missing from the original query on which this suggestion is based. - query: - type: string - description: The query being suggested (e.g. enforcing the missing term from the original query). - searchProviderInfo: - $ref: "#/components/schemas/SearchProviderInfo" - description: Information about the search provider that generated this suggestion. - label: - type: string - description: A user-facing description to display for the suggestion. - datasource: - type: string - description: The datasource associated with the suggestion. - resultTab: - $ref: "#/components/schemas/ResultTab" - description: The result tab associated with the suggestion. - requestOptions: - $ref: "#/components/schemas/SearchRequestOptions" - ranges: - type: array - items: - $ref: "#/components/schemas/TextRange" - description: The bolded ranges within the query of the QuerySuggestion. - inputDetails: - $ref: "#/components/schemas/SearchRequestInputDetails" - example: - query: app:github type:pull author:mortimer - label: Mortimer's PRs - datasource: github - Person: - required: - - name - - obfuscatedId - properties: - name: - type: string - description: The display name. - obfuscatedId: - type: string - description: An opaque identifier that can be used to request metadata for a Person. - relatedDocuments: - type: array - items: - $ref: "#/components/schemas/RelatedDocuments" - description: A list of documents related to this person. - metadata: - $ref: "#/components/schemas/PersonMetadata" - example: - name: George Clooney - obfuscatedId: abc123 - Company: - required: - - name - properties: - name: - type: string - description: User-friendly display name. - profileUrl: - type: string - description: Link to internal company company profile. - websiteUrls: - type: array - description: Link to company's associated websites. - items: - type: string - logoUrl: - type: string - description: The URL of the company's logo. Public, Glean-authenticated and Base64 encoded data URLs are all valid (but not third-party-authenticated URLs). - location: - type: string - description: User facing string representing the company's location. - example: New York City - phone: - type: string - description: Phone number as a number string. - fax: - type: string - description: Fax number as a number string. - industry: - type: string - description: User facing string representing the company's industry. - example: Finances - annualRevenue: - type: number - format: double - description: Average company's annual revenue for reference. - numberOfEmployees: - type: integer - format: int64 - description: Average company's number of employees for reference. - stockSymbol: - type: string - description: Company's stock symbol if company is public. - foundedDate: - type: string - format: date - description: The date when the company was founded. - about: - type: string - description: User facing description of company. - example: Financial, software, data, and media company headquartered in Midtown Manhattan, New York City - DocumentCounts: - type: object - description: A map of {string, int} pairs representing counts of each document type associated with this customer. - additionalProperties: - type: integer - CustomDataValue: - properties: - displayLabel: - type: string - stringValue: - type: string - stringListValue: - type: array - description: list of strings for multi-value properties - items: - type: string - numberValue: - type: number - booleanValue: - type: boolean - CustomData: - type: object - description: Custom fields specific to individual datasources - additionalProperties: - $ref: "#/components/schemas/CustomDataValue" - CustomerMetadata: - properties: - datasourceId: - type: string - description: The user visible id of the salesforce customer account. - customData: - $ref: "#/components/schemas/CustomData" - Customer: - required: - - id - - company - properties: - id: - type: string - description: Unique identifier. - domains: - type: array - description: Link to company's associated website domains. - items: - type: string - company: - $ref: "#/components/schemas/Company" - documentCounts: - $ref: "#/components/schemas/DocumentCounts" - poc: - type: array - description: A list of POC for company. - items: - $ref: "#/components/schemas/Person" - metadata: - $ref: "#/components/schemas/CustomerMetadata" - mergedCustomers: - type: array - description: A list of Customers. - items: - $ref: "#/components/schemas/Customer" - startDate: - type: string - format: date - description: The date when the interaction with customer started. - contractAnnualRevenue: - type: number - format: double - description: Average contract annual revenue with that customer. - notes: - type: string - description: User facing (potentially generated) notes about company. - example: CIO is interested in trying out the product. - RelatedObject: - required: - - id - properties: - id: - type: string - description: The ID of the related object - metadata: - type: object - description: Some metadata of the object which can be displayed, while not having the actual object. - properties: - name: - type: string - description: Placeholder name of the object, not the relationship. - RelatedObjectEdge: - properties: - objects: - type: array - items: - $ref: "#/components/schemas/RelatedObject" - RelatedObjects: - properties: - relatedObjects: - type: object - description: A list of objects related to a source object. - additionalProperties: - $ref: "#/components/schemas/RelatedObjectEdge" - ScopeType: - type: string - description: Describes the scope for a ReadPermission, WritePermission, or GrantPermission object - enum: - - GLOBAL - - OWN - WritePermission: - description: Describes the write permissions levels that a user has for a specific feature - properties: - scopeType: - $ref: "#/components/schemas/ScopeType" - create: - type: boolean - description: True if user has create permission for this feature and scope - update: - type: boolean - description: True if user has update permission for this feature and scope - delete: - type: boolean - description: True if user has delete permission for this feature and scope - ObjectPermissions: - properties: - write: - $ref: "#/components/schemas/WritePermission" - PermissionedObject: - properties: - permissions: - $ref: "#/components/schemas/ObjectPermissions" - description: The permissions the current viewer has with respect to a particular object. - PersonToTeamRelationship: - required: - - person - type: object - description: Metadata about the relationship of a person to a team. - properties: - person: - $ref: "#/components/schemas/Person" - relationship: - type: string - description: The team member's relationship to the team. This defaults to MEMBER if not set. - default: MEMBER - enum: - - MEMBER - - MANAGER - - LEAD - - POINT_OF_CONTACT - - OTHER - customRelationshipStr: - type: string - description: Displayed name for the relationship if relationship is set to `OTHER`. - joinDate: - type: string - format: date-time - description: The team member's start date - TeamEmail: - properties: - email: - type: string - format: email - description: An email address - type: - type: string - default: OTHER - description: An enum of `PRIMARY`, `SECONDARY`, `ONCALL`, `OTHER` - type: object - required: - - email - - type - description: Information about a team's email - CustomFieldValueStr: - properties: - strText: - type: string - description: Text field for string value. - CustomFieldValueHyperlink: - properties: - urlAnchor: - type: string - description: Anchor text for hyperlink. - urlLink: - type: string - description: Link for this URL. - CustomFieldValuePerson: - properties: - person: - $ref: "#/components/schemas/Person" - CustomFieldValue: - oneOf: - - $ref: "#/components/schemas/CustomFieldValueStr" - - $ref: "#/components/schemas/CustomFieldValueHyperlink" - - $ref: "#/components/schemas/CustomFieldValuePerson" - CustomFieldData: - required: - - label - - values - - displayable - properties: - label: - type: string - description: A user-facing label for this field. - values: - type: array - items: - $ref: "#/components/schemas/CustomFieldValue" - displayable: - type: boolean - description: Determines whether the client should display this custom field - default: true - DatasourceProfile: - required: - - datasource - - handle - properties: - datasource: - type: string - example: github - description: The datasource the profile is of. - handle: - type: string - description: The display name of the entity in the given datasource. - url: - type: string - description: URL to view the entity's profile. - nativeAppUrl: - type: string - description: A deep link, if available, into the datasource's native application for the entity's platform (i.e. slack://...). - isUserGenerated: - type: boolean - description: For internal use only. True iff the data source profile was manually added by a user from within Glean (aka not from the original data source) - Team: - allOf: - - $ref: "#/components/schemas/RelatedObjects" - - $ref: "#/components/schemas/PermissionedObject" - - type: object - required: - - id - - name - properties: - id: - type: string - description: Unique identifier - name: - type: string - description: Team name - description: - type: string - description: A description of the team - businessUnit: - type: string - description: Typically the highest level organizational unit; generally applies to bigger companies with multiple distinct businesses. - department: - type: string - description: An organizational unit where everyone has a similar task, e.g. `Engineering`. - photoUrl: - type: string - format: url - description: A link to the team's photo. - bannerUrl: - type: string - format: url - description: A link to the team's banner photo. - externalLink: - type: string - format: uri - description: Link to a team page on the internet or your company's intranet - members: - type: array - description: The members on this team - items: - $ref: "#/components/schemas/PersonToTeamRelationship" - memberCount: - type: integer - description: Number of members on this team (recursive; includes all individuals that belong to this team, and all individuals that belong to a subteam within this team) - emails: - type: array - description: The emails for this team - items: - $ref: "#/components/schemas/TeamEmail" - customFields: - type: array - description: Customizable fields for additional team information. - items: - $ref: "#/components/schemas/CustomFieldData" - datasourceProfiles: - type: array - description: The datasource profiles of the team - items: - $ref: "#/components/schemas/DatasourceProfile" - datasource: - type: string - description: the data source of the team, e.g. GDRIVE - createdFrom: - type: string - description: For teams created from docs, the doc title. Otherwise empty. - lastUpdatedAt: - type: string - format: date-time - description: when this team was last updated. - status: - type: string - description: whether this team is fully processed or there are still unprocessed operations that'll affect it - default: PROCESSED - enum: - - PROCESSED - - QUEUED_FOR_CREATION - - QUEUED_FOR_DELETION - canBeDeleted: - type: boolean - description: can this team be deleted. Some manually ingested teams like GCS_CSV or PUSH_API cannot - default: true - loggingId: - type: string - description: The logging id of the team used in scrubbed logs, client analytics, and metrics. - CustomEntityMetadata: - properties: - customData: - $ref: "#/components/schemas/CustomData" - GroupType: - type: string - description: The type of user group - enum: - - DEPARTMENT - - ALL - - TEAM - - JOB_TITLE - - ROLE_TYPE - - LOCATION - - REGION - - EXTERNAL_GROUP - Group: - required: - - type - - id - properties: - type: - $ref: "#/components/schemas/GroupType" - id: - type: string - description: A unique identifier for the group. May be the same as name. - name: - type: string - description: Name of the group. - datasourceInstance: - type: string - description: Datasource instance if the group belongs to one e.g. external groups. - provisioningId: - type: string - description: identifier for greenlist provisioning, aka sciokey - UserRole: - type: string - description: A user's role with respect to a specific document. - enum: - - OWNER - - VIEWER - - ANSWER_MODERATOR - - EDITOR - - VERIFIER - UserRoleSpecification: - required: - - role - properties: - sourceDocumentSpec: - $ref: "#/components/schemas/DocumentSpec" - description: The document spec of the object this role originates from. The object this role is included with will usually have the same information as this document spec, but if the role is inherited, then the document spec refers to the parent document that the role came from. - person: - $ref: "#/components/schemas/Person" - group: - $ref: "#/components/schemas/Group" - role: - $ref: "#/components/schemas/UserRole" - CustomEntity: - allOf: - - $ref: "#/components/schemas/PermissionedObject" - - type: object - properties: - id: - type: string - description: Unique identifier. - title: - type: string - description: Title or name of the custom entity. - datasource: - type: string - description: The datasource the custom entity is from. - objectType: - type: string - description: The type of the entity. Interpretation is specific to each datasource - metadata: - $ref: "#/components/schemas/CustomEntityMetadata" - roles: - type: array - description: A list of user roles for the custom entity explicitly granted by the owner. - items: - $ref: "#/components/schemas/UserRoleSpecification" - AnswerId: - properties: - id: - type: integer - description: The opaque ID of the Answer. - example: 3 - AnswerDocId: - properties: - docId: - type: string - description: Glean Document ID of the Answer. The Glean Document ID is supported for cases where the Answer ID isn't available. If both are available, using the Answer ID is preferred. - example: ANSWERS_answer_3 - AnswerMutableProperties: - properties: - question: - type: string - example: Why is the sky blue? - questionVariations: - type: array - description: Additional ways of phrasing this question. - items: - type: string - bodyText: - type: string - description: The plain text answer to the question. - example: From https://en.wikipedia.org/wiki/Diffuse_sky_radiation, the sky is blue because blue light is more strongly scattered than longer-wavelength light. - boardId: - type: integer - description: The parent board ID of this Answer, or 0 if it's a floating Answer. Adding Answers to Answer Boards is no longer permitted. - deprecated: true - x-glean-deprecated: - id: 3729bc64-8859-4159-b93c-ce2d5f0e7304 - introduced: "2026-02-05" - message: Answer Boards no longer supported - removal: "2026-10-15" - x-speakeasy-deprecation-message: "Deprecated on 2026-02-05, removal scheduled for 2026-10-15: Answer Boards no longer supported" - audienceFilters: - type: array - description: Filters which restrict who should see the answer. Values are taken from the corresponding filters in people search. - items: - $ref: "#/components/schemas/FacetFilter" - addedRoles: - type: array - description: A list of user roles for the answer added by the owner. - items: - $ref: "#/components/schemas/UserRoleSpecification" - removedRoles: - type: array - description: A list of user roles for the answer removed by the owner. - items: - $ref: "#/components/schemas/UserRoleSpecification" - roles: - type: array - description: A list of roles for this answer explicitly granted by an owner, editor, or admin. - items: - $ref: "#/components/schemas/UserRoleSpecification" - sourceDocumentSpec: - $ref: "#/components/schemas/DocumentSpec" - sourceType: - type: string - enum: - - DOCUMENT - - ASSISTANT - StructuredText: - allOf: - - $ref: "#/components/schemas/StructuredTextMutableProperties" - - type: object - properties: - structuredList: - type: array - items: - $ref: "#/components/schemas/StructuredTextItem" - description: An array of objects each of which contains either a string or a link which optionally corresponds to a document. - AnswerLike: - properties: - user: - $ref: "#/components/schemas/Person" - createTime: - type: string - format: date-time - description: The time the user liked the answer in ISO format (ISO 8601). - AnswerLikes: - required: - - likedBy - - likedByUser - - numLikes - properties: - likedBy: - type: array - items: - $ref: "#/components/schemas/AnswerLike" - likedByUser: - type: boolean - description: Whether the user in context liked the answer. - numLikes: - type: integer - description: The total number of likes for the answer. - Reminder: - required: - - assignee - - remindAt - properties: - assignee: - $ref: "#/components/schemas/Person" - requestor: - $ref: "#/components/schemas/Person" - remindAt: - type: integer - description: Unix timestamp for when the reminder should trigger (in seconds since epoch UTC). - createdAt: - type: integer - description: Unix timestamp for when the reminder was first created (in seconds since epoch UTC). - reason: - type: string - description: An optional free-text reason for the reminder. This is particularly useful when a reminder is used to ask for verification from another user (for example, "Duplicate", "Incomplete", "Incorrect"). - TimePoint: - properties: - epochSeconds: - type: integer - description: Epoch seconds. Has precedence over daysFromNow. - daysFromNow: - type: integer - description: The number of days from now. Specification relative to current time. Can be negative. - Period: - properties: - minDaysFromNow: - type: integer - description: DEPRECATED - The number of days from now in the past to define upper boundary of time period. - deprecated: true - maxDaysFromNow: - type: integer - description: DEPRECATED - The number of days from now in the past to define lower boundary of time period. - deprecated: true - start: - $ref: "#/components/schemas/TimePoint" - end: - $ref: "#/components/schemas/TimePoint" - CountInfo: - required: - - count - properties: - count: - type: integer - description: The counter value - period: - $ref: "#/components/schemas/Period" - org: - type: string - description: The unit of organization over which we did the count aggregation, e.g. org (department) or company - VerificationMetadata: - required: - - documentId - properties: - lastVerifier: - $ref: "#/components/schemas/Person" - lastVerificationTs: - type: integer - description: The unix timestamp of the verification (in seconds since epoch UTC). - expirationTs: - type: integer - description: The unix timestamp of the verification expiration if applicable (in seconds since epoch UTC). - document: - $ref: "#/components/schemas/Document" - reminders: - type: array - items: - $ref: "#/components/schemas/Reminder" - description: Info about all outstanding verification reminders for the document if exists. - lastReminder: - $ref: "#/components/schemas/Reminder" - visitorCount: - type: array - items: - $ref: "#/components/schemas/CountInfo" - description: Number of visitors to the document during included time periods. - candidateVerifiers: - type: array - items: - $ref: "#/components/schemas/Person" - description: List of potential verifiers for the document e.g. old verifiers and/or users with view/edit permissions. - Verification: - required: - - state - properties: - state: - type: string - enum: - - UNVERIFIED - - VERIFIED - - DEPRECATED - description: The verification state for the document. - metadata: - $ref: "#/components/schemas/VerificationMetadata" - CollectionBaseMutableProperties: - required: - - name - properties: - name: - type: string - description: The unique name of the Collection. - description: - type: string - description: A brief summary of the Collection's contents. - addedRoles: - type: array - description: A list of added user roles for the Collection. - items: - $ref: "#/components/schemas/UserRoleSpecification" - removedRoles: - type: array - description: A list of removed user roles for the Collection. - items: - $ref: "#/components/schemas/UserRoleSpecification" - audienceFilters: - type: array - items: - $ref: "#/components/schemas/FacetFilter" - description: Filters which restrict who should see this Collection. Values are taken from the corresponding filters in people search. - Thumbnail: - properties: - photoId: - type: string - description: Photo id if the thumbnail is from splash. - url: - type: string - description: Thumbnail URL. This can be user provided image and/or from downloaded images hosted by Glean. - CollectionMutableProperties: - allOf: - - $ref: "#/components/schemas/CollectionBaseMutableProperties" - - type: object - required: - - name - properties: - icon: - type: string - description: The emoji icon of this Collection. - adminLocked: - type: boolean - description: Indicates whether edits are allowed for everyone or only admins. - parentId: - type: integer - description: The parent of this Collection, or 0 if it's a top-level Collection. - thumbnail: - $ref: "#/components/schemas/Thumbnail" - allowedDatasource: - type: string - description: The datasource type this Collection can hold. - CollectionItemMutableProperties: - properties: - name: - type: string - description: The optional name of the Collection item. - description: - type: string - description: A helpful description of why this CollectionItem is in the Collection that it's in. - icon: - type: string - description: The emoji icon for this CollectionItem. Only used for Text type items. - UserGeneratedContentId: - properties: - id: - type: integer - description: The opaque id of the user generated content. - ShortcutMutableProperties: - properties: - inputAlias: - type: string - description: Link text following go/ prefix as entered by the user. - destinationUrl: - type: string - description: Destination URL for the shortcut. - destinationDocumentId: - type: string - description: Glean Document ID for the URL, if known. - description: - type: string - description: A short, plain text blurb to help people understand the intent of the shortcut. - unlisted: - type: boolean - description: Whether this shortcut is unlisted or not. Unlisted shortcuts are visible to author + admins only. - urlTemplate: - type: string - description: For variable shortcuts, contains the URL template; note, `destinationUrl` contains default URL. - addedRoles: - type: array - description: A list of user roles added for the Shortcut. - items: - $ref: "#/components/schemas/UserRoleSpecification" - removedRoles: - type: array - description: A list of user roles removed for the Shortcut. - items: - $ref: "#/components/schemas/UserRoleSpecification" - ShortcutMetadata: - properties: - createdBy: - $ref: "#/components/schemas/Person" - createTime: - type: string - format: date-time - description: The time the shortcut was created in ISO format (ISO 8601). - updatedBy: - $ref: "#/components/schemas/Person" - updateTime: - type: string - format: date-time - description: The time the shortcut was updated in ISO format (ISO 8601). - destinationDocument: - $ref: "#/components/schemas/Document" - description: Document that corresponds to the destination URL, if applicable. - intermediateUrl: - type: string - description: The URL from which the user is then redirected to the destination URL. Full replacement for https://go/. - viewPrefix: - type: string - description: The part of the shortcut preceding the input alias when used for showing shortcuts to users. Should end with "/". e.g. "go/" for native shortcuts. - isExternal: - type: boolean - description: Indicates whether a shortcut is native or external. - editUrl: - type: string - description: The URL using which the user can access the edit page of the shortcut. - Shortcut: - allOf: - - $ref: "#/components/schemas/UserGeneratedContentId" - - $ref: "#/components/schemas/ShortcutMutableProperties" - - $ref: "#/components/schemas/PermissionedObject" - - $ref: "#/components/schemas/ShortcutMetadata" - - type: object - required: - - inputAlias - properties: - alias: - type: string - description: canonical link text following go/ prefix where hyphen/underscore is removed. - title: - type: string - description: Title for the Go Link - roles: - type: array - description: A list of user roles for the Go Link. - items: - $ref: "#/components/schemas/UserRoleSpecification" - Collection: - allOf: - - $ref: "#/components/schemas/CollectionMutableProperties" - - $ref: "#/components/schemas/PermissionedObject" - - type: object - required: - - id - - description - properties: - id: - type: integer - description: The unique ID of the Collection. - createTime: - type: string - format: date-time - updateTime: - type: string - format: date-time - creator: - $ref: "#/components/schemas/Person" - updatedBy: - $ref: "#/components/schemas/Person" - itemCount: - type: integer - description: The number of items currently in the Collection. Separated from the actual items so we can grab the count without items. - childCount: - type: integer - description: The number of children Collections. Separated from the actual children so we can grab the count without children. - items: - type: array - items: - $ref: "#/components/schemas/CollectionItem" - description: The items in this Collection. - pinMetadata: - $ref: "#/components/schemas/CollectionPinnedMetadata" - description: Metadata having what categories this Collection is pinned to and the eligible categories to pin to - shortcuts: - type: array - items: - type: string - description: The names of the shortcuts (Go Links) that point to this Collection. - children: - type: array - items: - $ref: "#/components/schemas/Collection" - description: The children Collections of this Collection. - roles: - type: array - description: A list of user roles for the Collection. - items: - $ref: "#/components/schemas/UserRoleSpecification" - CollectionItem: - allOf: - - $ref: "#/components/schemas/CollectionItemMutableProperties" - - type: object - required: - - collectionId - - itemType - properties: - collectionId: - type: integer - description: The Collection ID of the Collection that this CollectionItem belongs in. - documentId: - type: string - description: If this CollectionItem is indexed, the Glean Document ID of that document. - url: - type: string - description: The URL of this CollectionItem. - itemId: - type: string - description: Unique identifier for the item within the Collection it belongs to. - createdBy: - $ref: "#/components/schemas/Person" - description: The person who added this Collection item. - createdAt: - type: string - format: date-time - description: Unix timestamp for when the item was first added (in seconds since epoch UTC). - document: - $ref: "#/components/schemas/Document" - description: The Document this CollectionItem corresponds to (omitted if item is a non-indexed URL). - shortcut: - $ref: "#/components/schemas/Shortcut" - description: The Shortcut this CollectionItem corresponds to (only included if item URL is for a Go Link). - collection: - $ref: "#/components/schemas/Collection" - description: The Collection this CollectionItem corresponds to (only included if item type is COLLECTION). - itemType: - type: string - enum: - - DOCUMENT - - TEXT - - URL - - COLLECTION - CollectionPinnableCategories: - type: string - description: Categories a Collection can be pinned to. - enum: - - COMPANY_RESOURCE - - DEPARTMENT_RESOURCE - - TEAM_RESOURCE - CollectionPinnableTargets: - type: string - description: What targets can a Collection be pinned to. - enum: - - RESOURCE_CARD - - TEAM_PROFILE_PAGE - CollectionPinTarget: - required: - - category - properties: - category: - $ref: "#/components/schemas/CollectionPinnableCategories" - value: - type: string - description: Optional. If category supports values, then the additional value for the category e.g. department name for DEPARTMENT_RESOURCE, team name/id for TEAM_RESOURCE and so on. - target: - $ref: "#/components/schemas/CollectionPinnableTargets" - CollectionPinMetadata: - required: - - id - - target - properties: - id: - type: integer - description: The ID of the Collection. - target: - $ref: "#/components/schemas/CollectionPinTarget" - CollectionPinnedMetadata: - required: - - pinnedCategories - - eligibleCategoriesForPinning - properties: - existingPins: - type: array - items: - $ref: "#/components/schemas/CollectionPinTarget" - description: List of targets this Collection is pinned to. - eligiblePins: - type: array - items: - $ref: "#/components/schemas/CollectionPinMetadata" - description: List of targets this Collection can be pinned to, excluding the targets this Collection is already pinned to. We also include Collection ID already is pinned to each eligible target, which will be 0 if the target has no pinned Collection. - Answer: - allOf: - - $ref: "#/components/schemas/AnswerId" - - $ref: "#/components/schemas/AnswerDocId" - - $ref: "#/components/schemas/AnswerMutableProperties" - - $ref: "#/components/schemas/PermissionedObject" - - type: object - required: - - id - properties: - combinedAnswerText: - $ref: "#/components/schemas/StructuredText" - likes: - $ref: "#/components/schemas/AnswerLikes" - author: - $ref: "#/components/schemas/Person" - createTime: - type: string - format: date-time - description: The time the answer was created in ISO format (ISO 8601). - updateTime: - type: string - format: date-time - description: The time the answer was last updated in ISO format (ISO 8601). - updatedBy: - $ref: "#/components/schemas/Person" - verification: - $ref: "#/components/schemas/Verification" - collections: - type: array - description: The collections to which the answer belongs. - items: - $ref: "#/components/schemas/Collection" - documentCategory: - type: string - description: The document's document_category(.proto). - sourceDocument: - $ref: "#/components/schemas/Document" - FollowupAction: - description: A follow-up action that can be invoked by the user after a response. The action parameters are not included and need to be predicted/filled separately. - properties: - actionRunId: - type: string - description: Unique identifier for this actionRun recommendation event. - actionInstanceId: - type: string - description: The ID of the action instance that will be invoked. - actionId: - type: string - description: The ID of the associated action. - parameters: - type: object - description: Map of assistant predicted parameters and their corresponding values. - additionalProperties: - type: string - recommendationText: - type: string - description: Text to be displayed to the user when recommending the action instance. - actionLabel: - type: string - description: The label to be used when displaying a button to execute this action instance. - userConfirmationRequired: - type: boolean - description: Whether user confirmation is needed before executing this action instance. - GeneratedQna: - properties: - question: - type: string - description: Search query rephrased into a question. - answer: - type: string - description: Answer generated for the given query or the generated question. - followUpPrompts: - type: array - items: - type: string - description: List of all follow-up prompts generated for the given query or the generated question. - followupActions: - description: List of follow-up actions generated for the given query or the generated question. - type: array - items: - $ref: "#/components/schemas/FollowupAction" - ranges: - type: array - items: - $ref: "#/components/schemas/TextRange" - description: Answer subsections to mark with special formatting (citations, bolding etc) - status: - type: string - enum: - - COMPUTING - - DISABLED - - FAILED - - NO_ANSWER - - SKIPPED - - STREAMING - - SUCCEEDED - - TIMEOUT - description: Status of backend generating the answer - cursor: - type: string - description: An opaque cursor representing the search request - trackingToken: - type: string - description: An opaque token that represents this particular result in this particular query. To be used for /feedback reporting. - SearchResult: - required: - - url - allOf: - - $ref: "#/components/schemas/Result" - - type: object - properties: - document: - $ref: "#/components/schemas/Document" - title: - type: string - url: - type: string - nativeAppUrl: - type: string - description: A deep link, if available, into the datasource's native application for the user's platform (e.g. slack://...). - snippets: - type: array - items: - $ref: "#/components/schemas/SearchResultSnippet" - description: Text content from the result document which contains search query terms, if available. - fullText: - type: string - description: The full body text of the result if not already contained in the snippets. Only populated for conversation results (e.g. results from a messaging app such as Slack). - fullTextList: - type: array - description: The full body text of the result if not already contained in the snippets; each item in the array represents a separate line in the original text. Only populated for conversation results (e.g. results from a messaging app such as Slack). - items: - type: string - relatedResults: - type: array - items: - $ref: "#/components/schemas/RelatedDocuments" - description: A list of results related to this search result. Eg. for conversation results it contains individual messages from the conversation document which will be shown on SERP. - clusteredResults: - type: array - description: A list of results that should be displayed as associated with this result. - items: - $ref: "#/components/schemas/SearchResult" - allClusteredResults: - type: array - description: A list of results that should be displayed as associated with this result. - items: - $ref: "#/components/schemas/ClusterGroup" - attachmentCount: - type: integer - description: The total number of attachments. - attachments: - type: array - description: A (potentially partial) list of results representing documents attached to the main result document. - items: - $ref: "#/components/schemas/SearchResult" - backlinkResults: - type: array - description: A list of results that should be displayed as backlinks of this result in reverse chronological order. - items: - $ref: "#/components/schemas/SearchResult" - clusterType: - $ref: "#/components/schemas/ClusterTypeEnum" - mustIncludeSuggestions: - $ref: "#/components/schemas/QuerySuggestionList" - querySuggestion: - $ref: "#/components/schemas/QuerySuggestion" - prominence: - $ref: "#/components/schemas/SearchResultProminenceEnum" - attachmentContext: - type: string - description: Additional context for the relationship between the result and the document it's attached to. - pins: - type: array - description: A list of pins associated with this search result. - items: - $ref: "#/components/schemas/PinDocument" - example: - snippets: - - snippet: snippet - mimeType: mimeType - metadata: - container: container - createTime: "2000-01-23T04:56:07.000Z" - datasource: datasource - author: - name: name - documentId: documentId - updateTime: "2000-01-23T04:56:07.000Z" - mimeType: mimeType - objectType: objectType - title: title - url: https://example.com/foo/bar - nativeAppUrl: slack://foo/bar - mustIncludeSuggestions: - - missingTerm: container - query: container - ExtractedQnA: - properties: - heading: - type: string - description: Heading text that was matched to produce this result. - question: - type: string - description: Question text that was matched to produce this result. - questionResult: - $ref: "#/components/schemas/SearchResult" - CalendarAttendee: - required: - - person - properties: - isOrganizer: - type: boolean - description: Whether or not this attendee is an organizer. - isInGroup: - type: boolean - description: Whether or not this attendee is in a group. Needed temporarily at least to support both flat attendees and tree for compatibility. - person: - $ref: "#/components/schemas/Person" - groupAttendees: - type: array - description: If this attendee is a group, represents the list of individual attendees in the group. - items: - $ref: "#/components/schemas/CalendarAttendee" - responseStatus: - type: string - enum: - - ACCEPTED - - DECLINED - - NO_RESPONSE - - TENTATIVE - CalendarAttendees: - properties: - people: - type: array - items: - $ref: "#/components/schemas/CalendarAttendee" - description: Full details of some of the attendees of this event - isLimit: - type: boolean - description: Whether the total count of the people returned is at the retrieval limit. - total: - type: integer - description: Total number of attendees in this event. - numAccepted: - type: integer - description: Total number of attendees who have accepted this event. - numDeclined: - type: integer - description: Total number of attendees who have declined this event. - numNoResponse: - type: integer - description: Total number of attendees who have not responded to this event. - numTentative: - type: integer - description: Total number of attendees who have responded tentatively (i.e. responded maybe) to this event. - Meeting: - properties: - id: - type: string - title: - type: string - description: - type: string - url: - type: string - startTime: - type: string - format: date-time - endTime: - type: string - format: date-time - 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 - properties: - datasource: - type: string - description: The app or other repository type this represents - docType: - type: string - description: The datasource-specific type of the document (e.g. for Jira issues, this is the issue type such as Bug or Feature Request). - mimeType: - type: string - description: Mimetype is used to differentiate between sub applications from a datasource (e.g. Sheets, Docs from Gdrive) - iconUrl: - type: string - description: If there is available icon URL. - CodeLine: - properties: - lineNumber: - type: integer - content: - type: string - ranges: - type: array - items: - $ref: "#/components/schemas/TextRange" - description: Index ranges depicting matched sections of the line - Code: - properties: - repoName: - type: string - fileName: - type: string - fileUrl: - type: string - lines: - type: array - items: - $ref: "#/components/schemas/CodeLine" - isLastMatch: - type: boolean - description: Last file match for a repo - example: - repoName: scio - fileName: README.md - matches: - - lineNumber: 1 - content: Welcome to the beginning - ranges: [] - - lineNumber: 2 - content: Second line of the file - ranges: [] - - lineNumber: 3 - content: hello world hello world - ranges: - - startindex: 0 - endIndex: 5 - - startIndex: 12 - endIndex: 17 - QuerySuggestionList: - properties: - suggestions: - type: array - items: - $ref: "#/components/schemas/QuerySuggestion" - person: - $ref: "#/components/schemas/Person" - IconConfig: - description: Defines how to render an icon - properties: - generatedBackgroundColorKey: - type: string - backgroundColor: - type: string - color: - type: string - key: - type: string - iconType: - enum: - - COLLECTION - - CUSTOM - - DATASOURCE - - DATASOURCE_INSTANCE - - FAVICON - - FILE_TYPE - - GENERATED_BACKGROUND - - GLYPH - - MIME_TYPE - - NO_ICON - - PERSON - - REACTIONS - - URL - masked: - type: boolean - description: Whether the icon should be masked based on current theme. - name: - type: string - description: The name of the icon if applicable, e.g. the glyph name for `IconType.GLYPH` icons. - url: - type: string - description: The URL to an image to be displayed if applicable, e.g. the URL for `iconType.URL` icons. - example: - color: "#343CED" - key: person_icon - iconType: GLYPH - name: user - ChatMetadata: - description: Metadata of a Chat a user had with Glean Assistant. This contains no actual conversational content. - properties: - id: - type: string - description: The opaque id of the Chat. - createTime: - type: integer - description: Server Unix timestamp of the creation time (in seconds since epoch UTC). - createdBy: - $ref: "#/components/schemas/Person" - description: The user who created this Chat. - updateTime: - type: integer - description: Server Unix timestamp of the update time (in seconds since epoch UTC). - name: - type: string - description: The name of the Chat. - applicationId: - type: string - description: The ID of the AI App that this Chat is associated to. - applicationName: - type: string - description: The display name of the AI App that this Chat is associated to. - icon: - $ref: "#/components/schemas/IconConfig" - RelatedDocuments: - properties: - relation: - type: string - description: How this document relates to the including entity. - enum: - - ATTACHMENT - - CANONICAL - - CASE - - contact - - CONTACT - - CONVERSATION_MESSAGES - - EXPERT - - FROM - - HIGHLIGHT - - opportunity - - OPPORTUNITY - - RECENT - - SOURCE - - TICKET - - TRANSCRIPT - - WITH - x-enumDescriptions: - CANONICAL: Canonical documents for the entity, such as overview docs, architecture docs elastic. - x-speakeasy-enum-descriptions: - CANONICAL: Canonical documents for the entity, such as overview docs, architecture docs elastic. - associatedEntityId: - type: string - description: Which entity in the response that this entity relates to. Relevant when there are multiple entities associated with the response (such as merged customers) - querySuggestion: - $ref: "#/components/schemas/QuerySuggestion" - documents: - type: array - items: - $ref: "#/components/schemas/Document" - description: A truncated list of documents with this relation. TO BE DEPRECATED. - deprecated: true - x-glean-deprecated: - id: 68de0429-b0cc-4b40-8061-f848788079a2 - introduced: "2026-02-05" - message: Field is deprecated - removal: "2026-10-15" - x-speakeasy-deprecation-message: "Deprecated on 2026-02-05, removal scheduled for 2026-10-15: Field is deprecated" - results: - type: array - items: - $ref: "#/components/schemas/SearchResult" - description: A truncated list of documents associated with this relation. To be used in favor of `documents` because it contains a trackingToken. - RelatedQuestion: - properties: - question: - type: string - description: The text of the related question - answer: - type: string - description: The answer for the related question - ranges: - type: array - items: - $ref: "#/components/schemas/TextRange" - description: Subsections of the answer string to which some special formatting should be applied (eg. bold) - EntityType: - type: string - description: The type of entity. - x-include-enum-class-prefix: true - enum: - - PERSON - - PROJECT - - CUSTOMER - Disambiguation: - type: object - description: A disambiguation between multiple entities with the same name - properties: - name: - type: string - description: Name of the ambiguous entity - id: - type: string - description: The unique id of the entity in the knowledge graph - type: - $ref: "#/components/schemas/EntityType" - SearchResultSnippet: - required: - - snippet - properties: - mimeType: - type: string - description: The mime type of the snippets, currently either text/plain or text/html. - text: - type: string - description: A matching snippet from the document with no highlights. - snippetTextOrdering: - type: integer - description: Used for sorting based off the snippet's location within all_snippetable_text - ranges: - type: array - items: - $ref: "#/components/schemas/TextRange" - description: The bolded ranges within text. - url: - type: string - description: A URL, generated based on availability, that links to the position of the snippet text or to the nearest header above the snippet text. - snippet: - type: string - deprecated: true - description: A matching snippet from the document. Query term matches are marked by the unicode characters uE006 and uE007. Use 'text' field instead. - example: - snippet: snippet - mimeType: mimeType - StructuredResult: - description: A single object that can support any object in the work graph. Only a single object will be populated. - properties: - document: - $ref: "#/components/schemas/Document" - person: - $ref: "#/components/schemas/Person" - customer: - $ref: "#/components/schemas/Customer" - team: - $ref: "#/components/schemas/Team" - customEntity: - $ref: "#/components/schemas/CustomEntity" - answer: - $ref: "#/components/schemas/Answer" - generatedQna: - $ref: "#/components/schemas/GeneratedQna" - extractedQnA: - $ref: "#/components/schemas/ExtractedQnA" - meeting: - $ref: "#/components/schemas/Meeting" - app: - $ref: "#/components/schemas/AppResult" - collection: - $ref: "#/components/schemas/Collection" - code: - $ref: "#/components/schemas/Code" - shortcut: - $ref: "#/components/schemas/Shortcut" - querySuggestions: - $ref: "#/components/schemas/QuerySuggestionList" - chat: - $ref: "#/components/schemas/ChatMetadata" - relatedDocuments: - type: array - items: - $ref: "#/components/schemas/RelatedDocuments" - description: A list of documents related to this structured result. - relatedQuestion: - $ref: "#/components/schemas/RelatedQuestion" - disambiguation: - $ref: "#/components/schemas/Disambiguation" - snippets: - description: Any snippets associated to the populated object. - type: array - items: - $ref: "#/components/schemas/SearchResultSnippet" - trackingToken: - type: string - description: An opaque token that represents this particular result in this particular query. To be used for /feedback reporting. - prominence: - type: string - description: The level of visual distinction that should be given to a result. - x-enumDescriptions: - HERO: A high-confidence result that should feature prominently on the page. - PROMOTED: May not be the best result but should be given additional visual distinction. - STANDARD: Should not be distinct from any other results. - enum: - - HERO - - PROMOTED - - STANDARD - x-speakeasy-enum-descriptions: - HERO: A high-confidence result that should feature prominently on the page. - PROMOTED: May not be the best result but should be given additional visual distinction. - STANDARD: Should not be distinct from any other results. - source: - type: string - description: Source context for this result. Possible values depend on the result type. - enum: - - EXPERT_DETECTION - - ENTITY_NLQ - - CALENDAR_EVENT - - AGENT - Result: - properties: - structuredResults: - type: array - description: An array of entities in the work graph retrieved via a data request. - items: - $ref: "#/components/schemas/StructuredResult" - trackingToken: - type: string - description: An opaque token that represents this particular result in this particular query. To be used for /feedback reporting. - ClusterTypeEnum: - type: string - description: The reason for inclusion of clusteredResults. - enum: - - SIMILAR - - FRESHNESS - - TITLE - - CONTENT - - NONE - - THREAD_REPLY - - THREAD_ROOT - - PREFIX - - SUFFIX - - AUTHOR_PREFIX - - AUTHOR_SUFFIX - ClusterGroup: - required: - - visibleCountHint - properties: - clusteredResults: - type: array - description: A list of results that should be displayed as associated with this result. - items: - $ref: "#/components/schemas/SearchResult" - clusterType: - $ref: "#/components/schemas/ClusterTypeEnum" - visibleCountHint: - type: integer - description: The default number of results to display before truncating and showing a "see more" link - SearchResultProminenceEnum: - type: string - description: | - The level of visual distinction that should be given to a result. - x-enumDescriptions: - HERO: A high-confidence result that should feature prominently on the page. - PROMOTED: May not be the best result but should be given additional visual distinction. - STANDARD: Should not be distinct from any other results. - enum: - - HERO - - PROMOTED - - STANDARD - x-speakeasy-enum-descriptions: - HERO: A high-confidence result that should feature prominently on the page. - PROMOTED: May not be the best result but should be given additional visual distinction. - STANDARD: Should not be distinct from any other results. - PinDocumentMutableProperties: - properties: - queries: - type: array - description: The query strings for which the pinned result will show. - items: - type: string - audienceFilters: - type: array - description: Filters which restrict who should see the pinned document. Values are taken from the corresponding filters in people search. - items: - $ref: "#/components/schemas/FacetFilter" - PinDocument: - allOf: - - $ref: "#/components/schemas/PinDocumentMutableProperties" - - type: object - required: - - documentId - properties: - id: - type: string - description: The opaque id of the pin. - documentId: - type: string - description: The document which should be a pinned result. - audienceFilters: - type: array - description: Filters which restrict who should see the pinned document. Values are taken from the corresponding filters in people search. - items: - $ref: "#/components/schemas/FacetFilter" - attribution: - $ref: "#/components/schemas/Person" - updatedBy: - $ref: "#/components/schemas/Person" - createTime: - type: string - format: date-time - updateTime: - type: string - format: date-time - PersonTeam: - description: Use `id` if you index teams via Glean, and use `name` and `externalLink` if you want to use your own team pages - properties: - id: - type: string - description: Unique identifier - name: - type: string - description: Team name - externalLink: - type: string - format: uri - description: Link to a team page on the internet or your company's intranet - relationship: - type: string - description: The team member's relationship to the team. This defaults to MEMBER if not set. - default: MEMBER - enum: - - MEMBER - - MANAGER - - LEAD - - POINT_OF_CONTACT - - OTHER - joinDate: - type: string - format: date-time - description: The team member's start date - StructuredLocation: - type: object - description: Detailed location with information about country, state, city etc. - properties: - deskLocation: - type: string - description: Desk number. - timezone: - type: string - description: Location's timezone, e.g. UTC, PST. - address: - type: string - description: Office address or name. - city: - type: string - description: Name of the city. - state: - type: string - description: State code. - region: - type: string - description: Region information, e.g. NORAM, APAC. - zipCode: - type: string - description: ZIP Code for the address. - country: - type: string - description: Country name. - countryCode: - type: string - description: Alpha-2 or Alpha-3 ISO 3166 country code, e.g. US or USA. - SocialNetwork: - required: - - name - - profileUrl - properties: - name: - type: string - description: Possible values are "twitter", "linkedin". - profileName: - type: string - description: Human-readable profile name. - profileUrl: - type: string - format: url - description: Link to profile. - PersonDistance: - required: - - name - - obfuscatedId - - distance - properties: - name: - type: string - description: The display name. - obfuscatedId: - type: string - description: An opaque identifier that can be used to request metadata for a Person. - distance: - type: number - format: float - description: Distance to person, refer to PeopleDistance pipeline on interpretation of the value. - CommunicationChannel: - type: string - enum: - - COMMUNICATION_CHANNEL_EMAIL - - COMMUNICATION_CHANNEL_SLACK - ChannelInviteInfo: - description: Information regarding the invite status of a person for a particular channel. - properties: - channel: - description: Channel through which the invite was sent - $ref: "#/components/schemas/CommunicationChannel" - isAutoInvite: - description: Bit that tracks if this invite was automatically sent or user-sent - type: boolean - inviter: - description: The person that invited this person. - $ref: "#/components/schemas/Person" - inviteTime: - type: string - format: date-time - description: The time this person was invited in ISO format (ISO 8601). - reminderTime: - type: string - format: date-time - description: The time this person was reminded in ISO format (ISO 8601) if a reminder was sent. - InviteInfo: - description: Information regarding the invite status of a person. - properties: - signUpTime: - type: string - format: date-time - description: The time this person signed up in ISO format (ISO 8601). - invites: - type: array - items: - $ref: "#/components/schemas/ChannelInviteInfo" - description: Latest invites received by the user for each channel - inviter: - deprecated: true - description: The person that invited this person. - $ref: "#/components/schemas/Person" - inviteTime: - deprecated: true - type: string - format: date-time - description: The time this person was invited in ISO format (ISO 8601). - reminderTime: - deprecated: true - type: string - format: date-time - description: The time this person was reminded in ISO format (ISO 8601) if a reminder was sent. - ReadPermission: - description: Describes the read permission level that a user has for a specific feature - properties: - scopeType: - $ref: "#/components/schemas/ScopeType" - ReadPermissions: - description: Describes the read permission levels that a user has for permissioned features. Key must be PermissionedFeatureOrObject - additionalProperties: - type: array - description: List of read permissions (for different scopes but same feature) - items: - $ref: "#/components/schemas/ReadPermission" - WritePermissions: - description: Describes the write permissions levels that a user has for permissioned features. Key must be PermissionedFeatureOrObject - additionalProperties: - type: array - description: List of write permissions (for different scopes but same feature) - items: - $ref: "#/components/schemas/WritePermission" - GrantPermission: - description: Describes the grant permission level that a user has for a specific feature - properties: - scopeType: - $ref: "#/components/schemas/ScopeType" - GrantPermissions: - description: Describes the grant permission levels that a user has for permissioned features. Key must be PermissionedFeatureOrObject - additionalProperties: - type: array - description: List of grant permissions (for different scopes but same feature) - items: - $ref: "#/components/schemas/GrantPermission" - Permissions: - description: |- - Describes the permissions levels that a user has for permissioned features. When the client sends this, Permissions.read and Permissions.write are the additional permissions granted to a user on top of what they have via their roles. - When the server sends this, Permissions.read and Permissions.write are the complete (merged) set of permissions the user has, and Permissions.roles is just for display purposes. - properties: - canAdminSearch: - type: boolean - description: TODO--deprecate in favor of the read and write properties. True if the user has access to /adminsearch - canAdminClientApiGlobalTokens: - type: boolean - description: TODO--deprecate in favor of the read and write properties. True if the user can administrate client API tokens with global scope - canDlp: - type: boolean - description: TODO--deprecate in favor of the read and write properties. True if the user has access to data loss prevention (DLP) features - read: - $ref: "#/components/schemas/ReadPermissions" - write: - $ref: "#/components/schemas/WritePermissions" - grant: - $ref: "#/components/schemas/GrantPermissions" - role: - type: string - description: The roleId of the canonical role a user has. The displayName is equal to the roleId. - roles: - type: array - description: The roleIds of the roles a user has. - items: - type: string - TimeInterval: - required: - - start - - end - properties: - start: - type: string - description: The RFC3339 timestamp formatted start time of this event. - end: - type: string - description: The RFC3339 timestamp formatted end time of this event. - AnonymousEvent: - description: A generic, light-weight calendar event. - type: object - properties: - time: - $ref: "#/components/schemas/TimeInterval" - eventType: - description: The nature of the event, for example "out of office". - type: string - enum: - - DEFAULT - - OUT_OF_OFFICE - Badge: - type: object - description: Displays a user's accomplishment or milestone - properties: - key: - type: string - description: An auto generated unique identifier. - displayName: - type: string - description: The badge name displayed to users - iconConfig: - $ref: "#/components/schemas/IconConfig" - pinned: - type: boolean - description: The badge should be shown on the PersonAttribution - example: - key: deployment_name_new_hire - displayName: New hire - iconConfig: - color: "#343CED" - key: person_icon - iconType: GLYPH - name: user - PersonMetadata: - properties: - type: - type: string - x-enumDescriptions: - FULL_TIME: The person is a current full-time employee of the company. - CONTRACTOR: The person is a current contractor of the company. - NON_EMPLOYEE: The person object represents a non-human actor such as a service or admin account. - FORMER_EMPLOYEE: The person is a previous employee of the company. - enum: - - FULL_TIME - - CONTRACTOR - - NON_EMPLOYEE - - FORMER_EMPLOYEE - example: FULL_TIME - x-speakeasy-enum-descriptions: - FULL_TIME: The person is a current full-time employee of the company. - CONTRACTOR: The person is a current contractor of the company. - NON_EMPLOYEE: The person object represents a non-human actor such as a service or admin account. - FORMER_EMPLOYEE: The person is a previous employee of the company. - firstName: - type: string - description: The first name of the person - lastName: - type: string - description: The last name of the person - title: - type: string - description: Job title. - businessUnit: - type: string - description: Typically the highest level organizational unit; generally applies to bigger companies with multiple distinct businesses. - department: - type: string - description: An organizational unit where everyone has a similar task, e.g. `Engineering`. - teams: - description: Info about the employee's team(s). - type: array - items: - $ref: "#/components/schemas/PersonTeam" - departmentCount: - type: integer - description: The number of people in this person's department. - email: - type: string - description: The user's primary email address - aliasEmails: - type: array - description: Additional email addresses of this user beyond the primary, if any. - items: - type: string - location: - type: string - description: User facing string representing the person's location. - structuredLocation: - $ref: "#/components/schemas/StructuredLocation" - externalProfileLink: - type: string - description: Link to a customer's internal profile page. This is set to '#' when no link is desired. - manager: - $ref: "#/components/schemas/Person" - managementChain: - description: The chain of reporting in the company as far up as it goes. The last entry is this person's direct manager. - type: array - items: - $ref: "#/components/schemas/Person" - phone: - type: string - description: Phone number as a number string. - timezone: - type: string - description: The timezone of the person. E.g. "Pacific Daylight Time". - timezoneOffset: - type: integer - format: int64 - description: The offset of the person's timezone in seconds from UTC. - timezoneIANA: - type: string - description: The IANA timezone identifier, e.g. "America/Los_Angeles". - photoUrl: - type: string - format: url - description: The URL of the person's avatar. Public, glean-authenticated and Base64 encoded data URLs are all valid (but not third-party-authenticated URLs). - uneditedPhotoUrl: - type: string - format: url - description: The original photo URL of the person's avatar before any edits they made are applied - bannerUrl: - type: string - format: url - description: The URL of the person's banner photo. - reports: - type: array - items: - $ref: "#/components/schemas/Person" - startDate: - type: string - description: The date when the employee started. - format: date - endDate: - type: string - format: date - description: If a former employee, the last date of employment. - bio: - type: string - description: Short biography or mission statement of the employee. - pronoun: - type: string - description: She/her, He/his or other pronoun. - orgSizeCount: - type: integer - description: The total recursive size of the people reporting to this person, or 1 - directReportsCount: - type: integer - description: The total number of people who directly report to this person, or 0 - preferredName: - type: string - description: The preferred name of the person, or a nickname. - socialNetwork: - description: List of social network profiles. - type: array - items: - $ref: "#/components/schemas/SocialNetwork" - datasourceProfile: - type: array - description: List of profiles this user has in different datasources / tools that they use. - items: - $ref: "#/components/schemas/DatasourceProfile" - querySuggestions: - $ref: "#/components/schemas/QuerySuggestionList" - peopleDistance: - type: array - items: - $ref: "#/components/schemas/PersonDistance" - description: List of people and distances to those people from this person. Optionally with metadata. - inviteInfo: - $ref: "#/components/schemas/InviteInfo" - isSignedUp: - type: boolean - description: Whether the user has signed into Glean at least once. - lastExtensionUse: - type: string - format: date-time - description: The last time the user has used the Glean extension in ISO 8601 format. - permissions: - $ref: "#/components/schemas/Permissions" - customFields: - type: array - description: User customizable fields for additional people information. - items: - $ref: "#/components/schemas/CustomFieldData" - loggingId: - type: string - description: The logging id of the person used in scrubbed logs, tracking GA metrics. - startDatePercentile: - type: number - format: float - description: Percentage of the company that started strictly after this person. Between [0,100). - busyEvents: - type: array - items: - $ref: "#/components/schemas/AnonymousEvent" - description: Intervals of busy time for this person, along with the type of event they're busy with. - profileBoolSettings: - type: object - additionalProperties: - type: boolean - description: flag settings to indicate user profile settings for certain items - badges: - type: array - items: - $ref: "#/components/schemas/Badge" - description: The badges that a user has earned over their lifetime. - isOrgRoot: - type: boolean - description: Whether this person is a "root" node in their organization's hierarchy. - example: - department: Movies - email: george@example.com - location: Hollywood, CA - phone: 6505551234 - photoUrl: https://example.com/george.jpg - startDate: "2000-01-23" - title: Actor - DocumentVisibility: - type: string - description: The level of visibility of the document as understood by our system. - x-enumDescriptions: - PRIVATE: Only one person is able to see the document. - SPECIFIC_PEOPLE_AND_GROUPS: Only specific people and/or groups can see the document. - DOMAIN_LINK: Anyone in the domain with the link can see the document. - DOMAIN_VISIBLE: Anyone in the domain can search for the document. - PUBLIC_LINK: Anyone with the link can see the document. - PUBLIC_VISIBLE: Anyone on the internet can search for the document. - enum: - - PRIVATE - - SPECIFIC_PEOPLE_AND_GROUPS - - DOMAIN_LINK - - DOMAIN_VISIBLE - - PUBLIC_LINK - - PUBLIC_VISIBLE - x-speakeasy-enum-descriptions: - PRIVATE: Only one person is able to see the document. - SPECIFIC_PEOPLE_AND_GROUPS: Only specific people and/or groups can see the document. - DOMAIN_LINK: Anyone in the domain with the link can see the document. - DOMAIN_VISIBLE: Anyone in the domain can search for the document. - PUBLIC_LINK: Anyone with the link can see the document. - PUBLIC_VISIBLE: Anyone on the internet can search for the document. - Reaction: - properties: - type: - type: string - count: - type: integer - description: The count of the reaction type on the document. - reactors: - type: array - items: - $ref: "#/components/schemas/Person" - reactedByViewer: - type: boolean - description: Whether the user in context reacted with this type to the document. - Share: - description: Search endpoint will only fill out numDays ago since that's all we need to display shared badge; docmetadata endpoint will fill out all the fields so that we can display shared badge tooltip - required: - - numDaysAgo - properties: - numDaysAgo: - type: integer - description: The number of days that has passed since the share happened - sharer: - $ref: "#/components/schemas/Person" - sharingDocument: - $ref: "#/components/schemas/Document" - DocumentInteractions: - properties: - numComments: - type: integer - description: The count of comments (thread replies in the case of slack). - numReactions: - type: integer - description: The count of reactions on the document. - reactions: - type: array - description: To be deprecated in favor of reacts. A (potentially non-exhaustive) list of reactions for the document. - deprecated: true - items: - type: string - x-glean-deprecated: - id: cd754845-6eec-480f-b395-c93478aff563 - introduced: "2026-02-05" - message: Use reacts instead - removal: "2026-10-15" - x-speakeasy-deprecation-message: "Deprecated on 2026-02-05, removal scheduled for 2026-10-15: Use reacts instead" - reacts: - type: array - items: - $ref: "#/components/schemas/Reaction" - shares: - type: array - items: - $ref: "#/components/schemas/Share" - description: Describes instances of someone posting a link to this document in one of our indexed datasources. - visitorCount: - $ref: "#/components/schemas/CountInfo" - ViewerInfo: - properties: - role: - type: string - enum: - - ANSWER_MODERATOR - - OWNER - - VIEWER - description: DEPRECATED - use permissions instead. Viewer's role on the specific document. - deprecated: true - x-glean-deprecated: - - id: fbc55efe-3e6c-485c-8b60-bab574c3813b - introduced: "2026-02-05" - kind: property - message: Use permissions instead - removal: "2026-10-15" - x-speakeasy-deprecation-message: "Deprecated on 2026-02-05, removal scheduled for 2026-10-15: Use permissions instead" - lastViewedTime: - type: string - format: date-time - IndexStatus: - properties: - lastCrawledTime: - description: When the document was last crawled - type: string - format: date-time - lastIndexedTime: - description: When the document was last indexed - type: string - format: date-time - DocumentMetadata: - properties: - datasource: - type: string - datasourceInstance: - type: string - description: The datasource instance from which the document was extracted. - objectType: - type: string - description: The type of the result. Interpretation is specific to each datasource. (e.g. for Jira issues, this is the issue type such as Bug or Feature Request). - container: - type: string - description: The name of the container (higher level parent, not direct parent) of the result. Interpretation is specific to each datasource (e.g. Channels for Slack, Project for Jira). cf. parentId - containerId: - type: string - description: The Glean Document ID of the container. Uniquely identifies the container. - superContainerId: - type: string - description: The Glean Document ID of the super container. Super container represents a broader abstraction that contains many containers. For example, whereas container might refer to a folder, super container would refer to a drive. - parentId: - type: string - description: The id of the direct parent of the result. Interpretation is specific to each datasource (e.g. parent issue for Jira). cf. container - mimeType: - type: string - documentId: - type: string - description: The index-wide unique identifier. - loggingId: - type: string - description: A unique identifier used to represent the document in any logging or feedback requests in place of documentId. - documentIdHash: - type: string - description: Hash of the Glean Document ID. - createTime: - type: string - format: date-time - updateTime: - type: string - format: date-time - author: - $ref: "#/components/schemas/Person" - owner: - $ref: "#/components/schemas/Person" - mentionedPeople: - type: array - items: - $ref: "#/components/schemas/Person" - description: A list of people mentioned in the document. - visibility: - $ref: "#/components/schemas/DocumentVisibility" - components: - type: array - description: A list of components this result is associated with. Interpretation is specific to each datasource. (e.g. for Jira issues, these are [components](https://confluence.atlassian.com/jirasoftwarecloud/organizing-work-with-components-764478279.html).) - items: - type: string - status: - type: string - description: The status or disposition of the result. Interpretation is specific to each datasource. (e.g. for Jira issues, this is the issue status such as Done, In Progress or Will Not Fix). - statusCategory: - type: string - description: The status category of the result. Meant to be more general than status. Interpretation is specific to each datasource. - pins: - type: array - description: A list of stars associated with this result. "Pin" is an older name. - items: - $ref: "#/components/schemas/PinDocument" - priority: - type: string - description: The document priority. Interpretation is datasource specific. - assignedTo: - $ref: "#/components/schemas/Person" - updatedBy: - $ref: "#/components/schemas/Person" - labels: - type: array - description: A list of tags for the document. Interpretation is datasource specific. - items: - type: string - collections: - type: array - description: A list of collections that the document belongs to. - items: - $ref: "#/components/schemas/Collection" - datasourceId: - type: string - description: The user-visible datasource specific id (e.g. Salesforce case number for example, GitHub PR number). - interactions: - $ref: "#/components/schemas/DocumentInteractions" - verification: - $ref: "#/components/schemas/Verification" - viewerInfo: - $ref: "#/components/schemas/ViewerInfo" - permissions: - $ref: "#/components/schemas/ObjectPermissions" - visitCount: - $ref: "#/components/schemas/CountInfo" - shortcuts: - type: array - description: A list of shortcuts of which destination URL is for the document. - items: - $ref: "#/components/schemas/Shortcut" - path: - type: string - description: For file datasources like onedrive/github etc this has the path to the file - customData: - $ref: "#/components/schemas/CustomData" - documentCategory: - type: string - description: The document's document_category(.proto). - contactPerson: - $ref: "#/components/schemas/Person" - thumbnail: - $ref: "#/components/schemas/Thumbnail" - description: A thumbnail image representing this document. - indexStatus: - $ref: "#/components/schemas/IndexStatus" - ancestors: - type: array - description: A list of documents that are ancestors of this document in the hierarchy of the document's datasource, for example parent folders or containers. Ancestors can be of different types and some may not be indexed. Higher level ancestors appear earlier in the list. - items: - $ref: "#/components/schemas/Document" - example: - container: container - parentId: JIRA_EN-1337 - createTime: "2000-01-23T04:56:07.000Z" - datasource: datasource - author: - name: name - documentId: documentId - updateTime: "2000-01-23T04:56:07.000Z" - mimeType: mimeType - objectType: Feature Request - components: - - Backend - - Networking - status: - - Done - customData: - someCustomField: someCustomValue - DocumentSection: - type: object - properties: - title: - type: string - description: The title of the document section (e.g. the section header). - url: - type: string - description: The permalink of the document section. - StructuredTextItem: - properties: - link: - type: string - example: https://en.wikipedia.org/wiki/Diffuse_sky_radiation - document: - deprecated: true - description: Deprecated. To be gradually migrated to structuredResult. - $ref: "#/components/schemas/Document" - text: - type: string - example: Because its wavelengths are shorter, blue light is more strongly scattered than the longer-wavelength lights, red or green. Hence the result that when looking at the sky away from the direct incident sunlight, the human eye perceives the sky to be blue. - structuredResult: - $ref: "#/components/schemas/StructuredResult" - AnnouncementMutableProperties: - properties: - startTime: - type: string - format: date-time - description: The date and time at which the announcement becomes active. - endTime: - type: string - format: date-time - description: The date and time at which the announcement expires. - title: - type: string - description: The headline of the announcement. - body: - $ref: "#/components/schemas/StructuredText" - emoji: - type: string - description: An emoji used to indicate the nature of the announcement. - thumbnail: - $ref: "#/components/schemas/Thumbnail" - banner: - $ref: "#/components/schemas/Thumbnail" - description: Optional variant of thumbnail cropped for header background. - audienceFilters: - type: array - description: Filters which restrict who should see the announcement. Values are taken from the corresponding filters in people search. - items: - $ref: "#/components/schemas/FacetFilter" - sourceDocumentId: - type: string - description: The Glean Document ID of the source document this Announcement was created from (e.g. Slack thread). - hideAttribution: - type: boolean - description: Whether or not to hide an author attribution. - channel: - type: string - enum: - - MAIN - - SOCIAL_FEED - description: This determines whether this is a Social Feed post or a regular announcement. - postType: - type: string - enum: - - TEXT - - LINK - description: This determines whether this is an external-link post or a regular announcement post. TEXT - Regular announcement that can contain rich text. LINK - Announcement that is linked to an external site. - isPrioritized: - type: boolean - description: Used by the Social Feed to pin posts to the front of the feed. - viewUrl: - type: string - description: URL for viewing the announcement. It will be set to document URL for announcements from other datasources e.g. simpplr. Can only be written when channel="SOCIAL_FEED". - CreateAnnouncementRequest: - allOf: - - $ref: "#/components/schemas/AnnouncementMutableProperties" - - type: object - required: - - title - - startTime - - endTime - DraftProperties: - properties: - draftId: - type: integer - description: The opaque id of the associated draft. - example: - draftId: 342 - Announcement: - allOf: - - $ref: "#/components/schemas/AnnouncementMutableProperties" - - $ref: "#/components/schemas/DraftProperties" - - $ref: "#/components/schemas/PermissionedObject" - - type: object - properties: - id: - type: integer - description: The opaque id of the announcement. - author: - $ref: "#/components/schemas/Person" - createTimestamp: - type: integer - description: Server Unix timestamp of the creation time (in seconds since epoch UTC). - lastUpdateTimestamp: - type: integer - description: Server Unix timestamp of the last update time (in seconds since epoch UTC). - updatedBy: - $ref: "#/components/schemas/Person" - viewerInfo: - type: object - properties: - isDismissed: - type: boolean - description: Whether the viewer has dismissed the announcement. - isRead: - type: boolean - description: Whether the viewer has read the announcement. - sourceDocument: - $ref: "#/components/schemas/Document" - description: The source document if the announcement is created from one. - isPublished: - type: boolean - description: Whether or not the announcement is published. - DeleteAnnouncementRequest: - required: - - id - properties: - id: - type: integer - description: The opaque id of the announcement to be deleted. - UpdateAnnouncementRequest: - allOf: - - $ref: "#/components/schemas/AnnouncementMutableProperties" - - type: object - required: - - id - - title - - startTime - - endTime - properties: - id: - type: integer - description: The opaque id of the announcement. - AddedCollections: - properties: - addedCollections: - type: array - items: - type: integer - description: IDs of Collections to which a document is added. - AnswerCreationData: - allOf: - - $ref: "#/components/schemas/AnswerMutableProperties" - - $ref: "#/components/schemas/AddedCollections" - - type: object - properties: - combinedAnswerText: - $ref: "#/components/schemas/StructuredTextMutableProperties" - CreateAnswerRequest: - required: - - data - properties: - data: - $ref: "#/components/schemas/AnswerCreationData" - DeleteAnswerRequest: - allOf: - - $ref: "#/components/schemas/AnswerId" - - $ref: "#/components/schemas/AnswerDocId" - - type: object - required: - - id - RemovedCollections: - properties: - removedCollections: - type: array - items: - type: integer - description: IDs of Collections from which a document is removed. - EditAnswerRequest: - allOf: - - $ref: "#/components/schemas/AnswerId" - - $ref: "#/components/schemas/AnswerDocId" - - $ref: "#/components/schemas/AnswerMutableProperties" - - $ref: "#/components/schemas/AddedCollections" - - $ref: "#/components/schemas/RemovedCollections" - - type: object - required: - - id - properties: - combinedAnswerText: - $ref: "#/components/schemas/StructuredTextMutableProperties" - GetAnswerRequest: - allOf: - - $ref: "#/components/schemas/AnswerId" - - $ref: "#/components/schemas/AnswerDocId" - AnswerResult: - required: - - answer - properties: - answer: - $ref: "#/components/schemas/Answer" - trackingToken: - type: string - description: An opaque token that represents this particular Answer. To be used for `/feedback` reporting. - GetAnswerError: - properties: - errorType: - type: string - enum: - - NO_PERMISSION - - INVALID_ID - answerAuthor: - $ref: "#/components/schemas/Person" - GetAnswerResponse: - properties: - answerResult: - $ref: "#/components/schemas/AnswerResult" - error: - $ref: "#/components/schemas/GetAnswerError" - ListAnswersRequest: - properties: - boardId: - type: integer - description: The Answer Board Id to list answers on. - ListAnswersResponse: - required: - - answers - - answerResults - properties: - answerResults: - type: array - items: - $ref: "#/components/schemas/AnswerResult" - description: List of answers with tracking tokens. - AuthStatus: - type: string - description: The per-user authorization status for a datasource. - enum: - - DISABLED - - AWAITING_AUTH - - AUTHORIZED - - STALE_OAUTH - - SEG_MIGRATION - x-enum-varnames: - - AUTH_STATUS_DISABLED - - AUTH_STATUS_AWAITING_AUTH - - AUTH_STATUS_AUTHORIZED - - AUTH_STATUS_STALE_OAUTH - - AUTH_STATUS_SEG_MIGRATION - UnauthorizedDatasourceInstance: - description: | - A datasource instance that could not return results for this request because the user has not completed or has expired per-user OAuth. - properties: - datasourceInstance: - type: string - description: | - The instance identifier (e.g. "github", "github_enterprise_0", "slack_0"). Matches the instance names used in datasource configuration. - example: slack_0 - displayName: - type: string - description: Human-readable name of the datasource instance for display. - example: Slack - authStatus: - $ref: "#/components/schemas/AuthStatus" - authUrlRelativePath: - type: string - description: | - Relative path to initiate or resume OAuth for the current user and instance, including a one-time authentication token as a query parameter. Clients should prepend their configured Glean backend base URL. - CheckDatasourceAuthResponse: - required: - - unauthorizedDatasourceInstances - properties: - unauthorizedDatasourceInstances: - type: array - description: | - Datasource instances that require per-user OAuth authorization. Empty when all datasources are authorized. - items: - $ref: "#/components/schemas/UnauthorizedDatasourceInstance" - CreateAuthTokenResponse: - required: - - token - - expirationTime - properties: - token: - type: string - description: An authentication token that can be passed to any endpoint via Bearer Authentication - expirationTime: - description: Unix timestamp for when this token expires (in seconds since epoch UTC). - type: integer - format: int64 - ToolSets: - type: object - description: The types of tools that the agent is allowed to use. Only works with FAST and ADVANCED `agent` values - properties: - enableWebSearch: - type: boolean - description: "Whether the agent is allowed to use web search (default: true)." - enableCompanyTools: - type: boolean - description: "Whether the agent is allowed to search internal company resources (default: true)." - AgentConfig: - description: Describes the agent that executes the request. - properties: - agent: - type: string - description: Name of the agent. - x-enumDescriptions: - DEFAULT: Integrates with your company's knowledge. This will soon be deprecated in favor of the FAST and ADVANCED `agent` values - GPT: Communicates directly with the LLM. This will soon be deprecated in favor of the FAST and ADVANCED `agent` values - UNIVERSAL: Uses both company and web knowledge. This will soon be deprecated in favor of the FAST and ADVANCED `agent` values - FAST: Uses an agent powered by the agentic engine that responds faster but may have lower quality results. Requires the agentic engine to be enabled in the deployment. - ADVANCED: Uses an agent powered by the agentic engine that thinks for longer and potentially makes more LLM calls to return higher quality results. Requires the agentic engine to be enabled in the deployment. - AUTO: Uses an agent powered by the agentic engine that routes between reasoning efforts based on the question and context. - enum: - - DEFAULT - - GPT - - UNIVERSAL - - FAST - - ADVANCED - - AUTO - x-speakeasy-enum-descriptions: - DEFAULT: Integrates with your company's knowledge. This will soon be deprecated in favor of the FAST and ADVANCED `agent` values - GPT: Communicates directly with the LLM. This will soon be deprecated in favor of the FAST and ADVANCED `agent` values - UNIVERSAL: Uses both company and web knowledge. This will soon be deprecated in favor of the FAST and ADVANCED `agent` values - FAST: Uses an agent powered by the agentic engine that responds faster but may have lower quality results. Requires the agentic engine to be enabled in the deployment. - ADVANCED: Uses an agent powered by the agentic engine that thinks for longer and potentially makes more LLM calls to return higher quality results. Requires the agentic engine to be enabled in the deployment. - AUTO: Uses an agent powered by the agentic engine that routes between reasoning efforts based on the question and context. - toolSets: - $ref: "#/components/schemas/ToolSets" - mode: - type: string - description: Top level modes to run GleanChat in. - x-enumDescriptions: - DEFAULT: Used if no mode supplied. - QUICK: Deprecated. - enum: - - DEFAULT - - QUICK - x-speakeasy-enum-descriptions: - DEFAULT: Used if no mode supplied. - QUICK: Deprecated. - useImageGeneration: - type: boolean - description: Whether the agent should create an image. - ChatFileStatus: - type: string - description: Current status of the file. - x-include-enum-class-prefix: true - enum: - - PROCESSING - - PROCESSED - - FAILED - - DELETED - ChatFileFailureReason: - type: string - description: Reason for failed status. - x-include-enum-class-prefix: true - enum: - - PARSE_FAILED - - AV_SCAN_FAILED - - FILE_TOO_SMALL - - FILE_TOO_LARGE - - FILE_EXTENSION_UNSUPPORTED - - FILE_METADATA_VALIDATION_FAIL - - FILE_PROCESSING_TIMED_OUT - - OAUTH_NEEDED - - URL_FETCH_FAILED - - EMPTY_CONTENT - - AUTH_REQUIRED - ChatFileMetadata: - type: object - description: Metadata of a file uploaded by a user for Chat. - properties: - status: - $ref: "#/components/schemas/ChatFileStatus" - uploadTime: - type: integer - format: int64 - description: Upload time, in epoch seconds. - processedSize: - type: integer - format: int64 - description: Size of the processed file in bytes. - failureReason: - $ref: "#/components/schemas/ChatFileFailureReason" - mimeType: - description: MIME type of the file. - type: string - ChatFile: - type: object - description: Structure for file uploaded by a user for Chat. - properties: - id: - type: string - description: Unique identifier of the file. - example: FILE_1234 - url: - type: string - description: Url of the file. - example: www.google.com - name: - type: string - description: Name of the uploaded file. - example: sample.pdf - metadata: - $ref: "#/components/schemas/ChatFileMetadata" - ReferenceRange: - description: Each text range from the response can correspond to an array of snippets from the citation source. - properties: - textRange: - $ref: "#/components/schemas/TextRange" - snippets: - type: array - items: - $ref: "#/components/schemas/SearchResultSnippet" - ChatMessageCitation: - description: Information about the source for a ChatMessage. - properties: - trackingToken: - type: string - description: An opaque token that represents this particular result in this particular ChatMessage. To be used for /feedback reporting. - sourceDocument: - $ref: "#/components/schemas/Document" - sourceFile: - $ref: "#/components/schemas/ChatFile" - sourcePerson: - $ref: "#/components/schemas/Person" - referenceRanges: - description: Each reference range and its corresponding snippets - type: array - items: - $ref: "#/components/schemas/ReferenceRange" - displayName: - description: Human understandable name of the tool. Max 50 characters. - type: string - logoUrl: - type: string - description: URL used to fetch the logo. - objectName: - type: string - description: Name of the generated object. This will be used to indicate to the end user what the generated object contains. - example: - - HR ticket - - Email - - Chat message - PersonObject: - required: - - name - - obfuscatedId - properties: - name: - type: string - description: The display name. - obfuscatedId: - type: string - description: An opaque identifier that can be used to request metadata for a Person. - AuthConfig: - description: Config for tool's authentication method. - type: object - properties: - isOnPrem: - type: boolean - description: Whether or not this tool is hosted on-premise. - usesCentralAuth: - type: boolean - description: Whether or not this uses central auth. - type: - type: string - enum: - - NONE - - OAUTH_USER - - OAUTH_ADMIN - - API_KEY - - BASIC_AUTH - - DWD - description: | - The type of authentication being used. - Use 'OAUTH_*' when Glean calls an external API (e.g., Jira) on behalf of a user to obtain an OAuth token. - 'OAUTH_ADMIN' utilizes an admin token for external API calls on behalf all users. - 'OAUTH_USER' uses individual user tokens for external API calls. - 'DWD' refers to domain wide delegation. - grantType: - type: string - enum: - - AUTH_CODE - - CLIENT_CREDENTIALS - description: The type of grant type being used. - status: - type: string - description: Auth status of the tool. - enum: - - AWAITING_AUTH - - AUTHORIZED - - AUTH_DISABLED - client_url: - type: string - format: url - description: The URL where users will be directed to start the OAuth flow. - scopes: - type: array - items: - type: string - description: A list of strings denoting the different scopes or access levels required by the tool. - audiences: - type: array - items: - type: string - description: A list of strings denoting the different audience which can access the tool. - authorization_url: - type: string - format: url - description: The OAuth provider's endpoint, where access tokens are requested. - lastAuthorizedAt: - type: string - format: date-time - description: The time the tool was last authorized in ISO format (ISO 8601). - ToolMetadata: - description: The manifest for a tool that can be used to augment Glean Assistant. - required: - - type - - name - - displayName - - displayDescription - properties: - type: - description: The type of tool. - type: string - enum: - - RETRIEVAL - - ACTION - name: - description: Unique identifier for the tool. Name should be understandable by the LLM, and will be used to invoke a tool. - type: string - displayName: - $ref: "#/components/schemas/displayName" - toolId: - type: string - description: An opaque id which is unique identifier for the tool. - displayDescription: - description: Description of the tool meant for a human. - type: string - logoUrl: - $ref: "#/components/schemas/logoUrl" - objectName: - $ref: "#/components/schemas/objectName" - knowledgeType: - type: string - description: Indicates the kind of knowledge a tool would access or modify. - enum: - - NEUTRAL_KNOWLEDGE - - COMPANY_KNOWLEDGE - - WORLD_KNOWLEDGE - createdBy: - $ref: "#/components/schemas/PersonObject" - lastUpdatedBy: - $ref: "#/components/schemas/PersonObject" - createdAt: - type: string - format: date-time - description: The time the tool was created in ISO format (ISO 8601) - lastUpdatedAt: - type: string - format: date-time - description: The time the tool was last updated in ISO format (ISO 8601) - writeActionType: - type: string - description: Valid only for write actions. Represents the type of write action. REDIRECT - The client renders the URL which contains information for carrying out the action. EXECUTION - Send a request to an external server and execute the action. MCP - Send a tools/call request to an MCP server to execute the action. - enum: - - REDIRECT - - EXECUTION - - MCP - authType: - type: string - enum: - - NONE - - OAUTH_USER - - OAUTH_ADMIN - - API_KEY - - BASIC_AUTH - - DWD - description: | - The type of authentication being used. - Use 'OAUTH_*' when Glean calls an external API (e.g., Jira) on behalf of a user to obtain an OAuth token. - 'OAUTH_ADMIN' utilizes an admin token for external API calls on behalf all users. - 'OAUTH_USER' uses individual user tokens for external API calls. - 'DWD' refers to domain wide delegation. - auth: - deprecated: true - $ref: "#/components/schemas/AuthConfig" - permissions: - deprecated: true - $ref: "#/components/schemas/ObjectPermissions" - usageInstructions: - description: Usage instructions for the LLM to use this action. - type: string - isSetupFinished: - type: boolean - description: Whether this action has been fully configured and validated. - PossibleValue: - type: object - description: Possible value of a specific parameter - properties: - value: - type: string - description: Possible value - label: - type: string - description: User-friendly label associated with the value - WriteActionParameter: - type: object - properties: - type: - type: string - description: The type of the value (e.g., integer, string, boolean, etc.) - enum: - - UNKNOWN - - INTEGER - - STRING - - BOOLEAN - displayName: - type: string - description: Human readable display name for the key. - value: - type: string - description: The value of the field. - isRequired: - type: boolean - description: Is the parameter a required field. - description: - type: string - description: Description of the parameter. - possibleValues: - type: array - items: - $ref: "#/components/schemas/PossibleValue" - description: Possible values that the parameter can take. - ToolInfo: - type: object - properties: - metadata: - $ref: "#/components/schemas/ToolMetadata" - parameters: - type: object - description: Parameters supported by the tool. - additionalProperties: - $ref: "#/components/schemas/WriteActionParameter" - ChatMessageFragment: - 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, followupRoutingSuggestion or file. - allOf: - - $ref: "#/components/schemas/Result" - - type: object - properties: - text: - type: string - querySuggestion: - description: The search queries issued while responding. - $ref: "#/components/schemas/QuerySuggestion" - file: - description: Files referenced in the message fragment. This is used to construct rich-text messages with file references. - $ref: "#/components/schemas/ChatFile" - action: - description: Basic information about an action. This can be used to construct rich-text messages with action references. - $ref: "#/components/schemas/ToolInfo" - citation: - description: Inline citation. - $ref: "#/components/schemas/ChatMessageCitation" - ChatMessage: - description: A message that is rendered as one coherent unit with one given sender. - properties: - agentConfig: - $ref: "#/components/schemas/AgentConfig" - description: Describes the agent config that generated this message. Populated on responses and not required on requests. - author: - default: USER - enum: - - USER - - GLEAN_AI - citations: - type: array - items: - $ref: "#/components/schemas/ChatMessageCitation" - description: "Deprecated: Use inline citations via ChatMessageFragment.citation instead. For detailed reference information, use ChatMessageCitation.referenceRanges. This field is still populated for backward compatibility." - deprecated: true - x-glean-deprecated: - id: 6446f85e-c90e-4c00-9717-796f9db3dc61 - introduced: "2026-02-06" - message: Use inline citations via ChatMessageFragment.citation and ChatMessageCitation.referenceRanges instead. This field is still populated for backward compatibility. - removal: "2026-10-15" - x-speakeasy-deprecation-message: "Deprecated on 2026-02-06, removal scheduled for 2026-10-15: Use inline citations via ChatMessageFragment.citation and ChatMessageCitation.referenceRanges instead. This field is still populated for backward compatibility." - uploadedFileIds: - type: array - items: - type: string - description: IDs of files uploaded in the message that are referenced to generate the answer. - fragments: - type: array - description: A list of rich data used to represent the response or formulate a request. These are linearly stitched together to support richer data formats beyond simple text. - items: - $ref: "#/components/schemas/ChatMessageFragment" - ts: - type: string - description: Response timestamp of the message. - messageId: - type: string - description: A unique server-side generated ID used to identify a message, automatically populated for any USER authored messages. - messageTrackingToken: - type: string - description: Opaque tracking token generated server-side. - messageType: - type: string - default: CONTENT - description: Semantically groups content of a certain type. It can be used for purposes such as differential UI treatment. USER authored messages should be of type CONTENT and do not need `messageType` specified. - x-enumDescriptions: - UPDATE: An intermediate state message for progress updates. - CONTENT: A user query or response message. - CONTEXT: A message providing context in addition to the user query. - CONTROL: Control signal for message streaming. - CONTROL_START: Control signal indicating the start of a message stream. - CONTROL_FINISH: Control signal indicating the end of a message stream. - CONTROL_CANCEL: Control signal indicating the message stream was cancelled. - CONTROL_RETRY: Indicates the message streaming needed to be retried. - CONTROL_UNKNOWN: Fallback control signal for unrecognized control types. - DEBUG: A debug message. Strictly used internally. - DEBUG_EXTERNAL: A debug message to be used while debugging Action creation. - ERROR: A message that describes an error while processing the request. - HEADING: A heading message used to distinguish different sections of the holistic response. - WARNING: A warning message to be shown to the user. - SERVER_TOOL: A message used to for server-side tool auth/use, for request and response. - enum: - - UPDATE - - CONTENT - - CONTEXT - - CONTROL - - CONTROL_START - - CONTROL_FINISH - - CONTROL_CANCEL - - CONTROL_RETRY - - CONTROL_UNKNOWN - - DEBUG - - DEBUG_EXTERNAL - - ERROR - - HEADING - - WARNING - - SERVER_TOOL - x-speakeasy-enum-descriptions: - UPDATE: An intermediate state message for progress updates. - CONTENT: A user query or response message. - CONTEXT: A message providing context in addition to the user query. - CONTROL: Control signal for message streaming. - CONTROL_START: Control signal indicating the start of a message stream. - CONTROL_FINISH: Control signal indicating the end of a message stream. - CONTROL_CANCEL: Control signal indicating the message stream was cancelled. - CONTROL_RETRY: Indicates the message streaming needed to be retried. - CONTROL_UNKNOWN: Fallback control signal for unrecognized control types. - DEBUG: A debug message. Strictly used internally. - DEBUG_EXTERNAL: A debug message to be used while debugging Action creation. - ERROR: A message that describes an error while processing the request. - HEADING: A heading message used to distinguish different sections of the holistic response. - WARNING: A warning message to be shown to the user. - SERVER_TOOL: A message used to for server-side tool auth/use, for request and response. - hasMoreFragments: - deprecated: true - type: boolean - description: Signals there are additional response fragments incoming. - ChatRequestBase: - required: - - messages - description: The minimal set of fields that form a chat request. - properties: - messages: - type: array - description: A list of chat messages, from most recent to least recent. At least one message must specify a USER author. - items: - $ref: "#/components/schemas/ChatMessage" - sessionInfo: - description: Optional object for tracking the session used by the client and for debugging purposes. - $ref: "#/components/schemas/SessionInfo" - saveChat: - type: boolean - description: Save the current interaction as a Chat for the user to access and potentially continue later. - 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" - - type: object - properties: - documentSpecs: - type: array - items: - $ref: "#/components/schemas/DocumentSpec" - datasourceInstances: - type: array - items: - type: string - ChatRequest: - allOf: - - $ref: "#/components/schemas/ChatRequestBase" - - type: object - properties: - inclusions: - $ref: "#/components/schemas/ChatRestrictionFilters" - description: A list of filters which only allows chat to access certain content. - exclusions: - $ref: "#/components/schemas/ChatRestrictionFilters" - description: A list of filters which disallows chat from accessing certain content. If content is in both inclusions and exclusions, it'll be excluded. - timeoutMillis: - type: integer - description: Timeout in milliseconds for the request. A `408` error will be returned if handling the request takes longer. - example: 30000 - applicationId: - type: string - description: The ID of the application this request originates from, used to determine the configuration of underlying chat processes. This should correspond to the ID set during admin setup. If not specified, the default chat experience will be used. - agentId: - type: string - description: The ID of the Agent that should process this chat request. Only Agents with trigger set to 'User chat message' are invokable through this API. If not specified, the default chat experience will be used. - stream: - type: boolean - description: If set, response lines will be streamed one-by-one as they become available. Each will be a ChatResponse, formatted as JSON, and separated by a new line. If false, the entire response will be returned at once. Note that if this is set and the model being used does not support streaming, the model's response will not be streamed, but other messages from the endpoint still will be. - ChatResponse: - description: A single response from the /chat backend. - properties: - messages: - type: array - items: - $ref: "#/components/schemas/ChatMessage" - chatId: - type: string - description: The id of the associated Chat the messages belong to, if one exists. - followUpPrompts: - type: array - items: - type: string - description: Follow-up prompts for the user to potentially use - backendTimeMillis: - type: integer - format: int64 - description: Time in milliseconds the backend took to respond to the request. - example: 1100 - chatSessionTrackingToken: - type: string - description: A token that is used to track the session. - unauthorizedDatasourceInstances: - type: array - description: | - Datasource instances that could not be queried because the user has not completed or has expired per-user OAuth, aggregated across all tools invoked in this turn. - items: - $ref: "#/components/schemas/UnauthorizedDatasourceInstance" - DeleteChatsRequest: - required: - - ids - properties: - ids: - type: array - items: - type: string - description: A non-empty list of ids of the Chats to be deleted. - GetChatRequest: - required: - - id - properties: - id: - type: string - description: The id of the Chat to be retrieved. - Chat: - description: A historical representation of a series of chat messages a user had with Glean Assistant. - allOf: - - $ref: "#/components/schemas/ChatMetadata" - - $ref: "#/components/schemas/PermissionedObject" - properties: - messages: - type: array - items: - $ref: "#/components/schemas/ChatMessage" - description: The chat messages within a Chat. - roles: - type: array - items: - $ref: "#/components/schemas/UserRoleSpecification" - description: A list of roles for this Chat. - ChatResult: - properties: - chat: - $ref: "#/components/schemas/Chat" - trackingToken: - type: string - description: An opaque token that represents this particular Chat. To be used for `/feedback` reporting. - GetChatResponse: - properties: - chatResult: - $ref: "#/components/schemas/ChatResult" - ChatMetadataResult: - properties: - chat: - $ref: "#/components/schemas/ChatMetadata" - trackingToken: - type: string - description: An opaque token that represents this particular Chat. To be used for `/feedback` reporting. - ListChatsResponse: - properties: - chatResults: - type: array - items: - $ref: "#/components/schemas/ChatMetadataResult" - x-includeEmpty: true - GetChatApplicationRequest: - required: - - id - properties: - id: - type: string - description: The id of the Chat application to be retrieved. - ChatApplicationDetails: {} - GetChatApplicationResponse: - properties: - application: - $ref: "#/components/schemas/ChatApplicationDetails" - UploadChatFilesRequest: - required: - - files - properties: - files: - type: array - items: - type: string - format: binary - description: Raw files to be uploaded for chat in binary format. - UploadChatFilesResponse: - properties: - files: - type: array - items: - $ref: "#/components/schemas/ChatFile" - description: Files uploaded for chat. - GetChatFilesRequest: - required: - - fileIds - properties: - fileIds: - type: array - items: - type: string - description: IDs of files to fetch. - GetChatFilesResponse: - properties: - files: - description: A map of file IDs to ChatFile structs. - type: object - additionalProperties: - $ref: "#/components/schemas/ChatFile" - DeleteChatFilesRequest: - required: - - fileIds - properties: - fileIds: - type: array - items: - type: string - description: IDs of files to delete. - Agent: - title: Agent - type: object - required: - - agent_id - - name - - capabilities - properties: - agent_id: - type: string - title: Agent Id - description: The ID of the agent. - example: mho4lwzylcozgoc2 - name: - type: string - title: Agent Name - description: The name of the agent - example: HR Policy Agent - description: - type: string - title: Description - description: The description of the agent. - example: This agent answers questions about the current company HR policies. - metadata: - type: object - title: Metadata - description: The agent metadata. Currently not implemented. - capabilities: - type: object - title: Agent Capabilities - description: |- - Describes features that the agent supports. example: { - "ap.io.messages": true, - "ap.io.streaming": true - } - properties: - ap.io.messages: - type: boolean - title: Messages - description: Whether the agent supports messages as an input. If true, you'll pass `messages` as an input when running the agent. - ap.io.streaming: - type: boolean - title: Streaming - description: Whether the agent supports streaming output. If true, you you can stream agent ouput. All agents currently support streaming. - additionalProperties: true - ErrorResponse: - type: string - title: ErrorResponse - description: Error message returned from the server - ActionSummary: - type: object - description: Represents a minimal summary of an action. - required: - - tool_id - - display_name - properties: - tool_id: - type: string - description: The unique identifier of the action. - display_name: - type: string - description: The display name of the action. - AgentSchemas: - properties: - agent_id: - type: string - title: Agent Id - description: The ID of the agent. - example: mho4lwzylcozgoc2 - input_schema: - type: object - title: Input Schema - description: The schema for the agent input. In JSON Schema format. - output_schema: - type: object - title: Output Schema - description: The schema for the agent output. In JSON Schema format. - tools: - type: array - title: Tools - description: List of tools that the agent can invoke. Only included when include_tools query parameter is set to true. - items: - $ref: "#/components/schemas/ActionSummary" - type: object - required: - - agent_id - - input_schema - - output_schema - title: AgentSchemas - description: Defines the structure and properties of an agent. - SearchAgentsRequest: - type: object - properties: - name: - type: string - description: Filters on the name of the agent. The keyword search is case-insensitive. If search string is ommited or empty, acts as no filter. - example: HR Policy Agent - SearchAgentsResponse: - type: object - title: Response Search Agents - properties: - agents: - type: array - items: - $ref: "#/components/schemas/Agent" - ContentType: - type: string - enum: - - text - Message: - type: object - properties: - role: - type: string - title: Role - description: The role of the message. - example: USER - content: - title: Content - description: The content of the message. - type: array - items: + - UPLOADED + - NOT_UPLOADED + - STATUS_UNKNOWN + example: UPLOADED + DebugDocumentLifecycleRequest: type: object + description: Describes the request body of the /debug/{datasource}/document/events API call. properties: - text: - type: string - type: - $ref: "#/components/schemas/ContentType" - required: - - text - - type - title: MessageTextBlock - AgentRunCreate: - description: "Payload for creating a run. **Important**: If the agent uses an input form trigger, the `input` field is required and must include all fields defined in the form schema. Even fields marked as optional in the UI must be included in the request—use an empty string (`\"\"`) for optional fields without values. Omitting required form fields will result in a 500 error." - type: object - required: - - agent_id - properties: - agent_id: - type: string - title: Agent Id - description: The ID of the agent to run. - input: - type: object - title: Input - description: The input to the agent. Required when the agent uses an input form trigger. - additionalProperties: true - messages: - type: array - items: - $ref: "#/components/schemas/Message" - title: Messages - description: The messages to pass an input to the agent. - metadata: - type: object - title: Metadata - description: The metadata to pass to the agent. - additionalProperties: true - AgentExecutionStatus: - description: The status of the run. One of 'error', 'success'. - type: string - enum: - - error - - success - title: AgentExecutionStatus - AgentRun: - allOf: - - $ref: "#/components/schemas/AgentRunCreate" - - type: object - properties: - status: - $ref: "#/components/schemas/AgentExecutionStatus" - AgentRunWaitResponse: - type: object - properties: - run: - $ref: "#/components/schemas/AgentRun" - title: Run - description: The run information. - messages: - type: array - items: - $ref: "#/components/schemas/Message" - title: Messages - description: The messages returned by the run. - CollectionItemDescriptor: - allOf: - - $ref: "#/components/schemas/CollectionItemMutableProperties" - properties: - url: - type: string - description: The URL of the item being added. - documentId: - type: string - description: The Glean Document ID of the item being added if it's an indexed document. - newNextItemId: - type: string - description: The (optional) ItemId of the next CollectionItem in sequence. If omitted, will be added to the end of the Collection - itemType: - type: string - enum: - - DOCUMENT - - TEXT - - URL - AddCollectionItemsRequest: - required: - - collectionId - properties: - collectionId: - type: number - description: The ID of the Collection to add items to. - addedCollectionItemDescriptors: - type: array - items: - $ref: "#/components/schemas/CollectionItemDescriptor" - description: The CollectionItemDescriptors of the items being added. - AddCollectionItemsError: - properties: - errorType: - type: string - enum: - - EXISTING_ITEM - AddCollectionItemsResponse: - properties: - collection: - $ref: "#/components/schemas/Collection" - description: The modified Collection. Only CollectionItemMutableProperties are set for each item. - error: - $ref: "#/components/schemas/AddCollectionItemsError" - CreateCollectionRequest: - allOf: - - $ref: "#/components/schemas/CollectionMutableProperties" - - type: object - properties: - newNextItemId: - type: string - description: The (optional) ItemId of the next CollectionItem in sequence. If omitted, will be added to the end of the Collection. Only used if parentId is specified. - CollectionError: - required: - - errorCode - properties: - errorCode: - type: string - enum: - - NAME_EXISTS - - NOT_FOUND - - COLLECTION_PINNED - - CONCURRENT_HIERARCHY_EDIT - - HEIGHT_VIOLATION - - WIDTH_VIOLATION - - NO_PERMISSIONS - CreateCollectionResponse: - allOf: - - type: object - anyOf: - - required: - - collection - - required: + objectType: + type: string + description: Object type of the document to get lifecycle events for. + example: Article + docId: + type: string + description: Glean Document ID within the datasource to get lifecycle events for. + example: art123 + startDate: + type: string + description: The start date for events to be fetched. Cannot be more than 30 days (default 7 days) in the past. + example: "2025-05-01" + maxEvents: + type: integer + description: Max number of events to be fetched. Cannot be more than 100 (default 20). + example: 50 + required: + - objectType + - docId + DebugDocumentLifecycleResponse: + type: object + description: Describes the response body of the /debug/{datasource}/document/events API call + properties: + lifeCycleEvents: + type: array + description: List of lifecycle events corresponding to the document + items: + $ref: "#/components/schemas/LifeCycleEvent" + SuccessResponse: + type: object + description: Success response for custom metadata operations + properties: + success: + type: boolean + description: Indicates if the operation was successful + default: true + ErrorInfoResponse: + type: object + description: Error response for custom metadata operations + properties: + error: + type: string + description: Error message describing what went wrong + message: + type: string + description: Additional details about the error + required: - error - properties: - collection: - $ref: "#/components/schemas/Collection" - error: - $ref: "#/components/schemas/CollectionError" - DeleteCollectionRequest: - required: - - ids - properties: - ids: - type: array - items: - type: integer - description: The IDs of the Collections to delete. - allowedDatasource: - type: string - description: The datasource allowed in the Collection to be deleted. - DeleteCollectionItemRequest: - required: - - collectionId - - itemId - properties: - collectionId: - type: number - description: The ID of the Collection to remove an item in. - itemId: - type: string - description: The item ID of the CollectionItem to remove from this Collection. - documentId: - type: string - description: The (optional) Glean Document ID of the CollectionItem to remove from this Collection if this is an indexed document. - DeleteCollectionItemResponse: - properties: - collection: - $ref: "#/components/schemas/Collection" - description: The modified Collection. Only CollectionItemMutableProperties are set for each item. - EditCollectionRequest: - allOf: - - $ref: "#/components/schemas/CollectionMutableProperties" - - type: object - required: - - id - properties: - id: - type: integer - description: The ID of the Collection to modify. - EditCollectionResponse: - allOf: - - $ref: "#/components/schemas/Collection" - - $ref: "#/components/schemas/CollectionError" - - type: object - properties: - collection: - $ref: "#/components/schemas/Collection" - error: - $ref: "#/components/schemas/CollectionError" - EditCollectionItemRequest: - required: - - collectionId - - itemId - allOf: - - $ref: "#/components/schemas/CollectionItemMutableProperties" - - type: object - properties: - collectionId: - type: integer - description: The ID of the Collection to edit CollectionItems in. - itemId: - type: string - description: The ID of the CollectionItem to edit. - EditCollectionItemResponse: - properties: - collection: - $ref: "#/components/schemas/Collection" - description: The modified Collection. Only CollectionItemMutableProperties are set for each item. - GetCollectionRequest: - required: - - id - properties: - id: - type: integer - description: The ID of the Collection to be retrieved. - withItems: - type: boolean - description: Whether or not to include the Collection Items in this Collection. Only request if absolutely required, as this is expensive. - withHierarchy: - type: boolean - description: Whether or not to include the top level Collection in this Collection's hierarchy. - allowedDatasource: - type: string - description: The datasource allowed in the Collection returned. - GetCollectionResponse: - properties: - collection: - $ref: "#/components/schemas/Collection" - rootCollection: - $ref: "#/components/schemas/Collection" - trackingToken: - type: string - description: An opaque token that represents this particular Collection. To be used for `/feedback` reporting. - error: - $ref: "#/components/schemas/CollectionError" - ListCollectionsRequest: - properties: - includeAudience: - type: boolean - description: Whether to include the audience filters with the listed Collections. - includeRoles: - type: boolean - description: Whether to include the editor roles with the listed Collections. - allowedDatasource: - type: string - description: |- - The datasource type this Collection can hold. - ANSWERS - for Collections representing answer boards - ListCollectionsResponse: - required: - - collections - properties: - collections: - type: array - items: - $ref: "#/components/schemas/Collection" - description: List of all Collections, no Collection items are fetched. - GetDocPermissionsRequest: - type: object - properties: - documentId: - type: string - description: The Glean Document ID to retrieve permissions for. - GetDocPermissionsResponse: - type: object - properties: - allowedUserEmails: - type: array - items: - type: string - description: A list of emails of users who have access to the document. If the document is visible to all Glean users, a list with only a single value of 'VISIBLE_TO_ALL'. - GetDocumentsRequest: - required: - - documentSpecs - properties: - documentSpecs: - type: array - items: - $ref: "#/components/schemas/DocumentSpec" - description: The specification for the documents to be retrieved. - includeFields: - description: List of Document fields to return (that aren't returned by default) - type: array - items: - type: string - enum: - - LAST_VIEWED_AT - - VISITORS_COUNT - - RECENT_SHARES - - DOCUMENT_CONTENT - - CUSTOM_METADATA - DocumentOrError: - x-omit-error-on-success: true - oneOf: - - $ref: "#/components/schemas/Document" - - type: object - required: - - error - properties: - error: - type: string - description: The text for error, reason. - x-is-error-field: true - GetDocumentsResponse: - properties: - documents: - type: object - additionalProperties: - $ref: "#/components/schemas/DocumentOrError" - description: The document details or the error if document is not found. - GetDocumentsByFacetsRequest: - required: - - filterSets - properties: - datasourcesFilter: - type: array - items: - type: string - description: Filter results to one or more datasources (e.g. gmail, slack). All results are returned if missing. - filterSets: - type: array - items: - $ref: "#/components/schemas/FacetFilterSet" - description: A list of facet filter sets that will be OR'ed together. An AND is assumed between different filters in each set. - cursor: - type: string - description: Pagination cursor. A previously received opaque token representing the position in the overall results at which to start. - GetDocumentsByFacetsResponse: - properties: - documents: - type: array - items: - $ref: "#/components/schemas/Document" - description: The document details, ordered by score. - hasMoreResults: - type: boolean - description: Whether more results are available. Use cursor to retrieve them. - cursor: - type: string - description: Cursor that indicates the start of the next page of results. To be passed in "more" requests for this query. - InsightsOverviewRequest: - properties: - departments: - type: array - items: - type: string - description: Departments for which Insights are requested. - dayRange: - $ref: "#/components/schemas/Period" - description: Time period for which Insights are requested. - InsightsAssistantRequest: - properties: - departments: - type: array - items: - type: string - description: Departments for which Insights are requested. - dayRange: - $ref: "#/components/schemas/Period" - description: Time period for which Insights are requested. - AgentsInsightsV2Request: - properties: - agentIds: - type: array - items: - type: string - description: IDs of the Agents for which Insights should be returned. An empty array signifies all. - departments: - type: array - items: - type: string - description: Departments for which Insights are requested. - dayRange: - $ref: "#/components/schemas/Period" - description: Time period for which Insights are requested. - InsightsRequest: - properties: - overviewRequest: - $ref: "#/components/schemas/InsightsOverviewRequest" - x-visibility: Public - description: If specified, will return data for the Overview section of the Insights Dashboard. - assistantRequest: - $ref: "#/components/schemas/InsightsAssistantRequest" - x-visibility: Public - description: If specified, will return data for the Assistant section of the Insights Dashboard. - agentsRequest: - $ref: "#/components/schemas/AgentsInsightsV2Request" - x-visibility: Public - description: If specified, will return data for the Agents section of the Insights Dashboard. - disablePerUserInsights: - type: boolean - description: If true, suppresses the generation of per-user Insights in the response. Default is false. - UserActivityInsight: - required: - - user - - activity - properties: - user: - $ref: "#/components/schemas/Person" - activity: - type: string - enum: - - ALL - - SEARCH - description: Activity e.g. search, home page visit or all. - lastActivityTimestamp: - type: integer - description: Unix timestamp of the last activity (in seconds since epoch UTC). - activityCount: - $ref: "#/components/schemas/CountInfo" - activeDayCount: - $ref: "#/components/schemas/CountInfo" - GleanAssistInsightsResponse: - properties: - lastLogTimestamp: - type: integer - description: Unix timestamp of the last activity processed to make the response (in seconds since epoch UTC). - activityInsights: - type: array - items: - $ref: "#/components/schemas/UserActivityInsight" - description: Insights for all active users with respect to set of actions. - totalActiveUsers: - type: integer - description: Total number of active users in the requested period. - datasourceInstances: - type: array - items: - type: string - description: List of datasource instances for which glean assist is enabled. - departments: - type: array - items: - type: string - description: List of departments applicable for users tab. - CurrentActiveUsers: - properties: - monthlyActiveUsers: - type: integer - description: Number of current Monthly Active Users, in the specified departments. - weeklyActiveUsers: - type: integer - description: Number of current Weekly Active Users, in the specified departments. - InsightsSearchSummary: - allOf: - - $ref: "#/components/schemas/CurrentActiveUsers" - - type: object - properties: - numSearches: - type: integer - description: Total number of searches by users over the specified time period. - numSearchUsers: - type: integer - description: Total number of distinct users who searched over the specified time period. - InsightsChatSummary: - allOf: - - $ref: "#/components/schemas/CurrentActiveUsers" - - type: object - properties: - numChats: - type: integer - description: Total number of chats by users over the specified time period. - numChatUsers: - type: integer - description: Total number of distinct users who used Chat over the specified time period. - InsightsDepartmentsSummary: - allOf: - - $ref: "#/components/schemas/CurrentActiveUsers" - - type: object - properties: - departments: - type: array - items: - type: string - description: Department name(s). - employeeCount: - type: integer - description: Number of current employees in the specified departments, according to the Org Chart. - totalSignups: - type: integer - description: Number of current signed up employees in the specified departments, according to the Org Chart. - searchSummary: - $ref: "#/components/schemas/InsightsSearchSummary" - chatSummary: - $ref: "#/components/schemas/InsightsChatSummary" - extensionSummary: - $ref: "#/components/schemas/CurrentActiveUsers" - ugcSummary: - $ref: "#/components/schemas/CurrentActiveUsers" - LabeledCountInfo: - required: - - label - properties: - label: - type: string - description: Label for the included count information. - countInfo: - type: array - items: - $ref: "#/components/schemas/CountInfo" - description: List of data points for counts for a given date period. - PerUserInsight: - properties: - person: - $ref: "#/components/schemas/Person" - numSearches: - type: integer - description: Total number of searches by this user over the specified time period. - numChats: - type: integer - description: Total number of chats by this user over the specified time period. - numActiveSessions: - type: integer - description: Total number of active sessions by this user in a Glean client over the specified time period. - numGleanbotUsefulResponses: - type: integer - description: Total number of Gleanbot responses marked useful by this user over the specified time period. - numDaysActive: - type: integer - description: Total number of days this user was an Active User over the specified time period. - numSummarizations: - type: integer - description: Total number of summarized items by this user over the specified time period. - numAiAnswers: - type: integer - description: Total number of AI Answers interacted with by this user over the specified time period. - numAgentRuns: - type: integer - description: Total number of agent runs for this user over the specified time period. - InsightsOverviewResponse: - allOf: - - $ref: "#/components/schemas/InsightsDepartmentsSummary" - - type: object - properties: - lastUpdatedTs: - type: integer - description: Unix timestamp of the last update for the insights data in the response. - searchSessionSatisfaction: - type: number - format: float - description: Search session satisfaction rate, over the specified time period in the specified departments. - monthlyActiveUserTimeseries: - $ref: "#/components/schemas/LabeledCountInfo" - weeklyActiveUserTimeseries: - $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: - type: integer - description: Counts of search result clicks, by datasource, over the specified time period in the specified departments. - chatDatasourceCounts: - type: object - additionalProperties: - type: integer - description: Counts of cited documents in chat, by datasource, over the specified time period in the specified departments. - perUserInsights: - type: array - items: - $ref: "#/components/schemas/PerUserInsight" - description: 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. - PerUserAssistantInsight: - properties: - person: - $ref: "#/components/schemas/Person" - numChatMessages: - type: integer - description: Total number of chat messages sent by this user over the specified time period. - numSummarizations: - type: integer - description: Total number of summarized items by this user over the specified time period. - numAiAnswers: - type: integer - description: Total number of AI Answers interacted with by this user over the specified time period. - numGleanbotInteractions: - type: integer - description: Total number of Gleanbot responses marked useful by this user over the specified time period. - numDaysActive: - type: integer - description: Total number of days this user was active on the Assistant over the specified time period. - AssistantInsightsResponse: - allOf: - - $ref: "#/components/schemas/CurrentActiveUsers" - - type: object - properties: - lastUpdatedTs: - type: integer - description: Unix timestamp of the last update for the insights data in the response. - monthlyActiveUserTimeseries: - $ref: "#/components/schemas/LabeledCountInfo" - weeklyActiveUserTimeseries: - $ref: "#/components/schemas/LabeledCountInfo" - dailyActiveUserTimeseries: - $ref: "#/components/schemas/LabeledCountInfo" - totalSignups: - type: integer - description: Number of current signed up employees in the specified departments, according to the Org Chart. - chatMessagesTimeseries: - $ref: "#/components/schemas/LabeledCountInfo" - summarizationsTimeseries: - $ref: "#/components/schemas/LabeledCountInfo" - aiAnswersTimeseries: - $ref: "#/components/schemas/LabeledCountInfo" - gleanbotInteractionsTimeseries: - $ref: "#/components/schemas/LabeledCountInfo" - perUserInsights: - type: array - items: - $ref: "#/components/schemas/PerUserAssistantInsight" - upvotesTimeseries: - $ref: "#/components/schemas/LabeledCountInfo" - downvotesTimeseries: - $ref: "#/components/schemas/LabeledCountInfo" - PerAgentInsight: - properties: - agentId: - type: string - description: Agent ID - agentName: - type: string - description: Agent name - icon: - $ref: "#/components/schemas/IconConfig" - description: Agent icon configuration - isDeleted: - type: boolean - description: Indicates whether the agent has been deleted - userCount: - type: integer - description: Total number of users for this agent over the specified time period. - runCount: - type: integer - description: Total number of runs for this agent over the specified time period. - upvoteCount: - type: integer - description: Total number of upvotes for this agent over the specified time period. - downvoteCount: - type: integer - description: Total number of downvotes for this agent over the specified time period. - AgentsUsageByDepartmentInsight: - properties: - department: - type: string - description: Name of the department - agentAdoptionRate: - type: number - format: float - description: Percentage of employees in the department who have used agents at least once over the specified time period. - userCount: - type: integer - description: Total number of users in this department who have used any agent over the specified time period. - runCount: - type: integer - description: Total number of runs in this department over the specified time period. - agentId: - type: string - description: ID of the agent to be shown in the agent column in this department over the specified time period. - agentName: - type: string - description: Name of the agent to be shown in the agent column in this department over the specified time period. - icon: - $ref: "#/components/schemas/IconConfig" - description: Agent icon configuration - isDeleted: - type: boolean - description: Indicates whether the agent has been deleted - AgentUsersInsight: - properties: - person: - $ref: "#/components/schemas/Person" - departmentName: - type: string - description: Department name - agentsUsedCount: - type: integer - description: Total number of agents used by this user over the specified time period. - averageRunsPerDayCount: - type: number - format: float - description: Average number of runs per day for this user over the specified time period. - agentsCreatedCount: - type: integer - description: Total number of agents created by this user over the specified time period. - runCount: - type: integer - description: Total number of agent runs for this user over the specified time period. - AgentsInsightsV2Response: - allOf: - - $ref: "#/components/schemas/CurrentActiveUsers" - - type: object - properties: - monthlyActiveUserTimeseries: - $ref: "#/components/schemas/LabeledCountInfo" - weeklyActiveUserTimeseries: - $ref: "#/components/schemas/LabeledCountInfo" - dailyActiveUserTimeseries: - $ref: "#/components/schemas/LabeledCountInfo" - sharedAgentsCount: - type: integer - description: Total number of shared agents. - topAgentsInsights: - type: array - items: - $ref: "#/components/schemas/PerAgentInsight" - agentsUsageByDepartmentInsights: - type: array - items: - $ref: "#/components/schemas/AgentsUsageByDepartmentInsight" - agentUsersInsights: - type: array - items: - $ref: "#/components/schemas/AgentUsersInsight" - dailyAgentRunsTimeseries: - $ref: "#/components/schemas/LabeledCountInfo" - upvotesTimeseries: - $ref: "#/components/schemas/LabeledCountInfo" - downvotesTimeseries: - $ref: "#/components/schemas/LabeledCountInfo" - InsightsResponse: - properties: - gleanAssist: - deprecated: true - $ref: "#/components/schemas/GleanAssistInsightsResponse" - x-glean-deprecated: - id: 15850758-4d95-4d98-8d57-39c50663a796 - introduced: "2026-02-05" - message: Field is deprecated - removal: "2026-10-15" - x-speakeasy-deprecation-message: "Deprecated on 2026-02-05, removal scheduled for 2026-10-15: Field is deprecated" - overviewResponse: - $ref: "#/components/schemas/InsightsOverviewResponse" - assistantResponse: - $ref: "#/components/schemas/AssistantInsightsResponse" - agentsResponse: - $ref: "#/components/schemas/AgentsInsightsV2Response" - MessagesRequest: - required: - - id - - idType - - datasource - properties: - idType: - type: string - enum: - - CHANNEL_NAME - - THREAD_ID - - CONVERSATION_ID - description: Type of the id in the incoming request. - id: - type: string - description: ID corresponding to the requested idType. Note that channel and threads are represented by the underlying datasource's ID and conversations are represented by their document's ID. - workspaceId: - type: string - description: Id for the for the workspace in case of multiple workspaces. - direction: - type: string - enum: - - OLDER - - NEWER - description: The direction of the results asked with respect to the reference timestamp. Missing field defaults to OLDER. Only applicable when using a message_id. - timestampMillis: - type: integer - format: int64 - description: Timestamp in millis of the reference message. Only applicable when using a message_id. - includeRootMessage: - type: boolean - description: Whether to include root message in response. - datasource: - type: string - enum: - - SLACK - - SLACKENTGRID - - MICROSOFTTEAMS - - GCHAT - - FACEBOOKWORKPLACE - description: The type of the data source. - datasourceInstanceDisplayName: - type: string - description: The datasource instance display name from which the document was extracted. This is used for appinstance facet filter for datasources that support multiple instances. - InvalidOperatorValueError: - properties: - key: - description: The operator key that has an invalid value. - type: string - value: - description: The invalid operator value. - type: string - ErrorMessage: - properties: - source: - description: The datasource this message relates to. - type: string - errorMessage: - type: string - ErrorInfo: - properties: - badGmailToken: - type: boolean - description: Indicates the gmail results could not be fetched due to bad token. - badOutlookToken: - type: boolean - description: Indicates the outlook results could not be fetched due to bad token. - invalidOperators: - type: array - description: Indicates results could not be fetched due to invalid operators in the query. - items: - $ref: "#/components/schemas/InvalidOperatorValueError" - errorMessages: - type: array - items: - $ref: "#/components/schemas/ErrorMessage" - federatedSearchRateLimitError: - type: boolean - description: Indicates the federated search results could not be fetched due to rate limiting. - unauthorizedDatasourceInstances: - type: array - description: | - Datasource instances that could not be queried because the user has not completed or has expired per-user OAuth. - items: - $ref: "#/components/schemas/UnauthorizedDatasourceInstance" - x-speakeasy-name-override: GleanDataError - ResultsResponse: - properties: - trackingToken: - type: string - description: A token that should be passed for additional requests related to this request (such as more results requests). - sessionInfo: - $ref: "#/components/schemas/SessionInfo" - results: - type: array - items: - $ref: "#/components/schemas/SearchResult" - structuredResults: - type: array - items: - $ref: "#/components/schemas/StructuredResult" - generatedQnaResult: - $ref: "#/components/schemas/GeneratedQna" - errorInfo: - $ref: "#/components/schemas/ErrorInfo" - requestID: - type: string - description: A platform-generated request ID to correlate backend logs. - backendTimeMillis: - type: integer - format: int64 - description: Time in milliseconds the backend took to respond to the request. - example: 1100 - BackendExperimentsContext: - properties: - experimentIds: - type: array - items: - type: integer - format: int64 - description: List of experiment ids for the corresponding request. - SearchWarning: - required: - - warningType - properties: - warningType: - type: string - enum: - - LONG_QUERY - - QUOTED_PUNCTUATION - - PUNCTUATION_ONLY - - COPYPASTED_QUOTES - - INVALID_OPERATOR - - MAYBE_INVALID_FACET_QUERY - - TOO_MANY_DATASOURCE_GROUPS - description: The type of the warning. - lastUsedTerm: - type: string - description: The last term we considered in the user's long query. - quotesIgnoredQuery: - type: string - description: The query after ignoring/removing quotes. - ignoredTerms: - type: array - items: - type: string - description: A list of query terms that were ignored when generating search results, if any. For example, terms containing invalid filters such as "updated:invalid_date" will be ignored. - SearchResponseMetadata: - properties: - rewrittenQuery: - type: string - description: A cleaned up or updated version of the query to be displayed in the query box. Useful for mapping visual facets to search operators. - searchedQuery: - type: string - description: The actual query used to perform search and return results. - searchedQueryWithoutNegation: - type: string - description: The query used to perform search and return results, with negated terms and facets removed. - x-includeEmpty: true - searchedQueryRanges: - type: array - items: - $ref: "#/components/schemas/TextRange" - description: The bolded ranges within the searched query. - originalQuery: - type: string - description: The query text sent by the client in the request. - querySuggestion: - $ref: "#/components/schemas/QuerySuggestion" - description: An alternative query to the one provided that may give better results, e.g. a spelling suggestion. - additionalQuerySuggestions: - $ref: "#/components/schemas/QuerySuggestionList" - description: Other alternative queries that may provide better or more specific results than the original query. - negatedTerms: - type: array - items: - type: string - description: A list of terms that were negated when processing the query. - modifiedQueryWasUsed: - type: boolean - description: A different query was performed than the one requested. - originalQueryHadNoResults: - type: boolean - description: No results were found for the original query. The usage of this bit in conjunction with modifiedQueryWasUsed will dictate whether the full page replacement is 0-result or few-result based. - searchWarning: - $ref: "#/components/schemas/SearchWarning" - triggeredExpertDetection: - type: boolean - description: Whether the query triggered expert detection results in the People tab. - isNoQuotesSuggestion: - type: boolean - description: Whether the query was modified to remove quotes - FacetValue: - properties: - stringValue: - type: string - example: engineering - description: The value that should be set in the FacetFilter when applying this filter to a search request. - integerValue: - type: integer - example: 5 - displayLabel: - type: string - example: engineering - description: An optional user-friendly label to display in place of the facet value. - iconConfig: - $ref: "#/components/schemas/IconConfig" - FacetBucket: - properties: - count: - type: integer - description: Estimated number of results in this facet. - example: 1 - datasource: - type: string - example: jira - description: The datasource the value belongs to. This will be used by the all tab to show types across all datasources. - percentage: - type: integer - description: Estimated percentage of results in this facet. - example: 5 - value: - $ref: "#/components/schemas/FacetValue" - FacetResult: - properties: - sourceName: - type: string - description: The source of this facet (e.g. container_name, type, last_updated_at). - example: container_name - operatorName: - type: string - description: How to display this facet. Currently supportes 'SelectSingle' and 'SelectMultiple'. - example: SelectMultiple - buckets: - type: array - description: A list of unique buckets that exist within this result set. - items: - $ref: "#/components/schemas/FacetBucket" - hasMoreBuckets: - type: boolean - description: Returns true if more buckets exist than those returned. Additional buckets can be retrieve by requesting again with a higher facetBucketSize. - example: false - groupName: - type: string - description: For most facets this will be the empty string, meaning the facet is high-level and applies to all documents for the datasource. When non-empty, this is used to group facets together (i.e. group facets for each doctype for a certain datasource) - example: Service Cloud - ResultsDescription: - properties: - text: - type: string - description: Textual description of the results. Can be shown at the top of SERP, e.g. 'People who write about this topic' for experts in people tab. - iconConfig: - $ref: "#/components/schemas/IconConfig" - description: The config for the icon that's displayed with this description - SearchResponse: - allOf: - - $ref: "#/components/schemas/ResultsResponse" - - $ref: "#/components/schemas/BackendExperimentsContext" - - type: object - properties: - metadata: - $ref: "#/components/schemas/SearchResponseMetadata" - facetResults: - type: array - items: - $ref: "#/components/schemas/FacetResult" - resultTabs: - type: array - items: - $ref: "#/components/schemas/ResultTab" - description: All result tabs available for the current query. Populated if QUERY_METADATA is specified in the request. - resultTabIds: - type: array - items: - type: string - description: The unique IDs of the result tabs to which this response belongs. - resultsDescription: - $ref: "#/components/schemas/ResultsDescription" - rewrittenFacetFilters: - type: array - items: - $ref: "#/components/schemas/FacetFilter" - description: The actual applied facet filters based on the operators and facetFilters in the query. Useful for mapping typed operators to visual facets. - cursor: - type: string - description: Cursor that indicates the start of the next page of results. To be passed in "more" requests for this query. - hasMoreResults: - type: boolean - description: Whether more results are available. Use cursor to retrieve them. - example: - trackingToken: trackingToken - suggestedSpellCorrectedQuery: suggestedSpellCorrectedQuery - hasMoreResults: true - errorInfo: - errorMessages: - - source: gmail - errorMessage: invalid token - - source: slack - errorMessage: expired token - requestID: 5e345ae500ff0befa2b9d1a3ba0001737e7363696f312d323535323137000171756572792d656e64706f696e743a323032303031333074313830343032000100 - results: - - snippets: - - snippet: snippet - mimeType: mimeType - metadata: - container: container - createTime: "2000-01-23T04:56:07.000Z" - datasource: datasource - author: - name: name - documentId: documentId - updateTime: "2000-01-23T04:56:07.000Z" - mimeType: mimeType - objectType: objectType - title: title - url: https://www.example.com/ - - snippets: - - snippet: snippet - mimeType: mimeType - metadata: - container: container - createTime: "2000-01-23T04:56:07.000Z" - datasource: datasource - author: - name: name - documentId: documentId - updateTime: "2000-01-23T04:56:07.000Z" - mimeType: mimeType - objectType: objectType - title: title - url: https://www.example.com/ - facetResults: - - buckets: - - percentage: 5 - count: 1 - value: - stringValue: stringValue - integerValue: 5 - - percentage: 5 - count: 1 - value: - stringValue: stringValue - integerValue: 5 - sourceName: sourceName - operatorName: operatorName - objectType: objectType - - buckets: - - percentage: 5 - count: 1 - value: - stringValue: stringValue - integerValue: 5 - - percentage: 5 - count: 1 - value: - stringValue: stringValue - integerValue: 5 - sourceName: sourceName - operatorName: operatorName - objectType: objectType - rewrittenQuery: rewrittenQuery - rewrittenFacetFilters: - - fieldName: fieldName - values: - - fieldValues - - fieldValues - - fieldName: fieldName - values: - - fieldValues - - fieldValues - MessagesResponse: - required: - - hasMore - properties: - hasMore: - type: boolean - description: Whether there are more results for client to continue requesting. - searchResponse: - $ref: "#/components/schemas/SearchResponse" - rootMessage: - $ref: "#/components/schemas/SearchResult" - EditPinRequest: - allOf: - - $ref: "#/components/schemas/PinDocumentMutableProperties" - - type: object - properties: - id: - type: string - description: The opaque id of the pin to be edited. - GetPinRequest: - properties: - id: - type: string - description: The opaque id of the pin to be fetched. - GetPinResponse: - properties: - pin: - $ref: "#/components/schemas/PinDocument" - ListPinsResponse: - required: - - pins - properties: - pins: - type: array - items: - $ref: "#/components/schemas/PinDocument" - description: List of pinned documents. - PinRequest: - allOf: - - $ref: "#/components/schemas/PinDocumentMutableProperties" - - type: object - properties: - documentId: - type: string - description: The document to be pinned. - Unpin: - properties: - id: - type: string - description: The opaque id of the pin to be unpinned. - ResultsRequest: - properties: - timestamp: - type: string - description: The ISO 8601 timestamp associated with the client request. - format: date-time - trackingToken: - type: string - description: A previously received trackingToken for a search associated with the same query. Useful for more requests and requests for other tabs. - sessionInfo: - $ref: "#/components/schemas/SessionInfo" - sourceDocument: - $ref: "#/components/schemas/Document" - description: The document from which the ResultsRequest is issued, if any. - pageSize: - type: integer - example: 100 - description: Hint to the server about how many results to send back. Server may return less or more. Structured results and clustered results don't count towards pageSize. - maxSnippetSize: - type: integer - description: Hint to the server about how many characters long a snippet may be. Server may return less or more. - example: 400 - SearchRequest: - required: - - query - allOf: - - $ref: "#/components/schemas/ResultsRequest" - - type: object - properties: - query: - type: string - description: The search terms. - example: vacation policy - cursor: - type: string - description: Pagination cursor. A previously received opaque token representing the position in the overall results at which to start. - resultTabIds: - type: array - items: - type: string - description: The unique IDs of the result tabs for which to fetch results. This will have precedence over datasource filters if both are specified and in conflict. - inputDetails: - $ref: "#/components/schemas/SearchRequestInputDetails" - requestOptions: - $ref: "#/components/schemas/SearchRequestOptions" - timeoutMillis: - type: integer - description: Timeout in milliseconds for the request. A `408` error will be returned if handling the request takes longer. - example: 5000 - disableSpellcheck: - type: boolean - description: Whether or not to disable spellcheck. - example: - trackingToken: trackingToken - query: vacation policy - pageSize: 10 - requestOptions: - facetFilters: - - fieldName: type - values: - - value: article - relationType: EQUALS - - value: document - relationType: EQUALS - - fieldName: department - values: - - value: engineering - relationType: EQUALS - AutocompleteRequest: - type: object - properties: - trackingToken: - type: string - sessionInfo: - $ref: "#/components/schemas/SessionInfo" - query: - type: string - description: Partially typed query. - example: San Fra - datasourcesFilter: - type: array - items: - type: string - description: Filter results to only those relevant to one or more datasources (e.g. jira, gdrive). Results are unfiltered if missing. - datasource: - type: string - description: Filter to only return results relevant to the given datasource. - resultTypes: - type: array - description: Filter to only return results of the given type(s). All types may be returned if omitted. - items: - type: string - enum: - - ADDITIONAL_DOCUMENT - - APP - - BROWSER_HISTORY - - DATASOURCE - - DOCUMENT - - ENTITY - - GOLINK - - HISTORY - - CHAT_HISTORY - - NEW_CHAT - - OPERATOR - - OPERATOR_VALUE - - QUICKLINK - - SUGGESTION - resultSize: - type: integer - description: | - Maximum number of results to be returned. If no value is provided, the backend will cap at 200. - example: 10 - authTokens: - type: array - description: Auth tokens which may be used for federated results. - items: - $ref: "#/components/schemas/AuthToken" - example: - trackingToken: trackingToken - query: what is a que - datasource: GDRIVE - resultSize: 10 - OperatorScope: - properties: - datasource: - type: string - docType: - type: string - OperatorMetadata: - required: - - name - properties: - name: - type: string - isCustom: - type: boolean - description: Whether this operator is supported by default or something that was created within a workplace app (e.g. custom jira field). - operatorType: - type: string - enum: - - TEXT - - DOUBLE - - DATE - - USER - helpText: - type: string - scopes: - type: array - items: - $ref: "#/components/schemas/OperatorScope" - value: - type: string - description: Raw/canonical value of the operator. Only applies when result is an operator value. - displayValue: - type: string - description: Human readable value of the operator that can be shown to the user. Only applies when result is an operator value. - example: - name: Last Updated - operatorType: DATE - scopes: - - datasource: GDRIVE - docType: Document - - datasource: ZENDESK - Quicklink: - description: An action for a specific datasource that will show up in autocomplete and app card, e.g. "Create new issue" for jira. - properties: - name: - type: string - description: Full action name. Used in autocomplete. - shortName: - type: string - description: Shortened name. Used in app cards. - url: - type: string - description: The URL of the action. - iconConfig: - $ref: "#/components/schemas/IconConfig" - description: The config for the icon for this quicklink - id: - type: string - description: Unique identifier of this quicklink - scopes: - type: array - description: The scopes for which this quicklink is applicable - items: - type: string - enum: - - APP_CARD - - AUTOCOMPLETE_EXACT_MATCH - - AUTOCOMPLETE_FUZZY_MATCH - - AUTOCOMPLETE_ZERO_QUERY - - NEW_TAB_PAGE - AutocompleteResult: - required: - - result - - result_type - properties: - result: - type: string - keywords: - type: array - items: - type: string - description: A list of all possible keywords for given result. - resultType: - type: string - enum: - - ADDITIONAL_DOCUMENT - - APP - - BROWSER_HISTORY - - DATASOURCE - - DOCUMENT - - ENTITY - - GOLINK - - HISTORY - - CHAT_HISTORY - - NEW_CHAT - - OPERATOR - - OPERATOR_VALUE - - QUICKLINK - - SUGGESTION - score: - type: number - description: Higher indicates a more confident match. - operatorMetadata: - $ref: "#/components/schemas/OperatorMetadata" - quicklink: - $ref: "#/components/schemas/Quicklink" - document: - $ref: "#/components/schemas/Document" - url: - type: string - structuredResult: - $ref: "#/components/schemas/StructuredResult" - trackingToken: - type: string - description: A token to be passed in /feedback events associated with this autocomplete result. - ranges: - type: array - items: - $ref: "#/components/schemas/TextRange" - description: Subsections of the result string to which some special formatting should be applied (eg. bold) - example: - result: sample result - resultType: DOCUMENT - score: 4.56 - url: https://www.example.com/ - trackingToken: abcd - metadata: - - datasource: confluence - - objectType: page - AutocompleteResultGroup: - description: A subsection of the results list from which distinct sections should be created. - properties: - startIndex: - type: integer - description: The inclusive start index of the range. - endIndex: - type: integer - description: The exclusive end index of the range. - title: - type: string - description: The title of the result group to be displayed. Empty means no title. - AutocompleteResponse: - allOf: - - $ref: "#/components/schemas/BackendExperimentsContext" - - type: object - properties: - trackingToken: - type: string - description: An opaque token that represents this particular set of autocomplete results. To be used for /feedback reporting. - sessionInfo: - $ref: "#/components/schemas/SessionInfo" - results: - type: array - items: - $ref: "#/components/schemas/AutocompleteResult" - groups: - type: array - items: - $ref: "#/components/schemas/AutocompleteResultGroup" - description: Subsections of the results list from which distinct sections should be created. - errorInfo: - $ref: "#/components/schemas/ErrorInfo" - backendTimeMillis: - type: integer - format: int64 - description: Time in milliseconds the backend took to respond to the request. - example: 1100 - example: - trackingToken: trackingToken - ChatZeroStateSuggestionOptions: - properties: - applicationId: - type: string - description: The Chat Application ID this feed request should be scoped to. Empty means there is no Chat Application ID.. - FeedRequestOptions: - required: - - resultSize - properties: - resultSize: - type: integer - description: Number of results asked in response. If a result is a collection, counts as one. - timezoneOffset: - type: integer - description: The offset of the client's timezone in minutes from UTC. e.g. PDT is -420 because it's 7 hours behind UTC. - categoryToResultSize: - type: object - additionalProperties: + PropertyDefinition: + properties: + name: + type: string + description: The name of the property in the `DocumentMetadata` (e.g. 'createTime', 'updateTime', 'author', 'container'). In the future, this will support custom properties too. + displayLabel: + type: string + description: The user friendly label for the property. + displayLabelPlural: + type: string + description: The user friendly label for the property that will be used if a plural context. + propertyType: + type: string + enum: + - TEXT + - DATE + - INT + - USERID + - PICKLIST + - TEXTLIST + - MULTIPICKLIST + description: The type of custom property - this governs the search and faceting behavior. Note that MULTIPICKLIST is not yet supported. + uiOptions: + type: string + enum: + - NONE + - SEARCH_RESULT + - DOC_HOVERCARD + hideUiFacet: + type: boolean + description: If true then the property will not show up as a facet in the UI. + uiFacetOrder: + type: integer + description: Will be used to set the order of facets in the UI, if present. If set for one facet, must be set for all non-hidden UI facets. Must take on an integer value from 1 (shown at the top) to N (shown last), where N is the number of non-hidden UI facets. These facets will be ordered below the built-in "Type" and "Tag" operators. + skipIndexing: + type: boolean + description: If true then the property will not be indexed for retrieval and ranking. + group: + type: string + description: The unique identifier of the `PropertyGroup` to which this property belongs. + PropertyGroup: + description: A grouping for multiple PropertyDefinition. Grouped properties will be displayed together in the UI. + properties: + name: + type: string + description: The unique identifier of the group. + displayLabel: + type: string + description: The user-friendly group label to display. + ObjectDefinition: + description: The definition for an `DocumentMetadata.objectType` within a datasource. + properties: + name: + type: string + description: Unique identifier for this `DocumentMetadata.objectType`. If omitted, this definition is used as a default for all unmatched `DocumentMetadata.objectType`s in this datasource. + displayLabel: + type: string + description: The user-friendly name of the object for display. + docCategory: + type: string + enum: + - UNCATEGORIZED + - TICKETS + - CRM + - PUBLISHED_CONTENT + - COLLABORATIVE_CONTENT + - QUESTION_ANSWER + - MESSAGING + - CODE_REPOSITORY + - CHANGE_MANAGEMENT + - PEOPLE + - EMAIL + - SSO + - ATS + - KNOWLEDGE_HUB + - EXTERNAL_SHORTCUT + - ENTITY + - CALENDAR + - AGENTS + description: The document category of this object type. + propertyDefinitions: + type: array + items: + $ref: "#/components/schemas/PropertyDefinition" + propertyGroups: + type: array + description: A list of `PropertyGroup`s belonging to this object type, which will group properties to be displayed together in the UI. + items: + $ref: "#/components/schemas/PropertyGroup" + summarizable: + description: Whether or not the object is summarizable + type: boolean + CanonicalizingRegexType: + description: Regular expression to apply to an arbitrary string to transform it into a canonical string. + properties: + matchRegex: + type: string + description: Regular expression to match to an arbitrary string. + rewriteRegex: + type: string + description: Regular expression to transform into a canonical string. + SharedDatasourceConfigNoInstance: type: object + description: Structure describing shared config properties of a datasource with no multi-instance support. + required: + - name properties: - resultSize: - type: integer - description: Mapping from category to number of results asked for the category. - datasourceFilter: - type: array - items: - type: string - description: Datasources for which content should be included. Empty is for all. - chatZeroStateSuggestionOptions: - $ref: "#/components/schemas/ChatZeroStateSuggestionOptions" - FeedRequest: - required: - - refreshType - properties: - categories: - type: array - items: + name: + type: string + description: Unique identifier of datasource instance to which this config applies. + displayName: + type: string + description: The user-friendly instance label to display. If omitted, falls back to the title-cased `name`. + datasourceCategory: + type: string + enum: + - UNCATEGORIZED + - TICKETS + - CRM + - PUBLISHED_CONTENT + - COLLABORATIVE_CONTENT + - QUESTION_ANSWER + - MESSAGING + - CODE_REPOSITORY + - CHANGE_MANAGEMENT + - PEOPLE + - EMAIL + - SSO + - ATS + - KNOWLEDGE_HUB + - EXTERNAL_SHORTCUT + - ENTITY + - CALENDAR + - AGENTS + default: UNCATEGORIZED + 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. + urlRegex: + type: string + description: "Regular expression that matches URLs of documents of the datasource instance. The behavior for multiple matches is non-deterministic. **Note: `urlRegex` is a required field for non-entity datasources, but not required if the datasource is used to push custom entities (ie. datasources where isEntityDatasource is false). Please add a regex as specific as possible to this datasource instance.**" + example: https://example-company.datasource.com/.* + iconUrl: + type: string + description: The URL to an image to be displayed as an icon for this datasource instance. Must have a transparency mask. SVG are recommended over PNG. Public, scio-authenticated and Base64 encoded data URLs are all valid (but not third-party-authenticated URLs). + objectDefinitions: + type: array + description: The list of top-level `objectType`s for the datasource. + items: + $ref: "#/components/schemas/ObjectDefinition" + suggestionText: + type: string + description: Example text for what to search for in this datasource + homeUrl: + type: string + description: The URL of the landing page for this datasource instance. Should point to the most useful page for users, not the company marketing page. + crawlerSeedUrls: + type: array + description: This only applies to WEB_CRAWL and BROWSER_CRAWL datasources. Defines the seed URLs for crawling. + items: + type: string + iconDarkUrl: + type: string + description: The URL to an image to be displayed as an icon for this datasource instance in dark mode. Must have a transparency mask. SVG are recommended over PNG. Public, scio-authenticated and Base64 encoded data URLs are all valid (but not third-party-authenticated URLs). + hideBuiltInFacets: + type: array + description: List of built-in facet types that should be hidden for the datasource. + items: + type: string + enum: + - TYPE + - TAG + - AUTHOR + - OWNER + canonicalizingURLRegex: + type: array + description: A list of regular expressions to apply to an arbitrary URL to transform it into a canonical URL for this datasource instance. Regexes are to be applied in the order specified in this list. + items: + $ref: "#/components/schemas/CanonicalizingRegexType" + canonicalizingTitleRegex: + type: array + description: A list of regular expressions to apply to an arbitrary title to transform it into a title that will be displayed in the search results + items: + $ref: "#/components/schemas/CanonicalizingRegexType" + redlistTitleRegex: + type: string + description: A regex that identifies titles that should not be indexed + connectorType: + allOf: + - $ref: "#/components/schemas/ConnectorType" + type: string + quicklinks: + type: array + description: List of actions for this datasource instance that will show up in autocomplete and app card, e.g. "Create new issue" for jira + items: + $ref: "#/components/schemas/Quicklink" + renderConfigPreset: + type: string + description: The name of a render config to use for displaying results from this datasource. Any well known datasource name may be used to render the same as that source, e.g. `web` or `gdrive`. Please refer to [this](https://developers.glean.com/docs/rendering_search_results/) for more details + aliases: + type: array + description: Aliases that can be used as `app` operator-values. + items: + type: string + isOnPrem: + type: boolean + description: Whether or not this datasource is hosted on-premise. + trustUrlRegexForViewActivity: + type: boolean + default: true + description: True if browser activity is able to report the correct URL for VIEW events. Set this to true if the URLs reported by Chrome are constant throughout each page load. Set this to false if the page has Javascript that modifies the URL during or after the load. + includeUtmSource: + type: boolean + description: If true, a utm_source query param will be added to outbound links to this datasource within Glean. + stripFragmentInCanonicalUrl: + type: boolean + default: true + description: If true, the fragment part of the URL will be stripped when converting to a canonical url. + CustomDatasourceConfig: + description: Structure describing config properties of a custom datasource + allOf: + - $ref: "#/components/schemas/SharedDatasourceConfigNoInstance" + - type: object + properties: + identityDatasourceName: + type: string + description: If the datasource uses another datasource for identity info, then the name of the datasource. The identity datasource must exist already and the datasource with identity info should have its visibility enabled for search results. + productAccessGroup: + type: string + description: If the datasource uses a specific product access group, then the name of that group. + isUserReferencedByEmail: + type: boolean + description: whether email is used to reference users in document ACLs and in group memberships. + isEntityDatasource: + type: boolean + default: false + description: True if this datasource is used to push custom entities. + isTestDatasource: + type: boolean + default: false + description: True if this datasource will be used for testing purpose only. Documents from such a datasource wouldn't have any effect on search rankings. + ShortcutProperties: + properties: + inputAlias: + type: string + description: link text following the viewPrefix as entered by the user. For example, if the view prefix is `go/` and the shortened URL is `go/abc`, then `abc` is the inputAlias. + description: + type: string + description: A short, plain text blurb to help people understand the intent of the shortcut. + destinationUrl: + type: string + format: url + description: destination URL for the shortcut. + createdBy: + type: string + description: Email of the user who created this shortcut. + createTime: + type: integer + format: int64 + description: The time the shortcut was created in epoch seconds. + updatedBy: + type: string + description: Email of the user who last updated this shortcut. + updateTime: + type: integer + format: int64 + description: The time the shortcut was updated in epoch seconds. + ExternalShortcut: + allOf: + - $ref: "#/components/schemas/ShortcutProperties" + - type: object + required: + - destinationUrl + - intermediateUrl + - createdBy + - inputAlias + properties: + title: + type: string + description: Title of the golink + intermediateUrl: + type: string + format: url + description: The URL from which the user is then redirected to the destination URL. + decayedVisitScore: + type: number + format: double + description: decayed visits score for ranking + editUrl: + type: string + format: url + description: The URL using which the user can access the edit page of the shortcut. + SharedDatasourceConfig: + description: Structure describing shared config properties of the datasource (including multi-instance support) + allOf: + - $ref: "#/components/schemas/SharedDatasourceConfigNoInstance" + - type: object + properties: + datasourceName: + type: string + description: The (non-unique) name of the datasource of which this config is an instance, e.g. "jira". + instanceOnlyName: + type: string + description: The instance of the datasource for this particular config, e.g. "onprem". + instanceDescription: + type: string + description: A human readable string identifying this instance as compared to its peers, e.g. "github.com/askscio" or "github.askscio.com" + IndexingShortcut: + allOf: + - $ref: "#/components/schemas/ShortcutProperties" + - type: object + required: + - destinationUrl + - createdBy + - inputAlias + properties: + unlisted: + type: boolean + description: Whether this shortcut is unlisted or not. Unlisted shortcuts are visible to author and admins only. + urlTemplate: + type: string + description: For variable shortcuts, contains the URL template; note, `destinationUrl` contains default URL. + SensitiveInfoType: + properties: + likelihoodThreshold: + deprecated: true + type: string + enum: + - LIKELY + - VERY_LIKELY + - POSSIBLE + - UNLIKELY + - VERY_UNLIKELY + x-glean-deprecated: + - id: d45039ec-d6f6-47ba-93b7-ab2307b07f84 + introduced: "2026-02-05" + kind: property + message: Field is deprecated + removal: "2026-10-15" + x-speakeasy-deprecation-message: "Deprecated on 2026-02-05, removal scheduled for 2026-10-15: Field is deprecated" + infoType: + description: Text representation of an info-type to scan for. + type: string + TimeRange: + properties: + startTime: + type: string + description: start time of the time range, applicable for the CUSTOM type. + format: date-time + endTime: + type: string + description: end time of the time range, applicable for the CUSTOM type. + format: date-time + lastNDaysValue: + type: integer + description: The number of days to look back from the current time, applicable for the LAST_N_DAYS type. + format: int64 + InputOptions: + description: Controls which data-sources and what time-range to include in scans. + properties: + urlGreenlist: + deprecated: true + type: array + description: list of url regex matching documents excluded from report + items: + type: string + x-glean-deprecated: + id: e022aaa5-56e6-4b57-bca3-b11943da76a0 + introduced: "2026-02-05" + message: Field is deprecated + removal: "2026-10-15" + x-speakeasy-deprecation-message: "Deprecated on 2026-02-05, removal scheduled for 2026-10-15: Field is deprecated" + datasourcesType: + type: string + description: The types of datasource for which to run the report/policy. + enum: + - ALL + - CUSTOM + datasources: + deprecated: true + type: array + description: List of datasources to consider for report. DEPRECATED - use datasourceInstances instead. + items: + type: string + x-glean-deprecated: + id: 97e35970-e0ed-4248-be13-2af8c22e7894 + introduced: "2026-02-05" + message: Use datasourceInstances instead + removal: "2026-10-15" + x-speakeasy-deprecation-message: "Deprecated on 2026-02-05, removal scheduled for 2026-10-15: Use datasourceInstances instead" + datasourceInstances: + type: array + description: List of datasource instances to consider for report/policy. + items: + type: string + timePeriodType: + type: string + description: Type of time period for which to run the report/policy. PAST_DAY is deprecated. + enum: + - ALL_TIME + - PAST_YEAR + - PAST_DAY + - CUSTOM + - LAST_N_DAYS + customTimeRange: + $ref: "#/components/schemas/TimeRange" + subsetDocIdsToScan: + type: array + description: Subset of document IDs to scan. If empty, all documents matching other scope criteria will be scanned. + items: + type: string + SharingOptions: + description: Controls how "shared" a document must be to get picked for scans. + properties: + enabled: + deprecated: true + type: boolean + x-glean-deprecated: + id: e9260be6-209b-4ce2-a4b3-f7f22879dd86 + introduced: "2026-02-05" + message: Field is deprecated + removal: "2026-10-15" + x-speakeasy-deprecation-message: "Deprecated on 2026-02-05, removal scheduled for 2026-10-15: Field is deprecated" + threshold: + description: The minimum number of users the document is shared with. + type: integer + thresholdEnabled: + description: Documents will be filtered based on how many people have access to it. + type: boolean + anyoneWithLinkEnabled: + deprecated: true + type: boolean + x-glean-deprecated: + id: 30646ced-e0db-43ef-8412-64a67c5d0f53 + introduced: "2026-02-05" + message: Field is deprecated + removal: "2026-10-15" + x-speakeasy-deprecation-message: "Deprecated on 2026-02-05, removal scheduled for 2026-10-15: Field is deprecated" + anyoneInternalEnabled: + description: Only users within the organization can access the document. + type: boolean + anonymousAccessEnabled: + description: Anyone on the internet can access the document. + type: boolean + userAccessEnabled: + description: Enable user access check + type: boolean + userIds: + type: array + description: Any one of the specified users can access the document. + items: + type: string + ExternalSharingOptions: + deprecated: true + x-glean-deprecated: + id: 7c9e4a1d-3f8b-4e2c-9a5d-6b0f1c8e2d4a + introduced: "2026-02-05" + message: Use broadSharingOptions instead + removal: "2026-10-15" + x-speakeasy-deprecation-message: "Deprecated on 2026-02-05, removal scheduled for 2026-10-15: Use broadSharingOptions instead" + allOf: + - description: DEPRECATED - use `broadSharingOptions` instead. + - $ref: "#/components/schemas/SharingOptions" + - type: object + properties: + domainAccessEnabled: + type: boolean + HotwordProximity: + properties: + windowBefore: + type: integer + windowAfter: + type: integer + Hotword: + properties: + regex: + type: string + proximity: + $ref: "#/components/schemas/HotwordProximity" + SensitiveExpression: + properties: + expression: + description: Sensitive word, phrase, or regular expression. + type: string + hotwords: + description: Zero to three proximate regular expressions necessary to consider an expression as sensitive content. + type: array + items: + $ref: "#/components/schemas/Hotword" + CustomSensitiveRuleType: type: string + description: Type of the custom sensitive rule. enum: - - DOCUMENT_SUGGESTION - - DOCUMENT_SUGGESTION_SCENARIO - - TRENDING_DOCUMENT - - VERIFICATION_REMINDER - - EVENT - - ANNOUNCEMENT - - MENTION - - DATASOURCE_AFFINITY - - RECENT - - COMPANY_RESOURCE - - EXPERIMENTAL - - PEOPLE_CELEBRATIONS - - DISPLAYABLE_LIST - - SOCIAL_LINK - - EXTERNAL_TASKS - - WORKFLOW_COLLECTIONS - - ZERO_STATE_CHAT_SUGGESTION - - ZERO_STATE_CHAT_TOOL_SUGGESTION - - ZERO_STATE_WORKFLOW_CREATED_BY_ME - - ZERO_STATE_WORKFLOW_FAVORITES - - ZERO_STATE_WORKFLOW_POPULAR - - ZERO_STATE_WORKFLOW_RECENT - - ZERO_STATE_WORKFLOW_SUGGESTION - - PERSONALIZED_CHAT_SUGGESTION - - DAILY_DIGEST - description: Categories of content requested. An allowlist gives flexibility to request content separately or together. - requestOptions: - $ref: "#/components/schemas/FeedRequestOptions" - timeoutMillis: - type: integer - description: Timeout in milliseconds for the request. A `408` error will be returned if handling the request takes longer. - example: 5000 - sessionInfo: - $ref: "#/components/schemas/SessionInfo" - DisplayableListFormat: - properties: - format: - type: string - enum: - - LIST - description: defines how to render this particular displayable list card - DisplayableListItemUIConfig: - type: object - description: UI configurations for each item of the list - properties: - showNewIndicator: - type: boolean - description: show a "New" pill next to the item - ConferenceData: - required: - - provider - - uri - properties: - provider: - type: string - enum: - - ZOOM - - HANGOUTS - uri: - type: string - description: A permalink for the conference. - source: - type: string - enum: - - NATIVE_CONFERENCE - - LOCATION - - DESCRIPTION - EventClassificationName: - description: The name for a generated classification of an event. - type: string - enum: - - External Event - EventStrategyName: - type: string - description: The name of method used to surface relevant data for a given calendar event. - enum: - - customerCard - - news - - call - - email - - meetingNotes - - linkedIn - - relevantDocuments - - chatFollowUps - - conversations - EventClassification: - description: A generated classification of a given event. - properties: - name: - $ref: "#/components/schemas/EventClassificationName" - strategies: - type: array - items: - $ref: "#/components/schemas/EventStrategyName" - StructuredLink: - description: The display configuration for a link. - properties: - name: - type: string - description: The display name for the link - url: - type: string - description: The URL for the link. - iconConfig: - $ref: "#/components/schemas/IconConfig" - GeneratedAttachmentContent: - description: Content that has been generated or extrapolated from the documents present in the document field. - properties: - displayHeader: - description: The header describing the generated content. - type: string - text: - description: The content that has been generated. - type: string - example: - displayHeader: Action Items - content: You said you'd send over the design document after the meeting. - GeneratedAttachment: - description: These are attachments that aren't natively present on the event, and have been smartly suggested. - properties: - strategyName: - $ref: "#/components/schemas/EventStrategyName" - documents: - type: array - items: - $ref: "#/components/schemas/Document" - person: - $ref: "#/components/schemas/Person" - customer: - $ref: "#/components/schemas/Customer" - externalLinks: - description: A list of links to external sources outside of Glean. - type: array - items: - $ref: "#/components/schemas/StructuredLink" - content: - type: array - items: - $ref: "#/components/schemas/GeneratedAttachmentContent" - CalendarEvent: - required: - - id - - url - allOf: - - $ref: "#/components/schemas/AnonymousEvent" - - type: object - properties: - id: - type: string - description: The calendar event id - url: - type: string - description: A permalink for this calendar event - attendees: - $ref: "#/components/schemas/CalendarAttendees" - location: - type: string - description: The location that this event is taking place at. - conferenceData: - $ref: "#/components/schemas/ConferenceData" - description: - type: string - description: The HTML description of the event. - datasource: - type: string - description: The app or other repository type from which the event was extracted - hasTranscript: - type: boolean - description: The event has a transcript associated with it enabling features like summarization - transcriptUrl: - type: string - description: A link to the transcript of the event - classifications: - type: array - items: - $ref: "#/components/schemas/EventClassification" - generatedAttachments: - type: array - items: - $ref: "#/components/schemas/GeneratedAttachment" - SectionType: - type: string - description: Type of the section. This defines how the section should be interpreted and rendered in the digest. - x-enumDescriptions: - CHANNEL: A standard section for channel-based digests (e.g. from Slack, Teams). - MENTIONS: A dedicated section that surfaces user mentions (actionable, informative, or all). - TOPIC: A section driven by a generic topic, not tied to any specific channel or instance. - enum: - - CHANNEL - - MENTIONS - - TOPIC - x-speakeasy-enum-descriptions: - CHANNEL: A standard section for channel-based digests (e.g. from Slack, Teams). - MENTIONS: A dedicated section that surfaces user mentions (actionable, informative, or all). - TOPIC: A section driven by a generic topic, not tied to any specific channel or instance. - UpdateType: - type: string - description: Optional type classification for the update. - x-enumDescriptions: - ACTIONABLE: Updates that require user attention or action - INFORMATIVE: Updates that are purely informational - enum: - - ACTIONABLE - - INFORMATIVE - x-speakeasy-enum-descriptions: - ACTIONABLE: Updates that require user attention or action - INFORMATIVE: Updates that are purely informational - DigestUpdate: - type: object - properties: - urls: - type: array - description: List of URLs for similar updates that are grouped together and rendered as a single update. - items: - type: string - url: - type: string - description: URL link to the content or document. - title: - type: string - description: Title or headline of the update. - datasource: - type: string - description: Name or identifier of the data source (e.g., slack, confluence, etc.). - summary: - type: string - description: Brief summary or description of the update content. - type: - $ref: "#/components/schemas/UpdateType" - DigestSection: - type: object - required: - - id - - type - - updates - properties: - id: - type: string - description: Unique identifier for the digest section. - type: - $ref: "#/components/schemas/SectionType" - displayName: - type: string - description: Human-readable name for the digest section. - channelName: - type: string - description: Name of the channel (applicable for CHANNEL type sections). Used to display in the frontend. - channelType: - type: string - description: | - Channel visibility/type for CHANNEL sections. For Slack this is typically one of - PublicChannel, PrivateChannel. Omit if not applicable or unknown. - instanceId: - type: string - description: Instance identifier for the channel or workspace. Used for constructing channel URLs to display in the frontend. - url: - type: string - description: Optional URL for the digest section. Should be populated only if the section is a CHANNEL type section. - updates: - type: array - items: - $ref: "#/components/schemas/DigestUpdate" - description: List of updates within this digest section. - Digest: - type: object - properties: - podcastFileId: - type: string - description: Identifier for the podcast file generated from this digest content. - podcastDuration: - type: number - format: float - description: Duration of the podcast file in seconds. - digestDate: - type: string - 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. - example: "2025-09-03" - sections: - type: array - items: - $ref: "#/components/schemas/DigestSection" - description: Array of digest sections from which the podcast was created. - ChatSuggestion: - properties: - query: - type: string - description: The actionable chat query to run when the user selects this suggestion. - feature: - type: string - description: Targeted Glean Chat feature for the suggestion. - PromptTemplateMutableProperties: - required: - - template - properties: - name: - type: string - description: The user-given identifier for this prompt template. - template: - type: string - description: The actual template string. - applicationId: - type: string - description: The Application Id the prompt template should be created under. Empty for default assistant. - inclusions: - $ref: "#/components/schemas/ChatRestrictionFilters" - description: A list of filters which only allows the prompt template to access certain content. - addedRoles: - type: array - description: A list of added user roles for the Workflow. - items: - $ref: "#/components/schemas/UserRoleSpecification" - removedRoles: - type: array - description: A list of removed user roles for the Workflow. - items: - $ref: "#/components/schemas/UserRoleSpecification" - AttributionProperties: {} - PromptTemplate: - allOf: - - $ref: "#/components/schemas/PromptTemplateMutableProperties" - - $ref: "#/components/schemas/PermissionedObject" - - $ref: "#/components/schemas/AttributionProperties" - - type: object - properties: - id: - type: string - description: Opaque id for this prompt template - author: - $ref: "#/components/schemas/Person" - createTimestamp: - type: integer - description: Server Unix timestamp of the creation time. - lastUpdateTimestamp: - type: integer - description: Server Unix timestamp of the last update time. - lastUpdatedBy: - $ref: "#/components/schemas/Person" - roles: - type: array - description: A list of roles for this prompt template explicitly granted. - items: - $ref: "#/components/schemas/UserRoleSpecification" - UgcType: - enum: - - ANNOUNCEMENTS_TYPE - - ANSWERS_TYPE - - COLLECTIONS_TYPE - - SHORTCUTS_TYPE - - WORKFLOWS_TYPE - - PROMPT_TEMPLATES_TYPE - - PRISM_VIEWS_TYPE - FavoriteInfo: - type: object - properties: - ugcType: - $ref: "#/components/schemas/UgcType" - id: - type: string - description: Opaque id of the UGC. - count: - type: integer - x-includeEmpty: true - description: Number of users this object has been favorited by. - favoritedByUser: - type: boolean - x-includeEmpty: true - description: If the requesting user has favorited this object. - PromptTemplateResult: - properties: - promptTemplate: - $ref: "#/components/schemas/PromptTemplate" - trackingToken: - type: string - description: An opaque token that represents this prompt template - favoriteInfo: - $ref: "#/components/schemas/FavoriteInfo" - runCount: - $ref: "#/components/schemas/CountInfo" - 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. - WorkflowDraftableProperties: - properties: - name: - type: string - description: The name of the workflow. - WorkflowMutableProperties: - type: object - allOf: - - $ref: "#/components/schemas/WorkflowDraftableProperties" - - type: object - WorkflowMetadata: - allOf: - - type: object - properties: - author: - $ref: "#/components/schemas/Person" - createTimestamp: - type: integer - description: Server Unix timestamp of the creation time. - lastUpdateTimestamp: - type: integer - description: Server Unix timestamp of the last update time. - lastUpdatedBy: - $ref: "#/components/schemas/Person" - Workflow: - allOf: - - $ref: "#/components/schemas/PermissionedObject" - - $ref: "#/components/schemas/WorkflowMutableProperties" - - $ref: "#/components/schemas/WorkflowMetadata" - - $ref: "#/components/schemas/AttributionProperties" - - type: object - properties: - id: - type: string - description: The ID of the workflow. - WorkflowResult: - type: object - required: - - workflow - properties: - workflow: - $ref: "#/components/schemas/Workflow" - UserActivity: - properties: - actor: - $ref: "#/components/schemas/Person" - timestamp: - type: integer - description: Unix timestamp of the activity (in seconds since epoch UTC). - action: - type: string - enum: - - ADD - - ADD_REMINDER - - CLICK - - COMMENT - - DELETE - - DISMISS - - EDIT - - MENTION - - MOVE - - OTHER - - RESTORE - - UNKNOWN - - VERIFY - - VIEW - description: The action for the activity - aggregateVisitCount: - $ref: "#/components/schemas/CountInfo" - FeedEntry: - required: - - title - properties: - entryId: - type: string - description: optional ID associated with a single feed entry (displayable_list_id) - title: - type: string - description: Title for the result. Can be document title, event title and so on. - thumbnail: - $ref: "#/components/schemas/Thumbnail" - createdBy: - $ref: "#/components/schemas/Person" - uiConfig: - allOf: - - $ref: "#/components/schemas/DisplayableListFormat" - - type: object - properties: - additionalFlags: - $ref: "#/components/schemas/DisplayableListItemUIConfig" - justificationType: - type: string - enum: - - FREQUENTLY_ACCESSED - - RECENTLY_ACCESSED - - TRENDING_DOCUMENT - - VERIFICATION_REMINDER - - SUGGESTED_DOCUMENT - - EMPTY_STATE_SUGGESTION - - FRECENCY_SCORED - - SERVER_GENERATED - - USE_CASE - - UPDATE_SINCE_LAST_VIEW - - RECENTLY_STARTED - - EVENT - - USER_MENTION - - ANNOUNCEMENT - - EXTERNAL_ANNOUNCEMENT - - POPULARITY_BASED_TRENDING - - COMPANY_RESOURCE - - EVENT_DOCUMENT_FROM_CONTENT - - EVENT_DOCUMENT_FROM_SEARCH - - VISIT_AFFINITY_SCORED - - SUGGESTED_APP - - SUGGESTED_PERSON - - ACTIVITY_HIGHLIGHT - - SAVED_SEARCH - - SUGGESTED_CHANNEL - - PEOPLE_CELEBRATIONS - - SOCIAL_LINK - - ZERO_STATE_CHAT_SUGGESTION - - ZERO_STATE_CHAT_TOOL_SUGGESTION - - ZERO_STATE_PROMPT_TEMPLATE_SUGGESTION - - ZERO_STATE_STATIC_WORKFLOW_SUGGESTION - - ZERO_STATE_AGENT_SUGGESTION - - PERSONALIZED_CHAT_SUGGESTION - - DAILY_DIGEST - description: Type of the justification. - justification: - type: string - description: Server side generated justification string if server provides one. - trackingToken: - type: string - description: An opaque token that represents this particular feed entry in this particular response. To be used for /feedback reporting. - viewUrl: - type: string - description: View URL for the entry if based on links that are not documents in Glean. - document: - $ref: "#/components/schemas/Document" - event: - $ref: "#/components/schemas/CalendarEvent" - announcement: - $ref: "#/components/schemas/Announcement" - digest: - $ref: "#/components/schemas/Digest" - collection: - $ref: "#/components/schemas/Collection" - collectionItem: - $ref: "#/components/schemas/CollectionItem" - person: - $ref: "#/components/schemas/Person" - app: - $ref: "#/components/schemas/AppResult" - chatSuggestion: - $ref: "#/components/schemas/ChatSuggestion" - promptTemplate: - $ref: "#/components/schemas/PromptTemplateResult" - workflow: - $ref: "#/components/schemas/WorkflowResult" - activities: - type: array - items: - $ref: "#/components/schemas/UserActivity" - description: List of activity where each activity has user, action, timestamp. - documentVisitorCount: - $ref: "#/components/schemas/CountInfo" - FeedResult: - required: - - category - - primaryEntry - properties: - category: - type: string - enum: - - DOCUMENT_SUGGESTION - - DOCUMENT_SUGGESTION_SCENARIO - - TRENDING_DOCUMENT - - USE_CASE - - VERIFICATION_REMINDER - - EVENT - - ANNOUNCEMENT - - MENTION - - DATASOURCE_AFFINITY - - RECENT - - COMPANY_RESOURCE - - EXPERIMENTAL - - PEOPLE_CELEBRATIONS - - SOCIAL_LINK - - EXTERNAL_TASKS - - DISPLAYABLE_LIST - - ZERO_STATE_CHAT_SUGGESTION - - ZERO_STATE_CHAT_TOOL_SUGGESTION - - ZERO_STATE_WORKFLOW_CREATED_BY_ME - - ZERO_STATE_WORKFLOW_FAVORITES - - ZERO_STATE_WORKFLOW_POPULAR - - ZERO_STATE_WORKFLOW_RECENT - - ZERO_STATE_WORKFLOW_SUGGESTION - - PERSONALIZED_CHAT_SUGGESTION - - DAILY_DIGEST - description: Category of the result, one of the requested categories in incoming request. - primaryEntry: - $ref: "#/components/schemas/FeedEntry" - secondaryEntries: - type: array - items: - $ref: "#/components/schemas/FeedEntry" - description: Secondary entries for the result e.g. suggested docs for the calendar, carousel. - rank: - type: integer - description: Rank of the result. Rank is suggested by server. Client side rank may differ. - FeedResponse: - required: - - serverTimestamp - allOf: - - $ref: "#/components/schemas/BackendExperimentsContext" - - type: object - properties: - trackingToken: - type: string - description: An opaque token that represents this particular feed response. - serverTimestamp: - type: integer - description: Server unix timestamp (in seconds since epoch UTC). - results: - type: array - items: - $ref: "#/components/schemas/FeedResult" - facetResults: - type: object - additionalProperties: - type: array - items: - $ref: "#/components/schemas/FacetResult" - description: Map from category to the list of facets that can be used to filter the entry's content. - mentionsTimeWindowInHours: - type: integer - description: The time window (in hours) used for generating user mentions. - RecommendationsRequestOptions: - properties: - datasourceFilter: - type: string - description: Filter results to a single datasource name (e.g. gmail, slack). All results are returned if missing. - datasourcesFilter: - type: array - items: - type: string - description: Filter results to only those relevant to one or more datasources (e.g. jira, gdrive). All results are returned if missing. - facetFilterSets: - type: array - items: - $ref: "#/components/schemas/FacetFilterSet" - description: A list of facet filter sets that will be OR'ed together. - context: - $ref: "#/components/schemas/Document" - description: Content for either a new or unindexed document, or additional content for an indexed document, which may be used to generate recommendations. - resultProminence: - description: The types of prominence wanted in results returned. Default is any type. - type: array - items: - $ref: "#/components/schemas/SearchResultProminenceEnum" - RecommendationsRequest: - allOf: - - $ref: "#/components/schemas/ResultsRequest" - - type: object - properties: - recommendationDocumentSpec: - $ref: "#/components/schemas/DocumentSpec" - description: Retrieve recommendations for this document. Glean Document ID is preferred over URL. - requestOptions: - $ref: "#/components/schemas/RecommendationsRequestOptions" - description: Options for adjusting the request for recommendations. - RecommendationsResponse: - allOf: - - $ref: "#/components/schemas/ResultsResponse" - SortOptions: - type: object - properties: - orderBy: - type: string - enum: - - ASC - - DESC - sortBy: - type: string - ListEntitiesRequest: - type: object - properties: - filter: - type: array - items: - $ref: "#/components/schemas/FacetFilter" - sort: - description: Use EntitiesSortOrder enum for SortOptions.sortBy - type: array - items: - $ref: "#/components/schemas/SortOptions" - entityType: - type: string - default: PEOPLE - enum: - - PEOPLE - - TEAMS - - CUSTOM_ENTITIES - datasource: - type: string - description: The datasource associated with the entity type, most commonly used with CUSTOM_ENTITIES - query: - type: string - description: A query string to search for entities that each entity in the response must conform to. An empty query does not filter any entities. - includeFields: - description: List of entity fields to return (that aren't returned by default) - type: array - items: + - REGEX + - TERM + - INFO_TYPE + CustomSensitiveRule: + properties: + id: + description: Identifier for the custom sensitive expression. + type: string + value: + type: string + description: The value of the custom sensitive rule. For REGEX type, this is the regex pattern; for TERM type, it is the term to match; and for INFO_TYPE type, it refers to predefined categories of sensitive content. See https://cloud.google.com/dlp/docs/infotypes-reference for available options. + type: + $ref: "#/components/schemas/CustomSensitiveRuleType" + likelihoodThreshold: + description: Likelihood threshold for BUILT_IN infotypes (e.g., LIKELY, VERY_LIKELY). Only applicable for BUILT_IN type. + type: string + enum: + - LIKELY + - VERY_LIKELY + - POSSIBLE + - UNLIKELY + - VERY_UNLIKELY + CustomSensitiveExpression: + properties: + id: + description: Identifier for the custom sensitive expression. + type: string + keyword: + description: The keyword to match against. + $ref: "#/components/schemas/CustomSensitiveRule" + evaluationExpression: + description: The expression to evaluate the keyword match. + type: string + SensitiveContentOptions: + description: Options for defining sensitive content within scanned documents. + properties: + sensitiveInfoTypes: + deprecated: true + description: DEPRECATED - use 'customSensitiveExpressions' instead. + type: array + items: + $ref: "#/components/schemas/SensitiveInfoType" + x-glean-deprecated: + id: 3497cb1c-f7aa-42d8-81b8-309c3adeed84 + introduced: "2026-02-05" + message: Use customSensitiveExpressions instead + removal: "2026-10-15" + x-speakeasy-deprecation-message: "Deprecated on 2026-02-05, removal scheduled for 2026-10-15: Use customSensitiveExpressions instead" + sensitiveTerms: + deprecated: true + description: DEPRECATED - use 'customSensitiveExpressions' instead. + type: array + items: + $ref: "#/components/schemas/SensitiveExpression" + x-glean-deprecated: + id: b0713b37-472e-4c29-80ba-6f5d6f2b449c + introduced: "2026-02-05" + message: Use customSensitiveExpressions instead + removal: "2026-10-15" + x-speakeasy-deprecation-message: "Deprecated on 2026-02-05, removal scheduled for 2026-10-15: Use customSensitiveExpressions instead" + sensitiveRegexes: + deprecated: true + description: DEPRECATED - use 'customSensitiveExpressions' instead. + type: array + items: + $ref: "#/components/schemas/SensitiveExpression" + x-glean-deprecated: + id: a26e1920-36b6-4c0f-981f-57b09a9ebce3 + introduced: "2026-02-05" + message: Use customSensitiveExpressions instead + removal: "2026-10-15" + x-speakeasy-deprecation-message: "Deprecated on 2026-02-05, removal scheduled for 2026-10-15: Use customSensitiveExpressions instead" + customSensitiveExpressions: + description: list of custom sensitive expressions to consider as sensitive content + type: array + items: + $ref: "#/components/schemas/CustomSensitiveExpression" + DlpPersonMetadata: + properties: + firstName: + type: string + description: The first name of the person + email: + type: string + description: The user's primary email address + DlpPerson: + description: Details about the person who created this report/policy. + required: + - name + - obfuscatedId + properties: + name: + type: string + description: The display name. + obfuscatedId: + type: string + description: An opaque identifier that can be used to request metadata for a Person. + metadata: + $ref: "#/components/schemas/DlpPersonMetadata" + AllowlistOptions: + 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. + properties: + terms: + type: array + description: list of words and phrases to consider as whitelisted content + items: + type: string + DlpConfig: + description: Detailed configuration of what documents and sensitive content will be scanned. + properties: + version: + description: Synonymous with report/policy id. + type: integer + format: int64 + sensitiveInfoTypes: + deprecated: true + description: DEPRECATED - use `sensitiveContentOptions` instead. + type: array + items: + $ref: "#/components/schemas/SensitiveInfoType" + x-glean-deprecated: + id: 60d6d182-e9d0-448d-af75-137f68bbdcbf + introduced: "2026-02-05" + message: Use sensitiveContentOptions instead + removal: "2026-10-15" + x-speakeasy-deprecation-message: "Deprecated on 2026-02-05, removal scheduled for 2026-10-15: Use sensitiveContentOptions instead" + inputOptions: + description: Options for documents to include or exclude in a report + $ref: "#/components/schemas/InputOptions" + externalSharingOptions: + deprecated: true + description: DEPRECATED - use `broadSharingOptions` instead. + $ref: "#/components/schemas/ExternalSharingOptions" + x-glean-deprecated: + id: 6484ec17-a133-4176-b2ce-28e25b0e9065 + introduced: "2026-02-05" + message: Use broadSharingOptions instead + removal: "2026-10-15" + x-speakeasy-deprecation-message: "Deprecated on 2026-02-05, removal scheduled for 2026-10-15: Use broadSharingOptions instead" + broadSharingOptions: + description: Options for defining documents to scan for sensitive content. + $ref: "#/components/schemas/SharingOptions" + sensitiveContentOptions: + description: Options for defining sensitive content within scanned documents. + $ref: "#/components/schemas/SensitiveContentOptions" + reportName: + type: string + frequency: + description: Interval between scans. + type: string + createdBy: + description: Person who created this report/policy. + $ref: "#/components/schemas/DlpPerson" + createdAt: + description: Timestamp at which this configuration was created. + type: string + format: iso-date-time + redactQuote: + description: redact quote in findings of the report + type: boolean + autoHideDocs: + description: auto hide documents with findings in the report + type: boolean + allowlistOptions: + description: Options for defining whitelisting content within scanned documents + $ref: "#/components/schemas/AllowlistOptions" + DlpFrequency: type: string + description: Interval between scans. DAILY is deprecated. + x-include-enum-class-prefix: true enum: - - PEOPLE - - TEAMS - - PEOPLE_DISTANCE - - PERMISSIONS - - FACETS - - INVITE_INFO - - LAST_EXTENSION_USE - - MANAGEMENT_DETAILS - - UNPROCESSED_TEAMS - pageSize: - type: integer - example: 100 - description: Hint to the server about how many results to send back. Server may return less. - cursor: - type: string - description: Pagination cursor. A previously received opaque token representing the position in the overall results at which to start. - source: - type: string - description: A string denoting the search surface from which the endpoint is called. - requestType: - type: string - default: STANDARD - description: The type of request being made. - x-enumDescriptions: - STANDARD: Used by default for all requests and satisfies all standard use cases for list requests. Limited to 10000 entities. - FULL_DIRECTORY: Used exclusively to return a comprehensive list of all people entities in the organization, typically for audit like purposes. The recommended approach is to sort by FIRST_NAME or LAST_NAME, and use pagination for large organizations. - enum: - - STANDARD - - FULL_DIRECTORY - x-speakeasy-enum-descriptions: - STANDARD: Used by default for all requests and satisfies all standard use cases for list requests. Limited to 10000 entities. - FULL_DIRECTORY: Used exclusively to return a comprehensive list of all people entities in the organization, typically for audit like purposes. The recommended approach is to sort by FIRST_NAME or LAST_NAME, and use pagination for large organizations. - EntitiesSortOrder: - type: string - description: Different ways of sorting entities - enum: - - ENTITY_NAME - - FIRST_NAME - - LAST_NAME - - ORG_SIZE_COUNT - - START_DATE - - TEAM_SIZE - - RELEVANCE - ListEntitiesResponse: - type: object - properties: - results: - type: array - items: - $ref: "#/components/schemas/Person" - teamResults: - type: array - items: - $ref: "#/components/schemas/Team" - customEntityResults: - type: array - items: - $ref: "#/components/schemas/CustomEntity" - facetResults: - type: array - items: - $ref: "#/components/schemas/FacetResult" - cursor: - type: string - description: Pagination cursor. A previously received opaque token representing the position in the overall results at which to start. - totalCount: - type: integer - description: The total number of entities available - hasMoreResults: - type: boolean - description: Whether or not more entities can be fetched. - sortOptions: - type: array - description: Sort options from EntitiesSortOrder supported for this response. Default is empty list. - items: - $ref: "#/components/schemas/EntitiesSortOrder" - customFacetNames: - type: array - description: list of Person attributes that are custom setup by deployment - items: - type: string - PeopleRequest: - type: object - properties: - timezoneOffset: - type: integer - description: The offset of the client's timezone in minutes from UTC. e.g. PDT is -420 because it's 7 hours behind UTC. - obfuscatedIds: - type: array - items: - type: string - description: The Person IDs to retrieve. If no IDs are requested, the current user's details are returned. - emailIds: - type: array - items: - type: string - description: The email IDs to retrieve. The result is the deduplicated union of emailIds and obfuscatedIds. - includeFields: - description: List of PersonMetadata fields to return (that aren't returned by default) - type: array - items: + - ONCE + - DAILY + - WEEKLY + - CONTINUOUS + - NONE + DlpReportStatus: type: string + description: The status of the policy/report. Only ACTIVE status will be picked for scans. + x-include-enum-class-prefix: true enum: - - BADGES - - BUSY_EVENTS - - DOCUMENT_ACTIVITY - - INVITE_INFO - - PEOPLE_DISTANCE - - PERMISSIONS - - PEOPLE_DETAILS - - MANAGEMENT_DETAILS - - PEOPLE_PROFILE_SETTINGS - - PEOPLE_WITHOUT_MANAGER - includeTypes: - description: The types of people entities to include in the response in addition to those returned by default. - x-enumDescriptions: - PEOPLE_WITHOUT_MANAGER: Returns all people without a manager apart from the requested IDs. - INVALID_ENTITIES: Includes invalid entities in the response if any of the requested IDs are invalid. - type: array - items: + - ACTIVE + - INACTIVE + - CANCELLED + - NONE + DlpReport: + description: Full policy information that will be used for scans. + properties: + id: + type: string + name: + type: string + config: + description: All details of the policy that is needed for a scan. + $ref: "#/components/schemas/DlpConfig" + frequency: + description: The interval between scans. + $ref: "#/components/schemas/DlpFrequency" + status: + description: The status of the policy. + $ref: "#/components/schemas/DlpReportStatus" + createdBy: + description: Person who created this report. + $ref: "#/components/schemas/DlpPerson" + createdAt: + description: Timestamp at which the policy was created. + type: string + format: iso-date-time + lastUpdatedAt: + description: Timestamp at which the policy was last updated. + type: string + format: iso-date-time + autoHideDocs: + description: Auto hide documents with findings in the policy. + type: boolean + lastScanStatus: + type: string + enum: + - PENDING + - SUCCESS + - FAILURE + - CANCELLED + - CANCELLING + - ACTIVE + lastScanStartTime: + description: The timestamp at which the report's last run/scan began. + type: string + format: iso-date-time + updatedBy: + description: Person who last updated this report. + $ref: "#/components/schemas/DlpPerson" + GetDlpReportResponse: + properties: + report: + $ref: "#/components/schemas/DlpReport" + UpdateDlpReportRequest: + properties: + config: + description: The new configuration the policy will follow if provided. + $ref: "#/components/schemas/DlpConfig" + frequency: + description: The new frequency the policy will follow if provided. + $ref: "#/components/schemas/DlpFrequency" + status: + description: The new status the policy will be updated to if provided. + $ref: "#/components/schemas/DlpReportStatus" + autoHideDocs: + description: The new autoHideDoc boolean the policy will be updated to if provided. + type: boolean + reportName: + description: The new name of the policy if provided. + type: string + DlpSimpleResult: type: string enum: - - PEOPLE_WITHOUT_MANAGER - - INVALID_ENTITIES - x-speakeasy-enum-descriptions: - PEOPLE_WITHOUT_MANAGER: Returns all people without a manager apart from the requested IDs. - INVALID_ENTITIES: Includes invalid entities in the response if any of the requested IDs are invalid. - source: - type: string - description: A string denoting the search surface from which the endpoint is called. - example: - obfuscatedIds: - - abc123 - - abc456 - PeopleResponse: - properties: - results: - type: array - items: - $ref: "#/components/schemas/Person" - description: A Person for each ID in the request, each with PersonMetadata populated. - relatedDocuments: - type: array - items: - $ref: "#/components/schemas/RelatedDocuments" - description: A list of documents related to this people response. This is only included if DOCUMENT_ACTIVITY is requested and only 1 person is included in the request. - errors: - type: array - items: - type: string - description: A list of IDs that could not be found. - CreateShortcutRequest: - required: - - data - properties: - data: - $ref: "#/components/schemas/ShortcutMutableProperties" - ShortcutError: - properties: - errorType: - type: string - enum: - - NO_PERMISSION - - INVALID_ID - - EXISTING_SHORTCUT - - INVALID_CHARS - CreateShortcutResponse: - properties: - shortcut: - $ref: "#/components/schemas/Shortcut" - error: - $ref: "#/components/schemas/ShortcutError" - DeleteShortcutRequest: - allOf: - - $ref: "#/components/schemas/UserGeneratedContentId" - - type: object - required: - - id - GetShortcutRequest: - oneOf: - - $ref: "#/components/schemas/UserGeneratedContentId" - - type: object - required: - - alias - properties: - alias: - type: string - description: The alias for the shortcut, including any arguments for variable shortcuts. - GetShortcutResponse: - properties: - shortcut: - $ref: "#/components/schemas/Shortcut" - description: Shortcut given the input alias with any provided arguments substituted into the destination URL. - error: - $ref: "#/components/schemas/ShortcutError" - ListShortcutsPaginatedRequest: - required: - - pageSize - properties: - includeFields: - description: Array of fields/data to be included in response that are not included by default - type: array - items: + - SUCCESS + - FAILURE + UpdateDlpReportResponse: + properties: + result: + $ref: "#/components/schemas/DlpSimpleResult" + ListDlpReportsResponse: + properties: + reports: + type: array + items: + $ref: "#/components/schemas/DlpReport" + CreateDlpReportRequest: + properties: + name: + description: Name of the policy being created. + type: string + config: + description: Details on the configuration used in the scans. + $ref: "#/components/schemas/DlpConfig" + frequency: + description: Interval between scans. + $ref: "#/components/schemas/DlpFrequency" + autoHideDocs: + description: Controls whether the policy should hide documents with violations. + type: boolean + CreateDlpReportResponse: + properties: + report: + $ref: "#/components/schemas/DlpReport" + UpdateDlpConfigRequest: + properties: + config: + $ref: "#/components/schemas/DlpConfig" + frequency: + description: Only "ONCE" is supported for reports. + type: string + UpdateDlpConfigResponse: + properties: + result: + $ref: "#/components/schemas/DlpSimpleResult" + reportId: + description: The id of the report that was just created and run. + type: string + ReportStatusResponse: + properties: + status: + type: string + enum: + - PENDING + - SUCCESS + - FAILURE + - CANCELLED + - CANCELLING + - ACTIVE + startTime: + description: The timestamp at which the report's run/scan began. + type: string + format: iso-date-time + DocumentVisibilityOverride: + properties: + docId: + type: string + override: + description: The visibility-override state of the document. + type: string + enum: + - NONE + - HIDE_FROM_ALL + - HIDE_FROM_GROUPS + - HIDE_FROM_ALL_EXCEPT_OWNER + GetDocumentVisibilityOverridesResponse: + properties: + visibilityOverrides: + type: array + items: + $ref: "#/components/schemas/DocumentVisibilityOverride" + UpdateDocumentVisibilityOverridesRequest: + properties: + visibilityOverrides: + type: array + items: + $ref: "#/components/schemas/DocumentVisibilityOverride" + DocumentVisibilityUpdateResult: + allOf: + - $ref: "#/components/schemas/DocumentVisibilityOverride" + - type: object + properties: + success: + description: Whether this document was successfully set to its desired visibility state. + type: boolean + UpdateDocumentVisibilityOverridesResponse: + properties: + results: + description: The documents and whether their visibility was successfully updated. + type: array + items: + $ref: "#/components/schemas/DocumentVisibilityUpdateResult" + DlpSeverity: type: string + description: Severity levels for DLP findings and analyses. + x-include-enum-class-prefix: true enum: - - FACETS - - PEOPLE_DETAILS - pageSize: - type: integer - example: 10 - cursor: - type: string - description: A token specifying the position in the overall results to start at. Received from the endpoint and iterated back. Currently being used as page no (as we implement offset pagination) - filters: - type: array - items: - $ref: "#/components/schemas/FacetFilter" - description: A list of filters for the query. An AND is assumed between different filters. We support filters on Go Link name, author, department and type. - sort: - $ref: "#/components/schemas/SortOptions" - description: Specifies fieldname to sort on and order (ASC|DESC) to sort in - query: - type: string - description: Search query that should be a substring in atleast one of the fields (alias , inputAlias, destinationUrl, description). Empty query does not filter shortcuts. - ShortcutsPaginationMetadata: - properties: - cursor: - type: string - description: Cursor indicates the start of the next page of results - hasNextPage: - type: boolean - totalItemCount: - type: integer - ListShortcutsPaginatedResponse: - required: - - shortcuts - - meta - properties: - shortcuts: - type: array - items: - $ref: "#/components/schemas/Shortcut" - description: List of all shortcuts accessible to the user - facetResults: - type: array - items: - $ref: "#/components/schemas/FacetResult" - meta: - $ref: "#/components/schemas/ShortcutsPaginationMetadata" - description: Contains metadata like total item count and whether next page exists - UpdateShortcutRequest: - allOf: - - $ref: "#/components/schemas/UserGeneratedContentId" - - $ref: "#/components/schemas/ShortcutMutableProperties" - - type: object - required: - - id - UpdateShortcutResponse: - properties: - shortcut: - $ref: "#/components/schemas/Shortcut" - error: - $ref: "#/components/schemas/ShortcutError" - SummarizeRequest: - description: Summary of the document - required: - - documentSpecs - properties: - timestamp: - type: string - description: The ISO 8601 timestamp associated with the client request. - format: date-time - query: - type: string - description: Optional query that the summary should be about - preferredSummaryLength: - type: integer - description: Optional length of summary output. If not given, defaults to 500 chars. - documentSpecs: - type: array - items: - $ref: "#/components/schemas/DocumentSpec" - description: Specifications of documents to summarize - trackingToken: - type: string - description: An opaque token that represents this particular result. To be used for /feedback reporting. - Summary: - properties: - text: - type: string - followUpPrompts: - type: array - items: - type: string - description: Follow-up prompts based on the summarized doc - SummarizeResponse: - properties: - error: - type: object - properties: - message: - type: string - summary: - $ref: "#/components/schemas/Summary" - trackingToken: - type: string - description: An opaque token that represents this summary in this particular query. To be used for /feedback reporting. - ReminderRequest: - required: - - documentId - properties: - documentId: - type: string - description: The document which the verification is for new reminders and/or update. - assignee: - type: string - description: The obfuscated id of the person this verification is assigned to. - remindInDays: - type: integer - description: Reminder for the next verifications in terms of days. For deletion, this will be omitted. - reason: - type: string - description: An optional free-text reason for the reminder. This is particularly useful when a reminder is used to ask for verification from another user (for example, "Duplicate", "Incomplete", "Incorrect"). - VerificationFeed: - properties: - documents: - type: array - items: - $ref: "#/components/schemas/Verification" - description: List of document infos that include verification related information for them. - VerifyRequest: - required: - - documentId - properties: - documentId: - type: string - description: The document which is verified. - action: - type: string - enum: - - VERIFY - - DEPRECATE - - UNVERIFY - description: The verification action requested. - ToolParameter: - type: object - properties: - type: - type: string - description: Parameter type (string, number, boolean, object, array) - enum: - - string - - number - - boolean - - object - - array - name: - type: string - description: The name of the parameter - description: - type: string - description: The description of the parameter - isRequired: - type: boolean - description: Whether the parameter is required - possibleValues: - type: array - description: The possible values for the parameter. Can contain only primitive values or arrays of primitive values. - items: - type: string - items: - type: object - description: When type is 'array', this describes the structure of the item in the array. - $ref: "#/components/schemas/ToolParameter" - properties: - type: object - description: When type is 'object', this describes the structure of the object. - additionalProperties: - $ref: "#/components/schemas/ToolParameter" - Tool: - type: object - properties: - type: - type: string - description: Type of tool (READ, WRITE) - enum: - - READ - - WRITE - name: - type: string - description: Unique identifier for the tool - displayName: - type: string - description: Human-readable name - description: - type: string - description: LLM friendly description of the tool - parameters: - type: object - description: The parameters for the tool. Each key is the name of the parameter and the value is the parameter object. - additionalProperties: - $ref: "#/components/schemas/ToolParameter" - ToolsListResponse: - type: object - properties: - tools: - type: array - items: - $ref: "#/components/schemas/Tool" - ToolsCallParameter: - type: object - required: - - name - - value - properties: - name: - type: string - description: The name of the parameter - value: - type: string - description: The value of the parameter (for primitive types) - items: - type: array - description: The value of the parameter (for array types) - items: - $ref: "#/components/schemas/ToolsCallParameter" - properties: - type: object - description: The value of the parameter (for object types) - additionalProperties: - $ref: "#/components/schemas/ToolsCallParameter" - ToolsCallRequest: - type: object - required: - - name - - parameters - properties: - name: - type: string - description: Required name of the tool to execute - parameters: - type: object - description: The parameters for the tool. Each key is the name of the parameter and the value is the parameter object. - additionalProperties: - $ref: "#/components/schemas/ToolsCallParameter" - ToolsCallResponse: - type: object - properties: - rawResponse: - additionalProperties: true - type: object - description: The raw response from the tool - error: - type: string - description: The error message if applicable - IndexDocumentRequest: - type: object - properties: - version: - type: integer - format: int64 - description: Version number for document for optimistic concurrency control. If absent or 0 then no version checks are done. - document: - $ref: '#/components/schemas/DocumentDefinition' - description: Document being added/updated - required: - - document - description: Describes the request body of the /indexdocument API call - IndexDocumentsRequest: - type: object - properties: - uploadId: - type: string - description: Optional id parameter to identify and track a batch of documents. - datasource: - type: string - description: Datasource of the documents - documents: - type: array - items: - $ref: '#/components/schemas/DocumentDefinition' - description: Batch of documents being added/updated - required: - - documents - - datasource - description: Describes the request body of the /indexdocuments API call - UpdatePermissionsRequest: - type: object - properties: - datasource: - type: string - objectType: - type: string - description: The type of the document (Case, KnowledgeArticle for Salesforce for example). It cannot have spaces or _ - id: - type: string - description: The datasource specific id for the document. This field is case insensitive and should not be more than 200 characters in length. - viewURL: - type: string - description: | - The permalink for viewing the document. **Note: viewURL is a required field if id was not set when uploading the document.**' - permissions: - $ref: '#/components/schemas/DocumentPermissionsDefinition' - description: The permissions that define who can view this document in the search results. Please refer to [this](https://developers.glean.com/indexing/documents/permissions) for more details. - required: - - permissions - - datasource - description: Describes the request body of the /updatepermissions API call - GetDocumentCountRequest: - type: object - properties: - datasource: - type: string - description: Datasource name for which document count is needed. - required: - - datasource - description: Describes the request body of the /getdocumentcount API call - GetDocumentCountResponse: - type: object - properties: - documentCount: - type: integer - description: Number of documents corresponding to the specified custom datasource. - description: Describes the response body of the /getdocumentcount API call - GetDocumentStatusRequest: - type: object - properties: - datasource: - type: string - description: Datasource to get fetch document status for - objectType: - type: string - description: Object type of the document to get the status for - docId: - type: string - description: Glean Document ID within the datasource to get the status for. - required: - - datasource - - objectType - - docId - description: Describes the request body for /getdocumentstatus API call - GetDocumentStatusResponse: - type: object - properties: - uploadStatus: - type: string - description: Upload status, enum of NOT_UPLOADED, UPLOADED, STATUS_UNKNOWN - lastUploadedAt: - type: integer - format: int64 - description: Time of last successful upload, in epoch seconds - indexingStatus: - type: string - description: Indexing status, enum of NOT_INDEXED, INDEXED, STATUS_UNKNOWN - lastIndexedAt: - type: integer - format: int64 - description: Time of last successful indexing, in epoch seconds - description: Describes the response body of the /getdocumentstatus API call - BulkIndexRequest: - type: object - properties: - uploadId: - type: string - description: Unique id that must be used for this bulk upload instance - isFirstPage: - type: boolean - description: true if this is the first page of the upload. Defaults to false - isLastPage: - type: boolean - description: true if this is the last page of the upload. Defaults to false - forceRestartUpload: - type: boolean - description: Flag to discard previous upload attempts and start from scratch. Must be specified with isFirstPage=true - required: - - uploadId - description: Describes the request body of a bulk upload API call - BulkIndexTeamsRequest: - type: object - allOf: - - $ref: '#/components/schemas/BulkIndexRequest' - - type: object - properties: - teams: - type: array - items: - $ref: '#/components/schemas/TeamInfoDefinition' - description: Batch of team information - required: - - teams - description: Describes the request body of the /bulkindexteams API call - BulkIndexEmployeesRequest: - type: object - allOf: - - $ref: '#/components/schemas/BulkIndexRequest' - - type: object - properties: - employees: - type: array - items: - $ref: '#/components/schemas/EmployeeInfoDefinition' - description: Batch of employee information - disableStaleDataDeletionCheck: - type: boolean - description: True if older employee data needs to be force deleted after the upload completes. Defaults to older data being deleted only if the percentage of data being deleted is less than 20%. This must only be set when `isLastPage = true` - required: - - employees - description: Describes the request body of the /bulkindexemployees API call - BulkIndexDocumentsRequest: - type: object - allOf: - - $ref: '#/components/schemas/BulkIndexRequest' - - type: object - properties: - datasource: - type: string - description: Datasource of the documents - documents: - type: array - items: - $ref: '#/components/schemas/DocumentDefinition' - description: Batch of documents for the datasource - disableStaleDocumentDeletionCheck: - type: boolean - description: True if older documents need to be force deleted after the upload completes. Defaults to older documents being deleted asynchronously. This must only be set when `isLastPage = true` - required: - - datasource - - documents - description: Describes the request body of the /bulkindexdocuments API call - ProcessAllDocumentsRequest: - type: object - properties: - datasource: - type: string - description: If provided, process documents only for this custom datasource. Otherwise all uploaded documents are processed. - description: Describes the request body of the /processalldocuments API call - DeleteDocumentRequest: - type: object - properties: - version: - type: integer - format: int64 - description: Version number for document for optimistic concurrency control. If absent or 0 then no version checks are done. - datasource: - type: string - description: datasource of the document - objectType: - type: string - description: object type of the document - id: - type: string - description: The id of the document - required: - - datasource - - id - - objectType - description: Describes the request body of the /deletedocument API call - IndexUserRequest: - type: object - properties: - version: - type: integer - format: int64 - description: Version number for document for optimistic concurrency control. If absent or 0 then no version checks are done. - datasource: - type: string - description: The datasource for which the user is added - user: - $ref: '#/components/schemas/DatasourceUserDefinition' - description: The user to be added or updated - required: - - datasource - - user - description: Describes the request body of the /indexuser API call - GetUserCountRequest: - type: object - properties: - datasource: - type: string - description: Datasource name for which user count is needed. - required: - - datasource - description: Describes the request body of the /getusercount API call - GetUserCountResponse: - type: object - properties: - userCount: - type: integer - description: Number of users corresponding to the specified custom datasource. - description: Describes the response body of the /getusercount API call - BulkIndexUsersRequest: - type: object - properties: - uploadId: - type: string - description: Unique id that must be used for this instance of datasource users upload - isFirstPage: - type: boolean - description: true if this is the first page of the upload. Defaults to false - isLastPage: - type: boolean - description: true if this is the last page of the upload. Defaults to false - forceRestartUpload: - type: boolean - description: Flag to discard previous upload attempts and start from scratch. Must be specified with isFirstPage=true - datasource: - type: string - description: datasource of the users - users: - type: array - items: - $ref: '#/components/schemas/DatasourceUserDefinition' - description: batch of users for the datasource - disableStaleDataDeletionCheck: - type: boolean - description: True if older user data needs to be force deleted after the upload completes. Defaults to older data being deleted only if the percentage of data being deleted is less than a reasonable threshold. This must only be set when `isLastPage = true` - required: - - uploadId - - datasource - - users - description: Describes the request body for the /bulkindexusers API call - GreenlistUsersRequest: - type: object - properties: - datasource: - type: string - description: Datasource which needs to be made visible to users specified in the `emails` field. - emails: - type: array - items: - type: string - format: email - description: The emails of the beta users - required: - - datasource - - emails - description: Describes the request body of the /betausers API call - DatasourceUserDefinition: - type: object - properties: - email: - type: string - userId: - type: string - description: To be supplied if the user id in the datasource is not the email - name: - type: string - isActive: - type: boolean - description: set to false if the user is a former employee or a bot - required: - - email - - name - description: describes a user in the datasource - IndexGroupRequest: - type: object - properties: - version: - type: integer - format: int64 - description: Version number for document for optimistic concurrency control. If absent or 0 then no version checks are done. - datasource: - type: string - description: The datasource for which the group is added - group: - $ref: '#/components/schemas/DatasourceGroupDefinition' - description: The group to be added or updated - required: - - datasource - - group - description: Describes the request body of the /indexgroup API call - BulkIndexGroupsRequest: - type: object - properties: - uploadId: - type: string - description: Unique id that must be used for this instance of datasource groups upload - isFirstPage: - type: boolean - description: true if this is the first page of the upload. Defaults to false - isLastPage: - type: boolean - description: true if this is the last page of the upload. Defaults to false - forceRestartUpload: - type: boolean - description: Flag to discard previous upload attempts and start from scratch. Must be specified with isFirstPage=true - datasource: - type: string - description: datasource of the groups - groups: - type: array - items: - $ref: '#/components/schemas/DatasourceGroupDefinition' - description: batch of groups for the datasource - disableStaleDataDeletionCheck: - type: boolean - description: True if older group data needs to be force deleted after the upload completes. Defaults to older data being deleted only if the percentage of data being deleted is less than a reasonable threshold. This must only be set when `isLastPage = true` - required: - - uploadId - - datasource - - groups - description: Describes the request body for the /bulkindexgroups API call - DatasourceGroupDefinition: - type: object - properties: - name: - type: string - description: name of the group. Should be unique among all groups for the datasource, and cannot have spaces. - required: - - name - description: describes a group in the datasource - IndexMembershipRequest: - type: object - properties: - version: - type: integer - format: int64 - description: Version number for document for optimistic concurrency control. If absent or 0 then no version checks are done. - datasource: - type: string - description: The datasource for which the membership is added - membership: - $ref: '#/components/schemas/DatasourceMembershipDefinition' - description: The membership to be added or updated - required: - - datasource - - membership - description: Describes the request body of the /indexmembership API call - BulkIndexMembershipsRequest: - type: object - properties: - uploadId: - type: string - description: Unique id that must be used for this instance of datasource group memberships upload - isFirstPage: - type: boolean - description: true if this is the first page of the upload. Defaults to false - isLastPage: - type: boolean - description: true if this is the last page of the upload. Defaults to false - forceRestartUpload: - type: boolean - description: Flag to discard previous upload attempts and start from scratch. Must be specified with isFirstPage=true - datasource: - type: string - description: datasource of the memberships - group: - type: string - description: group who's memberships are specified - memberships: - type: array - items: - $ref: '#/components/schemas/DatasourceBulkMembershipDefinition' - description: batch of memberships for the group - required: - - uploadId - - datasource - - memberships - description: Describes the request body for the /bulkindexmemberships API call - ProcessAllMembershipsRequest: - type: object - properties: - datasource: - type: string - description: If provided, process group memberships only for this custom datasource. Otherwise all uploaded memberships are processed. - description: Describes the request body of the /processallmemberships API call - DatasourceMembershipDefinition: - type: object - properties: - groupName: - type: string - description: The group for which the membership is specified - memberUserId: - type: string - description: If the member is a user, then the email or datasource id for the user - memberGroupName: - type: string - description: If the member is a group, then the name of the member group - required: - - groupName - description: describes the membership row of a group. Only one of memberUserId and memberGroupName can be specified. - DatasourceBulkMembershipDefinition: - type: object - properties: - memberUserId: - type: string - description: If the member is a user, then the email or datasource id for the user - memberGroupName: - type: string - description: If the member is a group, then the name of the member group - description: describes the membership row of a group in the bulk uploaded. Only one of memberUserId and memberGroupName can be specified. - DeleteUserRequest: - type: object - properties: - version: - type: integer - format: int64 - description: Version number for document for optimistic concurrency control. If absent or 0 then no version checks are done. - datasource: - type: string - description: The datasource for which the user is removed - email: - type: string - description: The email of the user to be deleted - required: - - datasource - - email - description: Describes the request body of the /deleteuser API call - DeleteGroupRequest: - type: object - properties: - version: - type: integer - format: int64 - description: Version number for document for optimistic concurrency control. If absent or 0 then no version checks are done. - datasource: - type: string - description: The datasource for which the group is removed - groupName: - type: string - description: the name of the group to be deleted - required: - - datasource - - groupName - description: Describes the request body of the /deletegroup API call - DeleteMembershipRequest: - type: object - properties: - version: - type: integer - format: int64 - description: Version number for document for optimistic concurrency control. If absent or 0 then no version checks are done. - datasource: - type: string - description: The datasource for which the membership is removed - membership: - $ref: '#/components/schemas/DatasourceMembershipDefinition' - description: the name of the membership to be deleted - required: - - datasource - - membership - description: Describes the request body of the /deletemembership API call - DeleteEmployeeRequest: - type: object - properties: - version: - type: integer - format: int64 - description: Version number for document for optimistic concurrency control. If absent or 0 then no version checks are done. - employeeEmail: - type: string - description: The deleted employee's email - required: - - employeeEmail - description: Describes the request body of the /deleteemployee API call - DeleteTeamRequest: - type: object - properties: - id: - type: string - description: The deleted team's id - required: - - id - description: Describes the request body of the /deleteteam API call - DocumentDefinition: - type: object - properties: - title: - type: string - description: Document title, in plain text, if present. If not present, the title would be attempted to be extracted from the content. - filename: - type: string - description: Source filename, in plain text, for the document. May be used as a fallback title for the document, if the title is not provided and cannot be extracted from the content. Populate this if there is no explicit title for the document and the content is sourced from a file. - container: - type: string - description: The container name for the content (Folder for example for file content). - containerDatasourceId: - type: string - description: This represents the datasource sepcific id of the container. - containerObjectType: - type: string - description: This represents the object type of the container. It cannot have spaces or _ - datasource: - type: string - objectType: - type: string - description: The type of the document (Case, KnowledgeArticle for Salesforce for example). It cannot have spaces or _ - viewURL: - type: string - description: | - The permalink for viewing the document. **Note: viewURL is a required field for non-entity datasources, but not required if the datasource is used to push custom entities (ie. datasources where isEntityDatasource is false).**' - id: - type: string - description: | - The datasource specific id for the document. This field is case insensitive and should not be more than 200 characters in length. Note: id is a required field for datasources created after 1st March 2025 - summary: - $ref: '#/components/schemas/ContentDefinition' - body: - $ref: '#/components/schemas/ContentDefinition' - author: - $ref: '#/components/schemas/UserReferenceDefinition' - owner: - $ref: '#/components/schemas/UserReferenceDefinition' - description: The current owner of the document, if not the author. - permissions: - $ref: '#/components/schemas/DocumentPermissionsDefinition' - description: The permissions that define who can view this document in the search results. Please refer to [this](https://developers.glean.com/indexing/documents/permissions) for more details. - createdAt: - type: integer - format: int64 - description: The creation time, in epoch seconds. - updatedAt: - type: integer - format: int64 - description: The last update time, in epoch seconds. - updatedBy: - $ref: '#/components/schemas/UserReferenceDefinition' - tags: - type: array - items: - type: string - description: Labels associated with the document. - interactions: - $ref: '#/components/schemas/DocumentInteractionsDefinition' - status: - type: string - additionalUrls: - type: array - items: - type: string - description: Additional variations of the URL that this document points to. - comments: - type: array - items: - $ref: '#/components/schemas/CommentDefinition' - description: Comments associated with the document. - customProperties: - type: array - items: - $ref: '#/components/schemas/CustomProperty' - description: Additional metadata properties of the document. These can surface as [facets and operators](https://developers.glean.com/indexing/datasource/custom-properties/operators_and_facets). - required: - - datasource - description: Indexable document structure - CommentDefinition: - type: object - properties: - id: - type: string - description: The document specific id for the comment. This field is case insensitive and should not be more than 200 characters in length. - author: - $ref: '#/components/schemas/UserReferenceDefinition' - description: The author of the comment. - content: - $ref: '#/components/schemas/ContentDefinition' - description: The content of the comment. - createdAt: - type: integer - format: int64 - description: The creation time, in epoch seconds. - updatedAt: - type: integer - format: int64 - description: The last updated time, in epoch seconds. - updatedBy: - $ref: '#/components/schemas/UserReferenceDefinition' - description: The user who last updated the comment. - required: - - id - description: Describes a comment on a document - ContentDefinition: - type: object - properties: - mimeType: - type: string - textContent: - type: string - description: text content. Only one of textContent or binary content can be specified - binaryContent: - type: string - description: base64 encoded binary content. Only one of textContent or binary content can be specified - required: - - mimeType - description: Describes text content or base64 encoded binary content - UserReferenceDefinition: - type: object - properties: - email: - type: string - datasourceUserId: - type: string - description: some datasources refer to the user by the datasource user id in the document - name: - type: string - description: Describes how a user is referenced in a document. The user can be referenced by email or by a datasource specific id. - PermissionsGroupIntersectionDefinition: - type: object - properties: - requiredGroups: - type: array - items: - type: string - description: describes a list of groups that are all required in a permissions constraint - DocumentPermissionsDefinition: - type: object - properties: - allowedUsers: - type: array - items: - $ref: '#/components/schemas/UserReferenceDefinition' - description: List of users who can view the document - allowedGroups: - type: array - items: - type: string - description: List of groups that can view the document - allowedGroupIntersections: - type: array - items: - $ref: '#/components/schemas/PermissionsGroupIntersectionDefinition' - description: List of allowed group intersections. This describes a permissions constraint of the form ((GroupA AND GroupB AND GroupC) OR (GroupX AND GroupY) OR ... - allowAnonymousAccess: - type: boolean - description: If true, then any Glean user can view the document - allowAllDatasourceUsersAccess: - type: boolean - description: If true, then any user who has an account in the datasource can view the document. - description: describes the access control details of the document - DocumentInteractionsDefinition: - type: object - properties: - numViews: - type: integer - numLikes: - type: integer - numComments: - type: integer - description: describes the interactions on the document - CheckDocumentAccessRequest: - type: object - properties: - datasource: - type: string - description: Datasource of document to check access for. - objectType: - type: string - description: Object type of document to check access for. - docId: - type: string - description: Glean Document ID to check access for. - userEmail: - type: string - description: Email of user to check access for. - required: - - datasource - - objectType - - docId - - userEmail - description: Describes the request body of the /checkdocumentaccess API call - CheckDocumentAccessResponse: - type: object - properties: - hasAccess: - type: boolean - description: If true, user has access to document for search - description: Describes the response body of the /checkdocumentaccess API call - CustomProperty: - type: object - properties: - name: - type: string - value: - description: Must either be a string or an array of strings. An integer, boolean, etc. is not valid. When OpenAPI Generator supports `oneOf`, we can semantically enforce this. - description: Describes the custom properties of the object. - DatasourceConfig: - $ref: '#/components/schemas/SharedDatasourceConfig' - GetDatasourceConfigRequest: - type: object - properties: - datasource: - type: string - description: Datasource name for which config is needed. - required: - - datasource - description: Describes the request body of the /getdatasourceconfig API call - DatasourceConfigList: - properties: - datasourceConfig: - type: array - items: - $ref: '#/components/schemas/SharedDatasourceConfig' - description: Datasource configuration. - required: - - datasourceConfig - description: List of datasource configurations. - RotateTokenResponse: - properties: - rawSecret: - type: string - description: New raw secret - createdAt: - type: integer - format: int64 - description: Unix timestamp in seconds when the new secret value is assigned to the token. The token needs to be rotated before `rotationPeriodMinutes` past the createdAt timestamp otherwise it would be rendered unusable. - rotationPeriodMinutes: - type: integer - format: int64 - description: Refers to the time period in minutes before which this token needs to be rotated. It is required to rotate the token within the specified `rotationPeriodMinutes` after each `/rotatetoken` call, otherwise the tokens would expire. Note that the token would still expire at `expiresAt` timestamp provided during token creation even if the token is being regularly rotated. `rotationPeriodMinutes` property is inherited from the parent token being rotated - description: Describes the response body of the /rotatetoken API call - IndexEmployeeRequest: - type: object - properties: - employee: - $ref: '#/components/schemas/EmployeeInfoDefinition' - description: Info about the employee - version: - type: integer - format: int64 - description: Version number for the employee object. If absent or 0 then no version checks are done - required: - - employee - description: Info about an employee and optional version for that info - IndexEmployeeListRequest: - type: object - properties: - employees: - type: array - items: - $ref: '#/components/schemas/IndexEmployeeRequest' - description: List of employee info and version. - description: Describes the request body of the /indexemployeelist API call - SocialNetworkDefinition: - type: object - properties: - name: - type: string - description: Possible values are "twitter", "linkedin". - profileName: - type: string - description: Human-readable profile name. - profileUrl: - type: string - description: Link to profile. - description: Employee's social network profile - AdditionalFieldDefinition: - type: object - properties: - key: - type: string - description: Key to reference this field, e.g. "languages". Note that the key should be all lowercase alphabetic characters with no numbers, spaces, hyphens or underscores. - value: - type: array - items: + - UNSPECIFIED + - LOW + - MEDIUM + - HIGH + TimeRangeFilter: + properties: + timePeriodType: + type: string + description: The type of time period for which to filter findings. + enum: + - PAST_DAY + - PAST_WEEK + - PAST_MONTH + - PAST_YEAR + - CUSTOM + customTimeRange: + $ref: "#/components/schemas/TimeRange" + DlpFindingFilter: + properties: + infoType: + type: string + regexId: + type: string + reportId: + type: string + datasource: + type: string + visibility: + type: string + documentIds: + type: array + items: + type: string + severity: + $ref: "#/components/schemas/DlpSeverity" + documentSeverity: + type: array + items: + $ref: "#/components/schemas/DlpSeverity" + timeRange: + $ref: "#/components/schemas/TimeRangeFilter" + archived: + type: boolean + ExportInfo: + properties: + createdBy: + description: person who triggered this export + $ref: "#/components/schemas/DlpPerson" + startTime: + description: Timestamp at which this export started. + type: string + format: iso-date-time + endTime: + description: Timestamp at which this export completed. + type: string + format: iso-date-time + exportId: + type: string + description: The ID of the export + fileName: + type: string + description: The name of the file to export the findings to + filter: + $ref: "#/components/schemas/DlpFindingFilter" + description: The filters used to export the findings + status: + type: string + description: The status of the export + enum: + - PENDING + - COMPLETED + - FAILED + exportSize: + type: integer + format: int64 + description: The size of the exported file in bytes + ListDlpFindingsExportsResponse: + properties: + exports: + type: array + items: + $ref: "#/components/schemas/ExportInfo" + DlpExportFindingsRequest: + properties: + exportType: + type: string + description: The type of export to perform + enum: + - FINDINGS + - DOCUMENTS + filter: + $ref: "#/components/schemas/DlpFindingFilter" + fileName: + type: string + description: The name of the file to export the findings to + fieldScope: + type: string + description: Controls which fields to include in the export + enum: + - ALL + - EXCLUDE_SENSITIVE + - CUSTOM + fieldsToExclude: + type: array + items: + type: string + description: List of field names to exclude from the export + ConfigurationValue: + description: A single configuration value, either a scalar or a list type: object - description: Either a string or HypertextField. When OpenAPI Generator supports oneOf, we can semantically enforce this in the docs. - description: | - List of type string or HypertextField. - - HypertextField is defined as - ``` - { - anchor: string, // Anchor text for the hypertext field. - hyperlink: string, // URL for the hypertext field. - } - ``` - Example: ```{"anchor":"Glean","hyperlink":"https://glean.com"}``` - - When OpenAPI Generator supports oneOf, we will semantically enforce this in the docs. - - **Note**: If using the Python SDK to pass in a list of strings, the value may need to be a list of dictionaries. In that case, the key in that dictionary will be ignored. - Example: ```"languages": [{"lang":"English","lang":"Spanish",...}]```. In this case, the key "lang" will be ignored and can even be passed in as an empty string. - description: Additional information about the employee or team. - HypertextField: - type: object - properties: - anchor: - type: string - description: Anchor text for the hypertext field. - hyperlink: - type: string - description: URL for the hypertext field. - EmployeeInfoDefinition: - type: object - properties: - email: - type: string - description: The employee's email - firstName: - type: string - description: | - The first name of the employee. **Note**: The value cannot be empty - lastName: - type: string - description: | - The last name of the employee. **Note**: The value cannot be empty - preferredName: - type: string - description: The preferred name or nickname of the employee - id: - type: string - description: | - **[Advanced]** A unique universal internal identifier for the employee. This is solely used for understanding manager relationships along with `managerId`. - phoneNumber: - type: string - description: The employee's phone number. - location: - type: string - description: The employee's location (city/office name etc). - deprecated: true - x-speakeasy-deprecation-message: "Deprecated on 2026-02-05, removal scheduled for 2026-10-15: Field is deprecated" - x-glean-deprecated: - id: a7f6fbaa-0eaf-4c0c-a4f5-ab90347f73fd - introduced: "2026-02-05" - message: Field is deprecated - removal: "2026-10-15" - structuredLocation: - $ref: '#/components/schemas/StructuredLocation' - description: Detailed location with information about country, state, city etc. - title: - type: string - description: The employee's role title. - photoUrl: - type: string - format: uri - description: The employee's profile pic - businessUnit: - type: string - description: Typically the highest level organizational unit; generally applies to bigger companies with multiple distinct businesses. - department: - type: string - description: An organizational unit where everyone has a similar task, e.g. `Engineering`. - datasourceProfiles: - type: array - items: - $ref: '#/components/schemas/DatasourceProfile' - description: The datasource profiles of the employee, e.g. `Slack`,`Github`. - teams: - type: array - items: - $ref: '#/components/schemas/EmployeeTeamInfo' - description: Info about the employee's team(s) - startDate: - type: string - format: date - description: The date when the employee started - endDate: - type: string - format: date - description: If a former employee, the last date of employment. - bio: - type: string - description: Short biography or mission statement of the employee. - pronoun: - type: string - description: She/her, He/his or other pronoun. - alsoKnownAs: - type: array - items: - type: string - description: Other names associated with the employee. - profileUrl: - type: string - description: Link to internal company person profile. - socialNetworks: - type: array - items: - $ref: '#/components/schemas/SocialNetworkDefinition' - description: List of social network profiles. - managerEmail: - type: string - description: The email of the employee's manager - managerId: - type: string - description: | - **[Advanced]** A unique universal internal identifier for the employee's manager. This is solely used in conjunction with `id`. - type: - type: string - description: The type of the employee, an enum of `FULL_TIME`, `CONTRACTOR`, `NON_EMPLOYEE` - default: FULL_TIME - relationships: - type: array - items: - $ref: '#/components/schemas/EntityRelationship' - description: List of unidirectional relationships with other employees. E.g. this employee (`A`) is a CHIEF_OF_STAFF to another employee (`B`); or this employee (`A`) is an EXECUTIVE_ASSISTANT of another employee (`C`). The mapping should be attached to `A`'s profile. - status: - type: string - description: The status of the employee, an enum of `CURRENT`, `FUTURE`, `EX` - default: CURRENT - additionalFields: - type: array - items: - $ref: '#/components/schemas/AdditionalFieldDefinition' - description: List of additional fields with more information about the employee. - required: - - department - - email - description: Describes employee info - EmployeeAndVersionDefinition: - type: object - properties: - employee: - $ref: '#/components/schemas/EmployeeInfoDefinition' - description: Info about the employee - version: - type: integer - format: int64 - description: Version number for the employee object. If absent or 0 then no version checks are done - required: - - info - description: describes info about an employee and optional version for that info - EmployeeTeamInfo: - type: object - properties: - id: - type: string - description: unique identifier for this team - name: - type: string - description: Team name - url: - type: string - format: uri - description: Link to internal company team page - description: Information about which team an employee belongs to - EntityRelationship: - type: object - properties: - name: - type: string - description: The title or type of relationship. Currently an enum of `CHIEF_OF_STAFF`, `EXECUTIVE_ASSISTANT` - email: - type: string - description: Email of the person with whom the relationship exists. Per the example above, either `B` or `C`'s email depending on the relationship. - required: - - name - - email - description: Describes a relationship edge between a source and destination entity - TeamMember: - type: object - properties: - email: - type: string - format: email - description: The member's email - relationship: - type: string - description: The member's relationship to the team, an enum of `MEMBER`, `MANAGER`, `LEAD`, `POINT_OF_CONTACT`, `OTHER` - default: MEMBER - join_date: - type: string - format: date - description: The member's start date - required: - - email - description: Information about a team's member - TeamInfoDefinition: - type: object - properties: - id: - type: string - description: The unique ID of the team - name: - type: string - description: Human-readable team name - description: - type: string - description: The description of this team - businessUnit: - type: string - description: Typically the highest level organizational unit; generally applies to bigger companies with multiple distinct businesses. - department: - type: string - description: An organizational unit where everyone has a similar task, e.g. `Engineering`. - photoUrl: - type: string - format: uri - description: A link to the team's photo - externalLink: - type: string - format: uri - description: | - A link to an external team page. If set, team results will link to it. - emails: - type: array - items: - $ref: '#/components/schemas/TeamEmail' - description: The emails of the team - datasourceProfiles: - type: array - items: - $ref: '#/components/schemas/DatasourceProfile' - description: The datasource profiles of the team, e.g. `Slack`,`Github`. - members: - type: array - items: - $ref: '#/components/schemas/TeamMember' - description: The members of the team - additionalFields: - type: array - items: - $ref: '#/components/schemas/AdditionalFieldDefinition' - description: List of additional fields with more information about the team. - required: - - id - - members - - name - description: Information about an employee's team - IndexTeamRequest: - type: object - properties: - team: - $ref: '#/components/schemas/TeamInfoDefinition' - description: Info about the team - version: - type: integer - format: int64 - description: Version number for the team object. If absent or 0 then no version checks are done - required: - - team - description: Info about a team and optional version for that info - BulkIndexShortcutsRequest: - type: object - allOf: - - $ref: '#/components/schemas/BulkIndexRequest' - - type: object - properties: - shortcuts: - type: array - items: - $ref: '#/components/schemas/ExternalShortcut' - description: Batch of shortcuts information - required: - - shortcuts - description: Describes the request body of the /bulkindexshortcuts API call - UploadShortcutsRequest: - type: object - allOf: - - $ref: '#/components/schemas/BulkIndexRequest' - - type: object - properties: - shortcuts: - type: array - items: - $ref: '#/components/schemas/IndexingShortcut' - description: Batch of shortcuts information - required: - - shortcuts - description: Describes the request body of the /uploadshortcuts API call - DebugDatasourceStatusResponse: - type: object - properties: - documents: - type: object - properties: - bulkUploadHistory: - $ref: '#/components/schemas/BulkUploadHistoryEventList' - type: object - counts: - type: object - properties: - uploaded: - type: array - items: - $ref: '#/components/schemas/DatasourceObjectTypeDocumentCountEntry' - description: | - A list of object types and corresponding upload counts. Note: This data may be cached and could be up to 3 hours stale. - indexed: - type: array - items: - $ref: '#/components/schemas/DatasourceObjectTypeDocumentCountEntry' - description: The number of documents indexed, grouped by objectType - processingHistory: - $ref: '#/components/schemas/ProcessingHistoryEventList' - identity: - type: object - properties: - processingHistory: - $ref: '#/components/schemas/ProcessingHistoryEventList' - users: - $ref: '#/components/schemas/DebugDatasourceStatusIdentityResponseComponent' - groups: - $ref: '#/components/schemas/DebugDatasourceStatusIdentityResponseComponent' - memberships: - $ref: '#/components/schemas/DebugDatasourceStatusIdentityResponseComponent' - datasourceVisibility: - type: string - enum: - - ENABLED_FOR_ALL - - ENABLED_FOR_TEST_GROUP - - NOT_ENABLED - description: The visibility of the datasource, an enum of VISIBLE_TO_ALL, VISIBLE_TO_TEST_GROUP, NOT_VISIBLE - example: ENABLED_FOR_ALL - description: Describes the response body of the /debug/{datasource}/status API call - DebugDatasourceStatusIdentityResponseComponent: - type: object - properties: - bulkUploadHistory: - $ref: '#/components/schemas/BulkUploadHistoryEventList' - type: object - counts: - type: object - properties: - uploaded: - type: integer - description: The number of users/groups/memberships uploaded - example: 15 - DatasourceObjectTypeDocumentCountEntry: - type: object - properties: - objectType: - type: string - description: The object type of the document - example: Article - count: - type: integer - description: The number of documents of the corresponding objectType - example: 15 - BulkUploadHistoryEvent: - type: object - properties: - uploadId: - type: string - description: The unique ID of the upload - example: upload-id-content-1707403081 - startTime: - type: string - description: The start time of the upload in ISO 8601 format - example: "2021-08-06T17:58:01.000Z" - endTime: - type: string - description: The end time of the upload in ISO 8601 format, 'NA' if the upload is still active - example: "2021-08-06T18:58:01.000Z" - status: - type: string - enum: - - ACTIVE - - SUCCESSFUL - description: The status of the upload, an enum of ACTIVE, SUCCESSFUL - example: SUCCESSFUL - processingState: - type: string - enum: - - UNAVAILABLE - - UPLOAD STARTED - - UPLOAD IN PROGRESS - - UPLOAD COMPLETED - - DELETION PAUSED - - INDEXING COMPLETED - description: The current state of the upload, an enum of UNAVAILABLE, UPLOAD STARTED, UPLOAD IN PROGRESS, UPLOAD COMPLETED, DELETION PAUSED, INDEXING COMPLETED - example: UPLOAD COMPLETED - description: Information about a successful bulk upload - BulkUploadHistoryEventList: - type: array - items: - $ref: '#/components/schemas/BulkUploadHistoryEvent' - description: Information about active and recent successful uploads for the datasource - DebugDocumentRequest: - type: object - properties: - objectType: - type: string - description: Object type of the document to get the status for. - example: Article - docId: - type: string - description: Glean Document ID within the datasource to get the status for. - example: art123 - required: - - objectType - - docId - description: Describes the request body of the /debug/{datasource}/document API call. - DebugDocumentResponse: - type: object - properties: - status: - $ref: '#/components/schemas/DocumentStatusResponse' - type: object - description: Upload and indexing status of the document - uploadedPermissions: - $ref: '#/components/schemas/DocumentPermissionsDefinition' - description: Describes the response body of the /debug/{datasource}/document API call - DebugDocumentsRequest: - type: object - properties: - debugDocuments: - type: array - items: - $ref: '#/components/schemas/DebugDocumentRequest' - description: Documents to fetch debug information for - required: - - debugDocuments - description: Describes the request body of the /debug/{datasource}/documents API call. - DebugDocumentsResponseItem: - type: object - properties: - docId: - type: string - description: Id of the document - objectType: - type: string - description: objectType of the document - debugInfo: - $ref: '#/components/schemas/DebugDocumentResponse' - type: object - description: Debug information of the document - description: Describes the response body of a single document in the /debug/{datasource}/documents API call - DebugDocumentsResponse: - type: object - properties: - documentStatuses: - type: array - items: - $ref: '#/components/schemas/DebugDocumentsResponseItem' - description: List of document ids/urls and their debug information - description: Describes the response body of a single document in the /debug/{datasource}/documents API call - DocumentStatusResponse: - type: object - properties: - uploadStatus: - type: string - description: Upload status, enum of NOT_UPLOADED, UPLOADED, STATUS_UNKNOWN - example: UPLOADED - lastUploadedAt: - type: string - description: Time of last successful upload for the document, in ISO 8601 format - example: "2021-08-06T17:58:01.000Z" - indexingStatus: - type: string - description: Indexing status, enum of NOT_INDEXED, INDEXED, STATUS_UNKNOWN - example: INDEXED - lastIndexedAt: - type: string - description: Time of last successful indexing for the document, in ISO 8601 format - example: "2021-08-06T17:58:01.000Z" - permissionIdentityStatus: - type: string - description: Permission identity status, enum of NOT_UPLOADED, UPLOADED, STATUS_UNKNOWN (Always unknown if `identityDatasourceName` is set). Document visibility may be affected status is `NOT_UPLOADED`. - example: UPLOADED - description: Describes the document status response body - LifeCycleEvent: - type: object - properties: - event: - type: string - enum: - - UPLOADED - - INDEXED - - DELETION_REQUESTED - - DELETED - description: Type of event - example: INDEXED - timestamp: - type: string - description: Timestamp of the event - example: "2021-08-06T17:58:01.000Z" - ProcessingHistoryEvent: - type: object - properties: - startTime: - type: string - description: The start time of the processing in ISO 8601 format - example: "2021-08-06T17:58:01.000Z" - endTime: - type: string - description: The end time of the processing in ISO 8601 format, 'NA' if still in progress - example: "2021-08-06T18:58:01.000Z" - description: Processing history event for a datasource - ProcessingHistoryEventList: - type: array - items: - $ref: '#/components/schemas/ProcessingHistoryEvent' - description: Information about processing history for the datasource - DebugUserRequest: - type: object - properties: - email: - type: string - description: Email ID of the user to get the status for - example: u1@foo.com - required: - - email - description: Describes the request body of the /debug/{datasource}/user API call - DebugUserResponse: - type: object - properties: - status: - $ref: '#/components/schemas/UserStatusResponse' - type: object - description: Upload and indexing status of the user - uploadedGroups: - type: array - items: - $ref: '#/components/schemas/DatasourceGroupDefinition' - description: List of groups the user is a member of, as uploaded via permissions API. - description: Describes the response body of the /debug/{datasource}/user API call - UserStatusResponse: - type: object - properties: - isActiveUser: - type: boolean - description: Whether the user is active or not - example: true - uploadStatus: - $ref: '#/components/schemas/UploadStatusEnum' - lastUploadedAt: - type: string - description: Time of last successful upload for the user, in ISO 8601 format - example: "2021-08-06T17:58:01.000Z" - description: Describes the user status response body - UploadStatusEnum: - type: string - enum: - - UPLOADED - - NOT_UPLOADED - - STATUS_UNKNOWN - description: Upload status, enum of NOT_UPLOADED, UPLOADED, STATUS_UNKNOWN - example: UPLOADED - DebugDocumentLifecycleRequest: - type: object - properties: - objectType: - type: string - description: Object type of the document to get lifecycle events for. - example: Article - docId: - type: string - description: Glean Document ID within the datasource to get lifecycle events for. - example: art123 - startDate: - type: string - description: The start date for events to be fetched. Cannot be more than 30 days (default 7 days) in the past. - example: "2025-05-01" - maxEvents: - type: integer - description: Max number of events to be fetched. Cannot be more than 100 (default 20). - example: 50 - required: - - objectType - - docId - description: Describes the request body of the /debug/{datasource}/document/events API call. - DebugDocumentLifecycleResponse: - type: object - properties: - lifeCycleEvents: - type: array - items: - $ref: '#/components/schemas/LifeCycleEvent' - description: List of lifecycle events corresponding to the document - description: Describes the response body of the /debug/{datasource}/document/events API call - SuccessResponse: - type: object - properties: - success: - type: boolean - description: Indicates if the operation was successful - default: true - description: Success response for custom metadata operations - ErrorInfoResponse: - type: object - properties: - error: - type: string - description: Error message describing what went wrong - message: - type: string - description: Additional details about the error - required: - - error - description: Error response for custom metadata operations - PropertyDefinition: - properties: - name: - type: string - description: The name of the property in the `DocumentMetadata` (e.g. 'createTime', 'updateTime', 'author', 'container'). In the future, this will support custom properties too. - displayLabel: - type: string - description: The user friendly label for the property. - displayLabelPlural: - type: string - description: The user friendly label for the property that will be used if a plural context. - propertyType: - type: string - enum: - - TEXT - - DATE - - INT - - USERID - - PICKLIST - - TEXTLIST - - MULTIPICKLIST - description: The type of custom property - this governs the search and faceting behavior. Note that MULTIPICKLIST is not yet supported. - uiOptions: - type: string - enum: - - NONE - - SEARCH_RESULT - - DOC_HOVERCARD - hideUiFacet: - type: boolean - description: If true then the property will not show up as a facet in the UI. - uiFacetOrder: - type: integer - description: Will be used to set the order of facets in the UI, if present. If set for one facet, must be set for all non-hidden UI facets. Must take on an integer value from 1 (shown at the top) to N (shown last), where N is the number of non-hidden UI facets. These facets will be ordered below the built-in "Type" and "Tag" operators. - skipIndexing: - type: boolean - description: If true then the property will not be indexed for retrieval and ranking. - group: - type: string - description: The unique identifier of the `PropertyGroup` to which this property belongs. - PropertyGroup: - properties: - name: - type: string - description: The unique identifier of the group. - displayLabel: - type: string - description: The user-friendly group label to display. - description: A grouping for multiple PropertyDefinition. Grouped properties will be displayed together in the UI. - ObjectDefinition: - properties: - name: - type: string - description: Unique identifier for this `DocumentMetadata.objectType`. If omitted, this definition is used as a default for all unmatched `DocumentMetadata.objectType`s in this datasource. - displayLabel: - type: string - description: The user-friendly name of the object for display. - docCategory: - type: string - enum: - - UNCATEGORIZED - - TICKETS - - CRM - - PUBLISHED_CONTENT - - COLLABORATIVE_CONTENT - - QUESTION_ANSWER - - MESSAGING - - CODE_REPOSITORY - - CHANGE_MANAGEMENT - - PEOPLE - - EMAIL - - SSO - - ATS - - KNOWLEDGE_HUB - - EXTERNAL_SHORTCUT - - ENTITY - - CALENDAR - - AGENTS - description: The document category of this object type. - propertyDefinitions: - type: array - items: - $ref: '#/components/schemas/PropertyDefinition' - propertyGroups: - type: array - items: - $ref: '#/components/schemas/PropertyGroup' - description: A list of `PropertyGroup`s belonging to this object type, which will group properties to be displayed together in the UI. - summarizable: - type: boolean - description: Whether or not the object is summarizable - description: The definition for an `DocumentMetadata.objectType` within a datasource. - CanonicalizingRegexType: - properties: - matchRegex: - type: string - description: Regular expression to match to an arbitrary string. - rewriteRegex: - type: string - description: Regular expression to transform into a canonical string. - description: Regular expression to apply to an arbitrary string to transform it into a canonical string. - SharedDatasourceConfigNoInstance: - type: object - properties: - name: - type: string - description: Unique identifier of datasource instance to which this config applies. - displayName: - type: string - description: The user-friendly instance label to display. If omitted, falls back to the title-cased `name`. - datasourceCategory: - type: string - enum: - - UNCATEGORIZED - - TICKETS - - CRM - - PUBLISHED_CONTENT - - COLLABORATIVE_CONTENT - - QUESTION_ANSWER - - MESSAGING - - CODE_REPOSITORY - - CHANGE_MANAGEMENT - - PEOPLE - - EMAIL - - SSO - - ATS - - KNOWLEDGE_HUB - - EXTERNAL_SHORTCUT - - ENTITY - - CALENDAR - - AGENTS - 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. - default: UNCATEGORIZED - urlRegex: - type: string - description: 'Regular expression that matches URLs of documents of the datasource instance. The behavior for multiple matches is non-deterministic. **Note: `urlRegex` is a required field for non-entity datasources, but not required if the datasource is used to push custom entities (ie. datasources where isEntityDatasource is false). Please add a regex as specific as possible to this datasource instance.**' - example: https://example-company.datasource.com/.* - iconUrl: - type: string - description: The URL to an image to be displayed as an icon for this datasource instance. Must have a transparency mask. SVG are recommended over PNG. Public, scio-authenticated and Base64 encoded data URLs are all valid (but not third-party-authenticated URLs). - objectDefinitions: - type: array - items: - $ref: '#/components/schemas/ObjectDefinition' - description: The list of top-level `objectType`s for the datasource. - suggestionText: - type: string - description: Example text for what to search for in this datasource - homeUrl: - type: string - description: The URL of the landing page for this datasource instance. Should point to the most useful page for users, not the company marketing page. - crawlerSeedUrls: - type: array - items: - type: string - description: This only applies to WEB_CRAWL and BROWSER_CRAWL datasources. Defines the seed URLs for crawling. - iconDarkUrl: - type: string - description: The URL to an image to be displayed as an icon for this datasource instance in dark mode. Must have a transparency mask. SVG are recommended over PNG. Public, scio-authenticated and Base64 encoded data URLs are all valid (but not third-party-authenticated URLs). - hideBuiltInFacets: - type: array - items: - type: string - enum: - - TYPE - - TAG - - AUTHOR - - OWNER - description: List of built-in facet types that should be hidden for the datasource. - canonicalizingURLRegex: - type: array - items: - $ref: '#/components/schemas/CanonicalizingRegexType' - description: A list of regular expressions to apply to an arbitrary URL to transform it into a canonical URL for this datasource instance. Regexes are to be applied in the order specified in this list. - canonicalizingTitleRegex: - type: array - items: - $ref: '#/components/schemas/CanonicalizingRegexType' - description: A list of regular expressions to apply to an arbitrary title to transform it into a title that will be displayed in the search results - redlistTitleRegex: - type: string - description: A regex that identifies titles that should not be indexed - connectorType: - type: string - allOf: - - $ref: '#/components/schemas/ConnectorType' - deprecated: false - quicklinks: - type: array - items: - $ref: '#/components/schemas/Quicklink' - description: List of actions for this datasource instance that will show up in autocomplete and app card, e.g. "Create new issue" for jira - renderConfigPreset: - type: string - description: The name of a render config to use for displaying results from this datasource. Any well known datasource name may be used to render the same as that source, e.g. `web` or `gdrive`. Please refer to [this](https://developers.glean.com/docs/rendering_search_results/) for more details - aliases: - type: array - items: - type: string - description: Aliases that can be used as `app` operator-values. - isOnPrem: - type: boolean - description: Whether or not this datasource is hosted on-premise. - trustUrlRegexForViewActivity: - type: boolean - description: True if browser activity is able to report the correct URL for VIEW events. Set this to true if the URLs reported by Chrome are constant throughout each page load. Set this to false if the page has Javascript that modifies the URL during or after the load. - default: true - includeUtmSource: - type: boolean - description: If true, a utm_source query param will be added to outbound links to this datasource within Glean. - stripFragmentInCanonicalUrl: - type: boolean - description: If true, the fragment part of the URL will be stripped when converting to a canonical url. - default: true - required: - - name - description: Structure describing shared config properties of a datasource with no multi-instance support. - CustomDatasourceConfig: - allOf: - - $ref: '#/components/schemas/SharedDatasourceConfigNoInstance' - - type: object - properties: - identityDatasourceName: - type: string - description: If the datasource uses another datasource for identity info, then the name of the datasource. The identity datasource must exist already and the datasource with identity info should have its visibility enabled for search results. - productAccessGroup: - type: string - description: If the datasource uses a specific product access group, then the name of that group. - isUserReferencedByEmail: - type: boolean - description: whether email is used to reference users in document ACLs and in group memberships. - isEntityDatasource: - type: boolean - description: True if this datasource is used to push custom entities. - default: false - isTestDatasource: - type: boolean - description: True if this datasource will be used for testing purpose only. Documents from such a datasource wouldn't have any effect on search rankings. - default: false - description: Structure describing config properties of a custom datasource - ShortcutProperties: - properties: - inputAlias: - type: string - description: link text following the viewPrefix as entered by the user. For example, if the view prefix is `go/` and the shortened URL is `go/abc`, then `abc` is the inputAlias. - description: - type: string - description: A short, plain text blurb to help people understand the intent of the shortcut. - destinationUrl: - type: string - format: url - description: destination URL for the shortcut. - createdBy: - type: string - description: Email of the user who created this shortcut. - createTime: - type: integer - format: int64 - description: The time the shortcut was created in epoch seconds. - updatedBy: - type: string - description: Email of the user who last updated this shortcut. - updateTime: - type: integer - format: int64 - description: The time the shortcut was updated in epoch seconds. - ExternalShortcut: - allOf: - - $ref: '#/components/schemas/ShortcutProperties' - - type: object - required: - - destinationUrl - - intermediateUrl - - createdBy - - inputAlias - properties: - title: - type: string - description: Title of the golink - intermediateUrl: - type: string - format: url - description: The URL from which the user is then redirected to the destination URL. - decayedVisitScore: - type: number - format: double - description: decayed visits score for ranking - editUrl: - type: string - format: url - description: The URL using which the user can access the edit page of the shortcut. - SharedDatasourceConfig: - allOf: - - $ref: '#/components/schemas/SharedDatasourceConfigNoInstance' - - type: object - properties: - datasourceName: - type: string - description: The (non-unique) name of the datasource of which this config is an instance, e.g. "jira". - instanceOnlyName: - type: string - description: The instance of the datasource for this particular config, e.g. "onprem". - instanceDescription: - type: string - description: A human readable string identifying this instance as compared to its peers, e.g. "github.com/askscio" or "github.askscio.com" - description: Structure describing shared config properties of the datasource (including multi-instance support) - IndexingShortcut: - allOf: - - $ref: '#/components/schemas/ShortcutProperties' - - type: object - required: - - destinationUrl - - createdBy - - inputAlias - properties: - unlisted: - type: boolean - description: Whether this shortcut is unlisted or not. Unlisted shortcuts are visible to author and admins only. - urlTemplate: - type: string - description: For variable shortcuts, contains the URL template; note, `destinationUrl` contains default URL. - SensitiveInfoType: - properties: - likelihoodThreshold: - type: string - enum: - - LIKELY - - VERY_LIKELY - - POSSIBLE - - UNLIKELY - - VERY_UNLIKELY - deprecated: true - x-speakeasy-deprecation-message: "Deprecated on 2026-02-05, removal scheduled for 2026-10-15: Field is deprecated" - x-glean-deprecated: - - id: d45039ec-d6f6-47ba-93b7-ab2307b07f84 - introduced: "2026-02-05" - kind: property - message: Field is deprecated - removal: "2026-10-15" - infoType: - type: string - description: Text representation of an info-type to scan for. - TimeRange: - properties: - startTime: - type: string - format: date-time - description: start time of the time range, applicable for the CUSTOM type. - endTime: - type: string - format: date-time - description: end time of the time range, applicable for the CUSTOM type. - lastNDaysValue: - type: integer - format: int64 - description: The number of days to look back from the current time, applicable for the LAST_N_DAYS type. - InputOptions: - properties: - urlGreenlist: - type: array - items: - type: string - description: list of url regex matching documents excluded from report - deprecated: true - x-speakeasy-deprecation-message: "Deprecated on 2026-02-05, removal scheduled for 2026-10-15: Field is deprecated" - x-glean-deprecated: - id: e022aaa5-56e6-4b57-bca3-b11943da76a0 - introduced: "2026-02-05" - message: Field is deprecated - removal: "2026-10-15" - datasourcesType: - type: string - enum: - - ALL - - CUSTOM - description: The types of datasource for which to run the report/policy. - datasources: - type: array - items: - type: string - description: List of datasources to consider for report. DEPRECATED - use datasourceInstances instead. - deprecated: true - x-speakeasy-deprecation-message: "Deprecated on 2026-02-05, removal scheduled for 2026-10-15: Use datasourceInstances instead" - x-glean-deprecated: - id: 97e35970-e0ed-4248-be13-2af8c22e7894 - introduced: "2026-02-05" - message: Use datasourceInstances instead - removal: "2026-10-15" - datasourceInstances: - type: array - items: - type: string - description: List of datasource instances to consider for report/policy. - timePeriodType: - type: string - enum: - - ALL_TIME - - PAST_YEAR - - PAST_DAY - - CUSTOM - - LAST_N_DAYS - description: Type of time period for which to run the report/policy. PAST_DAY is deprecated. - customTimeRange: - $ref: '#/components/schemas/TimeRange' - subsetDocIdsToScan: - type: array - items: - type: string - description: Subset of document IDs to scan. If empty, all documents matching other scope criteria will be scanned. - description: Controls which data-sources and what time-range to include in scans. - SharingOptions: - properties: - enabled: - type: boolean - deprecated: true - x-speakeasy-deprecation-message: "Deprecated on 2026-02-05, removal scheduled for 2026-10-15: Field is deprecated" - x-glean-deprecated: - id: e9260be6-209b-4ce2-a4b3-f7f22879dd86 - introduced: "2026-02-05" - message: Field is deprecated - removal: "2026-10-15" - threshold: - type: integer - description: The minimum number of users the document is shared with. - thresholdEnabled: - type: boolean - description: Documents will be filtered based on how many people have access to it. - anyoneWithLinkEnabled: - type: boolean - deprecated: true - x-speakeasy-deprecation-message: "Deprecated on 2026-02-05, removal scheduled for 2026-10-15: Field is deprecated" - x-glean-deprecated: - id: 30646ced-e0db-43ef-8412-64a67c5d0f53 - introduced: "2026-02-05" - message: Field is deprecated - removal: "2026-10-15" - anyoneInternalEnabled: - type: boolean - description: Only users within the organization can access the document. - anonymousAccessEnabled: - type: boolean - description: Anyone on the internet can access the document. - userAccessEnabled: - type: boolean - description: Enable user access check - userIds: - type: array - items: - type: string - description: Any one of the specified users can access the document. - description: Controls how "shared" a document must be to get picked for scans. - ExternalSharingOptions: - allOf: - - description: DEPRECATED - use `broadSharingOptions` instead. - - $ref: '#/components/schemas/SharingOptions' - - type: object - properties: - domainAccessEnabled: - type: boolean - deprecated: true - x-speakeasy-deprecation-message: "Deprecated on 2026-02-05, removal scheduled for 2026-10-15: Use broadSharingOptions instead" - x-glean-deprecated: - id: 7c9e4a1d-3f8b-4e2c-9a5d-6b0f1c8e2d4a - introduced: "2026-02-05" - message: Use broadSharingOptions instead - removal: "2026-10-15" - HotwordProximity: - properties: - windowBefore: - type: integer - windowAfter: - type: integer - Hotword: - properties: - regex: - type: string - proximity: - $ref: '#/components/schemas/HotwordProximity' - SensitiveExpression: - properties: - expression: - type: string - description: Sensitive word, phrase, or regular expression. - hotwords: - type: array - items: - $ref: '#/components/schemas/Hotword' - description: Zero to three proximate regular expressions necessary to consider an expression as sensitive content. - CustomSensitiveRuleType: - type: string - enum: - - REGEX - - TERM - - INFO_TYPE - description: Type of the custom sensitive rule. - CustomSensitiveRule: - properties: - id: - type: string - description: Identifier for the custom sensitive expression. - value: - type: string - description: The value of the custom sensitive rule. For REGEX type, this is the regex pattern; for TERM type, it is the term to match; and for INFO_TYPE type, it refers to predefined categories of sensitive content. See https://cloud.google.com/dlp/docs/infotypes-reference for available options. - type: - $ref: '#/components/schemas/CustomSensitiveRuleType' - likelihoodThreshold: - type: string - enum: - - LIKELY - - VERY_LIKELY - - POSSIBLE - - UNLIKELY - - VERY_UNLIKELY - description: Likelihood threshold for BUILT_IN infotypes (e.g., LIKELY, VERY_LIKELY). Only applicable for BUILT_IN type. - CustomSensitiveExpression: - properties: - id: - type: string - description: Identifier for the custom sensitive expression. - keyword: - $ref: '#/components/schemas/CustomSensitiveRule' - description: The keyword to match against. - evaluationExpression: - type: string - description: The expression to evaluate the keyword match. - SensitiveContentOptions: - properties: - sensitiveInfoTypes: - type: array - items: - $ref: '#/components/schemas/SensitiveInfoType' - description: DEPRECATED - use 'customSensitiveExpressions' instead. - deprecated: true - x-speakeasy-deprecation-message: "Deprecated on 2026-02-05, removal scheduled for 2026-10-15: Use customSensitiveExpressions instead" - x-glean-deprecated: - id: 3497cb1c-f7aa-42d8-81b8-309c3adeed84 - introduced: "2026-02-05" - message: Use customSensitiveExpressions instead - removal: "2026-10-15" - sensitiveTerms: - type: array - items: - $ref: '#/components/schemas/SensitiveExpression' - description: DEPRECATED - use 'customSensitiveExpressions' instead. - deprecated: true - x-speakeasy-deprecation-message: "Deprecated on 2026-02-05, removal scheduled for 2026-10-15: Use customSensitiveExpressions instead" - x-glean-deprecated: - id: b0713b37-472e-4c29-80ba-6f5d6f2b449c - introduced: "2026-02-05" - message: Use customSensitiveExpressions instead - removal: "2026-10-15" - sensitiveRegexes: - type: array - items: - $ref: '#/components/schemas/SensitiveExpression' - description: DEPRECATED - use 'customSensitiveExpressions' instead. - deprecated: true - x-speakeasy-deprecation-message: "Deprecated on 2026-02-05, removal scheduled for 2026-10-15: Use customSensitiveExpressions instead" - x-glean-deprecated: - id: a26e1920-36b6-4c0f-981f-57b09a9ebce3 - introduced: "2026-02-05" - message: Use customSensitiveExpressions instead - removal: "2026-10-15" - customSensitiveExpressions: - type: array - items: - $ref: '#/components/schemas/CustomSensitiveExpression' - description: list of custom sensitive expressions to consider as sensitive content - description: Options for defining sensitive content within scanned documents. - DlpPersonMetadata: - properties: - firstName: - type: string - description: The first name of the person - email: - type: string - description: The user's primary email address - DlpPerson: - properties: - name: - type: string - description: The display name. - obfuscatedId: - type: string - description: An opaque identifier that can be used to request metadata for a Person. - metadata: - $ref: '#/components/schemas/DlpPersonMetadata' - required: - - name - - obfuscatedId - description: Details about the person who created this report/policy. - AllowlistOptions: - properties: - terms: - type: array - items: - type: string - description: list of words and phrases to consider as whitelisted content - 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. - DlpConfig: - properties: - version: - type: integer - format: int64 - description: Synonymous with report/policy id. - sensitiveInfoTypes: - type: array - items: - $ref: '#/components/schemas/SensitiveInfoType' - description: DEPRECATED - use `sensitiveContentOptions` instead. - deprecated: true - x-speakeasy-deprecation-message: "Deprecated on 2026-02-05, removal scheduled for 2026-10-15: Use sensitiveContentOptions instead" - x-glean-deprecated: - id: 60d6d182-e9d0-448d-af75-137f68bbdcbf - introduced: "2026-02-05" - message: Use sensitiveContentOptions instead - removal: "2026-10-15" - inputOptions: - $ref: '#/components/schemas/InputOptions' - description: Options for documents to include or exclude in a report - externalSharingOptions: - $ref: '#/components/schemas/ExternalSharingOptions' - description: DEPRECATED - use `broadSharingOptions` instead. - deprecated: true - x-speakeasy-deprecation-message: "Deprecated on 2026-02-05, removal scheduled for 2026-10-15: Use broadSharingOptions instead" - x-glean-deprecated: - id: 6484ec17-a133-4176-b2ce-28e25b0e9065 - introduced: "2026-02-05" - message: Use broadSharingOptions instead - removal: "2026-10-15" - broadSharingOptions: - $ref: '#/components/schemas/SharingOptions' - description: Options for defining documents to scan for sensitive content. - sensitiveContentOptions: - $ref: '#/components/schemas/SensitiveContentOptions' - description: Options for defining sensitive content within scanned documents. - reportName: - type: string - frequency: - type: string - description: Interval between scans. - createdBy: - $ref: '#/components/schemas/DlpPerson' - description: Person who created this report/policy. - createdAt: - type: string - format: iso-date-time - description: Timestamp at which this configuration was created. - redactQuote: - type: boolean - description: redact quote in findings of the report - autoHideDocs: - type: boolean - description: auto hide documents with findings in the report - allowlistOptions: - $ref: '#/components/schemas/AllowlistOptions' - description: Options for defining whitelisting content within scanned documents - description: Detailed configuration of what documents and sensitive content will be scanned. - DlpFrequency: - type: string - enum: - - ONCE - - DAILY - - WEEKLY - - CONTINUOUS - - NONE - description: Interval between scans. DAILY is deprecated. - x-include-enum-class-prefix: true - DlpReportStatus: - type: string - enum: - - ACTIVE - - INACTIVE - - CANCELLED - - NONE - description: The status of the policy/report. Only ACTIVE status will be picked for scans. - x-include-enum-class-prefix: true - DlpReport: - properties: - id: - type: string - name: - type: string - config: - $ref: '#/components/schemas/DlpConfig' - description: All details of the policy that is needed for a scan. - frequency: - $ref: '#/components/schemas/DlpFrequency' - description: The interval between scans. - status: - $ref: '#/components/schemas/DlpReportStatus' - description: The status of the policy. - createdBy: - $ref: '#/components/schemas/DlpPerson' - description: Person who created this report. - createdAt: - type: string - format: iso-date-time - description: Timestamp at which the policy was created. - lastUpdatedAt: - type: string - format: iso-date-time - description: Timestamp at which the policy was last updated. - autoHideDocs: - type: boolean - description: Auto hide documents with findings in the policy. - lastScanStatus: - type: string - enum: - - PENDING - - SUCCESS - - FAILURE - - CANCELLED - - CANCELLING - - ACTIVE - lastScanStartTime: - type: string - format: iso-date-time - description: The timestamp at which the report's last run/scan began. - updatedBy: - $ref: '#/components/schemas/DlpPerson' - description: Person who last updated this report. - description: Full policy information that will be used for scans. - GetDlpReportResponse: - properties: - report: - $ref: '#/components/schemas/DlpReport' - UpdateDlpReportRequest: - properties: - config: - $ref: '#/components/schemas/DlpConfig' - description: The new configuration the policy will follow if provided. - frequency: - $ref: '#/components/schemas/DlpFrequency' - description: The new frequency the policy will follow if provided. - status: - $ref: '#/components/schemas/DlpReportStatus' - description: The new status the policy will be updated to if provided. - autoHideDocs: - type: boolean - description: The new autoHideDoc boolean the policy will be updated to if provided. - reportName: - type: string - description: The new name of the policy if provided. - DlpSimpleResult: - type: string - enum: - - SUCCESS - - FAILURE - UpdateDlpReportResponse: - properties: - result: - $ref: '#/components/schemas/DlpSimpleResult' - ListDlpReportsResponse: - properties: - reports: - type: array - items: - $ref: '#/components/schemas/DlpReport' - CreateDlpReportRequest: - properties: - name: - type: string - description: Name of the policy being created. - config: - $ref: '#/components/schemas/DlpConfig' - description: Details on the configuration used in the scans. - frequency: - $ref: '#/components/schemas/DlpFrequency' - description: Interval between scans. - autoHideDocs: - type: boolean - description: Controls whether the policy should hide documents with violations. - CreateDlpReportResponse: - properties: - report: - $ref: '#/components/schemas/DlpReport' - UpdateDlpConfigRequest: - properties: - config: - $ref: '#/components/schemas/DlpConfig' - frequency: - type: string - description: Only "ONCE" is supported for reports. - UpdateDlpConfigResponse: - properties: - result: - $ref: '#/components/schemas/DlpSimpleResult' - reportId: - type: string - description: The id of the report that was just created and run. - ReportStatusResponse: - properties: - status: - type: string - enum: - - PENDING - - SUCCESS - - FAILURE - - CANCELLED - - CANCELLING - - ACTIVE - startTime: - type: string - format: iso-date-time - description: The timestamp at which the report's run/scan began. - DocumentVisibilityOverride: - properties: - docId: - type: string - override: - type: string - enum: - - NONE - - HIDE_FROM_ALL - - HIDE_FROM_GROUPS - - HIDE_FROM_ALL_EXCEPT_OWNER - description: The visibility-override state of the document. - GetDocumentVisibilityOverridesResponse: - properties: - visibilityOverrides: - type: array - items: - $ref: '#/components/schemas/DocumentVisibilityOverride' - UpdateDocumentVisibilityOverridesRequest: - properties: - visibilityOverrides: - type: array - items: - $ref: '#/components/schemas/DocumentVisibilityOverride' - DocumentVisibilityUpdateResult: - allOf: - - $ref: '#/components/schemas/DocumentVisibilityOverride' - - type: object - properties: - success: - type: boolean - description: Whether this document was successfully set to its desired visibility state. - UpdateDocumentVisibilityOverridesResponse: - properties: - results: - type: array - items: - $ref: '#/components/schemas/DocumentVisibilityUpdateResult' - description: The documents and whether their visibility was successfully updated. - DlpSeverity: - type: string - enum: - - UNSPECIFIED - - LOW - - MEDIUM - - HIGH - description: Severity levels for DLP findings and analyses. - x-include-enum-class-prefix: true - TimeRangeFilter: - properties: - timePeriodType: - type: string - enum: - - PAST_DAY - - PAST_WEEK - - PAST_MONTH - - PAST_YEAR - - CUSTOM - description: The type of time period for which to filter findings. - customTimeRange: - $ref: '#/components/schemas/TimeRange' - DlpFindingFilter: - properties: - infoType: - type: string - regexId: - type: string - reportId: - type: string - datasource: - type: string - visibility: - type: string - documentIds: - type: array - items: - type: string - severity: - $ref: '#/components/schemas/DlpSeverity' - documentSeverity: - type: array - items: - $ref: '#/components/schemas/DlpSeverity' - timeRange: - $ref: '#/components/schemas/TimeRangeFilter' - archived: - type: boolean - ExportInfo: - properties: - createdBy: - $ref: '#/components/schemas/DlpPerson' - description: person who triggered this export - startTime: - type: string - format: iso-date-time - description: Timestamp at which this export started. - endTime: - type: string - format: iso-date-time - description: Timestamp at which this export completed. - exportId: - type: string - description: The ID of the export - fileName: - type: string - description: The name of the file to export the findings to - filter: - $ref: '#/components/schemas/DlpFindingFilter' - description: The filters used to export the findings - status: - type: string - enum: - - PENDING - - COMPLETED - - FAILED - description: The status of the export - exportSize: - type: integer - format: int64 - description: The size of the exported file in bytes - ListDlpFindingsExportsResponse: - properties: - exports: - type: array - items: - $ref: '#/components/schemas/ExportInfo' - DlpExportFindingsRequest: - properties: - exportType: - type: string - enum: - - FINDINGS - - DOCUMENTS - description: The type of export to perform - filter: - $ref: '#/components/schemas/DlpFindingFilter' - fileName: - type: string - description: The name of the file to export the findings to - fieldScope: - type: string - enum: - - ALL - - EXCLUDE_SENSITIVE - - CUSTOM - description: Controls which fields to include in the export - fieldsToExclude: - type: array - items: - type: string - description: List of field names to exclude from the export - ChatRequestStream: - required: - - messages - properties: - saveChat: - type: boolean - description: >- - Save the current interaction as a Chat for the user to access and potentially continue later. - 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. - messages: - type: array - description: >- - A list of chat messages, from most recent to least recent. It can be assumed that the first chat message in the list is the user's most recent query. - items: - $ref: '#/components/schemas/ChatMessage' - 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. - exclusions: - $ref: '#/components/schemas/ChatRestrictionFilters' - description: >- - A list of filters which disallows chat from accessing certain content. If content is in both inclusions and exclusions, it'll be excluded. - timeoutMillis: - type: integer - description: >- - Timeout in milliseconds for the request. A `408` error will be returned if handling the request takes longer. - example: 30000 - applicationId: - type: string - description: >- - The ID of the application this request originates from, used to determine the configuration of underlying chat processes. This should correspond to the ID set during admin setup. If not specified, the default chat experience will be used. - stream: - type: boolean - description: >- - If set, response lines will be streamed one-by-one as they become available. Each will be a ChatResponse, formatted as JSON, and separated by a new line. If false, the entire response will be returned at once. Note that if this is set and the model being used does not support streaming, the model's response will not be streamed, but other messages from the endpoint still will be. - default: true - parameters: - locale: - name: locale - in: query - description: The client's preferred locale in rfc5646 format (e.g. `en`, `ja`, `pt-BR`). If omitted, the `Accept-Language` will be used. If not present or not supported, defaults to the closest match or `en`. - required: false - schema: - type: string - timezoneOffset: - name: timezoneOffset - in: query - description: The offset of the client's timezone in minutes from UTC. e.g. PDT is -420 because it's 7 hours behind UTC. - schema: - type: integer - responses: - SuccessResponse: - description: OK - content: - application/json: - schema: - $ref: '#/components/schemas/SuccessResponse' - BadRequestError: - description: Bad Request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorInfoResponse' - UnauthorizedError: - description: Not Authorized - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorInfoResponse' - NotFoundError: - description: Not Found - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorInfoResponse' - TooManyRequestsError: - description: Too Many Requests - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorInfoResponse' - InternalServerError: - description: Internal Server Error - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorInfoResponse' + properties: + value: + description: The configuration value as a string. Only one of value or valueList should be populated. + type: string + valueList: + description: The configuration value as a list of strings. Only one of value or valueList should be populated. + type: array + items: + type: string + ConfigurationValues: + description: A map from configuration key names to their values + type: object + additionalProperties: + $ref: "#/components/schemas/ConfigurationValue" + DatasourceInstanceConfiguration: + description: Configuration for a datasource instance + type: object + required: + - values + properties: + values: + $ref: "#/components/schemas/ConfigurationValues" + DatasourceConfigurationResponse: + description: | + The greenlisted configuration values for a datasource instance. Only keys that are exposed via the public API greenlist are included. + type: object + required: + - configuration + properties: + configuration: + $ref: "#/components/schemas/DatasourceInstanceConfiguration" + UpdateDatasourceConfigurationRequest: + description: | + Request to update greenlisted configuration values for a datasource instance. Only keys that are exposed via the public API greenlist may be set. + type: object + required: + - configuration + properties: + configuration: + $ref: "#/components/schemas/DatasourceInstanceConfiguration" + ChatRequestStream: + required: + - messages + properties: + saveChat: + type: boolean + description: >- + Save the current interaction as a Chat for the user to access and potentially continue later. + 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. + messages: + type: array + description: >- + A list of chat messages, from most recent to least recent. It can be assumed that the first chat message in the list is the user's most recent query. + items: + $ref: '#/components/schemas/ChatMessage' + 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. + exclusions: + $ref: '#/components/schemas/ChatRestrictionFilters' + description: >- + A list of filters which disallows chat from accessing certain content. If content is in both inclusions and exclusions, it'll be excluded. + timeoutMillis: + type: integer + description: >- + Timeout in milliseconds for the request. A `408` error will be returned if handling the request takes longer. + example: 30000 + applicationId: + type: string + description: >- + The ID of the application this request originates from, used to determine the configuration of underlying chat processes. This should correspond to the ID set during admin setup. If not specified, the default chat experience will be used. + stream: + type: boolean + description: >- + If set, response lines will be streamed one-by-one as they become available. Each will be a ChatResponse, formatted as JSON, and separated by a new line. If false, the entire response will be returned at once. Note that if this is set and the model being used does not support streaming, the model's response will not be streamed, but other messages from the endpoint still will be. + default: true + parameters: + locale: + name: locale + in: query + description: The client's preferred locale in rfc5646 format (e.g. `en`, `ja`, `pt-BR`). If omitted, the `Accept-Language` will be used. If not present or not supported, defaults to the closest match or `en`. + required: false + schema: + type: string + timezoneOffset: + name: timezoneOffset + in: query + description: The offset of the client's timezone in minutes from UTC. e.g. PDT is -420 because it's 7 hours behind UTC. + schema: + type: integer + datasourceId: + name: datasourceId + in: path + description: The datasource type identifier (e.g. o365sharepoint) + required: true + schema: + type: string + example: o365sharepoint + instanceId: + name: instanceId + in: path + description: The datasource instance identifier + required: true + schema: + type: string + example: o365sharepoint_abc123 + responses: + SuccessResponse: + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/SuccessResponse" + BadRequestError: + description: Bad Request + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorInfoResponse" + UnauthorizedError: + description: Not Authorized + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorInfoResponse" + NotFoundError: + description: Not Found + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorInfoResponse" + TooManyRequestsError: + description: Too Many Requests + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorInfoResponse" + InternalServerError: + description: Internal Server Error + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorInfoResponse" x-tagGroups: - - name: Search & Generative AI - tags: - - Chat - - Search - - Summarize - - Tools - - name: Connected Content - tags: - - Calendar - - Documents - - Entities - - Messages - - name: User Generated Content - tags: - - Announcements - - Answers - - Collections - - Displayable Lists - - Images - - Pins - - Shortcuts - - Verification - - name: General - tags: - - Activity - - Authentication - - Insights - - User + - name: Search & Generative AI + tags: + - Chat + - Search + - Summarize + - Tools + - name: Connected Content + tags: + - Calendar + - Documents + - Entities + - Messages + - name: User Generated Content + tags: + - Announcements + - Answers + - Collections + - Displayable Lists + - Images + - Pins + - Shortcuts + - Verification + - name: General + tags: + - Activity + - Authentication + - Insights + - User tags: - - name: Datasources - description: Manage datasources. - - name: Documents - description: Index documents from a datasource. - - name: People - description: Index employee people data. - - name: Permissions - description: Manage users, groups and membership. - - name: Authentication - description: Manage indexing API tokens. + - name: Datasources + description: Manage datasources. + - name: Documents + description: Index documents from a datasource. + - name: People + description: Index employee people data. + - name: Permissions + description: Manage users, groups and membership. + - name: Authentication + description: Manage indexing API tokens. diff --git a/.speakeasy/tests.arazzo.yaml b/.speakeasy/tests.arazzo.yaml index 4494b3be..e0928b37 100644 --- a/.speakeasy/tests.arazzo.yaml +++ b/.speakeasy/tests.arazzo.yaml @@ -158449,3 +158449,48 @@ workflows: type: simple x-speakeasy-test-group: Authentication x-speakeasy-test-rebuild: true + - workflowId: getDatasourceInstanceConfiguration + steps: + - stepId: test + operationId: getDatasourceInstanceConfiguration + parameters: + - name: datasourceId + in: path + value: o365sharepoint + - name: instanceId + in: path + value: o365sharepoint_abc123 + successCriteria: + - condition: $statusCode == 200 + - condition: $response.header.Content-Type == application/json + - context: $response.body + condition: | + {"configuration":{"values":{"key":{}}}} + type: simple + x-speakeasy-test-group: Datasources + x-speakeasy-test-rebuild: true + - workflowId: updateDatasourceInstanceConfiguration + steps: + - stepId: test + operationId: updateDatasourceInstanceConfiguration + parameters: + - name: datasourceId + in: path + value: o365sharepoint + - name: instanceId + in: path + value: o365sharepoint_abc123 + requestBody: + contentType: application/json + payload: + configuration: + values: {} + successCriteria: + - condition: $statusCode == 200 + - condition: $response.header.Content-Type == application/json + - context: $response.body + condition: | + {"configuration":{"values":{}}} + type: simple + x-speakeasy-test-group: Datasources + x-speakeasy-test-rebuild: true diff --git a/.speakeasy/workflow.lock b/.speakeasy/workflow.lock index a38a230a..f18cd9d5 100644 --- a/.speakeasy/workflow.lock +++ b/.speakeasy/workflow.lock @@ -1,12 +1,12 @@ -speakeasyVersion: 1.722.7 +speakeasyVersion: 1.729.0 sources: Glean API: sourceNamespace: glean-api-specs - sourceRevisionDigest: sha256:8b912e61e9727548c1e231c33a1cab5988630896d3c81639fe9b2961c8656d94 - sourceBlobDigest: sha256:079082f8fabe8221e1d14af242c72c22efa7be6626969593ccebcd74d19c3c80 + sourceRevisionDigest: sha256:8d30adc5ad4ba33255b680d0428e316b639b4b715a01eab73f8ecf4fcefb95b2 + sourceBlobDigest: sha256:e57e2ec262ef28e5ba7cc324f41cc60a7bf61ca813d0e3afd86285095a85ba3a tags: - latest - - speakeasy-sdk-regen-1771525162 + - speakeasy-sdk-regen-1771639536 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:8b912e61e9727548c1e231c33a1cab5988630896d3c81639fe9b2961c8656d94 - sourceBlobDigest: sha256:079082f8fabe8221e1d14af242c72c22efa7be6626969593ccebcd74d19c3c80 + sourceRevisionDigest: sha256:8d30adc5ad4ba33255b680d0428e316b639b4b715a01eab73f8ecf4fcefb95b2 + sourceBlobDigest: sha256:e57e2ec262ef28e5ba7cc324f41cc60a7bf61ca813d0e3afd86285095a85ba3a codeSamplesNamespace: glean-api-specs-python-code-samples - codeSamplesRevisionDigest: sha256:07c1eebc0272335ffeb2b98c0b094c73bfefcf74858173515c00c683b16702f6 + codeSamplesRevisionDigest: sha256:6d90f2a18ec8e38c09e2cca697ce65cd5d1a6730c207dc72ac4f8e2240a23193 workflow: workflowVersion: 1.0.0 speakeasyVersion: latest diff --git a/README.md b/README.md index 0e9dcb12..38913b04 100644 --- a/README.md +++ b/README.md @@ -470,6 +470,11 @@ For more information on obtaining the appropriate token type, please contact you * [list](docs/sdks/clientverification/README.md#list) - List verifications * [verify](docs/sdks/clientverification/README.md#verify) - Update verification +### [Datasources](docs/sdks/datasources/README.md) + +* [get_datasource_instance_configuration](docs/sdks/datasources/README.md#get_datasource_instance_configuration) - Get datasource instance configuration +* [update_datasource_instance_configuration](docs/sdks/datasources/README.md#update_datasource_instance_configuration) - Update datasource instance configuration + ### [Governance](docs/sdks/governance/README.md) * [createfindingsexport](docs/sdks/governance/README.md#createfindingsexport) - Creates findings export @@ -486,10 +491,10 @@ For more information on obtaining the appropriate token type, please contact you * [status](docs/sdks/indexingdatasource/README.md#status) - Beta: Get datasource status -### [Indexing.Datasources](docs/sdks/datasources/README.md) +### [Indexing.Datasources](docs/sdks/indexingdatasources/README.md) -* [add](docs/sdks/datasources/README.md#add) - Add or update datasource -* [retrieve_config](docs/sdks/datasources/README.md#retrieve_config) - Get datasource config +* [add](docs/sdks/indexingdatasources/README.md#add) - Add or update datasource +* [retrieve_config](docs/sdks/indexingdatasources/README.md#retrieve_config) - Get datasource config ### [Indexing.Documents](docs/sdks/indexingdocuments/README.md) @@ -512,7 +517,7 @@ For more information on obtaining the appropriate token type, please contact you * [~~count~~](docs/sdks/people/README.md#count) - Get user count :warning: **Deprecated** * [index](docs/sdks/people/README.md#index) - Index employee -* [bulk_index](docs/sdks/people/README.md#bulk_index) - Bulk index employees +* [~~bulk_index~~](docs/sdks/people/README.md#bulk_index) - Bulk index employees :warning: **Deprecated** * [process_all_employees_and_teams](docs/sdks/people/README.md#process_all_employees_and_teams) - Schedules the processing of uploaded employees and teams * [delete](docs/sdks/people/README.md#delete) - Delete employee * [index_team](docs/sdks/people/README.md#index_team) - Index team diff --git a/RELEASES.md b/RELEASES.md index 4bd4269a..d78be210 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -588,4 +588,14 @@ Based on: ### Generated - [python v0.12.8] . ### Releases -- [PyPI v0.12.8] https://pypi.org/project/glean-api-client/0.12.8 - . \ No newline at end of file +- [PyPI v0.12.8] https://pypi.org/project/glean-api-client/0.12.8 - . + +## 2026-02-25 18:13:04 +### Changes +Based on: +- OpenAPI Doc +- Speakeasy CLI 1.729.0 (2.841.0) https://github.com/speakeasy-api/speakeasy +### Generated +- [python v0.12.9] . +### Releases +- [PyPI v0.12.9] https://pypi.org/project/glean-api-client/0.12.9 - . \ No newline at end of file diff --git a/docs/errors/errorresponse.md b/docs/errors/errorresponse.md new file mode 100644 index 00000000..7ac30077 --- /dev/null +++ b/docs/errors/errorresponse.md @@ -0,0 +1,10 @@ +# ErrorResponse + +Error response returned for failed requests + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------ | ------------------------------------------------------ | ------------------------------------------------------ | ------------------------------------------------------ | +| `message` | *Optional[str]* | :heavy_minus_sign: | Client-facing error message describing what went wrong | \ No newline at end of file diff --git a/docs/errors/gleandataerror.md b/docs/errors/gleandataerror.md index 4ea69fbe..7c4c0d90 100644 --- a/docs/errors/gleandataerror.md +++ b/docs/errors/gleandataerror.md @@ -3,11 +3,10 @@ ## Fields -| Field | Type | Required | Description | -| ----------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | -| `bad_gmail_token` | *Optional[bool]* | :heavy_minus_sign: | Indicates the gmail results could not be fetched due to bad token. | -| `bad_outlook_token` | *Optional[bool]* | :heavy_minus_sign: | Indicates the outlook results could not be fetched due to bad token. | -| `invalid_operators` | List[[models.InvalidOperatorValueError](../models/invalidoperatorvalueerror.md)] | :heavy_minus_sign: | Indicates results could not be fetched due to invalid operators in the query. | -| `error_messages` | List[[models.ErrorMessage](../models/errormessage.md)] | :heavy_minus_sign: | N/A | -| `federated_search_rate_limit_error` | *Optional[bool]* | :heavy_minus_sign: | Indicates the federated search results could not be fetched due to rate limiting. | -| `unauthorized_datasource_instances` | List[[models.UnauthorizedDatasourceInstance](../models/unauthorizeddatasourceinstance.md)] | :heavy_minus_sign: | Datasource instances that could not be queried because the user has not completed or has expired per-user OAuth.
| \ No newline at end of file +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | +| `bad_gmail_token` | *Optional[bool]* | :heavy_minus_sign: | Indicates the gmail results could not be fetched due to bad token. | +| `bad_outlook_token` | *Optional[bool]* | :heavy_minus_sign: | Indicates the outlook results could not be fetched due to bad token. | +| `invalid_operators` | List[[models.InvalidOperatorValueError](../models/invalidoperatorvalueerror.md)] | :heavy_minus_sign: | Indicates results could not be fetched due to invalid operators in the query. | +| `error_messages` | List[[models.ErrorMessage](../models/errormessage.md)] | :heavy_minus_sign: | N/A | +| `federated_search_rate_limit_error` | *Optional[bool]* | :heavy_minus_sign: | Indicates the federated search results could not be fetched due to rate limiting. | \ No newline at end of file diff --git a/docs/models/actionsummary.md b/docs/models/actionsummary.md index 3bf02ee0..853df19f 100644 --- a/docs/models/actionsummary.md +++ b/docs/models/actionsummary.md @@ -5,7 +5,12 @@ Represents a minimal summary of an action. ## Fields -| Field | Type | Required | Description | -| ------------------------------------ | ------------------------------------ | ------------------------------------ | ------------------------------------ | -| `tool_id` | *str* | :heavy_check_mark: | The unique identifier of the action. | -| `display_name` | *str* | :heavy_check_mark: | The display name of the action. | \ No newline at end of file +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `tool_id` | *str* | :heavy_check_mark: | The unique identifier of the action. | +| `display_name` | *str* | :heavy_check_mark: | The display name of the action. | +| `type` | *Optional[str]* | :heavy_minus_sign: | The type of tool - RETRIEVAL for read-only operations, ACTION for operations that modify data. | +| `auth_type` | *Optional[str]* | :heavy_minus_sign: | The authentication type required - OAUTH_USER, OAUTH_ADMIN, API_KEY, BASIC_AUTH, DWD (domain-wide delegation), or NONE. | +| `write_action_type` | *Optional[str]* | :heavy_minus_sign: | For write actions only - REDIRECT (client renders URL) or EXECUTION (external server call). | +| `is_setup_finished` | *Optional[bool]* | :heavy_minus_sign: | Whether this action has been fully configured and validated. | +| `data_source` | *Optional[str]* | :heavy_minus_sign: | Indicates the kind of knowledge a tool would access or modify.
Company knowledge:
- Glean search, and any native tools that derive from it (e.g., expert search, code search)
- Native federated tools to company data sources (e.g., outlook search)
World knowledge:
- Native tools that bring in public content (e.g., web browser)
- Platform action like bingwebsearch, geminiwebsearch, etc
Neutral knowledge:
- Native tools that don't access or modify content via APIs (e.g., file analyst, think)
- Platform read or write tools (creator has to determine their knowledge implications)
| \ No newline at end of file diff --git a/docs/models/chatresponse.md b/docs/models/chatresponse.md index 0ea540ed..c1e42aeb 100644 --- a/docs/models/chatresponse.md +++ b/docs/models/chatresponse.md @@ -5,11 +5,10 @@ A single response from the /chat backend. ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `messages` | List[[models.ChatMessage](../models/chatmessage.md)] | :heavy_minus_sign: | N/A | | -| `chat_id` | *Optional[str]* | :heavy_minus_sign: | The id of the associated Chat the messages belong to, if one exists. | | -| `follow_up_prompts` | List[*str*] | :heavy_minus_sign: | Follow-up prompts for the user to potentially use | | -| `backend_time_millis` | *Optional[int]* | :heavy_minus_sign: | Time in milliseconds the backend took to respond to the request. | 1100 | -| `chat_session_tracking_token` | *Optional[str]* | :heavy_minus_sign: | A token that is used to track the session. | | -| `unauthorized_datasource_instances` | List[[models.UnauthorizedDatasourceInstance](../models/unauthorizeddatasourceinstance.md)] | :heavy_minus_sign: | Datasource instances that could not be queried because the user has not completed or has expired per-user OAuth, aggregated across all tools invoked in this turn.
| | \ No newline at end of file +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | +| `messages` | List[[models.ChatMessage](../models/chatmessage.md)] | :heavy_minus_sign: | N/A | | +| `chat_id` | *Optional[str]* | :heavy_minus_sign: | The id of the associated Chat the messages belong to, if one exists. | | +| `follow_up_prompts` | List[*str*] | :heavy_minus_sign: | Follow-up prompts for the user to potentially use | | +| `backend_time_millis` | *Optional[int]* | :heavy_minus_sign: | Time in milliseconds the backend took to respond to the request. | 1100 | +| `chat_session_tracking_token` | *Optional[str]* | :heavy_minus_sign: | A token that is used to track the session. | | \ No newline at end of file diff --git a/docs/models/configurationvalue.md b/docs/models/configurationvalue.md new file mode 100644 index 00000000..aea215fe --- /dev/null +++ b/docs/models/configurationvalue.md @@ -0,0 +1,11 @@ +# ConfigurationValue + +A single configuration value, either a scalar or a list + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | +| `value` | *Optional[str]* | :heavy_minus_sign: | The configuration value as a string. Only one of value or valueList should be populated. | +| `value_list` | List[*str*] | :heavy_minus_sign: | The configuration value as a list of strings. Only one of value or valueList should be populated. | \ No newline at end of file diff --git a/docs/models/datasourceconfigurationresponse.md b/docs/models/datasourceconfigurationresponse.md new file mode 100644 index 00000000..ba3be132 --- /dev/null +++ b/docs/models/datasourceconfigurationresponse.md @@ -0,0 +1,11 @@ +# DatasourceConfigurationResponse + +The greenlisted configuration values for a datasource instance. Only keys that are exposed via the public API greenlist are included. + + + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | +| `configuration` | [models.DatasourceInstanceConfiguration](../models/datasourceinstanceconfiguration.md) | :heavy_check_mark: | Configuration for a datasource instance | \ No newline at end of file diff --git a/docs/models/datasourceinstanceconfiguration.md b/docs/models/datasourceinstanceconfiguration.md new file mode 100644 index 00000000..4aa3cb98 --- /dev/null +++ b/docs/models/datasourceinstanceconfiguration.md @@ -0,0 +1,10 @@ +# DatasourceInstanceConfiguration + +Configuration for a datasource instance + + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | +| `values` | Dict[str, [models.ConfigurationValue](../models/configurationvalue.md)] | :heavy_check_mark: | A map from configuration key names to their values | \ No newline at end of file diff --git a/docs/models/getdatasourceinstanceconfigurationrequest.md b/docs/models/getdatasourceinstanceconfigurationrequest.md new file mode 100644 index 00000000..949f49d1 --- /dev/null +++ b/docs/models/getdatasourceinstanceconfigurationrequest.md @@ -0,0 +1,9 @@ +# GetDatasourceInstanceConfigurationRequest + + +## Fields + +| Field | Type | Required | Description | Example | +| ---------------------------------------------------- | ---------------------------------------------------- | ---------------------------------------------------- | ---------------------------------------------------- | ---------------------------------------------------- | +| `datasource_id` | *str* | :heavy_check_mark: | The datasource type identifier (e.g. o365sharepoint) | o365sharepoint | +| `instance_id` | *str* | :heavy_check_mark: | The datasource instance identifier | o365sharepoint_abc123 | \ No newline at end of file diff --git a/docs/models/gleandataerror.md b/docs/models/gleandataerror.md index 4ea69fbe..7c4c0d90 100644 --- a/docs/models/gleandataerror.md +++ b/docs/models/gleandataerror.md @@ -3,11 +3,10 @@ ## Fields -| Field | Type | Required | Description | -| ----------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | -| `bad_gmail_token` | *Optional[bool]* | :heavy_minus_sign: | Indicates the gmail results could not be fetched due to bad token. | -| `bad_outlook_token` | *Optional[bool]* | :heavy_minus_sign: | Indicates the outlook results could not be fetched due to bad token. | -| `invalid_operators` | List[[models.InvalidOperatorValueError](../models/invalidoperatorvalueerror.md)] | :heavy_minus_sign: | Indicates results could not be fetched due to invalid operators in the query. | -| `error_messages` | List[[models.ErrorMessage](../models/errormessage.md)] | :heavy_minus_sign: | N/A | -| `federated_search_rate_limit_error` | *Optional[bool]* | :heavy_minus_sign: | Indicates the federated search results could not be fetched due to rate limiting. | -| `unauthorized_datasource_instances` | List[[models.UnauthorizedDatasourceInstance](../models/unauthorizeddatasourceinstance.md)] | :heavy_minus_sign: | Datasource instances that could not be queried because the user has not completed or has expired per-user OAuth.
| \ No newline at end of file +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | +| `bad_gmail_token` | *Optional[bool]* | :heavy_minus_sign: | Indicates the gmail results could not be fetched due to bad token. | +| `bad_outlook_token` | *Optional[bool]* | :heavy_minus_sign: | Indicates the outlook results could not be fetched due to bad token. | +| `invalid_operators` | List[[models.InvalidOperatorValueError](../models/invalidoperatorvalueerror.md)] | :heavy_minus_sign: | Indicates results could not be fetched due to invalid operators in the query. | +| `error_messages` | List[[models.ErrorMessage](../models/errormessage.md)] | :heavy_minus_sign: | N/A | +| `federated_search_rate_limit_error` | *Optional[bool]* | :heavy_minus_sign: | Indicates the federated search results could not be fetched due to rate limiting. | \ No newline at end of file diff --git a/docs/models/inviteinfo.md b/docs/models/inviteinfo.md index e929b033..62732992 100644 --- a/docs/models/inviteinfo.md +++ b/docs/models/inviteinfo.md @@ -10,5 +10,5 @@ Information regarding the invite status of a person. | `sign_up_time` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_minus_sign: | The time this person signed up in ISO format (ISO 8601). | | | `invites` | List[[models.ChannelInviteInfo](../models/channelinviteinfo.md)] | :heavy_minus_sign: | Latest invites received by the user for each channel | | | `inviter` | [Optional[models.Person]](../models/person.md) | :heavy_minus_sign: | N/A | {
"name": "George Clooney",
"obfuscatedId": "abc123"
} | -| ~~`invite_time`~~ | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_minus_sign: | : warning: ** DEPRECATED **: This will be removed in a future release, please migrate away from it as soon as possible.

The time this person was invited in ISO format (ISO 8601). | | -| ~~`reminder_time`~~ | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_minus_sign: | : warning: ** DEPRECATED **: This will be removed in a future release, please migrate away from it as soon as possible.

The time this person was reminded in ISO format (ISO 8601) if a reminder was sent. | | \ No newline at end of file +| ~~`invite_time`~~ | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_minus_sign: | : warning: ** DEPRECATED **: Deprecated on 2026-02-05, removal scheduled for 2026-10-15: Use ChannelInviteInfo instead.

The time this person was invited in ISO format (ISO 8601). | | +| ~~`reminder_time`~~ | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_minus_sign: | : warning: ** DEPRECATED **: Deprecated on 2026-02-05, removal scheduled for 2026-10-15: Use ChannelInviteInfo instead.

The time this person was reminded in ISO format (ISO 8601) if a reminder was sent. | | \ No newline at end of file diff --git a/docs/models/updatedatasourceconfigurationrequest.md b/docs/models/updatedatasourceconfigurationrequest.md new file mode 100644 index 00000000..938e8f1b --- /dev/null +++ b/docs/models/updatedatasourceconfigurationrequest.md @@ -0,0 +1,11 @@ +# UpdateDatasourceConfigurationRequest + +Request to update greenlisted configuration values for a datasource instance. Only keys that are exposed via the public API greenlist may be set. + + + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | +| `configuration` | [models.DatasourceInstanceConfiguration](../models/datasourceinstanceconfiguration.md) | :heavy_check_mark: | Configuration for a datasource instance | \ No newline at end of file diff --git a/docs/models/updatedatasourceinstanceconfigurationrequest.md b/docs/models/updatedatasourceinstanceconfigurationrequest.md new file mode 100644 index 00000000..50e0f667 --- /dev/null +++ b/docs/models/updatedatasourceinstanceconfigurationrequest.md @@ -0,0 +1,10 @@ +# UpdateDatasourceInstanceConfigurationRequest + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | +| `datasource_id` | *str* | :heavy_check_mark: | The datasource type identifier (e.g. o365sharepoint) | o365sharepoint | +| `instance_id` | *str* | :heavy_check_mark: | The datasource instance identifier | o365sharepoint_abc123 | +| `update_datasource_configuration_request` | [models.UpdateDatasourceConfigurationRequest](../models/updatedatasourceconfigurationrequest.md) | :heavy_check_mark: | N/A | | \ No newline at end of file diff --git a/docs/sdks/agents/README.md b/docs/sdks/agents/README.md index bf4a2db8..2856eeeb 100644 --- a/docs/sdks/agents/README.md +++ b/docs/sdks/agents/README.md @@ -48,9 +48,10 @@ with Glean( ### Errors -| Error Type | Status Code | Content Type | -| ----------------- | ----------------- | ----------------- | -| errors.GleanError | 4XX, 5XX | \*/\* | +| Error Type | Status Code | Content Type | +| -------------------- | -------------------- | -------------------- | +| errors.ErrorResponse | 404 | application/json | +| errors.GleanError | 4XX, 5XX | \*/\* | ## retrieve_schemas @@ -90,9 +91,10 @@ with Glean( ### Errors -| Error Type | Status Code | Content Type | -| ----------------- | ----------------- | ----------------- | -| errors.GleanError | 4XX, 5XX | \*/\* | +| Error Type | Status Code | Content Type | +| -------------------- | -------------------- | -------------------- | +| errors.ErrorResponse | 404, 422 | application/json | +| errors.GleanError | 4XX, 5XX | \*/\* | ## list @@ -130,9 +132,10 @@ with Glean( ### Errors -| Error Type | Status Code | Content Type | -| ----------------- | ----------------- | ----------------- | -| errors.GleanError | 4XX, 5XX | \*/\* | +| Error Type | Status Code | Content Type | +| -------------------- | -------------------- | -------------------- | +| errors.ErrorResponse | 404, 422 | application/json | +| errors.GleanError | 4XX, 5XX | \*/\* | ## run_stream @@ -177,9 +180,10 @@ with Glean( ### Errors -| Error Type | Status Code | Content Type | -| ----------------- | ----------------- | ----------------- | -| errors.GleanError | 4XX, 5XX | \*/\* | +| Error Type | Status Code | Content Type | +| -------------------- | -------------------- | -------------------- | +| errors.ErrorResponse | 404, 409, 422 | application/json | +| errors.GleanError | 4XX, 5XX | \*/\* | ## run diff --git a/docs/sdks/datasources/README.md b/docs/sdks/datasources/README.md index c9f66bdb..03c2257d 100644 --- a/docs/sdks/datasources/README.md +++ b/docs/sdks/datasources/README.md @@ -1,21 +1,24 @@ -# Indexing.Datasources +# Datasources ## Overview +Manage datasources. + ### Available Operations -* [add](#add) - Add or update datasource -* [retrieve_config](#retrieve_config) - Get datasource config +* [get_datasource_instance_configuration](#get_datasource_instance_configuration) - Get datasource instance configuration +* [update_datasource_instance_configuration](#update_datasource_instance_configuration) - Update datasource instance configuration + +## get_datasource_instance_configuration -## add +Gets the greenlisted configuration values for a datasource instance. Returns only configuration keys that are exposed via the public API greenlist. -Add or update a custom datasource and its schema. ### Example Usage - + ```python -from glean.api_client import Glean, models +from glean.api_client import Glean import os @@ -23,67 +26,40 @@ with Glean( api_token=os.getenv("GLEAN_API_TOKEN", ""), ) as glean: - glean.indexing.datasources.add(name="", datasource_category=models.DatasourceCategory.UNCATEGORIZED, url_regex="https://example-company.datasource.com/.*", quicklinks=[ - { - "icon_config": { - "color": "#343CED", - "key": "person_icon", - "icon_type": models.IconType.GLYPH, - "name": "user", - }, - }, - ], trust_url_regex_for_view_activity=True, strip_fragment_in_canonical_url=True, is_entity_datasource=False, is_test_datasource=False) + res = glean.datasources.get_datasource_instance_configuration(datasource_id="o365sharepoint", instance_id="o365sharepoint_abc123") - # Use the SDK ... + # Handle response + print(res) ``` ### Parameters -| Parameter | Type | Required | Description | Example | -| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `name` | *str* | :heavy_check_mark: | Unique identifier of datasource instance to which this config applies. | | -| `display_name` | *Optional[str]* | :heavy_minus_sign: | The user-friendly instance label to display. If omitted, falls back to the title-cased `name`. | | -| `datasource_category` | [Optional[models.DatasourceCategory]](../../models/datasourcecategory.md) | :heavy_minus_sign: | 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. | | -| `url_regex` | *Optional[str]* | :heavy_minus_sign: | Regular expression that matches URLs of documents of the datasource instance. The behavior for multiple matches is non-deterministic. **Note: `urlRegex` is a required field for non-entity datasources, but not required if the datasource is used to push custom entities (ie. datasources where isEntityDatasource is false). Please add a regex as specific as possible to this datasource instance.** | https://example-company.datasource.com/.* | -| `icon_url` | *Optional[str]* | :heavy_minus_sign: | The URL to an image to be displayed as an icon for this datasource instance. Must have a transparency mask. SVG are recommended over PNG. Public, scio-authenticated and Base64 encoded data URLs are all valid (but not third-party-authenticated URLs). | | -| `object_definitions` | List[[models.ObjectDefinition](../../models/objectdefinition.md)] | :heavy_minus_sign: | The list of top-level `objectType`s for the datasource. | | -| `suggestion_text` | *Optional[str]* | :heavy_minus_sign: | Example text for what to search for in this datasource | | -| `home_url` | *Optional[str]* | :heavy_minus_sign: | The URL of the landing page for this datasource instance. Should point to the most useful page for users, not the company marketing page. | | -| `crawler_seed_urls` | List[*str*] | :heavy_minus_sign: | This only applies to WEB_CRAWL and BROWSER_CRAWL datasources. Defines the seed URLs for crawling. | | -| `icon_dark_url` | *Optional[str]* | :heavy_minus_sign: | The URL to an image to be displayed as an icon for this datasource instance in dark mode. Must have a transparency mask. SVG are recommended over PNG. Public, scio-authenticated and Base64 encoded data URLs are all valid (but not third-party-authenticated URLs). | | -| `hide_built_in_facets` | List[[models.HideBuiltInFacet](../../models/hidebuiltinfacet.md)] | :heavy_minus_sign: | List of built-in facet types that should be hidden for the datasource. | | -| `canonicalizing_url_regex` | List[[models.CanonicalizingRegexType](../../models/canonicalizingregextype.md)] | :heavy_minus_sign: | A list of regular expressions to apply to an arbitrary URL to transform it into a canonical URL for this datasource instance. Regexes are to be applied in the order specified in this list. | | -| `canonicalizing_title_regex` | List[[models.CanonicalizingRegexType](../../models/canonicalizingregextype.md)] | :heavy_minus_sign: | A list of regular expressions to apply to an arbitrary title to transform it into a title that will be displayed in the search results | | -| `redlist_title_regex` | *Optional[str]* | :heavy_minus_sign: | A regex that identifies titles that should not be indexed | | -| `connector_type` | [Optional[models.CustomDatasourceConfigConnectorType]](../../models/customdatasourceconfigconnectortype.md) | :heavy_minus_sign: | N/A | | -| `quicklinks` | List[[models.Quicklink](../../models/quicklink.md)] | :heavy_minus_sign: | List of actions for this datasource instance that will show up in autocomplete and app card, e.g. "Create new issue" for jira | | -| `render_config_preset` | *Optional[str]* | :heavy_minus_sign: | The name of a render config to use for displaying results from this datasource. Any well known datasource name may be used to render the same as that source, e.g. `web` or `gdrive`. Please refer to [this](https://developers.glean.com/docs/rendering_search_results/) for more details | | -| `aliases` | List[*str*] | :heavy_minus_sign: | Aliases that can be used as `app` operator-values. | | -| `is_on_prem` | *Optional[bool]* | :heavy_minus_sign: | Whether or not this datasource is hosted on-premise. | | -| `trust_url_regex_for_view_activity` | *Optional[bool]* | :heavy_minus_sign: | True if browser activity is able to report the correct URL for VIEW events. Set this to true if the URLs reported by Chrome are constant throughout each page load. Set this to false if the page has Javascript that modifies the URL during or after the load. | | -| `include_utm_source` | *Optional[bool]* | :heavy_minus_sign: | If true, a utm_source query param will be added to outbound links to this datasource within Glean. | | -| `strip_fragment_in_canonical_url` | *Optional[bool]* | :heavy_minus_sign: | If true, the fragment part of the URL will be stripped when converting to a canonical url. | | -| `identity_datasource_name` | *Optional[str]* | :heavy_minus_sign: | If the datasource uses another datasource for identity info, then the name of the datasource. The identity datasource must exist already and the datasource with identity info should have its visibility enabled for search results. | | -| `product_access_group` | *Optional[str]* | :heavy_minus_sign: | If the datasource uses a specific product access group, then the name of that group. | | -| `is_user_referenced_by_email` | *Optional[bool]* | :heavy_minus_sign: | whether email is used to reference users in document ACLs and in group memberships. | | -| `is_entity_datasource` | *Optional[bool]* | :heavy_minus_sign: | True if this datasource is used to push custom entities. | | -| `is_test_datasource` | *Optional[bool]* | :heavy_minus_sign: | True if this datasource will be used for testing purpose only. Documents from such a datasource wouldn't have any effect on search rankings. | | -| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | | +| Parameter | Type | Required | Description | Example | +| ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | +| `datasource_id` | *str* | :heavy_check_mark: | The datasource type identifier (e.g. o365sharepoint) | o365sharepoint | +| `instance_id` | *str* | :heavy_check_mark: | The datasource instance identifier | o365sharepoint_abc123 | +| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | | + +### Response + +**[models.DatasourceConfigurationResponse](../../models/datasourceconfigurationresponse.md)** ### Errors -| Error Type | Status Code | Content Type | -| ----------------- | ----------------- | ----------------- | -| errors.GleanError | 4XX, 5XX | \*/\* | +| Error Type | Status Code | Content Type | +| -------------------- | -------------------- | -------------------- | +| errors.ErrorResponse | 400, 403, 404 | application/json | +| errors.GleanError | 4XX, 5XX | \*/\* | -## retrieve_config +## update_datasource_instance_configuration + +Updates the greenlisted configuration values for a datasource instance. Only configuration keys that are exposed via the public API greenlist may be set. Returns the full greenlisted configuration after the update is applied. -Fetches the datasource config for the specified custom datasource. ### Example Usage - + ```python from glean.api_client import Glean import os @@ -93,7 +69,11 @@ with Glean( api_token=os.getenv("GLEAN_API_TOKEN", ""), ) as glean: - res = glean.indexing.datasources.retrieve_config(datasource="") + res = glean.datasources.update_datasource_instance_configuration(datasource_id="o365sharepoint", instance_id="o365sharepoint_abc123", configuration={ + "values": { + + }, + }) # Handle response print(res) @@ -102,17 +82,20 @@ with Glean( ### Parameters -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | -| `datasource` | *str* | :heavy_check_mark: | Datasource name for which config is needed. | -| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | +| Parameter | Type | Required | Description | Example | +| ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | +| `datasource_id` | *str* | :heavy_check_mark: | The datasource type identifier (e.g. o365sharepoint) | o365sharepoint | +| `instance_id` | *str* | :heavy_check_mark: | The datasource instance identifier | o365sharepoint_abc123 | +| `configuration` | [models.DatasourceInstanceConfiguration](../../models/datasourceinstanceconfiguration.md) | :heavy_check_mark: | Configuration for a datasource instance | | +| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | | ### Response -**[models.CustomDatasourceConfig](../../models/customdatasourceconfig.md)** +**[models.DatasourceConfigurationResponse](../../models/datasourceconfigurationresponse.md)** ### Errors -| Error Type | Status Code | Content Type | -| ----------------- | ----------------- | ----------------- | -| errors.GleanError | 4XX, 5XX | \*/\* | \ No newline at end of file +| Error Type | Status Code | Content Type | +| -------------------- | -------------------- | -------------------- | +| errors.ErrorResponse | 400, 403, 404 | application/json | +| errors.GleanError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/docs/sdks/indexingdatasources/README.md b/docs/sdks/indexingdatasources/README.md new file mode 100644 index 00000000..c9f66bdb --- /dev/null +++ b/docs/sdks/indexingdatasources/README.md @@ -0,0 +1,118 @@ +# Indexing.Datasources + +## Overview + +### Available Operations + +* [add](#add) - Add or update datasource +* [retrieve_config](#retrieve_config) - Get datasource config + +## add + +Add or update a custom datasource and its schema. + +### Example Usage + + +```python +from glean.api_client import Glean, models +import os + + +with Glean( + api_token=os.getenv("GLEAN_API_TOKEN", ""), +) as glean: + + glean.indexing.datasources.add(name="", datasource_category=models.DatasourceCategory.UNCATEGORIZED, url_regex="https://example-company.datasource.com/.*", quicklinks=[ + { + "icon_config": { + "color": "#343CED", + "key": "person_icon", + "icon_type": models.IconType.GLYPH, + "name": "user", + }, + }, + ], trust_url_regex_for_view_activity=True, strip_fragment_in_canonical_url=True, is_entity_datasource=False, is_test_datasource=False) + + # Use the SDK ... + +``` + +### Parameters + +| Parameter | Type | Required | Description | Example | +| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `name` | *str* | :heavy_check_mark: | Unique identifier of datasource instance to which this config applies. | | +| `display_name` | *Optional[str]* | :heavy_minus_sign: | The user-friendly instance label to display. If omitted, falls back to the title-cased `name`. | | +| `datasource_category` | [Optional[models.DatasourceCategory]](../../models/datasourcecategory.md) | :heavy_minus_sign: | 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. | | +| `url_regex` | *Optional[str]* | :heavy_minus_sign: | Regular expression that matches URLs of documents of the datasource instance. The behavior for multiple matches is non-deterministic. **Note: `urlRegex` is a required field for non-entity datasources, but not required if the datasource is used to push custom entities (ie. datasources where isEntityDatasource is false). Please add a regex as specific as possible to this datasource instance.** | https://example-company.datasource.com/.* | +| `icon_url` | *Optional[str]* | :heavy_minus_sign: | The URL to an image to be displayed as an icon for this datasource instance. Must have a transparency mask. SVG are recommended over PNG. Public, scio-authenticated and Base64 encoded data URLs are all valid (but not third-party-authenticated URLs). | | +| `object_definitions` | List[[models.ObjectDefinition](../../models/objectdefinition.md)] | :heavy_minus_sign: | The list of top-level `objectType`s for the datasource. | | +| `suggestion_text` | *Optional[str]* | :heavy_minus_sign: | Example text for what to search for in this datasource | | +| `home_url` | *Optional[str]* | :heavy_minus_sign: | The URL of the landing page for this datasource instance. Should point to the most useful page for users, not the company marketing page. | | +| `crawler_seed_urls` | List[*str*] | :heavy_minus_sign: | This only applies to WEB_CRAWL and BROWSER_CRAWL datasources. Defines the seed URLs for crawling. | | +| `icon_dark_url` | *Optional[str]* | :heavy_minus_sign: | The URL to an image to be displayed as an icon for this datasource instance in dark mode. Must have a transparency mask. SVG are recommended over PNG. Public, scio-authenticated and Base64 encoded data URLs are all valid (but not third-party-authenticated URLs). | | +| `hide_built_in_facets` | List[[models.HideBuiltInFacet](../../models/hidebuiltinfacet.md)] | :heavy_minus_sign: | List of built-in facet types that should be hidden for the datasource. | | +| `canonicalizing_url_regex` | List[[models.CanonicalizingRegexType](../../models/canonicalizingregextype.md)] | :heavy_minus_sign: | A list of regular expressions to apply to an arbitrary URL to transform it into a canonical URL for this datasource instance. Regexes are to be applied in the order specified in this list. | | +| `canonicalizing_title_regex` | List[[models.CanonicalizingRegexType](../../models/canonicalizingregextype.md)] | :heavy_minus_sign: | A list of regular expressions to apply to an arbitrary title to transform it into a title that will be displayed in the search results | | +| `redlist_title_regex` | *Optional[str]* | :heavy_minus_sign: | A regex that identifies titles that should not be indexed | | +| `connector_type` | [Optional[models.CustomDatasourceConfigConnectorType]](../../models/customdatasourceconfigconnectortype.md) | :heavy_minus_sign: | N/A | | +| `quicklinks` | List[[models.Quicklink](../../models/quicklink.md)] | :heavy_minus_sign: | List of actions for this datasource instance that will show up in autocomplete and app card, e.g. "Create new issue" for jira | | +| `render_config_preset` | *Optional[str]* | :heavy_minus_sign: | The name of a render config to use for displaying results from this datasource. Any well known datasource name may be used to render the same as that source, e.g. `web` or `gdrive`. Please refer to [this](https://developers.glean.com/docs/rendering_search_results/) for more details | | +| `aliases` | List[*str*] | :heavy_minus_sign: | Aliases that can be used as `app` operator-values. | | +| `is_on_prem` | *Optional[bool]* | :heavy_minus_sign: | Whether or not this datasource is hosted on-premise. | | +| `trust_url_regex_for_view_activity` | *Optional[bool]* | :heavy_minus_sign: | True if browser activity is able to report the correct URL for VIEW events. Set this to true if the URLs reported by Chrome are constant throughout each page load. Set this to false if the page has Javascript that modifies the URL during or after the load. | | +| `include_utm_source` | *Optional[bool]* | :heavy_minus_sign: | If true, a utm_source query param will be added to outbound links to this datasource within Glean. | | +| `strip_fragment_in_canonical_url` | *Optional[bool]* | :heavy_minus_sign: | If true, the fragment part of the URL will be stripped when converting to a canonical url. | | +| `identity_datasource_name` | *Optional[str]* | :heavy_minus_sign: | If the datasource uses another datasource for identity info, then the name of the datasource. The identity datasource must exist already and the datasource with identity info should have its visibility enabled for search results. | | +| `product_access_group` | *Optional[str]* | :heavy_minus_sign: | If the datasource uses a specific product access group, then the name of that group. | | +| `is_user_referenced_by_email` | *Optional[bool]* | :heavy_minus_sign: | whether email is used to reference users in document ACLs and in group memberships. | | +| `is_entity_datasource` | *Optional[bool]* | :heavy_minus_sign: | True if this datasource is used to push custom entities. | | +| `is_test_datasource` | *Optional[bool]* | :heavy_minus_sign: | True if this datasource will be used for testing purpose only. Documents from such a datasource wouldn't have any effect on search rankings. | | +| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | | + +### Errors + +| Error Type | Status Code | Content Type | +| ----------------- | ----------------- | ----------------- | +| errors.GleanError | 4XX, 5XX | \*/\* | + +## retrieve_config + +Fetches the datasource config for the specified custom datasource. + +### Example Usage + + +```python +from glean.api_client import Glean +import os + + +with Glean( + api_token=os.getenv("GLEAN_API_TOKEN", ""), +) as glean: + + res = glean.indexing.datasources.retrieve_config(datasource="") + + # Handle response + print(res) + +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | +| `datasource` | *str* | :heavy_check_mark: | Datasource name for which config is needed. | +| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | + +### Response + +**[models.CustomDatasourceConfig](../../models/customdatasourceconfig.md)** + +### Errors + +| Error Type | Status Code | Content Type | +| ----------------- | ----------------- | ----------------- | +| errors.GleanError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/docs/sdks/people/README.md b/docs/sdks/people/README.md index 8b35d44d..363dfc32 100644 --- a/docs/sdks/people/README.md +++ b/docs/sdks/people/README.md @@ -8,7 +8,7 @@ * [~~count~~](#count) - Get user count :warning: **Deprecated** * [index](#index) - Index employee -* [bulk_index](#bulk_index) - Bulk index employees +* [~~bulk_index~~](#bulk_index) - Bulk index employees :warning: **Deprecated** * [process_all_employees_and_teams](#process_all_employees_and_teams) - Schedules the processing of uploaded employees and teams * [delete](#delete) - Delete employee * [index_team](#index_team) - Index team @@ -149,10 +149,12 @@ with Glean( | ----------------- | ----------------- | ----------------- | | errors.GleanError | 4XX, 5XX | \*/\* | -## bulk_index +## ~~bulk_index~~ Replaces all the currently indexed employees using paginated batch API calls. Please refer to the [bulk indexing](https://developers.glean.com/indexing/documents/bulk-upload-model) documentation for an explanation of how to use bulk endpoints. +> :warning: **DEPRECATED**: Deprecated on 2026-02-03, removal scheduled for 2026-10-15: Endpoint is deprecated. + ### Example Usage diff --git a/pyproject.toml b/pyproject.toml index 358810d2..3dce96bf 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,7 +1,7 @@ [project] name = "glean-api-client" -version = "0.12.8" +version = "0.12.9" 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 ff2fde54..ae854139 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.12.8" +__version__: str = "0.12.9" __openapi_doc_version__: str = "0.9.0" -__gen_version__: str = "2.832.9" -__user_agent__: str = "speakeasy-sdk/python 0.12.8 2.832.9 0.9.0 glean-api-client" +__gen_version__: str = "2.841.0" +__user_agent__: str = "speakeasy-sdk/python 0.12.9 2.841.0 0.9.0 glean-api-client" try: if __package__ is not None: diff --git a/src/glean/api_client/agents.py b/src/glean/api_client/agents.py index e83595d0..134cc9ba 100644 --- a/src/glean/api_client/agents.py +++ b/src/glean/api_client/agents.py @@ -89,9 +89,13 @@ def retrieve( retry_config=retry_config, ) + response_data: Any = None if utils.match_response(http_res, "200", "application/json"): return unmarshal_json_response(models.Agent, http_res) - if utils.match_response(http_res, ["400", "403", "404", "4XX"], "*"): + if utils.match_response(http_res, "404", "application/json"): + response_data = unmarshal_json_response(errors.ErrorResponseData, http_res) + raise errors.ErrorResponse(response_data, http_res) + 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"], "*"): @@ -179,9 +183,13 @@ async def retrieve_async( retry_config=retry_config, ) + response_data: Any = None if utils.match_response(http_res, "200", "application/json"): return unmarshal_json_response(models.Agent, http_res) - if utils.match_response(http_res, ["400", "403", "404", "4XX"], "*"): + if utils.match_response(http_res, "404", "application/json"): + response_data = unmarshal_json_response(errors.ErrorResponseData, http_res) + raise errors.ErrorResponse(response_data, http_res) + 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"], "*"): @@ -269,9 +277,13 @@ def retrieve_schemas( retry_config=retry_config, ) + response_data: Any = None if utils.match_response(http_res, "200", "application/json"): return unmarshal_json_response(models.AgentSchemas, http_res) - if utils.match_response(http_res, ["400", "403", "404", "422", "4XX"], "*"): + if utils.match_response(http_res, ["404", "422"], "application/json"): + response_data = unmarshal_json_response(errors.ErrorResponseData, http_res) + raise errors.ErrorResponse(response_data, http_res) + 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"], "*"): @@ -359,9 +371,13 @@ async def retrieve_schemas_async( retry_config=retry_config, ) + response_data: Any = None if utils.match_response(http_res, "200", "application/json"): return unmarshal_json_response(models.AgentSchemas, http_res) - if utils.match_response(http_res, ["400", "403", "404", "422", "4XX"], "*"): + if utils.match_response(http_res, ["404", "422"], "application/json"): + response_data = unmarshal_json_response(errors.ErrorResponseData, http_res) + raise errors.ErrorResponse(response_data, http_res) + 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"], "*"): @@ -446,9 +462,13 @@ def list( retry_config=retry_config, ) + response_data: Any = None if utils.match_response(http_res, "200", "application/json"): return unmarshal_json_response(models.SearchAgentsResponse, http_res) - if utils.match_response(http_res, ["400", "403", "404", "422", "4XX"], "*"): + if utils.match_response(http_res, ["404", "422"], "application/json"): + response_data = unmarshal_json_response(errors.ErrorResponseData, http_res) + raise errors.ErrorResponse(response_data, http_res) + 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"], "*"): @@ -533,9 +553,13 @@ async def list_async( retry_config=retry_config, ) + response_data: Any = None if utils.match_response(http_res, "200", "application/json"): return unmarshal_json_response(models.SearchAgentsResponse, http_res) - if utils.match_response(http_res, ["400", "403", "404", "422", "4XX"], "*"): + if utils.match_response(http_res, ["404", "422"], "application/json"): + response_data = unmarshal_json_response(errors.ErrorResponseData, http_res) + raise errors.ErrorResponse(response_data, http_res) + 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"], "*"): @@ -631,11 +655,13 @@ def run_stream( retry_config=retry_config, ) + response_data: Any = None if utils.match_response(http_res, "200", "text/event-stream"): return http_res.text - if utils.match_response( - http_res, ["400", "403", "404", "409", "422", "4XX"], "*" - ): + if utils.match_response(http_res, ["404", "409", "422"], "application/json"): + response_data = unmarshal_json_response(errors.ErrorResponseData, http_res) + raise errors.ErrorResponse(response_data, http_res) + 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"], "*"): @@ -731,11 +757,13 @@ async def run_stream_async( retry_config=retry_config, ) + response_data: Any = None if utils.match_response(http_res, "200", "text/event-stream"): return http_res.text - if utils.match_response( - http_res, ["400", "403", "404", "409", "422", "4XX"], "*" - ): + if utils.match_response(http_res, ["404", "409", "422"], "application/json"): + response_data = unmarshal_json_response(errors.ErrorResponseData, http_res) + raise errors.ErrorResponse(response_data, http_res) + 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/src/glean/api_client/datasources.py b/src/glean/api_client/datasources.py index d7340a08..60e6da53 100644 --- a/src/glean/api_client/datasources.py +++ b/src/glean/api_client/datasources.py @@ -6,92 +6,29 @@ from glean.api_client.types import OptionalNullable, UNSET from glean.api_client.utils import get_security_from_env from glean.api_client.utils.unmarshal_json_response import unmarshal_json_response -from typing import List, Mapping, Optional, Union +from typing import Any, Mapping, Optional, Union class Datasources(BaseSDK): - def add( + r"""Manage datasources.""" + + def get_datasource_instance_configuration( self, *, - name: str, - display_name: Optional[str] = None, - datasource_category: Optional[ - models.DatasourceCategory - ] = models.DatasourceCategory.UNCATEGORIZED, - url_regex: Optional[str] = None, - icon_url: Optional[str] = None, - object_definitions: Optional[ - Union[List[models.ObjectDefinition], List[models.ObjectDefinitionTypedDict]] - ] = None, - suggestion_text: Optional[str] = None, - home_url: Optional[str] = None, - crawler_seed_urls: Optional[List[str]] = None, - icon_dark_url: Optional[str] = None, - hide_built_in_facets: Optional[List[models.HideBuiltInFacet]] = None, - canonicalizing_url_regex: Optional[ - Union[ - List[models.CanonicalizingRegexType], - List[models.CanonicalizingRegexTypeTypedDict], - ] - ] = None, - canonicalizing_title_regex: Optional[ - Union[ - List[models.CanonicalizingRegexType], - List[models.CanonicalizingRegexTypeTypedDict], - ] - ] = None, - redlist_title_regex: Optional[str] = None, - connector_type: Optional[models.CustomDatasourceConfigConnectorType] = None, - quicklinks: Optional[ - Union[List[models.Quicklink], List[models.QuicklinkTypedDict]] - ] = None, - render_config_preset: Optional[str] = None, - aliases: Optional[List[str]] = None, - is_on_prem: Optional[bool] = None, - trust_url_regex_for_view_activity: Optional[bool] = True, - include_utm_source: Optional[bool] = None, - strip_fragment_in_canonical_url: Optional[bool] = True, - identity_datasource_name: Optional[str] = None, - product_access_group: Optional[str] = None, - is_user_referenced_by_email: Optional[bool] = None, - is_entity_datasource: Optional[bool] = False, - is_test_datasource: Optional[bool] = False, + datasource_id: str, + instance_id: str, retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ): - r"""Add or update datasource - - Add or update a custom datasource and its schema. - - :param name: Unique identifier of datasource instance to which this config applies. - :param display_name: The user-friendly instance label to display. If omitted, falls back to the title-cased `name`. - :param datasource_category: 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. - :param url_regex: Regular expression that matches URLs of documents of the datasource instance. The behavior for multiple matches is non-deterministic. **Note: `urlRegex` is a required field for non-entity datasources, but not required if the datasource is used to push custom entities (ie. datasources where isEntityDatasource is false). Please add a regex as specific as possible to this datasource instance.** - :param icon_url: The URL to an image to be displayed as an icon for this datasource instance. Must have a transparency mask. SVG are recommended over PNG. Public, scio-authenticated and Base64 encoded data URLs are all valid (but not third-party-authenticated URLs). - :param object_definitions: The list of top-level `objectType`s for the datasource. - :param suggestion_text: Example text for what to search for in this datasource - :param home_url: The URL of the landing page for this datasource instance. Should point to the most useful page for users, not the company marketing page. - :param crawler_seed_urls: This only applies to WEB_CRAWL and BROWSER_CRAWL datasources. Defines the seed URLs for crawling. - :param icon_dark_url: The URL to an image to be displayed as an icon for this datasource instance in dark mode. Must have a transparency mask. SVG are recommended over PNG. Public, scio-authenticated and Base64 encoded data URLs are all valid (but not third-party-authenticated URLs). - :param hide_built_in_facets: List of built-in facet types that should be hidden for the datasource. - :param canonicalizing_url_regex: A list of regular expressions to apply to an arbitrary URL to transform it into a canonical URL for this datasource instance. Regexes are to be applied in the order specified in this list. - :param canonicalizing_title_regex: A list of regular expressions to apply to an arbitrary title to transform it into a title that will be displayed in the search results - :param redlist_title_regex: A regex that identifies titles that should not be indexed - :param connector_type: - :param quicklinks: List of actions for this datasource instance that will show up in autocomplete and app card, e.g. \"Create new issue\" for jira - :param render_config_preset: The name of a render config to use for displaying results from this datasource. Any well known datasource name may be used to render the same as that source, e.g. `web` or `gdrive`. Please refer to [this](https://developers.glean.com/docs/rendering_search_results/) for more details - :param aliases: Aliases that can be used as `app` operator-values. - :param is_on_prem: Whether or not this datasource is hosted on-premise. - :param trust_url_regex_for_view_activity: True if browser activity is able to report the correct URL for VIEW events. Set this to true if the URLs reported by Chrome are constant throughout each page load. Set this to false if the page has Javascript that modifies the URL during or after the load. - :param include_utm_source: If true, a utm_source query param will be added to outbound links to this datasource within Glean. - :param strip_fragment_in_canonical_url: If true, the fragment part of the URL will be stripped when converting to a canonical url. - :param identity_datasource_name: If the datasource uses another datasource for identity info, then the name of the datasource. The identity datasource must exist already and the datasource with identity info should have its visibility enabled for search results. - :param product_access_group: If the datasource uses a specific product access group, then the name of that group. - :param is_user_referenced_by_email: whether email is used to reference users in document ACLs and in group memberships. - :param is_entity_datasource: True if this datasource is used to push custom entities. - :param is_test_datasource: True if this datasource will be used for testing purpose only. Documents from such a datasource wouldn't have any effect on search rankings. + ) -> models.DatasourceConfigurationResponse: + r"""Get datasource instance configuration + + Gets the greenlisted configuration values for a datasource instance. Returns only configuration keys that are exposed via the public API greenlist. + + + :param datasource_id: The datasource type identifier (e.g. o365sharepoint) + :param instance_id: The datasource instance identifier :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method :param timeout_ms: Override the default request timeout configuration for this method in milliseconds @@ -107,61 +44,24 @@ def add( else: base_url = self._get_url(base_url, url_variables) - request = models.CustomDatasourceConfig( - name=name, - display_name=display_name, - datasource_category=datasource_category, - url_regex=url_regex, - icon_url=icon_url, - object_definitions=utils.get_pydantic_model( - object_definitions, Optional[List[models.ObjectDefinition]] - ), - suggestion_text=suggestion_text, - home_url=home_url, - crawler_seed_urls=crawler_seed_urls, - icon_dark_url=icon_dark_url, - hide_built_in_facets=hide_built_in_facets, - canonicalizing_url_regex=utils.get_pydantic_model( - canonicalizing_url_regex, Optional[List[models.CanonicalizingRegexType]] - ), - canonicalizing_title_regex=utils.get_pydantic_model( - canonicalizing_title_regex, - Optional[List[models.CanonicalizingRegexType]], - ), - redlist_title_regex=redlist_title_regex, - connector_type=connector_type, - quicklinks=utils.get_pydantic_model( - quicklinks, Optional[List[models.Quicklink]] - ), - render_config_preset=render_config_preset, - aliases=aliases, - is_on_prem=is_on_prem, - trust_url_regex_for_view_activity=trust_url_regex_for_view_activity, - include_utm_source=include_utm_source, - strip_fragment_in_canonical_url=strip_fragment_in_canonical_url, - identity_datasource_name=identity_datasource_name, - product_access_group=product_access_group, - is_user_referenced_by_email=is_user_referenced_by_email, - is_entity_datasource=is_entity_datasource, - is_test_datasource=is_test_datasource, + request = models.GetDatasourceInstanceConfigurationRequest( + datasource_id=datasource_id, + instance_id=instance_id, ) req = self._build_request( - method="POST", - path="/api/index/v1/adddatasource", + method="GET", + path="/rest/api/v1/configure/datasources/{datasourceId}/instances/{instanceId}", base_url=base_url, url_variables=url_variables, request=request, - request_body_required=True, - request_has_path_params=False, + request_body_required=False, + request_has_path_params=True, request_has_query_params=True, user_agent_header="user-agent", - accept_header_value="*/*", + accept_header_value="application/json", http_headers=http_headers, security=self.sdk_configuration.security, - get_serialized_body=lambda: utils.serialize_request_body( - request, False, False, "json", models.CustomDatasourceConfig - ), allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -178,20 +78,26 @@ def add( hook_ctx=HookContext( config=self.sdk_configuration, base_url=base_url or "", - operation_id="post_/api/index/v1/adddatasource", + operation_id="getDatasourceInstanceConfiguration", oauth2_scopes=None, security_source=get_security_from_env( self.sdk_configuration.security, models.Security ), ), request=req, - error_status_codes=["400", "401", "4XX", "5XX"], + error_status_codes=["400", "401", "403", "404", "4XX", "5XX"], retry_config=retry_config, ) - if utils.match_response(http_res, "200", "*"): - return - if utils.match_response(http_res, ["400", "401", "4XX"], "*"): + response_data: Any = None + if utils.match_response(http_res, "200", "application/json"): + return unmarshal_json_response( + models.DatasourceConfigurationResponse, http_res + ) + if utils.match_response(http_res, ["400", "403", "404"], "application/json"): + response_data = unmarshal_json_response(errors.ErrorResponseData, http_res) + raise errors.ErrorResponse(response_data, http_res) + if utils.match_response(http_res, ["401", "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, "5XX", "*"): @@ -200,88 +106,23 @@ def add( raise errors.GleanError("Unexpected response received", http_res) - async def add_async( + async def get_datasource_instance_configuration_async( self, *, - name: str, - display_name: Optional[str] = None, - datasource_category: Optional[ - models.DatasourceCategory - ] = models.DatasourceCategory.UNCATEGORIZED, - url_regex: Optional[str] = None, - icon_url: Optional[str] = None, - object_definitions: Optional[ - Union[List[models.ObjectDefinition], List[models.ObjectDefinitionTypedDict]] - ] = None, - suggestion_text: Optional[str] = None, - home_url: Optional[str] = None, - crawler_seed_urls: Optional[List[str]] = None, - icon_dark_url: Optional[str] = None, - hide_built_in_facets: Optional[List[models.HideBuiltInFacet]] = None, - canonicalizing_url_regex: Optional[ - Union[ - List[models.CanonicalizingRegexType], - List[models.CanonicalizingRegexTypeTypedDict], - ] - ] = None, - canonicalizing_title_regex: Optional[ - Union[ - List[models.CanonicalizingRegexType], - List[models.CanonicalizingRegexTypeTypedDict], - ] - ] = None, - redlist_title_regex: Optional[str] = None, - connector_type: Optional[models.CustomDatasourceConfigConnectorType] = None, - quicklinks: Optional[ - Union[List[models.Quicklink], List[models.QuicklinkTypedDict]] - ] = None, - render_config_preset: Optional[str] = None, - aliases: Optional[List[str]] = None, - is_on_prem: Optional[bool] = None, - trust_url_regex_for_view_activity: Optional[bool] = True, - include_utm_source: Optional[bool] = None, - strip_fragment_in_canonical_url: Optional[bool] = True, - identity_datasource_name: Optional[str] = None, - product_access_group: Optional[str] = None, - is_user_referenced_by_email: Optional[bool] = None, - is_entity_datasource: Optional[bool] = False, - is_test_datasource: Optional[bool] = False, + datasource_id: str, + instance_id: str, retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ): - r"""Add or update datasource - - Add or update a custom datasource and its schema. - - :param name: Unique identifier of datasource instance to which this config applies. - :param display_name: The user-friendly instance label to display. If omitted, falls back to the title-cased `name`. - :param datasource_category: 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. - :param url_regex: Regular expression that matches URLs of documents of the datasource instance. The behavior for multiple matches is non-deterministic. **Note: `urlRegex` is a required field for non-entity datasources, but not required if the datasource is used to push custom entities (ie. datasources where isEntityDatasource is false). Please add a regex as specific as possible to this datasource instance.** - :param icon_url: The URL to an image to be displayed as an icon for this datasource instance. Must have a transparency mask. SVG are recommended over PNG. Public, scio-authenticated and Base64 encoded data URLs are all valid (but not third-party-authenticated URLs). - :param object_definitions: The list of top-level `objectType`s for the datasource. - :param suggestion_text: Example text for what to search for in this datasource - :param home_url: The URL of the landing page for this datasource instance. Should point to the most useful page for users, not the company marketing page. - :param crawler_seed_urls: This only applies to WEB_CRAWL and BROWSER_CRAWL datasources. Defines the seed URLs for crawling. - :param icon_dark_url: The URL to an image to be displayed as an icon for this datasource instance in dark mode. Must have a transparency mask. SVG are recommended over PNG. Public, scio-authenticated and Base64 encoded data URLs are all valid (but not third-party-authenticated URLs). - :param hide_built_in_facets: List of built-in facet types that should be hidden for the datasource. - :param canonicalizing_url_regex: A list of regular expressions to apply to an arbitrary URL to transform it into a canonical URL for this datasource instance. Regexes are to be applied in the order specified in this list. - :param canonicalizing_title_regex: A list of regular expressions to apply to an arbitrary title to transform it into a title that will be displayed in the search results - :param redlist_title_regex: A regex that identifies titles that should not be indexed - :param connector_type: - :param quicklinks: List of actions for this datasource instance that will show up in autocomplete and app card, e.g. \"Create new issue\" for jira - :param render_config_preset: The name of a render config to use for displaying results from this datasource. Any well known datasource name may be used to render the same as that source, e.g. `web` or `gdrive`. Please refer to [this](https://developers.glean.com/docs/rendering_search_results/) for more details - :param aliases: Aliases that can be used as `app` operator-values. - :param is_on_prem: Whether or not this datasource is hosted on-premise. - :param trust_url_regex_for_view_activity: True if browser activity is able to report the correct URL for VIEW events. Set this to true if the URLs reported by Chrome are constant throughout each page load. Set this to false if the page has Javascript that modifies the URL during or after the load. - :param include_utm_source: If true, a utm_source query param will be added to outbound links to this datasource within Glean. - :param strip_fragment_in_canonical_url: If true, the fragment part of the URL will be stripped when converting to a canonical url. - :param identity_datasource_name: If the datasource uses another datasource for identity info, then the name of the datasource. The identity datasource must exist already and the datasource with identity info should have its visibility enabled for search results. - :param product_access_group: If the datasource uses a specific product access group, then the name of that group. - :param is_user_referenced_by_email: whether email is used to reference users in document ACLs and in group memberships. - :param is_entity_datasource: True if this datasource is used to push custom entities. - :param is_test_datasource: True if this datasource will be used for testing purpose only. Documents from such a datasource wouldn't have any effect on search rankings. + ) -> models.DatasourceConfigurationResponse: + r"""Get datasource instance configuration + + Gets the greenlisted configuration values for a datasource instance. Returns only configuration keys that are exposed via the public API greenlist. + + + :param datasource_id: The datasource type identifier (e.g. o365sharepoint) + :param instance_id: The datasource instance identifier :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method :param timeout_ms: Override the default request timeout configuration for this method in milliseconds @@ -297,61 +138,24 @@ async def add_async( else: base_url = self._get_url(base_url, url_variables) - request = models.CustomDatasourceConfig( - name=name, - display_name=display_name, - datasource_category=datasource_category, - url_regex=url_regex, - icon_url=icon_url, - object_definitions=utils.get_pydantic_model( - object_definitions, Optional[List[models.ObjectDefinition]] - ), - suggestion_text=suggestion_text, - home_url=home_url, - crawler_seed_urls=crawler_seed_urls, - icon_dark_url=icon_dark_url, - hide_built_in_facets=hide_built_in_facets, - canonicalizing_url_regex=utils.get_pydantic_model( - canonicalizing_url_regex, Optional[List[models.CanonicalizingRegexType]] - ), - canonicalizing_title_regex=utils.get_pydantic_model( - canonicalizing_title_regex, - Optional[List[models.CanonicalizingRegexType]], - ), - redlist_title_regex=redlist_title_regex, - connector_type=connector_type, - quicklinks=utils.get_pydantic_model( - quicklinks, Optional[List[models.Quicklink]] - ), - render_config_preset=render_config_preset, - aliases=aliases, - is_on_prem=is_on_prem, - trust_url_regex_for_view_activity=trust_url_regex_for_view_activity, - include_utm_source=include_utm_source, - strip_fragment_in_canonical_url=strip_fragment_in_canonical_url, - identity_datasource_name=identity_datasource_name, - product_access_group=product_access_group, - is_user_referenced_by_email=is_user_referenced_by_email, - is_entity_datasource=is_entity_datasource, - is_test_datasource=is_test_datasource, + request = models.GetDatasourceInstanceConfigurationRequest( + datasource_id=datasource_id, + instance_id=instance_id, ) req = self._build_request_async( - method="POST", - path="/api/index/v1/adddatasource", + method="GET", + path="/rest/api/v1/configure/datasources/{datasourceId}/instances/{instanceId}", base_url=base_url, url_variables=url_variables, request=request, - request_body_required=True, - request_has_path_params=False, + request_body_required=False, + request_has_path_params=True, request_has_query_params=True, user_agent_header="user-agent", - accept_header_value="*/*", + accept_header_value="application/json", http_headers=http_headers, security=self.sdk_configuration.security, - get_serialized_body=lambda: utils.serialize_request_body( - request, False, False, "json", models.CustomDatasourceConfig - ), allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -368,20 +172,26 @@ async def add_async( hook_ctx=HookContext( config=self.sdk_configuration, base_url=base_url or "", - operation_id="post_/api/index/v1/adddatasource", + operation_id="getDatasourceInstanceConfiguration", oauth2_scopes=None, security_source=get_security_from_env( self.sdk_configuration.security, models.Security ), ), request=req, - error_status_codes=["400", "401", "4XX", "5XX"], + error_status_codes=["400", "401", "403", "404", "4XX", "5XX"], retry_config=retry_config, ) - if utils.match_response(http_res, "200", "*"): - return - if utils.match_response(http_res, ["400", "401", "4XX"], "*"): + response_data: Any = None + if utils.match_response(http_res, "200", "application/json"): + return unmarshal_json_response( + models.DatasourceConfigurationResponse, http_res + ) + if utils.match_response(http_res, ["400", "403", "404"], "application/json"): + response_data = unmarshal_json_response(errors.ErrorResponseData, http_res) + raise errors.ErrorResponse(response_data, http_res) + if utils.match_response(http_res, ["401", "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, "5XX", "*"): @@ -390,20 +200,28 @@ async def add_async( raise errors.GleanError("Unexpected response received", http_res) - def retrieve_config( + def update_datasource_instance_configuration( self, *, - datasource: str, + datasource_id: str, + instance_id: str, + configuration: Union[ + models.DatasourceInstanceConfiguration, + models.DatasourceInstanceConfigurationTypedDict, + ], retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> models.CustomDatasourceConfig: - r"""Get datasource config + ) -> models.DatasourceConfigurationResponse: + r"""Update datasource instance configuration + + Updates the greenlisted configuration values for a datasource instance. Only configuration keys that are exposed via the public API greenlist may be set. Returns the full greenlisted configuration after the update is applied. - Fetches the datasource config for the specified custom datasource. - :param datasource: Datasource name for which config is needed. + :param datasource_id: The datasource type identifier (e.g. o365sharepoint) + :param instance_id: The datasource instance identifier + :param configuration: Configuration for a datasource instance :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method :param timeout_ms: Override the default request timeout configuration for this method in milliseconds @@ -419,25 +237,35 @@ def retrieve_config( else: base_url = self._get_url(base_url, url_variables) - request = models.GetDatasourceConfigRequest( - datasource=datasource, + request = models.UpdateDatasourceInstanceConfigurationRequest( + datasource_id=datasource_id, + instance_id=instance_id, + update_datasource_configuration_request=models.UpdateDatasourceConfigurationRequest( + configuration=utils.get_pydantic_model( + configuration, models.DatasourceInstanceConfiguration + ), + ), ) req = self._build_request( - method="POST", - path="/api/index/v1/getdatasourceconfig", + method="PATCH", + path="/rest/api/v1/configure/datasources/{datasourceId}/instances/{instanceId}", base_url=base_url, url_variables=url_variables, request=request, request_body_required=True, - request_has_path_params=False, + request_has_path_params=True, request_has_query_params=True, user_agent_header="user-agent", accept_header_value="application/json", http_headers=http_headers, security=self.sdk_configuration.security, get_serialized_body=lambda: utils.serialize_request_body( - request, False, False, "json", models.GetDatasourceConfigRequest + request.update_datasource_configuration_request, + False, + False, + "json", + models.UpdateDatasourceConfigurationRequest, ), allow_empty_value=None, timeout_ms=timeout_ms, @@ -455,20 +283,26 @@ def retrieve_config( hook_ctx=HookContext( config=self.sdk_configuration, base_url=base_url or "", - operation_id="post_/api/index/v1/getdatasourceconfig", + operation_id="updateDatasourceInstanceConfiguration", oauth2_scopes=None, security_source=get_security_from_env( self.sdk_configuration.security, models.Security ), ), request=req, - error_status_codes=["400", "401", "409", "4XX", "5XX"], + error_status_codes=["400", "401", "403", "404", "4XX", "5XX"], retry_config=retry_config, ) + response_data: Any = None if utils.match_response(http_res, "200", "application/json"): - return unmarshal_json_response(models.CustomDatasourceConfig, http_res) - if utils.match_response(http_res, ["400", "401", "409", "4XX"], "*"): + return unmarshal_json_response( + models.DatasourceConfigurationResponse, http_res + ) + if utils.match_response(http_res, ["400", "403", "404"], "application/json"): + response_data = unmarshal_json_response(errors.ErrorResponseData, http_res) + raise errors.ErrorResponse(response_data, http_res) + if utils.match_response(http_res, ["401", "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, "5XX", "*"): @@ -477,20 +311,28 @@ def retrieve_config( raise errors.GleanError("Unexpected response received", http_res) - async def retrieve_config_async( + async def update_datasource_instance_configuration_async( self, *, - datasource: str, + datasource_id: str, + instance_id: str, + configuration: Union[ + models.DatasourceInstanceConfiguration, + models.DatasourceInstanceConfigurationTypedDict, + ], retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> models.CustomDatasourceConfig: - r"""Get datasource config + ) -> models.DatasourceConfigurationResponse: + r"""Update datasource instance configuration - Fetches the datasource config for the specified custom datasource. + Updates the greenlisted configuration values for a datasource instance. Only configuration keys that are exposed via the public API greenlist may be set. Returns the full greenlisted configuration after the update is applied. - :param datasource: Datasource name for which config is needed. + + :param datasource_id: The datasource type identifier (e.g. o365sharepoint) + :param instance_id: The datasource instance identifier + :param configuration: Configuration for a datasource instance :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method :param timeout_ms: Override the default request timeout configuration for this method in milliseconds @@ -506,25 +348,35 @@ async def retrieve_config_async( else: base_url = self._get_url(base_url, url_variables) - request = models.GetDatasourceConfigRequest( - datasource=datasource, + request = models.UpdateDatasourceInstanceConfigurationRequest( + datasource_id=datasource_id, + instance_id=instance_id, + update_datasource_configuration_request=models.UpdateDatasourceConfigurationRequest( + configuration=utils.get_pydantic_model( + configuration, models.DatasourceInstanceConfiguration + ), + ), ) req = self._build_request_async( - method="POST", - path="/api/index/v1/getdatasourceconfig", + method="PATCH", + path="/rest/api/v1/configure/datasources/{datasourceId}/instances/{instanceId}", base_url=base_url, url_variables=url_variables, request=request, request_body_required=True, - request_has_path_params=False, + request_has_path_params=True, request_has_query_params=True, user_agent_header="user-agent", accept_header_value="application/json", http_headers=http_headers, security=self.sdk_configuration.security, get_serialized_body=lambda: utils.serialize_request_body( - request, False, False, "json", models.GetDatasourceConfigRequest + request.update_datasource_configuration_request, + False, + False, + "json", + models.UpdateDatasourceConfigurationRequest, ), allow_empty_value=None, timeout_ms=timeout_ms, @@ -542,20 +394,26 @@ async def retrieve_config_async( hook_ctx=HookContext( config=self.sdk_configuration, base_url=base_url or "", - operation_id="post_/api/index/v1/getdatasourceconfig", + operation_id="updateDatasourceInstanceConfiguration", oauth2_scopes=None, security_source=get_security_from_env( self.sdk_configuration.security, models.Security ), ), request=req, - error_status_codes=["400", "401", "409", "4XX", "5XX"], + error_status_codes=["400", "401", "403", "404", "4XX", "5XX"], retry_config=retry_config, ) + response_data: Any = None if utils.match_response(http_res, "200", "application/json"): - return unmarshal_json_response(models.CustomDatasourceConfig, http_res) - if utils.match_response(http_res, ["400", "401", "409", "4XX"], "*"): + return unmarshal_json_response( + models.DatasourceConfigurationResponse, http_res + ) + if utils.match_response(http_res, ["400", "403", "404"], "application/json"): + response_data = unmarshal_json_response(errors.ErrorResponseData, http_res) + raise errors.ErrorResponse(response_data, http_res) + if utils.match_response(http_res, ["401", "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, "5XX", "*"): diff --git a/src/glean/api_client/errors/__init__.py b/src/glean/api_client/errors/__init__.py index 185efb34..b8998ad3 100644 --- a/src/glean/api_client/errors/__init__.py +++ b/src/glean/api_client/errors/__init__.py @@ -7,6 +7,7 @@ if TYPE_CHECKING: from .collectionerror import CollectionError, CollectionErrorData + from .errorresponse import ErrorResponse, ErrorResponseData from .gleandataerror import GleanDataError, GleanDataErrorData from .gleanerror import GleanError from .no_response_error import NoResponseError @@ -15,6 +16,8 @@ __all__ = [ "CollectionError", "CollectionErrorData", + "ErrorResponse", + "ErrorResponseData", "GleanBaseError", "GleanDataError", "GleanDataErrorData", @@ -26,6 +29,8 @@ _dynamic_imports: dict[str, str] = { "CollectionError": ".collectionerror", "CollectionErrorData": ".collectionerror", + "ErrorResponse": ".errorresponse", + "ErrorResponseData": ".errorresponse", "GleanDataError": ".gleandataerror", "GleanDataErrorData": ".gleandataerror", "GleanError": ".gleanerror", diff --git a/src/glean/api_client/errors/errorresponse.py b/src/glean/api_client/errors/errorresponse.py new file mode 100644 index 00000000..70cab4aa --- /dev/null +++ b/src/glean/api_client/errors/errorresponse.py @@ -0,0 +1,31 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from dataclasses import dataclass, field +from glean.api_client.errors import GleanBaseError +from glean.api_client.types import BaseModel +import httpx +from typing import Optional + + +class ErrorResponseData(BaseModel): + message: Optional[str] = None + r"""Client-facing error message describing what went wrong""" + + +@dataclass(unsafe_hash=True) +class ErrorResponse(GleanBaseError): + r"""Error response returned for failed requests""" + + data: ErrorResponseData = field(hash=False) + + def __init__( + self, + data: ErrorResponseData, + raw_response: httpx.Response, + body: Optional[str] = None, + ): + fallback = body or raw_response.text + message = str(data.message) or fallback + super().__init__(message, raw_response, body) + object.__setattr__(self, "data", data) diff --git a/src/glean/api_client/errors/gleandataerror.py b/src/glean/api_client/errors/gleandataerror.py index 7b0dfa05..754c85de 100644 --- a/src/glean/api_client/errors/gleandataerror.py +++ b/src/glean/api_client/errors/gleandataerror.py @@ -6,7 +6,6 @@ from glean.api_client.models import ( errormessage as models_errormessage, invalidoperatorvalueerror as models_invalidoperatorvalueerror, - unauthorizeddatasourceinstance as models_unauthorizeddatasourceinstance, ) from glean.api_client.types import BaseModel import httpx @@ -37,15 +36,6 @@ class GleanDataErrorData(BaseModel): Optional[bool], pydantic.Field(alias="federatedSearchRateLimitError") ] = None r"""Indicates the federated search results could not be fetched due to rate limiting.""" - unauthorized_datasource_instances: Annotated[ - Optional[ - List[models_unauthorizeddatasourceinstance.UnauthorizedDatasourceInstance] - ], - pydantic.Field(alias="unauthorizedDatasourceInstances"), - ] = None - r"""Datasource instances that could not be queried because the user has not completed or has expired per-user OAuth. - - """ @dataclass(unsafe_hash=True) diff --git a/src/glean/api_client/indexing.py b/src/glean/api_client/indexing.py index 27b07e8e..3a668c8c 100644 --- a/src/glean/api_client/indexing.py +++ b/src/glean/api_client/indexing.py @@ -2,9 +2,9 @@ from .basesdk import BaseSDK from .sdkconfiguration import SDKConfiguration -from glean.api_client.datasources import Datasources from glean.api_client.indexing_authentication import IndexingAuthentication from glean.api_client.indexing_datasource import IndexingDatasource +from glean.api_client.indexing_datasources import IndexingDatasources from glean.api_client.indexing_documents import IndexingDocuments from glean.api_client.indexing_permissions import IndexingPermissions from glean.api_client.indexing_shortcuts import IndexingShortcuts @@ -17,7 +17,7 @@ class Indexing(BaseSDK): permissions: IndexingPermissions datasource: IndexingDatasource people: People - datasources: Datasources + datasources: IndexingDatasources authentication: IndexingAuthentication shortcuts: IndexingShortcuts @@ -39,7 +39,7 @@ def _init_sdks(self): self.sdk_configuration, parent_ref=self.parent_ref ) self.people = People(self.sdk_configuration, parent_ref=self.parent_ref) - self.datasources = Datasources( + self.datasources = IndexingDatasources( self.sdk_configuration, parent_ref=self.parent_ref ) self.authentication = IndexingAuthentication( diff --git a/src/glean/api_client/indexing_datasources.py b/src/glean/api_client/indexing_datasources.py new file mode 100644 index 00000000..f5f55067 --- /dev/null +++ b/src/glean/api_client/indexing_datasources.py @@ -0,0 +1,565 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from .basesdk import BaseSDK +from glean.api_client import errors, models, utils +from glean.api_client._hooks import HookContext +from glean.api_client.types import OptionalNullable, UNSET +from glean.api_client.utils import get_security_from_env +from glean.api_client.utils.unmarshal_json_response import unmarshal_json_response +from typing import List, Mapping, Optional, Union + + +class IndexingDatasources(BaseSDK): + def add( + self, + *, + name: str, + display_name: Optional[str] = None, + datasource_category: Optional[ + models.DatasourceCategory + ] = models.DatasourceCategory.UNCATEGORIZED, + url_regex: Optional[str] = None, + icon_url: Optional[str] = None, + object_definitions: Optional[ + Union[List[models.ObjectDefinition], List[models.ObjectDefinitionTypedDict]] + ] = None, + suggestion_text: Optional[str] = None, + home_url: Optional[str] = None, + crawler_seed_urls: Optional[List[str]] = None, + icon_dark_url: Optional[str] = None, + hide_built_in_facets: Optional[List[models.HideBuiltInFacet]] = None, + canonicalizing_url_regex: Optional[ + Union[ + List[models.CanonicalizingRegexType], + List[models.CanonicalizingRegexTypeTypedDict], + ] + ] = None, + canonicalizing_title_regex: Optional[ + Union[ + List[models.CanonicalizingRegexType], + List[models.CanonicalizingRegexTypeTypedDict], + ] + ] = None, + redlist_title_regex: Optional[str] = None, + connector_type: Optional[models.CustomDatasourceConfigConnectorType] = None, + quicklinks: Optional[ + Union[List[models.Quicklink], List[models.QuicklinkTypedDict]] + ] = None, + render_config_preset: Optional[str] = None, + aliases: Optional[List[str]] = None, + is_on_prem: Optional[bool] = None, + trust_url_regex_for_view_activity: Optional[bool] = True, + include_utm_source: Optional[bool] = None, + strip_fragment_in_canonical_url: Optional[bool] = True, + identity_datasource_name: Optional[str] = None, + product_access_group: Optional[str] = None, + is_user_referenced_by_email: Optional[bool] = None, + is_entity_datasource: Optional[bool] = False, + is_test_datasource: Optional[bool] = False, + retries: OptionalNullable[utils.RetryConfig] = UNSET, + server_url: Optional[str] = None, + timeout_ms: Optional[int] = None, + http_headers: Optional[Mapping[str, str]] = None, + ): + r"""Add or update datasource + + Add or update a custom datasource and its schema. + + :param name: Unique identifier of datasource instance to which this config applies. + :param display_name: The user-friendly instance label to display. If omitted, falls back to the title-cased `name`. + :param datasource_category: 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. + :param url_regex: Regular expression that matches URLs of documents of the datasource instance. The behavior for multiple matches is non-deterministic. **Note: `urlRegex` is a required field for non-entity datasources, but not required if the datasource is used to push custom entities (ie. datasources where isEntityDatasource is false). Please add a regex as specific as possible to this datasource instance.** + :param icon_url: The URL to an image to be displayed as an icon for this datasource instance. Must have a transparency mask. SVG are recommended over PNG. Public, scio-authenticated and Base64 encoded data URLs are all valid (but not third-party-authenticated URLs). + :param object_definitions: The list of top-level `objectType`s for the datasource. + :param suggestion_text: Example text for what to search for in this datasource + :param home_url: The URL of the landing page for this datasource instance. Should point to the most useful page for users, not the company marketing page. + :param crawler_seed_urls: This only applies to WEB_CRAWL and BROWSER_CRAWL datasources. Defines the seed URLs for crawling. + :param icon_dark_url: The URL to an image to be displayed as an icon for this datasource instance in dark mode. Must have a transparency mask. SVG are recommended over PNG. Public, scio-authenticated and Base64 encoded data URLs are all valid (but not third-party-authenticated URLs). + :param hide_built_in_facets: List of built-in facet types that should be hidden for the datasource. + :param canonicalizing_url_regex: A list of regular expressions to apply to an arbitrary URL to transform it into a canonical URL for this datasource instance. Regexes are to be applied in the order specified in this list. + :param canonicalizing_title_regex: A list of regular expressions to apply to an arbitrary title to transform it into a title that will be displayed in the search results + :param redlist_title_regex: A regex that identifies titles that should not be indexed + :param connector_type: + :param quicklinks: List of actions for this datasource instance that will show up in autocomplete and app card, e.g. \"Create new issue\" for jira + :param render_config_preset: The name of a render config to use for displaying results from this datasource. Any well known datasource name may be used to render the same as that source, e.g. `web` or `gdrive`. Please refer to [this](https://developers.glean.com/docs/rendering_search_results/) for more details + :param aliases: Aliases that can be used as `app` operator-values. + :param is_on_prem: Whether or not this datasource is hosted on-premise. + :param trust_url_regex_for_view_activity: True if browser activity is able to report the correct URL for VIEW events. Set this to true if the URLs reported by Chrome are constant throughout each page load. Set this to false if the page has Javascript that modifies the URL during or after the load. + :param include_utm_source: If true, a utm_source query param will be added to outbound links to this datasource within Glean. + :param strip_fragment_in_canonical_url: If true, the fragment part of the URL will be stripped when converting to a canonical url. + :param identity_datasource_name: If the datasource uses another datasource for identity info, then the name of the datasource. The identity datasource must exist already and the datasource with identity info should have its visibility enabled for search results. + :param product_access_group: If the datasource uses a specific product access group, then the name of that group. + :param is_user_referenced_by_email: whether email is used to reference users in document ACLs and in group memberships. + :param is_entity_datasource: True if this datasource is used to push custom entities. + :param is_test_datasource: True if this datasource will be used for testing purpose only. Documents from such a datasource wouldn't have any effect on search rankings. + :param retries: Override the default retry configuration for this method + :param server_url: Override the default server URL for this method + :param timeout_ms: Override the default request timeout configuration for this method in milliseconds + :param http_headers: Additional headers to set or replace on requests. + """ + base_url = None + url_variables = None + if timeout_ms is None: + timeout_ms = self.sdk_configuration.timeout_ms + + if server_url is not None: + base_url = server_url + else: + base_url = self._get_url(base_url, url_variables) + + request = models.CustomDatasourceConfig( + name=name, + display_name=display_name, + datasource_category=datasource_category, + url_regex=url_regex, + icon_url=icon_url, + object_definitions=utils.get_pydantic_model( + object_definitions, Optional[List[models.ObjectDefinition]] + ), + suggestion_text=suggestion_text, + home_url=home_url, + crawler_seed_urls=crawler_seed_urls, + icon_dark_url=icon_dark_url, + hide_built_in_facets=hide_built_in_facets, + canonicalizing_url_regex=utils.get_pydantic_model( + canonicalizing_url_regex, Optional[List[models.CanonicalizingRegexType]] + ), + canonicalizing_title_regex=utils.get_pydantic_model( + canonicalizing_title_regex, + Optional[List[models.CanonicalizingRegexType]], + ), + redlist_title_regex=redlist_title_regex, + connector_type=connector_type, + quicklinks=utils.get_pydantic_model( + quicklinks, Optional[List[models.Quicklink]] + ), + render_config_preset=render_config_preset, + aliases=aliases, + is_on_prem=is_on_prem, + trust_url_regex_for_view_activity=trust_url_regex_for_view_activity, + include_utm_source=include_utm_source, + strip_fragment_in_canonical_url=strip_fragment_in_canonical_url, + identity_datasource_name=identity_datasource_name, + product_access_group=product_access_group, + is_user_referenced_by_email=is_user_referenced_by_email, + is_entity_datasource=is_entity_datasource, + is_test_datasource=is_test_datasource, + ) + + req = self._build_request( + method="POST", + path="/api/index/v1/adddatasource", + base_url=base_url, + url_variables=url_variables, + request=request, + request_body_required=True, + request_has_path_params=False, + request_has_query_params=True, + user_agent_header="user-agent", + accept_header_value="*/*", + http_headers=http_headers, + security=self.sdk_configuration.security, + get_serialized_body=lambda: utils.serialize_request_body( + request, False, False, "json", models.CustomDatasourceConfig + ), + allow_empty_value=None, + timeout_ms=timeout_ms, + ) + + if retries == UNSET: + if self.sdk_configuration.retry_config is not UNSET: + retries = self.sdk_configuration.retry_config + + retry_config = None + if isinstance(retries, utils.RetryConfig): + retry_config = (retries, ["429", "500", "502", "503", "504"]) + + http_res = self.do_request( + hook_ctx=HookContext( + config=self.sdk_configuration, + base_url=base_url or "", + operation_id="post_/api/index/v1/adddatasource", + oauth2_scopes=None, + security_source=get_security_from_env( + self.sdk_configuration.security, models.Security + ), + ), + request=req, + error_status_codes=["400", "401", "4XX", "5XX"], + retry_config=retry_config, + ) + + if utils.match_response(http_res, "200", "*"): + return + if utils.match_response(http_res, ["400", "401", "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, "5XX", "*"): + http_res_text = utils.stream_to_text(http_res) + raise errors.GleanError("API error occurred", http_res, http_res_text) + + raise errors.GleanError("Unexpected response received", http_res) + + async def add_async( + self, + *, + name: str, + display_name: Optional[str] = None, + datasource_category: Optional[ + models.DatasourceCategory + ] = models.DatasourceCategory.UNCATEGORIZED, + url_regex: Optional[str] = None, + icon_url: Optional[str] = None, + object_definitions: Optional[ + Union[List[models.ObjectDefinition], List[models.ObjectDefinitionTypedDict]] + ] = None, + suggestion_text: Optional[str] = None, + home_url: Optional[str] = None, + crawler_seed_urls: Optional[List[str]] = None, + icon_dark_url: Optional[str] = None, + hide_built_in_facets: Optional[List[models.HideBuiltInFacet]] = None, + canonicalizing_url_regex: Optional[ + Union[ + List[models.CanonicalizingRegexType], + List[models.CanonicalizingRegexTypeTypedDict], + ] + ] = None, + canonicalizing_title_regex: Optional[ + Union[ + List[models.CanonicalizingRegexType], + List[models.CanonicalizingRegexTypeTypedDict], + ] + ] = None, + redlist_title_regex: Optional[str] = None, + connector_type: Optional[models.CustomDatasourceConfigConnectorType] = None, + quicklinks: Optional[ + Union[List[models.Quicklink], List[models.QuicklinkTypedDict]] + ] = None, + render_config_preset: Optional[str] = None, + aliases: Optional[List[str]] = None, + is_on_prem: Optional[bool] = None, + trust_url_regex_for_view_activity: Optional[bool] = True, + include_utm_source: Optional[bool] = None, + strip_fragment_in_canonical_url: Optional[bool] = True, + identity_datasource_name: Optional[str] = None, + product_access_group: Optional[str] = None, + is_user_referenced_by_email: Optional[bool] = None, + is_entity_datasource: Optional[bool] = False, + is_test_datasource: Optional[bool] = False, + retries: OptionalNullable[utils.RetryConfig] = UNSET, + server_url: Optional[str] = None, + timeout_ms: Optional[int] = None, + http_headers: Optional[Mapping[str, str]] = None, + ): + r"""Add or update datasource + + Add or update a custom datasource and its schema. + + :param name: Unique identifier of datasource instance to which this config applies. + :param display_name: The user-friendly instance label to display. If omitted, falls back to the title-cased `name`. + :param datasource_category: 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. + :param url_regex: Regular expression that matches URLs of documents of the datasource instance. The behavior for multiple matches is non-deterministic. **Note: `urlRegex` is a required field for non-entity datasources, but not required if the datasource is used to push custom entities (ie. datasources where isEntityDatasource is false). Please add a regex as specific as possible to this datasource instance.** + :param icon_url: The URL to an image to be displayed as an icon for this datasource instance. Must have a transparency mask. SVG are recommended over PNG. Public, scio-authenticated and Base64 encoded data URLs are all valid (but not third-party-authenticated URLs). + :param object_definitions: The list of top-level `objectType`s for the datasource. + :param suggestion_text: Example text for what to search for in this datasource + :param home_url: The URL of the landing page for this datasource instance. Should point to the most useful page for users, not the company marketing page. + :param crawler_seed_urls: This only applies to WEB_CRAWL and BROWSER_CRAWL datasources. Defines the seed URLs for crawling. + :param icon_dark_url: The URL to an image to be displayed as an icon for this datasource instance in dark mode. Must have a transparency mask. SVG are recommended over PNG. Public, scio-authenticated and Base64 encoded data URLs are all valid (but not third-party-authenticated URLs). + :param hide_built_in_facets: List of built-in facet types that should be hidden for the datasource. + :param canonicalizing_url_regex: A list of regular expressions to apply to an arbitrary URL to transform it into a canonical URL for this datasource instance. Regexes are to be applied in the order specified in this list. + :param canonicalizing_title_regex: A list of regular expressions to apply to an arbitrary title to transform it into a title that will be displayed in the search results + :param redlist_title_regex: A regex that identifies titles that should not be indexed + :param connector_type: + :param quicklinks: List of actions for this datasource instance that will show up in autocomplete and app card, e.g. \"Create new issue\" for jira + :param render_config_preset: The name of a render config to use for displaying results from this datasource. Any well known datasource name may be used to render the same as that source, e.g. `web` or `gdrive`. Please refer to [this](https://developers.glean.com/docs/rendering_search_results/) for more details + :param aliases: Aliases that can be used as `app` operator-values. + :param is_on_prem: Whether or not this datasource is hosted on-premise. + :param trust_url_regex_for_view_activity: True if browser activity is able to report the correct URL for VIEW events. Set this to true if the URLs reported by Chrome are constant throughout each page load. Set this to false if the page has Javascript that modifies the URL during or after the load. + :param include_utm_source: If true, a utm_source query param will be added to outbound links to this datasource within Glean. + :param strip_fragment_in_canonical_url: If true, the fragment part of the URL will be stripped when converting to a canonical url. + :param identity_datasource_name: If the datasource uses another datasource for identity info, then the name of the datasource. The identity datasource must exist already and the datasource with identity info should have its visibility enabled for search results. + :param product_access_group: If the datasource uses a specific product access group, then the name of that group. + :param is_user_referenced_by_email: whether email is used to reference users in document ACLs and in group memberships. + :param is_entity_datasource: True if this datasource is used to push custom entities. + :param is_test_datasource: True if this datasource will be used for testing purpose only. Documents from such a datasource wouldn't have any effect on search rankings. + :param retries: Override the default retry configuration for this method + :param server_url: Override the default server URL for this method + :param timeout_ms: Override the default request timeout configuration for this method in milliseconds + :param http_headers: Additional headers to set or replace on requests. + """ + base_url = None + url_variables = None + if timeout_ms is None: + timeout_ms = self.sdk_configuration.timeout_ms + + if server_url is not None: + base_url = server_url + else: + base_url = self._get_url(base_url, url_variables) + + request = models.CustomDatasourceConfig( + name=name, + display_name=display_name, + datasource_category=datasource_category, + url_regex=url_regex, + icon_url=icon_url, + object_definitions=utils.get_pydantic_model( + object_definitions, Optional[List[models.ObjectDefinition]] + ), + suggestion_text=suggestion_text, + home_url=home_url, + crawler_seed_urls=crawler_seed_urls, + icon_dark_url=icon_dark_url, + hide_built_in_facets=hide_built_in_facets, + canonicalizing_url_regex=utils.get_pydantic_model( + canonicalizing_url_regex, Optional[List[models.CanonicalizingRegexType]] + ), + canonicalizing_title_regex=utils.get_pydantic_model( + canonicalizing_title_regex, + Optional[List[models.CanonicalizingRegexType]], + ), + redlist_title_regex=redlist_title_regex, + connector_type=connector_type, + quicklinks=utils.get_pydantic_model( + quicklinks, Optional[List[models.Quicklink]] + ), + render_config_preset=render_config_preset, + aliases=aliases, + is_on_prem=is_on_prem, + trust_url_regex_for_view_activity=trust_url_regex_for_view_activity, + include_utm_source=include_utm_source, + strip_fragment_in_canonical_url=strip_fragment_in_canonical_url, + identity_datasource_name=identity_datasource_name, + product_access_group=product_access_group, + is_user_referenced_by_email=is_user_referenced_by_email, + is_entity_datasource=is_entity_datasource, + is_test_datasource=is_test_datasource, + ) + + req = self._build_request_async( + method="POST", + path="/api/index/v1/adddatasource", + base_url=base_url, + url_variables=url_variables, + request=request, + request_body_required=True, + request_has_path_params=False, + request_has_query_params=True, + user_agent_header="user-agent", + accept_header_value="*/*", + http_headers=http_headers, + security=self.sdk_configuration.security, + get_serialized_body=lambda: utils.serialize_request_body( + request, False, False, "json", models.CustomDatasourceConfig + ), + allow_empty_value=None, + timeout_ms=timeout_ms, + ) + + if retries == UNSET: + if self.sdk_configuration.retry_config is not UNSET: + retries = self.sdk_configuration.retry_config + + retry_config = None + if isinstance(retries, utils.RetryConfig): + retry_config = (retries, ["429", "500", "502", "503", "504"]) + + http_res = await self.do_request_async( + hook_ctx=HookContext( + config=self.sdk_configuration, + base_url=base_url or "", + operation_id="post_/api/index/v1/adddatasource", + oauth2_scopes=None, + security_source=get_security_from_env( + self.sdk_configuration.security, models.Security + ), + ), + request=req, + error_status_codes=["400", "401", "4XX", "5XX"], + retry_config=retry_config, + ) + + if utils.match_response(http_res, "200", "*"): + return + if utils.match_response(http_res, ["400", "401", "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, "5XX", "*"): + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.GleanError("API error occurred", http_res, http_res_text) + + raise errors.GleanError("Unexpected response received", http_res) + + def retrieve_config( + self, + *, + datasource: str, + retries: OptionalNullable[utils.RetryConfig] = UNSET, + server_url: Optional[str] = None, + timeout_ms: Optional[int] = None, + http_headers: Optional[Mapping[str, str]] = None, + ) -> models.CustomDatasourceConfig: + r"""Get datasource config + + Fetches the datasource config for the specified custom datasource. + + :param datasource: Datasource name for which config is needed. + :param retries: Override the default retry configuration for this method + :param server_url: Override the default server URL for this method + :param timeout_ms: Override the default request timeout configuration for this method in milliseconds + :param http_headers: Additional headers to set or replace on requests. + """ + base_url = None + url_variables = None + if timeout_ms is None: + timeout_ms = self.sdk_configuration.timeout_ms + + if server_url is not None: + base_url = server_url + else: + base_url = self._get_url(base_url, url_variables) + + request = models.GetDatasourceConfigRequest( + datasource=datasource, + ) + + req = self._build_request( + method="POST", + path="/api/index/v1/getdatasourceconfig", + base_url=base_url, + url_variables=url_variables, + request=request, + request_body_required=True, + request_has_path_params=False, + request_has_query_params=True, + user_agent_header="user-agent", + accept_header_value="application/json", + http_headers=http_headers, + security=self.sdk_configuration.security, + get_serialized_body=lambda: utils.serialize_request_body( + request, False, False, "json", models.GetDatasourceConfigRequest + ), + allow_empty_value=None, + timeout_ms=timeout_ms, + ) + + if retries == UNSET: + if self.sdk_configuration.retry_config is not UNSET: + retries = self.sdk_configuration.retry_config + + retry_config = None + if isinstance(retries, utils.RetryConfig): + retry_config = (retries, ["429", "500", "502", "503", "504"]) + + http_res = self.do_request( + hook_ctx=HookContext( + config=self.sdk_configuration, + base_url=base_url or "", + operation_id="post_/api/index/v1/getdatasourceconfig", + oauth2_scopes=None, + security_source=get_security_from_env( + self.sdk_configuration.security, models.Security + ), + ), + request=req, + error_status_codes=["400", "401", "409", "4XX", "5XX"], + retry_config=retry_config, + ) + + if utils.match_response(http_res, "200", "application/json"): + return unmarshal_json_response(models.CustomDatasourceConfig, http_res) + if utils.match_response(http_res, ["400", "401", "409", "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, "5XX", "*"): + http_res_text = utils.stream_to_text(http_res) + raise errors.GleanError("API error occurred", http_res, http_res_text) + + raise errors.GleanError("Unexpected response received", http_res) + + async def retrieve_config_async( + self, + *, + datasource: str, + retries: OptionalNullable[utils.RetryConfig] = UNSET, + server_url: Optional[str] = None, + timeout_ms: Optional[int] = None, + http_headers: Optional[Mapping[str, str]] = None, + ) -> models.CustomDatasourceConfig: + r"""Get datasource config + + Fetches the datasource config for the specified custom datasource. + + :param datasource: Datasource name for which config is needed. + :param retries: Override the default retry configuration for this method + :param server_url: Override the default server URL for this method + :param timeout_ms: Override the default request timeout configuration for this method in milliseconds + :param http_headers: Additional headers to set or replace on requests. + """ + base_url = None + url_variables = None + if timeout_ms is None: + timeout_ms = self.sdk_configuration.timeout_ms + + if server_url is not None: + base_url = server_url + else: + base_url = self._get_url(base_url, url_variables) + + request = models.GetDatasourceConfigRequest( + datasource=datasource, + ) + + req = self._build_request_async( + method="POST", + path="/api/index/v1/getdatasourceconfig", + base_url=base_url, + url_variables=url_variables, + request=request, + request_body_required=True, + request_has_path_params=False, + request_has_query_params=True, + user_agent_header="user-agent", + accept_header_value="application/json", + http_headers=http_headers, + security=self.sdk_configuration.security, + get_serialized_body=lambda: utils.serialize_request_body( + request, False, False, "json", models.GetDatasourceConfigRequest + ), + allow_empty_value=None, + timeout_ms=timeout_ms, + ) + + if retries == UNSET: + if self.sdk_configuration.retry_config is not UNSET: + retries = self.sdk_configuration.retry_config + + retry_config = None + if isinstance(retries, utils.RetryConfig): + retry_config = (retries, ["429", "500", "502", "503", "504"]) + + http_res = await self.do_request_async( + hook_ctx=HookContext( + config=self.sdk_configuration, + base_url=base_url or "", + operation_id="post_/api/index/v1/getdatasourceconfig", + oauth2_scopes=None, + security_source=get_security_from_env( + self.sdk_configuration.security, models.Security + ), + ), + request=req, + error_status_codes=["400", "401", "409", "4XX", "5XX"], + retry_config=retry_config, + ) + + if utils.match_response(http_res, "200", "application/json"): + return unmarshal_json_response(models.CustomDatasourceConfig, http_res) + if utils.match_response(http_res, ["400", "401", "409", "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, "5XX", "*"): + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.GleanError("API error occurred", http_res, http_res_text) + + raise errors.GleanError("Unexpected response received", http_res) diff --git a/src/glean/api_client/models/__init__.py b/src/glean/api_client/models/__init__.py index 87205efe..980bdd63 100644 --- a/src/glean/api_client/models/__init__.py +++ b/src/glean/api_client/models/__init__.py @@ -310,6 +310,7 @@ ConferenceDataTypedDict, Provider, ) + from .configurationvalue import ConfigurationValue, ConfigurationValueTypedDict from .connectortype import ConnectorType from .contentdefinition import ContentDefinition, ContentDefinitionTypedDict from .contenttype import ContentType @@ -401,10 +402,18 @@ DatasourceBulkMembershipDefinition, DatasourceBulkMembershipDefinitionTypedDict, ) + from .datasourceconfigurationresponse import ( + DatasourceConfigurationResponse, + DatasourceConfigurationResponseTypedDict, + ) from .datasourcegroupdefinition import ( DatasourceGroupDefinition, DatasourceGroupDefinitionTypedDict, ) + from .datasourceinstanceconfiguration import ( + DatasourceInstanceConfiguration, + DatasourceInstanceConfigurationTypedDict, + ) from .datasourcemembershipdefinition import ( DatasourceMembershipDefinition, DatasourceMembershipDefinitionTypedDict, @@ -773,6 +782,10 @@ GetDatasourceConfigRequest, GetDatasourceConfigRequestTypedDict, ) + from .getdatasourceinstanceconfigurationop import ( + GetDatasourceInstanceConfigurationRequest, + GetDatasourceInstanceConfigurationRequestTypedDict, + ) from .getdlpreportresponse import ( GetDlpReportResponse, GetDlpReportResponseTypedDict, @@ -1258,6 +1271,14 @@ UpdateAnnouncementRequestPostType, UpdateAnnouncementRequestTypedDict, ) + from .updatedatasourceconfigurationrequest import ( + UpdateDatasourceConfigurationRequest, + UpdateDatasourceConfigurationRequestTypedDict, + ) + from .updatedatasourceinstanceconfigurationop import ( + UpdateDatasourceInstanceConfigurationRequest, + UpdateDatasourceInstanceConfigurationRequestTypedDict, + ) from .updatedlpconfigrequest import ( UpdateDlpConfigRequest, UpdateDlpConfigRequestTypedDict, @@ -1614,6 +1635,8 @@ "ConferenceData", "ConferenceDataSource", "ConferenceDataTypedDict", + "ConfigurationValue", + "ConfigurationValueTypedDict", "ConnectorType", "ContentDefinition", "ContentDefinitionTypedDict", @@ -1685,8 +1708,12 @@ "DatasourceBulkMembershipDefinition", "DatasourceBulkMembershipDefinitionTypedDict", "DatasourceCategory", + "DatasourceConfigurationResponse", + "DatasourceConfigurationResponseTypedDict", "DatasourceGroupDefinition", "DatasourceGroupDefinitionTypedDict", + "DatasourceInstanceConfiguration", + "DatasourceInstanceConfigurationTypedDict", "DatasourceMembershipDefinition", "DatasourceMembershipDefinitionTypedDict", "DatasourceObjectTypeDocumentCountEntry", @@ -1971,6 +1998,8 @@ "GetCollectionResponseTypedDict", "GetDatasourceConfigRequest", "GetDatasourceConfigRequestTypedDict", + "GetDatasourceInstanceConfigurationRequest", + "GetDatasourceInstanceConfigurationRequestTypedDict", "GetDlpReportResponse", "GetDlpReportResponseTypedDict", "GetDocPermissionsRequest", @@ -2459,6 +2488,10 @@ "UpdateAnnouncementRequestChannel", "UpdateAnnouncementRequestPostType", "UpdateAnnouncementRequestTypedDict", + "UpdateDatasourceConfigurationRequest", + "UpdateDatasourceConfigurationRequestTypedDict", + "UpdateDatasourceInstanceConfigurationRequest", + "UpdateDatasourceInstanceConfigurationRequestTypedDict", "UpdateDlpConfigRequest", "UpdateDlpConfigRequestTypedDict", "UpdateDlpConfigResponse", @@ -2729,6 +2762,8 @@ "ConferenceDataSource": ".conferencedata", "ConferenceDataTypedDict": ".conferencedata", "Provider": ".conferencedata", + "ConfigurationValue": ".configurationvalue", + "ConfigurationValueTypedDict": ".configurationvalue", "ConnectorType": ".connectortype", "ContentDefinition": ".contentdefinition", "ContentDefinitionTypedDict": ".contentdefinition", @@ -2794,8 +2829,12 @@ "CustomSensitiveRuleType": ".customsensitiveruletype", "DatasourceBulkMembershipDefinition": ".datasourcebulkmembershipdefinition", "DatasourceBulkMembershipDefinitionTypedDict": ".datasourcebulkmembershipdefinition", + "DatasourceConfigurationResponse": ".datasourceconfigurationresponse", + "DatasourceConfigurationResponseTypedDict": ".datasourceconfigurationresponse", "DatasourceGroupDefinition": ".datasourcegroupdefinition", "DatasourceGroupDefinitionTypedDict": ".datasourcegroupdefinition", + "DatasourceInstanceConfiguration": ".datasourceinstanceconfiguration", + "DatasourceInstanceConfigurationTypedDict": ".datasourceinstanceconfiguration", "DatasourceMembershipDefinition": ".datasourcemembershipdefinition", "DatasourceMembershipDefinitionTypedDict": ".datasourcemembershipdefinition", "DatasourceObjectTypeDocumentCountEntry": ".datasourceobjecttypedocumentcountentry", @@ -3085,6 +3124,8 @@ "GetCollectionResponseTypedDict": ".getcollectionresponse", "GetDatasourceConfigRequest": ".getdatasourceconfigrequest", "GetDatasourceConfigRequestTypedDict": ".getdatasourceconfigrequest", + "GetDatasourceInstanceConfigurationRequest": ".getdatasourceinstanceconfigurationop", + "GetDatasourceInstanceConfigurationRequestTypedDict": ".getdatasourceinstanceconfigurationop", "GetDlpReportResponse": ".getdlpreportresponse", "GetDlpReportResponseTypedDict": ".getdlpreportresponse", "GetdocpermissionsRequestRequest": ".getdocpermissionsop", @@ -3497,6 +3538,10 @@ "UpdateAnnouncementRequestChannel": ".updateannouncementrequest", "UpdateAnnouncementRequestPostType": ".updateannouncementrequest", "UpdateAnnouncementRequestTypedDict": ".updateannouncementrequest", + "UpdateDatasourceConfigurationRequest": ".updatedatasourceconfigurationrequest", + "UpdateDatasourceConfigurationRequestTypedDict": ".updatedatasourceconfigurationrequest", + "UpdateDatasourceInstanceConfigurationRequest": ".updatedatasourceinstanceconfigurationop", + "UpdateDatasourceInstanceConfigurationRequestTypedDict": ".updatedatasourceinstanceconfigurationop", "UpdateDlpConfigRequest": ".updatedlpconfigrequest", "UpdateDlpConfigRequestTypedDict": ".updatedlpconfigrequest", "UpdateDlpConfigResponse": ".updatedlpconfigresponse", diff --git a/src/glean/api_client/models/actionsummary.py b/src/glean/api_client/models/actionsummary.py index ed3d1250..a547e75e 100644 --- a/src/glean/api_client/models/actionsummary.py +++ b/src/glean/api_client/models/actionsummary.py @@ -1,8 +1,10 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from glean.api_client.types import BaseModel -from typing_extensions import TypedDict +from glean.api_client.types import BaseModel, UNSET_SENTINEL +from pydantic import model_serializer +from typing import Optional +from typing_extensions import NotRequired, TypedDict class ActionSummaryTypedDict(TypedDict): @@ -12,6 +14,27 @@ class ActionSummaryTypedDict(TypedDict): r"""The unique identifier of the action.""" display_name: str r"""The display name of the action.""" + type: NotRequired[str] + r"""The type of tool - RETRIEVAL for read-only operations, ACTION for operations that modify data.""" + auth_type: NotRequired[str] + r"""The authentication type required - OAUTH_USER, OAUTH_ADMIN, API_KEY, BASIC_AUTH, DWD (domain-wide delegation), or NONE.""" + write_action_type: NotRequired[str] + r"""For write actions only - REDIRECT (client renders URL) or EXECUTION (external server call).""" + is_setup_finished: NotRequired[bool] + r"""Whether this action has been fully configured and validated.""" + data_source: NotRequired[str] + r"""Indicates the kind of knowledge a tool would access or modify. + Company knowledge: + - Glean search, and any native tools that derive from it (e.g., expert search, code search) + - Native federated tools to company data sources (e.g., outlook search) + World knowledge: + - Native tools that bring in public content (e.g., web browser) + - Platform action like bingwebsearch, geminiwebsearch, etc + Neutral knowledge: + - Native tools that don't access or modify content via APIs (e.g., file analyst, think) + - Platform read or write tools (creator has to determine their knowledge implications) + + """ class ActionSummary(BaseModel): @@ -22,3 +45,53 @@ class ActionSummary(BaseModel): display_name: str r"""The display name of the action.""" + + type: Optional[str] = None + r"""The type of tool - RETRIEVAL for read-only operations, ACTION for operations that modify data.""" + + auth_type: Optional[str] = None + r"""The authentication type required - OAUTH_USER, OAUTH_ADMIN, API_KEY, BASIC_AUTH, DWD (domain-wide delegation), or NONE.""" + + write_action_type: Optional[str] = None + r"""For write actions only - REDIRECT (client renders URL) or EXECUTION (external server call).""" + + is_setup_finished: Optional[bool] = None + r"""Whether this action has been fully configured and validated.""" + + data_source: Optional[str] = None + r"""Indicates the kind of knowledge a tool would access or modify. + Company knowledge: + - Glean search, and any native tools that derive from it (e.g., expert search, code search) + - Native federated tools to company data sources (e.g., outlook search) + World knowledge: + - Native tools that bring in public content (e.g., web browser) + - Platform action like bingwebsearch, geminiwebsearch, etc + Neutral knowledge: + - Native tools that don't access or modify content via APIs (e.g., file analyst, think) + - Platform read or write tools (creator has to determine their knowledge implications) + + """ + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set( + [ + "type", + "auth_type", + "write_action_type", + "is_setup_finished", + "data_source", + ] + ) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/glean/api_client/models/agentconfig.py b/src/glean/api_client/models/agentconfig.py index a4b95362..8ec290ed 100644 --- a/src/glean/api_client/models/agentconfig.py +++ b/src/glean/api_client/models/agentconfig.py @@ -3,14 +3,15 @@ from __future__ import annotations from .toolsets import ToolSets, ToolSetsTypedDict from enum import Enum +from glean.api_client import models, utils from glean.api_client.types import BaseModel, UNSET_SENTINEL import pydantic -from pydantic import model_serializer +from pydantic import field_serializer, model_serializer from typing import Optional from typing_extensions import Annotated, NotRequired, TypedDict -class AgentEnum(str, Enum): +class AgentEnum(str, Enum, metaclass=utils.OpenEnumMeta): r"""Name of the agent.""" # Integrates with your company's knowledge. This will soon be deprecated in favor of the FAST and ADVANCED `agent` values @@ -27,7 +28,7 @@ class AgentEnum(str, Enum): AUTO = "AUTO" -class Mode(str, Enum): +class Mode(str, Enum, metaclass=utils.OpenEnumMeta): r"""Top level modes to run GleanChat in.""" # Used if no mode supplied. @@ -66,6 +67,24 @@ class AgentConfig(BaseModel): ] = None r"""Whether the agent should create an image.""" + @field_serializer("agent") + def serialize_agent(self, value): + if isinstance(value, str): + try: + return models.AgentEnum(value) + except ValueError: + return value + return value + + @field_serializer("mode") + def serialize_mode(self, value): + if isinstance(value, str): + try: + return models.Mode(value) + except ValueError: + return value + return value + @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = set(["agent", "toolSets", "mode", "useImageGeneration"]) diff --git a/src/glean/api_client/models/agentexecutionstatus.py b/src/glean/api_client/models/agentexecutionstatus.py index fa71fb35..b93cae26 100644 --- a/src/glean/api_client/models/agentexecutionstatus.py +++ b/src/glean/api_client/models/agentexecutionstatus.py @@ -2,9 +2,10 @@ from __future__ import annotations from enum import Enum +from glean.api_client import utils -class AgentExecutionStatus(str, Enum): +class AgentExecutionStatus(str, Enum, metaclass=utils.OpenEnumMeta): r"""The status of the run. One of 'error', 'success'.""" ERROR = "error" diff --git a/src/glean/api_client/models/agentrun.py b/src/glean/api_client/models/agentrun.py index 4c519b56..259808eb 100644 --- a/src/glean/api_client/models/agentrun.py +++ b/src/glean/api_client/models/agentrun.py @@ -3,8 +3,9 @@ from __future__ import annotations from .agentexecutionstatus import AgentExecutionStatus from .message import Message, MessageTypedDict +from glean.api_client import models from glean.api_client.types import BaseModel, UNSET_SENTINEL -from pydantic import model_serializer +from pydantic import field_serializer, model_serializer from typing import Any, Dict, List, Optional from typing_extensions import NotRequired, TypedDict @@ -42,6 +43,15 @@ class AgentRun(BaseModel): status: Optional[AgentExecutionStatus] = None r"""The status of the run. One of 'error', 'success'.""" + @field_serializer("status") + def serialize_status(self, value): + if isinstance(value, str): + try: + return models.AgentExecutionStatus(value) + except ValueError: + return value + return value + @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = set(["input", "messages", "metadata", "status"]) diff --git a/src/glean/api_client/models/announcement.py b/src/glean/api_client/models/announcement.py index 10be615e..3f5ec7e1 100644 --- a/src/glean/api_client/models/announcement.py +++ b/src/glean/api_client/models/announcement.py @@ -9,21 +9,22 @@ from .thumbnail import Thumbnail, ThumbnailTypedDict from datetime import datetime from enum import Enum +from glean.api_client import models, utils from glean.api_client.types import BaseModel, UNSET_SENTINEL import pydantic -from pydantic import model_serializer +from pydantic import field_serializer, model_serializer from typing import List, Optional from typing_extensions import Annotated, NotRequired, TypedDict -class AnnouncementChannel(str, Enum): +class AnnouncementChannel(str, Enum, metaclass=utils.OpenEnumMeta): r"""This determines whether this is a Social Feed post or a regular announcement.""" MAIN = "MAIN" SOCIAL_FEED = "SOCIAL_FEED" -class AnnouncementPostType(str, Enum): +class AnnouncementPostType(str, Enum, metaclass=utils.OpenEnumMeta): r"""This determines whether this is an external-link post or a regular announcement post. TEXT - Regular announcement that can contain rich text. LINK - Announcement that is linked to an external site.""" TEXT = "TEXT" @@ -187,6 +188,24 @@ class Announcement(BaseModel): is_published: Annotated[Optional[bool], pydantic.Field(alias="isPublished")] = None r"""Whether or not the announcement is published.""" + @field_serializer("channel") + def serialize_channel(self, value): + if isinstance(value, str): + try: + return models.AnnouncementChannel(value) + except ValueError: + return value + return value + + @field_serializer("post_type") + def serialize_post_type(self, value): + if isinstance(value, str): + try: + return models.AnnouncementPostType(value) + except ValueError: + return value + return value + @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = set( diff --git a/src/glean/api_client/models/anonymousevent.py b/src/glean/api_client/models/anonymousevent.py index 03b8cf1d..4b4ef1d9 100644 --- a/src/glean/api_client/models/anonymousevent.py +++ b/src/glean/api_client/models/anonymousevent.py @@ -3,14 +3,15 @@ from __future__ import annotations from .timeinterval import TimeInterval, TimeIntervalTypedDict from enum import Enum +from glean.api_client import models, utils from glean.api_client.types import BaseModel, UNSET_SENTINEL import pydantic -from pydantic import model_serializer +from pydantic import field_serializer, model_serializer from typing import Optional from typing_extensions import Annotated, NotRequired, TypedDict -class AnonymousEventEventType(str, Enum): +class AnonymousEventEventType(str, Enum, metaclass=utils.OpenEnumMeta): r"""The nature of the event, for example \"out of office\".""" DEFAULT = "DEFAULT" @@ -35,6 +36,15 @@ class AnonymousEvent(BaseModel): ] = None r"""The nature of the event, for example \"out of office\".""" + @field_serializer("event_type") + def serialize_event_type(self, value): + if isinstance(value, str): + try: + return models.AnonymousEventEventType(value) + except ValueError: + return value + return value + @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = set(["time", "eventType"]) diff --git a/src/glean/api_client/models/answer.py b/src/glean/api_client/models/answer.py index b6791d1e..31b7944a 100644 --- a/src/glean/api_client/models/answer.py +++ b/src/glean/api_client/models/answer.py @@ -6,9 +6,10 @@ from .objectpermissions import ObjectPermissions, ObjectPermissionsTypedDict from datetime import datetime from enum import Enum +from glean.api_client import models, utils from glean.api_client.types import BaseModel, UNSET_SENTINEL import pydantic -from pydantic import model_serializer +from pydantic import field_serializer, model_serializer from typing import List, Optional, TYPE_CHECKING from typing_extensions import Annotated, NotRequired, TypedDict @@ -25,7 +26,7 @@ from .verification import Verification, VerificationTypedDict -class AnswerSourceType(str, Enum): +class AnswerSourceType(str, Enum, metaclass=utils.OpenEnumMeta): DOCUMENT = "DOCUMENT" ASSISTANT = "ASSISTANT" @@ -157,6 +158,15 @@ class Answer(BaseModel): Optional["Document"], pydantic.Field(alias="sourceDocument") ] = None + @field_serializer("source_type") + def serialize_source_type(self, value): + if isinstance(value, str): + try: + return models.AnswerSourceType(value) + except ValueError: + return value + return value + @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = set( diff --git a/src/glean/api_client/models/authconfig.py b/src/glean/api_client/models/authconfig.py index 4179e9d2..86f978f5 100644 --- a/src/glean/api_client/models/authconfig.py +++ b/src/glean/api_client/models/authconfig.py @@ -3,14 +3,15 @@ from __future__ import annotations from datetime import datetime from enum import Enum +from glean.api_client import models, utils from glean.api_client.types import BaseModel, UNSET_SENTINEL import pydantic -from pydantic import model_serializer +from pydantic import field_serializer, model_serializer from typing import List, Optional from typing_extensions import Annotated, NotRequired, TypedDict -class AuthConfigType(str, Enum): +class AuthConfigType(str, Enum, metaclass=utils.OpenEnumMeta): r"""The type of authentication being used. Use 'OAUTH_*' when Glean calls an external API (e.g., Jira) on behalf of a user to obtain an OAuth token. 'OAUTH_ADMIN' utilizes an admin token for external API calls on behalf all users. @@ -27,14 +28,14 @@ class AuthConfigType(str, Enum): DWD = "DWD" -class GrantType(str, Enum): +class GrantType(str, Enum, metaclass=utils.OpenEnumMeta): r"""The type of grant type being used.""" AUTH_CODE = "AUTH_CODE" CLIENT_CREDENTIALS = "CLIENT_CREDENTIALS" -class AuthConfigStatus(str, Enum): +class AuthConfigStatus(str, Enum, metaclass=utils.OpenEnumMeta): r"""Auth status of the tool.""" AWAITING_AUTH = "AWAITING_AUTH" @@ -116,6 +117,33 @@ class AuthConfig(BaseModel): ] = None r"""The time the tool was last authorized in ISO format (ISO 8601).""" + @field_serializer("type") + def serialize_type(self, value): + if isinstance(value, str): + try: + return models.AuthConfigType(value) + except ValueError: + return value + return value + + @field_serializer("grant_type") + def serialize_grant_type(self, value): + if isinstance(value, str): + try: + return models.GrantType(value) + except ValueError: + return value + return value + + @field_serializer("status") + def serialize_status(self, value): + if isinstance(value, str): + try: + return models.AuthConfigStatus(value) + except ValueError: + return value + return value + @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = set( diff --git a/src/glean/api_client/models/authstatus.py b/src/glean/api_client/models/authstatus.py index 0916a831..ea66e454 100644 --- a/src/glean/api_client/models/authstatus.py +++ b/src/glean/api_client/models/authstatus.py @@ -2,9 +2,10 @@ from __future__ import annotations from enum import Enum +from glean.api_client import utils -class AuthStatus(str, Enum): +class AuthStatus(str, Enum, metaclass=utils.OpenEnumMeta): r"""The per-user authorization status for a datasource.""" DISABLED = "DISABLED" diff --git a/src/glean/api_client/models/autocompleteresult.py b/src/glean/api_client/models/autocompleteresult.py index 2a7b1789..cd95aafb 100644 --- a/src/glean/api_client/models/autocompleteresult.py +++ b/src/glean/api_client/models/autocompleteresult.py @@ -7,14 +7,15 @@ from .structuredresult import StructuredResult, StructuredResultTypedDict from .textrange import TextRange, TextRangeTypedDict from enum import Enum +from glean.api_client import models, utils from glean.api_client.types import BaseModel, UNSET_SENTINEL import pydantic -from pydantic import model_serializer +from pydantic import field_serializer, model_serializer from typing import List, Optional from typing_extensions import Annotated, NotRequired, TypedDict -class AutocompleteResultResultType(str, Enum): +class AutocompleteResultResultType(str, Enum, metaclass=utils.OpenEnumMeta): ADDITIONAL_DOCUMENT = "ADDITIONAL_DOCUMENT" APP = "APP" BROWSER_HISTORY = "BROWSER_HISTORY" @@ -88,6 +89,15 @@ class AutocompleteResult(BaseModel): ranges: Optional[List[TextRange]] = None r"""Subsections of the result string to which some special formatting should be applied (eg. bold)""" + @field_serializer("result_type") + def serialize_result_type(self, value): + if isinstance(value, str): + try: + return models.AutocompleteResultResultType(value) + except ValueError: + return value + return value + @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = set( diff --git a/src/glean/api_client/models/bulkuploadhistoryevent.py b/src/glean/api_client/models/bulkuploadhistoryevent.py index a5e3d43d..19b02462 100644 --- a/src/glean/api_client/models/bulkuploadhistoryevent.py +++ b/src/glean/api_client/models/bulkuploadhistoryevent.py @@ -2,21 +2,22 @@ from __future__ import annotations from enum import Enum +from glean.api_client import models, utils from glean.api_client.types import BaseModel, UNSET_SENTINEL import pydantic -from pydantic import model_serializer +from pydantic import field_serializer, model_serializer from typing import Optional from typing_extensions import Annotated, NotRequired, TypedDict -class BulkUploadHistoryEventStatus(str, Enum): +class BulkUploadHistoryEventStatus(str, Enum, metaclass=utils.OpenEnumMeta): r"""The status of the upload, an enum of ACTIVE, SUCCESSFUL""" ACTIVE = "ACTIVE" SUCCESSFUL = "SUCCESSFUL" -class ProcessingState(str, Enum): +class ProcessingState(str, Enum, metaclass=utils.OpenEnumMeta): r"""The current state of the upload, an enum of UNAVAILABLE, UPLOAD STARTED, UPLOAD IN PROGRESS, UPLOAD COMPLETED, DELETION PAUSED, INDEXING COMPLETED""" UNAVAILABLE = "UNAVAILABLE" @@ -62,6 +63,24 @@ class BulkUploadHistoryEvent(BaseModel): ] = None r"""The current state of the upload, an enum of UNAVAILABLE, UPLOAD STARTED, UPLOAD IN PROGRESS, UPLOAD COMPLETED, DELETION PAUSED, INDEXING COMPLETED""" + @field_serializer("status") + def serialize_status(self, value): + if isinstance(value, str): + try: + return models.BulkUploadHistoryEventStatus(value) + except ValueError: + return value + return value + + @field_serializer("processing_state") + def serialize_processing_state(self, value): + if isinstance(value, str): + try: + return models.ProcessingState(value) + except ValueError: + return value + return value + @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = set( diff --git a/src/glean/api_client/models/calendarattendee.py b/src/glean/api_client/models/calendarattendee.py index 3f79c72a..a9376eb5 100644 --- a/src/glean/api_client/models/calendarattendee.py +++ b/src/glean/api_client/models/calendarattendee.py @@ -2,9 +2,10 @@ from __future__ import annotations from enum import Enum +from glean.api_client import models, utils from glean.api_client.types import BaseModel, UNSET_SENTINEL import pydantic -from pydantic import model_serializer +from pydantic import field_serializer, model_serializer from typing import List, Optional, TYPE_CHECKING from typing_extensions import Annotated, NotRequired, TypedDict @@ -12,7 +13,7 @@ from .person import Person, PersonTypedDict -class ResponseStatus(str, Enum): +class ResponseStatus(str, Enum, metaclass=utils.OpenEnumMeta): ACCEPTED = "ACCEPTED" DECLINED = "DECLINED" NO_RESPONSE = "NO_RESPONSE" @@ -48,6 +49,15 @@ class CalendarAttendee(BaseModel): Optional[ResponseStatus], pydantic.Field(alias="responseStatus") ] = None + @field_serializer("response_status") + def serialize_response_status(self, value): + if isinstance(value, str): + try: + return models.ResponseStatus(value) + except ValueError: + return value + return value + @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = set( diff --git a/src/glean/api_client/models/calendarevent.py b/src/glean/api_client/models/calendarevent.py index bf08702d..9fe34430 100644 --- a/src/glean/api_client/models/calendarevent.py +++ b/src/glean/api_client/models/calendarevent.py @@ -7,14 +7,15 @@ from .generatedattachment import GeneratedAttachment, GeneratedAttachmentTypedDict from .timeinterval import TimeInterval, TimeIntervalTypedDict from enum import Enum +from glean.api_client import models, utils from glean.api_client.types import BaseModel, UNSET_SENTINEL import pydantic -from pydantic import model_serializer +from pydantic import field_serializer, model_serializer from typing import List, Optional from typing_extensions import Annotated, NotRequired, TypedDict -class CalendarEventEventType(str, Enum): +class CalendarEventEventType(str, Enum, metaclass=utils.OpenEnumMeta): r"""The nature of the event, for example \"out of office\".""" DEFAULT = "DEFAULT" @@ -95,6 +96,15 @@ class CalendarEvent(BaseModel): pydantic.Field(alias="generatedAttachments"), ] = None + @field_serializer("event_type") + def serialize_event_type(self, value): + if isinstance(value, str): + try: + return models.CalendarEventEventType(value) + except ValueError: + return value + return value + @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = set( diff --git a/src/glean/api_client/models/channelinviteinfo.py b/src/glean/api_client/models/channelinviteinfo.py index d7d38ee4..f8743a88 100644 --- a/src/glean/api_client/models/channelinviteinfo.py +++ b/src/glean/api_client/models/channelinviteinfo.py @@ -3,9 +3,10 @@ from __future__ import annotations from .communicationchannel import CommunicationChannel from datetime import datetime +from glean.api_client import models from glean.api_client.types import BaseModel, UNSET_SENTINEL import pydantic -from pydantic import model_serializer +from pydantic import field_serializer, model_serializer from typing import Optional, TYPE_CHECKING from typing_extensions import Annotated, NotRequired, TypedDict @@ -48,6 +49,15 @@ class ChannelInviteInfo(BaseModel): ] = None r"""The time this person was reminded in ISO format (ISO 8601) if a reminder was sent.""" + @field_serializer("channel") + def serialize_channel(self, value): + if isinstance(value, str): + try: + return models.CommunicationChannel(value) + except ValueError: + return value + return value + @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = set( diff --git a/src/glean/api_client/models/chatfilefailurereason.py b/src/glean/api_client/models/chatfilefailurereason.py index fdae3190..cb81e15e 100644 --- a/src/glean/api_client/models/chatfilefailurereason.py +++ b/src/glean/api_client/models/chatfilefailurereason.py @@ -2,9 +2,10 @@ from __future__ import annotations from enum import Enum +from glean.api_client import utils -class ChatFileFailureReason(str, Enum): +class ChatFileFailureReason(str, Enum, metaclass=utils.OpenEnumMeta): r"""Reason for failed status.""" PARSE_FAILED = "PARSE_FAILED" diff --git a/src/glean/api_client/models/chatfilemetadata.py b/src/glean/api_client/models/chatfilemetadata.py index 2c657df7..73d55cac 100644 --- a/src/glean/api_client/models/chatfilemetadata.py +++ b/src/glean/api_client/models/chatfilemetadata.py @@ -3,9 +3,10 @@ from __future__ import annotations from .chatfilefailurereason import ChatFileFailureReason from .chatfilestatus import ChatFileStatus +from glean.api_client import models from glean.api_client.types import BaseModel, UNSET_SENTINEL import pydantic -from pydantic import model_serializer +from pydantic import field_serializer, model_serializer from typing import Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -47,6 +48,24 @@ class ChatFileMetadata(BaseModel): mime_type: Annotated[Optional[str], pydantic.Field(alias="mimeType")] = None r"""MIME type of the file.""" + @field_serializer("status") + def serialize_status(self, value): + if isinstance(value, str): + try: + return models.ChatFileStatus(value) + except ValueError: + return value + return value + + @field_serializer("failure_reason") + def serialize_failure_reason(self, value): + if isinstance(value, str): + try: + return models.ChatFileFailureReason(value) + except ValueError: + return value + return value + @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = set( diff --git a/src/glean/api_client/models/chatfilestatus.py b/src/glean/api_client/models/chatfilestatus.py index c9a17724..0628b167 100644 --- a/src/glean/api_client/models/chatfilestatus.py +++ b/src/glean/api_client/models/chatfilestatus.py @@ -2,9 +2,10 @@ from __future__ import annotations from enum import Enum +from glean.api_client import utils -class ChatFileStatus(str, Enum): +class ChatFileStatus(str, Enum, metaclass=utils.OpenEnumMeta): r"""Current status of the file.""" PROCESSING = "PROCESSING" diff --git a/src/glean/api_client/models/chatmessage.py b/src/glean/api_client/models/chatmessage.py index 1755a240..16aa62ea 100644 --- a/src/glean/api_client/models/chatmessage.py +++ b/src/glean/api_client/models/chatmessage.py @@ -5,19 +5,20 @@ from .chatmessagecitation import ChatMessageCitation, ChatMessageCitationTypedDict from .chatmessagefragment import ChatMessageFragment, ChatMessageFragmentTypedDict from enum import Enum +from glean.api_client import models, utils from glean.api_client.types import BaseModel, UNSET_SENTINEL import pydantic -from pydantic import model_serializer +from pydantic import field_serializer, model_serializer from typing import List, Optional from typing_extensions import Annotated, NotRequired, TypedDict -class Author(str, Enum): +class Author(str, Enum, metaclass=utils.OpenEnumMeta): USER = "USER" GLEAN_AI = "GLEAN_AI" -class MessageType(str, Enum): +class MessageType(str, Enum, metaclass=utils.OpenEnumMeta): r"""Semantically groups content of a certain type. It can be used for purposes such as differential UI treatment. USER authored messages should be of type CONTENT and do not need `messageType` specified.""" # An intermediate state message for progress updates. @@ -127,6 +128,24 @@ class ChatMessage(BaseModel): ] = None r"""Signals there are additional response fragments incoming.""" + @field_serializer("author") + def serialize_author(self, value): + if isinstance(value, str): + try: + return models.Author(value) + except ValueError: + return value + return value + + @field_serializer("message_type") + def serialize_message_type(self, value): + if isinstance(value, str): + try: + return models.MessageType(value) + except ValueError: + return value + return value + @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = set( diff --git a/src/glean/api_client/models/chatresponse.py b/src/glean/api_client/models/chatresponse.py index 1ca61712..1d9c491f 100644 --- a/src/glean/api_client/models/chatresponse.py +++ b/src/glean/api_client/models/chatresponse.py @@ -2,10 +2,6 @@ from __future__ import annotations from .chatmessage import ChatMessage, ChatMessageTypedDict -from .unauthorizeddatasourceinstance import ( - UnauthorizedDatasourceInstance, - UnauthorizedDatasourceInstanceTypedDict, -) from glean.api_client.types import BaseModel, UNSET_SENTINEL import pydantic from pydantic import model_serializer @@ -25,12 +21,6 @@ class ChatResponseTypedDict(TypedDict): r"""Time in milliseconds the backend took to respond to the request.""" chat_session_tracking_token: NotRequired[str] r"""A token that is used to track the session.""" - unauthorized_datasource_instances: NotRequired[ - List[UnauthorizedDatasourceInstanceTypedDict] - ] - r"""Datasource instances that could not be queried because the user has not completed or has expired per-user OAuth, aggregated across all tools invoked in this turn. - - """ class ChatResponse(BaseModel): @@ -56,14 +46,6 @@ class ChatResponse(BaseModel): ] = None r"""A token that is used to track the session.""" - unauthorized_datasource_instances: Annotated[ - Optional[List[UnauthorizedDatasourceInstance]], - pydantic.Field(alias="unauthorizedDatasourceInstances"), - ] = None - r"""Datasource instances that could not be queried because the user has not completed or has expired per-user OAuth, aggregated across all tools invoked in this turn. - - """ - @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = set( @@ -73,7 +55,6 @@ def serialize_model(self, handler): "followUpPrompts", "backendTimeMillis", "chatSessionTrackingToken", - "unauthorizedDatasourceInstances", ] ) serialized = handler(self) diff --git a/src/glean/api_client/models/clustergroup.py b/src/glean/api_client/models/clustergroup.py index e8a93332..64317cf2 100644 --- a/src/glean/api_client/models/clustergroup.py +++ b/src/glean/api_client/models/clustergroup.py @@ -2,9 +2,10 @@ from __future__ import annotations from .clustertypeenum import ClusterTypeEnum +from glean.api_client import models from glean.api_client.types import BaseModel, UNSET_SENTINEL import pydantic -from pydantic import model_serializer +from pydantic import field_serializer, model_serializer from typing import List, Optional, TYPE_CHECKING from typing_extensions import Annotated, NotRequired, TypedDict @@ -35,6 +36,15 @@ class ClusterGroup(BaseModel): ] = None r"""The reason for inclusion of clusteredResults.""" + @field_serializer("cluster_type") + def serialize_cluster_type(self, value): + if isinstance(value, str): + try: + return models.ClusterTypeEnum(value) + except ValueError: + return value + return value + @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = set(["clusteredResults", "clusterType"]) diff --git a/src/glean/api_client/models/clustertypeenum.py b/src/glean/api_client/models/clustertypeenum.py index 3e83e2ef..d599d8ac 100644 --- a/src/glean/api_client/models/clustertypeenum.py +++ b/src/glean/api_client/models/clustertypeenum.py @@ -2,9 +2,10 @@ from __future__ import annotations from enum import Enum +from glean.api_client import utils -class ClusterTypeEnum(str, Enum): +class ClusterTypeEnum(str, Enum, metaclass=utils.OpenEnumMeta): r"""The reason for inclusion of clusteredResults.""" SIMILAR = "SIMILAR" diff --git a/src/glean/api_client/models/collectionerror.py b/src/glean/api_client/models/collectionerror.py index ed055eda..ef1aa0da 100644 --- a/src/glean/api_client/models/collectionerror.py +++ b/src/glean/api_client/models/collectionerror.py @@ -2,12 +2,14 @@ from __future__ import annotations from enum import Enum +from glean.api_client import models, utils from glean.api_client.types import BaseModel import pydantic +from pydantic import field_serializer from typing_extensions import Annotated, TypedDict -class CollectionErrorErrorCode(str, Enum): +class CollectionErrorErrorCode(str, Enum, metaclass=utils.OpenEnumMeta): NAME_EXISTS = "NAME_EXISTS" NOT_FOUND = "NOT_FOUND" COLLECTION_PINNED = "COLLECTION_PINNED" @@ -24,6 +26,15 @@ class CollectionErrorTypedDict(TypedDict): class CollectionError(BaseModel): error_code: Annotated[CollectionErrorErrorCode, pydantic.Field(alias="errorCode")] + @field_serializer("error_code") + def serialize_error_code(self, value): + if isinstance(value, str): + try: + return models.CollectionErrorErrorCode(value) + except ValueError: + return value + return value + try: CollectionError.model_rebuild() diff --git a/src/glean/api_client/models/collectionitem.py b/src/glean/api_client/models/collectionitem.py index 5a4f41f2..0f05f119 100644 --- a/src/glean/api_client/models/collectionitem.py +++ b/src/glean/api_client/models/collectionitem.py @@ -3,9 +3,10 @@ from __future__ import annotations from datetime import datetime from enum import Enum +from glean.api_client import models, utils from glean.api_client.types import BaseModel, UNSET_SENTINEL import pydantic -from pydantic import model_serializer +from pydantic import field_serializer, model_serializer from typing import Optional, TYPE_CHECKING from typing_extensions import Annotated, NotRequired, TypedDict @@ -16,7 +17,7 @@ from .shortcut import Shortcut, ShortcutTypedDict -class CollectionItemItemType(str, Enum): +class CollectionItemItemType(str, Enum, metaclass=utils.OpenEnumMeta): DOCUMENT = "DOCUMENT" TEXT = "TEXT" URL = "URL" @@ -82,6 +83,15 @@ class CollectionItem(BaseModel): collection: Optional["Collection"] = None + @field_serializer("item_type") + def serialize_item_type(self, value): + if isinstance(value, str): + try: + return models.CollectionItemItemType(value) + except ValueError: + return value + return value + @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = set( diff --git a/src/glean/api_client/models/collectionpinnablecategories.py b/src/glean/api_client/models/collectionpinnablecategories.py index d28cd94a..55c467b9 100644 --- a/src/glean/api_client/models/collectionpinnablecategories.py +++ b/src/glean/api_client/models/collectionpinnablecategories.py @@ -2,9 +2,10 @@ from __future__ import annotations from enum import Enum +from glean.api_client import utils -class CollectionPinnableCategories(str, Enum): +class CollectionPinnableCategories(str, Enum, metaclass=utils.OpenEnumMeta): r"""Categories a Collection can be pinned to.""" COMPANY_RESOURCE = "COMPANY_RESOURCE" diff --git a/src/glean/api_client/models/collectionpinnabletargets.py b/src/glean/api_client/models/collectionpinnabletargets.py index eac2d5e7..c440d473 100644 --- a/src/glean/api_client/models/collectionpinnabletargets.py +++ b/src/glean/api_client/models/collectionpinnabletargets.py @@ -2,9 +2,10 @@ from __future__ import annotations from enum import Enum +from glean.api_client import utils -class CollectionPinnableTargets(str, Enum): +class CollectionPinnableTargets(str, Enum, metaclass=utils.OpenEnumMeta): r"""What targets can a Collection be pinned to.""" RESOURCE_CARD = "RESOURCE_CARD" diff --git a/src/glean/api_client/models/collectionpintarget.py b/src/glean/api_client/models/collectionpintarget.py index 173bcf4f..54c8ec92 100644 --- a/src/glean/api_client/models/collectionpintarget.py +++ b/src/glean/api_client/models/collectionpintarget.py @@ -3,8 +3,9 @@ from __future__ import annotations from .collectionpinnablecategories import CollectionPinnableCategories from .collectionpinnabletargets import CollectionPinnableTargets +from glean.api_client import models from glean.api_client.types import BaseModel, UNSET_SENTINEL -from pydantic import model_serializer +from pydantic import field_serializer, model_serializer from typing import Optional from typing_extensions import NotRequired, TypedDict @@ -28,6 +29,24 @@ class CollectionPinTarget(BaseModel): target: Optional[CollectionPinnableTargets] = None r"""What targets can a Collection be pinned to.""" + @field_serializer("category") + def serialize_category(self, value): + if isinstance(value, str): + try: + return models.CollectionPinnableCategories(value) + except ValueError: + return value + return value + + @field_serializer("target") + def serialize_target(self, value): + if isinstance(value, str): + try: + return models.CollectionPinnableTargets(value) + except ValueError: + return value + return value + @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = set(["value", "target"]) diff --git a/src/glean/api_client/models/communicationchannel.py b/src/glean/api_client/models/communicationchannel.py index e315cc1d..36d9d830 100644 --- a/src/glean/api_client/models/communicationchannel.py +++ b/src/glean/api_client/models/communicationchannel.py @@ -2,8 +2,9 @@ from __future__ import annotations from enum import Enum +from glean.api_client import utils -class CommunicationChannel(str, Enum): +class CommunicationChannel(str, Enum, metaclass=utils.OpenEnumMeta): COMMUNICATION_CHANNEL_EMAIL = "COMMUNICATION_CHANNEL_EMAIL" COMMUNICATION_CHANNEL_SLACK = "COMMUNICATION_CHANNEL_SLACK" diff --git a/src/glean/api_client/models/conferencedata.py b/src/glean/api_client/models/conferencedata.py index a890a8d1..805276d0 100644 --- a/src/glean/api_client/models/conferencedata.py +++ b/src/glean/api_client/models/conferencedata.py @@ -2,18 +2,19 @@ from __future__ import annotations from enum import Enum +from glean.api_client import models, utils from glean.api_client.types import BaseModel, UNSET_SENTINEL -from pydantic import model_serializer +from pydantic import field_serializer, model_serializer from typing import Optional from typing_extensions import NotRequired, TypedDict -class Provider(str, Enum): +class Provider(str, Enum, metaclass=utils.OpenEnumMeta): ZOOM = "ZOOM" HANGOUTS = "HANGOUTS" -class ConferenceDataSource(str, Enum): +class ConferenceDataSource(str, Enum, metaclass=utils.OpenEnumMeta): NATIVE_CONFERENCE = "NATIVE_CONFERENCE" LOCATION = "LOCATION" DESCRIPTION = "DESCRIPTION" @@ -34,6 +35,24 @@ class ConferenceData(BaseModel): source: Optional[ConferenceDataSource] = None + @field_serializer("provider") + def serialize_provider(self, value): + if isinstance(value, str): + try: + return models.Provider(value) + except ValueError: + return value + return value + + @field_serializer("source") + def serialize_source(self, value): + if isinstance(value, str): + try: + return models.ConferenceDataSource(value) + except ValueError: + return value + return value + @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = set(["source"]) diff --git a/src/glean/api_client/models/configurationvalue.py b/src/glean/api_client/models/configurationvalue.py new file mode 100644 index 00000000..2055a0a3 --- /dev/null +++ b/src/glean/api_client/models/configurationvalue.py @@ -0,0 +1,49 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from glean.api_client.types import BaseModel, UNSET_SENTINEL +import pydantic +from pydantic import model_serializer +from typing import List, Optional +from typing_extensions import Annotated, NotRequired, TypedDict + + +class ConfigurationValueTypedDict(TypedDict): + r"""A single configuration value, either a scalar or a list""" + + value: NotRequired[str] + r"""The configuration value as a string. Only one of value or valueList should be populated.""" + value_list: NotRequired[List[str]] + r"""The configuration value as a list of strings. Only one of value or valueList should be populated.""" + + +class ConfigurationValue(BaseModel): + r"""A single configuration value, either a scalar or a list""" + + value: Optional[str] = None + r"""The configuration value as a string. Only one of value or valueList should be populated.""" + + value_list: Annotated[Optional[List[str]], pydantic.Field(alias="valueList")] = None + r"""The configuration value as a list of strings. Only one of value or valueList should be populated.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["value", "valueList"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m + + +try: + ConfigurationValue.model_rebuild() +except NameError: + pass diff --git a/src/glean/api_client/models/connectortype.py b/src/glean/api_client/models/connectortype.py index 8d612d97..8e99dab8 100644 --- a/src/glean/api_client/models/connectortype.py +++ b/src/glean/api_client/models/connectortype.py @@ -2,9 +2,10 @@ from __future__ import annotations from enum import Enum +from glean.api_client import utils -class ConnectorType(str, Enum): +class ConnectorType(str, Enum, metaclass=utils.OpenEnumMeta): r"""The source from which document content was pulled, e.g. an API crawl or browser history""" API_CRAWL = "API_CRAWL" diff --git a/src/glean/api_client/models/createdlpreportrequest.py b/src/glean/api_client/models/createdlpreportrequest.py index aa1c7eff..1af31f17 100644 --- a/src/glean/api_client/models/createdlpreportrequest.py +++ b/src/glean/api_client/models/createdlpreportrequest.py @@ -3,9 +3,10 @@ from __future__ import annotations from .dlpconfig import DlpConfig, DlpConfigTypedDict from .dlpfrequency import DlpFrequency +from glean.api_client import models from glean.api_client.types import BaseModel, UNSET_SENTINEL import pydantic -from pydantic import model_serializer +from pydantic import field_serializer, model_serializer from typing import Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -36,6 +37,15 @@ class CreateDlpReportRequest(BaseModel): ) r"""Controls whether the policy should hide documents with violations.""" + @field_serializer("frequency") + def serialize_frequency(self, value): + if isinstance(value, str): + try: + return models.DlpFrequency(value) + except ValueError: + return value + return value + @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = set(["name", "config", "frequency", "autoHideDocs"]) diff --git a/src/glean/api_client/models/customdatasourceconfig.py b/src/glean/api_client/models/customdatasourceconfig.py index 1e4a488d..919ca09d 100644 --- a/src/glean/api_client/models/customdatasourceconfig.py +++ b/src/glean/api_client/models/customdatasourceconfig.py @@ -8,14 +8,15 @@ from .objectdefinition import ObjectDefinition, ObjectDefinitionTypedDict from .quicklink import Quicklink, QuicklinkTypedDict from enum import Enum +from glean.api_client import models, utils from glean.api_client.types import BaseModel, UNSET_SENTINEL import pydantic -from pydantic import model_serializer +from pydantic import field_serializer, model_serializer from typing import List, Optional from typing_extensions import Annotated, NotRequired, TypedDict -class DatasourceCategory(str, Enum): +class DatasourceCategory(str, Enum, metaclass=utils.OpenEnumMeta): r"""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.""" UNCATEGORIZED = "UNCATEGORIZED" @@ -38,14 +39,14 @@ class DatasourceCategory(str, Enum): AGENTS = "AGENTS" -class HideBuiltInFacet(str, Enum): +class HideBuiltInFacet(str, Enum, metaclass=utils.OpenEnumMeta): TYPE = "TYPE" TAG = "TAG" AUTHOR = "AUTHOR" OWNER = "OWNER" -class CustomDatasourceConfigConnectorType(str, Enum): +class CustomDatasourceConfigConnectorType(str, Enum, metaclass=utils.OpenEnumMeta): r"""The source from which document content was pulled, e.g. an API crawl or browser history""" API_CRAWL = "API_CRAWL" @@ -238,6 +239,24 @@ class CustomDatasourceConfig(BaseModel): ] = False r"""True if this datasource will be used for testing purpose only. Documents from such a datasource wouldn't have any effect on search rankings.""" + @field_serializer("datasource_category") + def serialize_datasource_category(self, value): + if isinstance(value, str): + try: + return models.DatasourceCategory(value) + except ValueError: + return value + return value + + @field_serializer("connector_type") + def serialize_connector_type(self, value): + if isinstance(value, str): + try: + return models.CustomDatasourceConfigConnectorType(value) + except ValueError: + return value + return value + @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = set( diff --git a/src/glean/api_client/models/customsensitiverule.py b/src/glean/api_client/models/customsensitiverule.py index b1c06a84..15b45973 100644 --- a/src/glean/api_client/models/customsensitiverule.py +++ b/src/glean/api_client/models/customsensitiverule.py @@ -3,14 +3,15 @@ from __future__ import annotations from .customsensitiveruletype import CustomSensitiveRuleType from enum import Enum +from glean.api_client import models, utils from glean.api_client.types import BaseModel, UNSET_SENTINEL import pydantic -from pydantic import model_serializer +from pydantic import field_serializer, model_serializer from typing import Optional from typing_extensions import Annotated, NotRequired, TypedDict -class CustomSensitiveRuleLikelihoodThreshold(str, Enum): +class CustomSensitiveRuleLikelihoodThreshold(str, Enum, metaclass=utils.OpenEnumMeta): r"""Likelihood threshold for BUILT_IN infotypes (e.g., LIKELY, VERY_LIKELY). Only applicable for BUILT_IN type.""" LIKELY = "LIKELY" @@ -47,6 +48,24 @@ class CustomSensitiveRule(BaseModel): ] = None r"""Likelihood threshold for BUILT_IN infotypes (e.g., LIKELY, VERY_LIKELY). Only applicable for BUILT_IN type.""" + @field_serializer("type") + def serialize_type(self, value): + if isinstance(value, str): + try: + return models.CustomSensitiveRuleType(value) + except ValueError: + return value + return value + + @field_serializer("likelihood_threshold") + def serialize_likelihood_threshold(self, value): + if isinstance(value, str): + try: + return models.CustomSensitiveRuleLikelihoodThreshold(value) + except ValueError: + return value + return value + @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = set(["id", "value", "type", "likelihoodThreshold"]) diff --git a/src/glean/api_client/models/customsensitiveruletype.py b/src/glean/api_client/models/customsensitiveruletype.py index be887e84..b273ac98 100644 --- a/src/glean/api_client/models/customsensitiveruletype.py +++ b/src/glean/api_client/models/customsensitiveruletype.py @@ -2,9 +2,10 @@ from __future__ import annotations from enum import Enum +from glean.api_client import utils -class CustomSensitiveRuleType(str, Enum): +class CustomSensitiveRuleType(str, Enum, metaclass=utils.OpenEnumMeta): r"""Type of the custom sensitive rule.""" REGEX = "REGEX" diff --git a/src/glean/api_client/models/datasourceconfigurationresponse.py b/src/glean/api_client/models/datasourceconfigurationresponse.py new file mode 100644 index 00000000..15b227d9 --- /dev/null +++ b/src/glean/api_client/models/datasourceconfigurationresponse.py @@ -0,0 +1,23 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .datasourceinstanceconfiguration import ( + DatasourceInstanceConfiguration, + DatasourceInstanceConfigurationTypedDict, +) +from glean.api_client.types import BaseModel +from typing_extensions import TypedDict + + +class DatasourceConfigurationResponseTypedDict(TypedDict): + r"""The greenlisted configuration values for a datasource instance. Only keys that are exposed via the public API greenlist are included.""" + + configuration: DatasourceInstanceConfigurationTypedDict + r"""Configuration for a datasource instance""" + + +class DatasourceConfigurationResponse(BaseModel): + r"""The greenlisted configuration values for a datasource instance. Only keys that are exposed via the public API greenlist are included.""" + + configuration: DatasourceInstanceConfiguration + r"""Configuration for a datasource instance""" diff --git a/src/glean/api_client/models/datasourceinstanceconfiguration.py b/src/glean/api_client/models/datasourceinstanceconfiguration.py new file mode 100644 index 00000000..de6cd8aa --- /dev/null +++ b/src/glean/api_client/models/datasourceinstanceconfiguration.py @@ -0,0 +1,21 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .configurationvalue import ConfigurationValue, ConfigurationValueTypedDict +from glean.api_client.types import BaseModel +from typing import Dict +from typing_extensions import TypedDict + + +class DatasourceInstanceConfigurationTypedDict(TypedDict): + r"""Configuration for a datasource instance""" + + values: Dict[str, ConfigurationValueTypedDict] + r"""A map from configuration key names to their values""" + + +class DatasourceInstanceConfiguration(BaseModel): + r"""Configuration for a datasource instance""" + + values: Dict[str, ConfigurationValue] + r"""A map from configuration key names to their values""" diff --git a/src/glean/api_client/models/debugdatasourcestatusresponse.py b/src/glean/api_client/models/debugdatasourcestatusresponse.py index 46212470..9ebfaf15 100644 --- a/src/glean/api_client/models/debugdatasourcestatusresponse.py +++ b/src/glean/api_client/models/debugdatasourcestatusresponse.py @@ -18,9 +18,10 @@ ProcessingHistoryEventTypedDict, ) from enum import Enum +from glean.api_client import models, utils from glean.api_client.types import BaseModel, UNSET_SENTINEL import pydantic -from pydantic import model_serializer +from pydantic import field_serializer, model_serializer from typing import List, Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -138,7 +139,7 @@ def serialize_model(self, handler): return m -class DatasourceVisibility(str, Enum): +class DatasourceVisibility(str, Enum, metaclass=utils.OpenEnumMeta): r"""The visibility of the datasource, an enum of VISIBLE_TO_ALL, VISIBLE_TO_TEST_GROUP, NOT_VISIBLE""" ENABLED_FOR_ALL = "ENABLED_FOR_ALL" @@ -167,6 +168,15 @@ class DebugDatasourceStatusResponse(BaseModel): ] = None r"""The visibility of the datasource, an enum of VISIBLE_TO_ALL, VISIBLE_TO_TEST_GROUP, NOT_VISIBLE""" + @field_serializer("datasource_visibility") + def serialize_datasource_visibility(self, value): + if isinstance(value, str): + try: + return models.DatasourceVisibility(value) + except ValueError: + return value + return value + @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = set(["documents", "identity", "datasourceVisibility"]) diff --git a/src/glean/api_client/models/digestsection.py b/src/glean/api_client/models/digestsection.py index 3916bd17..0aafd8aa 100644 --- a/src/glean/api_client/models/digestsection.py +++ b/src/glean/api_client/models/digestsection.py @@ -3,9 +3,10 @@ from __future__ import annotations from .digestupdate import DigestUpdate, DigestUpdateTypedDict from .sectiontype import SectionType +from glean.api_client import models from glean.api_client.types import BaseModel, UNSET_SENTINEL import pydantic -from pydantic import model_serializer +from pydantic import field_serializer, model_serializer from typing import List, Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -60,6 +61,15 @@ class DigestSection(BaseModel): url: Optional[str] = None r"""Optional URL for the digest section. Should be populated only if the section is a CHANNEL type section.""" + @field_serializer("type") + def serialize_type(self, value): + if isinstance(value, str): + try: + return models.SectionType(value) + except ValueError: + return value + return value + @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = set( diff --git a/src/glean/api_client/models/digestupdate.py b/src/glean/api_client/models/digestupdate.py index caba0d3b..dc68cb9a 100644 --- a/src/glean/api_client/models/digestupdate.py +++ b/src/glean/api_client/models/digestupdate.py @@ -2,8 +2,9 @@ from __future__ import annotations from .updatetype import UpdateType +from glean.api_client import models from glean.api_client.types import BaseModel, UNSET_SENTINEL -from pydantic import model_serializer +from pydantic import field_serializer, model_serializer from typing import List, Optional from typing_extensions import NotRequired, TypedDict @@ -42,6 +43,15 @@ class DigestUpdate(BaseModel): type: Optional[UpdateType] = None r"""Optional type classification for the update.""" + @field_serializer("type") + def serialize_type(self, value): + if isinstance(value, str): + try: + return models.UpdateType(value) + except ValueError: + return value + return value + @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = set(["urls", "url", "title", "datasource", "summary", "type"]) diff --git a/src/glean/api_client/models/disambiguation.py b/src/glean/api_client/models/disambiguation.py index e4bf574e..4c2f6f06 100644 --- a/src/glean/api_client/models/disambiguation.py +++ b/src/glean/api_client/models/disambiguation.py @@ -2,8 +2,9 @@ from __future__ import annotations from .entitytype import EntityType +from glean.api_client import models from glean.api_client.types import BaseModel, UNSET_SENTINEL -from pydantic import model_serializer +from pydantic import field_serializer, model_serializer from typing import Optional from typing_extensions import NotRequired, TypedDict @@ -31,6 +32,15 @@ class Disambiguation(BaseModel): type: Optional[EntityType] = None r"""The type of entity.""" + @field_serializer("type") + def serialize_type(self, value): + if isinstance(value, str): + try: + return models.EntityType(value) + except ValueError: + return value + return value + @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = set(["name", "id", "type"]) diff --git a/src/glean/api_client/models/dlpfindingfilter.py b/src/glean/api_client/models/dlpfindingfilter.py index 4b8b5377..5ff0c89d 100644 --- a/src/glean/api_client/models/dlpfindingfilter.py +++ b/src/glean/api_client/models/dlpfindingfilter.py @@ -3,9 +3,10 @@ from __future__ import annotations from .dlpseverity import DlpSeverity from .timerangefilter import TimeRangeFilter, TimeRangeFilterTypedDict +from glean.api_client import models from glean.api_client.types import BaseModel, UNSET_SENTINEL import pydantic -from pydantic import model_serializer +from pydantic import field_serializer, model_serializer from typing import List, Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -52,6 +53,15 @@ class DlpFindingFilter(BaseModel): archived: Optional[bool] = None + @field_serializer("severity") + def serialize_severity(self, value): + if isinstance(value, str): + try: + return models.DlpSeverity(value) + except ValueError: + return value + return value + @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = set( diff --git a/src/glean/api_client/models/dlpfrequency.py b/src/glean/api_client/models/dlpfrequency.py index a7da3a83..334f894f 100644 --- a/src/glean/api_client/models/dlpfrequency.py +++ b/src/glean/api_client/models/dlpfrequency.py @@ -2,9 +2,10 @@ from __future__ import annotations from enum import Enum +from glean.api_client import utils -class DlpFrequency(str, Enum): +class DlpFrequency(str, Enum, metaclass=utils.OpenEnumMeta): r"""Interval between scans. DAILY is deprecated.""" ONCE = "ONCE" diff --git a/src/glean/api_client/models/dlpreport.py b/src/glean/api_client/models/dlpreport.py index 706524ef..457ebe8a 100644 --- a/src/glean/api_client/models/dlpreport.py +++ b/src/glean/api_client/models/dlpreport.py @@ -6,14 +6,15 @@ from .dlpperson import DlpPerson, DlpPersonTypedDict from .dlpreportstatus import DlpReportStatus from enum import Enum +from glean.api_client import models, utils from glean.api_client.types import BaseModel, UNSET_SENTINEL import pydantic -from pydantic import model_serializer +from pydantic import field_serializer, model_serializer from typing import Optional from typing_extensions import Annotated, NotRequired, TypedDict -class LastScanStatus(str, Enum): +class LastScanStatus(str, Enum, metaclass=utils.OpenEnumMeta): PENDING = "PENDING" SUCCESS = "SUCCESS" FAILURE = "FAILURE" @@ -92,6 +93,33 @@ class DlpReport(BaseModel): updated_by: Annotated[Optional[DlpPerson], pydantic.Field(alias="updatedBy")] = None r"""Details about the person who created this report/policy.""" + @field_serializer("frequency") + def serialize_frequency(self, value): + if isinstance(value, str): + try: + return models.DlpFrequency(value) + except ValueError: + return value + return value + + @field_serializer("status") + def serialize_status(self, value): + if isinstance(value, str): + try: + return models.DlpReportStatus(value) + except ValueError: + return value + return value + + @field_serializer("last_scan_status") + def serialize_last_scan_status(self, value): + if isinstance(value, str): + try: + return models.LastScanStatus(value) + except ValueError: + return value + return value + @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = set( diff --git a/src/glean/api_client/models/dlpreportstatus.py b/src/glean/api_client/models/dlpreportstatus.py index 89f5b52f..c7768ce7 100644 --- a/src/glean/api_client/models/dlpreportstatus.py +++ b/src/glean/api_client/models/dlpreportstatus.py @@ -2,9 +2,10 @@ from __future__ import annotations from enum import Enum +from glean.api_client import utils -class DlpReportStatus(str, Enum): +class DlpReportStatus(str, Enum, metaclass=utils.OpenEnumMeta): r"""The status of the policy/report. Only ACTIVE status will be picked for scans.""" ACTIVE = "ACTIVE" diff --git a/src/glean/api_client/models/dlpseverity.py b/src/glean/api_client/models/dlpseverity.py index 625f32b8..bd785981 100644 --- a/src/glean/api_client/models/dlpseverity.py +++ b/src/glean/api_client/models/dlpseverity.py @@ -2,9 +2,10 @@ from __future__ import annotations from enum import Enum +from glean.api_client import utils -class DlpSeverity(str, Enum): +class DlpSeverity(str, Enum, metaclass=utils.OpenEnumMeta): r"""Severity levels for DLP findings and analyses.""" UNSPECIFIED = "UNSPECIFIED" diff --git a/src/glean/api_client/models/dlpsimpleresult.py b/src/glean/api_client/models/dlpsimpleresult.py index 83e95325..212efae1 100644 --- a/src/glean/api_client/models/dlpsimpleresult.py +++ b/src/glean/api_client/models/dlpsimpleresult.py @@ -2,8 +2,9 @@ from __future__ import annotations from enum import Enum +from glean.api_client import utils -class DlpSimpleResult(str, Enum): +class DlpSimpleResult(str, Enum, metaclass=utils.OpenEnumMeta): SUCCESS = "SUCCESS" FAILURE = "FAILURE" diff --git a/src/glean/api_client/models/document.py b/src/glean/api_client/models/document.py index 43f4b20e..88171691 100644 --- a/src/glean/api_client/models/document.py +++ b/src/glean/api_client/models/document.py @@ -4,9 +4,10 @@ from .connectortype import ConnectorType from .documentcontent import DocumentContent, DocumentContentTypedDict from .documentsection import DocumentSection, DocumentSectionTypedDict +from glean.api_client import models from glean.api_client.types import BaseModel, UNSET_SENTINEL import pydantic -from pydantic import model_serializer +from pydantic import field_serializer, model_serializer from typing import List, Optional, TYPE_CHECKING from typing_extensions import Annotated, NotRequired, TypedDict @@ -71,6 +72,15 @@ class Document(BaseModel): sections: Optional[List[DocumentSection]] = None r"""A list of content sub-sections in the document, e.g. text blocks with different headings in a Drive doc or Confluence page.""" + @field_serializer("connector_type") + def serialize_connector_type(self, value): + if isinstance(value, str): + try: + return models.ConnectorType(value) + except ValueError: + return value + return value + @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = set( diff --git a/src/glean/api_client/models/documentmetadata.py b/src/glean/api_client/models/documentmetadata.py index 19cb2dc2..6fd3ba73 100644 --- a/src/glean/api_client/models/documentmetadata.py +++ b/src/glean/api_client/models/documentmetadata.py @@ -9,9 +9,10 @@ from .thumbnail import Thumbnail, ThumbnailTypedDict from .viewerinfo import ViewerInfo, ViewerInfoTypedDict from datetime import datetime +from glean.api_client import models from glean.api_client.types import BaseModel, UNSET_SENTINEL import pydantic -from pydantic import model_serializer +from pydantic import field_serializer, model_serializer from typing import Dict, List, Optional, TYPE_CHECKING from typing_extensions import Annotated, NotRequired, TypedDict @@ -228,6 +229,15 @@ class DocumentMetadata(BaseModel): ancestors: Optional[List["Document"]] = None r"""A list of documents that are ancestors of this document in the hierarchy of the document's datasource, for example parent folders or containers. Ancestors can be of different types and some may not be indexed. Higher level ancestors appear earlier in the list.""" + @field_serializer("visibility") + def serialize_visibility(self, value): + if isinstance(value, str): + try: + return models.DocumentVisibility(value) + except ValueError: + return value + return value + @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = set( diff --git a/src/glean/api_client/models/documentspec_union.py b/src/glean/api_client/models/documentspec_union.py index f0509023..368263cd 100644 --- a/src/glean/api_client/models/documentspec_union.py +++ b/src/glean/api_client/models/documentspec_union.py @@ -2,14 +2,15 @@ from __future__ import annotations from enum import Enum +from glean.api_client import models, utils from glean.api_client.types import BaseModel, UNSET_SENTINEL import pydantic -from pydantic import model_serializer +from pydantic import field_serializer, model_serializer from typing import Optional, Union from typing_extensions import Annotated, NotRequired, TypeAliasType, TypedDict -class DocumentSpecUgcType2(str, Enum): +class DocumentSpecUgcType2(str, Enum, metaclass=utils.OpenEnumMeta): r"""The type of the user generated content (UGC datasource).""" ANNOUNCEMENTS = "ANNOUNCEMENTS" @@ -38,6 +39,15 @@ class DocumentSpec4(BaseModel): doc_type: Annotated[Optional[str], pydantic.Field(alias="docType")] = None r"""The specific type of the user generated content type.""" + @field_serializer("ugc_type") + def serialize_ugc_type(self, value): + if isinstance(value, str): + try: + return models.DocumentSpecUgcType2(value) + except ValueError: + return value + return value + @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = set(["docType"]) @@ -55,7 +65,7 @@ def serialize_model(self, handler): return m -class DocumentSpecUgcType1(str, Enum): +class DocumentSpecUgcType1(str, Enum, metaclass=utils.OpenEnumMeta): r"""The type of the user generated content (UGC datasource).""" ANNOUNCEMENTS = "ANNOUNCEMENTS" @@ -84,6 +94,15 @@ class DocumentSpec3(BaseModel): doc_type: Annotated[Optional[str], pydantic.Field(alias="docType")] = None r"""The specific type of the user generated content type.""" + @field_serializer("ugc_type") + def serialize_ugc_type(self, value): + if isinstance(value, str): + try: + return models.DocumentSpecUgcType1(value) + except ValueError: + return value + return value + @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = set(["docType"]) diff --git a/src/glean/api_client/models/documentvisibility.py b/src/glean/api_client/models/documentvisibility.py index fb5813a9..59bfc052 100644 --- a/src/glean/api_client/models/documentvisibility.py +++ b/src/glean/api_client/models/documentvisibility.py @@ -2,9 +2,10 @@ from __future__ import annotations from enum import Enum +from glean.api_client import utils -class DocumentVisibility(str, Enum): +class DocumentVisibility(str, Enum, metaclass=utils.OpenEnumMeta): r"""The level of visibility of the document as understood by our system.""" # Only one person is able to see the document. diff --git a/src/glean/api_client/models/documentvisibilityoverride.py b/src/glean/api_client/models/documentvisibilityoverride.py index 27fb5add..694f8cd4 100644 --- a/src/glean/api_client/models/documentvisibilityoverride.py +++ b/src/glean/api_client/models/documentvisibilityoverride.py @@ -2,14 +2,15 @@ from __future__ import annotations from enum import Enum +from glean.api_client import models, utils from glean.api_client.types import BaseModel, UNSET_SENTINEL import pydantic -from pydantic import model_serializer +from pydantic import field_serializer, model_serializer from typing import Optional from typing_extensions import Annotated, NotRequired, TypedDict -class DocumentVisibilityOverrideOverride(str, Enum): +class DocumentVisibilityOverrideOverride(str, Enum, metaclass=utils.OpenEnumMeta): r"""The visibility-override state of the document.""" NONE = "NONE" @@ -30,6 +31,15 @@ class DocumentVisibilityOverride(BaseModel): override: Optional[DocumentVisibilityOverrideOverride] = None r"""The visibility-override state of the document.""" + @field_serializer("override") + def serialize_override(self, value): + if isinstance(value, str): + try: + return models.DocumentVisibilityOverrideOverride(value) + except ValueError: + return value + return value + @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = set(["docId", "override"]) diff --git a/src/glean/api_client/models/documentvisibilityupdateresult.py b/src/glean/api_client/models/documentvisibilityupdateresult.py index 2781be2a..7d8784b9 100644 --- a/src/glean/api_client/models/documentvisibilityupdateresult.py +++ b/src/glean/api_client/models/documentvisibilityupdateresult.py @@ -2,14 +2,15 @@ from __future__ import annotations from enum import Enum +from glean.api_client import models, utils from glean.api_client.types import BaseModel, UNSET_SENTINEL import pydantic -from pydantic import model_serializer +from pydantic import field_serializer, model_serializer from typing import Optional from typing_extensions import Annotated, NotRequired, TypedDict -class DocumentVisibilityUpdateResultOverride(str, Enum): +class DocumentVisibilityUpdateResultOverride(str, Enum, metaclass=utils.OpenEnumMeta): r"""The visibility-override state of the document.""" NONE = "NONE" @@ -35,6 +36,15 @@ class DocumentVisibilityUpdateResult(BaseModel): success: Optional[bool] = None r"""Whether this document was successfully set to its desired visibility state.""" + @field_serializer("override") + def serialize_override(self, value): + if isinstance(value, str): + try: + return models.DocumentVisibilityUpdateResultOverride(value) + except ValueError: + return value + return value + @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = set(["docId", "override", "success"]) diff --git a/src/glean/api_client/models/editcollectionresponse.py b/src/glean/api_client/models/editcollectionresponse.py index 43e051a9..5030396b 100644 --- a/src/glean/api_client/models/editcollectionresponse.py +++ b/src/glean/api_client/models/editcollectionresponse.py @@ -15,14 +15,15 @@ from .userrolespecification import UserRoleSpecification, UserRoleSpecificationTypedDict from datetime import datetime from enum import Enum +from glean.api_client import models, utils from glean.api_client.types import BaseModel, UNSET_SENTINEL import pydantic -from pydantic import model_serializer +from pydantic import field_serializer, model_serializer from typing import List, Optional from typing_extensions import Annotated, NotRequired, TypedDict -class EditCollectionResponseErrorCode(str, Enum): +class EditCollectionResponseErrorCode(str, Enum, metaclass=utils.OpenEnumMeta): NAME_EXISTS = "NAME_EXISTS" NOT_FOUND = "NOT_FOUND" COLLECTION_PINNED = "COLLECTION_PINNED" @@ -162,6 +163,15 @@ class EditCollectionResponse(BaseModel): error: Optional[CollectionError] = None + @field_serializer("error_code") + def serialize_error_code(self, value): + if isinstance(value, str): + try: + return models.EditCollectionResponseErrorCode(value) + except ValueError: + return value + return value + @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = set( diff --git a/src/glean/api_client/models/entitiessortorder.py b/src/glean/api_client/models/entitiessortorder.py index 76d80c68..f3e5ae63 100644 --- a/src/glean/api_client/models/entitiessortorder.py +++ b/src/glean/api_client/models/entitiessortorder.py @@ -2,9 +2,10 @@ from __future__ import annotations from enum import Enum +from glean.api_client import utils -class EntitiesSortOrder(str, Enum): +class EntitiesSortOrder(str, Enum, metaclass=utils.OpenEnumMeta): r"""Different ways of sorting entities""" ENTITY_NAME = "ENTITY_NAME" diff --git a/src/glean/api_client/models/entitytype.py b/src/glean/api_client/models/entitytype.py index 43e53859..af479617 100644 --- a/src/glean/api_client/models/entitytype.py +++ b/src/glean/api_client/models/entitytype.py @@ -2,9 +2,10 @@ from __future__ import annotations from enum import Enum +from glean.api_client import utils -class EntityType(str, Enum): +class EntityType(str, Enum, metaclass=utils.OpenEnumMeta): r"""The type of entity.""" PERSON = "PERSON" diff --git a/src/glean/api_client/models/eventstrategyname.py b/src/glean/api_client/models/eventstrategyname.py index 5ede7c8c..2fc0a34f 100644 --- a/src/glean/api_client/models/eventstrategyname.py +++ b/src/glean/api_client/models/eventstrategyname.py @@ -2,9 +2,10 @@ from __future__ import annotations from enum import Enum +from glean.api_client import utils -class EventStrategyName(str, Enum): +class EventStrategyName(str, Enum, metaclass=utils.OpenEnumMeta): r"""The name of method used to surface relevant data for a given calendar event.""" CUSTOMER_CARD = "customerCard" diff --git a/src/glean/api_client/models/exportinfo.py b/src/glean/api_client/models/exportinfo.py index 9a2325f9..44eea991 100644 --- a/src/glean/api_client/models/exportinfo.py +++ b/src/glean/api_client/models/exportinfo.py @@ -4,14 +4,15 @@ from .dlpfindingfilter import DlpFindingFilter, DlpFindingFilterTypedDict from .dlpperson import DlpPerson, DlpPersonTypedDict from enum import Enum +from glean.api_client import models, utils from glean.api_client.types import BaseModel, UNSET_SENTINEL import pydantic -from pydantic import model_serializer +from pydantic import field_serializer, model_serializer from typing import Optional from typing_extensions import Annotated, NotRequired, TypedDict -class ExportInfoStatus(str, Enum): +class ExportInfoStatus(str, Enum, metaclass=utils.OpenEnumMeta): r"""The status of the export""" PENDING = "PENDING" @@ -63,6 +64,15 @@ class ExportInfo(BaseModel): export_size: Annotated[Optional[int], pydantic.Field(alias="exportSize")] = None r"""The size of the exported file in bytes""" + @field_serializer("status") + def serialize_status(self, value): + if isinstance(value, str): + try: + return models.ExportInfoStatus(value) + except ValueError: + return value + return value + @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = set( diff --git a/src/glean/api_client/models/facetfiltervalue.py b/src/glean/api_client/models/facetfiltervalue.py index ee889ffb..c7c45af9 100644 --- a/src/glean/api_client/models/facetfiltervalue.py +++ b/src/glean/api_client/models/facetfiltervalue.py @@ -2,14 +2,15 @@ from __future__ import annotations from enum import Enum +from glean.api_client import models, utils from glean.api_client.types import BaseModel, UNSET_SENTINEL import pydantic -from pydantic import model_serializer +from pydantic import field_serializer, model_serializer from typing import Optional from typing_extensions import Annotated, NotRequired, TypedDict -class RelationType(str, Enum): +class RelationType(str, Enum, metaclass=utils.OpenEnumMeta): # The value is equal to the specified value. EQUALS = "EQUALS" # The value is equal to the specified ID. @@ -45,6 +46,15 @@ class FacetFilterValue(BaseModel): ] = None r"""DEPRECATED - please use relationType instead""" + @field_serializer("relation_type") + def serialize_relation_type(self, value): + if isinstance(value, str): + try: + return models.RelationType(value) + except ValueError: + return value + return value + @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = set(["value", "relationType", "isNegated"]) diff --git a/src/glean/api_client/models/favoriteinfo.py b/src/glean/api_client/models/favoriteinfo.py index 3c88b964..ea11d36b 100644 --- a/src/glean/api_client/models/favoriteinfo.py +++ b/src/glean/api_client/models/favoriteinfo.py @@ -2,9 +2,10 @@ from __future__ import annotations from .ugctype import UgcType +from glean.api_client import models from glean.api_client.types import BaseModel, UNSET_SENTINEL import pydantic -from pydantic import model_serializer +from pydantic import field_serializer, model_serializer from typing import Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -33,6 +34,15 @@ class FavoriteInfo(BaseModel): ] = None r"""If the requesting user has favorited this object.""" + @field_serializer("ugc_type") + def serialize_ugc_type(self, value): + if isinstance(value, str): + try: + return models.UgcType(value) + except ValueError: + return value + return value + @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = set(["ugcType", "id", "count", "favoritedByUser"]) diff --git a/src/glean/api_client/models/feedentry.py b/src/glean/api_client/models/feedentry.py index ae5a612b..aaa2eee3 100644 --- a/src/glean/api_client/models/feedentry.py +++ b/src/glean/api_client/models/feedentry.py @@ -20,9 +20,10 @@ from .useractivity import UserActivity, UserActivityTypedDict from .workflowresult import WorkflowResult, WorkflowResultTypedDict from enum import Enum +from glean.api_client import models, utils from glean.api_client.types import BaseModel, UNSET_SENTINEL import pydantic -from pydantic import model_serializer +from pydantic import field_serializer, model_serializer from typing import List, Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -66,7 +67,7 @@ def serialize_model(self, handler): return m -class JustificationType(str, Enum): +class JustificationType(str, Enum, metaclass=utils.OpenEnumMeta): r"""Type of the justification.""" FREQUENTLY_ACCESSED = "FREQUENTLY_ACCESSED" @@ -201,6 +202,15 @@ class FeedEntry(BaseModel): Optional[CountInfo], pydantic.Field(alias="documentVisitorCount") ] = None + @field_serializer("justification_type") + def serialize_justification_type(self, value): + if isinstance(value, str): + try: + return models.JustificationType(value) + except ValueError: + return value + return value + @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = set( diff --git a/src/glean/api_client/models/feedresult.py b/src/glean/api_client/models/feedresult.py index f6bec358..062146c7 100644 --- a/src/glean/api_client/models/feedresult.py +++ b/src/glean/api_client/models/feedresult.py @@ -3,14 +3,15 @@ from __future__ import annotations from .feedentry import FeedEntry, FeedEntryTypedDict from enum import Enum +from glean.api_client import models, utils from glean.api_client.types import BaseModel, UNSET_SENTINEL import pydantic -from pydantic import model_serializer +from pydantic import field_serializer, model_serializer from typing import List, Optional from typing_extensions import Annotated, NotRequired, TypedDict -class FeedResultCategory(str, Enum): +class FeedResultCategory(str, Enum, metaclass=utils.OpenEnumMeta): r"""Category of the result, one of the requested categories in incoming request.""" DOCUMENT_SUGGESTION = "DOCUMENT_SUGGESTION" @@ -64,6 +65,15 @@ class FeedResult(BaseModel): rank: Optional[int] = None r"""Rank of the result. Rank is suggested by server. Client side rank may differ.""" + @field_serializer("category") + def serialize_category(self, value): + if isinstance(value, str): + try: + return models.FeedResultCategory(value) + except ValueError: + return value + return value + @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = set(["secondaryEntries", "rank"]) diff --git a/src/glean/api_client/models/generatedattachment.py b/src/glean/api_client/models/generatedattachment.py index a5a3a950..6041ec08 100644 --- a/src/glean/api_client/models/generatedattachment.py +++ b/src/glean/api_client/models/generatedattachment.py @@ -10,9 +10,10 @@ ) from .person import Person, PersonTypedDict from .structuredlink import StructuredLink, StructuredLinkTypedDict +from glean.api_client import models from glean.api_client.types import BaseModel, UNSET_SENTINEL import pydantic -from pydantic import model_serializer +from pydantic import field_serializer, model_serializer from typing import List, Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -51,6 +52,15 @@ class GeneratedAttachment(BaseModel): content: Optional[List[GeneratedAttachmentContent]] = None + @field_serializer("strategy_name") + def serialize_strategy_name(self, value): + if isinstance(value, str): + try: + return models.EventStrategyName(value) + except ValueError: + return value + return value + @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = set( diff --git a/src/glean/api_client/models/generatedqna.py b/src/glean/api_client/models/generatedqna.py index 04c0536e..c1d59b7a 100644 --- a/src/glean/api_client/models/generatedqna.py +++ b/src/glean/api_client/models/generatedqna.py @@ -3,9 +3,10 @@ from __future__ import annotations from .followupaction import FollowupAction, FollowupActionTypedDict from enum import Enum +from glean.api_client import models, utils from glean.api_client.types import BaseModel, UNSET_SENTINEL import pydantic -from pydantic import model_serializer +from pydantic import field_serializer, model_serializer from typing import List, Optional, TYPE_CHECKING from typing_extensions import Annotated, NotRequired, TypedDict @@ -13,7 +14,7 @@ from .textrange import TextRange, TextRangeTypedDict -class GeneratedQnaStatus(str, Enum): +class GeneratedQnaStatus(str, Enum, metaclass=utils.OpenEnumMeta): r"""Status of backend generating the answer""" COMPUTING = "COMPUTING" @@ -76,6 +77,15 @@ class GeneratedQna(BaseModel): ) r"""An opaque token that represents this particular result in this particular query. To be used for /feedback reporting.""" + @field_serializer("status") + def serialize_status(self, value): + if isinstance(value, str): + try: + return models.GeneratedQnaStatus(value) + except ValueError: + return value + return value + @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = set( diff --git a/src/glean/api_client/models/getanswererror.py b/src/glean/api_client/models/getanswererror.py index dc1a13d8..827524e4 100644 --- a/src/glean/api_client/models/getanswererror.py +++ b/src/glean/api_client/models/getanswererror.py @@ -3,14 +3,15 @@ from __future__ import annotations from .person import Person, PersonTypedDict from enum import Enum +from glean.api_client import models, utils from glean.api_client.types import BaseModel, UNSET_SENTINEL import pydantic -from pydantic import model_serializer +from pydantic import field_serializer, model_serializer from typing import Optional from typing_extensions import Annotated, NotRequired, TypedDict -class GetAnswerErrorErrorType(str, Enum): +class GetAnswerErrorErrorType(str, Enum, metaclass=utils.OpenEnumMeta): NO_PERMISSION = "NO_PERMISSION" INVALID_ID = "INVALID_ID" @@ -29,6 +30,15 @@ class GetAnswerError(BaseModel): None ) + @field_serializer("error_type") + def serialize_error_type(self, value): + if isinstance(value, str): + try: + return models.GetAnswerErrorErrorType(value) + except ValueError: + return value + return value + @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = set(["errorType", "answerAuthor"]) diff --git a/src/glean/api_client/models/getdatasourceinstanceconfigurationop.py b/src/glean/api_client/models/getdatasourceinstanceconfigurationop.py new file mode 100644 index 00000000..25a21bd1 --- /dev/null +++ b/src/glean/api_client/models/getdatasourceinstanceconfigurationop.py @@ -0,0 +1,30 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from glean.api_client.types import BaseModel +from glean.api_client.utils import FieldMetadata, PathParamMetadata +import pydantic +from typing_extensions import Annotated, TypedDict + + +class GetDatasourceInstanceConfigurationRequestTypedDict(TypedDict): + datasource_id: str + r"""The datasource type identifier (e.g. o365sharepoint)""" + instance_id: str + r"""The datasource instance identifier""" + + +class GetDatasourceInstanceConfigurationRequest(BaseModel): + datasource_id: Annotated[ + str, + pydantic.Field(alias="datasourceId"), + FieldMetadata(path=PathParamMetadata(style="simple", explode=False)), + ] + r"""The datasource type identifier (e.g. o365sharepoint)""" + + instance_id: Annotated[ + str, + pydantic.Field(alias="instanceId"), + FieldMetadata(path=PathParamMetadata(style="simple", explode=False)), + ] + r"""The datasource instance identifier""" diff --git a/src/glean/api_client/models/gleandataerror.py b/src/glean/api_client/models/gleandataerror.py index 707fe60f..5bacca94 100644 --- a/src/glean/api_client/models/gleandataerror.py +++ b/src/glean/api_client/models/gleandataerror.py @@ -6,10 +6,6 @@ InvalidOperatorValueError, InvalidOperatorValueErrorTypedDict, ) -from .unauthorizeddatasourceinstance import ( - UnauthorizedDatasourceInstance, - UnauthorizedDatasourceInstanceTypedDict, -) from glean.api_client.types import BaseModel, UNSET_SENTINEL import pydantic from pydantic import model_serializer @@ -27,12 +23,6 @@ class GleanDataErrorTypedDict(TypedDict): error_messages: NotRequired[List[ErrorMessageTypedDict]] federated_search_rate_limit_error: NotRequired[bool] r"""Indicates the federated search results could not be fetched due to rate limiting.""" - unauthorized_datasource_instances: NotRequired[ - List[UnauthorizedDatasourceInstanceTypedDict] - ] - r"""Datasource instances that could not be queried because the user has not completed or has expired per-user OAuth. - - """ class GleanDataError(BaseModel): @@ -61,14 +51,6 @@ class GleanDataError(BaseModel): ] = None r"""Indicates the federated search results could not be fetched due to rate limiting.""" - unauthorized_datasource_instances: Annotated[ - Optional[List[UnauthorizedDatasourceInstance]], - pydantic.Field(alias="unauthorizedDatasourceInstances"), - ] = None - r"""Datasource instances that could not be queried because the user has not completed or has expired per-user OAuth. - - """ - @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = set( @@ -78,7 +60,6 @@ def serialize_model(self, handler): "invalidOperators", "errorMessages", "federatedSearchRateLimitError", - "unauthorizedDatasourceInstances", ] ) serialized = handler(self) diff --git a/src/glean/api_client/models/grantpermission.py b/src/glean/api_client/models/grantpermission.py index 92df0762..70cf7aed 100644 --- a/src/glean/api_client/models/grantpermission.py +++ b/src/glean/api_client/models/grantpermission.py @@ -2,9 +2,10 @@ from __future__ import annotations from .scopetype import ScopeType +from glean.api_client import models from glean.api_client.types import BaseModel, UNSET_SENTINEL import pydantic -from pydantic import model_serializer +from pydantic import field_serializer, model_serializer from typing import Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -22,6 +23,15 @@ class GrantPermission(BaseModel): scope_type: Annotated[Optional[ScopeType], pydantic.Field(alias="scopeType")] = None r"""Describes the scope for a ReadPermission, WritePermission, or GrantPermission object""" + @field_serializer("scope_type") + def serialize_scope_type(self, value): + if isinstance(value, str): + try: + return models.ScopeType(value) + except ValueError: + return value + return value + @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = set(["scopeType"]) diff --git a/src/glean/api_client/models/group.py b/src/glean/api_client/models/group.py index 8b846642..1996f007 100644 --- a/src/glean/api_client/models/group.py +++ b/src/glean/api_client/models/group.py @@ -2,9 +2,10 @@ from __future__ import annotations from .grouptype import GroupType +from glean.api_client import models from glean.api_client.types import BaseModel, UNSET_SENTINEL import pydantic -from pydantic import model_serializer +from pydantic import field_serializer, model_serializer from typing import Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -42,6 +43,15 @@ class Group(BaseModel): ] = None r"""identifier for greenlist provisioning, aka sciokey""" + @field_serializer("type") + def serialize_type(self, value): + if isinstance(value, str): + try: + return models.GroupType(value) + except ValueError: + return value + return value + @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = set(["name", "datasourceInstance", "provisioningId"]) diff --git a/src/glean/api_client/models/grouptype.py b/src/glean/api_client/models/grouptype.py index 30e949fe..c94336ed 100644 --- a/src/glean/api_client/models/grouptype.py +++ b/src/glean/api_client/models/grouptype.py @@ -2,9 +2,10 @@ from __future__ import annotations from enum import Enum +from glean.api_client import utils -class GroupType(str, Enum): +class GroupType(str, Enum, metaclass=utils.OpenEnumMeta): r"""The type of user group""" DEPARTMENT = "DEPARTMENT" diff --git a/src/glean/api_client/models/iconconfig.py b/src/glean/api_client/models/iconconfig.py index 97ca9a25..abe3f54e 100644 --- a/src/glean/api_client/models/iconconfig.py +++ b/src/glean/api_client/models/iconconfig.py @@ -2,14 +2,15 @@ from __future__ import annotations from enum import Enum +from glean.api_client import models, utils from glean.api_client.types import BaseModel, UNSET_SENTINEL import pydantic -from pydantic import model_serializer +from pydantic import field_serializer, model_serializer from typing import Optional from typing_extensions import Annotated, NotRequired, TypedDict -class IconType(str, Enum): +class IconType(str, Enum, metaclass=utils.OpenEnumMeta): COLLECTION = "COLLECTION" CUSTOM = "CUSTOM" DATASOURCE = "DATASOURCE" @@ -67,6 +68,15 @@ class IconConfig(BaseModel): url: Optional[str] = None r"""The URL to an image to be displayed if applicable, e.g. the URL for `iconType.URL` icons.""" + @field_serializer("icon_type") + def serialize_icon_type(self, value): + if isinstance(value, str): + try: + return models.IconType(value) + except ValueError: + return value + return value + @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = set( diff --git a/src/glean/api_client/models/inputoptions.py b/src/glean/api_client/models/inputoptions.py index 07eba7dd..f85b7327 100644 --- a/src/glean/api_client/models/inputoptions.py +++ b/src/glean/api_client/models/inputoptions.py @@ -3,21 +3,22 @@ from __future__ import annotations from .timerange import TimeRange, TimeRangeTypedDict from enum import Enum +from glean.api_client import models, utils from glean.api_client.types import BaseModel, UNSET_SENTINEL import pydantic -from pydantic import model_serializer +from pydantic import field_serializer, model_serializer from typing import List, Optional from typing_extensions import Annotated, NotRequired, TypedDict -class DatasourcesType(str, Enum): +class DatasourcesType(str, Enum, metaclass=utils.OpenEnumMeta): r"""The types of datasource for which to run the report/policy.""" ALL = "ALL" CUSTOM = "CUSTOM" -class InputOptionsTimePeriodType(str, Enum): +class InputOptionsTimePeriodType(str, Enum, metaclass=utils.OpenEnumMeta): r"""Type of time period for which to run the report/policy. PAST_DAY is deprecated.""" ALL_TIME = "ALL_TIME" @@ -89,6 +90,24 @@ class InputOptions(BaseModel): ] = None r"""Subset of document IDs to scan. If empty, all documents matching other scope criteria will be scanned.""" + @field_serializer("datasources_type") + def serialize_datasources_type(self, value): + if isinstance(value, str): + try: + return models.DatasourcesType(value) + except ValueError: + return value + return value + + @field_serializer("time_period_type") + def serialize_time_period_type(self, value): + if isinstance(value, str): + try: + return models.InputOptionsTimePeriodType(value) + except ValueError: + return value + return value + @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = set( diff --git a/src/glean/api_client/models/inviteinfo.py b/src/glean/api_client/models/inviteinfo.py index 3b68e8a5..98c8577e 100644 --- a/src/glean/api_client/models/inviteinfo.py +++ b/src/glean/api_client/models/inviteinfo.py @@ -43,7 +43,7 @@ class InviteInfo(BaseModel): invite_time: Annotated[ Optional[datetime], pydantic.Field( - deprecated="warning: ** DEPRECATED ** - This will be removed in a future release, please migrate away from it as soon as possible.", + deprecated="warning: ** DEPRECATED ** - Deprecated on 2026-02-05, removal scheduled for 2026-10-15: Use ChannelInviteInfo instead.", alias="inviteTime", ), ] = None @@ -52,7 +52,7 @@ class InviteInfo(BaseModel): reminder_time: Annotated[ Optional[datetime], pydantic.Field( - deprecated="warning: ** DEPRECATED ** - This will be removed in a future release, please migrate away from it as soon as possible.", + deprecated="warning: ** DEPRECATED ** - Deprecated on 2026-02-05, removal scheduled for 2026-10-15: Use ChannelInviteInfo instead.", alias="reminderTime", ), ] = None diff --git a/src/glean/api_client/models/objectdefinition.py b/src/glean/api_client/models/objectdefinition.py index 148c3eee..6f8001ca 100644 --- a/src/glean/api_client/models/objectdefinition.py +++ b/src/glean/api_client/models/objectdefinition.py @@ -4,14 +4,15 @@ from .propertydefinition import PropertyDefinition, PropertyDefinitionTypedDict from .propertygroup import PropertyGroup, PropertyGroupTypedDict from enum import Enum +from glean.api_client import models, utils from glean.api_client.types import BaseModel, UNSET_SENTINEL import pydantic -from pydantic import model_serializer +from pydantic import field_serializer, model_serializer from typing import List, Optional from typing_extensions import Annotated, NotRequired, TypedDict -class DocCategory(str, Enum): +class DocCategory(str, Enum, metaclass=utils.OpenEnumMeta): r"""The document category of this object type.""" UNCATEGORIZED = "UNCATEGORIZED" @@ -76,6 +77,15 @@ class ObjectDefinition(BaseModel): summarizable: Optional[bool] = None r"""Whether or not the object is summarizable""" + @field_serializer("doc_category") + def serialize_doc_category(self, value): + if isinstance(value, str): + try: + return models.DocCategory(value) + except ValueError: + return value + return value + @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = set( diff --git a/src/glean/api_client/models/operatormetadata.py b/src/glean/api_client/models/operatormetadata.py index d03e9506..55fffe77 100644 --- a/src/glean/api_client/models/operatormetadata.py +++ b/src/glean/api_client/models/operatormetadata.py @@ -3,14 +3,15 @@ from __future__ import annotations from .operatorscope import OperatorScope, OperatorScopeTypedDict from enum import Enum +from glean.api_client import models, utils from glean.api_client.types import BaseModel, UNSET_SENTINEL import pydantic -from pydantic import model_serializer +from pydantic import field_serializer, model_serializer from typing import List, Optional from typing_extensions import Annotated, NotRequired, TypedDict -class OperatorType(str, Enum): +class OperatorType(str, Enum, metaclass=utils.OpenEnumMeta): TEXT = "TEXT" DOUBLE = "DOUBLE" DATE = "DATE" @@ -50,6 +51,15 @@ class OperatorMetadata(BaseModel): display_value: Annotated[Optional[str], pydantic.Field(alias="displayValue")] = None r"""Human readable value of the operator that can be shown to the user. Only applies when result is an operator value.""" + @field_serializer("operator_type") + def serialize_operator_type(self, value): + if isinstance(value, str): + try: + return models.OperatorType(value) + except ValueError: + return value + return value + @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = set( diff --git a/src/glean/api_client/models/personmetadata.py b/src/glean/api_client/models/personmetadata.py index 113c013c..19252b1b 100644 --- a/src/glean/api_client/models/personmetadata.py +++ b/src/glean/api_client/models/personmetadata.py @@ -11,9 +11,10 @@ from .structuredlocation import StructuredLocation, StructuredLocationTypedDict from datetime import date, datetime from enum import Enum +from glean.api_client import models, utils from glean.api_client.types import BaseModel, UNSET_SENTINEL import pydantic -from pydantic import model_serializer +from pydantic import field_serializer, model_serializer from typing import Dict, List, Optional, TYPE_CHECKING from typing_extensions import Annotated, NotRequired, TypedDict @@ -24,7 +25,7 @@ from .querysuggestionlist import QuerySuggestionList, QuerySuggestionListTypedDict -class PersonMetadataType(str, Enum): +class PersonMetadataType(str, Enum, metaclass=utils.OpenEnumMeta): # The person is a current full-time employee of the company. FULL_TIME = "FULL_TIME" # The person is a current contractor of the company. @@ -300,6 +301,15 @@ class PersonMetadata(BaseModel): is_org_root: Annotated[Optional[bool], pydantic.Field(alias="isOrgRoot")] = None r"""Whether this person is a \"root\" node in their organization's hierarchy.""" + @field_serializer("type") + def serialize_type(self, value): + if isinstance(value, str): + try: + return models.PersonMetadataType(value) + except ValueError: + return value + return value + @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = set( diff --git a/src/glean/api_client/models/personteam.py b/src/glean/api_client/models/personteam.py index 9901d3e3..c6a148ca 100644 --- a/src/glean/api_client/models/personteam.py +++ b/src/glean/api_client/models/personteam.py @@ -3,14 +3,15 @@ from __future__ import annotations from datetime import datetime from enum import Enum +from glean.api_client import models, utils from glean.api_client.types import BaseModel, UNSET_SENTINEL import pydantic -from pydantic import model_serializer +from pydantic import field_serializer, model_serializer from typing import Optional from typing_extensions import Annotated, NotRequired, TypedDict -class PersonTeamRelationship(str, Enum): +class PersonTeamRelationship(str, Enum, metaclass=utils.OpenEnumMeta): r"""The team member's relationship to the team. This defaults to MEMBER if not set.""" MEMBER = "MEMBER" @@ -53,6 +54,15 @@ class PersonTeam(BaseModel): join_date: Annotated[Optional[datetime], pydantic.Field(alias="joinDate")] = None r"""The team member's start date""" + @field_serializer("relationship") + def serialize_relationship(self, value): + if isinstance(value, str): + try: + return models.PersonTeamRelationship(value) + except ValueError: + return value + return value + @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = set( diff --git a/src/glean/api_client/models/persontoteamrelationship.py b/src/glean/api_client/models/persontoteamrelationship.py index 6cb4d329..44d01449 100644 --- a/src/glean/api_client/models/persontoteamrelationship.py +++ b/src/glean/api_client/models/persontoteamrelationship.py @@ -3,9 +3,10 @@ from __future__ import annotations from datetime import datetime from enum import Enum +from glean.api_client import models, utils from glean.api_client.types import BaseModel, UNSET_SENTINEL import pydantic -from pydantic import model_serializer +from pydantic import field_serializer, model_serializer from typing import Optional, TYPE_CHECKING from typing_extensions import Annotated, NotRequired, TypedDict @@ -13,7 +14,7 @@ from .person import Person, PersonTypedDict -class PersonToTeamRelationshipRelationship(str, Enum): +class PersonToTeamRelationshipRelationship(str, Enum, metaclass=utils.OpenEnumMeta): r"""The team member's relationship to the team. This defaults to MEMBER if not set.""" MEMBER = "MEMBER" @@ -53,6 +54,15 @@ class PersonToTeamRelationship(BaseModel): join_date: Annotated[Optional[datetime], pydantic.Field(alias="joinDate")] = None r"""The team member's start date""" + @field_serializer("relationship") + def serialize_relationship(self, value): + if isinstance(value, str): + try: + return models.PersonToTeamRelationshipRelationship(value) + except ValueError: + return value + return value + @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = set(["relationship", "customRelationshipStr", "joinDate"]) diff --git a/src/glean/api_client/models/propertydefinition.py b/src/glean/api_client/models/propertydefinition.py index 8116de2d..2e5775c9 100644 --- a/src/glean/api_client/models/propertydefinition.py +++ b/src/glean/api_client/models/propertydefinition.py @@ -2,14 +2,15 @@ from __future__ import annotations from enum import Enum +from glean.api_client import models, utils from glean.api_client.types import BaseModel, UNSET_SENTINEL import pydantic -from pydantic import model_serializer +from pydantic import field_serializer, model_serializer from typing import Optional from typing_extensions import Annotated, NotRequired, TypedDict -class PropertyType(str, Enum): +class PropertyType(str, Enum, metaclass=utils.OpenEnumMeta): r"""The type of custom property - this governs the search and faceting behavior. Note that MULTIPICKLIST is not yet supported.""" TEXT = "TEXT" @@ -21,7 +22,7 @@ class PropertyType(str, Enum): MULTIPICKLIST = "MULTIPICKLIST" -class UIOptions(str, Enum): +class UIOptions(str, Enum, metaclass=utils.OpenEnumMeta): NONE = "NONE" SEARCH_RESULT = "SEARCH_RESULT" DOC_HOVERCARD = "DOC_HOVERCARD" @@ -82,6 +83,24 @@ class PropertyDefinition(BaseModel): group: Optional[str] = None r"""The unique identifier of the `PropertyGroup` to which this property belongs.""" + @field_serializer("property_type") + def serialize_property_type(self, value): + if isinstance(value, str): + try: + return models.PropertyType(value) + except ValueError: + return value + return value + + @field_serializer("ui_options") + def serialize_ui_options(self, value): + if isinstance(value, str): + try: + return models.UIOptions(value) + except ValueError: + return value + return value + @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = set( diff --git a/src/glean/api_client/models/quicklink.py b/src/glean/api_client/models/quicklink.py index 0312b05d..9ade67c4 100644 --- a/src/glean/api_client/models/quicklink.py +++ b/src/glean/api_client/models/quicklink.py @@ -3,6 +3,7 @@ from __future__ import annotations from .iconconfig import IconConfig, IconConfigTypedDict from enum import Enum +from glean.api_client import utils from glean.api_client.types import BaseModel, UNSET_SENTINEL import pydantic from pydantic import model_serializer @@ -10,7 +11,7 @@ from typing_extensions import Annotated, NotRequired, TypedDict -class Scope(str, Enum): +class Scope(str, Enum, metaclass=utils.OpenEnumMeta): APP_CARD = "APP_CARD" AUTOCOMPLETE_EXACT_MATCH = "AUTOCOMPLETE_EXACT_MATCH" AUTOCOMPLETE_FUZZY_MATCH = "AUTOCOMPLETE_FUZZY_MATCH" diff --git a/src/glean/api_client/models/readpermission.py b/src/glean/api_client/models/readpermission.py index 9ac9f9e2..9c80bb2e 100644 --- a/src/glean/api_client/models/readpermission.py +++ b/src/glean/api_client/models/readpermission.py @@ -2,9 +2,10 @@ from __future__ import annotations from .scopetype import ScopeType +from glean.api_client import models from glean.api_client.types import BaseModel, UNSET_SENTINEL import pydantic -from pydantic import model_serializer +from pydantic import field_serializer, model_serializer from typing import Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -22,6 +23,15 @@ class ReadPermission(BaseModel): scope_type: Annotated[Optional[ScopeType], pydantic.Field(alias="scopeType")] = None r"""Describes the scope for a ReadPermission, WritePermission, or GrantPermission object""" + @field_serializer("scope_type") + def serialize_scope_type(self, value): + if isinstance(value, str): + try: + return models.ScopeType(value) + except ValueError: + return value + return value + @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = set(["scopeType"]) diff --git a/src/glean/api_client/models/relateddocuments.py b/src/glean/api_client/models/relateddocuments.py index 034a4c3a..55f46adf 100644 --- a/src/glean/api_client/models/relateddocuments.py +++ b/src/glean/api_client/models/relateddocuments.py @@ -2,9 +2,10 @@ from __future__ import annotations from enum import Enum +from glean.api_client import models, utils from glean.api_client.types import BaseModel, UNSET_SENTINEL import pydantic -from pydantic import model_serializer +from pydantic import field_serializer, model_serializer from typing import List, Optional, TYPE_CHECKING from typing_extensions import Annotated, NotRequired, TypedDict @@ -14,7 +15,7 @@ from .searchresult import SearchResult, SearchResultTypedDict -class Relation(str, Enum): +class Relation(str, Enum, metaclass=utils.OpenEnumMeta): r"""How this document relates to the including entity.""" ATTACHMENT = "ATTACHMENT" @@ -72,6 +73,15 @@ class RelatedDocuments(BaseModel): results: Optional[List["SearchResult"]] = None r"""A truncated list of documents associated with this relation. To be used in favor of `documents` because it contains a trackingToken.""" + @field_serializer("relation") + def serialize_relation(self, value): + if isinstance(value, str): + try: + return models.Relation(value) + except ValueError: + return value + return value + @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = set( diff --git a/src/glean/api_client/models/reportstatusresponse.py b/src/glean/api_client/models/reportstatusresponse.py index 2522a82e..58380be4 100644 --- a/src/glean/api_client/models/reportstatusresponse.py +++ b/src/glean/api_client/models/reportstatusresponse.py @@ -2,14 +2,15 @@ from __future__ import annotations from enum import Enum +from glean.api_client import models, utils from glean.api_client.types import BaseModel, UNSET_SENTINEL import pydantic -from pydantic import model_serializer +from pydantic import field_serializer, model_serializer from typing import Optional from typing_extensions import Annotated, NotRequired, TypedDict -class ReportStatusResponseStatus(str, Enum): +class ReportStatusResponseStatus(str, Enum, metaclass=utils.OpenEnumMeta): PENDING = "PENDING" SUCCESS = "SUCCESS" FAILURE = "FAILURE" @@ -30,6 +31,15 @@ class ReportStatusResponse(BaseModel): start_time: Annotated[Optional[str], pydantic.Field(alias="startTime")] = None r"""The timestamp at which the report's run/scan began.""" + @field_serializer("status") + def serialize_status(self, value): + if isinstance(value, str): + try: + return models.ReportStatusResponseStatus(value) + except ValueError: + return value + return value + @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = set(["status", "startTime"]) diff --git a/src/glean/api_client/models/scopetype.py b/src/glean/api_client/models/scopetype.py index 3f3b0004..e45814ba 100644 --- a/src/glean/api_client/models/scopetype.py +++ b/src/glean/api_client/models/scopetype.py @@ -2,9 +2,10 @@ from __future__ import annotations from enum import Enum +from glean.api_client import utils -class ScopeType(str, Enum): +class ScopeType(str, Enum, metaclass=utils.OpenEnumMeta): r"""Describes the scope for a ReadPermission, WritePermission, or GrantPermission object""" GLOBAL = "GLOBAL" diff --git a/src/glean/api_client/models/searchrequestoptions.py b/src/glean/api_client/models/searchrequestoptions.py index 9ee1139f..a25a2d04 100644 --- a/src/glean/api_client/models/searchrequestoptions.py +++ b/src/glean/api_client/models/searchrequestoptions.py @@ -7,6 +7,7 @@ from .facetfilterset import FacetFilterSet, FacetFilterSetTypedDict from .restrictionfilters import RestrictionFilters, RestrictionFiltersTypedDict from enum import Enum +from glean.api_client import utils from glean.api_client.types import BaseModel, UNSET_SENTINEL import pydantic from pydantic import model_serializer @@ -14,7 +15,7 @@ from typing_extensions import Annotated, NotRequired, TypedDict -class ResponseHint(str, Enum): +class ResponseHint(str, Enum, metaclass=utils.OpenEnumMeta): r"""Hints for the response content.""" # Return result counts for each result set which has non-zero results, even when the request itself is limited to a subset. diff --git a/src/glean/api_client/models/searchresult.py b/src/glean/api_client/models/searchresult.py index c476686e..ceb26500 100644 --- a/src/glean/api_client/models/searchresult.py +++ b/src/glean/api_client/models/searchresult.py @@ -3,9 +3,10 @@ from __future__ import annotations from .clustertypeenum import ClusterTypeEnum from .searchresultprominenceenum import SearchResultProminenceEnum +from glean.api_client import models from glean.api_client.types import BaseModel, UNSET_SENTINEL import pydantic -from pydantic import model_serializer +from pydantic import field_serializer, model_serializer from typing import List, Optional, TYPE_CHECKING from typing_extensions import Annotated, NotRequired, TypedDict @@ -149,6 +150,24 @@ class SearchResult(BaseModel): pins: Optional[List["PinDocument"]] = None r"""A list of pins associated with this search result.""" + @field_serializer("cluster_type") + def serialize_cluster_type(self, value): + if isinstance(value, str): + try: + return models.ClusterTypeEnum(value) + except ValueError: + return value + return value + + @field_serializer("prominence") + def serialize_prominence(self, value): + if isinstance(value, str): + try: + return models.SearchResultProminenceEnum(value) + except ValueError: + return value + return value + @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = set( diff --git a/src/glean/api_client/models/searchresultprominenceenum.py b/src/glean/api_client/models/searchresultprominenceenum.py index ddf2e8f1..27ef471f 100644 --- a/src/glean/api_client/models/searchresultprominenceenum.py +++ b/src/glean/api_client/models/searchresultprominenceenum.py @@ -2,9 +2,10 @@ from __future__ import annotations from enum import Enum +from glean.api_client import utils -class SearchResultProminenceEnum(str, Enum): +class SearchResultProminenceEnum(str, Enum, metaclass=utils.OpenEnumMeta): r"""The level of visual distinction that should be given to a result.""" # A high-confidence result that should feature prominently on the page. diff --git a/src/glean/api_client/models/searchwarning.py b/src/glean/api_client/models/searchwarning.py index 72c2fb91..062363de 100644 --- a/src/glean/api_client/models/searchwarning.py +++ b/src/glean/api_client/models/searchwarning.py @@ -2,14 +2,15 @@ from __future__ import annotations from enum import Enum +from glean.api_client import models, utils from glean.api_client.types import BaseModel, UNSET_SENTINEL import pydantic -from pydantic import model_serializer +from pydantic import field_serializer, model_serializer from typing import List, Optional from typing_extensions import Annotated, NotRequired, TypedDict -class WarningType(str, Enum): +class WarningType(str, Enum, metaclass=utils.OpenEnumMeta): r"""The type of the warning.""" LONG_QUERY = "LONG_QUERY" @@ -51,6 +52,15 @@ class SearchWarning(BaseModel): ] = None r"""A list of query terms that were ignored when generating search results, if any. For example, terms containing invalid filters such as \"updated:invalid_date\" will be ignored.""" + @field_serializer("warning_type") + def serialize_warning_type(self, value): + if isinstance(value, str): + try: + return models.WarningType(value) + except ValueError: + return value + return value + @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = set(["lastUsedTerm", "quotesIgnoredQuery", "ignoredTerms"]) diff --git a/src/glean/api_client/models/sectiontype.py b/src/glean/api_client/models/sectiontype.py index 2dbb489e..59fe1bb6 100644 --- a/src/glean/api_client/models/sectiontype.py +++ b/src/glean/api_client/models/sectiontype.py @@ -2,9 +2,10 @@ from __future__ import annotations from enum import Enum +from glean.api_client import utils -class SectionType(str, Enum): +class SectionType(str, Enum, metaclass=utils.OpenEnumMeta): r"""Type of the section. This defines how the section should be interpreted and rendered in the digest.""" # A standard section for channel-based digests (e.g. from Slack, Teams). diff --git a/src/glean/api_client/models/sensitiveinfotype.py b/src/glean/api_client/models/sensitiveinfotype.py index 69c21122..95dec2f7 100644 --- a/src/glean/api_client/models/sensitiveinfotype.py +++ b/src/glean/api_client/models/sensitiveinfotype.py @@ -2,9 +2,10 @@ from __future__ import annotations from enum import Enum +from glean.api_client import models, utils from glean.api_client.types import BaseModel, UNSET_SENTINEL import pydantic -from pydantic import model_serializer +from pydantic import field_serializer, model_serializer from typing import Optional from typing_extensions import Annotated, NotRequired, TypedDict, deprecated @@ -12,7 +13,7 @@ @deprecated( "warning: ** DEPRECATED ** - Deprecated on 2026-02-05, removal scheduled for 2026-10-15: Field is deprecated." ) -class SensitiveInfoTypeLikelihoodThreshold(str, Enum): +class SensitiveInfoTypeLikelihoodThreshold(str, Enum, metaclass=utils.OpenEnumMeta): LIKELY = "LIKELY" VERY_LIKELY = "VERY_LIKELY" POSSIBLE = "POSSIBLE" @@ -38,6 +39,15 @@ class SensitiveInfoType(BaseModel): info_type: Annotated[Optional[str], pydantic.Field(alias="infoType")] = None r"""Text representation of an info-type to scan for.""" + @field_serializer("likelihood_threshold") + def serialize_likelihood_threshold(self, value): + if isinstance(value, str): + try: + return models.SensitiveInfoTypeLikelihoodThreshold(value) + except ValueError: + return value + return value + @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = set(["likelihoodThreshold", "infoType"]) diff --git a/src/glean/api_client/models/shortcuterror.py b/src/glean/api_client/models/shortcuterror.py index bc2d9b7f..ac2407ce 100644 --- a/src/glean/api_client/models/shortcuterror.py +++ b/src/glean/api_client/models/shortcuterror.py @@ -2,14 +2,15 @@ from __future__ import annotations from enum import Enum +from glean.api_client import models, utils from glean.api_client.types import BaseModel, UNSET_SENTINEL import pydantic -from pydantic import model_serializer +from pydantic import field_serializer, model_serializer from typing import Optional from typing_extensions import Annotated, NotRequired, TypedDict -class ShortcutErrorErrorType(str, Enum): +class ShortcutErrorErrorType(str, Enum, metaclass=utils.OpenEnumMeta): NO_PERMISSION = "NO_PERMISSION" INVALID_ID = "INVALID_ID" EXISTING_SHORTCUT = "EXISTING_SHORTCUT" @@ -25,6 +26,15 @@ class ShortcutError(BaseModel): Optional[ShortcutErrorErrorType], pydantic.Field(alias="errorType") ] = None + @field_serializer("error_type") + def serialize_error_type(self, value): + if isinstance(value, str): + try: + return models.ShortcutErrorErrorType(value) + except ValueError: + return value + return value + @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = set(["errorType"]) diff --git a/src/glean/api_client/models/structuredresult.py b/src/glean/api_client/models/structuredresult.py index ece0abe6..8f1d1e28 100644 --- a/src/glean/api_client/models/structuredresult.py +++ b/src/glean/api_client/models/structuredresult.py @@ -4,9 +4,10 @@ from .appresult import AppResult, AppResultTypedDict from .disambiguation import Disambiguation, DisambiguationTypedDict from enum import Enum +from glean.api_client import models, utils from glean.api_client.types import BaseModel, UNSET_SENTINEL import pydantic -from pydantic import model_serializer +from pydantic import field_serializer, model_serializer from typing import List, Optional, TYPE_CHECKING from typing_extensions import Annotated, NotRequired, TypedDict @@ -30,7 +31,7 @@ from .team import Team, TeamTypedDict -class Prominence(str, Enum): +class Prominence(str, Enum, metaclass=utils.OpenEnumMeta): r"""The level of visual distinction that should be given to a result.""" # A high-confidence result that should feature prominently on the page. @@ -41,7 +42,7 @@ class Prominence(str, Enum): STANDARD = "STANDARD" -class StructuredResultSource(str, Enum): +class StructuredResultSource(str, Enum, metaclass=utils.OpenEnumMeta): r"""Source context for this result. Possible values depend on the result type.""" EXPERT_DETECTION = "EXPERT_DETECTION" @@ -152,6 +153,24 @@ class StructuredResult(BaseModel): source: Optional[StructuredResultSource] = None r"""Source context for this result. Possible values depend on the result type.""" + @field_serializer("prominence") + def serialize_prominence(self, value): + if isinstance(value, str): + try: + return models.Prominence(value) + except ValueError: + return value + return value + + @field_serializer("source") + def serialize_source(self, value): + if isinstance(value, str): + try: + return models.StructuredResultSource(value) + except ValueError: + return value + return value + @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = set( diff --git a/src/glean/api_client/models/team.py b/src/glean/api_client/models/team.py index c688efcd..4abb136d 100644 --- a/src/glean/api_client/models/team.py +++ b/src/glean/api_client/models/team.py @@ -7,9 +7,10 @@ from .teamemail import TeamEmail, TeamEmailTypedDict from datetime import datetime from enum import Enum +from glean.api_client import models, utils from glean.api_client.types import BaseModel, UNSET_SENTINEL import pydantic -from pydantic import model_serializer +from pydantic import field_serializer, model_serializer from typing import Dict, List, Optional, TYPE_CHECKING from typing_extensions import Annotated, NotRequired, TypedDict @@ -21,7 +22,7 @@ ) -class TeamStatus(str, Enum): +class TeamStatus(str, Enum, metaclass=utils.OpenEnumMeta): r"""whether this team is fully processed or there are still unprocessed operations that'll affect it""" PROCESSED = "PROCESSED" @@ -146,6 +147,15 @@ class Team(BaseModel): logging_id: Annotated[Optional[str], pydantic.Field(alias="loggingId")] = None r"""The logging id of the team used in scrubbed logs, client analytics, and metrics.""" + @field_serializer("status") + def serialize_status(self, value): + if isinstance(value, str): + try: + return models.TeamStatus(value) + except ValueError: + return value + return value + @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = set( diff --git a/src/glean/api_client/models/textrange.py b/src/glean/api_client/models/textrange.py index 2d665a51..fea3df5e 100644 --- a/src/glean/api_client/models/textrange.py +++ b/src/glean/api_client/models/textrange.py @@ -2,9 +2,10 @@ from __future__ import annotations from enum import Enum +from glean.api_client import models, utils from glean.api_client.types import BaseModel, UNSET_SENTINEL import pydantic -from pydantic import model_serializer +from pydantic import field_serializer, model_serializer from typing import Optional, TYPE_CHECKING from typing_extensions import Annotated, NotRequired, TypedDict @@ -12,7 +13,7 @@ from .document import Document, DocumentTypedDict -class TextRangeType(str, Enum): +class TextRangeType(str, Enum, metaclass=utils.OpenEnumMeta): BOLD = "BOLD" CITATION = "CITATION" HIGHLIGHT = "HIGHLIGHT" @@ -48,6 +49,15 @@ class TextRange(BaseModel): document: Optional["Document"] = None + @field_serializer("type") + def serialize_type(self, value): + if isinstance(value, str): + try: + return models.TextRangeType(value) + except ValueError: + return value + return value + @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = set(["endIndex", "type", "url", "document"]) diff --git a/src/glean/api_client/models/timerangefilter.py b/src/glean/api_client/models/timerangefilter.py index 92f7896e..49087f7a 100644 --- a/src/glean/api_client/models/timerangefilter.py +++ b/src/glean/api_client/models/timerangefilter.py @@ -3,14 +3,15 @@ from __future__ import annotations from .timerange import TimeRange, TimeRangeTypedDict from enum import Enum +from glean.api_client import models, utils from glean.api_client.types import BaseModel, UNSET_SENTINEL import pydantic -from pydantic import model_serializer +from pydantic import field_serializer, model_serializer from typing import Optional from typing_extensions import Annotated, NotRequired, TypedDict -class TimeRangeFilterTimePeriodType(str, Enum): +class TimeRangeFilterTimePeriodType(str, Enum, metaclass=utils.OpenEnumMeta): r"""The type of time period for which to filter findings.""" PAST_DAY = "PAST_DAY" @@ -36,6 +37,15 @@ class TimeRangeFilter(BaseModel): Optional[TimeRange], pydantic.Field(alias="customTimeRange") ] = None + @field_serializer("time_period_type") + def serialize_time_period_type(self, value): + if isinstance(value, str): + try: + return models.TimeRangeFilterTimePeriodType(value) + except ValueError: + return value + return value + @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = set(["timePeriodType", "customTimeRange"]) diff --git a/src/glean/api_client/models/tool.py b/src/glean/api_client/models/tool.py index 7252330c..6469ec58 100644 --- a/src/glean/api_client/models/tool.py +++ b/src/glean/api_client/models/tool.py @@ -3,14 +3,15 @@ from __future__ import annotations from .toolparameter import ToolParameter, ToolParameterTypedDict from enum import Enum +from glean.api_client import models, utils from glean.api_client.types import BaseModel, UNSET_SENTINEL import pydantic -from pydantic import model_serializer +from pydantic import field_serializer, model_serializer from typing import Dict, Optional from typing_extensions import Annotated, NotRequired, TypedDict -class ToolType(str, Enum): +class ToolType(str, Enum, metaclass=utils.OpenEnumMeta): r"""Type of tool (READ, WRITE)""" READ = "READ" @@ -46,6 +47,15 @@ class Tool(BaseModel): parameters: Optional[Dict[str, ToolParameter]] = None r"""The parameters for the tool. Each key is the name of the parameter and the value is the parameter object.""" + @field_serializer("type") + def serialize_type(self, value): + if isinstance(value, str): + try: + return models.ToolType(value) + except ValueError: + return value + return value + @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = set( diff --git a/src/glean/api_client/models/toolmetadata.py b/src/glean/api_client/models/toolmetadata.py index 10e8f64d..bac0b288 100644 --- a/src/glean/api_client/models/toolmetadata.py +++ b/src/glean/api_client/models/toolmetadata.py @@ -6,21 +6,22 @@ from .personobject import PersonObject, PersonObjectTypedDict from datetime import datetime from enum import Enum +from glean.api_client import models, utils from glean.api_client.types import BaseModel, UNSET_SENTINEL import pydantic -from pydantic import model_serializer +from pydantic import field_serializer, model_serializer from typing import Optional from typing_extensions import Annotated, NotRequired, TypedDict -class ToolMetadataType(str, Enum): +class ToolMetadataType(str, Enum, metaclass=utils.OpenEnumMeta): r"""The type of tool.""" RETRIEVAL = "RETRIEVAL" ACTION = "ACTION" -class KnowledgeType(str, Enum): +class KnowledgeType(str, Enum, metaclass=utils.OpenEnumMeta): r"""Indicates the kind of knowledge a tool would access or modify.""" NEUTRAL_KNOWLEDGE = "NEUTRAL_KNOWLEDGE" @@ -28,7 +29,7 @@ class KnowledgeType(str, Enum): WORLD_KNOWLEDGE = "WORLD_KNOWLEDGE" -class WriteActionType(str, Enum): +class WriteActionType(str, Enum, metaclass=utils.OpenEnumMeta): r"""Valid only for write actions. Represents the type of write action. REDIRECT - The client renders the URL which contains information for carrying out the action. EXECUTION - Send a request to an external server and execute the action. MCP - Send a tools/call request to an MCP server to execute the action.""" REDIRECT = "REDIRECT" @@ -36,7 +37,7 @@ class WriteActionType(str, Enum): MCP = "MCP" -class AuthType(str, Enum): +class AuthType(str, Enum, metaclass=utils.OpenEnumMeta): r"""The type of authentication being used. Use 'OAUTH_*' when Glean calls an external API (e.g., Jira) on behalf of a user to obtain an OAuth token. 'OAUTH_ADMIN' utilizes an admin token for external API calls on behalf all users. @@ -171,6 +172,42 @@ class ToolMetadata(BaseModel): ] = None r"""Whether this action has been fully configured and validated.""" + @field_serializer("type") + def serialize_type(self, value): + if isinstance(value, str): + try: + return models.ToolMetadataType(value) + except ValueError: + return value + return value + + @field_serializer("knowledge_type") + def serialize_knowledge_type(self, value): + if isinstance(value, str): + try: + return models.KnowledgeType(value) + except ValueError: + return value + return value + + @field_serializer("write_action_type") + def serialize_write_action_type(self, value): + if isinstance(value, str): + try: + return models.WriteActionType(value) + except ValueError: + return value + return value + + @field_serializer("auth_type") + def serialize_auth_type(self, value): + if isinstance(value, str): + try: + return models.AuthType(value) + except ValueError: + return value + return value + @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = set( diff --git a/src/glean/api_client/models/toolparameter.py b/src/glean/api_client/models/toolparameter.py index 31e41566..a01ddb8e 100644 --- a/src/glean/api_client/models/toolparameter.py +++ b/src/glean/api_client/models/toolparameter.py @@ -2,14 +2,15 @@ from __future__ import annotations from enum import Enum +from glean.api_client import models, utils from glean.api_client.types import BaseModel, UNSET_SENTINEL import pydantic -from pydantic import model_serializer +from pydantic import field_serializer, model_serializer from typing import Dict, List, Optional from typing_extensions import Annotated, NotRequired, TypedDict -class ToolParameterType(str, Enum): +class ToolParameterType(str, Enum, metaclass=utils.OpenEnumMeta): r"""Parameter type (string, number, boolean, object, array)""" STRING = "string" @@ -58,6 +59,15 @@ class ToolParameter(BaseModel): properties: Optional[Dict[str, ToolParameter]] = None r"""When type is 'object', this describes the structure of the object.""" + @field_serializer("type") + def serialize_type(self, value): + if isinstance(value, str): + try: + return models.ToolParameterType(value) + except ValueError: + return value + return value + @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = set( diff --git a/src/glean/api_client/models/ugctype.py b/src/glean/api_client/models/ugctype.py index 9594a7bf..7ed8033e 100644 --- a/src/glean/api_client/models/ugctype.py +++ b/src/glean/api_client/models/ugctype.py @@ -2,9 +2,10 @@ from __future__ import annotations from enum import Enum +from glean.api_client import utils -class UgcType(str, Enum): +class UgcType(str, Enum, metaclass=utils.OpenEnumMeta): ANNOUNCEMENTS_TYPE = "ANNOUNCEMENTS_TYPE" ANSWERS_TYPE = "ANSWERS_TYPE" COLLECTIONS_TYPE = "COLLECTIONS_TYPE" diff --git a/src/glean/api_client/models/unauthorizeddatasourceinstance.py b/src/glean/api_client/models/unauthorizeddatasourceinstance.py index bec92224..c4067ecc 100644 --- a/src/glean/api_client/models/unauthorizeddatasourceinstance.py +++ b/src/glean/api_client/models/unauthorizeddatasourceinstance.py @@ -2,9 +2,10 @@ from __future__ import annotations from .authstatus import AuthStatus +from glean.api_client import models from glean.api_client.types import BaseModel, UNSET_SENTINEL import pydantic -from pydantic import model_serializer +from pydantic import field_serializer, model_serializer from typing import Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -51,6 +52,15 @@ class UnauthorizedDatasourceInstance(BaseModel): """ + @field_serializer("auth_status") + def serialize_auth_status(self, value): + if isinstance(value, str): + try: + return models.AuthStatus(value) + except ValueError: + return value + return value + @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = set( diff --git a/src/glean/api_client/models/updatedatasourceconfigurationrequest.py b/src/glean/api_client/models/updatedatasourceconfigurationrequest.py new file mode 100644 index 00000000..e1a2c5a3 --- /dev/null +++ b/src/glean/api_client/models/updatedatasourceconfigurationrequest.py @@ -0,0 +1,23 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .datasourceinstanceconfiguration import ( + DatasourceInstanceConfiguration, + DatasourceInstanceConfigurationTypedDict, +) +from glean.api_client.types import BaseModel +from typing_extensions import TypedDict + + +class UpdateDatasourceConfigurationRequestTypedDict(TypedDict): + r"""Request to update greenlisted configuration values for a datasource instance. Only keys that are exposed via the public API greenlist may be set.""" + + configuration: DatasourceInstanceConfigurationTypedDict + r"""Configuration for a datasource instance""" + + +class UpdateDatasourceConfigurationRequest(BaseModel): + r"""Request to update greenlisted configuration values for a datasource instance. Only keys that are exposed via the public API greenlist may be set.""" + + configuration: DatasourceInstanceConfiguration + r"""Configuration for a datasource instance""" diff --git a/src/glean/api_client/models/updatedatasourceinstanceconfigurationop.py b/src/glean/api_client/models/updatedatasourceinstanceconfigurationop.py new file mode 100644 index 00000000..1f77deeb --- /dev/null +++ b/src/glean/api_client/models/updatedatasourceinstanceconfigurationop.py @@ -0,0 +1,42 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .updatedatasourceconfigurationrequest import ( + UpdateDatasourceConfigurationRequest, + UpdateDatasourceConfigurationRequestTypedDict, +) +from glean.api_client.types import BaseModel +from glean.api_client.utils import FieldMetadata, PathParamMetadata, RequestMetadata +import pydantic +from typing_extensions import Annotated, TypedDict + + +class UpdateDatasourceInstanceConfigurationRequestTypedDict(TypedDict): + datasource_id: str + r"""The datasource type identifier (e.g. o365sharepoint)""" + instance_id: str + r"""The datasource instance identifier""" + update_datasource_configuration_request: ( + UpdateDatasourceConfigurationRequestTypedDict + ) + + +class UpdateDatasourceInstanceConfigurationRequest(BaseModel): + datasource_id: Annotated[ + str, + pydantic.Field(alias="datasourceId"), + FieldMetadata(path=PathParamMetadata(style="simple", explode=False)), + ] + r"""The datasource type identifier (e.g. o365sharepoint)""" + + instance_id: Annotated[ + str, + pydantic.Field(alias="instanceId"), + FieldMetadata(path=PathParamMetadata(style="simple", explode=False)), + ] + r"""The datasource instance identifier""" + + update_datasource_configuration_request: Annotated[ + UpdateDatasourceConfigurationRequest, + FieldMetadata(request=RequestMetadata(media_type="application/json")), + ] diff --git a/src/glean/api_client/models/updatedlpconfigresponse.py b/src/glean/api_client/models/updatedlpconfigresponse.py index d415f88d..46950658 100644 --- a/src/glean/api_client/models/updatedlpconfigresponse.py +++ b/src/glean/api_client/models/updatedlpconfigresponse.py @@ -2,9 +2,10 @@ from __future__ import annotations from .dlpsimpleresult import DlpSimpleResult +from glean.api_client import models from glean.api_client.types import BaseModel, UNSET_SENTINEL import pydantic -from pydantic import model_serializer +from pydantic import field_serializer, model_serializer from typing import Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -21,6 +22,15 @@ class UpdateDlpConfigResponse(BaseModel): report_id: Annotated[Optional[str], pydantic.Field(alias="reportId")] = None r"""The id of the report that was just created and run.""" + @field_serializer("result") + def serialize_result(self, value): + if isinstance(value, str): + try: + return models.DlpSimpleResult(value) + except ValueError: + return value + return value + @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = set(["result", "reportId"]) diff --git a/src/glean/api_client/models/updatedlpreportrequest.py b/src/glean/api_client/models/updatedlpreportrequest.py index 63f10962..4f302041 100644 --- a/src/glean/api_client/models/updatedlpreportrequest.py +++ b/src/glean/api_client/models/updatedlpreportrequest.py @@ -4,9 +4,10 @@ from .dlpconfig import DlpConfig, DlpConfigTypedDict from .dlpfrequency import DlpFrequency from .dlpreportstatus import DlpReportStatus +from glean.api_client import models from glean.api_client.types import BaseModel, UNSET_SENTINEL import pydantic -from pydantic import model_serializer +from pydantic import field_serializer, model_serializer from typing import Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -42,6 +43,24 @@ class UpdateDlpReportRequest(BaseModel): report_name: Annotated[Optional[str], pydantic.Field(alias="reportName")] = None r"""The new name of the policy if provided.""" + @field_serializer("frequency") + def serialize_frequency(self, value): + if isinstance(value, str): + try: + return models.DlpFrequency(value) + except ValueError: + return value + return value + + @field_serializer("status") + def serialize_status(self, value): + if isinstance(value, str): + try: + return models.DlpReportStatus(value) + except ValueError: + return value + return value + @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = set( diff --git a/src/glean/api_client/models/updatedlpreportresponse.py b/src/glean/api_client/models/updatedlpreportresponse.py index c65474b8..fd884679 100644 --- a/src/glean/api_client/models/updatedlpreportresponse.py +++ b/src/glean/api_client/models/updatedlpreportresponse.py @@ -2,8 +2,9 @@ from __future__ import annotations from .dlpsimpleresult import DlpSimpleResult +from glean.api_client import models from glean.api_client.types import BaseModel, UNSET_SENTINEL -from pydantic import model_serializer +from pydantic import field_serializer, model_serializer from typing import Optional from typing_extensions import NotRequired, TypedDict @@ -15,6 +16,15 @@ class UpdateDlpReportResponseTypedDict(TypedDict): class UpdateDlpReportResponse(BaseModel): result: Optional[DlpSimpleResult] = None + @field_serializer("result") + def serialize_result(self, value): + if isinstance(value, str): + try: + return models.DlpSimpleResult(value) + except ValueError: + return value + return value + @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = set(["result"]) diff --git a/src/glean/api_client/models/updatetype.py b/src/glean/api_client/models/updatetype.py index 687544d4..6a51a4bb 100644 --- a/src/glean/api_client/models/updatetype.py +++ b/src/glean/api_client/models/updatetype.py @@ -2,9 +2,10 @@ from __future__ import annotations from enum import Enum +from glean.api_client import utils -class UpdateType(str, Enum): +class UpdateType(str, Enum, metaclass=utils.OpenEnumMeta): r"""Optional type classification for the update.""" # Updates that require user attention or action diff --git a/src/glean/api_client/models/uploadstatusenum.py b/src/glean/api_client/models/uploadstatusenum.py index c7ca19e2..950f6a40 100644 --- a/src/glean/api_client/models/uploadstatusenum.py +++ b/src/glean/api_client/models/uploadstatusenum.py @@ -2,9 +2,10 @@ from __future__ import annotations from enum import Enum +from glean.api_client import utils -class UploadStatusEnum(str, Enum): +class UploadStatusEnum(str, Enum, metaclass=utils.OpenEnumMeta): r"""Upload status, enum of NOT_UPLOADED, UPLOADED, STATUS_UNKNOWN""" UPLOADED = "UPLOADED" diff --git a/src/glean/api_client/models/useractivity.py b/src/glean/api_client/models/useractivity.py index 5108bb40..c194604a 100644 --- a/src/glean/api_client/models/useractivity.py +++ b/src/glean/api_client/models/useractivity.py @@ -4,14 +4,15 @@ from .countinfo import CountInfo, CountInfoTypedDict from .person import Person, PersonTypedDict from enum import Enum +from glean.api_client import models, utils from glean.api_client.types import BaseModel, UNSET_SENTINEL import pydantic -from pydantic import model_serializer +from pydantic import field_serializer, model_serializer from typing import Optional from typing_extensions import Annotated, NotRequired, TypedDict -class UserActivityAction(str, Enum): +class UserActivityAction(str, Enum, metaclass=utils.OpenEnumMeta): r"""The action for the activity""" ADD = "ADD" @@ -52,6 +53,15 @@ class UserActivity(BaseModel): Optional[CountInfo], pydantic.Field(alias="aggregateVisitCount") ] = None + @field_serializer("action") + def serialize_action(self, value): + if isinstance(value, str): + try: + return models.UserActivityAction(value) + except ValueError: + return value + return value + @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = set(["actor", "timestamp", "action", "aggregateVisitCount"]) diff --git a/src/glean/api_client/models/useractivityinsight.py b/src/glean/api_client/models/useractivityinsight.py index 76d15600..9eae4fc5 100644 --- a/src/glean/api_client/models/useractivityinsight.py +++ b/src/glean/api_client/models/useractivityinsight.py @@ -4,14 +4,15 @@ from .countinfo import CountInfo, CountInfoTypedDict from .person import Person, PersonTypedDict from enum import Enum +from glean.api_client import models, utils from glean.api_client.types import BaseModel, UNSET_SENTINEL import pydantic -from pydantic import model_serializer +from pydantic import field_serializer, model_serializer from typing import Optional from typing_extensions import Annotated, NotRequired, TypedDict -class ActivityEnum(str, Enum): +class ActivityEnum(str, Enum, metaclass=utils.OpenEnumMeta): r"""Activity e.g. search, home page visit or all.""" ALL = "ALL" @@ -47,6 +48,15 @@ class UserActivityInsight(BaseModel): Optional[CountInfo], pydantic.Field(alias="activeDayCount") ] = None + @field_serializer("activity") + def serialize_activity(self, value): + if isinstance(value, str): + try: + return models.ActivityEnum(value) + except ValueError: + return value + return value + @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = set( diff --git a/src/glean/api_client/models/userrole.py b/src/glean/api_client/models/userrole.py index f4aa28fa..2768603f 100644 --- a/src/glean/api_client/models/userrole.py +++ b/src/glean/api_client/models/userrole.py @@ -2,9 +2,10 @@ from __future__ import annotations from enum import Enum +from glean.api_client import utils -class UserRole(str, Enum): +class UserRole(str, Enum, metaclass=utils.OpenEnumMeta): r"""A user's role with respect to a specific document.""" OWNER = "OWNER" diff --git a/src/glean/api_client/models/userrolespecification.py b/src/glean/api_client/models/userrolespecification.py index b6902a8c..d67f51b8 100644 --- a/src/glean/api_client/models/userrolespecification.py +++ b/src/glean/api_client/models/userrolespecification.py @@ -4,9 +4,10 @@ from .documentspec_union import DocumentSpecUnion, DocumentSpecUnionTypedDict from .group import Group, GroupTypedDict from .userrole import UserRole +from glean.api_client import models from glean.api_client.types import BaseModel, UNSET_SENTINEL import pydantic -from pydantic import model_serializer +from pydantic import field_serializer, model_serializer from typing import Optional, TYPE_CHECKING from typing_extensions import Annotated, NotRequired, TypedDict @@ -34,6 +35,15 @@ class UserRoleSpecification(BaseModel): group: Optional[Group] = None + @field_serializer("role") + def serialize_role(self, value): + if isinstance(value, str): + try: + return models.UserRole(value) + except ValueError: + return value + return value + @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = set(["sourceDocumentSpec", "person", "group"]) diff --git a/src/glean/api_client/models/userstatusresponse.py b/src/glean/api_client/models/userstatusresponse.py index e8fb646f..8131eca9 100644 --- a/src/glean/api_client/models/userstatusresponse.py +++ b/src/glean/api_client/models/userstatusresponse.py @@ -2,9 +2,10 @@ from __future__ import annotations from .uploadstatusenum import UploadStatusEnum +from glean.api_client import models from glean.api_client.types import BaseModel, UNSET_SENTINEL import pydantic -from pydantic import model_serializer +from pydantic import field_serializer, model_serializer from typing import Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -38,6 +39,15 @@ class UserStatusResponse(BaseModel): ] = None r"""Time of last successful upload for the user, in ISO 8601 format""" + @field_serializer("upload_status") + def serialize_upload_status(self, value): + if isinstance(value, str): + try: + return models.UploadStatusEnum(value) + except ValueError: + return value + return value + @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = set(["isActiveUser", "uploadStatus", "lastUploadedAt"]) diff --git a/src/glean/api_client/models/verification.py b/src/glean/api_client/models/verification.py index 4aa8837d..752197e3 100644 --- a/src/glean/api_client/models/verification.py +++ b/src/glean/api_client/models/verification.py @@ -2,8 +2,9 @@ from __future__ import annotations from enum import Enum +from glean.api_client import models, utils from glean.api_client.types import BaseModel, UNSET_SENTINEL -from pydantic import model_serializer +from pydantic import field_serializer, model_serializer from typing import Optional, TYPE_CHECKING from typing_extensions import NotRequired, TypedDict @@ -14,7 +15,7 @@ ) -class State(str, Enum): +class State(str, Enum, metaclass=utils.OpenEnumMeta): r"""The verification state for the document.""" UNVERIFIED = "UNVERIFIED" @@ -34,6 +35,15 @@ class Verification(BaseModel): metadata: Optional["VerificationMetadata"] = None + @field_serializer("state") + def serialize_state(self, value): + if isinstance(value, str): + try: + return models.State(value) + except ValueError: + return value + return value + @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = set(["metadata"]) diff --git a/src/glean/api_client/models/viewerinfo.py b/src/glean/api_client/models/viewerinfo.py index b27ade10..f707d635 100644 --- a/src/glean/api_client/models/viewerinfo.py +++ b/src/glean/api_client/models/viewerinfo.py @@ -3,9 +3,10 @@ from __future__ import annotations from datetime import datetime from enum import Enum +from glean.api_client import models, utils from glean.api_client.types import BaseModel, UNSET_SENTINEL import pydantic -from pydantic import model_serializer +from pydantic import field_serializer, model_serializer from typing import Optional from typing_extensions import Annotated, NotRequired, TypedDict, deprecated @@ -13,7 +14,7 @@ @deprecated( "warning: ** DEPRECATED ** - Deprecated on 2026-02-05, removal scheduled for 2026-10-15: Use permissions instead." ) -class Role(str, Enum): +class Role(str, Enum, metaclass=utils.OpenEnumMeta): r"""DEPRECATED - use permissions instead. Viewer's role on the specific document.""" ANSWER_MODERATOR = "ANSWER_MODERATOR" @@ -40,6 +41,15 @@ class ViewerInfo(BaseModel): Optional[datetime], pydantic.Field(alias="lastViewedTime") ] = None + @field_serializer("role") + def serialize_role(self, value): + if isinstance(value, str): + try: + return models.Role(value) + except ValueError: + return value + return value + @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = set(["role", "lastViewedTime"]) diff --git a/src/glean/api_client/models/writeactionparameter.py b/src/glean/api_client/models/writeactionparameter.py index cd9682d9..aff7513d 100644 --- a/src/glean/api_client/models/writeactionparameter.py +++ b/src/glean/api_client/models/writeactionparameter.py @@ -3,14 +3,15 @@ from __future__ import annotations from .possiblevalue import PossibleValue, PossibleValueTypedDict from enum import Enum +from glean.api_client import models, utils from glean.api_client.types import BaseModel, UNSET_SENTINEL import pydantic -from pydantic import model_serializer +from pydantic import field_serializer, model_serializer from typing import List, Optional from typing_extensions import Annotated, NotRequired, TypedDict -class WriteActionParameterType(str, Enum): +class WriteActionParameterType(str, Enum, metaclass=utils.OpenEnumMeta): r"""The type of the value (e.g., integer, string, boolean, etc.)""" UNKNOWN = "UNKNOWN" @@ -55,6 +56,15 @@ class WriteActionParameter(BaseModel): ] = None r"""Possible values that the parameter can take.""" + @field_serializer("type") + def serialize_type(self, value): + if isinstance(value, str): + try: + return models.WriteActionParameterType(value) + except ValueError: + return value + return value + @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = set( diff --git a/src/glean/api_client/models/writepermission.py b/src/glean/api_client/models/writepermission.py index 4a9c4635..7cea3a93 100644 --- a/src/glean/api_client/models/writepermission.py +++ b/src/glean/api_client/models/writepermission.py @@ -2,9 +2,10 @@ from __future__ import annotations from .scopetype import ScopeType +from glean.api_client import models from glean.api_client.types import BaseModel, UNSET_SENTINEL import pydantic -from pydantic import model_serializer +from pydantic import field_serializer, model_serializer from typing import Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -37,6 +38,15 @@ class WritePermission(BaseModel): delete: Optional[bool] = None r"""True if user has delete permission for this feature and scope""" + @field_serializer("scope_type") + def serialize_scope_type(self, value): + if isinstance(value, str): + try: + return models.ScopeType(value) + except ValueError: + return value + return value + @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = set(["scopeType", "create", "update", "delete"]) diff --git a/src/glean/api_client/people.py b/src/glean/api_client/people.py index 984073db..f240b57c 100644 --- a/src/glean/api_client/people.py +++ b/src/glean/api_client/people.py @@ -579,6 +579,9 @@ async def index_async( raise errors.GleanError("Unexpected response received", http_res) + @deprecated( + "warning: ** DEPRECATED ** - Deprecated on 2026-02-03, removal scheduled for 2026-10-15: Endpoint is deprecated." + ) def bulk_index( self, *, @@ -686,6 +689,9 @@ def bulk_index( raise errors.GleanError("Unexpected response received", http_res) + @deprecated( + "warning: ** DEPRECATED ** - Deprecated on 2026-02-03, removal scheduled for 2026-10-15: Endpoint is deprecated." + ) async def bulk_index_async( self, *, diff --git a/src/glean/api_client/sdk.py b/src/glean/api_client/sdk.py index a0a9f4fe..be052164 100644 --- a/src/glean/api_client/sdk.py +++ b/src/glean/api_client/sdk.py @@ -17,6 +17,7 @@ if TYPE_CHECKING: from glean.api_client.authentication import Authentication from glean.api_client.client import Client + from glean.api_client.datasources import Datasources from glean.api_client.governance import Governance from glean.api_client.indexing import Indexing @@ -46,11 +47,14 @@ class Glean(BaseSDK): r"""Manage indexing API tokens.""" indexing: "Indexing" governance: "Governance" + datasources: "Datasources" + r"""Manage datasources.""" _sub_sdk_map = { "client": ("glean.api_client.client", "Client"), "authentication": ("glean.api_client.authentication", "Authentication"), "indexing": ("glean.api_client.indexing", "Indexing"), "governance": ("glean.api_client.governance", "Governance"), + "datasources": ("glean.api_client.datasources", "Datasources"), } def __init__( diff --git a/tests/mockserver/internal/handler/generated_handlers.go b/tests/mockserver/internal/handler/generated_handlers.go index 23b23873..4eaa2afa 100644 --- a/tests/mockserver/internal/handler/generated_handlers.go +++ b/tests/mockserver/internal/handler/generated_handlers.go @@ -14,10 +14,12 @@ func GeneratedHandlers(ctx context.Context, dir *logging.HTTPFileDirectory, rt * return []*GeneratedHandler{ NewGeneratedHandler(ctx, http.MethodGet, "/rest/api/v1/agents/{agent_id}", pathGetRestAPIV1AgentsAgentID(dir, rt)), NewGeneratedHandler(ctx, http.MethodGet, "/rest/api/v1/agents/{agent_id}/schemas", pathGetRestAPIV1AgentsAgentIDSchemas(dir, rt)), + NewGeneratedHandler(ctx, http.MethodGet, "/rest/api/v1/configure/datasources/{datasourceId}/instances/{instanceId}", pathGetRestAPIV1ConfigureDatasourcesDatasourceIDInstancesInstanceID(dir, rt)), NewGeneratedHandler(ctx, http.MethodGet, "/rest/api/v1/governance/data/findings/exports", pathGetRestAPIV1GovernanceDataFindingsExports(dir, rt)), NewGeneratedHandler(ctx, http.MethodGet, "/rest/api/v1/governance/data/policies", pathGetRestAPIV1GovernanceDataPolicies(dir, rt)), NewGeneratedHandler(ctx, http.MethodGet, "/rest/api/v1/governance/data/policies/{id}", pathGetRestAPIV1GovernanceDataPoliciesID(dir, rt)), NewGeneratedHandler(ctx, http.MethodGet, "/rest/api/v1/tools/list", pathGetRestAPIV1ToolsList(dir, rt)), + NewGeneratedHandler(ctx, http.MethodPatch, "/rest/api/v1/configure/datasources/{datasourceId}/instances/{instanceId}", pathPatchRestAPIV1ConfigureDatasourcesDatasourceIDInstancesInstanceID(dir, rt)), NewGeneratedHandler(ctx, http.MethodPost, "/api/index/v1/adddatasource", pathPostAPIIndexV1Adddatasource(dir, rt)), NewGeneratedHandler(ctx, http.MethodPost, "/api/index/v1/betausers", pathPostAPIIndexV1Betausers(dir, rt)), NewGeneratedHandler(ctx, http.MethodPost, "/api/index/v1/bulkindexdocuments", pathPostAPIIndexV1Bulkindexdocuments(dir, rt)), diff --git a/tests/mockserver/internal/handler/pathgetrestapiv1configuredatasourcesdatasourceidinstancesinstanceid.go b/tests/mockserver/internal/handler/pathgetrestapiv1configuredatasourcesdatasourceidinstancesinstanceid.go new file mode 100644 index 00000000..9344b896 --- /dev/null +++ b/tests/mockserver/internal/handler/pathgetrestapiv1configuredatasourcesdatasourceidinstancesinstanceid.go @@ -0,0 +1,68 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +package handler + +import ( + "fmt" + "log" + "mockserver/internal/handler/assert" + "mockserver/internal/logging" + "mockserver/internal/sdk/models/components" + "mockserver/internal/sdk/utils" + "mockserver/internal/tracking" + "net/http" +) + +func pathGetRestAPIV1ConfigureDatasourcesDatasourceIDInstancesInstanceID(dir *logging.HTTPFileDirectory, rt *tracking.RequestTracker) http.HandlerFunc { + return func(w http.ResponseWriter, req *http.Request) { + test := req.Header.Get("x-speakeasy-test-name") + instanceID := req.Header.Get("x-speakeasy-test-instance-id") + + count := rt.GetRequestCount(test, instanceID) + + switch fmt.Sprintf("%s[%d]", test, count) { + case "getDatasourceInstanceConfiguration[0]": + dir.HandlerFunc("getDatasourceInstanceConfiguration", testGetDatasourceInstanceConfigurationGetDatasourceInstanceConfiguration0)(w, req) + default: + http.Error(w, fmt.Sprintf("Unknown test: %s[%d]", test, count), http.StatusBadRequest) + } + } +} + +func testGetDatasourceInstanceConfigurationGetDatasourceInstanceConfiguration0(w http.ResponseWriter, req *http.Request) { + if err := assert.SecurityAuthorizationHeader(req, false, "Bearer"); err != nil { + log.Printf("assertion error: %s\n", err) + http.Error(w, err.Error(), http.StatusUnauthorized) + return + } + if err := assert.AcceptHeader(req, []string{"application/json"}); err != nil { + log.Printf("assertion error: %s\n", err) + http.Error(w, err.Error(), http.StatusBadRequest) + return + } + if err := assert.HeaderExists(req, "User-Agent"); err != nil { + log.Printf("assertion error: %s\n", err) + http.Error(w, err.Error(), http.StatusBadRequest) + return + } + var respBody *components.DatasourceConfigurationResponse = &components.DatasourceConfigurationResponse{ + Configuration: components.DatasourceInstanceConfiguration{ + Values: map[string]components.ConfigurationValue{ + "key": components.ConfigurationValue{}, + }, + }, + } + respBodyBytes, err := utils.MarshalJSON(respBody, "", true) + + if err != nil { + http.Error( + w, + "Unable to encode response body as JSON: "+err.Error(), + http.StatusInternalServerError, + ) + return + } + w.Header().Set("Content-Type", "application/json") + w.WriteHeader(http.StatusOK) + _, _ = w.Write(respBodyBytes) +} diff --git a/tests/mockserver/internal/handler/pathpatchrestapiv1configuredatasourcesdatasourceidinstancesinstanceid.go b/tests/mockserver/internal/handler/pathpatchrestapiv1configuredatasourcesdatasourceidinstancesinstanceid.go new file mode 100644 index 00000000..40105d8d --- /dev/null +++ b/tests/mockserver/internal/handler/pathpatchrestapiv1configuredatasourcesdatasourceidinstancesinstanceid.go @@ -0,0 +1,71 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +package handler + +import ( + "fmt" + "log" + "mockserver/internal/handler/assert" + "mockserver/internal/logging" + "mockserver/internal/sdk/models/components" + "mockserver/internal/sdk/utils" + "mockserver/internal/tracking" + "net/http" +) + +func pathPatchRestAPIV1ConfigureDatasourcesDatasourceIDInstancesInstanceID(dir *logging.HTTPFileDirectory, rt *tracking.RequestTracker) http.HandlerFunc { + return func(w http.ResponseWriter, req *http.Request) { + test := req.Header.Get("x-speakeasy-test-name") + instanceID := req.Header.Get("x-speakeasy-test-instance-id") + + count := rt.GetRequestCount(test, instanceID) + + switch fmt.Sprintf("%s[%d]", test, count) { + case "updateDatasourceInstanceConfiguration[0]": + dir.HandlerFunc("updateDatasourceInstanceConfiguration", testUpdateDatasourceInstanceConfigurationUpdateDatasourceInstanceConfiguration0)(w, req) + default: + http.Error(w, fmt.Sprintf("Unknown test: %s[%d]", test, count), http.StatusBadRequest) + } + } +} + +func testUpdateDatasourceInstanceConfigurationUpdateDatasourceInstanceConfiguration0(w http.ResponseWriter, req *http.Request) { + if err := assert.SecurityAuthorizationHeader(req, false, "Bearer"); err != nil { + log.Printf("assertion error: %s\n", err) + http.Error(w, err.Error(), http.StatusUnauthorized) + return + } + if err := assert.ContentType(req, "application/json", true); err != nil { + log.Printf("assertion error: %s\n", err) + http.Error(w, err.Error(), http.StatusBadRequest) + return + } + if err := assert.AcceptHeader(req, []string{"application/json"}); err != nil { + log.Printf("assertion error: %s\n", err) + http.Error(w, err.Error(), http.StatusBadRequest) + return + } + if err := assert.HeaderExists(req, "User-Agent"); err != nil { + log.Printf("assertion error: %s\n", err) + http.Error(w, err.Error(), http.StatusBadRequest) + return + } + var respBody *components.DatasourceConfigurationResponse = &components.DatasourceConfigurationResponse{ + Configuration: components.DatasourceInstanceConfiguration{ + Values: map[string]components.ConfigurationValue{}, + }, + } + respBodyBytes, err := utils.MarshalJSON(respBody, "", true) + + if err != nil { + http.Error( + w, + "Unable to encode response body as JSON: "+err.Error(), + http.StatusInternalServerError, + ) + return + } + w.Header().Set("Content-Type", "application/json") + w.WriteHeader(http.StatusOK) + _, _ = w.Write(respBodyBytes) +} diff --git a/tests/mockserver/internal/handler/pathpostrestapiv1adminsearch.go b/tests/mockserver/internal/handler/pathpostrestapiv1adminsearch.go index 89975fde..2d6fc137 100644 --- a/tests/mockserver/internal/handler/pathpostrestapiv1adminsearch.go +++ b/tests/mockserver/internal/handler/pathpostrestapiv1adminsearch.go @@ -70,7 +70,7 @@ func testAdminsearchAdminsearch0(w http.ResponseWriter, req *http.Request) { Snippets: []components.SearchResultSnippet{}, }, }, - GleanDataError: &components.GleanDataError{ + ErrorInfo: &components.GleanDataError{ ErrorMessages: []components.ErrorMessage{ components.ErrorMessage{ Source: types.String("gmail"), diff --git a/tests/mockserver/internal/handler/pathpostrestapiv1createcollection.go b/tests/mockserver/internal/handler/pathpostrestapiv1createcollection.go index 5c99a0ad..371b9023 100644 --- a/tests/mockserver/internal/handler/pathpostrestapiv1createcollection.go +++ b/tests/mockserver/internal/handler/pathpostrestapiv1createcollection.go @@ -56,14 +56,14 @@ func testCreatecollectionCreatecollection0(w http.ResponseWriter, req *http.Requ operations.ResponseBody2{ Collection: &components.Collection{ Name: "", - Description: "motionless whenever paintwork import over cuckoo", + Description: "whole busily jive hawk gee basic minus hence", AddedRoles: []components.UserRoleSpecification{ components.UserRoleSpecification{ Person: &components.Person{ Name: "George Clooney", ObfuscatedID: "abc123", }, - Role: components.UserRoleOwner, + Role: components.UserRoleAnswerModerator, }, }, RemovedRoles: []components.UserRoleSpecification{ @@ -90,7 +90,7 @@ func testCreatecollectionCreatecollection0(w http.ResponseWriter, req *http.Requ }, }, }, - ID: 363711, + ID: 158969, Creator: &components.Person{ Name: "George Clooney", ObfuscatedID: "abc123", @@ -101,7 +101,7 @@ func testCreatecollectionCreatecollection0(w http.ResponseWriter, req *http.Requ }, Items: []components.CollectionItem{ components.CollectionItem{ - CollectionID: 570197, + CollectionID: 110375, CreatedBy: &components.Person{ Name: "George Clooney", ObfuscatedID: "abc123", @@ -266,13 +266,13 @@ func testCreatecollectionCreatecollection0(w http.ResponseWriter, req *http.Requ Name: "George Clooney", ObfuscatedID: "abc123", }, - Role: components.UserRoleAnswerModerator, + Role: components.UserRoleEditor, }, }, }, Collection: &components.Collection{ Name: "", - Description: "athwart skateboard newsstand farm bourgeoisie ah how elliptical aha well-to-do", + Description: "wedge colorfully orientate rally", AudienceFilters: []components.FacetFilter{ components.FacetFilter{ FieldName: types.String("type"), @@ -288,7 +288,7 @@ func testCreatecollectionCreatecollection0(w http.ResponseWriter, req *http.Requ }, }, }, - ID: 643990, + ID: 131797, Creator: &components.Person{ Name: "George Clooney", ObfuscatedID: "abc123", @@ -300,7 +300,7 @@ func testCreatecollectionCreatecollection0(w http.ResponseWriter, req *http.Requ Children: []components.Collection{ components.Collection{ Name: "", - Description: "woot purse salty even as advanced", + Description: "outside yippee sidetrack mature regularly mouser inject worth", AudienceFilters: []components.FacetFilter{ components.FacetFilter{ FieldName: types.String("type"), @@ -316,7 +316,7 @@ func testCreatecollectionCreatecollection0(w http.ResponseWriter, req *http.Requ }, }, }, - ID: 359978, + ID: 149448, Creator: &components.Person{ Name: "George Clooney", ObfuscatedID: "abc123", @@ -328,7 +328,7 @@ func testCreatecollectionCreatecollection0(w http.ResponseWriter, req *http.Requ }, }, }, - ItemType: components.CollectionItemItemTypeURL, + ItemType: components.CollectionItemItemTypeCollection, }, }, }, diff --git a/tests/mockserver/internal/handler/pathpostrestapiv1messages.go b/tests/mockserver/internal/handler/pathpostrestapiv1messages.go index ec30c908..b0950d91 100644 --- a/tests/mockserver/internal/handler/pathpostrestapiv1messages.go +++ b/tests/mockserver/internal/handler/pathpostrestapiv1messages.go @@ -6603,7 +6603,7 @@ func testMessagesMessages0(w http.ResponseWriter, req *http.Request) { }, }, }, - GleanDataError: &components.GleanDataError{ + ErrorInfo: &components.GleanDataError{ ErrorMessages: []components.ErrorMessage{ components.ErrorMessage{ Source: types.String("gmail"), diff --git a/tests/mockserver/internal/handler/pathpostrestapiv1search.go b/tests/mockserver/internal/handler/pathpostrestapiv1search.go index f2fcf477..b0c8dcfb 100644 --- a/tests/mockserver/internal/handler/pathpostrestapiv1search.go +++ b/tests/mockserver/internal/handler/pathpostrestapiv1search.go @@ -70,7 +70,7 @@ func testSearchSearch0(w http.ResponseWriter, req *http.Request) { Snippets: []components.SearchResultSnippet{}, }, }, - GleanDataError: &components.GleanDataError{ + ErrorInfo: &components.GleanDataError{ ErrorMessages: []components.ErrorMessage{ components.ErrorMessage{ Source: types.String("gmail"), diff --git a/tests/mockserver/internal/sdk/models/components/actionsummary.go b/tests/mockserver/internal/sdk/models/components/actionsummary.go index 587431e0..2a1aed7e 100644 --- a/tests/mockserver/internal/sdk/models/components/actionsummary.go +++ b/tests/mockserver/internal/sdk/models/components/actionsummary.go @@ -8,6 +8,26 @@ type ActionSummary struct { ToolID string `json:"tool_id"` // The display name of the action. DisplayName string `json:"display_name"` + // The type of tool - RETRIEVAL for read-only operations, ACTION for operations that modify data. + Type *string `json:"type,omitempty"` + // The authentication type required - OAUTH_USER, OAUTH_ADMIN, API_KEY, BASIC_AUTH, DWD (domain-wide delegation), or NONE. + AuthType *string `json:"auth_type,omitempty"` + // For write actions only - REDIRECT (client renders URL) or EXECUTION (external server call). + WriteActionType *string `json:"write_action_type,omitempty"` + // Whether this action has been fully configured and validated. + IsSetupFinished *bool `json:"is_setup_finished,omitempty"` + // Indicates the kind of knowledge a tool would access or modify. + // Company knowledge: + // - Glean search, and any native tools that derive from it (e.g., expert search, code search) + // - Native federated tools to company data sources (e.g., outlook search) + // World knowledge: + // - Native tools that bring in public content (e.g., web browser) + // - Platform action like bingwebsearch, geminiwebsearch, etc + // Neutral knowledge: + // - Native tools that don't access or modify content via APIs (e.g., file analyst, think) + // - Platform read or write tools (creator has to determine their knowledge implications) + // + DataSource *string `json:"data_source,omitempty"` } func (o *ActionSummary) GetToolID() string { @@ -23,3 +43,38 @@ func (o *ActionSummary) GetDisplayName() string { } return o.DisplayName } + +func (o *ActionSummary) GetType() *string { + if o == nil { + return nil + } + return o.Type +} + +func (o *ActionSummary) GetAuthType() *string { + if o == nil { + return nil + } + return o.AuthType +} + +func (o *ActionSummary) GetWriteActionType() *string { + if o == nil { + return nil + } + return o.WriteActionType +} + +func (o *ActionSummary) GetIsSetupFinished() *bool { + if o == nil { + return nil + } + return o.IsSetupFinished +} + +func (o *ActionSummary) GetDataSource() *string { + if o == nil { + return nil + } + return o.DataSource +} diff --git a/tests/mockserver/internal/sdk/models/components/autocompleteresponse.go b/tests/mockserver/internal/sdk/models/components/autocompleteresponse.go index 7e2ca2ff..b5b93358 100644 --- a/tests/mockserver/internal/sdk/models/components/autocompleteresponse.go +++ b/tests/mockserver/internal/sdk/models/components/autocompleteresponse.go @@ -10,8 +10,8 @@ type AutocompleteResponse struct { SessionInfo *SessionInfo `json:"sessionInfo,omitempty"` Results []AutocompleteResult `json:"results,omitempty"` // Subsections of the results list from which distinct sections should be created. - Groups []AutocompleteResultGroup `json:"groups,omitempty"` - GleanDataError *GleanDataError `json:"errorInfo,omitempty"` + Groups []AutocompleteResultGroup `json:"groups,omitempty"` + ErrorInfo *GleanDataError `json:"errorInfo,omitempty"` // Time in milliseconds the backend took to respond to the request. BackendTimeMillis *int64 `json:"backendTimeMillis,omitempty"` } @@ -51,11 +51,11 @@ func (o *AutocompleteResponse) GetGroups() []AutocompleteResultGroup { return o.Groups } -func (o *AutocompleteResponse) GetGleanDataError() *GleanDataError { +func (o *AutocompleteResponse) GetErrorInfo() *GleanDataError { if o == nil { return nil } - return o.GleanDataError + return o.ErrorInfo } func (o *AutocompleteResponse) GetBackendTimeMillis() *int64 { diff --git a/tests/mockserver/internal/sdk/models/components/chatresponse.go b/tests/mockserver/internal/sdk/models/components/chatresponse.go index 45b9a649..a6f51d28 100644 --- a/tests/mockserver/internal/sdk/models/components/chatresponse.go +++ b/tests/mockserver/internal/sdk/models/components/chatresponse.go @@ -13,9 +13,6 @@ type ChatResponse struct { BackendTimeMillis *int64 `json:"backendTimeMillis,omitempty"` // A token that is used to track the session. ChatSessionTrackingToken *string `json:"chatSessionTrackingToken,omitempty"` - // Datasource instances that could not be queried because the user has not completed or has expired per-user OAuth, aggregated across all tools invoked in this turn. - // - UnauthorizedDatasourceInstances []UnauthorizedDatasourceInstance `json:"unauthorizedDatasourceInstances,omitempty"` } func (o *ChatResponse) GetMessages() []ChatMessage { @@ -52,10 +49,3 @@ func (o *ChatResponse) GetChatSessionTrackingToken() *string { } return o.ChatSessionTrackingToken } - -func (o *ChatResponse) GetUnauthorizedDatasourceInstances() []UnauthorizedDatasourceInstance { - if o == nil { - return nil - } - return o.UnauthorizedDatasourceInstances -} diff --git a/tests/mockserver/internal/sdk/models/components/configurationvalue.go b/tests/mockserver/internal/sdk/models/components/configurationvalue.go new file mode 100644 index 00000000..f6fc2161 --- /dev/null +++ b/tests/mockserver/internal/sdk/models/components/configurationvalue.go @@ -0,0 +1,25 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +package components + +// ConfigurationValue - A single configuration value, either a scalar or a list +type ConfigurationValue struct { + // The configuration value as a string. Only one of value or valueList should be populated. + Value *string `json:"value,omitempty"` + // The configuration value as a list of strings. Only one of value or valueList should be populated. + ValueList []string `json:"valueList,omitempty"` +} + +func (o *ConfigurationValue) GetValue() *string { + if o == nil { + return nil + } + return o.Value +} + +func (o *ConfigurationValue) GetValueList() []string { + if o == nil { + return nil + } + return o.ValueList +} diff --git a/tests/mockserver/internal/sdk/models/components/datasourceconfigurationresponse.go b/tests/mockserver/internal/sdk/models/components/datasourceconfigurationresponse.go new file mode 100644 index 00000000..0453f9ea --- /dev/null +++ b/tests/mockserver/internal/sdk/models/components/datasourceconfigurationresponse.go @@ -0,0 +1,16 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +package components + +// DatasourceConfigurationResponse - The greenlisted configuration values for a datasource instance. Only keys that are exposed via the public API greenlist are included. +type DatasourceConfigurationResponse struct { + // Configuration for a datasource instance + Configuration DatasourceInstanceConfiguration `json:"configuration"` +} + +func (o *DatasourceConfigurationResponse) GetConfiguration() DatasourceInstanceConfiguration { + if o == nil { + return DatasourceInstanceConfiguration{} + } + return o.Configuration +} diff --git a/tests/mockserver/internal/sdk/models/components/datasourceinstanceconfiguration.go b/tests/mockserver/internal/sdk/models/components/datasourceinstanceconfiguration.go new file mode 100644 index 00000000..695fba51 --- /dev/null +++ b/tests/mockserver/internal/sdk/models/components/datasourceinstanceconfiguration.go @@ -0,0 +1,16 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +package components + +// DatasourceInstanceConfiguration - Configuration for a datasource instance +type DatasourceInstanceConfiguration struct { + // A map from configuration key names to their values + Values map[string]ConfigurationValue `json:"values"` +} + +func (o *DatasourceInstanceConfiguration) GetValues() map[string]ConfigurationValue { + if o == nil { + return map[string]ConfigurationValue{} + } + return o.Values +} diff --git a/tests/mockserver/internal/sdk/models/components/gleandataerror.go b/tests/mockserver/internal/sdk/models/components/gleandataerror.go index b984ddb7..d549ead5 100644 --- a/tests/mockserver/internal/sdk/models/components/gleandataerror.go +++ b/tests/mockserver/internal/sdk/models/components/gleandataerror.go @@ -12,9 +12,6 @@ type GleanDataError struct { ErrorMessages []ErrorMessage `json:"errorMessages,omitempty"` // Indicates the federated search results could not be fetched due to rate limiting. FederatedSearchRateLimitError *bool `json:"federatedSearchRateLimitError,omitempty"` - // Datasource instances that could not be queried because the user has not completed or has expired per-user OAuth. - // - UnauthorizedDatasourceInstances []UnauthorizedDatasourceInstance `json:"unauthorizedDatasourceInstances,omitempty"` } func (o *GleanDataError) GetBadGmailToken() *bool { @@ -51,10 +48,3 @@ func (o *GleanDataError) GetFederatedSearchRateLimitError() *bool { } return o.FederatedSearchRateLimitError } - -func (o *GleanDataError) GetUnauthorizedDatasourceInstances() []UnauthorizedDatasourceInstance { - if o == nil { - return nil - } - return o.UnauthorizedDatasourceInstances -} diff --git a/tests/mockserver/internal/sdk/models/components/inviteinfo.go b/tests/mockserver/internal/sdk/models/components/inviteinfo.go index 84469a16..18cac8b3 100644 --- a/tests/mockserver/internal/sdk/models/components/inviteinfo.go +++ b/tests/mockserver/internal/sdk/models/components/inviteinfo.go @@ -16,11 +16,11 @@ type InviteInfo struct { Inviter *Person `json:"inviter,omitempty"` // The time this person was invited in ISO format (ISO 8601). // - // Deprecated: This will be removed in a future release, please migrate away from it as soon as possible. + // Deprecated: Deprecated on 2026-02-05, removal scheduled for 2026-10-15: Use ChannelInviteInfo instead. InviteTime *time.Time `json:"inviteTime,omitempty"` // The time this person was reminded in ISO format (ISO 8601) if a reminder was sent. // - // Deprecated: This will be removed in a future release, please migrate away from it as soon as possible. + // Deprecated: Deprecated on 2026-02-05, removal scheduled for 2026-10-15: Use ChannelInviteInfo instead. ReminderTime *time.Time `json:"reminderTime,omitempty"` } diff --git a/tests/mockserver/internal/sdk/models/components/resultsresponse.go b/tests/mockserver/internal/sdk/models/components/resultsresponse.go index 903402c8..6fd3dbe0 100644 --- a/tests/mockserver/internal/sdk/models/components/resultsresponse.go +++ b/tests/mockserver/internal/sdk/models/components/resultsresponse.go @@ -9,7 +9,7 @@ type ResultsResponse struct { Results []SearchResult `json:"results,omitempty"` StructuredResults []StructuredResult `json:"structuredResults,omitempty"` GeneratedQnaResult *GeneratedQna `json:"generatedQnaResult,omitempty"` - GleanDataError *GleanDataError `json:"errorInfo,omitempty"` + ErrorInfo *GleanDataError `json:"errorInfo,omitempty"` // A platform-generated request ID to correlate backend logs. RequestID *string `json:"requestID,omitempty"` // Time in milliseconds the backend took to respond to the request. @@ -51,11 +51,11 @@ func (o *ResultsResponse) GetGeneratedQnaResult() *GeneratedQna { return o.GeneratedQnaResult } -func (o *ResultsResponse) GetGleanDataError() *GleanDataError { +func (o *ResultsResponse) GetErrorInfo() *GleanDataError { if o == nil { return nil } - return o.GleanDataError + return o.ErrorInfo } func (o *ResultsResponse) GetRequestID() *string { diff --git a/tests/mockserver/internal/sdk/models/components/searchresponse.go b/tests/mockserver/internal/sdk/models/components/searchresponse.go index 7da8d59a..a9cdbe0e 100644 --- a/tests/mockserver/internal/sdk/models/components/searchresponse.go +++ b/tests/mockserver/internal/sdk/models/components/searchresponse.go @@ -9,7 +9,7 @@ type SearchResponse struct { Results []SearchResult `json:"results,omitempty"` StructuredResults []StructuredResult `json:"structuredResults,omitempty"` GeneratedQnaResult *GeneratedQna `json:"generatedQnaResult,omitempty"` - GleanDataError *GleanDataError `json:"errorInfo,omitempty"` + ErrorInfo *GleanDataError `json:"errorInfo,omitempty"` // A platform-generated request ID to correlate backend logs. RequestID *string `json:"requestID,omitempty"` // Time in milliseconds the backend took to respond to the request. @@ -66,11 +66,11 @@ func (o *SearchResponse) GetGeneratedQnaResult() *GeneratedQna { return o.GeneratedQnaResult } -func (o *SearchResponse) GetGleanDataError() *GleanDataError { +func (o *SearchResponse) GetErrorInfo() *GleanDataError { if o == nil { return nil } - return o.GleanDataError + return o.ErrorInfo } func (o *SearchResponse) GetRequestID() *string { diff --git a/tests/mockserver/internal/sdk/models/components/updatedatasourceconfigurationrequest.go b/tests/mockserver/internal/sdk/models/components/updatedatasourceconfigurationrequest.go new file mode 100644 index 00000000..07beb967 --- /dev/null +++ b/tests/mockserver/internal/sdk/models/components/updatedatasourceconfigurationrequest.go @@ -0,0 +1,16 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +package components + +// UpdateDatasourceConfigurationRequest - Request to update greenlisted configuration values for a datasource instance. Only keys that are exposed via the public API greenlist may be set. +type UpdateDatasourceConfigurationRequest struct { + // Configuration for a datasource instance + Configuration DatasourceInstanceConfiguration `json:"configuration"` +} + +func (o *UpdateDatasourceConfigurationRequest) GetConfiguration() DatasourceInstanceConfiguration { + if o == nil { + return DatasourceInstanceConfiguration{} + } + return o.Configuration +} diff --git a/tests/mockserver/internal/sdk/models/operations/getdatasourceinstanceconfiguration.go b/tests/mockserver/internal/sdk/models/operations/getdatasourceinstanceconfiguration.go new file mode 100644 index 00000000..515b849f --- /dev/null +++ b/tests/mockserver/internal/sdk/models/operations/getdatasourceinstanceconfiguration.go @@ -0,0 +1,48 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +package operations + +import ( + "mockserver/internal/sdk/models/components" +) + +type GetDatasourceInstanceConfigurationRequest struct { + // The datasource type identifier (e.g. o365sharepoint) + DatasourceID string `pathParam:"style=simple,explode=false,name=datasourceId"` + // The datasource instance identifier + InstanceID string `pathParam:"style=simple,explode=false,name=instanceId"` +} + +func (o *GetDatasourceInstanceConfigurationRequest) GetDatasourceID() string { + if o == nil { + return "" + } + return o.DatasourceID +} + +func (o *GetDatasourceInstanceConfigurationRequest) GetInstanceID() string { + if o == nil { + return "" + } + return o.InstanceID +} + +type GetDatasourceInstanceConfigurationResponse struct { + HTTPMeta components.HTTPMetadata `json:"-"` + // OK + DatasourceConfigurationResponse *components.DatasourceConfigurationResponse +} + +func (o *GetDatasourceInstanceConfigurationResponse) GetHTTPMeta() components.HTTPMetadata { + if o == nil { + return components.HTTPMetadata{} + } + return o.HTTPMeta +} + +func (o *GetDatasourceInstanceConfigurationResponse) GetDatasourceConfigurationResponse() *components.DatasourceConfigurationResponse { + if o == nil { + return nil + } + return o.DatasourceConfigurationResponse +} diff --git a/tests/mockserver/internal/sdk/models/operations/updatedatasourceinstanceconfiguration.go b/tests/mockserver/internal/sdk/models/operations/updatedatasourceinstanceconfiguration.go new file mode 100644 index 00000000..b8568c63 --- /dev/null +++ b/tests/mockserver/internal/sdk/models/operations/updatedatasourceinstanceconfiguration.go @@ -0,0 +1,56 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +package operations + +import ( + "mockserver/internal/sdk/models/components" +) + +type UpdateDatasourceInstanceConfigurationRequest struct { + // The datasource type identifier (e.g. o365sharepoint) + DatasourceID string `pathParam:"style=simple,explode=false,name=datasourceId"` + // The datasource instance identifier + InstanceID string `pathParam:"style=simple,explode=false,name=instanceId"` + Body components.UpdateDatasourceConfigurationRequest `request:"mediaType=application/json"` +} + +func (o *UpdateDatasourceInstanceConfigurationRequest) GetDatasourceID() string { + if o == nil { + return "" + } + return o.DatasourceID +} + +func (o *UpdateDatasourceInstanceConfigurationRequest) GetInstanceID() string { + if o == nil { + return "" + } + return o.InstanceID +} + +func (o *UpdateDatasourceInstanceConfigurationRequest) GetBody() components.UpdateDatasourceConfigurationRequest { + if o == nil { + return components.UpdateDatasourceConfigurationRequest{} + } + return o.Body +} + +type UpdateDatasourceInstanceConfigurationResponse struct { + HTTPMeta components.HTTPMetadata `json:"-"` + // OK + DatasourceConfigurationResponse *components.DatasourceConfigurationResponse +} + +func (o *UpdateDatasourceInstanceConfigurationResponse) GetHTTPMeta() components.HTTPMetadata { + if o == nil { + return components.HTTPMetadata{} + } + return o.HTTPMeta +} + +func (o *UpdateDatasourceInstanceConfigurationResponse) GetDatasourceConfigurationResponse() *components.DatasourceConfigurationResponse { + if o == nil { + return nil + } + return o.DatasourceConfigurationResponse +} diff --git a/tests/mockserver/internal/sdk/models/sdkerrors/errorresponse.go b/tests/mockserver/internal/sdk/models/sdkerrors/errorresponse.go new file mode 100644 index 00000000..a3f04453 --- /dev/null +++ b/tests/mockserver/internal/sdk/models/sdkerrors/errorresponse.go @@ -0,0 +1,22 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +package sdkerrors + +import ( + "encoding/json" + "mockserver/internal/sdk/models/components" +) + +// ErrorResponse - Error response returned for failed requests +type ErrorResponse struct { + // Client-facing error message describing what went wrong + Message *string `json:"message,omitempty"` + HTTPMeta components.HTTPMetadata `json:"-"` +} + +var _ error = &ErrorResponse{} + +func (e *ErrorResponse) Error() string { + data, _ := json.Marshal(e) + return string(data) +} diff --git a/tests/mockserver/internal/sdk/models/sdkerrors/gleandataerror.go b/tests/mockserver/internal/sdk/models/sdkerrors/gleandataerror.go index 8e203ca2..05af2574 100644 --- a/tests/mockserver/internal/sdk/models/sdkerrors/gleandataerror.go +++ b/tests/mockserver/internal/sdk/models/sdkerrors/gleandataerror.go @@ -16,11 +16,8 @@ type GleanDataError struct { InvalidOperators []components.InvalidOperatorValueError `json:"invalidOperators,omitempty"` ErrorMessages []components.ErrorMessage `json:"errorMessages,omitempty"` // Indicates the federated search results could not be fetched due to rate limiting. - FederatedSearchRateLimitError *bool `json:"federatedSearchRateLimitError,omitempty"` - // Datasource instances that could not be queried because the user has not completed or has expired per-user OAuth. - // - UnauthorizedDatasourceInstances []components.UnauthorizedDatasourceInstance `json:"unauthorizedDatasourceInstances,omitempty"` - HTTPMeta components.HTTPMetadata `json:"-"` + FederatedSearchRateLimitError *bool `json:"federatedSearchRateLimitError,omitempty"` + HTTPMeta components.HTTPMetadata `json:"-"` } var _ error = &GleanDataError{} diff --git a/tests/test_datasources.py b/tests/test_datasources.py index 8aaeb530..68d59bc6 100644 --- a/tests/test_datasources.py +++ b/tests/test_datasources.py @@ -56,3 +56,39 @@ def test_datasources_post_api_index_v1_getdatasourceconfig(): res = glean.indexing.datasources.retrieve_config(datasource="") assert res is not None + + +def test_datasources_get_datasource_instance_configuration(): + test_http_client = create_test_http_client("getDatasourceInstanceConfiguration") + + with Glean( + server_url=os.getenv("TEST_SERVER_URL", "http://localhost:18080"), + client=test_http_client, + api_token=os.getenv("GLEAN_API_TOKEN", "value"), + ) as glean: + assert glean is not None + + res = glean.datasources.get_datasource_instance_configuration( + datasource_id="o365sharepoint", instance_id="o365sharepoint_abc123" + ) + assert res is not None + + +def test_datasources_update_datasource_instance_configuration(): + test_http_client = create_test_http_client("updateDatasourceInstanceConfiguration") + + with Glean( + server_url=os.getenv("TEST_SERVER_URL", "http://localhost:18080"), + client=test_http_client, + api_token=os.getenv("GLEAN_API_TOKEN", "value"), + ) as glean: + assert glean is not None + + res = glean.datasources.update_datasource_instance_configuration( + datasource_id="o365sharepoint", + instance_id="o365sharepoint_abc123", + configuration={ + "values": {}, + }, + ) + assert res is not None 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 dc1e77936fe4b44a489eeeb198532053cf43dca3 Mon Sep 17 00:00:00 2001 From: "speakeasy-github[bot]" <128539517+speakeasy-github[bot]@users.noreply.github.com> Date: Wed, 25 Feb 2026 18:16:40 +0000 Subject: [PATCH 2/2] empty commit to trigger [run-tests] workflow