From cab80de0983bd4e4780e87611d22063cdac5d368 Mon Sep 17 00:00:00 2001 From: speakeasybot Date: Wed, 15 Jul 2026 11:22:21 +0000 Subject: [PATCH 1/2] ## Python SDK Changes: * `glean.skills.list()`: **Added** * `glean.skills.retrieve()`: **Added** * `glean.client.chat.create()`: * `request.messages[].fragments[].action.metadata.action_type_source` **Added** * `response.messages[].fragments[].action.metadata.action_type_source` **Added** * `glean.client.chat.retrieve()`: `response.chat_result.chat.messages[].fragments[].action.metadata.action_type_source` **Added** * `glean.client.chat.create_stream()`: * `request.messages[].fragments[].action.metadata.action_type_source` **Added** * `glean.client.governance.data.findings.create()`: * `request.filter.severity.enum(false_positive)` **Added** * `response.filter.severity.enum(false_positive)` **Added** * `glean.client.governance.data.findings.list()`: `response.exports[].filter.severity.enum(false_positive)` **Added** --- .speakeasy/gen.lock | 237 +- .speakeasy/gen.yaml | 2 +- .speakeasy/glean-merged-spec.yaml | 32281 ++++++++-------- .speakeasy/tests.arazzo.yaml | 30 + .speakeasy/workflow.lock | 12 +- README.md | 5 + RELEASES.md | 12 +- docs/models/actiontypesource.md | 31 + docs/models/dlpfindingfilter.md | 26 +- docs/models/dlpseverity.md | 15 +- docs/models/platformskill.md | 18 + docs/models/platformskillgetresponse.md | 9 + docs/models/platformskillorigin.md | 18 + docs/models/platformskillsgetrequest.md | 8 + docs/models/platformskillslistrequest.md | 9 + docs/models/platformskillslistresponse.md | 11 + docs/models/platformskillsourceprovenance.md | 13 + docs/models/platformskillstatus.md | 22 + docs/models/platformskillsyncstatus.md | 22 + docs/models/toolmetadata.md | 41 +- docs/sdks/skills/README.md | 95 + pyproject.toml | 2 +- src/glean/api_client/_version.py | 6 +- src/glean/api_client/models/__init__.py | 57 + .../api_client/models/dlpfindingfilter.py | 4 +- src/glean/api_client/models/dlpseverity.py | 3 +- .../models/platform_skills_getop.py | 18 + .../models/platform_skills_listop.py | 45 + src/glean/api_client/models/platformskill.py | 102 + .../models/platformskillgetresponse.py | 19 + .../api_client/models/platformskillorigin.py | 10 + .../models/platformskillslistresponse.py | 47 + .../models/platformskillsourceprovenance.py | 79 + .../api_client/models/platformskillstatus.py | 13 + .../models/platformskillsyncstatus.py | 13 + src/glean/api_client/models/toolmetadata.py | 53 + src/glean/api_client/sdk.py | 3 + src/glean/api_client/skills.py | 449 + .../internal/handler/generated_handlers.go | 2 + .../internal/handler/pathgetapiskills.go | 68 + .../handler/pathgetapiskillsskillid.go | 79 + .../sdk/models/components/dlpfindingfilter.go | 2 +- .../sdk/models/components/dlpseverity.go | 13 +- .../sdk/models/components/platformskill.go | 120 + .../components/platformskillgetresponse.go | 23 + .../models/components/platformskillorigin.go | 32 + .../components/platformskillslistresponse.go | 42 + .../platformskillsourceprovenance.go | 76 + .../models/components/platformskillstatus.go | 38 + .../components/platformskillsyncstatus.go | 38 + .../sdk/models/components/toolmetadata.go | 57 + .../models/operations/platformskillsget.go | 39 + .../models/operations/platformskillslist.go | 48 + tests/test_messages.py | 2 +- tests/test_skills.py | 33 + tests/test_summarize.py | 7 +- 56 files changed, 18294 insertions(+), 16265 deletions(-) create mode 100644 docs/models/actiontypesource.md create mode 100644 docs/models/platformskill.md create mode 100644 docs/models/platformskillgetresponse.md create mode 100644 docs/models/platformskillorigin.md create mode 100644 docs/models/platformskillsgetrequest.md create mode 100644 docs/models/platformskillslistrequest.md create mode 100644 docs/models/platformskillslistresponse.md create mode 100644 docs/models/platformskillsourceprovenance.md create mode 100644 docs/models/platformskillstatus.md create mode 100644 docs/models/platformskillsyncstatus.md create mode 100644 docs/sdks/skills/README.md create mode 100644 src/glean/api_client/models/platform_skills_getop.py create mode 100644 src/glean/api_client/models/platform_skills_listop.py create mode 100644 src/glean/api_client/models/platformskill.py create mode 100644 src/glean/api_client/models/platformskillgetresponse.py create mode 100644 src/glean/api_client/models/platformskillorigin.py create mode 100644 src/glean/api_client/models/platformskillslistresponse.py create mode 100644 src/glean/api_client/models/platformskillsourceprovenance.py create mode 100644 src/glean/api_client/models/platformskillstatus.py create mode 100644 src/glean/api_client/models/platformskillsyncstatus.py create mode 100644 src/glean/api_client/skills.py create mode 100644 tests/mockserver/internal/handler/pathgetapiskills.go create mode 100644 tests/mockserver/internal/handler/pathgetapiskillsskillid.go create mode 100644 tests/mockserver/internal/sdk/models/components/platformskill.go create mode 100644 tests/mockserver/internal/sdk/models/components/platformskillgetresponse.go create mode 100644 tests/mockserver/internal/sdk/models/components/platformskillorigin.go create mode 100644 tests/mockserver/internal/sdk/models/components/platformskillslistresponse.go create mode 100644 tests/mockserver/internal/sdk/models/components/platformskillsourceprovenance.go create mode 100644 tests/mockserver/internal/sdk/models/components/platformskillstatus.go create mode 100644 tests/mockserver/internal/sdk/models/components/platformskillsyncstatus.go create mode 100644 tests/mockserver/internal/sdk/models/operations/platformskillsget.go create mode 100644 tests/mockserver/internal/sdk/models/operations/platformskillslist.go create mode 100644 tests/test_skills.py diff --git a/.speakeasy/gen.lock b/.speakeasy/gen.lock index c51cfcac..47c1ec48 100644 --- a/.speakeasy/gen.lock +++ b/.speakeasy/gen.lock @@ -1,19 +1,19 @@ lockVersion: 2.0.0 id: 3e3290ca-0ee8-4981-b1bc-14536048fa63 management: - docChecksum: 33958fda4f2b946f46f0593aac3a619d + docChecksum: 7ec753e1d592b3aca4c6c90b1cbe4ca8 docVersion: 0.9.0 - speakeasyVersion: 1.789.2 - generationVersion: 2.916.4 - releaseVersion: 0.15.3 - configChecksum: b53cb756010d5e6e2f41d4dd168ca9c2 + speakeasyVersion: 1.790.1 + generationVersion: 2.918.1 + releaseVersion: 0.15.4 + configChecksum: 0f7f272cfbc1986b8c5a32550c674049 repoURL: https://github.com/gleanwork/api-client-python.git installationURL: https://github.com/gleanwork/api-client-python.git published: true persistentEdits: - generation_id: 64feca36-97de-4a5e-848b-c8c117e455ea - pristine_commit_hash: ae9a83387550bcfedd89703e319f60d876adeb80 - pristine_tree_hash: 669cc3c3cd50adba9fd64d758d1014c3ab2b44a3 + generation_id: 98fb382b-8551-4073-af30-4f6afffb80f1 + pristine_commit_hash: 641f2555c3102f0721a4ddde3153eb5d5a13ff43 + pristine_tree_hash: 4133e951c735da1a8ec9ca253048e0d7b1f3d71f features: python: acceptHeaders: 3.0.0 @@ -113,6 +113,10 @@ trackedFiles: id: 1ff225176066 last_write_checksum: sha1:e1adfabd2ed131a1414cb6b86495ad3116bb95df pristine_git_object: fc60149cf9a0bc37e5609f6e1fd7534719980775 + docs/models/actiontypesource.md: + id: 8a1b61caacd0 + last_write_checksum: sha1:1c5cab2e8776ff0fbd0d0bef793fb68a9f7a5869 + pristine_git_object: bde2a8b471a33a62d98b0e8d50e35526bf31171a docs/models/activity.md: id: 78c9fe854b65 last_write_checksum: sha1:2bb3d1005124784d416910cff9777277facaebb2 @@ -1039,8 +1043,8 @@ trackedFiles: pristine_git_object: 7e9aee477a448c831c541e857c45255b826159c5 docs/models/dlpfindingfilter.md: id: 72eab9f49f83 - last_write_checksum: sha1:266f51fd4af5f9a986ec5e5d417b971de887913f - pristine_git_object: 24d1a90183680b617094e528f710271b9ae6aa33 + last_write_checksum: sha1:e1061162444e25c4c3b36e6bc8701f84354c61da + pristine_git_object: 083bd836a351afc51494b036de9aff08c799b3f0 docs/models/dlpfrequency.md: id: f4604a8ff945 last_write_checksum: sha1:59cf084fba6095ff5151b96ca8dfd4269f728456 @@ -1071,8 +1075,8 @@ trackedFiles: pristine_git_object: ed2a14b5b68de54335a7439d8b531781417ea127 docs/models/dlpseverity.md: id: fad6ecae05e8 - last_write_checksum: sha1:962be89ee33d95c57de6f2b1475b26dcb13ba271 - pristine_git_object: 4083ea25abee1ad91821316e10675608cdfd5270 + last_write_checksum: sha1:4b6a6b02b46b39e3dada53a1544df4439e4de15e + pristine_git_object: 657e9962ff835c96c47a49c312f3ab063b9d5c19 docs/models/dlpsimpleresult.md: id: ca81e0658bbe last_write_checksum: sha1:bb79f1ce7cce83ea4d0b9f95e4bd8e12eedb63ec @@ -2257,6 +2261,42 @@ trackedFiles: id: b20c8f7128fc last_write_checksum: sha1:958639d5fa5b446156df39fd5f69b6c57265f13a pristine_git_object: 219a923e48c2a8cb9333d211f51a87df045a8002 + docs/models/platformskill.md: + id: 83c575f92901 + last_write_checksum: sha1:6b749a33dc64251968dac815aec5189373449b3e + pristine_git_object: f803434a2bd716ccdd0731bfb29c6921ce8e1c88 + docs/models/platformskillgetresponse.md: + id: 1d8d7adbb244 + last_write_checksum: sha1:43c5b413dad154310df7aedf78851e4e41144c7a + pristine_git_object: 305445c73f691db85df4332708d88703eeade009 + docs/models/platformskillorigin.md: + id: 66c12ec2d017 + last_write_checksum: sha1:281337f3fefcac11e66e5d8429b3b601dc357a57 + pristine_git_object: ca7bf36f2c931c0dce0bb529f8c2d86f4a06c326 + docs/models/platformskillsgetrequest.md: + id: a9e7922c0a6b + last_write_checksum: sha1:e8d2aee805f122808b22b7b9967cf01e5dd97e30 + pristine_git_object: 19aeb1fe62fa39cadaa3f70da72f807b6c1b3fd0 + docs/models/platformskillslistrequest.md: + id: 475ac6fb76a7 + last_write_checksum: sha1:4bac5ec35ddeb35d13d8494aebd5e8237a1d6239 + pristine_git_object: ebf0ada9b31b7f0788d46aa6aa866d91270c86e7 + docs/models/platformskillslistresponse.md: + id: 03920dfa6e9d + last_write_checksum: sha1:a01d7093df9c1723f0fc7e5e55c75c13d502e8fd + pristine_git_object: 1adcf3fef9224325ffd1a40f5a37e26aaddc3d7a + docs/models/platformskillsourceprovenance.md: + id: 259c50c9c90f + last_write_checksum: sha1:d59dbc5d8d6a5e0a6da71f5a1bb3be1e0b2c8274 + pristine_git_object: e7728f1bfc51509dc05d0b9e293eb08ad68c445c + docs/models/platformskillstatus.md: + id: 33c93e7414d6 + last_write_checksum: sha1:7012661e93710994b8dc2a827b82bdb7da8bbb5f + pristine_git_object: 566f1092589cad8787c57dd7042e2f2c71ea49b4 + docs/models/platformskillsyncstatus.md: + id: c12e6da882a8 + last_write_checksum: sha1:ddca3bc0c472815cbf35240dc3ce2f17c6fc87e2 + pristine_git_object: 36b3ddd907f7ed42f42bfb7983afdb9f4dfb2b42 docs/models/platformtimerange.md: id: c37b2e815a8d last_write_checksum: sha1:31db2f83dba4ccb6d0a5e7b80edbeff356529101 @@ -2743,8 +2783,8 @@ trackedFiles: pristine_git_object: 469bda8fbd2cc545c4df6d9c5ee37add49cc8aea docs/models/toolmetadata.md: id: 23fa32436363 - last_write_checksum: sha1:a9ed4882e8d4eadf0d9eaf1a89a62b5aafd41a9a - pristine_git_object: 1ef5b029096d561cc42e52d6c71854a31e15d63d + last_write_checksum: sha1:6e5805ebbf4a8f92d8faab376045f12ecb446244 + pristine_git_object: ee94179eaf9bd5974dfc3afbeba637111abdc2b9 docs/models/toolmetadatatype.md: id: b1a95a1b5c7e last_write_checksum: sha1:374c9eb85ef4a69eeedb560a73b92211a55ae7b1 @@ -3133,6 +3173,10 @@ trackedFiles: id: 5c534716244c last_write_checksum: sha1:4d8def390ef8fa9ed86c89d16d54283263f18849 pristine_git_object: 04d61f7683d46497cb5eb0c511aa5c31f524a95d + docs/sdks/skills/README.md: + id: 3a14a5c90791 + last_write_checksum: sha1:10437ac02de2cfe952e108e5e3c24594267598a7 + pristine_git_object: 1a8beff71ab08f8ede6d5b312c150a0c20b016ae docs/sdks/tools/README.md: id: 044286549bac last_write_checksum: sha1:a4916d6065377693c59cfbe6ff5072e83f204965 @@ -3155,8 +3199,8 @@ trackedFiles: pristine_git_object: 79e388be87446ab6a4064b372bad0e8376d0cb5e pyproject.toml: id: 5d07e7d72637 - last_write_checksum: sha1:94c46596dba6babef7e197851675efefed28b972 - pristine_git_object: 9cb2c0bd22be5f56f9c9835a6cd259c92f99eb6d + last_write_checksum: sha1:b617fe03b7f525d4c97e00541628a66356f87480 + pristine_git_object: 932a174501a63a80b6e36b4a4f632bfabf71ab6e scripts/prepare_readme.py: id: e0c5957a6035 last_write_checksum: sha1:c2c83f71dea61eb50c9e05da83b16d18b4da8794 @@ -3183,8 +3227,8 @@ trackedFiles: pristine_git_object: 55f23c1feabfedeb7e8cd5bea8b910f0ae0b77d9 src/glean/api_client/_version.py: id: 0ce22b26136b - last_write_checksum: sha1:3b12e625296b8c8ed92b3fd3a301a395c3316c79 - pristine_git_object: 75a78e98a80eedad79c903a0c99dd8f51609db25 + last_write_checksum: sha1:8f9c0841766ac96bb621b2501df102f02bc97fed + pristine_git_object: 480029f084c4f259ceb804f9966e20ba150ea09c src/glean/api_client/agents.py: id: b925701a9217 last_write_checksum: sha1:d80196ac5b252a938055308b99efa4830a763ea6 @@ -3351,8 +3395,8 @@ trackedFiles: pristine_git_object: 77016bfff6209866592fd8b42f2f3527f900992b src/glean/api_client/models/__init__.py: id: d5f6ea5efcbe - last_write_checksum: sha1:d6520fa7653f76cf0e819e323fa084a0fe2595ab - pristine_git_object: 536e42f53c2aa8071025788f425b3b6da2fd1903 + last_write_checksum: sha1:6c9b211d0b278d7b3bd8437398da361e2f76315d + pristine_git_object: af1a8054a0de64160a5da414125eba63520bbdcf src/glean/api_client/models/actionauthtype.py: id: c7402f35092d last_write_checksum: sha1:7aaa5d1c11b105d0d7265e2a83cb005aafa89645 @@ -4139,8 +4183,8 @@ trackedFiles: pristine_git_object: 44fedb771abc99c4cebd9768d49051f9a9d5ce30 src/glean/api_client/models/dlpfindingfilter.py: id: 6ef2e5304df7 - last_write_checksum: sha1:504b384e6f9de3dbc8d4ba7622cf1bf543a1ec97 - pristine_git_object: eacf79f0dbf0983d25200c4e4d478805ca9d421f + last_write_checksum: sha1:5eaf62d5d1643f5e19dee2f12a161a1077ff18df + pristine_git_object: 960d3753214824587274ab585bbf1d0b1ab860d4 src/glean/api_client/models/dlpfrequency.py: id: f6f484c2d7a4 last_write_checksum: sha1:487ce5e7651214ea7906d0d4e74371544cc436f8 @@ -4171,8 +4215,8 @@ trackedFiles: pristine_git_object: c7768ce7bd50c02cbd7a212ab45e721e81002e54 src/glean/api_client/models/dlpseverity.py: id: 3c14229136ab - last_write_checksum: sha1:f61afbc43794f1cd3fe453fdd7bbc2a6386c9343 - pristine_git_object: bd785981c594353dada51425cefe60b44d806ea5 + last_write_checksum: sha1:fee91a502fae9ec6f13f64d7db1568e8034f72f3 + pristine_git_object: 8f08fc8b9787f2b16785a9f552cc921d6dd07499 src/glean/api_client/models/dlpsimpleresult.py: id: b50c9a50553f last_write_checksum: sha1:fdf7ae261c37a65ec7354426e7003934325f9efb @@ -5005,6 +5049,14 @@ trackedFiles: id: 606568a4c8fc last_write_checksum: sha1:58370e345df87a242670e2cfdb26800caa6a00ce pristine_git_object: 880c65c1e74dd49543d650516f29141c6cdd486d + src/glean/api_client/models/platform_skills_getop.py: + id: 6eef4158cd52 + last_write_checksum: sha1:65871de7d2ce9e19c8604336215288d3c7edf96d + pristine_git_object: fc64256bf43449e23e1e7d093a45ee3fdfc441e5 + src/glean/api_client/models/platform_skills_listop.py: + id: 2172706b6858 + last_write_checksum: sha1:7e9d92bd23b8072d38fc787c08d2c1d11afee1dd + pristine_git_object: 3f77419309047da04a558921ae77b447bf465d40 src/glean/api_client/models/platformactionsummary.py: id: 00069b22d246 last_write_checksum: sha1:f714e076c3e0c86ded17dd732ba304dfc7d5526e @@ -5097,6 +5149,34 @@ trackedFiles: id: 7ee9ec06e00c last_write_checksum: sha1:9ed8c951be31629e50f797c8e4bd59a1ef494eef pristine_git_object: d98c78d622564a3fc35ed6d5d543866f64f76704 + src/glean/api_client/models/platformskill.py: + id: 10e1f311015c + last_write_checksum: sha1:c0225f37738625dbb6cab763be77cf5e40beafeb + pristine_git_object: 4b7e21a7eff4002f44ca69cc00ea080b152db720 + src/glean/api_client/models/platformskillgetresponse.py: + id: 912811bc01fd + last_write_checksum: sha1:6c3940b6104fbc71b0f37350f237a37f5af2eade + pristine_git_object: 2cc2863657b9be3256b5c40482cb492bf200f95f + src/glean/api_client/models/platformskillorigin.py: + id: ac7dd2421a25 + last_write_checksum: sha1:d3373713ce852bfc79d180d5a9cb6d27d5bdd0e3 + pristine_git_object: 320c60ec3c2d46cef59742d40c6de29c43425776 + src/glean/api_client/models/platformskillslistresponse.py: + id: b031da1d2783 + last_write_checksum: sha1:45e8d141fb11032f3fd143d1818845a7eb750c3c + pristine_git_object: 7303b0519deea755bd54b5f5a42e5e0908c5c92f + src/glean/api_client/models/platformskillsourceprovenance.py: + id: 9d34177a5499 + last_write_checksum: sha1:f1e2f0b74c65cd83e452b6e1cb0e33f0921c1085 + pristine_git_object: d1352b1f9d6654cc43a2c81e33177d5c9a0e8528 + src/glean/api_client/models/platformskillstatus.py: + id: 4576e2918e48 + last_write_checksum: sha1:1590f56ac48366b921495bf292ee76b6e847d4e2 + pristine_git_object: d57185fb36c553090f5e797908e9f47447901c0c + src/glean/api_client/models/platformskillsyncstatus.py: + id: 4603ae41cbb9 + last_write_checksum: sha1:911e9731ed66a257df85158125499d212a37f995 + pristine_git_object: 13fb6bcf5a11934ae1c8e1cd100715fd8aaaedf6 src/glean/api_client/models/platformtimerange.py: id: bf2b03e84949 last_write_checksum: sha1:645217a3827cd2a7455b88277f1ba2dcd4a5daf1 @@ -5479,8 +5559,8 @@ trackedFiles: pristine_git_object: 9bbfdf3278d0a840ffbd7de03fa1cd3927bee8b6 src/glean/api_client/models/toolmetadata.py: id: 7ed199e1f217 - last_write_checksum: sha1:93f394a1653533d3c9c4515dd9b94b5c4a2aaa70 - pristine_git_object: a87122b41ef7ae14ff56b4f5e18bfc59e2763957 + last_write_checksum: sha1:d54d796d1a94a56690f2de3671cb2061b011ba2b + pristine_git_object: d7928cf2abdb80a78cda4d4ac95eb7972f833cc1 src/glean/api_client/models/toolparameter.py: id: 630b822ac98b last_write_checksum: sha1:f74e8f9a8b2c6b6e33f203a47ce22b726956b4b4 @@ -5715,8 +5795,8 @@ trackedFiles: pristine_git_object: 3a4c3e6eee14c25616dbc8cbec206d9a74070d80 src/glean/api_client/sdk.py: id: e2de37b3ce92 - last_write_checksum: sha1:8e7c616048b12e24e0da6ec1e3933858e03cd3d3 - pristine_git_object: 4d65c6df343753745eeb3cc070b7b6d86bbed5d2 + last_write_checksum: sha1:182ea8d87afce454aba892f8466ddc2ae06aefbe + pristine_git_object: b2c9f79e4c758de1eb8f9a377229bd9be12b301d src/glean/api_client/sdkconfiguration.py: id: f356ce00b5b7 last_write_checksum: sha1:1ae43e08ae57ae277b3ab5e66b52d020149ebe00 @@ -5725,6 +5805,10 @@ trackedFiles: id: a3b404a8b402 last_write_checksum: sha1:d89f2b24da1d3355e321bf802841bc17cdde30a4 pristine_git_object: 571fc8909a3c8be6c852a995894ac61c9d743a6f + src/glean/api_client/skills.py: + id: 79f3c37e1b5a + last_write_checksum: sha1:ce3552c8132652f7d6e88023513797520b5e3c47 + pristine_git_object: 392ae641ff0011fac9ffd32a64ac44d531b98cd7 src/glean/api_client/tools.py: id: 3ea40147c1cc last_write_checksum: sha1:9c353defdddf1c89f58a4b7d7cb8b22e4cb0be1d @@ -5879,8 +5963,8 @@ trackedFiles: pristine_git_object: 929558ef2e1165f7e09da6d0a64f016c90971655 tests/mockserver/internal/handler/generated_handlers.go: id: 61ac4f7cce9e - last_write_checksum: sha1:504888816904477536564a19b80f4284b6823e27 - pristine_git_object: d5fe2f854992c1454456ccbe2b496a6446cb6904 + last_write_checksum: sha1:8e4ffe198fbf4365285f96b1a23c4c21b1eb9b1a + pristine_git_object: 49b7267fb0b9cbcfac0d506e6de116172f86acca tests/mockserver/internal/handler/pathdeleterestapiindexcustommetadataschemagroupname.go: id: 979e4583765b last_write_checksum: sha1:b1d4edb259d907c7a88b634bf16f0cf152321693 @@ -5897,6 +5981,14 @@ trackedFiles: id: a3a921765081 last_write_checksum: sha1:41dfbc3d70153e24cc2a898336d7d2a9c6e3d3df pristine_git_object: a9212f1d5de9d8b40e73ea4b410feb26921c35cb + tests/mockserver/internal/handler/pathgetapiskills.go: + id: a1697453079c + last_write_checksum: sha1:1608120c2f9ce748fdd2d373e576b6a0758092c1 + pristine_git_object: 7baa51e79fd4c8ed0f5c9ebadf5030c74e966973 + tests/mockserver/internal/handler/pathgetapiskillsskillid.go: + id: 97a0dcaf8ddf + last_write_checksum: sha1:d939db8a7f6d6e5b3e09402246efd0d1b53c44eb + pristine_git_object: 4f097d8448491dc032cba2fdbb1f9aae85f80600 tests/mockserver/internal/handler/pathgetrestapiindexcustommetadataschemagroupname.go: id: a14a30d0e377 last_write_checksum: sha1:83a992c70c3b7d010928d89a52f70db1042dd186 @@ -7035,8 +7127,8 @@ trackedFiles: pristine_git_object: 77fdbe9636ede5978c6c82e5a54e2d0c062a99b0 tests/mockserver/internal/sdk/models/components/dlpfindingfilter.go: id: a7d6016908e6 - last_write_checksum: sha1:3a7776befd51d54ad43802b3e808bed01f7ceb31 - pristine_git_object: f04989270a40d3385eafd74542aef8a5ab2dd3d0 + last_write_checksum: sha1:6e04b0a334b6e59d6065a786ca40d540ed53debe + pristine_git_object: f3b7f96f3bda79e3fa8c1d480a62ebabd76cf4c7 tests/mockserver/internal/sdk/models/components/dlpfrequency.go: id: 0e58077c7ce5 last_write_checksum: sha1:a43530a5536fc8d7e9e059f9256acb659e57f636 @@ -7067,8 +7159,8 @@ trackedFiles: pristine_git_object: 6c4ea46f5822a3783a2349fc90b37b0659a0a647 tests/mockserver/internal/sdk/models/components/dlpseverity.go: id: 6226aa236cbd - last_write_checksum: sha1:e04497e3bb7699f8686daee91fd4a37f9a646ceb - pristine_git_object: a0c021992d357a7e1b9573aa6f497cf6ce27a497 + last_write_checksum: sha1:6794db59c95551021133f24bd0ce1dd52050c0f5 + pristine_git_object: aac78928c01f6a9a1d468e181c8fd585e53ab42f tests/mockserver/internal/sdk/models/components/dlpsimpleresult.go: id: 9c8ef716150c last_write_checksum: sha1:7e58ca80e00935371b714da76574b40b5502660e @@ -7805,6 +7897,34 @@ trackedFiles: id: a58f32052764 last_write_checksum: sha1:6db9bd73c6fd7cc1c8bf28c2b1ee96cc77d7236a pristine_git_object: e8243de2c4e8582ed42736e75e4aa715a6a376bc + tests/mockserver/internal/sdk/models/components/platformskill.go: + id: a97a51039ff5 + last_write_checksum: sha1:8871b58924c180a5565b43c91b58ed79212739bb + pristine_git_object: 8397a89921fdbadf8ff5733049b9faabf554e21a + tests/mockserver/internal/sdk/models/components/platformskillgetresponse.go: + id: 24cc096b11c0 + last_write_checksum: sha1:44cf3cd559d6e8cde855daafc7c9fe31774fce6f + pristine_git_object: c9bcfa2f4e416f4b6c441f39bd70c157687abc5d + tests/mockserver/internal/sdk/models/components/platformskillorigin.go: + id: b3f692d12f20 + last_write_checksum: sha1:4bbd57b85b9318d5fa9ea3ca97e26cab34e689fd + pristine_git_object: e0a004498154f0b4285d2d29dde3d0e27b163bb6 + tests/mockserver/internal/sdk/models/components/platformskillslistresponse.go: + id: 61695a856d41 + last_write_checksum: sha1:718c3f3013007de52b02444e4a12d43a10fce37d + pristine_git_object: 566d53518ac6a45dc5ae0ec8e5e55df0433f8ae1 + tests/mockserver/internal/sdk/models/components/platformskillsourceprovenance.go: + id: 3a0b70781266 + last_write_checksum: sha1:f64c669b34f9bc8e21d5620001620e8c8a66756f + pristine_git_object: 65ed2aacddbc7cb4f5ac6084a8eb21e236b3b377 + tests/mockserver/internal/sdk/models/components/platformskillstatus.go: + id: d6163aa830e8 + last_write_checksum: sha1:641cb578909b86e1c1166a75e309e5bcf52ecf29 + pristine_git_object: a218b7608eead950ddb62301af0326adc4f091f5 + tests/mockserver/internal/sdk/models/components/platformskillsyncstatus.go: + id: a172da0d9d4d + last_write_checksum: sha1:66e29681184c77fbbff593cc30e33023a3b39c81 + pristine_git_object: 0582664c1c7451d505bc18ea138e299db160c5a6 tests/mockserver/internal/sdk/models/components/platformtimerange.go: id: cf2540151ce1 last_write_checksum: sha1:3a0ec2ca473681b89ff97606f648fc15fcdae38e @@ -8143,8 +8263,8 @@ trackedFiles: pristine_git_object: dea3298b26e324de06316da296f7a4d899dd475d tests/mockserver/internal/sdk/models/components/toolmetadata.go: id: 2777b3aa0636 - last_write_checksum: sha1:4487cdc2b5b1dc1a2fa1a3ca7d46188bfc0e211c - pristine_git_object: 3c803a6d3c1c80f7f1e230a843a8c3f1c1186dfe + last_write_checksum: sha1:97ddaa6e15c52ec37c4ea46e933f7ec5d4ca7bca + pristine_git_object: 061df30afb35d8282910bd66ddd76838607ea7ab tests/mockserver/internal/sdk/models/components/toolparameter.go: id: d02a0b83b357 last_write_checksum: sha1:66a7a1e6154a3c42741d575291f358116f017c87 @@ -8661,6 +8781,14 @@ trackedFiles: id: d990791ac101 last_write_checksum: sha1:995d47533ef63c7518c50398593671059d6ccc07 pristine_git_object: 16b6e86fe62e1e0ec43293439e9fba7995a72a80 + tests/mockserver/internal/sdk/models/operations/platformskillsget.go: + id: fc753bfc0e6f + last_write_checksum: sha1:beb72342b1186ad56896339bb3fa710456214bab + pristine_git_object: 6ebb5b11eb4470e6b8804d62db58a314cefa2a6d + tests/mockserver/internal/sdk/models/operations/platformskillslist.go: + id: daa657929c98 + last_write_checksum: sha1:fb44d154d8dcca86575b76dd6fdef213e2a568a5 + pristine_git_object: 40f74199560f03309466234c52f5d5dfaed2f563 tests/mockserver/internal/sdk/models/operations/postapiindexv1adddatasource.go: id: 85e7185113c5 last_write_checksum: sha1:2f82dc427027cdb45f8fcf8fa6454e28599233aa @@ -9083,8 +9211,8 @@ trackedFiles: pristine_git_object: 6cc8aeec3c52329d389081db0a27f10f53f214b9 tests/test_messages.py: id: be23089b1f8b - last_write_checksum: sha1:a91c985cd1d11560059dc448b10e0c7b75ed60e5 - pristine_git_object: dfdc18641f0d6c38d84b4603ad2da71f75f2e13c + last_write_checksum: sha1:b7415512608102fa07b1990a350a7da66946fe46 + pristine_git_object: 636f01d348f30db3ee81985044634511b615af16 tests/test_people.py: id: 37c243940039 last_write_checksum: sha1:7c7268ffeebe48d81ed25e9b1cfc3a395abf5c1f @@ -9105,10 +9233,14 @@ trackedFiles: id: dd86606b335f last_write_checksum: sha1:b7c2a96a3d765d1498f9fe08dffc59cc4c8822ac pristine_git_object: 3925a6e0f49d8e0b1b35ec08c38283a5643ed307 + tests/test_skills.py: + id: ac5db26bd6b1 + last_write_checksum: sha1:66737cf664b9e40300809e6af7b5ae64f161de38 + pristine_git_object: 2dd66ab3f2af407e5355207cc7b5d13202fa3dc5 tests/test_summarize.py: id: a255d8a6f627 - last_write_checksum: sha1:6383d6969c6f1bf1832e5ace511e5c2ffaa6d86f - pristine_git_object: cac8e9788f25fda1ff78bd2e3e36917319145e82 + last_write_checksum: sha1:b8d50a340c57b8af5c1e99e397612d393cca14c1 + pristine_git_object: 337a5d83219a4ebd4da33f974ec1790a2d1bf7bc tests/test_tools.py: id: 70889bdf7321 last_write_checksum: sha1:d26d83639f731281bb518886f10571c7b0dbf935 @@ -10117,6 +10249,27 @@ examples: responses: "200": application/json: {"authorizationUrl": "https://shocked-casket.name/"} + platform-skills-list: + speakeasy-default-platform-skills-list: + responses: + "200": + application/json: {"skills": [], "has_more": true, "next_cursor": "", "request_id": ""} + "400": + application/problem+json: {"type": "https://developers.glean.com/errors/invalid-cursor", "title": "Invalid Pagination Cursor", "status": 400, "detail": "The provided cursor has expired. Start a new search to get a fresh cursor.\n", "code": "invalid_cursor", "documentation_url": "https://developers.glean.com/errors/invalid-cursor", "request_id": "req_7f8a9b0c1d2e", "errors": [{"pointer": "/messages/0/role", "detail": "Must be one of: USER, GLEAN_AI.", "code": "invalid_cursor"}]} + "500": + application/problem+json: {"type": "https://developers.glean.com/errors/invalid-cursor", "title": "Invalid Pagination Cursor", "status": 400, "detail": "The provided cursor has expired. Start a new search to get a fresh cursor.\n", "code": "invalid_cursor", "documentation_url": "https://developers.glean.com/errors/invalid-cursor", "request_id": "req_7f8a9b0c1d2e", "errors": [{"pointer": "/messages/0/role", "detail": "Must be one of: USER, GLEAN_AI.", "code": "invalid_cursor"}]} + platform-skills-get: + speakeasy-default-platform-skills-get: + parameters: + path: + skill_id: "" + responses: + "200": + application/json: {"skill": {"id": "", "display_name": "Chad_Herzog", "description": "whenever up aha controvert", "latest_version": 151495, "latest_minor_version": 170771, "status": "DISABLED", "origin": "CUSTOM", "owner": {"name": ""}, "created_at": "2024-12-25T16:41:00.099Z", "updated_at": "2026-12-07T21:59:59.375Z"}, "request_id": ""} + "400": + application/problem+json: {"type": "https://developers.glean.com/errors/invalid-cursor", "title": "Invalid Pagination Cursor", "status": 400, "detail": "The provided cursor has expired. Start a new search to get a fresh cursor.\n", "code": "invalid_cursor", "documentation_url": "https://developers.glean.com/errors/invalid-cursor", "request_id": "req_7f8a9b0c1d2e", "errors": [{"pointer": "/messages/0/role", "detail": "Must be one of: USER, GLEAN_AI.", "code": "invalid_cursor"}]} + "500": + application/problem+json: {"type": "https://developers.glean.com/errors/invalid-cursor", "title": "Invalid Pagination Cursor", "status": 400, "detail": "The provided cursor has expired. Start a new search to get a fresh cursor.\n", "code": "invalid_cursor", "documentation_url": "https://developers.glean.com/errors/invalid-cursor", "request_id": "req_7f8a9b0c1d2e", "errors": [{"pointer": "/messages/0/role", "detail": "Must be one of: USER, GLEAN_AI.", "code": "invalid_cursor"}]} examplesVersion: 1.0.2 generatedTests: activity: "2025-04-28T22:05:12+01:00" @@ -10286,7 +10439,9 @@ generatedTests: platform-search: "2026-07-02T17:48:17Z" getToolServerAuthStatus: "2026-07-08T02:46:37Z" authorizeToolServer: "2026-07-08T02:46:37Z" -releaseNotes: "## Python SDK Changes:\n* `glean.client.chat.create()`: \n * `request.messages[].fragments[]` **Changed**\n * `response.messages[].fragments[]` **Changed**\n* `glean.client.chat.retrieve()`: `response.chat_result.chat.messages[].fragments[]` **Changed**\n* `glean.client.chat.create_stream()`: \n * `request.messages[].fragments[]` **Changed**\n" + platform-skills-list: "2026-07-15T11:19:40Z" + platform-skills-get: "2026-07-15T11:19:40Z" +releaseNotes: "## Python SDK Changes:\n* `glean.skills.list()`: **Added**\n* `glean.skills.retrieve()`: **Added**\n* `glean.client.chat.create()`: \n * `request.messages[].fragments[].action.metadata.action_type_source` **Added**\n * `response.messages[].fragments[].action.metadata.action_type_source` **Added**\n* `glean.client.chat.retrieve()`: `response.chat_result.chat.messages[].fragments[].action.metadata.action_type_source` **Added**\n* `glean.client.chat.create_stream()`: \n * `request.messages[].fragments[].action.metadata.action_type_source` **Added**\n* `glean.client.governance.data.findings.create()`: \n * `request.filter.severity.enum(false_positive)` **Added**\n * `response.filter.severity.enum(false_positive)` **Added**\n* `glean.client.governance.data.findings.list()`: `response.exports[].filter.severity.enum(false_positive)` **Added**\n" generatedFiles: - .devcontainer/README.md - .devcontainer/devcontainer.json diff --git a/.speakeasy/gen.yaml b/.speakeasy/gen.yaml index 10919310..b00f8adc 100644 --- a/.speakeasy/gen.yaml +++ b/.speakeasy/gen.yaml @@ -34,7 +34,7 @@ generation: generateNewTests: true skipResponseBodyAssertions: true python: - version: 0.15.3 + version: 0.15.4 additionalDependencies: dev: {} main: {} diff --git a/.speakeasy/glean-merged-spec.yaml b/.speakeasy/glean-merged-spec.yaml index a1f493a7..4ca86031 100644 --- a/.speakeasy/glean-merged-spec.yaml +++ b/.speakeasy/glean-merged-spec.yaml @@ -1,16245 +1,16210 @@ +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 openapi: 3.0.0 info: - version: "0.9.0" - title: Glean API - x-source-commit-sha: 270b693d49bac2f68e751b2345bac0c267741119 - x-open-api-commit-sha: 592aec2b4913505edb8161645eaf9a72b5286f20 - 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: 9b5c3c870d83601832ec00a5da6e9a06213bb831 + 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-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: 4759e7952b268576ba78788786530bbccf44acab + 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: [] paths: - /api/agents/search: - post: - tags: - - Agents - summary: Search agents - description: | - Search agents available to the authenticated user by agent name. - operationId: platform-agents-search - x-visibility: Public - x-glean-experimental: - id: 4abc1e17-8e06-490b-99a7-e8f97592405a - introduced: "2026-05-12" - x-codegen-request-body-name: payload - requestBody: - required: true - content: - application/json: - schema: - $ref: "#/components/schemas/PlatformAgentsSearchRequest" - responses: - "200": - description: Successful response. - content: - application/json: - schema: - $ref: "#/components/schemas/PlatformAgentsSearchResponse" - "400": - $ref: "#/components/responses/PlatformBadRequest" - "401": - $ref: "#/components/responses/PlatformUnauthorized" - "403": - $ref: "#/components/responses/PlatformForbidden" - "404": - $ref: "#/components/responses/PlatformNotFound" - "408": - $ref: "#/components/responses/PlatformRequestTimeout" - "413": - $ref: "#/components/responses/PlatformRequestTooLarge" - "429": - $ref: "#/components/responses/PlatformTooManyRequests" - "500": - $ref: "#/components/responses/PlatformInternalServerError" - "503": - $ref: "#/components/responses/PlatformServiceUnavailable" - x-speakeasy-group: agents - x-speakeasy-name-override: search - security: - - APIToken: [] - /api/agents/{agent_id}: - get: - tags: - - Agents - summary: Get agent - description: | - Retrieve details for an agent available to the authenticated user. - operationId: platform-agents-get - x-visibility: Public - x-glean-experimental: - id: 009b3e94-694b-4deb-b80a-c67011173715 - introduced: "2026-05-12" - parameters: - - in: path - name: agent_id - description: ID of the agent to retrieve. - required: true - schema: - type: string - minLength: 1 - responses: - "200": - description: Successful response. - content: - application/json: - schema: - $ref: "#/components/schemas/PlatformAgentGetResponse" - "400": - $ref: "#/components/responses/PlatformBadRequest" - "401": - $ref: "#/components/responses/PlatformUnauthorized" - "403": - $ref: "#/components/responses/PlatformForbidden" - "404": - $ref: "#/components/responses/PlatformNotFound" - "408": - $ref: "#/components/responses/PlatformRequestTimeout" - "429": - $ref: "#/components/responses/PlatformTooManyRequests" - "500": - $ref: "#/components/responses/PlatformInternalServerError" - "503": - $ref: "#/components/responses/PlatformServiceUnavailable" - x-speakeasy-group: agents - x-speakeasy-name-override: get - security: - - APIToken: [] - /api/agents/{agent_id}/schemas: - get: - tags: - - Agents - summary: Get agent schemas - description: | - Retrieve an agent's input and output JSON schemas. - operationId: platform-agents-get-schemas - x-visibility: Public - x-glean-experimental: - id: b40b4dd3-3839-48e6-9e45-7e63e8148b49 - introduced: "2026-05-12" - parameters: - - in: path - name: agent_id - description: ID of the agent whose schemas should be retrieved. - required: true - schema: - type: string - minLength: 1 - - in: query - name: include_tools - description: Whether to include tool metadata in the response. - required: false - schema: - type: boolean - default: false - responses: - "200": - description: Successful response. - content: - application/json: - schema: - $ref: "#/components/schemas/PlatformAgentSchemasResponse" - "400": - $ref: "#/components/responses/PlatformBadRequest" - "401": - $ref: "#/components/responses/PlatformUnauthorized" - "403": - $ref: "#/components/responses/PlatformForbidden" - "404": - $ref: "#/components/responses/PlatformNotFound" - "408": - $ref: "#/components/responses/PlatformRequestTimeout" - "429": - $ref: "#/components/responses/PlatformTooManyRequests" - "500": - $ref: "#/components/responses/PlatformInternalServerError" - "503": - $ref: "#/components/responses/PlatformServiceUnavailable" - x-speakeasy-group: agents - x-speakeasy-name-override: getSchemas - security: - - APIToken: [] - /api/agents/{agent_id}/runs: - post: - tags: - - Agents - summary: Create agent run - description: | - Execute an agent run. Set `stream` to true to receive server-sent events; otherwise the response contains the final agent messages. - operationId: platform-agents-create-run - x-visibility: Public - x-glean-experimental: - id: 26bba669-2e92-4e5d-9798-6a532fae4e9f - introduced: "2026-05-12" - x-codegen-request-body-name: payload - parameters: - - in: path - name: agent_id - description: ID of the agent to run. - required: true - schema: - type: string - minLength: 1 - requestBody: - required: true - content: - application/json: - schema: - $ref: "#/components/schemas/PlatformAgentRunCreateRequest" - responses: - "200": - description: Successful response. - content: - application/json: - schema: - $ref: "#/components/schemas/PlatformAgentRunWaitResponse" - text/event-stream: - schema: - type: string - description: Server-sent events emitted by the running agent. - example: | - id: 1 - event: message - data: {"messages":[{"role":"GLEAN_AI","content":[{"text":"Hello","type":"text"}]}]} + /api/agents/search: + post: + tags: + - Agents + summary: Search agents + description: | + Search agents available to the authenticated user by agent name. + operationId: platform-agents-search + x-visibility: Public + x-glean-experimental: + id: 4abc1e17-8e06-490b-99a7-e8f97592405a + introduced: "2026-05-12" + x-codegen-request-body-name: payload + x-speakeasy-group: agents + x-speakeasy-name-override: search + requestBody: + required: true + content: + application/json: + schema: + $ref: "#/components/schemas/PlatformAgentsSearchRequest" + responses: + "200": + description: Successful response. + content: + application/json: + schema: + $ref: "#/components/schemas/PlatformAgentsSearchResponse" + "400": + $ref: "#/components/responses/PlatformBadRequest" + "401": + $ref: "#/components/responses/PlatformUnauthorized" + "403": + $ref: "#/components/responses/PlatformForbidden" + "404": + $ref: "#/components/responses/PlatformNotFound" + "408": + $ref: "#/components/responses/PlatformRequestTimeout" + "413": + $ref: "#/components/responses/PlatformRequestTooLarge" + "429": + $ref: "#/components/responses/PlatformTooManyRequests" + "500": + $ref: "#/components/responses/PlatformInternalServerError" + "503": + $ref: "#/components/responses/PlatformServiceUnavailable" + /api/agents/{agent_id}: + get: + tags: + - Agents + summary: Get agent + description: | + Retrieve details for an agent available to the authenticated user. + operationId: platform-agents-get + x-visibility: Public + x-glean-experimental: + id: 009b3e94-694b-4deb-b80a-c67011173715 + introduced: "2026-05-12" + x-speakeasy-group: agents + x-speakeasy-name-override: get + parameters: + - in: path + name: agent_id + description: ID of the agent to retrieve. + required: true + schema: + type: string + minLength: 1 + responses: + "200": + description: Successful response. + content: + application/json: + schema: + $ref: "#/components/schemas/PlatformAgentGetResponse" + "400": + $ref: "#/components/responses/PlatformBadRequest" + "401": + $ref: "#/components/responses/PlatformUnauthorized" + "403": + $ref: "#/components/responses/PlatformForbidden" + "404": + $ref: "#/components/responses/PlatformNotFound" + "408": + $ref: "#/components/responses/PlatformRequestTimeout" + "429": + $ref: "#/components/responses/PlatformTooManyRequests" + "500": + $ref: "#/components/responses/PlatformInternalServerError" + "503": + $ref: "#/components/responses/PlatformServiceUnavailable" + /api/agents/{agent_id}/schemas: + get: + tags: + - Agents + summary: Get agent schemas + description: | + Retrieve an agent's input and output JSON schemas. + operationId: platform-agents-get-schemas + x-visibility: Public + x-glean-experimental: + id: b40b4dd3-3839-48e6-9e45-7e63e8148b49 + introduced: "2026-05-12" + x-speakeasy-group: agents + x-speakeasy-name-override: getSchemas + parameters: + - in: path + name: agent_id + description: ID of the agent whose schemas should be retrieved. + required: true + schema: + type: string + minLength: 1 + - in: query + name: include_tools + description: Whether to include tool metadata in the response. + required: false + schema: + type: boolean + default: false + responses: + "200": + description: Successful response. + content: + application/json: + schema: + $ref: "#/components/schemas/PlatformAgentSchemasResponse" + "400": + $ref: "#/components/responses/PlatformBadRequest" + "401": + $ref: "#/components/responses/PlatformUnauthorized" + "403": + $ref: "#/components/responses/PlatformForbidden" + "404": + $ref: "#/components/responses/PlatformNotFound" + "408": + $ref: "#/components/responses/PlatformRequestTimeout" + "429": + $ref: "#/components/responses/PlatformTooManyRequests" + "500": + $ref: "#/components/responses/PlatformInternalServerError" + "503": + $ref: "#/components/responses/PlatformServiceUnavailable" + /api/agents/{agent_id}/runs: + post: + tags: + - Agents + summary: Create agent run + description: | + Execute an agent run. Set `stream` to true to receive server-sent events; otherwise the response contains the final agent messages. + operationId: platform-agents-create-run + x-visibility: Public + x-glean-experimental: + id: 26bba669-2e92-4e5d-9798-6a532fae4e9f + introduced: "2026-05-12" + x-codegen-request-body-name: payload + x-speakeasy-group: agents + x-speakeasy-name-override: createRun + parameters: + - in: path + name: agent_id + description: ID of the agent to run. + required: true + schema: + type: string + minLength: 1 + requestBody: + required: true + content: + application/json: + schema: + $ref: "#/components/schemas/PlatformAgentRunCreateRequest" + responses: + "200": + description: Successful response. + content: + application/json: + schema: + $ref: "#/components/schemas/PlatformAgentRunWaitResponse" + text/event-stream: + schema: + type: string + description: Server-sent events emitted by the running agent. + 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":", I can help with HR policy questions.","type":"text"}]}]} - "400": - $ref: "#/components/responses/PlatformBadRequest" - "401": - $ref: "#/components/responses/PlatformUnauthorized" - "403": - $ref: "#/components/responses/PlatformForbidden" - "404": - $ref: "#/components/responses/PlatformNotFound" - "408": - $ref: "#/components/responses/PlatformRequestTimeout" - "409": - $ref: "#/components/responses/PlatformConflict" - "413": - $ref: "#/components/responses/PlatformRequestTooLarge" - "429": - $ref: "#/components/responses/PlatformTooManyRequests" - "500": - $ref: "#/components/responses/PlatformInternalServerError" - "503": - $ref: "#/components/responses/PlatformServiceUnavailable" - x-speakeasy-group: agents - x-speakeasy-name-override: createRun - security: - - APIToken: [] - /api/search: - post: - tags: - - Search - summary: Search - description: | - Execute a search query and retrieve ranked results. This is the data retrieval variant of the search API and returns only results and pagination state. - operationId: platform-search - x-visibility: Public - x-glean-experimental: - id: 5ab612fc-ed50-4419-bec3-e5fe83934653 - introduced: "2026-04-08" - x-codegen-request-body-name: payload - requestBody: - required: true - content: - application/json: - schema: - $ref: "#/components/schemas/PlatformSearchRequest" - responses: - "200": - description: Successful search. - content: - application/json: - schema: - $ref: "#/components/schemas/PlatformSearchResponse" - "400": - $ref: "#/components/responses/PlatformBadRequest" - "401": - $ref: "#/components/responses/PlatformUnauthorized" - "403": - $ref: "#/components/responses/PlatformForbidden" - "404": - $ref: "#/components/responses/PlatformNotFound" - "408": - $ref: "#/components/responses/PlatformRequestTimeout" - "413": - $ref: "#/components/responses/PlatformRequestTooLarge" - "429": - $ref: "#/components/responses/PlatformTooManyRequests" - "500": - $ref: "#/components/responses/PlatformInternalServerError" - "503": - $ref: "#/components/responses/PlatformServiceUnavailable" - x-speakeasy-group: search - x-speakeasy-name-override: query - security: - - APIToken: [] - /rest/api/v1/activity: - post: - operationId: activity - summary: Report document activity - description: Report user activity that occurs on indexed documents such as viewing or editing. This signal improves search quality. - tags: - - Activity - security: - - APIToken: [] - 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-visibility: Public - x-codegen-request-body-name: payload - x-speakeasy-name-override: report - x-speakeasy-group: client.activity - /rest/api/v1/feedback: - post: - operationId: feedback - 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. - tags: - - Activity - security: - - APIToken: [] - 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-visibility: Public - x-codegen-request-body-name: payload - x-speakeasy-group: client.activity - /rest/api/v1/createannouncement: - post: - operationId: createannouncement - summary: Create Announcement - description: Create a textual announcement visible to some set of users based on department and location. - tags: - - Announcements - security: - - APIToken: [] - parameters: - - $ref: '#/components/parameters/locale' - requestBody: - description: Announcement content - content: - application/json: - schema: - $ref: '#/components/schemas/CreateAnnouncementRequest' - 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-visibility: Public - x-codegen-request-body-name: payload - x-speakeasy-name-override: create - x-speakeasy-group: client.announcements - /rest/api/v1/deleteannouncement: - post: - operationId: deleteannouncement - summary: Delete Announcement - description: Delete an existing user-generated announcement. - tags: - - Announcements - security: - - APIToken: [] - parameters: - - $ref: '#/components/parameters/locale' - requestBody: - description: Delete announcement request - content: - application/json: - schema: - $ref: '#/components/schemas/DeleteAnnouncementRequest' - required: true - x-exportParamName: Request - responses: - "200": - description: OK - "400": - description: Invalid request - "401": - description: Not Authorized - "429": - description: Too Many Requests - x-visibility: Public - x-codegen-request-body-name: payload - x-speakeasy-name-override: delete - x-speakeasy-group: client.announcements - /rest/api/v1/updateannouncement: - post: - operationId: updateannouncement - summary: Update Announcement - description: Update a textual announcement visible to some set of users based on department and location. - tags: - - Announcements - security: - - APIToken: [] - parameters: - - $ref: '#/components/parameters/locale' - requestBody: - description: Announcement content. Id need to be specified for the announcement. - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateAnnouncementRequest' - 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-visibility: Public - x-codegen-request-body-name: payload - x-speakeasy-name-override: update - x-speakeasy-group: client.announcements - /rest/api/v1/createanswer: - post: - operationId: createanswer - summary: Create Answer - description: Create a user-generated Answer that contains a question and answer. - tags: - - Answers - security: - - APIToken: [] - parameters: - - $ref: '#/components/parameters/locale' - requestBody: - description: CreateAnswer request - content: - application/json: - schema: - $ref: '#/components/schemas/CreateAnswerRequest' - 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-visibility: Public - x-codegen-request-body-name: payload - x-speakeasy-name-override: create - x-speakeasy-group: client.answers - /rest/api/v1/deleteanswer: - post: - operationId: deleteanswer - summary: Delete Answer - description: Delete an existing user-generated Answer. - tags: - - Answers - security: - - APIToken: [] - parameters: - - $ref: '#/components/parameters/locale' - requestBody: - description: DeleteAnswer request - content: - application/json: - schema: - $ref: '#/components/schemas/DeleteAnswerRequest' - required: true - x-exportParamName: Request - responses: - "200": - description: OK - "400": - description: Invalid request - "401": - description: Not Authorized - "429": - description: Too Many Requests - x-visibility: Public - x-codegen-request-body-name: payload - x-speakeasy-name-override: delete - x-speakeasy-group: client.answers - /rest/api/v1/editanswer: - post: - operationId: editanswer - summary: Update Answer - description: Update an existing user-generated Answer. - tags: - - Answers - security: - - APIToken: [] - parameters: - - $ref: '#/components/parameters/locale' - requestBody: - description: EditAnswer request - content: - application/json: - schema: - $ref: '#/components/schemas/EditAnswerRequest' - 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-visibility: Public - x-codegen-request-body-name: payload - x-speakeasy-name-override: update - x-speakeasy-group: client.answers - /rest/api/v1/getanswer: - post: - operationId: getanswer - summary: Read Answer - description: Read the details of a particular Answer given its ID. - tags: - - Answers - security: - - APIToken: [] - parameters: - - $ref: '#/components/parameters/locale' - requestBody: - description: GetAnswer request - content: - application/json: - schema: - $ref: '#/components/schemas/GetAnswerRequest' - 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-visibility: Public - x-codegen-request-body-name: payload - x-speakeasy-name-override: retrieve - x-speakeasy-group: client.answers - /rest/api/v1/listanswers: - post: - operationId: listanswers - summary: List Answers - description: List Answers created by the current user. - tags: - - Answers - security: - - APIToken: [] - parameters: - - $ref: '#/components/parameters/locale' - requestBody: - description: ListAnswers request - content: - application/json: - schema: - $ref: '#/components/schemas/ListAnswersRequest' - 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 - 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" - 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: - operationId: checkdatasourceauth - 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. + id: 2 + event: message + data: {"messages":[{"role":"GLEAN_AI","content":[{"text":", I can help with HR policy questions.","type":"text"}]}]} + "400": + $ref: "#/components/responses/PlatformBadRequest" + "401": + $ref: "#/components/responses/PlatformUnauthorized" + "403": + $ref: "#/components/responses/PlatformForbidden" + "404": + $ref: "#/components/responses/PlatformNotFound" + "408": + $ref: "#/components/responses/PlatformRequestTimeout" + "409": + $ref: "#/components/responses/PlatformConflict" + "413": + $ref: "#/components/responses/PlatformRequestTooLarge" + "429": + $ref: "#/components/responses/PlatformTooManyRequests" + "500": + $ref: "#/components/responses/PlatformInternalServerError" + "503": + $ref: "#/components/responses/PlatformServiceUnavailable" + /api/skills: + get: + tags: + - Skills + summary: List skills + description: | + List skills available to the authenticated user. + operationId: platform-skills-list + x-visibility: Public + x-glean-experimental: + id: 3eb65937-03a3-472b-9a00-be713f302b5f + introduced: "2026-06-23" + x-speakeasy-group: skills + x-speakeasy-name-override: list + parameters: + - in: query + name: page_size + description: Maximum number of skills to return. + required: false + schema: + type: integer + minimum: 1 + maximum: 100 + - in: query + name: cursor + description: Opaque pagination cursor from a previous response. + required: false + schema: + type: string + minLength: 1 + responses: + "200": + description: Successful response. + content: + application/json: + schema: + $ref: "#/components/schemas/PlatformSkillsListResponse" + "400": + $ref: "#/components/responses/PlatformBadRequest" + "401": + $ref: "#/components/responses/PlatformUnauthorized" + "403": + $ref: "#/components/responses/PlatformForbidden" + "404": + $ref: "#/components/responses/PlatformNotFound" + "408": + $ref: "#/components/responses/PlatformRequestTimeout" + "429": + $ref: "#/components/responses/PlatformTooManyRequests" + "500": + $ref: "#/components/responses/PlatformInternalServerError" + "503": + $ref: "#/components/responses/PlatformServiceUnavailable" + /api/skills/{skill_id}: + get: + tags: + - Skills + summary: Retrieve skill + description: | + Retrieve metadata for a skill available to the authenticated user. + operationId: platform-skills-get + x-visibility: Public + x-glean-experimental: + id: 8f8d1c92-a484-4769-9903-200613dc8a72 + introduced: "2026-06-23" + x-speakeasy-group: skills + x-speakeasy-name-override: retrieve + parameters: + - name: skill_id + in: path + required: true + description: Glean skill ID. + schema: + type: string + minLength: 1 + responses: + "200": + description: Successful response. + content: + application/json: + schema: + $ref: "#/components/schemas/PlatformSkillGetResponse" + "400": + $ref: "#/components/responses/PlatformBadRequest" + "401": + $ref: "#/components/responses/PlatformUnauthorized" + "403": + $ref: "#/components/responses/PlatformForbidden" + "404": + $ref: "#/components/responses/PlatformNotFound" + "408": + $ref: "#/components/responses/PlatformRequestTimeout" + "429": + $ref: "#/components/responses/PlatformTooManyRequests" + "500": + $ref: "#/components/responses/PlatformInternalServerError" + "503": + $ref: "#/components/responses/PlatformServiceUnavailable" + /api/search: + post: + tags: + - Search + summary: Search + description: | + Execute a search query and retrieve ranked results. This is the data retrieval variant of the search API and returns only results and pagination state. + operationId: platform-search + x-visibility: Public + x-glean-experimental: + id: 5ab612fc-ed50-4419-bec3-e5fe83934653 + introduced: "2026-04-08" + x-codegen-request-body-name: payload + x-speakeasy-group: search + x-speakeasy-name-override: query + requestBody: + required: true + content: + application/json: + schema: + $ref: "#/components/schemas/PlatformSearchRequest" + responses: + "200": + description: Successful search. + content: + application/json: + schema: + $ref: "#/components/schemas/PlatformSearchResponse" + "400": + $ref: "#/components/responses/PlatformBadRequest" + "401": + $ref: "#/components/responses/PlatformUnauthorized" + "403": + $ref: "#/components/responses/PlatformForbidden" + "404": + $ref: "#/components/responses/PlatformNotFound" + "408": + $ref: "#/components/responses/PlatformRequestTimeout" + "413": + $ref: "#/components/responses/PlatformRequestTooLarge" + "429": + $ref: "#/components/responses/PlatformTooManyRequests" + "500": + $ref: "#/components/responses/PlatformInternalServerError" + "503": + $ref: "#/components/responses/PlatformServiceUnavailable" + /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=`. - tags: - - Authentication - security: - - APIToken: [] - parameters: [] - responses: - "200": - description: OK - content: - application/json: - schema: - $ref: '#/components/schemas/CheckDatasourceAuthResponse' - "401": - description: Not Authorized - "429": - description: Too Many Requests - x-visibility: Public - x-speakeasy-name-override: checkDatasourceAuth - x-speakeasy-group: client.authentication - /rest/api/v1/createauthtoken: - post: - operationId: createauthtoken - 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 + x-speakeasy-name-override: checkDatasourceAuth + x-speakeasy-group: client.authentication + /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/*`). - tags: - - Authentication - security: - - APIToken: [] - 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-visibility: Public - x-speakeasy-name-override: createToken - x-speakeasy-group: client.authentication - /rest/api/v1/chat: - post: - operationId: chat - summary: Chat - description: Have a conversation with Glean AI. - tags: - - Chat - security: - - APIToken: [] - parameters: - - $ref: '#/components/parameters/locale' - - $ref: '#/components/parameters/timezoneOffset' - requestBody: - description: Includes chat history for Glean AI to respond to. - 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? - 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 - "202": - description: | - Request accepted but not yet processed. Returned when another - in-flight request is already running for the same chat session; - the body's `queuedRequestId` identifies the deferred run and - output will be persisted to the chat session referenced by - `chatId`. - content: - application/json: - schema: - $ref: '#/components/schemas/ChatResponse' - examples: - queuedExample: - value: - chatId: abc123 - queuedRequestId: qr-xyz - isSavedToChatHistory: true - "400": - description: Invalid request - "401": - description: Not Authorized - "408": - description: Request Timeout - "429": - description: Too Many Requests - x-visibility: Public - x-codegen-request-body-name: payload - x-speakeasy-group: client.chat - x-speakeasy-name-override: create - x-speakeasy-usage-example: true - /rest/api/v1/deleteallchats: - post: - operationId: deleteallchats - summary: Deletes all saved Chats owned by a user - description: Deletes all saved Chats a user has had and all their contained conversational content. - tags: - - Chat - security: - - APIToken: [] - 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-visibility: Public - x-codegen-request-body-name: payload - x-speakeasy-name-override: deleteAll - x-speakeasy-group: client.chat - /rest/api/v1/deletechats: - post: - operationId: deletechats - summary: Deletes saved Chats - description: Deletes saved Chats and all their contained conversational content. - tags: - - Chat - security: - - APIToken: [] - 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-visibility: Public - x-codegen-request-body-name: payload - x-speakeasy-name-override: delete - x-speakeasy-group: client.chat - /rest/api/v1/getchat: - post: - operationId: getchat - summary: Retrieves a Chat - description: Retrieves the chat history between Glean Assistant and the user for a given Chat. - tags: - - Chat - security: - - APIToken: [] - 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-visibility: Public - x-codegen-request-body-name: payload - x-speakeasy-name-override: retrieve - x-speakeasy-group: client.chat - /rest/api/v1/listchats: - post: - operationId: listchats - 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. - tags: - - Chat - security: - - APIToken: [] - 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-visibility: Public - x-codegen-request-body-name: payload - x-speakeasy-name-override: list - x-speakeasy-group: client.chat - /rest/api/v1/getchatapplication: - post: - operationId: getchatapplication - summary: Gets the metadata for a custom Chat application - description: Gets the Chat application details for the specified application ID. - tags: - - Chat - security: - - APIToken: [] - 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-visibility: Preview - x-codegen-request-body-name: payload - x-speakeasy-name-override: retrieveApplication - x-speakeasy-group: client.chat - /rest/api/v1/uploadchatfiles: - post: - operationId: uploadchatfiles - summary: Upload files for Chat - description: Upload files for Chat. - tags: - - Chat - security: - - APIToken: [] - parameters: - - $ref: '#/components/parameters/locale' - - $ref: '#/components/parameters/timezoneOffset' - requestBody: - content: - multipart/form-data: - schema: - $ref: '#/components/schemas/UploadChatFilesRequest' - required: true - 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-visibility: Public - x-speakeasy-name-override: uploadFiles - x-speakeasy-group: client.chat - /rest/api/v1/getchatfiles: - post: - operationId: getchatfiles - summary: Get files uploaded by a user for Chat - description: Get files uploaded by a user for Chat. - tags: - - Chat - security: - - APIToken: [] - parameters: - - $ref: '#/components/parameters/locale' - - $ref: '#/components/parameters/timezoneOffset' - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/GetChatFilesRequest' - required: true - 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-visibility: Public - x-speakeasy-name-override: retrieveFiles - x-speakeasy-group: client.chat - /rest/api/v1/deletechatfiles: - post: - operationId: deletechatfiles - summary: Delete files uploaded by a user for chat - description: Delete files uploaded by a user for Chat. - tags: - - Chat - security: - - APIToken: [] - parameters: - - $ref: '#/components/parameters/locale' - - $ref: '#/components/parameters/timezoneOffset' - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/DeleteChatFilesRequest' - required: true - responses: - "200": - description: OK - "400": - description: Invalid request - "401": - description: Not Authorized - "403": - description: Forbidden - "429": - description: Too Many Requests - x-visibility: Public - x-speakeasy-name-override: deleteFiles - x-speakeasy-group: client.chat - /rest/api/v1/chat-files/{fileId}: - get: - operationId: getChatFile - summary: Download a chat file - description: | - Download the raw content of a file generated or uploaded during a chat session (for example, an image produced by the assistant). Returns the file bytes with a Content-Type header matching the file's MIME type. - tags: - - Chat - security: - - APIToken: [] - parameters: - - name: fileId - in: path - description: Identifier of the chat file to download. - required: true - schema: - type: string - - name: preview - in: query - description: | - When true and the file is a PDF, the response is served inline (Content-Disposition: inline) instead of as an attachment. - required: false - schema: - type: boolean - responses: - "200": - description: File content. - content: - application/octet-stream: + 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 + "202": + description: | + Request accepted but not yet processed. Returned when another + in-flight request is already running for the same chat session; + the body's `queuedRequestId` identifies the deferred run and + output will be persisted to the chat session referenced by + `chatId`. + content: + application/json: + schema: + $ref: "#/components/schemas/ChatResponse" + examples: + queuedExample: + value: + chatId: abc123 + queuedRequestId: qr-xyz + isSavedToChatHistory: true + "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/chat-files/{fileId}: + get: + tags: + - Chat + summary: Download a chat file + description: | + Download the raw content of a file generated or uploaded during a chat session (for example, an image produced by the assistant). Returns the file bytes with a Content-Type header matching the file's MIME type. + operationId: getChatFile + x-visibility: Public + parameters: + - name: fileId + in: path + required: true + description: Identifier of the chat file to download. + schema: + type: string + - name: preview + in: query + required: false + description: | + When true and the file is a PDF, the response is served inline (Content-Disposition: inline) instead of as an attachment. + schema: + type: boolean + responses: + "200": + description: File content. + content: + application/octet-stream: + schema: + type: string + format: binary + "400": + description: File ID missing from path. + "401": + description: Missing or invalid API token. + "403": + description: Caller does not have access to the file. + "404": + description: File not found. + "500": + description: Internal server error. + x-speakeasy-name-override: retrieveFile + x-speakeasy-group: client.chat + /rest/api/v1/agents: + post: + tags: + - Agents + summary: Create an agent + description: Create an agent. + operationId: createAgent + x-visibility: Preview + parameters: + - $ref: "#/components/parameters/locale" + - $ref: "#/components/parameters/timezoneOffset" + requestBody: + required: true + content: + application/json: + schema: + $ref: "#/components/schemas/CreateWorkflowRequest" + responses: + "200": + description: Success + content: + application/json: + schema: + $ref: "#/components/schemas/CreateWorkflowResponse" + "400": + description: Bad request + "401": + description: Not Authorized + "403": + description: Forbidden + "500": + description: Internal server error + x-speakeasy-group: client.agents + x-speakeasy-name-override: create + /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 + post: + tags: + - Agents + summary: Edit an agent + description: Creates a draft or publishes an [agent](https://developers.glean.com/agents/agents-api). Use `isDraft=true` to save a draft, or `isDraft=false` (or omit) to publish immediately. Only draft and publish modes are supported. + operationId: editAgent + 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 + requestBody: + required: true + content: + application/json: + schema: + $ref: "#/components/schemas/EditWorkflowRequest" + responses: + "200": + description: Success + "400": + description: Bad request + "401": + description: Not Authorized + "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: update + /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. If execution fails after the stream has started, the stream may terminate with an error message in a normal `message` event. + 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: 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/people/{person_id}/photo: + get: + tags: + - Entities + summary: Get person photo + description: | + Returns the profile photo bytes for a person whose photo is stored in Glean (crawled from an identity source or user-uploaded via admin console). Photos hosted externally (e.g. Slack CDN) are not served by this endpoint; callers should follow the photoUrl from /people or /listentities directly. Responses include a Cache-Control header (max-age=3600) to reduce redundant fetches. + operationId: getPersonPhoto + x-visibility: Public + parameters: + - name: person_id + in: path + required: true + description: The obfuscated ID of the person whose photo to retrieve. + schema: + type: string + - name: ds + in: query + required: false + description: | + Optional datasource override for crawled photos (e.g. AZURE, GDRIVE, OKTA). When omitted, the datasource is derived from the person's stored photo URL or the deployment's primary person datasource. + schema: + type: string + responses: + "200": + description: Photo bytes returned successfully. + headers: + Cache-Control: + description: Caching directive for the photo response. + schema: + type: string + example: public, max-age=3600 + example: public, max-age=3600 + content: + image/png: + schema: + type: string + format: binary + image/jpeg: + schema: + type: string + format: binary + "400": + description: Missing person_id parameter. + "401": + description: Not Authorized. + "404": + description: | + Person not found, person has no photo, or photo is not hosted by Glean (follow photoUrl from /people or /listentities directly). + "429": + description: Too Many Requests. + x-speakeasy-name-override: retrievePersonPhoto + 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: + tags: + - Tools + - Tools + 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 + x-speakeasy-name-override: list + x-speakeasy-group: client.tools + /rest/api/v1/tools/call: + post: + tags: + - Tools + - Tools + 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 + x-speakeasy-name-override: run + x-speakeasy-group: client.tools + /rest/api/v1/actions/actionpack/{actionPackId}/auth: + parameters: + - in: path + name: actionPackId + required: true + description: ID of the action pack to query or authorize. schema: type: string - format: binary - "400": - description: File ID missing from path. - "401": - description: Missing or invalid API token. - "403": - description: Caller does not have access to the file. - "404": - description: File not found. - "500": - description: Internal server error. - x-visibility: Public - x-speakeasy-name-override: retrieveFile - x-speakeasy-group: client.chat - /rest/api/v1/agents: - post: - operationId: createAgent - summary: Create an agent - description: Create an agent. - tags: - - Agents - security: - - APIToken: [] - parameters: - - $ref: '#/components/parameters/locale' - - $ref: '#/components/parameters/timezoneOffset' - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/CreateWorkflowRequest' - required: true - responses: - "200": - description: Success - content: - application/json: - schema: - $ref: '#/components/schemas/CreateWorkflowResponse' - "400": - description: Bad request - "401": - description: Not Authorized - "403": - description: Forbidden - "500": - description: Internal server error - x-visibility: Preview - x-speakeasy-group: client.agents - x-speakeasy-name-override: create - /rest/api/v1/agents/{agent_id}: - get: - operationId: getAgent - summary: Retrieve an agent - description: Returns details of an [agent](https://developers.glean.com/agents/agents-api) created in the Agent Builder. - tags: - - Agents - security: - - APIToken: [] - parameters: - - $ref: '#/components/parameters/locale' - - $ref: '#/components/parameters/timezoneOffset' - - name: agent_id - in: path - description: The ID of the agent. - required: true - schema: - type: string - title: Agent ID - description: The ID of the agent. - 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-visibility: Preview - x-speakeasy-group: client.agents - x-speakeasy-name-override: retrieve - post: - operationId: editAgent - summary: Edit an agent - description: Creates a draft or publishes an [agent](https://developers.glean.com/agents/agents-api). Use `isDraft=true` to save a draft, or `isDraft=false` (or omit) to publish immediately. Only draft and publish modes are supported. - tags: - - Agents - security: - - APIToken: [] - parameters: - - $ref: '#/components/parameters/locale' - - $ref: '#/components/parameters/timezoneOffset' - - name: agent_id - in: path - description: The ID of the agent. - required: true - schema: - type: string - title: Agent ID - description: The ID of the agent. - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/EditWorkflowRequest' - required: true - responses: - "200": - description: Success - "400": - description: Bad request - "401": - description: Not Authorized - "403": - description: Forbidden - "404": - description: Not Found - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - "500": - description: Internal server error - x-visibility: Preview - x-speakeasy-group: client.agents - x-speakeasy-name-override: update - /rest/api/v1/agents/{agent_id}/schemas: - get: - operationId: getAgentSchemas - 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. - tags: - - Agents - security: - - APIToken: [] - parameters: - - $ref: '#/components/parameters/locale' - - $ref: '#/components/parameters/timezoneOffset' - - name: agent_id - in: path - description: The ID of the agent. - required: true - schema: - type: string - title: Agent Id - description: The ID of the agent. - 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-visibility: Preview - x-speakeasy-group: client.agents - x-speakeasy-name-override: retrieveSchemas - /rest/api/v1/agents/search: - post: - operationId: searchAgents - summary: Search agents - description: Search for [agents](https://developers.glean.com/agents/agents-api) by agent name. - tags: - - Agents - security: - - APIToken: [] - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/SearchAgentsRequest' - required: true - 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-visibility: Preview - x-speakeasy-group: client.agents - x-speakeasy-name-override: list - /rest/api/v1/agents/runs/stream: - post: - operationId: createAndStreamRun - 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.' - tags: - - Agents - security: - - APIToken: [] - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/AgentRunCreate' - required: true - responses: - "200": - description: Success - content: - text/event-stream: + get: + tags: + - Tools + summary: Get end-user authentication status for an action pack. + description: | + Reports whether the calling user is already authenticated against the third-party + tool backing the specified action pack. Intended for headless / server-driven clients + that render an "Authorize" prompt when the user has not yet consented to the tool. + operationId: getActionPackAuthStatus + x-visibility: Preview + responses: + "200": + description: Successful operation + content: + application/json: + schema: + $ref: "#/components/schemas/ActionPackAuthStatusResponse" + "400": + description: Bad Request + "401": + description: Unauthorized + "404": + description: Action pack not found + "429": + description: Too Many Requests + x-speakeasy-name-override: retrieveActionPackAuthStatus + x-speakeasy-group: client.tools + post: + tags: + - Tools + summary: Start the OAuth authorization flow for an action pack. + description: | + Starts the third-party OAuth flow for the specified action pack and returns the + redirect URL that the client should navigate the end user to. After the OAuth + callback completes, the user's browser is redirected back to `returnUrl` with a + status query parameter (`?glean_action_auth=success|error&actionPackId=...`). + + `returnUrl` must match the tenant's configured return URL allowlist; otherwise the + request is rejected with 400. + operationId: authorizeActionPack + x-visibility: Preview + requestBody: + required: true + content: + application/json: + schema: + $ref: "#/components/schemas/AuthorizeActionPackRequest" + responses: + "200": + description: Successful operation + content: + application/json: + schema: + $ref: "#/components/schemas/AuthorizeActionPackResponse" + "400": + description: Invalid request (e.g. returnUrl not in allowlist, unsupported auth type) + "401": + description: Unauthorized + "403": + description: User not entitled to the action pack + "404": + description: Action pack not found + "429": + description: Too Many Requests + x-speakeasy-name-override: authorizeActionPack + x-speakeasy-group: client.tools + /rest/api/v1/tool-servers/{serverId}/auth: + parameters: + - in: path + name: serverId + required: true + description: Unique identifier of the tool server. schema: type: string - description: The server will send a stream of events in server-sent events (SSE) format. If execution fails after the stream has started, the stream may terminate with an error message in a normal `message` event. - example: | - id: 1 - event: message - data: {"messages":[{"role":"GLEAN_AI","content":[{"text":"Hello","type":"text"}]}]} + get: + tags: + - Tools + summary: Get end-user authentication status for a tool server. + description: | + Returns display information and the calling user's current authentication status + for the specified tool server. + operationId: getToolServerAuthStatus + x-visibility: Preview + x-glean-experimental: + id: 52fde6ec-c18b-4de6-b761-f82008542ae7 + introduced: "2026-07-02" + responses: + "200": + description: Successful operation + content: + application/json: + schema: + $ref: "#/components/schemas/ToolServerAuthStatusResponse" + "400": + description: Bad Request + "401": + description: Unauthorized + "404": + description: Tool server not found + "429": + description: Too Many Requests + x-speakeasy-name-override: retrieveToolServerAuthStatus + x-speakeasy-group: client.tools + post: + tags: + - Tools + summary: Start the OAuth authorization flow for a tool server. + description: | + Initiates the third-party OAuth flow for the specified tool server and returns the + authorization URL that the client should navigate the end user to. After the OAuth + callback completes, the user's browser is redirected back to `returnUrl` with query + parameters indicating the result. - id: 2 - event: message - data: {"messages":[{"role":"GLEAN_AI","content":[{"text":",","type":"text"}]}]} + `returnUrl` must match the tenant's configured return URL allowlist; otherwise the + request is rejected with 400. + operationId: authorizeToolServer + x-visibility: Preview + x-glean-experimental: + id: 1935476e-ecaf-4c1f-a9fd-1e768cf68f30 + introduced: "2026-07-02" + requestBody: + required: true + content: + application/json: + schema: + $ref: "#/components/schemas/AuthorizeToolServerRequest" + responses: + "200": + description: Successful operation + content: + application/json: + schema: + $ref: "#/components/schemas/AuthorizeToolServerResponse" + "400": + description: Invalid request (e.g. returnUrl not in allowlist, unsupported auth type) + "401": + description: Unauthorized + "403": + description: User not entitled to the tool server + "404": + description: Tool server not found + "429": + description: Too Many Requests + x-speakeasy-name-override: authorizeToolServer + 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: 3 - event: message - data: {"messages":[{"role":"GLEAN_AI","content":[{"text":" I'm","type":"text"}]}]} + 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. - 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-visibility: Preview - x-speakeasy-group: client.agents - x-speakeasy-name-override: runStream - /rest/api/v1/agents/runs/wait: - post: - operationId: createAndWaitRun - 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.' - tags: - - Agents - security: - - APIToken: [] - 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-visibility: Preview - x-speakeasy-group: client.agents - x-speakeasy-name-override: run - /rest/api/v1/addcollectionitems: - post: - operationId: addcollectionitems - summary: Add Collection item - description: Add items to a Collection. - tags: - - Collections - security: - - APIToken: [] - parameters: - - $ref: '#/components/parameters/locale' - requestBody: - description: Data describing the add operation. - content: - application/json: - schema: - $ref: '#/components/schemas/AddCollectionItemsRequest' - 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-visibility: Public - x-codegen-request-body-name: payload - x-speakeasy-name-override: addItems - x-speakeasy-group: client.collections - /rest/api/v1/createcollection: - post: - operationId: createcollection - summary: Create Collection - description: Create a publicly visible (empty) Collection of documents. - tags: - - Collections - security: - - APIToken: [] - parameters: - - $ref: '#/components/parameters/locale' - requestBody: - description: Collection content plus any additional metadata for the request. - content: - application/json: - schema: - $ref: '#/components/schemas/CreateCollectionRequest' - 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-visibility: Public - x-codegen-request-body-name: payload - x-speakeasy-group: client.collections - x-speakeasy-name-override: create - /rest/api/v1/deletecollection: - post: - operationId: deletecollection - summary: Delete Collection - description: Delete a Collection given the Collection's ID. - tags: - - Collections - security: - - APIToken: [] - parameters: - - $ref: '#/components/parameters/locale' - requestBody: - description: DeleteCollection request - content: - application/json: - schema: - $ref: '#/components/schemas/DeleteCollectionRequest' - 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-visibility: Public - x-codegen-request-body-name: payload - x-speakeasy-name-override: delete - x-speakeasy-group: client.collections - /rest/api/v1/deletecollectionitem: - post: - operationId: deletecollectionitem - summary: Delete Collection item - description: Delete a single item from a Collection. - tags: - - Collections - security: - - APIToken: [] - parameters: - - $ref: '#/components/parameters/locale' - requestBody: - description: Data describing the delete operation. - content: - application/json: - schema: - $ref: '#/components/schemas/DeleteCollectionItemRequest' - 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-visibility: Public - x-codegen-request-body-name: payload - x-speakeasy-name-override: deleteItem - x-speakeasy-group: client.collections - /rest/api/v1/editcollection: - post: - operationId: editcollection - summary: Update Collection - description: Update the properties of an existing Collection. - tags: - - Collections - security: - - APIToken: [] - parameters: - - $ref: '#/components/parameters/locale' - requestBody: - description: Collection content plus any additional metadata for the request. - content: - application/json: - schema: - $ref: '#/components/schemas/EditCollectionRequest' - 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-visibility: Public - x-codegen-request-body-name: payload - x-speakeasy-name-override: update - x-speakeasy-group: client.collections - /rest/api/v1/editcollectionitem: - post: - operationId: editcollectionitem - summary: Update Collection item - description: Update the URL, Glean Document ID, description of an item within a Collection given its ID. - tags: - - Collections - security: - - APIToken: [] - parameters: - - $ref: '#/components/parameters/locale' - requestBody: - description: Edit Collection Items request - content: - application/json: - schema: - $ref: '#/components/schemas/EditCollectionItemRequest' - 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-visibility: Public - x-codegen-request-body-name: payload - x-speakeasy-name-override: updateItem - x-speakeasy-group: client.collections - /rest/api/v1/getcollection: - post: - operationId: getcollection - summary: Read Collection - description: Read the details of a Collection given its ID. Does not fetch items in this Collection. - tags: - - Collections - security: - - APIToken: [] - parameters: - - $ref: '#/components/parameters/locale' - requestBody: - description: GetCollection request - content: - application/json: - schema: - $ref: '#/components/schemas/GetCollectionRequest' - 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-visibility: Preview - x-codegen-request-body-name: payload - x-speakeasy-name-override: retrieve - x-speakeasy-group: client.collections - /rest/api/v1/listcollections: - post: - operationId: listcollections - summary: List Collections - description: List all existing Collections. - tags: - - Collections - security: - - APIToken: [] - parameters: - - $ref: '#/components/parameters/locale' - requestBody: - description: ListCollections request - content: - application/json: - schema: - $ref: '#/components/schemas/ListCollectionsRequest' - 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-visibility: Public - x-codegen-request-body-name: payload - x-speakeasy-name-override: list - x-speakeasy-group: client.collections - /rest/api/v1/getdocpermissions: - post: - operationId: getdocpermissions - summary: Read document permissions - description: Read the emails of all users who have access to the given document. - tags: - - Documents - security: - - APIToken: [] - parameters: - - $ref: '#/components/parameters/locale' - requestBody: - description: Document permissions request - content: - application/json: - schema: - $ref: '#/components/schemas/GetDocPermissionsRequest' - 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-visibility: Preview - x-codegen-request-body-name: payload - x-speakeasy-name-override: retrievePermissions - x-speakeasy-group: client.documents - /rest/api/v1/getdocuments: - post: - operationId: getdocuments - 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. - tags: - - Documents - security: - - APIToken: [] - parameters: - - $ref: '#/components/parameters/locale' - requestBody: - description: Information about documents requested. - content: - application/json: - schema: - $ref: '#/components/schemas/GetDocumentsRequest' - 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-visibility: Public - x-codegen-request-body-name: payload - x-speakeasy-name-override: retrieve - x-speakeasy-group: client.documents - /rest/api/v1/getdocumentsbyfacets: - post: - operationId: getdocumentsbyfacets - summary: Read documents by facets - description: Read the documents including metadata (does not include enhanced metadata via `/documentmetadata`) macthing the given facet conditions. - tags: - - Documents - security: - - APIToken: [] - parameters: - - $ref: '#/components/parameters/locale' - requestBody: - description: Information about facet conditions for documents to be retrieved. - content: - application/json: - schema: - $ref: '#/components/schemas/GetDocumentsByFacetsRequest' - 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-visibility: Preview - x-codegen-request-body-name: payload - x-speakeasy-name-override: retrieveByFacets - x-speakeasy-group: client.documents - /rest/api/v1/insights: - post: - operationId: insights - summary: Get insights - description: Gets the aggregate usage insights data displayed in the Insights Dashboards. - tags: - - Insights - security: - - APIToken: [] - parameters: - - $ref: '#/components/parameters/locale' - requestBody: - description: Includes request parameters for insights requests. - content: - application/json: - schema: - $ref: '#/components/schemas/InsightsRequest' - 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-visibility: Public - x-codegen-request-body-name: payload - x-speakeasy-name-override: retrieve - x-speakeasy-group: client.insights - /rest/api/v1/messages: - post: - operationId: messages - summary: Read messages - description: Retrieves list of messages from messaging/chat datasources (e.g. Slack, Teams). - tags: - - Messages - security: - - APIToken: [] - parameters: - - $ref: '#/components/parameters/locale' - requestBody: - description: Includes request params such as the id for channel/message and direction. - content: - application/json: - schema: - $ref: '#/components/schemas/MessagesRequest' - 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-visibility: Preview - x-codegen-request-body-name: payload - x-speakeasy-name-override: retrieve - x-speakeasy-group: client.messages - /rest/api/v1/editpin: - post: - operationId: editpin - summary: Update pin - description: Update an existing user-generated pin. - tags: - - Pins - security: - - APIToken: [] - parameters: - - $ref: '#/components/parameters/locale' - requestBody: - description: Edit pins request - content: - application/json: - schema: - $ref: '#/components/schemas/EditPinRequest' - 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-visibility: Public - x-codegen-request-body-name: payload - x-speakeasy-name-override: update - x-speakeasy-group: client.pins - /rest/api/v1/getpin: - post: - operationId: getpin - summary: Read pin - description: Read pin details given its ID. - tags: - - Pins - security: - - APIToken: [] - parameters: - - $ref: '#/components/parameters/locale' - requestBody: - description: Get pin request - content: - application/json: - schema: - $ref: '#/components/schemas/GetPinRequest' - 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-visibility: Public - x-codegen-request-body-name: payload - x-speakeasy-name-override: retrieve - x-speakeasy-group: client.pins - /rest/api/v1/listpins: - post: - operationId: listpins - summary: List pins - description: Lists all pins. - tags: - - Pins - security: - - APIToken: [] - parameters: - - $ref: '#/components/parameters/locale' - requestBody: - description: List pins request - content: - application/json: - schema: - type: object - 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-visibility: Public - x-codegen-request-body-name: payload - x-speakeasy-name-override: list - x-speakeasy-group: client.pins - /rest/api/v1/pin: - post: - operationId: pin - 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. - tags: - - Pins - security: - - APIToken: [] - parameters: - - $ref: '#/components/parameters/locale' - requestBody: - description: Details about the document and query for the pin. - content: - application/json: - schema: - $ref: '#/components/schemas/PinRequest' - 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-visibility: Public - x-codegen-request-body-name: payload - x-speakeasy-name-override: create - x-speakeasy-group: client.pins - /rest/api/v1/unpin: - post: - operationId: unpin - summary: Delete pin - description: Unpin a previously pinned result. - tags: - - Pins - security: - - APIToken: [] - parameters: - - $ref: '#/components/parameters/locale' - requestBody: - description: Details about the pin being unpinned. - content: - application/json: - schema: - $ref: '#/components/schemas/Unpin' - 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-visibility: Public - x-codegen-request-body-name: payload - x-speakeasy-name-override: remove - x-speakeasy-group: client.pins - /rest/api/v1/adminsearch: - post: - operationId: adminsearch - summary: Search the index (admin) - description: Retrieves results for search query without respect for permissions. This is available only to privileged users. - tags: - - Search - security: - - APIToken: [] - parameters: - - $ref: '#/components/parameters/locale' - requestBody: - description: Admin search request - content: - application/json: - schema: - $ref: '#/components/schemas/SearchRequest' - 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: + 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-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-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-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-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: + 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 + x-glean-deprecated: + id: 7eec0433-78fd-49f9-a34f-cca83640ec24 + 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" + 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 + x-glean-deprecated: + id: c164089c-9412-4724-acf6-caf3b0d2a527 + 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" + 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 + x-glean-deprecated: + id: 4f5df873-385e-4539-8183-cb764b0f06b9 + 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" + 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 replaces the existing 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://docs.glean.com/user-guide/knowledge/go-links/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 + /api/index/v1/debug/{datasource}/document/events: + post: + x-beta: true + summary: | + Beta: Get document lifecycle events + description: | + Retrieves lifecycle events for a specific document including upload time, index times and deletions. Rate limited to 1 request per minute per datasource. Currently in beta, might undergo breaking changes without prior notice. + 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/DebugDocumentLifecycleRequest" + required: true + x-exportParamName: DebugDocumentLifecycleRequest + responses: + "200": + description: OK + content: + application/json; charset=UTF-8: + schema: + $ref: "#/components/schemas/DebugDocumentLifecycleResponse" + "400": + description: Bad Request + "401": + description: Not Authorized + "429": + description: Too Many Requests + x-speakeasy-group: indexing.documents + x-speakeasy-name-override: debugEvents + /rest/api/index/document/{docId}/custom-metadata/{groupName}: + 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. + parameters: + - name: docId + in: path + description: Unique Glean identifier of the document + required: true schema: - $ref: '#/components/schemas/ErrorInfo' - "422": - description: Invalid Query - content: - application/json: + type: string + - name: groupName + in: path + description: Name of the metadata group as specified while adding schema + required: true schema: - $ref: '#/components/schemas/ErrorInfo' - "429": - description: Too Many Requests - x-visibility: Preview - x-codegen-request-body-name: payload - x-speakeasy-group: client.search - x-speakeasy-name-override: queryAsAdmin - /rest/api/v1/autocomplete: - post: - operationId: autocomplete - summary: Autocomplete - description: Retrieve query suggestions, operators and documents for the given partially typed query. - tags: - - Search - security: - - APIToken: [] - parameters: - - $ref: '#/components/parameters/locale' - requestBody: - description: Autocomplete request - content: - application/json: - schema: - $ref: '#/components/schemas/AutocompleteRequest' - 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-visibility: Public - x-codegen-request-body-name: payload - x-speakeasy-group: client.search - x-speakeasy-name-override: autocomplete - /rest/api/v1/feed: - post: - operationId: feed - summary: Feed of documents and events - description: The personalized feed/home includes different types of contents including suggestions, recents, calendar events and many more. - tags: - - Search - security: - - APIToken: [] - parameters: - - $ref: '#/components/parameters/locale' - requestBody: - description: Includes request params, client data and more for making user's feed. - content: - application/json: - schema: - $ref: '#/components/schemas/FeedRequest' - 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-visibility: Public - x-codegen-request-body-name: payload - x-speakeasy-name-override: retrieveFeed - x-speakeasy-group: client.search - /rest/api/v1/recommendations: - post: - operationId: recommendations - summary: Recommend documents - description: Retrieve recommended documents for the given URL or Glean Document ID. - tags: - - Search - security: - - APIToken: [] - parameters: - - $ref: '#/components/parameters/locale' - requestBody: - description: Recommendations request - content: - application/json: - schema: - $ref: '#/components/schemas/RecommendationsRequest' - 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-visibility: Preview - x-codegen-request-body-name: payload - x-speakeasy-group: client.search - x-speakeasy-name-override: recommendations - /rest/api/v1/search: - post: - operationId: search - summary: Search - description: Retrieve results from the index for the given query and filters. - tags: - - Search - security: - - APIToken: [] - parameters: - - $ref: '#/components/parameters/locale' - requestBody: - description: Search request - content: - application/json: - schema: - $ref: '#/components/schemas/SearchRequest' - 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-visibility: Public - x-codegen-request-body-name: payload - x-speakeasy-group: client.search - x-speakeasy-name-override: query - /rest/api/v1/listentities: - post: - operationId: listentities - 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. - tags: - - Entities - security: - - APIToken: [] - parameters: - - $ref: '#/components/parameters/locale' - requestBody: - description: List people request - content: - application/json: - schema: - $ref: '#/components/schemas/ListEntitiesRequest' - 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-visibility: Public - x-codegen-request-body-name: payload - x-speakeasy-group: client.entities - x-speakeasy-name-override: list - /rest/api/v1/people: - post: - operationId: people - summary: Read people - description: Read people details for the given IDs. - tags: - - Entities - security: - - APIToken: [] - parameters: - - $ref: '#/components/parameters/locale' - requestBody: - description: People request - content: - application/json: - schema: - $ref: '#/components/schemas/PeopleRequest' - 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-visibility: Public - x-codegen-request-body-name: payload - x-speakeasy-name-override: readPeople - x-speakeasy-group: client.entities - /rest/api/v1/people/{person_id}/photo: - get: - operationId: getPersonPhoto - summary: Get person photo - description: | - Returns the profile photo bytes for a person whose photo is stored in Glean (crawled from an identity source or user-uploaded via admin console). Photos hosted externally (e.g. Slack CDN) are not served by this endpoint; callers should follow the photoUrl from /people or /listentities directly. Responses include a Cache-Control header (max-age=3600) to reduce redundant fetches. - tags: - - Entities - security: - - APIToken: [] - parameters: - - name: person_id - in: path - description: The obfuscated ID of the person whose photo to retrieve. - required: true - schema: - type: string - - name: ds - in: query - description: | - Optional datasource override for crawled photos (e.g. AZURE, GDRIVE, OKTA). When omitted, the datasource is derived from the person's stored photo URL or the deployment's primary person datasource. - required: false - schema: - type: string - responses: - "200": - description: Photo bytes returned successfully. - headers: - Cache-Control: - description: Caching directive for the photo response. - schema: - type: string - example: public, max-age=3600 - content: - image/png: + type: string + put: + summary: Add or update custom metadata + description: Associates custom metadata with a specific document. Custom metadata enables you to enrich documents with additional structured information that can be used for search, filtering, and faceting. + tags: + - Custom Metadata + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/CustomMetadataPutRequest" + required: true + x-exportParamName: CustomMetadataPutRequest + responses: + "200": + $ref: "#/components/responses/SuccessResponse" + "400": + $ref: "#/components/responses/BadRequestError" + "401": + $ref: "#/components/responses/UnauthorizedError" + "404": + $ref: "#/components/responses/NotFoundError" + "429": + $ref: "#/components/responses/TooManyRequestsError" + "500": + $ref: "#/components/responses/InternalServerError" + x-speakeasy-name-override: upsert + x-speakeasy-group: indexing.customMetadata + delete: + summary: Remove custom metadata + description: Removes all custom metadata for the specified metadata group from a document. + tags: + - Custom Metadata + responses: + "200": + $ref: "#/components/responses/SuccessResponse" + "400": + $ref: "#/components/responses/BadRequestError" + "401": + $ref: "#/components/responses/UnauthorizedError" + "404": + $ref: "#/components/responses/NotFoundError" + "429": + $ref: "#/components/responses/TooManyRequestsError" + "500": + $ref: "#/components/responses/InternalServerError" + x-speakeasy-name-override: delete + x-speakeasy-group: indexing.customMetadata + /rest/api/index/custom-metadata/schema/{groupName}: + 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. + parameters: + - name: groupName + in: path + description: Name of the metadata group schema + required: true schema: type: string - format: binary - image/jpeg: - schema: - type: string - format: binary - "400": - description: Missing person_id parameter. - "401": - description: Not Authorized. - "404": - description: | - Person not found, person has no photo, or photo is not hosted by Glean (follow photoUrl from /people or /listentities directly). - "429": - description: Too Many Requests. - x-visibility: Public - x-speakeasy-name-override: retrievePersonPhoto - x-speakeasy-group: client.entities - /rest/api/v1/createshortcut: - post: - operationId: createshortcut - summary: Create shortcut - description: Create a user-generated shortcut that contains an alias and destination URL. - tags: - - Shortcuts - security: - - APIToken: [] - parameters: - - $ref: '#/components/parameters/locale' - requestBody: - description: CreateShortcut request - content: - application/json: - schema: - $ref: '#/components/schemas/CreateShortcutRequest' - 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-visibility: Public - x-codegen-request-body-name: payload - x-speakeasy-name-override: create - x-speakeasy-group: client.shortcuts - /rest/api/v1/deleteshortcut: - post: - operationId: deleteshortcut - summary: Delete shortcut - description: Delete an existing user-generated shortcut. - tags: - - Shortcuts - security: - - APIToken: [] - parameters: - - $ref: '#/components/parameters/locale' - requestBody: - description: DeleteShortcut request - content: - application/json: - schema: - $ref: '#/components/schemas/DeleteShortcutRequest' - required: true - x-exportParamName: Request - responses: - "200": - description: OK - "400": - description: Invalid request - "401": - description: Not Authorized - "429": - description: Too Many Requests - x-visibility: Public - x-codegen-request-body-name: payload - x-speakeasy-name-override: delete - x-speakeasy-group: client.shortcuts - /rest/api/v1/getshortcut: - post: - operationId: getshortcut - summary: Read shortcut - description: Read a particular shortcut's details given its ID. - tags: - - Shortcuts - security: - - APIToken: [] - parameters: - - $ref: '#/components/parameters/locale' - requestBody: - description: GetShortcut request - content: - application/json: - schema: - $ref: '#/components/schemas/GetShortcutRequest' - 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-visibility: Public - x-codegen-request-body-name: payload - x-speakeasy-group: client.shortcuts - x-speakeasy-name-override: retrieve - /rest/api/v1/listshortcuts: - post: - operationId: listshortcuts - summary: List shortcuts - description: List shortcuts editable/owned by the currently authenticated user. - tags: - - Shortcuts - security: - - APIToken: [] - parameters: - - $ref: '#/components/parameters/locale' - requestBody: - description: Filters, sorters, paging params required for pagination - content: - application/json: - schema: - $ref: '#/components/schemas/ListShortcutsPaginatedRequest' - 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-visibility: Public - x-codegen-request-body-name: payload - x-speakeasy-group: client.shortcuts - x-speakeasy-name-override: list - /rest/api/v1/updateshortcut: - post: - operationId: updateshortcut - summary: Update shortcut - description: Updates the shortcut with the given ID. - tags: - - Shortcuts - security: - - APIToken: [] - parameters: - - $ref: '#/components/parameters/locale' - requestBody: - description: Shortcut content. Id need to be specified for the shortcut. - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateShortcutRequest' - 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-visibility: Public - x-codegen-request-body-name: payload - x-speakeasy-group: client.shortcuts - x-speakeasy-name-override: update - /rest/api/v1/summarize: - post: - operationId: summarize - summary: Summarize documents - description: Generate an AI summary of the requested documents. - tags: - - Summarize - security: - - APIToken: [] - parameters: - - $ref: '#/components/parameters/locale' - requestBody: - description: Includes request params such as the query and specs of the documents to summarize. - content: - application/json: - schema: - $ref: '#/components/schemas/SummarizeRequest' - 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-visibility: Public - x-codegen-request-body-name: payload - x-speakeasy-name-override: summarize - x-speakeasy-group: client.documents - /rest/api/v1/addverificationreminder: - post: - operationId: addverificationreminder - summary: Create verification - description: Creates a verification reminder for the document. Users can create verification reminders from different product surfaces. - tags: - - Verification - security: - - APIToken: [] - parameters: - - $ref: '#/components/parameters/locale' - requestBody: - description: Details about the reminder. - content: - application/json: - schema: - $ref: '#/components/schemas/ReminderRequest' - 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-visibility: Public - x-codegen-request-body-name: payload - x-speakeasy-name-override: addReminder - x-speakeasy-group: client.verification - /rest/api/v1/listverifications: - post: - operationId: listverifications - summary: List verifications - description: Returns the information to be rendered in verification dashboard. Includes information for each document owned by user regarding their verifications. - tags: - - Verification - security: - - APIToken: [] - parameters: - - name: count - in: query - 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-visibility: Public - x-codegen-request-body-name: payload - x-speakeasy-name-override: list - x-speakeasy-group: client.verification - /rest/api/v1/verify: - post: - operationId: verify - summary: Update verification - description: Verify documents to keep the knowledge up to date within customer corpus. - tags: - - Verification - security: - - APIToken: [] - parameters: - - $ref: '#/components/parameters/locale' - requestBody: - description: Details about the verification request. - content: - application/json: - schema: - $ref: '#/components/schemas/VerifyRequest' - 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-visibility: Public - x-codegen-request-body-name: payload - 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. - tags: - - Tools - - Tools - security: - - APIToken: [] - parameters: - - name: toolNames - in: query - description: Optional array of tool names to filter by - required: false - style: form - explode: false - schema: - type: array - items: - type: string - 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 - x-visibility: Preview - 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 - tags: - - Tools - - Tools - security: - - APIToken: [] - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ToolsCallRequest' - required: true - 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 - x-visibility: Preview - x-speakeasy-name-override: run - x-speakeasy-group: client.tools - /rest/api/v1/actions/actionpack/{actionPackId}/auth: - get: - operationId: getActionPackAuthStatus - summary: Get end-user authentication status for an action pack. - description: | - Reports whether the calling user is already authenticated against the third-party - tool backing the specified action pack. Intended for headless / server-driven clients - that render an "Authorize" prompt when the user has not yet consented to the tool. - tags: - - Tools - security: - - APIToken: [] - responses: - "200": - description: Successful operation - content: - application/json: - schema: - $ref: '#/components/schemas/ActionPackAuthStatusResponse' - "400": - description: Bad Request - "401": - description: Unauthorized - "404": - description: Action pack not found - "429": - description: Too Many Requests - x-visibility: Preview - x-speakeasy-name-override: retrieveActionPackAuthStatus - x-speakeasy-group: client.tools - post: - operationId: authorizeActionPack - summary: Start the OAuth authorization flow for an action pack. - description: | - Starts the third-party OAuth flow for the specified action pack and returns the - redirect URL that the client should navigate the end user to. After the OAuth - callback completes, the user's browser is redirected back to `returnUrl` with a - status query parameter (`?glean_action_auth=success|error&actionPackId=...`). - - `returnUrl` must match the tenant's configured return URL allowlist; otherwise the - request is rejected with 400. - tags: - - Tools - security: - - APIToken: [] - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/AuthorizeActionPackRequest' - required: true - responses: - "200": - description: Successful operation - content: - application/json: - schema: - $ref: '#/components/schemas/AuthorizeActionPackResponse' - "400": - description: Invalid request (e.g. returnUrl not in allowlist, unsupported auth type) - "401": - description: Unauthorized - "403": - description: User not entitled to the action pack - "404": - description: Action pack not found - "429": - description: Too Many Requests - x-visibility: Preview - x-speakeasy-name-override: authorizeActionPack - x-speakeasy-group: client.tools - parameters: - - name: actionPackId - in: path - description: ID of the action pack to query or authorize. - required: true - schema: - type: string - /rest/api/v1/tool-servers/{serverId}/auth: - get: - operationId: getToolServerAuthStatus - summary: Get end-user authentication status for a tool server. - description: | - Returns display information and the calling user's current authentication status - for the specified tool server. - tags: - - Tools - security: - - APIToken: [] - responses: - "200": - description: Successful operation - content: - application/json: - schema: - $ref: '#/components/schemas/ToolServerAuthStatusResponse' - "400": - description: Bad Request - "401": - description: Unauthorized - "404": - description: Tool server not found - "429": - description: Too Many Requests - x-visibility: Preview - x-glean-experimental: - id: 52fde6ec-c18b-4de6-b761-f82008542ae7 - introduced: "2026-07-02" - x-speakeasy-name-override: retrieveToolServerAuthStatus - x-speakeasy-group: client.tools - post: - operationId: authorizeToolServer - summary: Start the OAuth authorization flow for a tool server. - description: | - Initiates the third-party OAuth flow for the specified tool server and returns the - authorization URL that the client should navigate the end user to. After the OAuth - callback completes, the user's browser is redirected back to `returnUrl` with query - parameters indicating the result. - - `returnUrl` must match the tenant's configured return URL allowlist; otherwise the - request is rejected with 400. - tags: - - Tools - security: - - APIToken: [] - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/AuthorizeToolServerRequest' - required: true - responses: - "200": - description: Successful operation - content: - application/json: - schema: - $ref: '#/components/schemas/AuthorizeToolServerResponse' - "400": - description: Invalid request (e.g. returnUrl not in allowlist, unsupported auth type) - "401": - description: Unauthorized - "403": - description: User not entitled to the tool server - "404": - description: Tool server not found - "429": - description: Too Many Requests - x-visibility: Preview - x-glean-experimental: - id: 1935476e-ecaf-4c1f-a9fd-1e768cf68f30 - introduced: "2026-07-02" - x-speakeasy-name-override: authorizeToolServer - x-speakeasy-group: client.tools - parameters: - - name: serverId - in: path - description: Unique identifier of the tool server. - required: true - schema: - type: string - /api/index/v1/indexdocument: - post: - summary: Index document - description: Adds a document to the index or updates an existing document. - tags: - - Documents - security: - - APIToken: [] - 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 - security: - - APIToken: [] - 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 - security: - - APIToken: [] - 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 - security: - - APIToken: [] - 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. - - For more frequent document processing, contact Glean support. - tags: - - Documents - security: - - APIToken: [] - 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 - security: - - APIToken: [] - 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 - security: - - APIToken: [] - 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 - security: - - APIToken: [] - 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 - security: - - APIToken: [] - 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 - security: - - APIToken: [] - 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 - security: - - APIToken: [] - 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 - security: - - APIToken: [] - 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 - security: - - APIToken: [] - 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 - security: - - APIToken: [] - 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 - security: - - APIToken: [] - 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 - security: - - APIToken: [] - 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. - - Tip: Refer to the [Troubleshooting tutorial](https://developers.glean.com/indexing/debugging/datasource-config) for more information. - tags: - - Troubleshooting - security: - - APIToken: [] - 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 - security: - - APIToken: [] - 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 - security: - - APIToken: [] - 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 - security: - - APIToken: [] - parameters: - - name: datasource - in: path - description: The datasource to which the user belongs - required: true - schema: + get: + summary: Retrieve metadata schema + description: Retrieves the current schema definition for a metadata group. + tags: + - Custom Metadata + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/CustomMetadataSchema" + "401": + $ref: "#/components/responses/UnauthorizedError" + "404": + $ref: "#/components/responses/NotFoundError" + "429": + $ref: "#/components/responses/TooManyRequestsError" + "500": + $ref: "#/components/responses/InternalServerError" + x-speakeasy-name-override: getSchema + x-speakeasy-group: indexing.customMetadata + put: + summary: Create or update metadata schema + description: Defines or updates the schema for a metadata group. Schemas should be defined before indexing metadata. + tags: + - Custom Metadata + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/CustomMetadataSchema" + required: true + x-exportParamName: CustomMetadataSchema + responses: + "200": + $ref: "#/components/responses/SuccessResponse" + "400": + $ref: "#/components/responses/BadRequestError" + "401": + $ref: "#/components/responses/UnauthorizedError" + "409": + description: Conflict - Schema already exists with incompatible changes + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorInfoResponse" + "429": + $ref: "#/components/responses/TooManyRequestsError" + "500": + $ref: "#/components/responses/InternalServerError" + x-speakeasy-name-override: upsertSchema + x-speakeasy-group: indexing.customMetadata + delete: + summary: Remove metadata schema + description: Deletes the schema definition for a metadata group. This does not delete existing metadata values on documents. + tags: + - Custom Metadata + responses: + "200": + $ref: "#/components/responses/SuccessResponse" + "400": + $ref: "#/components/responses/BadRequestError" + "401": + $ref: "#/components/responses/UnauthorizedError" + "404": + $ref: "#/components/responses/NotFoundError" + "429": + $ref: "#/components/responses/TooManyRequestsError" + "500": + $ref: "#/components/responses/InternalServerError" + x-speakeasy-name-override: deleteSchema + x-speakeasy-group: indexing.customMetadata + /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 + x-speakeasy-group: client.governance.data.findings + x-speakeasy-name-override: create + 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 + x-speakeasy-group: client.governance.data.findings + x-speakeasy-name-override: list + /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 + x-speakeasy-group: client.governance.data.findings + x-speakeasy-name-override: download + 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 + x-speakeasy-group: client.governance.data.findings + x-speakeasy-name-override: delete + /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" + x-speakeasy-group: client.datasources + x-speakeasy-name-override: retrieveConfiguration + 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" + x-speakeasy-group: client.datasources + x-speakeasy-name-override: updateConfiguration + /rest/api/v1/datasource/{datasourceInstanceId}/credentialstatus: + get: + description: | + Returns the current credential status for a datasource instance. Access is limited to callers with the ADMIN scope; the handler enforces this check. + summary: Get datasource instance credential status + operationId: getDatasourceCredentialStatus + x-visibility: Preview + tags: + - Datasources + parameters: + - $ref: "#/components/parameters/datasourceInstanceId" + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/DatasourceCredentialStatusResponse" + "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" + x-speakeasy-group: client.datasources + x-speakeasy-name-override: retrieveCredentialStatus + /rest/api/v1/datasource/{datasourceInstanceId}/credentials: + post: + description: | + Rotates the credentials that a datasource instance uses to connect to its upstream system. Replaces the active credential material with the supplied values and returns the credential status after rotation. Access is limited to callers with the ADMIN scope; the handler enforces this check. + Only keys recognized as credential material for the datasource type may be set in `credentials.values` (e.g. `clientSecret`, `apiToken`, `privateKey`, depending on the configured auth method). Unrecognized keys, or keys that correspond to non-credential configuration, cause a 400; other instance configuration must be updated via PATCH /configure/datasources/{datasourceId}/instances/{instanceId}. + summary: Rotate datasource instance credentials + operationId: rotateDatasourceCredentials + x-visibility: Preview + tags: + - Datasources + parameters: + - $ref: "#/components/parameters/datasourceInstanceId" + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/RotateDatasourceCredentialsRequest" + required: true + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/DatasourceCredentialStatusResponse" + "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" + x-speakeasy-group: client.datasources + x-speakeasy-name-override: rotateCredentials + /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 + description: >- + HTTP bearer token. Accepts a Glean-issued API token, an OAuth access token from the Glean OAuth Authorization Server (including Dynamic Client Registration clients), or an OAuth access token issued by an external identity provider. External-IdP OAuth tokens must also include the `X-Glean-Auth-Type: OAUTH` request header. OAuth is supported on the Client API only; the Indexing API requires a Glean-issued token. + schemas: + PlatformAgentsSearchRequest: + type: object + additionalProperties: false + properties: + name: + type: string + description: Case-insensitive substring to match against agent names. If omitted or empty, no name filter is applied. + example: HR Policy Agent + PlatformAgentCapabilities: + type: object + additionalProperties: true + properties: + ap.io.messages: + type: boolean + description: Whether the agent supports messages as input. + ap.io.streaming: + type: boolean + description: Whether the agent supports streaming output. + PlatformAgent: + type: object + required: + - agent_id + - name + - capabilities + properties: + agent_id: + type: string + description: ID of the agent. + example: mho4lwzylcozgoc2 + name: + type: string + description: Name of the agent. + example: HR Policy Agent + description: + type: string + description: Description of the agent. + metadata: + type: object + description: Agent metadata. + additionalProperties: true + capabilities: + $ref: "#/components/schemas/PlatformAgentCapabilities" + PlatformAgentsSearchResponse: + type: object + required: + - agents + - request_id + properties: + agents: + type: array + description: Agents matching the search request. + items: + $ref: "#/components/schemas/PlatformAgent" + request_id: + type: string + description: Platform-generated request ID for support correlation. + PlatformProblemDetailCode: 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 - security: - - APIToken: [] - 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: Use [/debug/{datasource}/document](https://developers.glean.com/indexing/debugging/datasource-document) for richer information. - tags: - - Troubleshooting - security: - - APIToken: [] - 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-glean-deprecated: - id: 7eec0433-78fd-49f9-a34f-cca83640ec24 - 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" - 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}/status](https://developers.glean.com/indexing/debugging/datasource-status) for richer information. - tags: - - Troubleshooting - security: - - APIToken: [] - 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-glean-deprecated: - id: c164089c-9412-4724-acf6-caf3b0d2a527 - 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" - 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 - security: - - APIToken: [] - 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-glean-deprecated: - id: 4f5df873-385e-4539-8183-cb764b0f06b9 - 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" - 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 - security: - - APIToken: [] - 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 - security: - - APIToken: [] - 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 - security: - - APIToken: [] - 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 - security: - - APIToken: [] - 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 replaces the existing information about an employee. - tags: - - People - security: - - APIToken: [] - 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 - security: - - APIToken: [] - 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 - deprecated: true - 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" - 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 - security: - - APIToken: [] - 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 - security: - - APIToken: [] - 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 - security: - - APIToken: [] - 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 - security: - - APIToken: [] - 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 - security: - - APIToken: [] - 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://docs.glean.com/user-guide/knowledge/go-links/how-go-links-work) page. - tags: - - Shortcuts - security: - - APIToken: [] - 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 - security: - - APIToken: [] - 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 - /api/index/v1/debug/{datasource}/document/events: - post: - summary: | - Beta: Get document lifecycle events - description: | - Retrieves lifecycle events for a specific document including upload time, index times and deletions. Rate limited to 1 request per minute per datasource. Currently in beta, might undergo breaking changes without prior notice. - tags: - - Troubleshooting - security: - - APIToken: [] - parameters: - - name: datasource - in: path - description: The datasource to which the document belongs - required: true - schema: + description: Stable machine-readable error code. + enum: + - invalid_request + - missing_required_field + - invalid_parameter + - invalid_cursor + - expired_cursor + - invalid_filter + - invalid_datasource + - authentication_required + - token_expired + - insufficient_permissions + - resource_not_found + - method_not_allowed + - request_timeout + - request_too_large + - conflict + - gone + - unprocessable_query + - rate_limit_exceeded + - internal_error + - service_unavailable + x-glean-problem-detail-codes: + invalid_request: + status: 400 + title: Invalid Request + missing_required_field: + status: 400 + title: Missing Required Field + invalid_parameter: + status: 400 + title: Invalid Parameter + invalid_cursor: + status: 400 + title: Invalid Pagination Cursor + expired_cursor: + status: 400 + title: Expired Pagination Cursor + invalid_filter: + status: 400 + title: Invalid Filter + invalid_datasource: + status: 400 + title: Invalid Datasource + authentication_required: + status: 401 + title: Authentication Required + token_expired: + status: 401 + title: Token Expired + insufficient_permissions: + status: 403 + title: Insufficient Permissions + resource_not_found: + status: 404 + title: Resource Not Found + method_not_allowed: + status: 405 + title: Method Not Allowed + request_timeout: + status: 408 + title: Request Timeout + request_too_large: + status: 413 + title: Request Too Large + conflict: + status: 409 + title: Conflict + gone: + status: 410 + title: Gone + unprocessable_query: + status: 422 + title: Unprocessable Query + rate_limit_exceeded: + status: 429 + title: Rate Limit Exceeded + internal_error: + status: 500 + title: Internal Error + service_unavailable: + status: 503 + title: Service Unavailable + example: invalid_cursor + PlatformProblemDetailError: + type: object + required: + - pointer + - detail + description: Field-level validation problem for a single offending field. + properties: + pointer: + type: string + description: RFC 6901 JSON Pointer to the offending field. + example: /messages/0/role + detail: + type: string + description: Human-readable explanation for this field. + example: "Must be one of: USER, GLEAN_AI." + code: + $ref: "#/components/schemas/PlatformProblemDetailCode" + PlatformProblemDetail: + type: object + required: + - type + - title + - status + - detail + - code + - request_id + description: | + Error response following RFC 9457, extended with `code` and `documentation_url` for machine-readable classification and self-service remediation. + properties: + type: + type: string + format: uri + description: URI identifying the error type. + example: https://developers.glean.com/errors/invalid-cursor + title: + type: string + description: Short, human-readable summary of the error. + example: Invalid Pagination Cursor + status: + type: integer + description: HTTP status code mirrored from the response. + example: 400 + detail: + type: string + description: Human-readable explanation specific to this occurrence. + example: | + The provided cursor has expired. Start a new search to get a fresh cursor. + code: + $ref: "#/components/schemas/PlatformProblemDetailCode" + documentation_url: + type: string + format: uri + description: Direct URL to documentation for this error code. + example: https://developers.glean.com/errors/invalid-cursor + request_id: + type: string + description: Platform-generated request ID for support correlation. + example: req_7f8a9b0c1d2e + errors: + type: array + description: Field-level validation problems, one entry per offending field. + items: + $ref: "#/components/schemas/PlatformProblemDetailError" + PlatformAgentGetResponse: + type: object + required: + - agent + - request_id + properties: + agent: + $ref: "#/components/schemas/PlatformAgent" + request_id: + type: string + description: Platform-generated request ID for support correlation. + PlatformActionSummary: + type: object + required: + - tool_id + - display_name + properties: + tool_id: + type: string + description: Unique identifier of the action. + display_name: + type: string + description: Display name of the action. + type: + type: string + description: Tool type. + auth_type: + type: string + description: Authentication type required by the action. + write_action_type: + type: string + description: Write-action execution type. + is_setup_finished: + type: boolean + description: Whether this action has been fully configured. + data_source: + type: string + description: Kind of knowledge the action accesses or modifies. + PlatformAgentSchemasResponse: + type: object + required: + - agent_id + - input_schema + - output_schema + - request_id + properties: + agent_id: + type: string + description: ID of the agent. + name: + type: string + description: Name of the agent. + input_schema: + type: object + description: Agent input schema in JSON Schema format. + additionalProperties: true + output_schema: + type: object + description: Agent output schema in JSON Schema format. + additionalProperties: true + tools: + type: array + description: Tools that the agent can invoke, when requested. + items: + $ref: "#/components/schemas/PlatformActionSummary" + request_id: + type: string + description: Platform-generated request ID for support correlation. + PlatformMessageRole: type: string - requestBody: - content: - application/json; charset=UTF-8: - schema: - $ref: '#/components/schemas/DebugDocumentLifecycleRequest' - required: true - x-exportParamName: DebugDocumentLifecycleRequest - responses: - "200": - description: OK - content: - application/json; charset=UTF-8: - schema: - $ref: '#/components/schemas/DebugDocumentLifecycleResponse' - "400": - description: Bad Request - "401": - description: Not Authorized - "429": - description: Too Many Requests - x-beta: true - x-speakeasy-group: indexing.documents - x-speakeasy-name-override: debugEvents - /rest/api/index/document/{docId}/custom-metadata/{groupName}: - put: - summary: Add or update custom metadata - description: Associates custom metadata with a specific document. Custom metadata enables you to enrich documents with additional structured information that can be used for search, filtering, and faceting. - tags: - - Custom Metadata - security: - - APIToken: [] - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/CustomMetadataPutRequest' - required: true - x-exportParamName: CustomMetadataPutRequest - responses: - "200": - $ref: '#/components/responses/SuccessResponse' - "400": - $ref: '#/components/responses/BadRequestError' - "401": - $ref: '#/components/responses/UnauthorizedError' - "404": - $ref: '#/components/responses/NotFoundError' - "429": - $ref: '#/components/responses/TooManyRequestsError' - "500": - $ref: '#/components/responses/InternalServerError' - x-speakeasy-name-override: upsert - x-speakeasy-group: indexing.customMetadata - delete: - summary: Remove custom metadata - description: Removes all custom metadata for the specified metadata group from a document. - tags: - - Custom Metadata - security: - - APIToken: [] - responses: - "200": - $ref: '#/components/responses/SuccessResponse' - "400": - $ref: '#/components/responses/BadRequestError' - "401": - $ref: '#/components/responses/UnauthorizedError' - "404": - $ref: '#/components/responses/NotFoundError' - "429": - $ref: '#/components/responses/TooManyRequestsError' - "500": - $ref: '#/components/responses/InternalServerError' - x-speakeasy-name-override: delete - x-speakeasy-group: indexing.customMetadata - 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. - parameters: - - name: docId - in: path - description: Unique Glean identifier of the document - required: true - schema: - type: string - - name: groupName - in: path - description: Name of the metadata group as specified while adding schema - required: true - schema: - type: string - /rest/api/index/custom-metadata/schema/{groupName}: - get: - summary: Retrieve metadata schema - description: Retrieves the current schema definition for a metadata group. - tags: - - Custom Metadata - security: - - APIToken: [] - responses: - "200": - description: OK - content: - application/json: - schema: - $ref: '#/components/schemas/CustomMetadataSchema' - "401": - $ref: '#/components/responses/UnauthorizedError' - "404": - $ref: '#/components/responses/NotFoundError' - "429": - $ref: '#/components/responses/TooManyRequestsError' - "500": - $ref: '#/components/responses/InternalServerError' - x-speakeasy-name-override: getSchema - x-speakeasy-group: indexing.customMetadata - put: - summary: Create or update metadata schema - description: Defines or updates the schema for a metadata group. Schemas should be defined before indexing metadata. - tags: - - Custom Metadata - security: - - APIToken: [] - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/CustomMetadataSchema' - required: true - x-exportParamName: CustomMetadataSchema - responses: - "200": - $ref: '#/components/responses/SuccessResponse' - "400": - $ref: '#/components/responses/BadRequestError' - "401": - $ref: '#/components/responses/UnauthorizedError' - "409": - description: Conflict - Schema already exists with incompatible changes - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorInfoResponse' - "429": - $ref: '#/components/responses/TooManyRequestsError' - "500": - $ref: '#/components/responses/InternalServerError' - x-speakeasy-name-override: upsertSchema - x-speakeasy-group: indexing.customMetadata - delete: - summary: Remove metadata schema - description: Deletes the schema definition for a metadata group. This does not delete existing metadata values on documents. - tags: - - Custom Metadata - security: - - APIToken: [] - responses: - "200": - $ref: '#/components/responses/SuccessResponse' - "400": - $ref: '#/components/responses/BadRequestError' - "401": - $ref: '#/components/responses/UnauthorizedError' - "404": - $ref: '#/components/responses/NotFoundError' - "429": - $ref: '#/components/responses/TooManyRequestsError' - "500": - $ref: '#/components/responses/InternalServerError' - x-speakeasy-name-override: deleteSchema - x-speakeasy-group: indexing.customMetadata - 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. - parameters: - - name: groupName - in: path - description: Name of the metadata group schema - required: true - schema: - type: string - /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 - security: - - APIToken: [] - parameters: - - name: id - in: path - description: The id of the policy to fetch. - required: true - schema: + description: Role of the message author. + example: USER + enum: + - USER + - GLEAN_AI + PlatformContentType: 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 - security: - - APIToken: [] - parameters: - - name: id - in: path - description: The id of the policy to fetch. - required: true - schema: + enum: + - text + PlatformMessageTextBlock: + type: object + required: + - text + - type + properties: + text: + type: string + description: Text content. + type: + $ref: "#/components/schemas/PlatformContentType" + PlatformMessage: + type: object + required: + - role + - content + properties: + role: + $ref: "#/components/schemas/PlatformMessageRole" + content: + type: array + minItems: 1 + description: Content blocks in the message. + items: + $ref: "#/components/schemas/PlatformMessageTextBlock" + PlatformAgentRunCreateRequest: + type: object + additionalProperties: false + description: | + Request to run an agent. A request MUST supply either `messages` (a non-empty conversation) or `input` (for input-form triggered agents). + properties: + input: + type: object + description: Input fields for an input-form triggered agent. + additionalProperties: true + messages: + type: array + minItems: 1 + description: | + Messages to pass to the agent. When provided, the array MUST contain at least one message and each message MUST specify a valid `role` and non-empty `content`. + items: + $ref: "#/components/schemas/PlatformMessage" + metadata: + type: object + description: Metadata to pass to the agent. + additionalProperties: true + stream: + type: boolean + description: Whether to stream the run response as server-sent events. + default: false + PlatformAgentRunCreate: + type: object + required: + - agent_id + properties: + agent_id: + type: string + description: ID of the agent being run. + input: + type: object + description: Input fields for an input-form triggered agent. + additionalProperties: true + messages: + type: array + description: Messages passed to the agent. + items: + $ref: "#/components/schemas/PlatformMessage" + metadata: + type: object + description: Metadata passed to the agent. + additionalProperties: true + PlatformAgentExecutionStatus: 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 - security: - - APIToken: [] - 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: Status of the agent run. + enum: + - error + - success + PlatformAgentRun: + allOf: + - $ref: "#/components/schemas/PlatformAgentRunCreate" + - type: object + required: + - status + properties: + status: + $ref: "#/components/schemas/PlatformAgentExecutionStatus" + PlatformAgentRunWaitResponse: + type: object + required: + - request_id + properties: + run: + $ref: "#/components/schemas/PlatformAgentRun" + messages: + type: array + description: Messages returned by the completed run. + items: + $ref: "#/components/schemas/PlatformMessage" + request_id: + type: string + description: Platform-generated request ID for support correlation. + PlatformSkillStatus: 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 - security: - - APIToken: [] - 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 - security: - - APIToken: [] - parameters: - - name: id - in: path - description: The id of the policy to download violations for. - required: true - schema: + enum: + - DRAFT + - ENABLED + - DISABLED + description: Current skill status. + PlatformSkillOrigin: 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 - security: - - APIToken: [] - 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 - security: - - APIToken: [] - parameters: - - name: id - in: path - description: The id of the report to download violations for. - required: true - schema: + enum: + - CUSTOM + description: Source category for the skill. + PlatformSkillSyncStatus: 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 - security: - - APIToken: [] - parameters: - - name: id - in: path - description: The id of the report to get run status for. - required: true - schema: + enum: + - UP_TO_DATE + - UPDATE_AVAILABLE + - SYNC_FAILED + description: Current external-source sync status. + PlatformSkillSourceProvenance: + type: object + properties: + source_url: + type: string + description: URL of the external source the skill was imported from. + commit_sha: + type: string + description: Source commit SHA for the imported skill. + imported_at: + type: string + format: date-time + description: Time the skill was imported. + last_synced_at: + type: string + format: date-time + description: Time the skill was last synced from its source. + sync_status: + $ref: "#/components/schemas/PlatformSkillSyncStatus" + sync_error: + type: string + description: Human-readable sync failure reason, present only when sync_status is SYNC_FAILED. + PlatformPersonReference: + type: object + description: A lightweight reference to a person, used where a payload merely points at someone. + required: + - name + properties: + id: + type: string + description: Opaque Glean person ID. + name: + type: string + description: Display name. + PlatformSkill: + type: object + required: + - id + - display_name + - description + - latest_version + - latest_minor_version + - status + - origin + - owner + - created_at + - updated_at + properties: + id: + type: string + description: Glean skill ID. + display_name: + type: string + description: Human-readable skill name. + description: + type: string + description: Human-readable skill description. + latest_version: + type: integer + description: Latest major version number for the skill. + latest_minor_version: + type: integer + description: Latest minor version number for the skill. + status: + $ref: "#/components/schemas/PlatformSkillStatus" + origin: + $ref: "#/components/schemas/PlatformSkillOrigin" + source_provenance: + $ref: "#/components/schemas/PlatformSkillSourceProvenance" + owner: + $ref: "#/components/schemas/PlatformPersonReference" + created_at: + type: string + format: date-time + description: Time the skill was created. + updated_at: + type: string + format: date-time + description: Time the skill was last updated. + PlatformSkillsListResponse: + type: object + required: + - skills + - has_more + - next_cursor + - request_id + properties: + skills: + type: array + description: Skills available to the user. + items: + $ref: "#/components/schemas/PlatformSkill" + has_more: + type: boolean + description: Whether additional results are available. + next_cursor: + type: string + nullable: true + description: Cursor for the next page, or null when no more results are available. + request_id: + type: string + description: Platform-generated request ID for support correlation. + PlatformSkillGetResponse: + type: object + required: + - skill + - request_id + properties: + skill: + $ref: "#/components/schemas/PlatformSkill" + request_id: + type: string + description: Platform-generated request ID for support correlation. + PlatformFilterOperator: 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 - security: - - APIToken: [] - 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-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 - security: - - APIToken: [] - 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 - security: - - APIToken: [] - 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 - x-speakeasy-group: client.governance.data.findings - x-speakeasy-name-override: create - get: - operationId: listfindingsexports - summary: Lists findings exports - description: Lists all DLP findings exports. - tags: - - Governance - security: - - APIToken: [] - responses: - "200": - description: OK - content: - application/json: - schema: - $ref: '#/components/schemas/ListDlpFindingsExportsResponse' - "403": - description: Permissions error - "500": - description: Internal error - x-visibility: Public - x-speakeasy-group: client.governance.data.findings - x-speakeasy-name-override: list - /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 - security: - - APIToken: [] - parameters: - - name: id - in: path - description: The ID of the export to download. - required: true - schema: + description: Supported filter operator. + enum: + - EQUALS + - NOT_EQUALS + - GT + - GTE + - LT + - LTE + PlatformFilter: + type: object + required: + - field + - values + description: | + A single filter criterion. For `EQUALS`, multiple values within a filter are OR'd. For `NOT_EQUALS`, multiple values exclude all listed values. Filters are AND'd with each other and with any inline query operators. + properties: + field: + type: string + description: | + The field to filter on. Accepts built-in filter field names such as `type`, `owner`, `from`, `author`, `channel`, `status`, `assignee`, `reporter`, `component`, `mentions`, and `collection`, plus custom datasource property names. + example: type + values: + type: array + minItems: 1 + items: + type: string + description: One or more values to match. + example: + - spreadsheet + - presentation + operator: + allOf: + - $ref: "#/components/schemas/PlatformFilterOperator" + description: | + Comparison operator to apply to this filter. Defaults to `EQUALS`. `GT`, `GTE`, `LT`, and `LTE` range operators require exactly one value; express bounded ranges with multiple filters on the same field. + PlatformTimeRange: + type: object + description: Filter results to those last updated within this range. + properties: + start: + type: string + format: date-time + description: Inclusive lower bound in ISO 8601 format. + end: + type: string + format: date-time + description: Exclusive upper bound in ISO 8601 format. + PlatformSearchRequest: + type: object + additionalProperties: false + required: + - query + example: + query: quarterly planning 2026 + datasources: + - confluence + - google_drive + filters: + - field: type + values: + - spreadsheet + - presentation + properties: + query: + type: string + description: | + The search query string. Supports inline operators such as `from:jane type:document app:confluence`. Inline operators are AND'd with structured `filters`. + page_size: + type: integer + minimum: 1 + maximum: 100 + default: 10 + description: Number of results to return per page. + cursor: + type: string + nullable: true + description: | + Opaque pagination token from a previous response's `next_cursor` field. Omit on the first request. + datasources: + type: array + items: + type: string + description: | + Restrict results to specific datasources. Requests must not specify both `datasources` and `datasource_instances`. + datasource_instances: + type: array + items: + type: string + description: | + Restrict results to specific datasource instances. Values are datasource instance identifiers returned by `GET /api/search/filters`. Requests must not specify both `datasources` and `datasource_instances`. + filters: + type: array + items: + $ref: "#/components/schemas/PlatformFilter" + description: | + Structured filters applied to search results. Equality operators OR multiple values within a filter. Multiple filters are AND'd together, including range filters on the same field. Filters are AND'd with any inline operators in `query`. Note that conflicting constraints on the same field (e.g., `type:document` in the query and `type: spreadsheet` in a filter) produce an empty result set. + time_range: + $ref: "#/components/schemas/PlatformTimeRange" + PlatformResult: + type: object + required: + - url + - title + - datasource + properties: + url: + type: string + format: uri + description: Canonical URL of the result. + example: https://company.atlassian.net/wiki/spaces/ENG/pages/12345 + title: + type: string + description: Result title. + example: Q2 2026 Platform Roadmap + snippets: + type: array + items: + type: string + description: Query-relevant plain-text excerpts from the result body. + example: + - The platform team will focus on API stability and... + datasource: + type: string + description: The datasource this result originates from. + example: confluence + datasource_instance: + type: string + nullable: true + description: The datasource instance this result originates from, if known. + example: confluence_acme + document_type: + type: string + nullable: true + description: The document type within the datasource. + example: page + creator: + $ref: "#/components/schemas/PlatformPersonReference" + owner: + $ref: "#/components/schemas/PlatformPersonReference" + updated_at: + type: string + format: date-time + nullable: true + description: When the result was last modified. + created_at: + type: string + format: date-time + nullable: true + description: When the result was created. + PlatformSearchResponse: + type: object + required: + - results + - has_more + - next_cursor + - request_id + properties: + results: + type: array + items: + $ref: "#/components/schemas/PlatformResult" + description: Ordered list of search results. + has_more: + type: boolean + description: Indicates whether additional pages of results are available. + next_cursor: + type: string + nullable: true + description: Opaque token to pass as `cursor` in the next request. + request_id: + type: string + description: Platform-generated request ID for support correlation. + 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: + - AGENT_CANVAS_FAILED + - AGENT_CLARIFYING_QUESTIONS + - AGENT_INTERMEDIATE_STEPS_FAILED + - AGENT_TOOL_CALL_FAILED + - 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 + - ANSWERS + - ARTIFACTS + - 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 - 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 - x-speakeasy-group: client.governance.data.findings - x-speakeasy-name-override: download - delete: - operationId: deletefindingsexport - summary: Deletes findings export - description: Deletes a DLP findings export. - tags: - - Governance - security: - - APIToken: [] - 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 - x-speakeasy-group: client.governance.data.findings - x-speakeasy-name-override: delete - /rest/api/v1/configure/datasources/{datasourceId}/instances/{instanceId}: - get: - operationId: getDatasourceInstanceConfiguration - summary: Get datasource instance configuration - description: | - Gets the greenlisted configuration values for a datasource instance. Returns only configuration keys that are exposed via the public API greenlist. - tags: - - Datasources - security: - - APIToken: [] - 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' - x-visibility: Preview - x-speakeasy-group: client.datasources - x-speakeasy-name-override: retrieveConfiguration - patch: - operationId: updateDatasourceInstanceConfiguration - summary: Update datasource instance configuration - 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. - tags: - - Datasources - security: - - APIToken: [] - 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' - x-visibility: Preview - x-speakeasy-group: client.datasources - x-speakeasy-name-override: updateConfiguration - /rest/api/v1/datasource/{datasourceInstanceId}/credentialstatus: - get: - operationId: getDatasourceCredentialStatus - summary: Get datasource instance credential status - description: | - Returns the current credential status for a datasource instance. Access is limited to callers with the ADMIN scope; the handler enforces this check. - tags: - - Datasources - security: - - APIToken: [] - parameters: - - $ref: '#/components/parameters/datasourceInstanceId' - responses: - "200": - description: OK - content: - application/json: - schema: - $ref: '#/components/schemas/DatasourceCredentialStatusResponse' - "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' - x-visibility: Preview - x-speakeasy-group: client.datasources - x-speakeasy-name-override: retrieveCredentialStatus - /rest/api/v1/datasource/{datasourceInstanceId}/credentials: - post: - operationId: rotateDatasourceCredentials - summary: Rotate datasource instance credentials - description: | - Rotates the credentials that a datasource instance uses to connect to its upstream system. Replaces the active credential material with the supplied values and returns the credential status after rotation. Access is limited to callers with the ADMIN scope; the handler enforces this check. - Only keys recognized as credential material for the datasource type may be set in `credentials.values` (e.g. `clientSecret`, `apiToken`, `privateKey`, depending on the configured auth method). Unrecognized keys, or keys that correspond to non-credential configuration, cause a 400; other instance configuration must be updated via PATCH /configure/datasources/{datasourceId}/instances/{instanceId}. - tags: - - Datasources - security: - - APIToken: [] - parameters: - - $ref: '#/components/parameters/datasourceInstanceId' - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/RotateDatasourceCredentialsRequest' - required: true - responses: - "200": - description: OK - content: - application/json: - schema: - $ref: '#/components/schemas/DatasourceCredentialStatusResponse' - "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' - x-visibility: Preview - x-speakeasy-group: client.datasources - x-speakeasy-name-override: rotateCredentials - /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: + 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: - 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: - type: http - scheme: bearer - description: >- - HTTP bearer token. Accepts a Glean-issued API token, an OAuth access token from the Glean OAuth Authorization Server (including Dynamic Client Registration clients), or an OAuth access token issued by an external identity provider. External-IdP OAuth tokens must also include the `X-Glean-Auth-Type: OAUTH` request header. OAuth is supported on the Client API only; the Indexing API requires a Glean-issued token. - schemas: - PlatformAgentsSearchRequest: - type: object - additionalProperties: false - properties: - name: - type: string - description: Case-insensitive substring to match against agent names. If omitted or empty, no name filter is applied. - example: HR Policy Agent - PlatformAgentCapabilities: - type: object - additionalProperties: true - properties: - ap.io.messages: - type: boolean - description: Whether the agent supports messages as input. - ap.io.streaming: - type: boolean - description: Whether the agent supports streaming output. - PlatformAgent: - type: object - required: - - agent_id - - name - - capabilities - properties: - agent_id: - type: string - description: ID of the agent. - example: mho4lwzylcozgoc2 - name: - type: string - description: Name of the agent. - example: HR Policy Agent - description: - type: string - description: Description of the agent. - metadata: - type: object - description: Agent metadata. - additionalProperties: true - capabilities: - $ref: "#/components/schemas/PlatformAgentCapabilities" - PlatformAgentsSearchResponse: - type: object - required: - - agents - - request_id - properties: - agents: - type: array - description: Agents matching the search request. - items: - $ref: "#/components/schemas/PlatformAgent" - request_id: - type: string - description: Platform-generated request ID for support correlation. - PlatformProblemDetailCode: - type: string - description: Stable machine-readable error code. - enum: - - invalid_request - - missing_required_field - - invalid_parameter - - invalid_cursor - - expired_cursor - - invalid_filter - - invalid_datasource - - authentication_required - - token_expired - - insufficient_permissions - - resource_not_found - - method_not_allowed - - request_timeout - - request_too_large - - conflict - - gone - - unprocessable_query - - rate_limit_exceeded - - internal_error - - service_unavailable - x-glean-problem-detail-codes: - invalid_request: - status: 400 - title: Invalid Request - missing_required_field: - status: 400 - title: Missing Required Field - invalid_parameter: - status: 400 - title: Invalid Parameter - invalid_cursor: - status: 400 - title: Invalid Pagination Cursor - expired_cursor: - status: 400 - title: Expired Pagination Cursor - invalid_filter: - status: 400 - title: Invalid Filter - invalid_datasource: - status: 400 - title: Invalid Datasource - authentication_required: - status: 401 - title: Authentication Required - token_expired: - status: 401 - title: Token Expired - insufficient_permissions: - status: 403 - title: Insufficient Permissions - resource_not_found: - status: 404 - title: Resource Not Found - method_not_allowed: - status: 405 - title: Method Not Allowed - request_timeout: - status: 408 - title: Request Timeout - request_too_large: - status: 413 - title: Request Too Large - conflict: - status: 409 - title: Conflict - gone: - status: 410 - title: Gone - unprocessable_query: - status: 422 - title: Unprocessable Query - rate_limit_exceeded: - status: 429 - title: Rate Limit Exceeded - internal_error: - status: 500 - title: Internal Error - service_unavailable: - status: 503 - title: Service Unavailable - example: invalid_cursor - PlatformProblemDetailError: - type: object - required: - - pointer - - detail - description: Field-level validation problem for a single offending field. - properties: - pointer: - type: string - description: RFC 6901 JSON Pointer to the offending field. - example: /messages/0/role - detail: - type: string - description: Human-readable explanation for this field. - example: "Must be one of: USER, GLEAN_AI." - code: - $ref: "#/components/schemas/PlatformProblemDetailCode" - PlatformProblemDetail: - type: object - required: - - type - - title - - status - - detail - - code - - request_id - description: | - Error response following RFC 9457, extended with `code` and `documentation_url` for machine-readable classification and self-service remediation. - properties: - type: - type: string - format: uri - description: URI identifying the error type. - example: https://developers.glean.com/errors/invalid-cursor - title: - type: string - description: Short, human-readable summary of the error. - example: Invalid Pagination Cursor - status: - type: integer - description: HTTP status code mirrored from the response. - example: 400 - detail: - type: string - description: Human-readable explanation specific to this occurrence. - example: | - The provided cursor has expired. Start a new search to get a fresh cursor. - code: - $ref: "#/components/schemas/PlatformProblemDetailCode" - documentation_url: - type: string - format: uri - description: Direct URL to documentation for this error code. - example: https://developers.glean.com/errors/invalid-cursor - request_id: - type: string - description: Platform-generated request ID for support correlation. - example: req_7f8a9b0c1d2e - errors: - type: array - description: Field-level validation problems, one entry per offending field. - items: - $ref: "#/components/schemas/PlatformProblemDetailError" - PlatformAgentGetResponse: - type: object - required: - - agent - - request_id - properties: - agent: - $ref: "#/components/schemas/PlatformAgent" - request_id: - type: string - description: Platform-generated request ID for support correlation. - PlatformActionSummary: - type: object - required: - - tool_id - - display_name - properties: - tool_id: - type: string - description: Unique identifier of the action. - display_name: - type: string - description: Display name of the action. - type: - type: string - description: Tool type. - auth_type: - type: string - description: Authentication type required by the action. - write_action_type: - type: string - description: Write-action execution type. - is_setup_finished: - type: boolean - description: Whether this action has been fully configured. - data_source: - type: string - description: Kind of knowledge the action accesses or modifies. - PlatformAgentSchemasResponse: - type: object - required: - - agent_id - - input_schema - - output_schema - - request_id - properties: - agent_id: - type: string - description: ID of the agent. - name: - type: string - description: Name of the agent. - input_schema: - type: object - description: Agent input schema in JSON Schema format. - additionalProperties: true - output_schema: - type: object - description: Agent output schema in JSON Schema format. - additionalProperties: true - tools: - type: array - description: Tools that the agent can invoke, when requested. - items: - $ref: "#/components/schemas/PlatformActionSummary" - request_id: - type: string - description: Platform-generated request ID for support correlation. - PlatformMessageRole: - type: string - description: Role of the message author. - example: USER - enum: - - USER - - GLEAN_AI - PlatformContentType: - type: string - enum: - - text - PlatformMessageTextBlock: - type: object - required: - - text - - type - properties: - text: - type: string - description: Text content. - type: - $ref: "#/components/schemas/PlatformContentType" - PlatformMessage: - type: object - required: - - role - - content - properties: - role: - $ref: "#/components/schemas/PlatformMessageRole" - content: - type: array - minItems: 1 - description: Content blocks in the message. - items: - $ref: "#/components/schemas/PlatformMessageTextBlock" - PlatformAgentRunCreateRequest: - type: object - additionalProperties: false - description: | - Request to run an agent. A request MUST supply either `messages` (a non-empty conversation) or `input` (for input-form triggered agents). - properties: - input: - type: object - description: Input fields for an input-form triggered agent. - additionalProperties: true - messages: - type: array - minItems: 1 - description: | - Messages to pass to the agent. When provided, the array MUST contain at least one message and each message MUST specify a valid `role` and non-empty `content`. - items: - $ref: "#/components/schemas/PlatformMessage" - metadata: - type: object - description: Metadata to pass to the agent. - additionalProperties: true - stream: - type: boolean - description: Whether to stream the run response as server-sent events. - default: false - PlatformAgentRunCreate: - type: object - required: - - agent_id - properties: - agent_id: - type: string - description: ID of the agent being run. - input: - type: object - description: Input fields for an input-form triggered agent. - additionalProperties: true - messages: - type: array - description: Messages passed to the agent. - items: - $ref: "#/components/schemas/PlatformMessage" - metadata: - type: object - description: Metadata passed to the agent. - additionalProperties: true - PlatformAgentExecutionStatus: - type: string - description: Status of the agent run. - enum: - - error - - success - PlatformAgentRun: - allOf: - - $ref: "#/components/schemas/PlatformAgentRunCreate" - - type: object - required: - - status - properties: - status: - $ref: "#/components/schemas/PlatformAgentExecutionStatus" - PlatformAgentRunWaitResponse: - type: object - required: - - request_id - properties: - run: - $ref: "#/components/schemas/PlatformAgentRun" - messages: - type: array - description: Messages returned by the completed run. - items: - $ref: "#/components/schemas/PlatformMessage" - request_id: - type: string - description: Platform-generated request ID for support correlation. - PlatformFilterOperator: - type: string - description: Supported filter operator. - enum: - - EQUALS - - NOT_EQUALS - - GT - - GTE - - LT - - LTE - PlatformFilter: - type: object - required: - - field - - values - description: | - A single filter criterion. For `EQUALS`, multiple values within a filter are OR'd. For `NOT_EQUALS`, multiple values exclude all listed values. Filters are AND'd with each other and with any inline query operators. - properties: - field: - type: string - description: | - The field to filter on. Accepts built-in filter field names such as `type`, `owner`, `from`, `author`, `channel`, `status`, `assignee`, `reporter`, `component`, `mentions`, and `collection`, plus custom datasource property names. - example: type - values: - type: array - minItems: 1 - items: + 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 + - ARTIFACTS + - 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 + 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 - description: One or more values to match. - example: - - spreadsheet - - presentation - operator: - allOf: - - $ref: "#/components/schemas/PlatformFilterOperator" - description: | - Comparison operator to apply to this filter. Defaults to `EQUALS`. `GT`, `GTE`, `LT`, and `LTE` range operators require exactly one value; express bounded ranges with multiple filters on the same field. - PlatformTimeRange: - type: object - description: Filter results to those last updated within this range. - properties: - start: - type: string - format: date-time - description: Inclusive lower bound in ISO 8601 format. - end: - type: string - format: date-time - description: Exclusive upper bound in ISO 8601 format. - PlatformSearchRequest: - type: object - additionalProperties: false - required: - - query - example: - query: quarterly planning 2026 - datasources: - - confluence - - google_drive - filters: - - field: type - values: - - spreadsheet - - presentation - properties: - query: - type: string - description: | - The search query string. Supports inline operators such as `from:jane type:document app:confluence`. Inline operators are AND'd with structured `filters`. - page_size: - type: integer - minimum: 1 - maximum: 100 - default: 10 - description: Number of results to return per page. - cursor: - type: string - nullable: true - description: | - Opaque pagination token from a previous response's `next_cursor` field. Omit on the first request. - datasources: - type: array - items: + description: The type of user group + x-enumDescriptions: + COLLECTION_AUDIENCE: Refers to any viewers of the Collection. + x-speakeasy-enum-descriptions: + COLLECTION_AUDIENCE: Refers to any viewers of the Collection. + enum: + - DEPARTMENT + - ALL + - TEAM + - JOB_TITLE + - ROLE_TYPE + - LOCATION + - REGION + - EXTERNAL_GROUP + - COLLECTION_AUDIENCE + 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: | - Restrict results to specific datasources. Requests must not specify both `datasources` and `datasource_instances`. - datasource_instances: - type: array - items: + 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 + UgcTrackingSignals: + type: object + properties: + trackingToken: + type: string + description: An opaque token that represents this particular UGC. To be used for `/feedback` reporting. + 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: Number of days in the past, relative to the current date. + 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. + UgcType: + enum: + - AGENT_TYPE + - ANNOUNCEMENTS_TYPE + - ANSWERS_TYPE + - CHATS_TYPE + - COLLECTIONS_TYPE + - EMAIL_TYPE + - HTML_CODE_TYPE + - IMAGE_TYPE + - MESSAGE_TYPE + - PAPER_TYPE + - PRISM_VIEWS_TYPE + - PROMPT_TEMPLATES_TYPE + - PINS_TYPE + - SCRIBES_TYPE + - SHORTCUTS_TYPE + - SLIDE_TYPE + - SPREADSHEET_TYPE + - INLINE_HTML_TYPE + - PODCAST_TYPE + - WORKFLOWS_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. + 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" + favoriteInfo: + $ref: "#/components/schemas/FavoriteInfo" + Collection: + allOf: + - $ref: "#/components/schemas/CollectionMutableProperties" + - $ref: "#/components/schemas/PermissionedObject" + - $ref: "#/components/schemas/UgcTrackingSignals" + - 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" + favoriteInfo: + $ref: "#/components/schemas/FavoriteInfo" + 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: | - Restrict results to specific datasource instances. Values are datasource instance identifiers returned by `GET /api/search/filters`. Requests must not specify both `datasources` and `datasource_instances`. - filters: - type: array - items: - $ref: "#/components/schemas/PlatformFilter" - description: | - Structured filters applied to search results. Equality operators OR multiple values within a filter. Multiple filters are AND'd together, including range filters on the same field. Filters are AND'd with any inline operators in `query`. Note that conflicting constraints on the same field (e.g., `type:document` in the query and `type: spreadsheet` in a filter) produce an empty result set. - time_range: - $ref: "#/components/schemas/PlatformTimeRange" - PlatformPersonReference: - type: object - description: A lightweight reference to a person, used where a payload merely points at someone. - required: - - name - properties: - id: - type: string - description: Opaque Glean person ID. - name: - type: string - description: Display name. - PlatformResult: - type: object - required: - - url - - title - - datasource - properties: - url: - type: string - format: uri - description: Canonical URL of the result. - example: https://company.atlassian.net/wiki/spaces/ENG/pages/12345 - title: - type: string - description: Result title. - example: Q2 2026 Platform Roadmap - snippets: - type: array - items: + description: Categories a Collection can be pinned to. + enum: + - COMPANY_RESOURCE + - DEPARTMENT_RESOURCE + - TEAM_RESOURCE + CollectionPinnableTargets: type: string - description: Query-relevant plain-text excerpts from the result body. - example: - - The platform team will focus on API stability and... - datasource: - type: string - description: The datasource this result originates from. - example: confluence - datasource_instance: - type: string - nullable: true - description: The datasource instance this result originates from, if known. - example: confluence_acme - document_type: - type: string - nullable: true - description: The document type within the datasource. - example: page - creator: - $ref: "#/components/schemas/PlatformPersonReference" - owner: - $ref: "#/components/schemas/PlatformPersonReference" - updated_at: - type: string - format: date-time - nullable: true - description: When the result was last modified. - created_at: - type: string - format: date-time - nullable: true - description: When the result was created. - PlatformSearchResponse: - type: object - required: - - results - - has_more - - next_cursor - - request_id - properties: - results: - type: array - items: - $ref: "#/components/schemas/PlatformResult" - description: Ordered list of search results. - has_more: - type: boolean - description: Indicates whether additional pages of results are available. - next_cursor: - type: string - nullable: true - description: Opaque token to pass as `cursor` in the next request. - request_id: - type: string - description: Platform-generated request ID for support correlation. - ActivityEventParams: - properties: - bodyContent: - type: string - description: The HTML content of the page body. - 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: - type: integer - description: Length in seconds of the activity. For VIEWS, this represents the amount the page was visible in the foreground. - query: - type: string - description: The user's search query associated with a SEARCH. - referrer: - type: string - description: The referring URL of the VIEW or SEARCH. - title: - type: string - description: The page title associated with the URL of the event - truncated: - type: boolean - 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. - ActivityEvent: - 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 - enum: - - VIEW - - EDIT - - SEARCH - - COMMENT - - CRAWL - - HISTORICAL_SEARCH - - HISTORICAL_VIEW - 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. - params: - $ref: '#/components/schemas/ActivityEventParams' - timestamp: - type: string - format: date-time - description: The ISO 8601 timestamp when the activity began. - url: - type: string - description: The URL of the activity. - required: - - action - - source - - timestamp - - url - Activity: - properties: - events: - type: array - items: - $ref: '#/components/schemas/ActivityEvent' - required: - - events - 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: - type: string - description: An opaque user ID for the claimed authority (i.e., the actas param, or the origid if actas is not specified). - origID: - type: string - description: An opaque user ID for the authenticated user (ignores actas). - 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 - items: - properties: - title: - type: string - url: - type: string - description: List of documents read by the agent. - 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 - 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 - description: The source associated with the Feedback.event.MANUAL_FEEDBACK event. - issue: - type: string - description: The issue the user indicated in the feedback. - deprecated: true - issues: - type: array - items: + 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: + 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" + - $ref: "#/components/schemas/UgcTrackingSignals" + - 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-enum-varnames: + - ATTACHMENT + - CANONICAL + - CASE + - CONTACT_LOWERCASE + - CONTACT + - CONVERSATION_MESSAGES + - EXPERT + - FROM + - HIGHLIGHT + - OPPORTUNITY_LOWERCASE + - 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: - - AGENT_CANVAS_FAILED - - AGENT_CLARIFYING_QUESTIONS - - AGENT_INTERMEDIATE_STEPS_FAILED - - AGENT_TOOL_CALL_FAILED - - 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 - description: The issue(s) the user indicated in the feedback. - 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 - enum: - - UPVOTE - - DOWNVOTE - description: The vote associated with the Feedback.event.MANUAL_FEEDBACK event. - 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 - additionalProperties: - type: string - description: The search/chat parameters used for this implementation. - response: - type: string - description: The full response generated by this implementation. - responseMetadata: - type: object - 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. - description: Metadata about the response (e.g., latency, token count). - ManualFeedbackSideBySideInfo: - properties: - email: - type: string - description: The email address of the user who submitted the side-by-side feedback. - source: - type: string - enum: - - LIVE_EVAL - - CHAT - - SEARCH - description: The source associated with the side-by-side feedback event. - query: - type: string - description: The query or prompt that was evaluated across multiple implementations. - implementations: - type: array - items: - $ref: '#/components/schemas/SideBySideImplementation' - description: Array of implementations that were compared side-by-side. - 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 - enum: - - UPVOTE - - DOWNVOTE - - NEUTRAL - description: The vote for this specific implementation. - 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: - 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 - enum: - - ANNOUNCEMENT - - ANSWERS - - ARTIFACTS - - AUTOCOMPLETE - - COLLECTIONS - - FEED - - SEARCH - - CHAT - - NTP - - WORKFLOWS - - SUMMARY - - GENERAL - - PRISM - - PROMPTS - 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. - trackingTokens: - type: array - items: - type: string - description: A list of server-generated trackingTokens to which this event applies. - event: - type: string - 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 - 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. - 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 - format: date-time - description: The ISO 8601 timestamp when the event occured. - user: - $ref: '#/components/schemas/User' - pathname: - type: string - description: The path the client was at when the feedback event triggered. - channels: - type: array - items: + - 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: + 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. + x-glean-deprecated: + id: e55ddf30-7c47-43a5-b775-d78f8b29411a + introduced: "2026-02-05" + message: Use 'text' field instead + removal: "2026-10-15" + x-includeEmpty: true + x-speakeasy-deprecation-message: "Deprecated on 2026-02-05, removal scheduled for 2026-10-15: 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: - - COMPANY - - GLEAN - 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. - url: - type: string - description: The URL the client was at when the feedback event triggered. - uiTree: - type: array - items: - type: string - description: The UI element tree associated with the event, if any. - 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. - required: - - event - - trackingTokens - example: - trackingTokens: - - trackingTokens - event: VIEW - StructuredTextMutableProperties: - 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. - required: - - text - ConnectorType: - type: string - enum: - - API_CRAWL - - BROWSER_CRAWL - - BROWSER_HISTORY - - BUILTIN - - FEDERATED_SEARCH - - PUSH_API - - WEB_CRAWL - - NATIVE_HISTORY - description: The source from which document content was pulled, e.g. an API crawl or browser 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 - items: - $ref: '#/components/schemas/DocumentSection' - description: A list of content sub-sections in the document, e.g. text blocks with different headings in a Drive doc or Confluence page. - 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 - example: 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. - isNegated: - type: boolean - description: DEPRECATED - please use relationType instead - deprecated: true - 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 - 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: Spreadsheet - 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: - properties: - accessToken: - type: string - datasource: - type: string - scope: - type: string - tokenType: - type: string - authUser: - type: string - description: Used by Google to indicate the index of the logged in user. Useful for generating hyperlinks that support multilogin. - expiration: - type: integer - format: int64 - description: Unix timestamp when this token expires (in seconds since epoch UTC). - required: - - accessToken - - datasource - example: - accessToken: 123abc - datasource: gmail - scope: email profile https://www.googleapis.com/auth/gmail.readonly - tokenType: Bearer - authUser: "1" - DocumentSpec: - oneOf: - - type: object - properties: - url: - type: string - description: The URL of the document. - x-discriminator: true - required: - - url - - type: object - properties: - id: - type: string - description: The ID of the document. - x-discriminator: true - required: - - id - - type: object - properties: - ugcType: - type: string - enum: - - ANNOUNCEMENTS - - ANSWERS - - COLLECTIONS - - SHORTCUTS - - CHATS - description: The type of the user generated content (UGC datasource). - contentId: - type: integer - description: The numeric id for user generated content. Used for ANNOUNCEMENTS, ANSWERS, COLLECTIONS, SHORTCUTS. - x-discriminator: true - docType: - type: string - description: The specific type of the user generated content type. - required: - - contentId - - ugcType - - type: object - properties: - ugcType: - type: string - enum: - - ANNOUNCEMENTS - - ANSWERS - - ARTIFACTS - - COLLECTIONS - - SHORTCUTS - - CHATS - description: The type of the user generated content (UGC datasource). - ugcId: - type: string - description: The string id for user generated content. Used for CHATS. - x-discriminator: true - docType: - type: string - description: The specific type of the user generated content type. - required: - - ugcType - - ugcId - x-multiple-discriminators: true - RestrictionFilters: - properties: - containerSpecs: - type: array - items: - $ref: '#/components/schemas/DocumentSpec' - 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.' - SearchRequestOptions: - 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: + - 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: 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 - items: - $ref: '#/components/schemas/AuthToken' - description: Auth tokens which may be used for non-indexed, federated results (e.g. Gmail). - 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 - items: + 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 + favoriteInfo: + $ref: "#/components/schemas/FavoriteInfo" + 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: - - ALL_RESULT_COUNTS - - FACET_RESULTS - - QUERY_METADATA - - RESULTS - - SPELLCHECK_METADATA - description: Hints for the response content. + - 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: - 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. + 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: - 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: Array of hints containing which fields should be populated in the response. - 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. - required: - - facetBucketSize - example: - datasourceFilter: JIRA - datasourcesFilter: - - JIRA - queryOverridesFacetFilters: true - facetFilters: - - fieldName: fieldName - values: - - fieldValues - - fieldValues - - fieldName: fieldName - values: - - fieldValues - - fieldValues - TextRange: - 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. - required: - - startIndex - description: A subsection of a given string to which some special formatting should be applied. - 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: - 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' - required: - - query - example: - query: app:github type:pull author:mortimer - label: Mortimer's PRs - datasource: github - Person: - 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' - required: - - name - - obfuscatedId - example: - name: George Clooney - obfuscatedId: abc123 - Company: - properties: - name: - type: string - description: User-friendly display name. - profileUrl: - type: string - description: Link to internal company company profile. - websiteUrls: - type: array - items: - type: string - description: Link to company's associated websites. - 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 - required: - - name - DocumentCounts: - type: object - additionalProperties: - type: integer - description: A map of {string, int} pairs representing counts of each document type associated with this customer. - CustomDataValue: - properties: - displayLabel: - type: string - stringValue: - type: string - stringListValue: - type: array - items: + 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" + - $ref: "#/components/schemas/UgcTrackingSignals" + - 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. + favoriteInfo: + $ref: "#/components/schemas/FavoriteInfo" + 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: Use `answer.trackingToken` instead. + deprecated: true + x-glean-deprecated: + id: 62de643b-f182-4d4d-a2fc-5e2cbfee7320 + introduced: "2026-05-07" + message: Use `answer.trackingToken` instead. + removal: "2027-01-15" + x-speakeasy-deprecation-message: "Deprecated on 2026-05-07, removal scheduled for 2027-01-15: Use `answer.trackingToken` instead." + favoriteInfo: + $ref: "#/components/schemas/FavoriteInfo" + 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: list of strings for multi-value properties - numberValue: - type: number - booleanValue: - type: boolean - CustomData: - type: object - additionalProperties: - $ref: '#/components/schemas/CustomDataValue' - description: Custom fields specific to individual datasources - CustomerMetadata: - properties: - datasourceId: - type: string - description: The user visible id of the salesforce customer account. - customData: - $ref: '#/components/schemas/CustomData' - Customer: - properties: - id: - type: string - description: Unique identifier. - domains: - type: array - items: + 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: Link to company's associated website domains. - company: - $ref: '#/components/schemas/Company' - documentCounts: - $ref: '#/components/schemas/DocumentCounts' - poc: - type: array - items: - $ref: '#/components/schemas/Person' - description: A list of POC for company. - metadata: - $ref: '#/components/schemas/CustomerMetadata' - mergedCustomers: - type: array - items: - $ref: '#/components/schemas/Customer' - description: A list of Customers. - 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. - required: - - id - - company - RelatedObject: - properties: - id: - type: string - description: The ID of the related object - metadata: - type: object - properties: - name: - type: string - description: Placeholder name of the object, not the relationship. - description: Some metadata of the object which can be displayed, while not having the actual object. - required: - - id - RelatedObjectEdge: - properties: - objects: - type: array - items: - $ref: '#/components/schemas/RelatedObject' - RelatedObjects: - properties: - relatedObjects: - type: object - additionalProperties: - $ref: '#/components/schemas/RelatedObjectEdge' - description: A list of objects related to a source object. - ScopeType: - type: string - enum: - - GLOBAL - - OWN - description: Describes the scope for a ReadPermission, WritePermission, or GrantPermission object - WritePermission: - 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 - description: Describes the write permissions levels that a user has for a specific feature - 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: - type: object - properties: - person: - $ref: '#/components/schemas/Person' - relationship: - type: string - enum: - - MEMBER - - MANAGER - - LEAD - - POINT_OF_CONTACT - - OTHER - description: The team member's relationship to the team. This defaults to MEMBER if not set. - default: MEMBER - 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 - required: - - person - description: Metadata about the relationship of a person to a team. - TeamEmail: - type: object - 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 - 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: - 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 - required: - - label - - values - - displayable - DatasourceProfile: - properties: - datasource: - type: string - description: The datasource the profile is of. - example: github - 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) - required: - - datasource - - handle - Team: - allOf: - - $ref: '#/components/schemas/RelatedObjects' - - $ref: '#/components/schemas/PermissionedObject' - - type: object - 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 - items: - $ref: '#/components/schemas/PersonToTeamRelationship' - description: The members on this team - 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 - items: - $ref: '#/components/schemas/TeamEmail' - description: The emails for this team - customFields: - type: array - items: - $ref: '#/components/schemas/CustomFieldData' - description: Customizable fields for additional team information. - datasourceProfiles: - type: array - items: - $ref: '#/components/schemas/DatasourceProfile' - description: The datasource profiles of the team - 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 - enum: + description: Current status of the file. + x-include-enum-class-prefix: true + enum: + - PROCESSING - PROCESSED - - QUEUED_FOR_CREATION - - QUEUED_FOR_DELETION - description: whether this team is fully processed or there are still unprocessed operations that'll affect it - default: PROCESSED - 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. - required: - - id - - name - CustomEntityMetadata: - properties: - customData: - $ref: '#/components/schemas/CustomData' - GroupType: - type: string - enum: - - DEPARTMENT - - ALL - - TEAM - - JOB_TITLE - - ROLE_TYPE - - LOCATION - - REGION - - EXTERNAL_GROUP - - COLLECTION_AUDIENCE - description: The type of user group - x-enumDescriptions: - COLLECTION_AUDIENCE: Refers to any viewers of the Collection. - x-speakeasy-enum-descriptions: - COLLECTION_AUDIENCE: Refers to any viewers of the Collection. - Group: - 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 - required: - - type - - id - UserRole: - type: string - enum: - - OWNER - - VIEWER - - ANSWER_MODERATOR - - EDITOR - - VERIFIER - description: A user's role with respect to a specific document. - UserRoleSpecification: - 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' - required: - - role - 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 - items: - $ref: '#/components/schemas/UserRoleSpecification' - description: A list of user roles for the custom entity explicitly granted by the owner. - 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 - items: - type: string - description: Additional ways of phrasing this question. - 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 - items: - $ref: '#/components/schemas/FacetFilter' - description: Filters which restrict who should see the answer. Values are taken from the corresponding filters in people search. - addedRoles: - type: array - items: - $ref: '#/components/schemas/UserRoleSpecification' - description: A list of user roles for the answer added by the owner. - removedRoles: - type: array - items: - $ref: '#/components/schemas/UserRoleSpecification' - description: A list of user roles for the answer removed by the owner. - roles: - type: array - items: - $ref: '#/components/schemas/UserRoleSpecification' - description: A list of roles for this answer explicitly granted by an owner, editor, or admin. - sourceDocumentSpec: - $ref: '#/components/schemas/DocumentSpec' - sourceType: - type: string - enum: - - DOCUMENT - - ASSISTANT - UgcTrackingSignals: - type: object - properties: - trackingToken: - type: string - description: An opaque token that represents this particular UGC. To be used for `/feedback` reporting. - 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: - 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. - required: - - likedBy - - likedByUser - - numLikes - Reminder: - 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"). - required: - - assignee - - remindAt - TimePoint: - properties: - epochSeconds: - type: integer - description: Epoch seconds. Has precedence over daysFromNow. - daysFromNow: - type: integer - description: Number of days in the past, relative to the current date. - 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: - 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 - required: - - count - VerificationMetadata: - 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. - required: - - documentId - Verification: - properties: - state: - type: string - enum: - - UNVERIFIED - - VERIFIED - - DEPRECATED - description: The verification state for the document. - metadata: - $ref: '#/components/schemas/VerificationMetadata' - required: - - state - CollectionBaseMutableProperties: - 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 - items: - $ref: '#/components/schemas/UserRoleSpecification' - description: A list of added user roles for the Collection. - removedRoles: - type: array - items: - $ref: '#/components/schemas/UserRoleSpecification' - description: A list of removed user roles for the Collection. - 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. - required: - - name - 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 - 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. - required: - - name - 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 - items: - $ref: '#/components/schemas/UserRoleSpecification' - description: A list of user roles added for the Shortcut. - removedRoles: - type: array - items: - $ref: '#/components/schemas/UserRoleSpecification' - description: A list of user roles removed for the Shortcut. - 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. - UgcType: - enum: - - AGENT_TYPE - - ANNOUNCEMENTS_TYPE - - ANSWERS_TYPE - - CHATS_TYPE - - COLLECTIONS_TYPE - - EMAIL_TYPE - - HTML_CODE_TYPE - - IMAGE_TYPE - - MESSAGE_TYPE - - PAPER_TYPE - - PRISM_VIEWS_TYPE - - PROMPT_TEMPLATES_TYPE - - PINS_TYPE - - SCRIBES_TYPE - - SHORTCUTS_TYPE - - SLIDE_TYPE - - SPREADSHEET_TYPE - - INLINE_HTML_TYPE - - PODCAST_TYPE - - WORKFLOWS_TYPE - FavoriteInfo: - type: object - properties: - ugcType: - $ref: '#/components/schemas/UgcType' - id: - type: string - description: Opaque id of the UGC. - count: - type: integer - description: Number of users this object has been favorited by. - x-includeEmpty: true - favoritedByUser: - type: boolean - description: If the requesting user has favorited this object. - x-includeEmpty: true - Shortcut: - allOf: - - $ref: '#/components/schemas/UserGeneratedContentId' - - $ref: '#/components/schemas/ShortcutMutableProperties' - - $ref: '#/components/schemas/PermissionedObject' - - $ref: '#/components/schemas/ShortcutMetadata' - - type: object - 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 - items: - $ref: '#/components/schemas/UserRoleSpecification' - description: A list of user roles for the Go Link. - favoriteInfo: - $ref: '#/components/schemas/FavoriteInfo' - required: - - inputAlias - Collection: - allOf: - - $ref: '#/components/schemas/CollectionMutableProperties' - - $ref: '#/components/schemas/PermissionedObject' - - $ref: '#/components/schemas/UgcTrackingSignals' - - type: object - 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 - items: - $ref: '#/components/schemas/UserRoleSpecification' - description: A list of user roles for the Collection. - favoriteInfo: - $ref: '#/components/schemas/FavoriteInfo' - required: - - id - - description - CollectionItem: - allOf: - - $ref: '#/components/schemas/CollectionItemMutableProperties' - - type: object - 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 - required: - - collectionId - - itemType - CollectionPinnableCategories: - type: string - enum: - - COMPANY_RESOURCE - - DEPARTMENT_RESOURCE - - TEAM_RESOURCE - description: Categories a Collection can be pinned to. - CollectionPinnableTargets: - type: string - enum: - - RESOURCE_CARD - - TEAM_PROFILE_PAGE - description: What targets can a Collection be pinned to. - CollectionPinTarget: - 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' - required: - - category - CollectionPinMetadata: - properties: - id: - type: integer - description: The ID of the Collection. - target: - $ref: '#/components/schemas/CollectionPinTarget' - required: - - id - - target - CollectionPinnedMetadata: - 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' - - $ref: '#/components/schemas/UgcTrackingSignals' - - type: object - 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 - items: - $ref: '#/components/schemas/Collection' - description: The collections to which the answer belongs. - documentCategory: - type: string - description: The document's document_category(.proto). - sourceDocument: - $ref: '#/components/schemas/Document' - required: - - id - FollowupAction: - 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 - additionalProperties: - type: string - description: Map of assistant predicted parameters and their corresponding values. - 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. - 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. - 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: + - PARTIALLY_PROCESSED + - FAILED + - DELETED + ChatFileFailureReason: type: string - description: List of all follow-up prompts generated for the given query or the generated question. - followupActions: - type: array - items: - $ref: '#/components/schemas/FollowupAction' - description: List of follow-up actions generated for the given query or the generated question. - 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: - 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 - items: - type: string - 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). - 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 - items: - $ref: '#/components/schemas/SearchResult' - description: A list of results that should be displayed as associated with this result. - allClusteredResults: - type: array - items: - $ref: '#/components/schemas/ClusterGroup' - description: A list of results that should be displayed as associated with this result. - attachmentCount: - type: integer - description: The total number of attachments. - attachments: - type: array - items: - $ref: '#/components/schemas/SearchResult' - description: A (potentially partial) list of results representing documents attached to the main result document. - backlinkResults: - type: array - items: - $ref: '#/components/schemas/SearchResult' - description: A list of results that should be displayed as backlinks of this result in reverse chronological order. - 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 - items: - $ref: '#/components/schemas/PinDocument' - description: A list of pins associated with this search result. - required: - - url - 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: - 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 - items: - $ref: '#/components/schemas/CalendarAttendee' - description: If this attendee is a group, represents the list of individual attendees in the group. - responseStatus: - type: string - enum: - - ACCEPTED - - DECLINED - - NO_RESPONSE - - TENTATIVE - required: - - person - 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: - 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. - required: - - datasource - 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: - 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. - description: Defines how to render an icon - example: - color: "#343CED" - key: person_icon - iconType: GLYPH - name: user - ChatMetadata: - 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' - description: Metadata of a Chat a user had with Glean Assistant. This contains no actual conversational content. - RelatedDocuments: - properties: - relation: - type: string - enum: - - ATTACHMENT - - CANONICAL - - CASE - - contact - - CONTACT - - CONVERSATION_MESSAGES - - EXPERT - - FROM - - HIGHLIGHT - - opportunity - - OPPORTUNITY - - RECENT - - SOURCE - - TICKET - - TRANSCRIPT - - WITH - description: How this document relates to the including entity. - x-enum-varnames: - - ATTACHMENT - - CANONICAL - - CASE - - CONTACT_LOWERCASE - - CONTACT - - CONVERSATION_MESSAGES - - EXPERT - - FROM - - HIGHLIGHT - - OPPORTUNITY_LOWERCASE - - 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 - enum: - - PERSON - - PROJECT - - CUSTOMER - description: The type of entity. - x-include-enum-class-prefix: true - Disambiguation: - type: object - 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' - description: A disambiguation between multiple entities with the same name - SearchResultSnippet: - 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 - description: A matching snippet from the document. Query term matches are marked by the unicode characters uE006 and uE007. Use 'text' field instead. - deprecated: true - x-glean-deprecated: - id: e55ddf30-7c47-43a5-b775-d78f8b29411a - introduced: "2026-02-05" - message: Use 'text' field instead - removal: "2026-10-15" - x-includeEmpty: true - x-speakeasy-deprecation-message: "Deprecated on 2026-02-05, removal scheduled for 2026-10-15: Use 'text' field instead" - example: - snippet: snippet - mimeType: mimeType - StructuredResult: - 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: - type: array - items: - $ref: '#/components/schemas/SearchResultSnippet' - description: Any snippets associated to the populated object. - 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 - enum: - - HERO - - PROMOTED - - STANDARD - 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. - source: - type: string - enum: - - EXPERT_DETECTION - - ENTITY_NLQ - - CALENDAR_EVENT - - AGENT - description: Source context for this result. Possible values depend on the result type. - description: A single object that can support any object in the work graph. Only a single object will be populated. - Result: - properties: - structuredResults: - type: array - items: - $ref: '#/components/schemas/StructuredResult' - description: An array of entities in the work graph retrieved via a data request. - 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 - enum: - - SIMILAR - - FRESHNESS - - TITLE - - CONTENT - - NONE - - THREAD_REPLY - - THREAD_ROOT - - PREFIX - - SUFFIX - - AUTHOR_PREFIX - - AUTHOR_SUFFIX - description: The reason for inclusion of clusteredResults. - ClusterGroup: - properties: - clusteredResults: - type: array - items: - $ref: '#/components/schemas/SearchResult' - description: A list of results that should be displayed as associated with this result. - clusterType: - $ref: '#/components/schemas/ClusterTypeEnum' - visibleCountHint: - type: integer - description: The default number of results to display before truncating and showing a "see more" link - required: - - visibleCountHint - SearchResultProminenceEnum: - type: string - enum: - - HERO - - PROMOTED - - STANDARD - 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. - PinDocumentMutableProperties: - properties: - queries: - type: array - items: - type: string - description: The query strings for which the pinned result will show. - audienceFilters: - type: array - items: - $ref: '#/components/schemas/FacetFilter' - description: Filters which restrict who should see the pinned document. Values are taken from the corresponding filters in people search. - PinDocument: - allOf: - - $ref: '#/components/schemas/PinDocumentMutableProperties' - - type: object - 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 - items: - $ref: '#/components/schemas/FacetFilter' - description: Filters which restrict who should see the pinned document. Values are taken from the corresponding filters in people search. - attribution: - $ref: '#/components/schemas/Person' - updatedBy: - $ref: '#/components/schemas/Person' - createTime: - type: string - format: date-time - updateTime: - type: string - format: date-time - favoriteInfo: - $ref: '#/components/schemas/FavoriteInfo' - required: - - documentId - PersonTeam: - 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 - enum: - - MEMBER - - MANAGER - - LEAD - - POINT_OF_CONTACT - - OTHER - description: The team member's relationship to the team. This defaults to MEMBER if not set. - default: MEMBER - joinDate: - type: string - format: date-time - description: The team member's start date - description: Use `id` if you index teams via Glean, and use `name` and `externalLink` if you want to use your own team pages - StructuredLocation: - type: object - 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. - description: Detailed location with information about country, state, city etc. - SocialNetwork: - 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. - required: - - name - - profileUrl - PersonDistance: - 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. - required: - - name - - obfuscatedId - - distance - CommunicationChannel: - type: string - enum: - - COMMUNICATION_CHANNEL_EMAIL - - COMMUNICATION_CHANNEL_SLACK - ChannelInviteInfo: - properties: - channel: - $ref: '#/components/schemas/CommunicationChannel' - description: Channel through which the invite was sent - isAutoInvite: - type: boolean - description: Bit that tracks if this invite was automatically sent or user-sent - inviter: - $ref: '#/components/schemas/Person' - description: The person that invited this 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. - description: Information regarding the invite status of a person for a particular channel. - InviteInfo: - 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: - $ref: '#/components/schemas/Person' - description: The person that invited this person. - deprecated: true - 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: - type: string - format: date-time - description: The time this person was invited in ISO format (ISO 8601). - deprecated: true - 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: - type: string - format: date-time - description: The time this person was reminded in ISO format (ISO 8601) if a reminder was sent. - deprecated: true - 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" - description: Information regarding the invite status of a person. - ReadPermission: - properties: - scopeType: - $ref: '#/components/schemas/ScopeType' - description: Describes the read permission level that a user has for a specific feature - ReadPermissions: - additionalProperties: - type: array - items: - $ref: '#/components/schemas/ReadPermission' - description: List of read permissions (for different scopes but same feature) - description: Describes the read permission levels that a user has for permissioned features. Key must be PermissionedFeatureOrObject - WritePermissions: - additionalProperties: - type: array - items: - $ref: '#/components/schemas/WritePermission' - description: List of write permissions (for different scopes but same feature) - description: Describes the write permissions levels that a user has for permissioned features. Key must be PermissionedFeatureOrObject - GrantPermission: - properties: - scopeType: - $ref: '#/components/schemas/ScopeType' - description: Describes the grant permission level that a user has for a specific feature - GrantPermissions: - additionalProperties: - type: array - items: - $ref: '#/components/schemas/GrantPermission' - description: List of grant permissions (for different scopes but same feature) - description: Describes the grant permission levels that a user has for permissioned features. Key must be PermissionedFeatureOrObject - Permissions: - 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 - items: - type: string - description: The roleIds of the roles a user has. - 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. - TimeInterval: - 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. - required: - - start - - end - AnonymousEvent: - type: object - properties: - time: - $ref: '#/components/schemas/TimeInterval' - eventType: - type: string - enum: - - DEFAULT - - OUT_OF_OFFICE - description: The nature of the event, for example "out of office". - description: A generic, light-weight calendar event. - Badge: - type: object - 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 - description: Displays a user's accomplishment or milestone - example: - key: deployment_name_new_hire - displayName: New hire - iconConfig: - color: "#343CED" - key: person_icon - iconType: GLYPH - name: user - PersonMetadata: - properties: - type: - type: string - enum: - - FULL_TIME - - CONTRACTOR - - NON_EMPLOYEE - - FORMER_EMPLOYEE - example: FULL_TIME - 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. - 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: - type: array - items: - $ref: '#/components/schemas/PersonTeam' - description: Info about the employee's team(s). - 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 - items: - type: string - description: Additional email addresses of this user beyond the primary, if any. - 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: - type: array - items: - $ref: '#/components/schemas/Person' - description: The chain of reporting in the company as far up as it goes. The last entry is this person's direct manager. - 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 - 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. - 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: - type: array - items: - $ref: '#/components/schemas/SocialNetwork' - description: List of social network profiles. - datasourceProfile: - type: array - items: - $ref: '#/components/schemas/DatasourceProfile' - description: List of profiles this user has in different datasources / tools that they use. - 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 - items: - $ref: '#/components/schemas/CustomFieldData' - description: User customizable fields for additional people information. - 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 - enum: - - PRIVATE - - SPECIFIC_PEOPLE_AND_GROUPS - - DOMAIN_LINK - - DOMAIN_VISIBLE - - PUBLIC_LINK - - PUBLIC_VISIBLE - 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. - 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: - 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' - required: - - numDaysAgo - 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 - 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 - items: - type: string - description: To be deprecated in favor of reacts. A (potentially non-exhaustive) list of reactions for the document. - deprecated: true - 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: - type: string - format: date-time - description: When the document was last crawled - lastIndexedTime: - type: string - format: date-time - description: When the document was last indexed - 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 - items: - type: string - 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).) - 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 - items: - $ref: '#/components/schemas/PinDocument' - description: A list of stars associated with this result. "Pin" is an older name. - priority: - type: string - description: The document priority. Interpretation is datasource specific. - assignedTo: - $ref: '#/components/schemas/Person' - updatedBy: - $ref: '#/components/schemas/Person' - labels: - type: array - items: - type: string - description: A list of tags for the document. Interpretation is datasource specific. - collections: - type: array - items: - $ref: '#/components/schemas/Collection' - description: A list of collections that the document belongs to. - 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 - items: - $ref: '#/components/schemas/Shortcut' - description: A list of shortcuts of which destination URL is for the document. - 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 - items: - $ref: '#/components/schemas/Document' - 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. - 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: - $ref: '#/components/schemas/Document' - description: Deprecated. To be gradually migrated to structuredResult. - deprecated: true - 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 - items: - $ref: '#/components/schemas/FacetFilter' - description: Filters which restrict who should see the announcement. Values are taken from the corresponding filters in people search. - 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' - - $ref: '#/components/schemas/UgcTrackingSignals' - - 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. - favoriteInfo: - $ref: '#/components/schemas/FavoriteInfo' - DeleteAnnouncementRequest: - properties: - id: - type: integer - description: The opaque id of the announcement to be deleted. - required: - - id - UpdateAnnouncementRequest: - allOf: - - $ref: '#/components/schemas/AnnouncementMutableProperties' - - type: object - properties: - id: - type: integer - description: The opaque id of the announcement. - required: - - id - - title - - startTime - - endTime - 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: - properties: - data: - $ref: '#/components/schemas/AnswerCreationData' - required: - - data - 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 - properties: - combinedAnswerText: - $ref: '#/components/schemas/StructuredTextMutableProperties' - required: - - id - GetAnswerRequest: - allOf: - - $ref: '#/components/schemas/AnswerId' - - $ref: '#/components/schemas/AnswerDocId' - AnswerResult: - properties: - answer: - $ref: '#/components/schemas/Answer' - trackingToken: - type: string - description: Use `answer.trackingToken` instead. - deprecated: true - x-glean-deprecated: - id: 62de643b-f182-4d4d-a2fc-5e2cbfee7320 - introduced: "2026-05-07" - message: Use `answer.trackingToken` instead. - removal: "2027-01-15" - x-speakeasy-deprecation-message: "Deprecated on 2026-05-07, removal scheduled for 2027-01-15: Use `answer.trackingToken` instead." - favoriteInfo: - $ref: '#/components/schemas/FavoriteInfo' - required: - - answer - 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: - properties: - answerResults: - type: array - items: - $ref: '#/components/schemas/AnswerResult' - description: List of answers with tracking tokens. - required: - - answers - - answerResults - AuthStatus: - type: string - enum: - - DISABLED - - AWAITING_AUTH - - AUTHORIZED - - STALE_OAUTH - - SEG_MIGRATION - description: The per-user authorization status for a datasource. - x-enum-varnames: - - AUTH_STATUS_DISABLED - - AUTH_STATUS_AWAITING_AUTH - - AUTH_STATUS_AUTHORIZED - - AUTH_STATUS_STALE_OAUTH - - AUTH_STATUS_SEG_MIGRATION - UnauthorizedDatasourceInstance: - 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 + 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" + sourceCustomEntity: + $ref: "#/components/schemas/CustomEntity" + referenceRanges: + description: Each reference range and its corresponding snippets + type: array + items: + $ref: "#/components/schemas/ReferenceRange" 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. - description: | - A datasource instance that could not return results for this request because the user has not completed or has expired per-user OAuth. - CheckDatasourceAuthResponse: - properties: - unauthorizedDatasourceInstances: - type: array - items: - $ref: '#/components/schemas/UnauthorizedDatasourceInstance' - description: | - Datasource instances that require per-user OAuth authorization. Empty when all datasources are authorized. - required: - - unauthorizedDatasourceInstances - CreateAuthTokenResponse: - properties: - token: - type: string - description: An authentication token that can be passed to any endpoint via Bearer Authentication - expirationTime: - type: integer - format: int64 - description: Unix timestamp for when this token expires (in seconds since epoch UTC). - required: - - token - - expirationTime - ToolSets: - type: object - 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).' - description: The types of tools that the agent is allowed to use. Only works with FAST and ADVANCED `agent` values - AgentConfig: - properties: - agent: - type: string - enum: - - DEFAULT - - GPT - - UNIVERSAL - - FAST - - ADVANCED - - AUTO - 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. - toolSets: - $ref: '#/components/schemas/ToolSets' - mode: - type: string - enum: - - DEFAULT - - QUICK - 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. - useImageGeneration: - type: boolean - description: Whether the agent should create an image. - description: Describes the agent that executes the request. - ChatFileStatus: - type: string - enum: - - PROCESSING - - PROCESSED - - PARTIALLY_PROCESSED - - FAILED - - DELETED - description: Current status of the file. - x-include-enum-class-prefix: true - ChatFileFailureReason: - type: string - 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 - description: Reason for failed status. - x-include-enum-class-prefix: true - ChatFileMetadata: - type: object - 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: - type: string - description: MIME type of the file. - description: Metadata of a file uploaded by a user for Chat. - ChatFile: - type: object - 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' - description: Structure for file uploaded by a user for Chat. - ReferenceRange: - properties: - textRange: - $ref: '#/components/schemas/TextRange' - snippets: - type: array - items: - $ref: '#/components/schemas/SearchResultSnippet' - description: Each text range from the response can correspond to an array of snippets from the citation source. - ChatMessageCitation: - 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' - sourceCustomEntity: - $ref: '#/components/schemas/CustomEntity' - referenceRanges: - type: array - items: - $ref: '#/components/schemas/ReferenceRange' - description: Each reference range and its corresponding snippets - description: Information about the source for a ChatMessage. - displayName: - type: string - description: Human understandable name of the tool. Max 50 characters. - 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: - 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. - required: - - name - - obfuscatedId - AuthConfig: - 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 - enum: - - AWAITING_AUTH - - AUTHORIZED - - AUTH_DISABLED - description: Auth status of the tool. - 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: + description: Human understandable name of the tool. Max 50 characters. 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. - resource: - type: string - format: url - description: The OAuth 2.0 Resource Indicator (RFC 8707) for the protected resource. Discovered from Protected Resource Metadata (RFC 9728) during DCR. Included in authorization and token exchange requests when present. - token_endpoint_auth_method: - type: string - enum: - - client_secret_post - - client_secret_basic - - none - description: The OAuth 2.0 token endpoint authentication method (RFC 7591). Determines how the client authenticates when exchanging an authorization code for a token. client_secret_post sends credentials as form fields, client_secret_basic sends them via Authorization header, none omits client secret and relies on PKCE only. Values use lowercase to match the OAuth 2.0 wire format (RFC 7591 Section 2). - lastAuthorizedAt: - type: string - format: date-time - description: The time the tool was last authorized in ISO format (ISO 8601). - description: Config for tool's authentication method. - ToolMetadata: - properties: - type: - type: string - enum: - - RETRIEVAL - - ACTION - description: The type of tool. - name: - type: string - description: Unique identifier for the tool. Name should be understandable by the LLM, and will be used to invoke a tool. - displayName: - $ref: '#/components/schemas/displayName' - toolId: - type: string - description: An opaque id which is unique identifier for the tool. - displayDescription: - type: string - description: Description of the tool meant for a human. logoUrl: - $ref: '#/components/schemas/logoUrl' + type: string + description: URL used to fetch the logo. objectName: - $ref: '#/components/schemas/objectName' - knowledgeType: - type: string - enum: - - NEUTRAL_KNOWLEDGE - - COMPANY_KNOWLEDGE - - WORLD_KNOWLEDGE - description: Indicates the kind of knowledge a tool would access or modify. - 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 - enum: - - REDIRECT - - EXECUTION - - MCP - 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. - 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: - $ref: '#/components/schemas/AuthConfig' - deprecated: true - permissions: - $ref: '#/components/schemas/ObjectPermissions' - deprecated: true - usageInstructions: - type: string - description: Usage instructions for the LLM to use this action. - isSetupFinished: - type: boolean - description: Whether this action has been fully configured and validated. - required: - - type - - name - - displayName - - displayDescription - description: The manifest for a tool that can be used to augment Glean Assistant. - PossibleValue: - type: object - properties: - value: - type: string - description: Possible value - label: - type: string - description: User-friendly label associated with the value - description: Possible value of a specific parameter - WriteActionParameter: - type: object - properties: - type: - type: string - enum: - - UNKNOWN - - INTEGER - - STRING - - BOOLEAN - description: The type of the value (e.g., integer, string, boolean, etc.) - 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 - additionalProperties: - $ref: '#/components/schemas/WriteActionParameter' - description: Parameters supported by the tool. - ServerToolBase: - type: object - properties: - requestType: - type: string - enum: - - EXECUTION - - AUTHENTICATION_SUGGESTION - - VOTE_SUGGESTION - description: The type of request made to the user. - x-enumDescriptions: - EXECUTION: Request for approving execution of the tool. - AUTHENTICATION_SUGGESTION: Request for authenticating to a tool, provided as a (tool) suggestion. - VOTE_SUGGESTION: Suggestion to vote for enabling an available-but-not-enabled tool. - x-speakeasy-enum-descriptions: - EXECUTION: Request for approving execution of the tool. - AUTHENTICATION_SUGGESTION: Request for authenticating to a tool, provided as a (tool) suggestion. - VOTE_SUGGESTION: Suggestion to vote for enabling an available-but-not-enabled tool. - requestId: - type: string - description: Unique identifier for this request. - required: - - toolType - - requestType - - requestId - x-visibility: Preview - x-glean-experimental: - id: 4e3ee791-45e0-4125-845f-4b7701aa983c - introduced: "2026-07-02" - ActionPreview: - properties: - markdown: - type: string - description: Markdown preview describing what the action will do. - description: - type: string - description: Short summary of what this specific tool invocation will do. - description: Preview information for an action being executed. - ServerToolRequest: - allOf: - - $ref: '#/components/schemas/ServerToolBase' - - type: object - properties: - toolDisplayName: - type: string - description: Human-readable display name for the tool. - serverId: - type: string - description: | - Unique identifier of the tool server. Use with GET /tool-servers/{serverId}/auth - to resolve display information and authentication status. - toolCta: - type: string - description: Custom call-to-action (CTA) verb for the approval button (e.g., "Create", "Update", "Send"). - actionPreview: - $ref: '#/components/schemas/ActionPreview' - description: Preview information for this tool request. - required: - - toolName - x-visibility: Preview - x-glean-experimental: - id: 8544e887-4569-4b14-bde0-d1be9e90dbc3 - introduced: "2026-07-02" - AuthContext: - type: object - properties: - serverId: - type: string - description: ID of the MCP server (populated when toolType is MCP). - description: | - Context for authentication responses, containing identifiers for the entity being authenticated. - x-visibility: Preview - x-glean-experimental: - id: a7c1d3e5-9f42-4b8a-b6e0-2d4f8a1c3e5b - introduced: "2026-07-09" - ServerToolResponse: - allOf: - - $ref: '#/components/schemas/ServerToolBase' - - type: object - properties: - isGranted: - type: boolean - description: Whether tool request is granted (indicates approval for execution, or completion for auth). - grantScope: - type: string - enum: - - CURRENT_REQUEST - - CURRENT_SESSION - - ALWAYS - description: | - Scope of the approval grant. Only applicable when isGranted is true and requestType is EXECUTION. - default: CURRENT_REQUEST - x-enumDescriptions: - CURRENT_REQUEST: Approve only the current tool request. Future tool execution requests still require approval. - CURRENT_SESSION: Approve the current tool request and auto-approve all future same tool requests in this chat session. - ALWAYS: Approve the current tool request and auto-approve all future same tool requests across all chat sessions. - x-speakeasy-enum-descriptions: - CURRENT_REQUEST: Approve only the current tool request. Future tool execution requests still require approval. - CURRENT_SESSION: Approve the current tool request and auto-approve all future same tool requests in this chat session. - ALWAYS: Approve the current tool request and auto-approve all future same tool requests across all chat sessions. - authContext: - $ref: '#/components/schemas/AuthContext' - description: Context for AUTHENTICATION_SUGGESTION responses. Required when requestType is AUTHENTICATION_SUGGESTION. - description: | - Response to a server tool request. The applicable fields depend on requestType: + 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. + resource: + type: string + format: url + description: The OAuth 2.0 Resource Indicator (RFC 8707) for the protected resource. Discovered from Protected Resource Metadata (RFC 9728) during DCR. Included in authorization and token exchange requests when present. + token_endpoint_auth_method: + type: string + enum: + - client_secret_post + - client_secret_basic + - none + description: The OAuth 2.0 token endpoint authentication method (RFC 7591). Determines how the client authenticates when exchanging an authorization code for a token. client_secret_post sends credentials as form fields, client_secret_basic sends them via Authorization header, none omits client secret and relies on PKCE only. Values use lowercase to match the OAuth 2.0 wire format (RFC 7591 Section 2). + 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 + actionTypeSource: + type: string + description: | + Analytics-only signal (product snapshot) describing WHERE the action's + read/write determination came from. Complementary to the effective + read/write value (the tool's ToolType, which drives HITL): the value says + read-or-write, this says how confident that is. MCP_ANNOTATION = from the + tool's read-only/destructive hints; ADMIN_OVERRIDE = an admin set it; + NONE = no usable hint (the effective value then defaults to write); + NATIVE_TOOL_DEFINITION = from a curated native tool (snapshot-derived). + Does not affect runtime behavior. + enum: + - MCP_ANNOTATION + - ADMIN_OVERRIDE + - NONE + - NATIVE_TOOL_DEFINITION + 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" + ServerToolBase: + x-visibility: Preview + x-glean-experimental: + id: 4e3ee791-45e0-4125-845f-4b7701aa983c + introduced: "2026-07-02" + type: object + required: + - toolType + - requestType + - requestId + properties: + requestType: + type: string + description: The type of request made to the user. + x-enumDescriptions: + EXECUTION: Request for approving execution of the tool. + AUTHENTICATION_SUGGESTION: Request for authenticating to a tool, provided as a (tool) suggestion. + VOTE_SUGGESTION: Suggestion to vote for enabling an available-but-not-enabled tool. + x-speakeasy-enum-descriptions: + EXECUTION: Request for approving execution of the tool. + AUTHENTICATION_SUGGESTION: Request for authenticating to a tool, provided as a (tool) suggestion. + VOTE_SUGGESTION: Suggestion to vote for enabling an available-but-not-enabled tool. + enum: + - EXECUTION + - AUTHENTICATION_SUGGESTION + - VOTE_SUGGESTION + requestId: + type: string + description: Unique identifier for this request. + ActionPreview: + description: Preview information for an action being executed. + properties: + markdown: + type: string + description: Markdown preview describing what the action will do. + description: + type: string + description: Short summary of what this specific tool invocation will do. + ServerToolRequest: + x-visibility: Preview + x-glean-experimental: + id: 8544e887-4569-4b14-bde0-d1be9e90dbc3 + introduced: "2026-07-02" + allOf: + - $ref: "#/components/schemas/ServerToolBase" + - type: object + required: + - toolName + properties: + toolDisplayName: + type: string + description: Human-readable display name for the tool. + serverId: + type: string + description: | + Unique identifier of the tool server. Use with GET /tool-servers/{serverId}/auth + to resolve display information and authentication status. + toolCta: + type: string + description: Custom call-to-action (CTA) verb for the approval button (e.g., "Create", "Update", "Send"). + actionPreview: + description: Preview information for this tool request. + $ref: "#/components/schemas/ActionPreview" + AuthContext: + x-visibility: Preview + x-glean-experimental: + id: a7c1d3e5-9f42-4b8a-b6e0-2d4f8a1c3e5b + introduced: "2026-07-09" + type: object + description: | + Context for authentication responses, containing identifiers for the entity being authenticated. + properties: + serverId: + type: string + description: ID of the MCP server (populated when toolType is MCP). + ServerToolResponse: + x-visibility: Preview + x-glean-experimental: + id: 3eae3ee7-2c06-4027-be14-98260a3ce608 + introduced: "2026-07-02" + description: | + Response to a server tool request. The applicable fields depend on requestType: - For EXECUTION requests: - - isGranted: whether tool execution is approved - - reason: optional explanation + For EXECUTION requests: + - isGranted: whether tool execution is approved + - reason: optional explanation - For AUTHENTICATION_SUGGESTION requests: - - isGranted: whether auth completed successfully (true=connected, false=skipped) - - authContext: contains serverId or actionPackId for identifying the authenticated entity - - reason: optional explanation for skip + For AUTHENTICATION_SUGGESTION requests: + - isGranted: whether auth completed successfully (true=connected, false=skipped) + - authContext: contains serverId or actionPackId for identifying the authenticated entity + - reason: optional explanation for skip - For VOTE_SUGGESTION requests: - - voted: whether the user voted for this tool - x-visibility: Preview - x-glean-experimental: - id: 3eae3ee7-2c06-4027-be14-98260a3ce608 - introduced: "2026-07-02" - ChatMessageFragment: - allOf: - - $ref: '#/components/schemas/Result' - - type: object - properties: - text: - type: string - querySuggestion: - $ref: '#/components/schemas/QuerySuggestion' - description: The search queries issued while responding. - file: - $ref: '#/components/schemas/ChatFile' - description: Files referenced in the message fragment. This is used to construct rich-text messages with file references. - action: - $ref: '#/components/schemas/ToolInfo' - description: Basic information about an action. This can be used to construct rich-text messages with action references. - citation: - $ref: '#/components/schemas/ChatMessageCitation' - description: Inline citation. - serverToolRequest: - $ref: '#/components/schemas/ServerToolRequest' - description: request to run a tool on server. - serverToolResponse: - $ref: '#/components/schemas/ServerToolResponse' - description: response corresponding to the server tool request. - 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. - ChatMessage: - properties: - agentConfig: - $ref: '#/components/schemas/AgentConfig' - description: Describes the agent config that generated this message. Populated on responses and not required on requests. - author: - enum: - - USER - - GLEAN_AI - default: USER - 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 - items: - $ref: '#/components/schemas/ChatMessageFragment' - 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. - 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 - enum: - - UPDATE - - CONTENT - - CONTEXT - - CONTROL - - CONTROL_START - - CONTROL_FINISH - - CONTROL_CANCEL - - CONTROL_RETRY - - CONTROL_UNKNOWN - - DEBUG - - DEBUG_EXTERNAL - - ERROR - - HEADING - - WARNING - - SERVER_TOOL - 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. - default: CONTENT - 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. - hasMoreFragments: - type: boolean - description: Signals there are additional response fragments incoming. - deprecated: true - description: A message that is rendered as one coherent unit with one given sender. - ChatRequestBase: - properties: - messages: - type: array - items: - $ref: '#/components/schemas/ChatMessage' - description: A list of chat messages, from most recent to least recent. At least one message must specify a USER author. - sessionInfo: - $ref: '#/components/schemas/SessionInfo' - description: Optional object for tracking the session used by the client and for debugging purposes. - 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. - required: - - messages - description: The minimal set of fields that form a chat 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: - 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. - chat: - $ref: '#/components/schemas/ChatMetadata' - 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. - description: A single response from the /chat backend. - DeleteChatsRequest: - properties: - ids: - type: array - items: - type: string - description: A non-empty list of ids of the Chats to be deleted. - required: - - ids - GetChatRequest: - properties: - id: - type: string - description: The id of the Chat to be retrieved. - required: - - id - Chat: - 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. - description: A historical representation of a series of chat messages a user had with Glean Assistant. - 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 - cursor: - type: string - description: An opaque cursor for fetching the next page of results. If empty, there are no more results. - GetChatApplicationRequest: - properties: - id: - type: string - description: The id of the Chat application to be retrieved. - required: - - id - ChatApplicationDetails: {} - GetChatApplicationResponse: - properties: - application: - $ref: '#/components/schemas/ChatApplicationDetails' - UploadChatFilesRequest: - properties: - files: - type: array - items: - type: string - format: binary - description: Raw files to be uploaded for chat in binary format. - required: - - files - UploadChatFilesResponse: - properties: - files: - type: array - items: - $ref: '#/components/schemas/ChatFile' - description: Files uploaded for chat. - GetChatFilesRequest: - properties: - fileIds: - type: array - items: + For VOTE_SUGGESTION requests: + - voted: whether the user voted for this tool + allOf: + - $ref: "#/components/schemas/ServerToolBase" + - type: object + properties: + isGranted: + type: boolean + description: Whether tool request is granted (indicates approval for execution, or completion for auth). + grantScope: + type: string + description: | + Scope of the approval grant. Only applicable when isGranted is true and requestType is EXECUTION. + default: CURRENT_REQUEST + x-enumDescriptions: + CURRENT_REQUEST: Approve only the current tool request. Future tool execution requests still require approval. + CURRENT_SESSION: Approve the current tool request and auto-approve all future same tool requests in this chat session. + ALWAYS: Approve the current tool request and auto-approve all future same tool requests across all chat sessions. + x-speakeasy-enum-descriptions: + CURRENT_REQUEST: Approve only the current tool request. Future tool execution requests still require approval. + CURRENT_SESSION: Approve the current tool request and auto-approve all future same tool requests in this chat session. + ALWAYS: Approve the current tool request and auto-approve all future same tool requests across all chat sessions. + enum: + - CURRENT_REQUEST + - CURRENT_SESSION + - ALWAYS + authContext: + $ref: "#/components/schemas/AuthContext" + description: Context for AUTHENTICATION_SUGGESTION responses. Required when requestType is AUTHENTICATION_SUGGESTION. + 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" + serverToolRequest: + description: request to run a tool on server. + $ref: "#/components/schemas/ServerToolRequest" + serverToolResponse: + description: response corresponding to the server tool request. + $ref: "#/components/schemas/ServerToolResponse" + 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. + chat: + $ref: "#/components/schemas/ChatMetadata" + 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 + cursor: + type: string + description: An opaque cursor for fetching the next page of results. If empty, there are no more results. + 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. + WorkflowDraftableProperties: + properties: + name: + type: string + description: The name of the workflow. + WorkflowMutableProperties: + type: object + allOf: + - $ref: "#/components/schemas/WorkflowDraftableProperties" + - type: object + CreateWorkflowRequest: + allOf: + - $ref: "#/components/schemas/WorkflowMutableProperties" + - type: object + properties: + transient: + type: boolean + description: Used to create a transient workflow. + parentWorkflowId: + type: string + description: id of the parent workflow for transient workflows + 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. + lastDraftSavedAt: + type: integer + description: Server Unix timestamp of the last time the draft was saved. + lastDraftSavedBy: + description: The person who last saved the draft. + $ref: "#/components/schemas/Person" + lastDraftGitAuthorId: + type: string + description: ID of the VCS user (e.g. GitHub username) who last saved the draft. Set only by the draft save path via the external Git integration API. + lastUpdatedBy: + $ref: "#/components/schemas/Person" + AttributionProperties: {} + 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. + verified: + type: boolean + readOnly: true + description: When present, indicates this workflow is admin-verified. Set via the dedicated admin settings endpoint, not by regular edits. + showOrganizationAsAuthor: + type: boolean + readOnly: true + description: When true, displays organization name instead of author name in agent card. Set via the dedicated admin settings endpoint, not by regular edits. + WorkflowResult: + type: object + required: + - workflow + properties: + workflow: + $ref: "#/components/schemas/Workflow" + CreateWorkflowResponse: + allOf: + - $ref: "#/components/schemas/WorkflowResult" + 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 + EditWorkflowRequest: + allOf: + - $ref: "#/components/schemas/WorkflowMutableProperties" + - type: object + properties: + id: + type: string + description: The workflow ID we want to update. + 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: + - Platform action like bravewebsearch, 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 + name: + type: string + title: Agent Name + description: The name of the agent. + example: HR Policy Agent + 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 - description: IDs of files to fetch. - required: - - fileIds - GetChatFilesResponse: - properties: - files: - type: object - additionalProperties: - $ref: '#/components/schemas/ChatFile' - description: A map of file IDs to ChatFile structs. - DeleteChatFilesRequest: - properties: - fileIds: - type: array - items: + 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 - description: IDs of files to delete. - required: - - fileIds - WorkflowDraftableProperties: - properties: - name: - type: string - description: The name of the workflow. - WorkflowMutableProperties: - type: object - allOf: - - $ref: '#/components/schemas/WorkflowDraftableProperties' - - type: object - CreateWorkflowRequest: - allOf: - - $ref: '#/components/schemas/WorkflowMutableProperties' - - type: object - properties: - transient: - type: boolean - description: Used to create a transient workflow. - parentWorkflowId: - type: string - description: id of the parent workflow for transient workflows - 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. - lastDraftSavedAt: - type: integer - description: Server Unix timestamp of the last time the draft was saved. - lastDraftSavedBy: - $ref: '#/components/schemas/Person' - description: The person who last saved the draft. - lastDraftGitAuthorId: - type: string - description: ID of the VCS user (e.g. GitHub username) who last saved the draft. Set only by the draft save path via the external Git integration API. - lastUpdatedBy: - $ref: '#/components/schemas/Person' - AttributionProperties: {} - 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. - verified: - type: boolean - description: When present, indicates this workflow is admin-verified. Set via the dedicated admin settings endpoint, not by regular edits. - readOnly: true - showOrganizationAsAuthor: - type: boolean - description: When true, displays organization name instead of author name in agent card. Set via the dedicated admin settings endpoint, not by regular edits. - readOnly: true - WorkflowResult: - type: object - properties: - workflow: - $ref: '#/components/schemas/Workflow' - required: - - workflow - CreateWorkflowResponse: - allOf: - - $ref: '#/components/schemas/WorkflowResult' - Agent: - type: object - 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 - 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. - title: Agent Capabilities - additionalProperties: true - description: |- - Describes features that the agent supports. example: { - "ap.io.messages": true, - "ap.io.streaming": true - } - title: Agent - required: - - agent_id - - name - - capabilities - ErrorResponse: - type: object - properties: - message: - type: string - description: Client-facing error message describing what went wrong - description: Error response returned for failed requests - EditWorkflowRequest: - allOf: - - $ref: '#/components/schemas/WorkflowMutableProperties' - - type: object - properties: - id: - type: string - description: The workflow ID we want to update. - ActionSummary: - type: object - 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: - - Platform action like bravewebsearch, 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) - required: - - tool_id - - display_name - description: Represents a minimal summary of an action. - AgentSchemas: - type: object - 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 - 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 - items: - $ref: '#/components/schemas/ActionSummary' - title: Tools - description: List of tools that the agent can invoke. Only included when include_tools query parameter is set to true. - title: AgentSchemas - required: - - agent_id - - input_schema - - output_schema - 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 - properties: - agents: - type: array - items: - $ref: '#/components/schemas/Agent' - title: Response Search Agents - ContentType: - type: string - enum: - - text - Message: - type: object - properties: - role: - type: string - title: Role - description: The role of the message. - example: USER - content: - type: array - items: - type: object - properties: - text: - type: string - type: - $ref: '#/components/schemas/ContentType' - title: MessageTextBlock - required: - - text - - type - title: Content - description: The content of the message. - AgentRunCreate: - type: object - properties: - agent_id: - type: string - title: Agent Id - description: The ID of the agent to run. - input: - type: object - title: Input - additionalProperties: true - description: The input to the agent. Required when the agent uses an input form trigger. - 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 - additionalProperties: true - description: The metadata to pass to the agent. - required: - - agent_id - 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.' - AgentExecutionStatus: - type: string - title: AgentExecutionStatus - enum: - - error - - success - description: The status of the run. One of 'error', 'success'. - 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: - 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. - required: - - collectionId - AddCollectionItemsError: - properties: - errorType: - type: string - enum: - - EXISTING_ITEM - - CORRUPT_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: - properties: - errorCode: - type: string - enum: - - NAME_EXISTS - - NOT_FOUND - - COLLECTION_PINNED - - CONCURRENT_HIERARCHY_EDIT - - HEIGHT_VIOLATION - - WIDTH_VIOLATION - - NO_PERMISSIONS - - CORRUPT_ITEM - required: - - errorCode - CreateCollectionResponse: - allOf: - - type: object - anyOf: - - required: - - collection - - required: + enum: - error - properties: - collection: - $ref: '#/components/schemas/Collection' - error: - $ref: '#/components/schemas/CollectionError' - DeleteCollectionRequest: - 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. - required: - - ids - DeleteCollectionItemRequest: - 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. - required: - - collectionId - - itemId - 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 - properties: - id: - type: integer - description: The ID of the Collection to modify. - required: - - id - EditCollectionResponse: - allOf: - - $ref: '#/components/schemas/Collection' - - $ref: '#/components/schemas/CollectionError' - - type: object - properties: - collection: - $ref: '#/components/schemas/Collection' - error: - $ref: '#/components/schemas/CollectionError' - EditCollectionItemRequest: - 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. - required: - - collectionId - - itemId - EditCollectionItemResponse: - properties: - collection: - $ref: '#/components/schemas/Collection' - description: The modified Collection. Only CollectionItemMutableProperties are set for each item. - GetCollectionRequest: - 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. - required: - - id - GetCollectionResponse: - properties: - collection: - $ref: '#/components/schemas/Collection' - rootCollection: - $ref: '#/components/schemas/Collection' - error: - $ref: '#/components/schemas/CollectionError' - trackingToken: - type: string - description: Use `collection.trackingToken` instead. - deprecated: true - x-glean-deprecated: - id: 2d6ca3a7-4763-4137-9ebd-740568fe8300 - introduced: "2026-05-07" - message: Use `collection.trackingToken` instead. - removal: "2027-01-15" - x-speakeasy-deprecation-message: "Deprecated on 2026-05-07, removal scheduled for 2027-01-15: Use `collection.trackingToken` instead." - 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: - properties: - collections: - type: array - items: - $ref: '#/components/schemas/Collection' - description: List of all Collections, no Collection items are fetched. - required: - - collections - 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: - properties: - documentSpecs: - type: array - items: - $ref: '#/components/schemas/DocumentSpec' - description: The specification for the documents to be retrieved. - includeFields: - type: array - items: + - 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 + - CORRUPT_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 + - CORRUPT_ITEM + 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" + error: + $ref: "#/components/schemas/CollectionError" + trackingToken: + type: string + description: Use `collection.trackingToken` instead. + deprecated: true + x-glean-deprecated: + id: 2d6ca3a7-4763-4137-9ebd-740568fe8300 + introduced: "2026-05-07" + message: Use `collection.trackingToken` instead. + removal: "2027-01-15" + x-speakeasy-deprecation-message: "Deprecated on 2026-05-07, removal scheduled for 2027-01-15: Use `collection.trackingToken` instead." + 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. + managerEmails: + type: array + items: + type: string + description: Manager emails whose teams should be filtered for. Empty array means no filtering. + 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. + managerEmails: + type: array + items: + type: string + description: Manager emails whose teams should be filtered for. Empty array means no filtering. + 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. + managerEmails: + type: array + items: + type: string + description: Manager emails whose teams should be filtered for. Empty array means no filtering. + dayRange: + $ref: "#/components/schemas/Period" + description: Time period for which Insights are requested. + McpInsightsRequest: + properties: + departments: + type: array + items: + type: string + description: Departments for which Insights are requested. + managerIds: + type: array + items: + type: string + description: Manager user IDs whose teams should be filtered for. Empty array means no filtering. + managerEmails: + type: array + items: + type: string + description: Manager emails whose teams should be filtered for. Empty array means no filtering. + dayRange: + $ref: "#/components/schemas/Period" + description: Time period for which Insights are requested. + McpBreakdownInsightsRequest: + properties: + departments: + type: array + items: + type: string + description: Departments for which Insights are requested. + managerIds: + type: array + items: + type: string + description: Manager user IDs whose teams should be filtered for. Empty array means no filtering. + managerEmails: + type: array + items: + type: string + description: Manager emails whose teams should be filtered for. Empty array means no filtering. + dayRange: + $ref: "#/components/schemas/Period" + description: Time period for which Insights are requested. + breakdownType: + type: string + enum: + - USERS + - HOST_APPLICATIONS + - TOOLS + - SERVERS + description: Type of breakdown to return. + hostApplications: + type: array + items: + type: string + description: Host applications to filter by. Empty array means all host applications. + tools: + type: array + items: + type: string + description: MCP tools to filter by. Empty array means all tools. + servers: + type: array + items: + type: string + description: MCP servers to filter by. Empty array means all servers. + 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. + mcpRequest: + $ref: "#/components/schemas/McpInsightsRequest" + description: If specified, will return data for the MCP section of the Insights Dashboard. + mcpBreakdownRequest: + $ref: "#/components/schemas/McpBreakdownInsightsRequest" + 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. + weeklyActiveUsers: + type: integer + description: Number of current Weekly Active Users. + 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" + searchActiveUsers: + $ref: "#/components/schemas/CurrentActiveUsers" + description: Search-specific active user counts for the specified departments. + assistantActiveUsers: + $ref: "#/components/schemas/CurrentActiveUsers" + description: Assistant-specific active user counts for the specified departments. + agentsActiveUsers: + $ref: "#/components/schemas/CurrentActiveUsers" + description: Agents-specific active user counts for the specified departments. + mcpActiveUsers: + $ref: "#/components/schemas/CurrentActiveUsers" + description: MCP active user counts for the specified departments. + 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. + numMcpCalls: + type: integer + description: Total number of MCP calls 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. + deprecated: true + x-glean-deprecated: + id: 2652ea73-3e33-4409-ba8c-bda7b60a2c24 + introduced: "2026-05-13" + message: This property is no longer supported. Please contact Support for alternatives. + removal: "2027-01-15" + x-speakeasy-deprecation-message: "Deprecated on 2026-05-13, removal scheduled for 2027-01-15: This property is no longer supported. Please contact Support for alternatives." + 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" + mcpMonthlyActiveUserTimeseries: + $ref: "#/components/schemas/LabeledCountInfo" + mcpWeeklyActiveUserTimeseries: + $ref: "#/components/schemas/LabeledCountInfo" + mcpDailyActiveUserTimeseries: + $ref: "#/components/schemas/LabeledCountInfo" + searchesTimeseries: + $ref: "#/components/schemas/LabeledCountInfo" + assistantInteractionsTimeseries: + $ref: "#/components/schemas/LabeledCountInfo" + agentRunsTimeseries: + $ref: "#/components/schemas/LabeledCountInfo" + mcpCallsTimeseries: + $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. + owner: + $ref: "#/components/schemas/Person" + description: | + The creator/owner of the agent. Absent if agent is deleted or owner is unknown. + AgentUseCaseInsight: + properties: + useCase: + type: string + description: Use case name + runCount: + type: integer + description: Total number of runs for this use case over the specified time period. + trend: + type: number + format: float + description: Percentage change in runs compared to the previous equivalent time period. + topDepartments: + type: string + description: Comma-separated list of the top departments using this use case. + topAgentId: + type: string + description: ID of the most-used agent for this use case. + topAgentName: + type: string + description: Name of the most-used agent for this use case. + topAgentIcon: + $ref: "#/components/schemas/IconConfig" + description: Icon of the most-used agent for this use case. + topAgentIsDeleted: + type: boolean + description: Indicates whether the top agent has been deleted. + 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. + AgentsTimeSavedInsight: + 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 + runCount: + type: integer + description: Total number of runs for this agent over the specified time period. + minsPerRun: + type: number + format: float + description: Average minutes saved per run for this agent over the specified time period. + feedbackUserCount: + type: integer + description: Total number of users who provided feedback on time saved for this agent 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" + topUseCasesInsights: + type: array + items: + $ref: "#/components/schemas/AgentUseCaseInsight" + agentsUsageByDepartmentInsights: + type: array + items: + $ref: "#/components/schemas/AgentsUsageByDepartmentInsight" + agentUsersInsights: + type: array + items: + $ref: "#/components/schemas/AgentUsersInsight" + agentsTimeSavedInsights: + type: array + items: + $ref: "#/components/schemas/AgentsTimeSavedInsight" + description: Insights for agents time saved over the specified time period. + dailyAgentRunsTimeseries: + $ref: "#/components/schemas/LabeledCountInfo" + successfulRunsTimeseries: + $ref: "#/components/schemas/LabeledCountInfo" + failedRunsTimeseries: + $ref: "#/components/schemas/LabeledCountInfo" + pausedRunsTimeseries: + $ref: "#/components/schemas/LabeledCountInfo" + upvotesTimeseries: + $ref: "#/components/schemas/LabeledCountInfo" + downvotesTimeseries: + $ref: "#/components/schemas/LabeledCountInfo" + McpInsightsResponse: + allOf: + - $ref: "#/components/schemas/CurrentActiveUsers" + - type: object + properties: + dailyActiveUsers: + type: integer + description: Number of current Daily Active Users. + monthlyActiveUserTimeseries: + $ref: "#/components/schemas/LabeledCountInfo" + weeklyActiveUserTimeseries: + $ref: "#/components/schemas/LabeledCountInfo" + dailyActiveUserTimeseries: + $ref: "#/components/schemas/LabeledCountInfo" + overallDailyActiveUserTimeseries: + $ref: "#/components/schemas/LabeledCountInfo" + topHostApplicationsActiveUserTimeseries: + type: array + items: + $ref: "#/components/schemas/LabeledCountInfo" + McpUserBreakdown: + properties: + person: + $ref: "#/components/schemas/Person" + totalCalls: + type: integer + description: Total number of MCP calls made by this user in the specified time period. + hostApplications: + type: array + items: + type: string + description: Host applications used by this user in the specified time period. + tools: + type: array + items: + type: string + description: MCP tools used by this user in the specified time period. + servers: + type: array + items: + type: string + description: MCP servers used by this user in the specified time period. + McpHostApplicationBreakdown: + properties: + hostApplication: + type: string + description: Host application name. + totalCalls: + type: integer + description: Total number of MCP calls made from this host application in the specified time period. + activeUsers: + type: integer + description: Total number of active users from this host application in the specified time period. + McpToolBreakdown: + properties: + tool: + type: string + description: MCP tool name. + totalCalls: + type: integer + description: Total number of MCP calls for this tool in the specified time period. + activeUsers: + type: integer + description: Total number of active users for this tool in the specified time period. + hostApplications: + type: array + items: + type: string + description: Host applications using this tool in the specified time period. + McpServerBreakdown: + properties: + server: + type: string + description: MCP server name. + totalCalls: + type: integer + description: Total number of MCP calls for this server in the specified time period. + activeUsers: + type: integer + description: Total number of active users for this server in the specified time period. + hostApplications: + type: array + items: + type: string + description: Host applications using this server in the specified time period. + McpBreakdownInsightsResponse: + properties: + usersBreakdown: + type: array + items: + $ref: "#/components/schemas/McpUserBreakdown" + hostApplicationsBreakdown: + type: array + items: + $ref: "#/components/schemas/McpHostApplicationBreakdown" + toolsBreakdown: + type: array + items: + $ref: "#/components/schemas/McpToolBreakdown" + serversBreakdown: + type: array + items: + $ref: "#/components/schemas/McpServerBreakdown" + 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" + mcpResponse: + $ref: "#/components/schemas/McpInsightsResponse" + mcpBreakdownResponse: + $ref: "#/components/schemas/McpBreakdownInsightsResponse" + 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 + - PODCAST + - TASK + - PLAN_MY_DAY + - END_MY_DAY + - STARTER_KIT + - MID_DAY_CATCH_UP + - QUERY_SUGGESTION + - COWORK_CUJ_PROMO + - CARD_STACK_PROMO + - WEEKLY_MEETINGS + - FOLLOW_UP + - MILESTONE_TIMELINE_CHECK + - PROJECT_DISCUSSION_DIGEST + - PROJECT_FOCUS_BLOCK + - PROJECT_NEXT_STEP + - DEMO_CARD + - OOO_PLANNER + - OOO_CATCH_UP + - ADMIN_HEALTH_CENTER + 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: - - LAST_VIEWED_AT - - VISITORS_COUNT - - RECENT_SHARES - - DOCUMENT_CONTENT - - CUSTOM_METADATA - description: List of Document fields to return (that aren't returned by default) - required: - - documentSpecs - DocumentOrError: - oneOf: - - $ref: '#/components/schemas/Document' - - type: object - properties: - error: - type: string - description: The text for error, reason. - x-is-error-field: true - required: - - error - x-omit-error-on-success: true - GetDocumentsResponse: - properties: - documents: - type: object - additionalProperties: - $ref: '#/components/schemas/DocumentOrError' - description: The document details or the error if document is not found. - GetDocumentsByFacetsRequest: - 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. - required: - - filterSets - 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. - managerEmails: - type: array - items: - type: string - description: Manager emails whose teams should be filtered for. Empty array means no filtering. - 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. - managerEmails: - type: array - items: - type: string - description: Manager emails whose teams should be filtered for. Empty array means no filtering. - 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. - managerEmails: - type: array - items: - type: string - description: Manager emails whose teams should be filtered for. Empty array means no filtering. - dayRange: - $ref: '#/components/schemas/Period' - description: Time period for which Insights are requested. - McpInsightsRequest: - properties: - departments: - type: array - items: - type: string - description: Departments for which Insights are requested. - managerIds: - type: array - items: - type: string - description: Manager user IDs whose teams should be filtered for. Empty array means no filtering. - managerEmails: - type: array - items: - type: string - description: Manager emails whose teams should be filtered for. Empty array means no filtering. - dayRange: - $ref: '#/components/schemas/Period' - description: Time period for which Insights are requested. - McpBreakdownInsightsRequest: - properties: - departments: - type: array - items: - type: string - description: Departments for which Insights are requested. - managerIds: - type: array - items: - type: string - description: Manager user IDs whose teams should be filtered for. Empty array means no filtering. - managerEmails: - type: array - items: - type: string - description: Manager emails whose teams should be filtered for. Empty array means no filtering. - dayRange: - $ref: '#/components/schemas/Period' - description: Time period for which Insights are requested. - breakdownType: - type: string - enum: - - USERS - - HOST_APPLICATIONS - - TOOLS - - SERVERS - description: Type of breakdown to return. - hostApplications: - type: array - items: - type: string - description: Host applications to filter by. Empty array means all host applications. - tools: - type: array - items: - type: string - description: MCP tools to filter by. Empty array means all tools. - servers: - type: array - items: - type: string - description: MCP servers to filter by. Empty array means all servers. - InsightsRequest: - properties: - overviewRequest: - $ref: '#/components/schemas/InsightsOverviewRequest' - description: If specified, will return data for the Overview section of the Insights Dashboard. - x-visibility: Public - assistantRequest: - $ref: '#/components/schemas/InsightsAssistantRequest' - description: If specified, will return data for the Assistant section of the Insights Dashboard. - x-visibility: Public - agentsRequest: - $ref: '#/components/schemas/AgentsInsightsV2Request' - description: If specified, will return data for the Agents section of the Insights Dashboard. - x-visibility: Public - mcpRequest: - $ref: '#/components/schemas/McpInsightsRequest' - description: If specified, will return data for the MCP section of the Insights Dashboard. - mcpBreakdownRequest: - $ref: '#/components/schemas/McpBreakdownInsightsRequest' - disablePerUserInsights: - type: boolean - description: If true, suppresses the generation of per-user Insights in the response. Default is false. - UserActivityInsight: - 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' - required: - - user - - activity - 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. - weeklyActiveUsers: - type: integer - description: Number of current Weekly Active Users. - 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' - searchActiveUsers: - $ref: '#/components/schemas/CurrentActiveUsers' - description: Search-specific active user counts for the specified departments. - assistantActiveUsers: - $ref: '#/components/schemas/CurrentActiveUsers' - description: Assistant-specific active user counts for the specified departments. - agentsActiveUsers: - $ref: '#/components/schemas/CurrentActiveUsers' - description: Agents-specific active user counts for the specified departments. - mcpActiveUsers: - $ref: '#/components/schemas/CurrentActiveUsers' - description: MCP active user counts for the specified departments. - extensionSummary: - $ref: '#/components/schemas/CurrentActiveUsers' - ugcSummary: - $ref: '#/components/schemas/CurrentActiveUsers' - LabeledCountInfo: - 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. - required: - - label - 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. - numMcpCalls: - type: integer - description: Total number of MCP calls 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. - deprecated: true - x-glean-deprecated: - id: 2652ea73-3e33-4409-ba8c-bda7b60a2c24 - introduced: "2026-05-13" - message: This property is no longer supported. Please contact Support for alternatives. - removal: "2027-01-15" - x-speakeasy-deprecation-message: "Deprecated on 2026-05-13, removal scheduled for 2027-01-15: This property is no longer supported. Please contact Support for alternatives." - 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' - mcpMonthlyActiveUserTimeseries: - $ref: '#/components/schemas/LabeledCountInfo' - mcpWeeklyActiveUserTimeseries: - $ref: '#/components/schemas/LabeledCountInfo' - mcpDailyActiveUserTimeseries: - $ref: '#/components/schemas/LabeledCountInfo' - searchesTimeseries: - $ref: '#/components/schemas/LabeledCountInfo' - assistantInteractionsTimeseries: - $ref: '#/components/schemas/LabeledCountInfo' - agentRunsTimeseries: - $ref: '#/components/schemas/LabeledCountInfo' - mcpCallsTimeseries: - $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. - owner: - $ref: '#/components/schemas/Person' - description: | - The creator/owner of the agent. Absent if agent is deleted or owner is unknown. - AgentUseCaseInsight: - properties: - useCase: - type: string - description: Use case name - runCount: - type: integer - description: Total number of runs for this use case over the specified time period. - trend: - type: number - format: float - description: Percentage change in runs compared to the previous equivalent time period. - topDepartments: - type: string - description: Comma-separated list of the top departments using this use case. - topAgentId: - type: string - description: ID of the most-used agent for this use case. - topAgentName: - type: string - description: Name of the most-used agent for this use case. - topAgentIcon: - $ref: '#/components/schemas/IconConfig' - description: Icon of the most-used agent for this use case. - topAgentIsDeleted: - type: boolean - description: Indicates whether the top agent has been deleted. - 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. - AgentsTimeSavedInsight: - 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 - runCount: - type: integer - description: Total number of runs for this agent over the specified time period. - minsPerRun: - type: number - format: float - description: Average minutes saved per run for this agent over the specified time period. - feedbackUserCount: - type: integer - description: Total number of users who provided feedback on time saved for this agent 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' - topUseCasesInsights: - type: array - items: - $ref: '#/components/schemas/AgentUseCaseInsight' - agentsUsageByDepartmentInsights: - type: array - items: - $ref: '#/components/schemas/AgentsUsageByDepartmentInsight' - agentUsersInsights: - type: array - items: - $ref: '#/components/schemas/AgentUsersInsight' - agentsTimeSavedInsights: - type: array - items: - $ref: '#/components/schemas/AgentsTimeSavedInsight' - description: Insights for agents time saved over the specified time period. - dailyAgentRunsTimeseries: - $ref: '#/components/schemas/LabeledCountInfo' - successfulRunsTimeseries: - $ref: '#/components/schemas/LabeledCountInfo' - failedRunsTimeseries: - $ref: '#/components/schemas/LabeledCountInfo' - pausedRunsTimeseries: - $ref: '#/components/schemas/LabeledCountInfo' - upvotesTimeseries: - $ref: '#/components/schemas/LabeledCountInfo' - downvotesTimeseries: - $ref: '#/components/schemas/LabeledCountInfo' - McpInsightsResponse: - allOf: - - $ref: '#/components/schemas/CurrentActiveUsers' - - type: object - properties: - dailyActiveUsers: - type: integer - description: Number of current Daily Active Users. - monthlyActiveUserTimeseries: - $ref: '#/components/schemas/LabeledCountInfo' - weeklyActiveUserTimeseries: - $ref: '#/components/schemas/LabeledCountInfo' - dailyActiveUserTimeseries: - $ref: '#/components/schemas/LabeledCountInfo' - overallDailyActiveUserTimeseries: - $ref: '#/components/schemas/LabeledCountInfo' - topHostApplicationsActiveUserTimeseries: - type: array - items: - $ref: '#/components/schemas/LabeledCountInfo' - McpUserBreakdown: - properties: - person: - $ref: '#/components/schemas/Person' - totalCalls: - type: integer - description: Total number of MCP calls made by this user in the specified time period. - hostApplications: - type: array - items: - type: string - description: Host applications used by this user in the specified time period. - tools: - type: array - items: + - External Event + EventStrategyName: type: string - description: MCP tools used by this user in the specified time period. - servers: - type: array - items: + 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: MCP servers used by this user in the specified time period. - McpHostApplicationBreakdown: - properties: - hostApplication: - type: string - description: Host application name. - totalCalls: - type: integer - description: Total number of MCP calls made from this host application in the specified time period. - activeUsers: - type: integer - description: Total number of active users from this host application in the specified time period. - McpToolBreakdown: - properties: - tool: - type: string - description: MCP tool name. - totalCalls: - type: integer - description: Total number of MCP calls for this tool in the specified time period. - activeUsers: - type: integer - description: Total number of active users for this tool in the specified time period. - hostApplications: - type: array - items: + 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: Host applications using this tool in the specified time period. - McpServerBreakdown: - properties: - server: - type: string - description: MCP server name. - totalCalls: - type: integer - description: Total number of MCP calls for this server in the specified time period. - activeUsers: - type: integer - description: Total number of active users for this server in the specified time period. - hostApplications: - type: array - items: + 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. + cta: + type: string + description: Button text to show for the suggestion action. + feature: + type: string + description: Targeted Glean Chat feature for the suggestion. + sourceDocumentIds: + type: array + items: + type: string + description: Document IDs that grounded 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" + 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" + 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. + 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 + - PODCAST + - TASK + - PLAN_MY_DAY + - END_MY_DAY + - STARTER_KIT_EXTENSION + - STARTER_KIT_ORG_CHART + - STARTER_KIT_ADD_DOC + - MEETING_RECAP + - ACTIVE_DISCUSSION + - MID_DAY_CATCH_UP + - QUERY_SUGGESTION + - COWORK_CUJ_PROMO + - CARD_STACK_PROMO + - WEEKLY_MEETINGS + - FOLLOW_UP + - MILESTONE_TIMELINE_CHECK + - PROJECT_DISCUSSION_DIGEST + - PROJECT_FOCUS_BLOCK + - PROJECT_NEXT_STEP + - DEMO_CARD + - OOO_PLANNER + - OOO_CATCH_UP + - ADMIN_HEALTH_CENTER + 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 + - PODCAST + - TASK + - PLAN_MY_DAY + - END_MY_DAY + - STARTER_KIT + - MID_DAY_CATCH_UP + - QUERY_SUGGESTION + - COWORK_CUJ_PROMO + - CARD_STACK_PROMO + - WEEKLY_MEETINGS + - FOLLOW_UP + - MILESTONE_TIMELINE_CHECK + - PROJECT_DISCUSSION_DIGEST + - PROJECT_FOCUS_BLOCK + - PROJECT_NEXT_STEP + - DEMO_CARD + - OOO_PLANNER + - OOO_CATCH_UP + - ADMIN_HEALTH_CENTER + 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. + placementReason: + type: string + enum: + - ORGANIC + - PROMO + description: Placement source for ranked feed results. ORGANIC means the card was emitted by normal feed ranking. PROMO means the card was inserted by the homepage cards promo framework. + 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: Host applications using this server in the specified time period. - McpBreakdownInsightsResponse: - properties: - usersBreakdown: - type: array - items: - $ref: '#/components/schemas/McpUserBreakdown' - hostApplicationsBreakdown: - type: array - items: - $ref: '#/components/schemas/McpHostApplicationBreakdown' - toolsBreakdown: - type: array - items: - $ref: '#/components/schemas/McpToolBreakdown' - serversBreakdown: - type: array - items: - $ref: '#/components/schemas/McpServerBreakdown' - InsightsResponse: - properties: - gleanAssist: - $ref: '#/components/schemas/GleanAssistInsightsResponse' - deprecated: true - 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' - mcpResponse: - $ref: '#/components/schemas/McpInsightsResponse' - mcpBreakdownResponse: - $ref: '#/components/schemas/McpBreakdownInsightsResponse' - MessagesRequest: - 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. - required: - - id - - idType - - datasource - InvalidOperatorValueError: - properties: - key: - type: string - description: The operator key that has an invalid value. - value: - type: string - description: The invalid operator value. - ErrorMessage: - properties: - source: - type: string - description: The datasource this message relates to. - 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 - items: - $ref: '#/components/schemas/InvalidOperatorValueError' - description: Indicates results could not be fetched due to invalid operators in the query. - 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: - 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: + 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 + ActionAuthType: 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. - required: - - warningType - 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: + description: | + Authentication mechanism used by an action pack. + - `AUTH_USER_OAUTH`: Requires per-user OAuth consent to the third-party tool. + - `AUTH_ADMIN`: Uses a service-account / admin-owned credential. End users do not authorize individually. + - `AUTH_NONE`: Action pack requires no authentication. + enum: + - AUTH_USER_OAUTH + - AUTH_ADMIN + - AUTH_NONE + ActionPackAuthStatus: + type: object + required: + - authenticated + - authType + properties: + authenticated: + type: boolean + description: Whether the calling user is already authenticated to the tool backing the action pack. + authType: + $ref: "#/components/schemas/ActionAuthType" + ActionPackAuthStatusResponse: + type: object + required: + - actionPack + properties: + actionPack: + $ref: "#/components/schemas/ActionPackAuthStatus" + description: | + Action-pack-scoped authentication status. Wrapped under `actionPack` so the response + shape clearly conveys that the status applies to the whole pack and leaves room to add + sibling fields (e.g. per-action status) later without a breaking change. + AuthorizeActionPackRequest: + type: object + required: + - returnUrl + properties: + returnUrl: + type: string + description: | + URL on the customer's domain to redirect the end user's browser back to after the third-party OAuth + callback completes. Must be present in the tenant's return URL allowlist. + AuthorizeActionPackResponse: + type: object + required: + - redirectUrl + properties: + redirectUrl: + type: string + description: | + URL that the customer UI should navigate the end user to in order to begin the third-party OAuth flow. + After the user consents, control returns to `returnUrl` from the request. + ToolServerAuthStatus: 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 - description: The value that should be set in the FacetFilter when applying this filter to a search request. - example: engineering - integerValue: - type: integer - example: 5 - displayLabel: - type: string - description: An optional user-friendly label to display in place of the facet value. - example: engineering - iconConfig: - $ref: '#/components/schemas/IconConfig' - FacetBucket: - properties: - count: - type: integer - description: Estimated number of results in this facet. - example: 1 - datasource: - type: string - description: The datasource the value belongs to. This will be used by the all tab to show types across all datasources. - example: jira - 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 - items: - $ref: '#/components/schemas/FacetBucket' - description: A list of unique buckets that exist within this result set. - 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 + description: Authentication status for the calling user. + enum: + - AWAITING_AUTH + - AUTHORIZED + ToolServerAuthStatusResponse: + type: object + required: + - authStatus + - authType + properties: + displayName: + type: string + description: Human-readable name of the tool server. + logoUrl: + type: string + description: Logo URL for the tool server. + description: + type: string + description: Brief description of the tool server. + authStatus: + $ref: "#/components/schemas/ToolServerAuthStatus" + authType: + $ref: "#/components/schemas/ActionAuthType" + AuthorizeToolServerRequest: + type: object + required: + - returnUrl + properties: + returnUrl: + type: string + description: | + URL to redirect the end user's browser back to after the OAuth flow completes. + Must be present in the tenant's configured return URL allowlist. + AuthorizeToolServerResponse: + type: object + required: + - authorizationUrl + properties: + authorizationUrl: + type: string + description: | + URL that the client should navigate the end user to in order to begin the OAuth flow. + After the user consents, control returns to `returnUrl` from the request. + 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. + nativeAppUrl: + type: string + description: A deep link, if available, into the datasource's native application for the user's platform (e.g. slack://channel/message). + 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: - stringValue: stringValue - integerValue: 5 - - percentage: 5 - count: 1 + description: Must be a string, a number (for INT properties), or an array of strings. A boolean 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: - stringValue: stringValue - integerValue: 5 - sourceName: sourceName - operatorName: operatorName - objectType: objectType - rewrittenQuery: rewrittenQuery - rewrittenFacetFilters: - - fieldName: fieldName - values: - - fieldValues - - fieldValues - - fieldName: fieldName - values: - - fieldValues - - fieldValues - MessagesResponse: - 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' - required: - - hasMore - 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: - properties: - pins: - type: array - items: - $ref: '#/components/schemas/PinDocument' - description: List of pinned documents. - required: - - pins - 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 - format: date-time - description: The ISO 8601 timestamp associated with the client request. - 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 - 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. - example: 100 - 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: - 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. - required: - - query - 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 - items: - type: string - enum: - - ADDITIONAL_DOCUMENT - - APP - - BROWSER_HISTORY - - DATASOURCE - - DOCUMENT - - ENTITY - - GOLINK - - HISTORY - - CHAT_HISTORY - - NEW_CHAT - - OPERATOR - - OPERATOR_VALUE - - QUICKLINK - - SUGGESTION - description: Filter to only return results of the given type(s). All types may be returned if omitted. - 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 - items: - $ref: '#/components/schemas/AuthToken' - description: Auth tokens which may be used for federated results. - example: - trackingToken: trackingToken - query: what is a que - datasource: GDRIVE - resultSize: 10 - OperatorScope: - properties: - datasource: - type: string - docType: - type: string - OperatorMetadata: - 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. - required: - - name - example: - name: Last Updated - operatorType: DATE - scopes: - - datasource: GDRIVE - docType: Document - - datasource: ZENDESK - Quicklink: - 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 - items: + 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: + $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: Upload status, enum of NOT_UPLOADED, UPLOADED, STATUS_UNKNOWN enum: - - APP_CARD - - AUTOCOMPLETE_EXACT_MATCH - - AUTOCOMPLETE_FUZZY_MATCH - - AUTOCOMPLETE_ZERO_QUERY - - NEW_TAB_PAGE - description: The scopes for which this quicklink is applicable - description: An action for a specific datasource that will show up in autocomplete and app card, e.g. "Create new issue" for jira. - AutocompleteResult: - 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) - required: - - result - - result_type - example: - result: sample result - resultType: DOCUMENT - score: 4.56 - url: https://www.example.com/ - trackingToken: abcd - metadata: - - datasource: confluence - - objectType: page - AutocompleteResultGroup: - 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. - description: A subsection of the results list from which distinct sections should be created. - 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: - 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: + - UPLOADED + - NOT_UPLOADED + - STATUS_UNKNOWN + example: UPLOADED + DebugDocumentLifecycleRequest: type: object + description: Describes the request body of the /debug/{datasource}/document/events API call. 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' - required: - - resultSize - FeedRequest: - properties: - categories: - type: array - items: + 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" + CustomMetadataPutRequest: + type: object + description: Request body for adding or updating custom metadata on a document + properties: + customMetadata: + type: array + description: Array of custom metadata key-value pairs + items: + $ref: "#/components/schemas/CustomProperty" + required: + - customMetadata + CustomMetadataSchema: + type: object + description: Schema for custom metadata containing metadata key definitions + properties: + metadataKeys: + type: array + description: Array of metadata key definitions + items: + $ref: "#/components/schemas/CustomMetadataPropertyDefinition" + required: + - metadataKeys + 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 + 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: + 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 - - PODCAST - - TASK - - PLAN_MY_DAY - - END_MY_DAY - - STARTER_KIT - - MID_DAY_CATCH_UP - - QUERY_SUGGESTION - - COWORK_CUJ_PROMO - - CARD_STACK_PROMO - - WEEKLY_MEETINGS - - FOLLOW_UP - - MILESTONE_TIMELINE_CHECK - - PROJECT_DISCUSSION_DIGEST - - PROJECT_FOCUS_BLOCK - - PROJECT_NEXT_STEP - - DEMO_CARD - - OOO_PLANNER - - OOO_CATCH_UP - - ADMIN_HEALTH_CENTER - 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' - required: - - refreshType - DisplayableListFormat: - properties: - format: - type: string - enum: - - LIST - description: defines how to render this particular displayable list card - DisplayableListItemUIConfig: - type: object - properties: - showNewIndicator: - type: boolean - description: show a "New" pill next to the item - description: UI configurations for each item of the list - ConferenceData: - properties: - provider: - type: string - enum: - - ZOOM - - HANGOUTS - uri: - type: string - description: A permalink for the conference. - source: - type: string - enum: - - NATIVE_CONFERENCE - - LOCATION - - DESCRIPTION - required: - - provider - - uri - EventClassificationName: - type: string - enum: - - External Event - description: The name for a generated classification of an event. - EventStrategyName: - type: string - enum: - - customerCard - - news - - call - - email - - meetingNotes - - linkedIn - - relevantDocuments - - chatFollowUps - - conversations - description: The name of method used to surface relevant data for a given calendar event. - EventClassification: - properties: - name: - $ref: '#/components/schemas/EventClassificationName' - strategies: - type: array - items: - $ref: '#/components/schemas/EventStrategyName' - description: A generated classification of a given event. - StructuredLink: - 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' - description: The display configuration for a link. - GeneratedAttachmentContent: - properties: - displayHeader: - type: string - description: The header describing the generated content. - text: - type: string - description: The content that has been generated. - description: Content that has been generated or extrapolated from the documents present in the document field. - example: - displayHeader: Action Items - content: You said you'd send over the design document after the meeting. - GeneratedAttachment: - 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: - type: array - items: - $ref: '#/components/schemas/StructuredLink' - description: A list of links to external sources outside of Glean. - content: - type: array - items: - $ref: '#/components/schemas/GeneratedAttachmentContent' - description: These are attachments that aren't natively present on the event, and have been smartly suggested. - CalendarEvent: - 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' - required: - - id - - url - SectionType: - type: string - enum: - - CHANNEL - - MENTIONS - - TOPIC - 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. - UpdateType: - type: string - enum: - - ACTIONABLE - - INFORMATIVE - 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 - DigestUpdate: - type: object - properties: - urls: - type: array - items: - type: string - description: List of URLs for similar updates that are grouped together and rendered as a single update. - 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 - 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. - required: - - id - - type - - updates - 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. - cta: - type: string - description: Button text to show for the suggestion action. - feature: - type: string - description: Targeted Glean Chat feature for the suggestion. - sourceDocumentIds: - type: array - items: - type: string - description: Document IDs that grounded the suggestion. - PromptTemplateMutableProperties: - 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 - items: - $ref: '#/components/schemas/UserRoleSpecification' - description: A list of added user roles for the Workflow. - removedRoles: - type: array - items: - $ref: '#/components/schemas/UserRoleSpecification' - description: A list of removed user roles for the Workflow. - required: - - template - 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 - items: - $ref: '#/components/schemas/UserRoleSpecification' - description: A list of roles for this prompt template explicitly granted. - 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. - 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: - 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 - - PODCAST - - TASK - - PLAN_MY_DAY - - END_MY_DAY - - STARTER_KIT_EXTENSION - - STARTER_KIT_ORG_CHART - - STARTER_KIT_ADD_DOC - - MEETING_RECAP - - ACTIVE_DISCUSSION - - MID_DAY_CATCH_UP - - QUERY_SUGGESTION - - COWORK_CUJ_PROMO - - CARD_STACK_PROMO - - WEEKLY_MEETINGS - - FOLLOW_UP - - MILESTONE_TIMELINE_CHECK - - PROJECT_DISCUSSION_DIGEST - - PROJECT_FOCUS_BLOCK - - PROJECT_NEXT_STEP - - DEMO_CARD - - OOO_PLANNER - - OOO_CATCH_UP - - ADMIN_HEALTH_CENTER - 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' - required: - - title - FeedResult: - 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 - - PODCAST - - TASK - - PLAN_MY_DAY - - END_MY_DAY - - STARTER_KIT - - MID_DAY_CATCH_UP - - QUERY_SUGGESTION - - COWORK_CUJ_PROMO - - CARD_STACK_PROMO - - WEEKLY_MEETINGS - - FOLLOW_UP - - MILESTONE_TIMELINE_CHECK - - PROJECT_DISCUSSION_DIGEST - - PROJECT_FOCUS_BLOCK - - PROJECT_NEXT_STEP - - DEMO_CARD - - OOO_PLANNER - - OOO_CATCH_UP - - ADMIN_HEALTH_CENTER - 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. - placementReason: - type: string - enum: - - ORGANIC - - PROMO - description: Placement source for ranked feed results. ORGANIC means the card was emitted by normal feed ranking. PROMO means the card was inserted by the homepage cards promo framework. - required: - - category - - primaryEntry - FeedResponse: - 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. - required: - - serverTimestamp - 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: - type: array - items: - $ref: '#/components/schemas/SearchResultProminenceEnum' - description: The types of prominence wanted in results returned. Default is any type. - 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: - type: array - items: - $ref: '#/components/schemas/SortOptions' - description: Use EntitiesSortOrder enum for SortOptions.sortBy - entityType: - type: string - enum: - - PEOPLE - - TEAMS - - CUSTOM_ENTITIES - default: PEOPLE - 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: - 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 and regexes that are allow-listed during the scans. If any finding picked up by a rule exactly matches a term, or matches a regex, in the allow-list, it will not be counted as a violation. + properties: + terms: + type: array + description: list of words and phrases to consider as whitelisted content + items: + type: string + regexes: + type: array + description: list of regular expressions whose matches are considered 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 - description: List of entity fields to return (that aren't returned by default) - pageSize: - type: integer - description: Hint to the server about how many results to send back. Server may return less. - example: 100 - 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 - enum: - - STANDARD - - FULL_DIRECTORY - description: The type of request being made. - default: STANDARD - 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. - EntitiesSortOrder: - type: string - enum: - - ENTITY_NAME - - FIRST_NAME - - LAST_NAME - - ORG_SIZE_COUNT - - START_DATE - - TEAM_SIZE - - RELEVANCE - description: Different ways of sorting entities - 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 - items: - $ref: '#/components/schemas/EntitiesSortOrder' - description: Sort options from EntitiesSortOrder supported for this response. Default is empty list. - customFacetNames: - type: array - items: - type: string - description: list of Person attributes that are custom setup by deployment - 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: - 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 - description: List of PersonMetadata fields to return (that aren't returned by default) - includeTypes: - 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 - 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. - 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: - properties: - data: - $ref: '#/components/schemas/ShortcutMutableProperties' - required: - - data - 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 - properties: - alias: - type: string - description: The alias for the shortcut, including any arguments for variable shortcuts. - required: - - alias - 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: - properties: - includeFields: - 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. FALSE_POSITIVE ranks below LOW and marks analyses that concluded every flagged entity is a detector false positive. + x-include-enum-class-prefix: true enum: - - FACETS - - PEOPLE_DETAILS - description: Array of fields/data to be included in response that are not included by default - 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. - required: - - pageSize - ShortcutsPaginationMetadata: - properties: - cursor: - type: string - description: Cursor indicates the start of the next page of results - hasNextPage: - type: boolean - totalItemCount: - type: integer - ListShortcutsPaginatedResponse: - 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 - required: - - shortcuts - - meta - 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: - properties: - timestamp: - type: string - format: date-time - description: The ISO 8601 timestamp associated with the client request. - 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. - required: - - documentSpecs - description: Summary of the document - 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: - 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"). - required: - - documentId - VerificationFeed: - properties: - documents: - type: array - items: - $ref: '#/components/schemas/Verification' - description: List of document infos that include verification related information for them. - VerifyRequest: - properties: - documentId: - type: string - description: The document which is verified. - action: - type: string - enum: - - VERIFY - - DEPRECATE - - UNVERIFY - description: The verification action requested. - required: - - documentId - ToolParameter: - type: object - properties: - type: - type: string - enum: - - string - - number - - boolean - - object - - array - description: Parameter type (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 - items: - type: string - description: The possible values for the parameter. Can contain only primitive values or arrays of primitive values. - items: - $ref: '#/components/schemas/ToolParameter' - type: object - description: When type is 'array', this describes the structure of the item in the array. - properties: - type: object - additionalProperties: - $ref: '#/components/schemas/ToolParameter' - description: When type is 'object', this describes the structure of the object. - Tool: - type: object - properties: - type: - type: string - enum: - - READ - - WRITE - description: Type of tool (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 - additionalProperties: - $ref: '#/components/schemas/ToolParameter' - description: The parameters for the tool. Each key is the name of the parameter and the value is the parameter object. - ToolsListResponse: - type: object - properties: - tools: - type: array - items: - $ref: '#/components/schemas/Tool' - ToolsCallParameter: - type: object - 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 - items: - $ref: '#/components/schemas/ToolsCallParameter' - description: The value of the parameter (for array types) - properties: - type: object - additionalProperties: - $ref: '#/components/schemas/ToolsCallParameter' - description: The value of the parameter (for object types) - required: - - name - - value - ToolsCallRequest: - type: object - properties: - name: - type: string - description: Required name of the tool to execute - parameters: - type: object - additionalProperties: - $ref: '#/components/schemas/ToolsCallParameter' - description: The parameters for the tool. Each key is the name of the parameter and the value is the parameter object. - required: - - name - - parameters - ToolsCallResponse: - type: object - properties: - rawResponse: - type: object - additionalProperties: true - description: The raw response from the tool - error: - type: string - description: The error message if applicable - ActionAuthType: - type: string - enum: - - AUTH_USER_OAUTH - - AUTH_ADMIN - - AUTH_NONE - description: | - Authentication mechanism used by an action pack. - - `AUTH_USER_OAUTH`: Requires per-user OAuth consent to the third-party tool. - - `AUTH_ADMIN`: Uses a service-account / admin-owned credential. End users do not authorize individually. - - `AUTH_NONE`: Action pack requires no authentication. - ActionPackAuthStatus: - type: object - properties: - authenticated: - type: boolean - description: Whether the calling user is already authenticated to the tool backing the action pack. - authType: - $ref: '#/components/schemas/ActionAuthType' - required: - - authenticated - - authType - ActionPackAuthStatusResponse: - type: object - properties: - actionPack: - $ref: '#/components/schemas/ActionPackAuthStatus' - description: | - Action-pack-scoped authentication status. Wrapped under `actionPack` so the response - shape clearly conveys that the status applies to the whole pack and leaves room to add - sibling fields (e.g. per-action status) later without a breaking change. - required: - - actionPack - AuthorizeActionPackRequest: - type: object - properties: - returnUrl: - type: string - description: | - URL on the customer's domain to redirect the end user's browser back to after the third-party OAuth - callback completes. Must be present in the tenant's return URL allowlist. - required: - - returnUrl - AuthorizeActionPackResponse: - type: object - properties: - redirectUrl: - type: string - description: | - URL that the customer UI should navigate the end user to in order to begin the third-party OAuth flow. - After the user consents, control returns to `returnUrl` from the request. - required: - - redirectUrl - ToolServerAuthStatus: - type: string - enum: - - AWAITING_AUTH - - AUTHORIZED - description: Authentication status for the calling user. - ToolServerAuthStatusResponse: - type: object - properties: - displayName: - type: string - description: Human-readable name of the tool server. - logoUrl: - type: string - description: Logo URL for the tool server. - description: - type: string - description: Brief description of the tool server. - authStatus: - $ref: '#/components/schemas/ToolServerAuthStatus' - authType: - $ref: '#/components/schemas/ActionAuthType' - required: - - authStatus - - authType - AuthorizeToolServerRequest: - type: object - properties: - returnUrl: - type: string - description: | - URL to redirect the end user's browser back to after the OAuth flow completes. - Must be present in the tenant's configured return URL allowlist. - required: - - returnUrl - AuthorizeToolServerResponse: - type: object - properties: - authorizationUrl: - type: string - description: | - URL that the client should navigate the end user to in order to begin the OAuth flow. - After the user consents, control returns to `returnUrl` from the request. - required: - - authorizationUrl - 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. - nativeAppUrl: - type: string - description: A deep link, if available, into the datasource's native application for the user's platform (e.g. slack://channel/message). - 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 be a string, a number (for INT properties), or an array of strings. A boolean 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: - 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-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: - $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 - CustomMetadataPutRequest: - type: object - properties: - customMetadata: - type: array - items: - $ref: '#/components/schemas/CustomProperty' - description: Array of custom metadata key-value pairs - required: - - customMetadata - description: Request body for adding or updating custom metadata on a document - CustomMetadataSchema: - type: object - properties: - metadataKeys: - type: array - items: - $ref: '#/components/schemas/CustomMetadataPropertyDefinition' - description: Array of metadata key definitions - required: - - metadataKeys - description: Schema for custom metadata containing metadata key definitions - 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: + - UNSPECIFIED + - LOW + - MEDIUM + - HIGH + - FALSE_POSITIVE + DlpIssueStatus: type: string + description: Status of a DLP issue. + x-include-enum-class-prefix: true 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-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: - 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-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 - 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-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 - 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-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: - 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-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: - 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-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" - 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-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: - type: array - items: - $ref: '#/components/schemas/SensitiveExpression' - description: DEPRECATED - use 'customSensitiveExpressions' instead. - deprecated: true - 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: - type: array - items: - $ref: '#/components/schemas/SensitiveExpression' - description: DEPRECATED - use 'customSensitiveExpressions' instead. - deprecated: true - 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: - 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 - regexes: - type: array - items: - type: string - description: list of regular expressions whose matches are considered whitelisted content - description: Terms and regexes that are allow-listed during the scans. If any finding picked up by a rule exactly matches a term, or matches a regex, in the allow-list, it will not be counted as a violation. - 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-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: - $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-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: - $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 - DlpIssueStatus: - type: string - enum: - - OPEN - - CLOSED - - IN_PROGRESS - - RESOLVED - description: Status of a DLP issue. - 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' - statuses: - type: array - items: - $ref: '#/components/schemas/DlpIssueStatus' - timeRange: - $ref: '#/components/schemas/TimeRangeFilter' - archived: - type: boolean - DlpIssueFilter: - properties: - searchText: - type: string - description: Text to search for in issue fields. - statuses: - type: array - items: - $ref: '#/components/schemas/DlpIssueStatus' - description: Filter by one or more issue statuses. - assigneeId: - type: string - description: Filter by assignee user ID. - infoType: - type: string - regexId: - type: string - reportIds: - type: array - items: - type: string - description: Filter by one or more report/policy IDs. - docId: - type: string - datasource: - type: string - visibility: - type: string - severities: - type: array - items: - $ref: '#/components/schemas/DlpSeverity' - description: Filter by one or more severity levels. - timeRange: - $ref: '#/components/schemas/TimeRangeFilter' - description: Filter for DLP issues. Includes document-level filters and issue-specific filters. - 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 - exportType: - type: string - enum: - - FINDINGS - - DOCUMENTS - - ISSUES - description: The type of export to perform - filter: - $ref: '#/components/schemas/DlpFindingFilter' - description: The filters used to export the findings. Set for FINDINGS and DOCUMENTS exports. - issueFilter: - $ref: '#/components/schemas/DlpIssueFilter' - description: The filters used for ISSUES exports. - 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 - - ISSUES - description: The type of export to perform - filter: - $ref: '#/components/schemas/DlpFindingFilter' - issueFilter: - $ref: '#/components/schemas/DlpIssueFilter' - description: Filter for ISSUE-level exports. Used when exportType is ISSUES. - 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 - ConfigurationValue: - type: object - properties: - value: - type: string - description: The configuration value as a string. Only one of value or valueList should be populated. - valueList: - type: array - items: + - OPEN + - CLOSED + - IN_PROGRESS + - RESOLVED + 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" + statuses: + type: array + items: + $ref: "#/components/schemas/DlpIssueStatus" + timeRange: + $ref: "#/components/schemas/TimeRangeFilter" + archived: + type: boolean + DlpIssueFilter: + description: Filter for DLP issues. Includes document-level filters and issue-specific filters. + properties: + searchText: + type: string + description: Text to search for in issue fields. + statuses: + type: array + items: + $ref: "#/components/schemas/DlpIssueStatus" + description: Filter by one or more issue statuses. + assigneeId: + type: string + description: Filter by assignee user ID. + infoType: + type: string + regexId: + type: string + reportIds: + type: array + items: + type: string + description: Filter by one or more report/policy IDs. + docId: + type: string + datasource: + type: string + visibility: + type: string + severities: + type: array + items: + $ref: "#/components/schemas/DlpSeverity" + description: Filter by one or more severity levels. + timeRange: + $ref: "#/components/schemas/TimeRangeFilter" + 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 + exportType: + type: string + description: The type of export to perform + enum: + - FINDINGS + - DOCUMENTS + - ISSUES + filter: + $ref: "#/components/schemas/DlpFindingFilter" + description: The filters used to export the findings. Set for FINDINGS and DOCUMENTS exports. + issueFilter: + $ref: "#/components/schemas/DlpIssueFilter" + description: The filters used for ISSUES exports. + 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 + - ISSUES + filter: + $ref: "#/components/schemas/DlpFindingFilter" + issueFilter: + $ref: "#/components/schemas/DlpIssueFilter" + description: Filter for ISSUE-level exports. Used when exportType is ISSUES. + 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 + 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" + DatasourceCredentialStatus: + description: | + Lifecycle state of the credentials installed for a datasource instance. Mirrors the internal admin Status enum so the handler can surface the same health signals already tracked today. EXPIRING_SOON is represented as VALID_WITH_WARNINGS (with detail in `message`); EXPIRED is surfaced as INVALID plus a non-null `expiresAt` in the past. type: string - description: The configuration value as a list of strings. Only one of value or valueList should be populated. - description: A single configuration value, either a scalar or a list - ConfigurationValues: - type: object - additionalProperties: - $ref: '#/components/schemas/ConfigurationValue' - description: A map from configuration key names to their values - DatasourceInstanceConfiguration: - type: object - properties: - values: - $ref: '#/components/schemas/ConfigurationValues' - required: - - values - description: Configuration for a datasource instance - DatasourceConfigurationResponse: - type: object - properties: - configuration: - $ref: '#/components/schemas/DatasourceInstanceConfiguration' - required: - - configuration - description: | - The greenlisted configuration values for a datasource instance. Only keys that are exposed via the public API greenlist are included. - UpdateDatasourceConfigurationRequest: - type: object - properties: - configuration: - $ref: '#/components/schemas/DatasourceInstanceConfiguration' - required: - - configuration - description: | - Request to update greenlisted configuration values for a datasource instance. Only keys that are exposed via the public API greenlist may be set. - DatasourceCredentialStatus: - type: string - enum: - - VALID - - VALID_WITH_WARNINGS - - VALIDATING - - INVALID - - MISSING - description: | - Lifecycle state of the credentials installed for a datasource instance. Mirrors the internal admin Status enum so the handler can surface the same health signals already tracked today. EXPIRING_SOON is represented as VALID_WITH_WARNINGS (with detail in `message`); EXPIRED is surfaced as INVALID plus a non-null `expiresAt` in the past. - DatasourceCredentialStatusResponse: - type: object - properties: - status: - $ref: '#/components/schemas/DatasourceCredentialStatus' - lastRotatedAt: - type: string - format: date-time - description: When the credentials were last rotated. Omitted when not known. - expiresAt: - type: string - format: date-time - description: | - When the active credentials expire. Omitted when not known or not applicable to this credential type. - message: - type: string - description: Optional human-readable detail about the current credential status. - required: - - status - description: Status of the credentials currently installed for a datasource instance. - RotateDatasourceCredentialsRequest: - type: object - properties: - credentials: - $ref: '#/components/schemas/DatasourceInstanceConfiguration' - required: - - credentials - description: | - Request to rotate the credentials used by a datasource instance. Replaces the active credential material with the supplied values. - `credentials.values` must contain only keys recognized as credential material for the datasource type (for example `clientSecret` for OAuth, `apiToken` for API-token auth, `privateKey` for certificate auth). Unrecognized keys, or keys that correspond to non-credential configuration, cause a 400; use the configure endpoint to change non-credential config. - 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 - CustomMetadataPropertyDefinition: - type: object - description: The definition for a key within a Custom Metadata schema. Only the fields applicable to Custom Metadata are exposed. - properties: - name: - type: string - description: The name of the metadata key. - propertyType: - type: string - enum: - - TEXT - - PICKLIST - - TEXTLIST - - MULTIPICKLIST - description: The type of metadata key. This governs the search and faceting behavior. - skipIndexing: - type: boolean - description: If true then the property will not be indexed for retrieval and ranking. - required: - - name - - propertyType - responses: - PlatformBadRequest: - description: Invalid request (malformed JSON, invalid parameter values, unknown fields). - content: - application/problem+json: - schema: - $ref: "#/components/schemas/PlatformProblemDetail" - PlatformUnauthorized: - description: Missing or invalid authentication token. - content: - application/problem+json: - schema: - $ref: "#/components/schemas/PlatformProblemDetail" - PlatformForbidden: - description: Token valid but lacks permission for the requested operation. - content: - application/problem+json: - schema: - $ref: "#/components/schemas/PlatformProblemDetail" - PlatformNotFound: - description: Resource not found. - content: - application/problem+json: - schema: - $ref: "#/components/schemas/PlatformProblemDetail" - PlatformRequestTimeout: - description: Backend did not respond within the timeout window. - content: - application/problem+json: - schema: - $ref: "#/components/schemas/PlatformProblemDetail" - PlatformRequestTooLarge: - description: Request body exceeds the maximum allowed size. - content: - application/problem+json: - schema: - $ref: "#/components/schemas/PlatformProblemDetail" - PlatformTooManyRequests: - description: Rate limit exceeded. Includes Retry-After header. - content: - application/problem+json: - schema: - $ref: "#/components/schemas/PlatformProblemDetail" - PlatformInternalServerError: - description: Unexpected server-side failure. - content: - application/problem+json: - schema: - $ref: "#/components/schemas/PlatformProblemDetail" - PlatformServiceUnavailable: - description: Backend temporarily unavailable. - content: - application/problem+json: - schema: - $ref: "#/components/schemas/PlatformProblemDetail" - PlatformConflict: - description: Request conflicts with current state of the resource. - content: - application/problem+json: - schema: - $ref: "#/components/schemas/PlatformProblemDetail" - 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' - 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 - datasourceInstanceId: - name: datasourceInstanceId - in: path - description: The full datasource instance identifier (e.g. o365sharepoint_abc123) - required: true - schema: - type: string - example: o365sharepoint_abc123 + enum: + - VALID + - VALID_WITH_WARNINGS + - VALIDATING + - INVALID + - MISSING + DatasourceCredentialStatusResponse: + description: Status of the credentials currently installed for a datasource instance. + type: object + required: + - status + properties: + status: + $ref: "#/components/schemas/DatasourceCredentialStatus" + lastRotatedAt: + description: When the credentials were last rotated. Omitted when not known. + type: string + format: date-time + expiresAt: + description: | + When the active credentials expire. Omitted when not known or not applicable to this credential type. + type: string + format: date-time + message: + description: Optional human-readable detail about the current credential status. + type: string + RotateDatasourceCredentialsRequest: + description: | + Request to rotate the credentials used by a datasource instance. Replaces the active credential material with the supplied values. + `credentials.values` must contain only keys recognized as credential material for the datasource type (for example `clientSecret` for OAuth, `apiToken` for API-token auth, `privateKey` for certificate auth). Unrecognized keys, or keys that correspond to non-credential configuration, cause a 400; use the configure endpoint to change non-credential config. + type: object + required: + - credentials + properties: + credentials: + $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 + CustomMetadataPropertyDefinition: + type: object + description: The definition for a key within a Custom Metadata schema. Only the fields applicable to Custom Metadata are exposed. + properties: + name: + type: string + description: The name of the metadata key. + propertyType: + type: string + enum: + - TEXT + - PICKLIST + - TEXTLIST + - MULTIPICKLIST + description: The type of metadata key. This governs the search and faceting behavior. + skipIndexing: + type: boolean + description: If true then the property will not be indexed for retrieval and ranking. + required: + - name + - propertyType + responses: + PlatformBadRequest: + description: Invalid request (malformed JSON, invalid parameter values, unknown fields). + content: + application/problem+json: + schema: + $ref: "#/components/schemas/PlatformProblemDetail" + PlatformUnauthorized: + description: Missing or invalid authentication token. + content: + application/problem+json: + schema: + $ref: "#/components/schemas/PlatformProblemDetail" + PlatformForbidden: + description: Token valid but lacks permission for the requested operation. + content: + application/problem+json: + schema: + $ref: "#/components/schemas/PlatformProblemDetail" + PlatformNotFound: + description: Resource not found. + content: + application/problem+json: + schema: + $ref: "#/components/schemas/PlatformProblemDetail" + PlatformRequestTimeout: + description: Backend did not respond within the timeout window. + content: + application/problem+json: + schema: + $ref: "#/components/schemas/PlatformProblemDetail" + PlatformRequestTooLarge: + description: Request body exceeds the maximum allowed size. + content: + application/problem+json: + schema: + $ref: "#/components/schemas/PlatformProblemDetail" + PlatformTooManyRequests: + description: Rate limit exceeded. Includes Retry-After header. + content: + application/problem+json: + schema: + $ref: "#/components/schemas/PlatformProblemDetail" + PlatformInternalServerError: + description: Unexpected server-side failure. + content: + application/problem+json: + schema: + $ref: "#/components/schemas/PlatformProblemDetail" + PlatformServiceUnavailable: + description: Backend temporarily unavailable. + content: + application/problem+json: + schema: + $ref: "#/components/schemas/PlatformProblemDetail" + PlatformConflict: + description: Request conflicts with current state of the resource. + content: + application/problem+json: + schema: + $ref: "#/components/schemas/PlatformProblemDetail" + 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" + 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 + datasourceInstanceId: + name: datasourceInstanceId + in: path + description: The full datasource instance identifier (e.g. o365sharepoint_abc123) + required: true + schema: + type: string + example: o365sharepoint_abc123 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. -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: 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 14e7687a..518d9bc1 100644 --- a/.speakeasy/tests.arazzo.yaml +++ b/.speakeasy/tests.arazzo.yaml @@ -158863,3 +158863,33 @@ workflows: type: simple x-speakeasy-test-group: tools x-speakeasy-test-rebuild: true + - workflowId: platform-skills-list + steps: + - stepId: test + operationId: platform-skills-list + successCriteria: + - condition: $statusCode == 200 + - condition: $response.header.Content-Type == application/json + - context: $response.body + condition: | + {"skills":[],"has_more":true,"next_cursor":"","request_id":""} + type: simple + x-speakeasy-test-group: skills + x-speakeasy-test-rebuild: true + - workflowId: platform-skills-get + steps: + - stepId: test + operationId: platform-skills-get + parameters: + - name: skill_id + in: path + value: + successCriteria: + - condition: $statusCode == 200 + - condition: $response.header.Content-Type == application/json + - context: $response.body + condition: | + {"skill":{"id":"","display_name":"Chad_Herzog","description":"whenever up aha controvert","latest_version":151495,"latest_minor_version":170771,"status":"DISABLED","origin":"CUSTOM","owner":{"name":""},"created_at":"2024-12-25T16:41:00.099Z","updated_at":"2026-12-07T21:59:59.375Z"},"request_id":""} + type: simple + x-speakeasy-test-group: skills + x-speakeasy-test-rebuild: true diff --git a/.speakeasy/workflow.lock b/.speakeasy/workflow.lock index 4a110f2e..a4e82156 100644 --- a/.speakeasy/workflow.lock +++ b/.speakeasy/workflow.lock @@ -1,9 +1,9 @@ -speakeasyVersion: 1.789.2 +speakeasyVersion: 1.790.1 sources: Glean API: sourceNamespace: glean-api-specs - sourceRevisionDigest: sha256:145236c33451e6e87cf1507a4d8829678b0df02af59afc9341330627e33ed760 - sourceBlobDigest: sha256:862b1370a65d146eac83f86c6fbd2d787f04ea93c2cf28259af5ded934f9fb3b + sourceRevisionDigest: sha256:d8dce2f55b0829af79f9f36e8ba5447f2205fa6feba605227574779b40241530 + sourceBlobDigest: sha256:2fdfcf2e8c4a610a292c4c9b4b521976019fbe0e4e1fa25c9fe84c8b7fbbfff8 tags: - latest Glean Client API: @@ -16,10 +16,10 @@ targets: glean: source: Glean API sourceNamespace: glean-api-specs - sourceRevisionDigest: sha256:145236c33451e6e87cf1507a4d8829678b0df02af59afc9341330627e33ed760 - sourceBlobDigest: sha256:862b1370a65d146eac83f86c6fbd2d787f04ea93c2cf28259af5ded934f9fb3b + sourceRevisionDigest: sha256:d8dce2f55b0829af79f9f36e8ba5447f2205fa6feba605227574779b40241530 + sourceBlobDigest: sha256:2fdfcf2e8c4a610a292c4c9b4b521976019fbe0e4e1fa25c9fe84c8b7fbbfff8 codeSamplesNamespace: glean-api-specs-python-code-samples - codeSamplesRevisionDigest: sha256:4a0a1ec3489f36483dc6080dacec4d40157b2e8d34be15e06417ddfc2e4f090a + codeSamplesRevisionDigest: sha256:300f404bf48b814ca4f4541aea63f0888be0b91499fbaecfeec0b9e4854f11d1 workflow: workflowVersion: 1.0.0 speakeasyVersion: latest diff --git a/README.md b/README.md index ee043e79..f448f5dd 100644 --- a/README.md +++ b/README.md @@ -549,6 +549,11 @@ For more information on obtaining the appropriate token type, please contact you * [query](docs/sdks/search/README.md#query) - Search +### [Skills](docs/sdks/skills/README.md) + +* [list](docs/sdks/skills/README.md#list) - List skills +* [retrieve](docs/sdks/skills/README.md#retrieve) - Retrieve skill + diff --git a/RELEASES.md b/RELEASES.md index 4631a03d..eb2c9e26 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -798,4 +798,14 @@ Based on: ### Generated - [python v0.15.3] . ### Releases -- [PyPI v0.15.3] https://pypi.org/project/glean-api-client/0.15.3 - . \ No newline at end of file +- [PyPI v0.15.3] https://pypi.org/project/glean-api-client/0.15.3 - . + +## 2026-07-15 11:18:46 +### Changes +Based on: +- OpenAPI Doc +- Speakeasy CLI 1.790.1 (2.918.1) https://github.com/speakeasy-api/speakeasy +### Generated +- [python v0.15.4] . +### Releases +- [PyPI v0.15.4] https://pypi.org/project/glean-api-client/0.15.4 - . \ No newline at end of file diff --git a/docs/models/actiontypesource.md b/docs/models/actiontypesource.md new file mode 100644 index 00000000..bde2a8b4 --- /dev/null +++ b/docs/models/actiontypesource.md @@ -0,0 +1,31 @@ +# ActionTypeSource + +Analytics-only signal (product snapshot) describing WHERE the action's +read/write determination came from. Complementary to the effective +read/write value (the tool's ToolType, which drives HITL): the value says +read-or-write, this says how confident that is. MCP_ANNOTATION = from the +tool's read-only/destructive hints; ADMIN_OVERRIDE = an admin set it; +NONE = no usable hint (the effective value then defaults to write); +NATIVE_TOOL_DEFINITION = from a curated native tool (snapshot-derived). +Does not affect runtime behavior. + + +## Example Usage + +```python +from glean.api_client.models import ActionTypeSource + +value = ActionTypeSource.MCP_ANNOTATION + +# Open enum: unrecognized values are captured as UnrecognizedStr +``` + + +## Values + +| Name | Value | +| ------------------------ | ------------------------ | +| `MCP_ANNOTATION` | MCP_ANNOTATION | +| `ADMIN_OVERRIDE` | ADMIN_OVERRIDE | +| `NONE` | NONE | +| `NATIVE_TOOL_DEFINITION` | NATIVE_TOOL_DEFINITION | \ No newline at end of file diff --git a/docs/models/dlpfindingfilter.md b/docs/models/dlpfindingfilter.md index 24d1a901..083bd836 100644 --- a/docs/models/dlpfindingfilter.md +++ b/docs/models/dlpfindingfilter.md @@ -3,16 +3,16 @@ ## Fields -| Field | Type | Required | Description | -| ---------------------------------------------------------------- | ---------------------------------------------------------------- | ---------------------------------------------------------------- | ---------------------------------------------------------------- | -| `info_type` | *Optional[str]* | :heavy_minus_sign: | N/A | -| `regex_id` | *Optional[str]* | :heavy_minus_sign: | N/A | -| `report_id` | *Optional[str]* | :heavy_minus_sign: | N/A | -| `datasource` | *Optional[str]* | :heavy_minus_sign: | N/A | -| `visibility` | *Optional[str]* | :heavy_minus_sign: | N/A | -| `document_ids` | List[*str*] | :heavy_minus_sign: | N/A | -| `severity` | [Optional[models.DlpSeverity]](../models/dlpseverity.md) | :heavy_minus_sign: | Severity levels for DLP findings and analyses. | -| `document_severity` | List[[models.DlpSeverity](../models/dlpseverity.md)] | :heavy_minus_sign: | N/A | -| `statuses` | List[[models.DlpIssueStatus](../models/dlpissuestatus.md)] | :heavy_minus_sign: | N/A | -| `time_range` | [Optional[models.TimeRangeFilter]](../models/timerangefilter.md) | :heavy_minus_sign: | N/A | -| `archived` | *Optional[bool]* | :heavy_minus_sign: | N/A | \ No newline at end of file +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `info_type` | *Optional[str]* | :heavy_minus_sign: | N/A | +| `regex_id` | *Optional[str]* | :heavy_minus_sign: | N/A | +| `report_id` | *Optional[str]* | :heavy_minus_sign: | N/A | +| `datasource` | *Optional[str]* | :heavy_minus_sign: | N/A | +| `visibility` | *Optional[str]* | :heavy_minus_sign: | N/A | +| `document_ids` | List[*str*] | :heavy_minus_sign: | N/A | +| `severity` | [Optional[models.DlpSeverity]](../models/dlpseverity.md) | :heavy_minus_sign: | Severity levels for DLP findings and analyses. FALSE_POSITIVE ranks below LOW and marks analyses that concluded every flagged entity is a detector false positive. | +| `document_severity` | List[[models.DlpSeverity](../models/dlpseverity.md)] | :heavy_minus_sign: | N/A | +| `statuses` | List[[models.DlpIssueStatus](../models/dlpissuestatus.md)] | :heavy_minus_sign: | N/A | +| `time_range` | [Optional[models.TimeRangeFilter]](../models/timerangefilter.md) | :heavy_minus_sign: | N/A | +| `archived` | *Optional[bool]* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/dlpseverity.md b/docs/models/dlpseverity.md index 4083ea25..657e9962 100644 --- a/docs/models/dlpseverity.md +++ b/docs/models/dlpseverity.md @@ -1,6 +1,6 @@ # DlpSeverity -Severity levels for DLP findings and analyses. +Severity levels for DLP findings and analyses. FALSE_POSITIVE ranks below LOW and marks analyses that concluded every flagged entity is a detector false positive. ## Example Usage @@ -15,9 +15,10 @@ value = DlpSeverity.UNSPECIFIED ## Values -| Name | Value | -| ------------- | ------------- | -| `UNSPECIFIED` | UNSPECIFIED | -| `LOW` | LOW | -| `MEDIUM` | MEDIUM | -| `HIGH` | HIGH | \ No newline at end of file +| Name | Value | +| ---------------- | ---------------- | +| `UNSPECIFIED` | UNSPECIFIED | +| `LOW` | LOW | +| `MEDIUM` | MEDIUM | +| `HIGH` | HIGH | +| `FALSE_POSITIVE` | FALSE_POSITIVE | \ No newline at end of file diff --git a/docs/models/platformskill.md b/docs/models/platformskill.md new file mode 100644 index 00000000..f803434a --- /dev/null +++ b/docs/models/platformskill.md @@ -0,0 +1,18 @@ +# PlatformSkill + + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | +| `id` | *str* | :heavy_check_mark: | Glean skill ID. | +| `display_name` | *str* | :heavy_check_mark: | Human-readable skill name. | +| `description` | *str* | :heavy_check_mark: | Human-readable skill description. | +| `latest_version` | *int* | :heavy_check_mark: | Latest major version number for the skill. | +| `latest_minor_version` | *int* | :heavy_check_mark: | Latest minor version number for the skill. | +| `status` | [models.PlatformSkillStatus](../models/platformskillstatus.md) | :heavy_check_mark: | Current skill status. | +| `origin` | [models.PlatformSkillOrigin](../models/platformskillorigin.md) | :heavy_check_mark: | Source category for the skill. | +| `source_provenance` | [Optional[models.PlatformSkillSourceProvenance]](../models/platformskillsourceprovenance.md) | :heavy_minus_sign: | N/A | +| `owner` | [models.PlatformPersonReference](../models/platformpersonreference.md) | :heavy_check_mark: | A lightweight reference to a person, used where a payload merely points at someone. | +| `created_at` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_check_mark: | Time the skill was created. | +| `updated_at` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_check_mark: | Time the skill was last updated. | \ No newline at end of file diff --git a/docs/models/platformskillgetresponse.md b/docs/models/platformskillgetresponse.md new file mode 100644 index 00000000..305445c7 --- /dev/null +++ b/docs/models/platformskillgetresponse.md @@ -0,0 +1,9 @@ +# PlatformSkillGetResponse + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------ | ------------------------------------------------------ | ------------------------------------------------------ | ------------------------------------------------------ | +| `skill` | [models.PlatformSkill](../models/platformskill.md) | :heavy_check_mark: | N/A | +| `request_id` | *str* | :heavy_check_mark: | Platform-generated request ID for support correlation. | \ No newline at end of file diff --git a/docs/models/platformskillorigin.md b/docs/models/platformskillorigin.md new file mode 100644 index 00000000..ca7bf36f --- /dev/null +++ b/docs/models/platformskillorigin.md @@ -0,0 +1,18 @@ +# PlatformSkillOrigin + +Source category for the skill. + +## Example Usage + +```python +from glean.api_client.models import PlatformSkillOrigin + +value = PlatformSkillOrigin.CUSTOM +``` + + +## Values + +| Name | Value | +| -------- | -------- | +| `CUSTOM` | CUSTOM | \ No newline at end of file diff --git a/docs/models/platformskillsgetrequest.md b/docs/models/platformskillsgetrequest.md new file mode 100644 index 00000000..19aeb1fe --- /dev/null +++ b/docs/models/platformskillsgetrequest.md @@ -0,0 +1,8 @@ +# PlatformSkillsGetRequest + + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `skill_id` | *str* | :heavy_check_mark: | Glean skill ID. | \ No newline at end of file diff --git a/docs/models/platformskillslistrequest.md b/docs/models/platformskillslistrequest.md new file mode 100644 index 00000000..ebf0ada9 --- /dev/null +++ b/docs/models/platformskillslistrequest.md @@ -0,0 +1,9 @@ +# PlatformSkillsListRequest + + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `page_size` | *Optional[int]* | :heavy_minus_sign: | Maximum number of skills to return. | +| `cursor` | *Optional[str]* | :heavy_minus_sign: | Opaque pagination cursor from a previous response. | \ No newline at end of file diff --git a/docs/models/platformskillslistresponse.md b/docs/models/platformskillslistresponse.md new file mode 100644 index 00000000..1adcf3fe --- /dev/null +++ b/docs/models/platformskillslistresponse.md @@ -0,0 +1,11 @@ +# PlatformSkillsListResponse + + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------- | --------------------------------------------------------------------- | --------------------------------------------------------------------- | --------------------------------------------------------------------- | +| `skills` | List[[models.PlatformSkill](../models/platformskill.md)] | :heavy_check_mark: | Skills available to the user. | +| `has_more` | *bool* | :heavy_check_mark: | Whether additional results are available. | +| `next_cursor` | *Nullable[str]* | :heavy_check_mark: | Cursor for the next page, or null when no more results are available. | +| `request_id` | *str* | :heavy_check_mark: | Platform-generated request ID for support correlation. | \ No newline at end of file diff --git a/docs/models/platformskillsourceprovenance.md b/docs/models/platformskillsourceprovenance.md new file mode 100644 index 00000000..e7728f1b --- /dev/null +++ b/docs/models/platformskillsourceprovenance.md @@ -0,0 +1,13 @@ +# PlatformSkillSourceProvenance + + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | +| `source_url` | *Optional[str]* | :heavy_minus_sign: | URL of the external source the skill was imported from. | +| `commit_sha` | *Optional[str]* | :heavy_minus_sign: | Source commit SHA for the imported skill. | +| `imported_at` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_minus_sign: | Time the skill was imported. | +| `last_synced_at` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_minus_sign: | Time the skill was last synced from its source. | +| `sync_status` | [Optional[models.PlatformSkillSyncStatus]](../models/platformskillsyncstatus.md) | :heavy_minus_sign: | Current external-source sync status. | +| `sync_error` | *Optional[str]* | :heavy_minus_sign: | Human-readable sync failure reason, present only when sync_status is SYNC_FAILED. | \ No newline at end of file diff --git a/docs/models/platformskillstatus.md b/docs/models/platformskillstatus.md new file mode 100644 index 00000000..566f1092 --- /dev/null +++ b/docs/models/platformskillstatus.md @@ -0,0 +1,22 @@ +# PlatformSkillStatus + +Current skill status. + +## Example Usage + +```python +from glean.api_client.models import PlatformSkillStatus + +value = PlatformSkillStatus.DRAFT + +# Open enum: unrecognized values are captured as UnrecognizedStr +``` + + +## Values + +| Name | Value | +| ---------- | ---------- | +| `DRAFT` | DRAFT | +| `ENABLED` | ENABLED | +| `DISABLED` | DISABLED | \ No newline at end of file diff --git a/docs/models/platformskillsyncstatus.md b/docs/models/platformskillsyncstatus.md new file mode 100644 index 00000000..36b3ddd9 --- /dev/null +++ b/docs/models/platformskillsyncstatus.md @@ -0,0 +1,22 @@ +# PlatformSkillSyncStatus + +Current external-source sync status. + +## Example Usage + +```python +from glean.api_client.models import PlatformSkillSyncStatus + +value = PlatformSkillSyncStatus.UP_TO_DATE + +# Open enum: unrecognized values are captured as UnrecognizedStr +``` + + +## Values + +| Name | Value | +| ------------------ | ------------------ | +| `UP_TO_DATE` | UP_TO_DATE | +| `UPDATE_AVAILABLE` | UPDATE_AVAILABLE | +| `SYNC_FAILED` | SYNC_FAILED | \ No newline at end of file diff --git a/docs/models/toolmetadata.md b/docs/models/toolmetadata.md index 1ef5b029..ee94179e 100644 --- a/docs/models/toolmetadata.md +++ b/docs/models/toolmetadata.md @@ -5,23 +5,24 @@ The manifest for a tool that can be used to augment Glean Assistant. ## Fields -| Field | Type | Required | Description | Example | -| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `type` | [models.ToolMetadataType](../models/toolmetadatatype.md) | :heavy_check_mark: | The type of tool. | | -| `name` | *str* | :heavy_check_mark: | Unique identifier for the tool. Name should be understandable by the LLM, and will be used to invoke a tool. | | -| `display_name` | *str* | :heavy_check_mark: | Human understandable name of the tool. Max 50 characters. | | -| `tool_id` | *Optional[str]* | :heavy_minus_sign: | An opaque id which is unique identifier for the tool. | | -| `display_description` | *str* | :heavy_check_mark: | Description of the tool meant for a human. | | -| `logo_url` | *Optional[str]* | :heavy_minus_sign: | URL used to fetch the logo. | | -| `object_name` | *Optional[str]* | :heavy_minus_sign: | Name of the generated object. This will be used to indicate to the end user what the generated object contains. | [
"HR ticket",
"Email",
"Chat message"
] | -| `knowledge_type` | [Optional[models.KnowledgeType]](../models/knowledgetype.md) | :heavy_minus_sign: | Indicates the kind of knowledge a tool would access or modify. | | -| `created_by` | [Optional[models.PersonObject]](../models/personobject.md) | :heavy_minus_sign: | N/A | | -| `last_updated_by` | [Optional[models.PersonObject]](../models/personobject.md) | :heavy_minus_sign: | N/A | | -| `created_at` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_minus_sign: | The time the tool was created in ISO format (ISO 8601) | | -| `last_updated_at` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_minus_sign: | The time the tool was last updated in ISO format (ISO 8601) | | -| `write_action_type` | [Optional[models.WriteActionType]](../models/writeactiontype.md) | :heavy_minus_sign: | 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. | | -| `auth_type` | [Optional[models.AuthType]](../models/authtype.md) | :heavy_minus_sign: | 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` | [Optional[models.AuthConfig]](../models/authconfig.md) | :heavy_minus_sign: | Config for tool's authentication method. | | -| `permissions` | [Optional[models.ObjectPermissions]](../models/objectpermissions.md) | :heavy_minus_sign: | N/A | | -| `usage_instructions` | *Optional[str]* | :heavy_minus_sign: | Usage instructions for the LLM to use this action. | | -| `is_setup_finished` | *Optional[bool]* | :heavy_minus_sign: | Whether this action has been fully configured and validated. | | \ No newline at end of file +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `type` | [models.ToolMetadataType](../models/toolmetadatatype.md) | :heavy_check_mark: | The type of tool. | | +| `name` | *str* | :heavy_check_mark: | Unique identifier for the tool. Name should be understandable by the LLM, and will be used to invoke a tool. | | +| `display_name` | *str* | :heavy_check_mark: | Human understandable name of the tool. Max 50 characters. | | +| `tool_id` | *Optional[str]* | :heavy_minus_sign: | An opaque id which is unique identifier for the tool. | | +| `display_description` | *str* | :heavy_check_mark: | Description of the tool meant for a human. | | +| `logo_url` | *Optional[str]* | :heavy_minus_sign: | URL used to fetch the logo. | | +| `object_name` | *Optional[str]* | :heavy_minus_sign: | Name of the generated object. This will be used to indicate to the end user what the generated object contains. | [
"HR ticket",
"Email",
"Chat message"
] | +| `knowledge_type` | [Optional[models.KnowledgeType]](../models/knowledgetype.md) | :heavy_minus_sign: | Indicates the kind of knowledge a tool would access or modify. | | +| `created_by` | [Optional[models.PersonObject]](../models/personobject.md) | :heavy_minus_sign: | N/A | | +| `last_updated_by` | [Optional[models.PersonObject]](../models/personobject.md) | :heavy_minus_sign: | N/A | | +| `created_at` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_minus_sign: | The time the tool was created in ISO format (ISO 8601) | | +| `last_updated_at` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_minus_sign: | The time the tool was last updated in ISO format (ISO 8601) | | +| `write_action_type` | [Optional[models.WriteActionType]](../models/writeactiontype.md) | :heavy_minus_sign: | 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. | | +| `action_type_source` | [Optional[models.ActionTypeSource]](../models/actiontypesource.md) | :heavy_minus_sign: | Analytics-only signal (product snapshot) describing WHERE the action's
read/write determination came from. Complementary to the effective
read/write value (the tool's ToolType, which drives HITL): the value says
read-or-write, this says how confident that is. MCP_ANNOTATION = from the
tool's read-only/destructive hints; ADMIN_OVERRIDE = an admin set it;
NONE = no usable hint (the effective value then defaults to write);
NATIVE_TOOL_DEFINITION = from a curated native tool (snapshot-derived).
Does not affect runtime behavior.
| | +| `auth_type` | [Optional[models.AuthType]](../models/authtype.md) | :heavy_minus_sign: | 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` | [Optional[models.AuthConfig]](../models/authconfig.md) | :heavy_minus_sign: | Config for tool's authentication method. | | +| `permissions` | [Optional[models.ObjectPermissions]](../models/objectpermissions.md) | :heavy_minus_sign: | N/A | | +| `usage_instructions` | *Optional[str]* | :heavy_minus_sign: | Usage instructions for the LLM to use this action. | | +| `is_setup_finished` | *Optional[bool]* | :heavy_minus_sign: | Whether this action has been fully configured and validated. | | \ No newline at end of file diff --git a/docs/sdks/skills/README.md b/docs/sdks/skills/README.md new file mode 100644 index 00000000..1a8beff7 --- /dev/null +++ b/docs/sdks/skills/README.md @@ -0,0 +1,95 @@ +# Skills + +## Overview + +### Available Operations + +* [list](#list) - List skills +* [retrieve](#retrieve) - Retrieve skill + +## list + +List skills available to the authenticated user. + + +### Example Usage + + +```python +from glean.api_client import Glean +import os + + +with Glean( + api_token=os.getenv("GLEAN_API_TOKEN", ""), +) as glean: + + res = glean.skills.list() + + # Handle response + print(res) + +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | +| `page_size` | *Optional[int]* | :heavy_minus_sign: | Maximum number of skills to return. | +| `cursor` | *Optional[str]* | :heavy_minus_sign: | Opaque pagination cursor from a previous response. | +| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | + +### Response + +**[models.PlatformSkillsListResponse](../../models/platformskillslistresponse.md)** + +### Errors + +| Error Type | Status Code | Content Type | +| --------------------------------- | --------------------------------- | --------------------------------- | +| errors.PlatformProblemDetailError | 400, 401, 403, 404, 408, 429 | application/problem+json | +| errors.PlatformProblemDetailError | 500, 503 | application/problem+json | +| errors.GleanError | 4XX, 5XX | \*/\* | + +## retrieve + +Retrieve metadata for a skill available to the authenticated user. + + +### Example Usage + + +```python +from glean.api_client import Glean +import os + + +with Glean( + api_token=os.getenv("GLEAN_API_TOKEN", ""), +) as glean: + + res = glean.skills.retrieve(skill_id="") + + # Handle response + print(res) + +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | +| `skill_id` | *str* | :heavy_check_mark: | Glean skill ID. | +| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | + +### Response + +**[models.PlatformSkillGetResponse](../../models/platformskillgetresponse.md)** + +### Errors + +| Error Type | Status Code | Content Type | +| --------------------------------- | --------------------------------- | --------------------------------- | +| errors.PlatformProblemDetailError | 400, 401, 403, 404, 408, 429 | application/problem+json | +| errors.PlatformProblemDetailError | 500, 503 | application/problem+json | +| errors.GleanError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/pyproject.toml b/pyproject.toml index 9cb2c0bd..932a1745 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,7 +1,7 @@ [project] name = "glean-api-client" -version = "0.15.3" +version = "0.15.4" 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 75a78e98..480029f0 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.15.3" +__version__: str = "0.15.4" __openapi_doc_version__: str = "0.9.0" -__gen_version__: str = "2.916.4" -__user_agent__: str = "speakeasy-sdk/python 0.15.3 2.916.4 0.9.0 glean-api-client" +__gen_version__: str = "2.918.1" +__user_agent__: str = "speakeasy-sdk/python 0.15.4 2.918.1 0.9.0 glean-api-client" try: if __package__ is not None: diff --git a/src/glean/api_client/models/__init__.py b/src/glean/api_client/models/__init__.py index 536e42f5..af1a8054 100644 --- a/src/glean/api_client/models/__init__.py +++ b/src/glean/api_client/models/__init__.py @@ -1231,6 +1231,14 @@ PlatformAgentsGetRequest, PlatformAgentsGetRequestTypedDict, ) + from .platform_skills_getop import ( + PlatformSkillsGetRequest, + PlatformSkillsGetRequestTypedDict, + ) + from .platform_skills_listop import ( + PlatformSkillsListRequest, + PlatformSkillsListRequestTypedDict, + ) from .platformactionsummary import ( PlatformActionSummary, PlatformActionSummaryTypedDict, @@ -1293,6 +1301,22 @@ PlatformSearchResponse, PlatformSearchResponseTypedDict, ) + from .platformskill import PlatformSkill, PlatformSkillTypedDict + from .platformskillgetresponse import ( + PlatformSkillGetResponse, + PlatformSkillGetResponseTypedDict, + ) + from .platformskillorigin import PlatformSkillOrigin + from .platformskillslistresponse import ( + PlatformSkillsListResponse, + PlatformSkillsListResponseTypedDict, + ) + from .platformskillsourceprovenance import ( + PlatformSkillSourceProvenance, + PlatformSkillSourceProvenanceTypedDict, + ) + from .platformskillstatus import PlatformSkillStatus + from .platformskillsyncstatus import PlatformSkillSyncStatus from .platformtimerange import PlatformTimeRange, PlatformTimeRangeTypedDict from .possiblevalue import PossibleValue, PossibleValueTypedDict from .post_api_index_v1_debug_datasource_document_eventsop import ( @@ -1497,6 +1521,7 @@ from .tool import Tool, ToolType, ToolTypedDict from .toolinfo import ToolInfo, ToolInfoTypedDict from .toolmetadata import ( + ActionTypeSource, AuthType, KnowledgeType, ToolMetadata, @@ -1700,6 +1725,7 @@ "ActionPreviewTypedDict", "ActionSummary", "ActionSummaryTypedDict", + "ActionTypeSource", "Activity", "ActivityEnum", "ActivityEvent", @@ -2668,6 +2694,21 @@ "PlatformSearchRequestTypedDict", "PlatformSearchResponse", "PlatformSearchResponseTypedDict", + "PlatformSkill", + "PlatformSkillGetResponse", + "PlatformSkillGetResponseTypedDict", + "PlatformSkillOrigin", + "PlatformSkillSourceProvenance", + "PlatformSkillSourceProvenanceTypedDict", + "PlatformSkillStatus", + "PlatformSkillSyncStatus", + "PlatformSkillTypedDict", + "PlatformSkillsGetRequest", + "PlatformSkillsGetRequestTypedDict", + "PlatformSkillsListRequest", + "PlatformSkillsListRequestTypedDict", + "PlatformSkillsListResponse", + "PlatformSkillsListResponseTypedDict", "PlatformTimeRange", "PlatformTimeRangeTypedDict", "PossibleValue", @@ -3886,6 +3927,10 @@ "PlatformAgentsGetSchemasRequestTypedDict": ".platform_agents_get_schemasop", "PlatformAgentsGetRequest": ".platform_agents_getop", "PlatformAgentsGetRequestTypedDict": ".platform_agents_getop", + "PlatformSkillsGetRequest": ".platform_skills_getop", + "PlatformSkillsGetRequestTypedDict": ".platform_skills_getop", + "PlatformSkillsListRequest": ".platform_skills_listop", + "PlatformSkillsListRequestTypedDict": ".platform_skills_listop", "PlatformActionSummary": ".platformactionsummary", "PlatformActionSummaryTypedDict": ".platformactionsummary", "PlatformAgent": ".platformagent", @@ -3927,6 +3972,17 @@ "PlatformSearchRequestTypedDict": ".platformsearchrequest", "PlatformSearchResponse": ".platformsearchresponse", "PlatformSearchResponseTypedDict": ".platformsearchresponse", + "PlatformSkill": ".platformskill", + "PlatformSkillTypedDict": ".platformskill", + "PlatformSkillGetResponse": ".platformskillgetresponse", + "PlatformSkillGetResponseTypedDict": ".platformskillgetresponse", + "PlatformSkillOrigin": ".platformskillorigin", + "PlatformSkillsListResponse": ".platformskillslistresponse", + "PlatformSkillsListResponseTypedDict": ".platformskillslistresponse", + "PlatformSkillSourceProvenance": ".platformskillsourceprovenance", + "PlatformSkillSourceProvenanceTypedDict": ".platformskillsourceprovenance", + "PlatformSkillStatus": ".platformskillstatus", + "PlatformSkillSyncStatus": ".platformskillsyncstatus", "PlatformTimeRange": ".platformtimerange", "PlatformTimeRangeTypedDict": ".platformtimerange", "PossibleValue": ".possiblevalue", @@ -4106,6 +4162,7 @@ "ToolTypedDict": ".tool", "ToolInfo": ".toolinfo", "ToolInfoTypedDict": ".toolinfo", + "ActionTypeSource": ".toolmetadata", "AuthType": ".toolmetadata", "KnowledgeType": ".toolmetadata", "ToolMetadata": ".toolmetadata", diff --git a/src/glean/api_client/models/dlpfindingfilter.py b/src/glean/api_client/models/dlpfindingfilter.py index eacf79f0..960d3753 100644 --- a/src/glean/api_client/models/dlpfindingfilter.py +++ b/src/glean/api_client/models/dlpfindingfilter.py @@ -20,7 +20,7 @@ class DlpFindingFilterTypedDict(TypedDict): visibility: NotRequired[str] document_ids: NotRequired[List[str]] severity: NotRequired[DlpSeverity] - r"""Severity levels for DLP findings and analyses.""" + r"""Severity levels for DLP findings and analyses. FALSE_POSITIVE ranks below LOW and marks analyses that concluded every flagged entity is a detector false positive.""" document_severity: NotRequired[List[DlpSeverity]] statuses: NotRequired[List[DlpIssueStatus]] time_range: NotRequired[TimeRangeFilterTypedDict] @@ -43,7 +43,7 @@ class DlpFindingFilter(BaseModel): ] = None severity: Optional[DlpSeverity] = None - r"""Severity levels for DLP findings and analyses.""" + r"""Severity levels for DLP findings and analyses. FALSE_POSITIVE ranks below LOW and marks analyses that concluded every flagged entity is a detector false positive.""" document_severity: Annotated[ Optional[List[DlpSeverity]], pydantic.Field(alias="documentSeverity") diff --git a/src/glean/api_client/models/dlpseverity.py b/src/glean/api_client/models/dlpseverity.py index bd785981..8f08fc8b 100644 --- a/src/glean/api_client/models/dlpseverity.py +++ b/src/glean/api_client/models/dlpseverity.py @@ -6,9 +6,10 @@ class DlpSeverity(str, Enum, metaclass=utils.OpenEnumMeta): - r"""Severity levels for DLP findings and analyses.""" + r"""Severity levels for DLP findings and analyses. FALSE_POSITIVE ranks below LOW and marks analyses that concluded every flagged entity is a detector false positive.""" UNSPECIFIED = "UNSPECIFIED" LOW = "LOW" MEDIUM = "MEDIUM" HIGH = "HIGH" + FALSE_POSITIVE = "FALSE_POSITIVE" diff --git a/src/glean/api_client/models/platform_skills_getop.py b/src/glean/api_client/models/platform_skills_getop.py new file mode 100644 index 00000000..fc64256b --- /dev/null +++ b/src/glean/api_client/models/platform_skills_getop.py @@ -0,0 +1,18 @@ +"""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 +from typing_extensions import Annotated, TypedDict + + +class PlatformSkillsGetRequestTypedDict(TypedDict): + skill_id: str + r"""Glean skill ID.""" + + +class PlatformSkillsGetRequest(BaseModel): + skill_id: Annotated[ + str, FieldMetadata(path=PathParamMetadata(style="simple", explode=False)) + ] + r"""Glean skill ID.""" diff --git a/src/glean/api_client/models/platform_skills_listop.py b/src/glean/api_client/models/platform_skills_listop.py new file mode 100644 index 00000000..3f774193 --- /dev/null +++ b/src/glean/api_client/models/platform_skills_listop.py @@ -0,0 +1,45 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from glean.api_client.types import BaseModel, UNSET_SENTINEL +from glean.api_client.utils import FieldMetadata, QueryParamMetadata +from pydantic import model_serializer +from typing import Optional +from typing_extensions import Annotated, NotRequired, TypedDict + + +class PlatformSkillsListRequestTypedDict(TypedDict): + page_size: NotRequired[int] + r"""Maximum number of skills to return.""" + cursor: NotRequired[str] + r"""Opaque pagination cursor from a previous response.""" + + +class PlatformSkillsListRequest(BaseModel): + page_size: Annotated[ + Optional[int], + FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), + ] = None + r"""Maximum number of skills to return.""" + + cursor: Annotated[ + Optional[str], + FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), + ] = None + r"""Opaque pagination cursor from a previous response.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["page_size", "cursor"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + 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/platformskill.py b/src/glean/api_client/models/platformskill.py new file mode 100644 index 00000000..4b7e21a7 --- /dev/null +++ b/src/glean/api_client/models/platformskill.py @@ -0,0 +1,102 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .platformpersonreference import ( + PlatformPersonReference, + PlatformPersonReferenceTypedDict, +) +from .platformskillorigin import PlatformSkillOrigin +from .platformskillsourceprovenance import ( + PlatformSkillSourceProvenance, + PlatformSkillSourceProvenanceTypedDict, +) +from .platformskillstatus import PlatformSkillStatus +from datetime import datetime +from glean.api_client import models +from glean.api_client.types import BaseModel, UNSET_SENTINEL +from pydantic import field_serializer, model_serializer +from typing import Optional +from typing_extensions import NotRequired, TypedDict + + +class PlatformSkillTypedDict(TypedDict): + id: str + r"""Glean skill ID.""" + display_name: str + r"""Human-readable skill name.""" + description: str + r"""Human-readable skill description.""" + latest_version: int + r"""Latest major version number for the skill.""" + latest_minor_version: int + r"""Latest minor version number for the skill.""" + status: PlatformSkillStatus + r"""Current skill status.""" + origin: PlatformSkillOrigin + r"""Source category for the skill.""" + owner: PlatformPersonReferenceTypedDict + r"""A lightweight reference to a person, used where a payload merely points at someone.""" + created_at: datetime + r"""Time the skill was created.""" + updated_at: datetime + r"""Time the skill was last updated.""" + source_provenance: NotRequired[PlatformSkillSourceProvenanceTypedDict] + + +class PlatformSkill(BaseModel): + id: str + r"""Glean skill ID.""" + + display_name: str + r"""Human-readable skill name.""" + + description: str + r"""Human-readable skill description.""" + + latest_version: int + r"""Latest major version number for the skill.""" + + latest_minor_version: int + r"""Latest minor version number for the skill.""" + + status: PlatformSkillStatus + r"""Current skill status.""" + + origin: PlatformSkillOrigin + r"""Source category for the skill.""" + + owner: PlatformPersonReference + r"""A lightweight reference to a person, used where a payload merely points at someone.""" + + created_at: datetime + r"""Time the skill was created.""" + + updated_at: datetime + r"""Time the skill was last updated.""" + + source_provenance: Optional[PlatformSkillSourceProvenance] = None + + @field_serializer("status") + def serialize_status(self, value): + if isinstance(value, str): + try: + return models.PlatformSkillStatus(value) + except ValueError: + return value + return value + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["source_provenance"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + 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/platformskillgetresponse.py b/src/glean/api_client/models/platformskillgetresponse.py new file mode 100644 index 00000000..2cc28636 --- /dev/null +++ b/src/glean/api_client/models/platformskillgetresponse.py @@ -0,0 +1,19 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .platformskill import PlatformSkill, PlatformSkillTypedDict +from glean.api_client.types import BaseModel +from typing_extensions import TypedDict + + +class PlatformSkillGetResponseTypedDict(TypedDict): + skill: PlatformSkillTypedDict + request_id: str + r"""Platform-generated request ID for support correlation.""" + + +class PlatformSkillGetResponse(BaseModel): + skill: PlatformSkill + + request_id: str + r"""Platform-generated request ID for support correlation.""" diff --git a/src/glean/api_client/models/platformskillorigin.py b/src/glean/api_client/models/platformskillorigin.py new file mode 100644 index 00000000..320c60ec --- /dev/null +++ b/src/glean/api_client/models/platformskillorigin.py @@ -0,0 +1,10 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from enum import Enum + + +class PlatformSkillOrigin(str, Enum): + r"""Source category for the skill.""" + + CUSTOM = "CUSTOM" diff --git a/src/glean/api_client/models/platformskillslistresponse.py b/src/glean/api_client/models/platformskillslistresponse.py new file mode 100644 index 00000000..7303b051 --- /dev/null +++ b/src/glean/api_client/models/platformskillslistresponse.py @@ -0,0 +1,47 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .platformskill import PlatformSkill, PlatformSkillTypedDict +from glean.api_client.types import BaseModel, Nullable, UNSET_SENTINEL +from pydantic import model_serializer +from typing import List +from typing_extensions import TypedDict + + +class PlatformSkillsListResponseTypedDict(TypedDict): + skills: List[PlatformSkillTypedDict] + r"""Skills available to the user.""" + has_more: bool + r"""Whether additional results are available.""" + next_cursor: Nullable[str] + r"""Cursor for the next page, or null when no more results are available.""" + request_id: str + r"""Platform-generated request ID for support correlation.""" + + +class PlatformSkillsListResponse(BaseModel): + skills: List[PlatformSkill] + r"""Skills available to the user.""" + + has_more: bool + r"""Whether additional results are available.""" + + next_cursor: Nullable[str] + r"""Cursor for the next page, or null when no more results are available.""" + + request_id: str + r"""Platform-generated request ID for support correlation.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + m[k] = val + + return m diff --git a/src/glean/api_client/models/platformskillsourceprovenance.py b/src/glean/api_client/models/platformskillsourceprovenance.py new file mode 100644 index 00000000..d1352b1f --- /dev/null +++ b/src/glean/api_client/models/platformskillsourceprovenance.py @@ -0,0 +1,79 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .platformskillsyncstatus import PlatformSkillSyncStatus +from datetime import datetime +from glean.api_client import models +from glean.api_client.types import BaseModel, UNSET_SENTINEL +from pydantic import field_serializer, model_serializer +from typing import Optional +from typing_extensions import NotRequired, TypedDict + + +class PlatformSkillSourceProvenanceTypedDict(TypedDict): + source_url: NotRequired[str] + r"""URL of the external source the skill was imported from.""" + commit_sha: NotRequired[str] + r"""Source commit SHA for the imported skill.""" + imported_at: NotRequired[datetime] + r"""Time the skill was imported.""" + last_synced_at: NotRequired[datetime] + r"""Time the skill was last synced from its source.""" + sync_status: NotRequired[PlatformSkillSyncStatus] + r"""Current external-source sync status.""" + sync_error: NotRequired[str] + r"""Human-readable sync failure reason, present only when sync_status is SYNC_FAILED.""" + + +class PlatformSkillSourceProvenance(BaseModel): + source_url: Optional[str] = None + r"""URL of the external source the skill was imported from.""" + + commit_sha: Optional[str] = None + r"""Source commit SHA for the imported skill.""" + + imported_at: Optional[datetime] = None + r"""Time the skill was imported.""" + + last_synced_at: Optional[datetime] = None + r"""Time the skill was last synced from its source.""" + + sync_status: Optional[PlatformSkillSyncStatus] = None + r"""Current external-source sync status.""" + + sync_error: Optional[str] = None + r"""Human-readable sync failure reason, present only when sync_status is SYNC_FAILED.""" + + @field_serializer("sync_status") + def serialize_sync_status(self, value): + if isinstance(value, str): + try: + return models.PlatformSkillSyncStatus(value) + except ValueError: + return value + return value + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set( + [ + "source_url", + "commit_sha", + "imported_at", + "last_synced_at", + "sync_status", + "sync_error", + ] + ) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + 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/platformskillstatus.py b/src/glean/api_client/models/platformskillstatus.py new file mode 100644 index 00000000..d57185fb --- /dev/null +++ b/src/glean/api_client/models/platformskillstatus.py @@ -0,0 +1,13 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from enum import Enum +from glean.api_client import utils + + +class PlatformSkillStatus(str, Enum, metaclass=utils.OpenEnumMeta): + r"""Current skill status.""" + + DRAFT = "DRAFT" + ENABLED = "ENABLED" + DISABLED = "DISABLED" diff --git a/src/glean/api_client/models/platformskillsyncstatus.py b/src/glean/api_client/models/platformskillsyncstatus.py new file mode 100644 index 00000000..13fb6bcf --- /dev/null +++ b/src/glean/api_client/models/platformskillsyncstatus.py @@ -0,0 +1,13 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from enum import Enum +from glean.api_client import utils + + +class PlatformSkillSyncStatus(str, Enum, metaclass=utils.OpenEnumMeta): + r"""Current external-source sync status.""" + + UP_TO_DATE = "UP_TO_DATE" + UPDATE_AVAILABLE = "UPDATE_AVAILABLE" + SYNC_FAILED = "SYNC_FAILED" diff --git a/src/glean/api_client/models/toolmetadata.py b/src/glean/api_client/models/toolmetadata.py index a87122b4..d7928cf2 100644 --- a/src/glean/api_client/models/toolmetadata.py +++ b/src/glean/api_client/models/toolmetadata.py @@ -37,6 +37,24 @@ class WriteActionType(str, Enum, metaclass=utils.OpenEnumMeta): MCP = "MCP" +class ActionTypeSource(str, Enum, metaclass=utils.OpenEnumMeta): + r"""Analytics-only signal (product snapshot) describing WHERE the action's + read/write determination came from. Complementary to the effective + read/write value (the tool's ToolType, which drives HITL): the value says + read-or-write, this says how confident that is. MCP_ANNOTATION = from the + tool's read-only/destructive hints; ADMIN_OVERRIDE = an admin set it; + NONE = no usable hint (the effective value then defaults to write); + NATIVE_TOOL_DEFINITION = from a curated native tool (snapshot-derived). + Does not affect runtime behavior. + + """ + + MCP_ANNOTATION = "MCP_ANNOTATION" + ADMIN_OVERRIDE = "ADMIN_OVERRIDE" + NONE = "NONE" + NATIVE_TOOL_DEFINITION = "NATIVE_TOOL_DEFINITION" + + 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. @@ -81,6 +99,17 @@ class ToolMetadataTypedDict(TypedDict): r"""The time the tool was last updated in ISO format (ISO 8601)""" write_action_type: NotRequired[WriteActionType] 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.""" + action_type_source: NotRequired[ActionTypeSource] + r"""Analytics-only signal (product snapshot) describing WHERE the action's + read/write determination came from. Complementary to the effective + read/write value (the tool's ToolType, which drives HITL): the value says + read-or-write, this says how confident that is. MCP_ANNOTATION = from the + tool's read-only/destructive hints; ADMIN_OVERRIDE = an admin set it; + NONE = no usable hint (the effective value then defaults to write); + NATIVE_TOOL_DEFINITION = from a curated native tool (snapshot-derived). + Does not affect runtime behavior. + + """ auth_type: NotRequired[AuthType] 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. @@ -148,6 +177,20 @@ class ToolMetadata(BaseModel): ] = None 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.""" + action_type_source: Annotated[ + Optional[ActionTypeSource], pydantic.Field(alias="actionTypeSource") + ] = None + r"""Analytics-only signal (product snapshot) describing WHERE the action's + read/write determination came from. Complementary to the effective + read/write value (the tool's ToolType, which drives HITL): the value says + read-or-write, this says how confident that is. MCP_ANNOTATION = from the + tool's read-only/destructive hints; ADMIN_OVERRIDE = an admin set it; + NONE = no usable hint (the effective value then defaults to write); + NATIVE_TOOL_DEFINITION = from a curated native tool (snapshot-derived). + Does not affect runtime behavior. + + """ + auth_type: Annotated[Optional[AuthType], pydantic.Field(alias="authType")] = None 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. @@ -199,6 +242,15 @@ def serialize_write_action_type(self, value): return value return value + @field_serializer("action_type_source") + def serialize_action_type_source(self, value): + if isinstance(value, str): + try: + return models.ActionTypeSource(value) + except ValueError: + return value + return value + @field_serializer("auth_type") def serialize_auth_type(self, value): if isinstance(value, str): @@ -221,6 +273,7 @@ def serialize_model(self, handler): "createdAt", "lastUpdatedAt", "writeActionType", + "actionTypeSource", "authType", "auth", "permissions", diff --git a/src/glean/api_client/sdk.py b/src/glean/api_client/sdk.py index 4d65c6df..b2c9f79e 100644 --- a/src/glean/api_client/sdk.py +++ b/src/glean/api_client/sdk.py @@ -19,6 +19,7 @@ from glean.api_client.client import Client from glean.api_client.indexing import Indexing from glean.api_client.search import Search + from glean.api_client.skills import Skills class Glean(BaseSDK): @@ -42,11 +43,13 @@ class Glean(BaseSDK): """ agents: "Agents" + skills: "Skills" search: "Search" client: "Client" indexing: "Indexing" _sub_sdk_map = { "agents": ("glean.api_client.agents", "Agents"), + "skills": ("glean.api_client.skills", "Skills"), "search": ("glean.api_client.search", "Search"), "client": ("glean.api_client.client", "Client"), "indexing": ("glean.api_client.indexing", "Indexing"), diff --git a/src/glean/api_client/skills.py b/src/glean/api_client/skills.py new file mode 100644 index 00000000..392ae641 --- /dev/null +++ b/src/glean/api_client/skills.py @@ -0,0 +1,449 @@ +"""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 Any, Mapping, Optional + + +class Skills(BaseSDK): + def list( + self, + *, + page_size: Optional[int] = None, + cursor: Optional[str] = None, + retries: OptionalNullable[utils.RetryConfig] = UNSET, + server_url: Optional[str] = None, + timeout_ms: Optional[int] = None, + http_headers: Optional[Mapping[str, str]] = None, + ) -> models.PlatformSkillsListResponse: + r"""List skills + + List skills available to the authenticated user. + + + :param page_size: Maximum number of skills to return. + :param cursor: Opaque pagination cursor from a previous response. + :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.PlatformSkillsListRequest( + page_size=page_size, + cursor=cursor, + ) + + req = self._build_request( + method="GET", + path="/api/skills", + base_url=base_url, + url_variables=url_variables, + request=request, + request_body_required=False, + 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, + 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="platform-skills-list", + oauth2_scopes=None, + security_source=get_security_from_env( + self.sdk_configuration.security, models.Security + ), + tags=["Skills"], + extensions={ + "x-glean-experimental": { + "id": "3eb65937-03a3-472b-9a00-be713f302b5f", + "introduced": "2026-06-23", + }, + "x-visibility": "Public", + }, + ), + request=req, + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), + retry_config=retry_config, + ) + + response_data: Any = None + if utils.match_response(http_res, "200", "application/json"): + return unmarshal_json_response(models.PlatformSkillsListResponse, http_res) + if utils.match_response( + http_res, + ["400", "401", "403", "404", "408", "429"], + "application/problem+json", + ): + response_data = unmarshal_json_response( + errors.PlatformProblemDetailErrorData, http_res + ) + raise errors.PlatformProblemDetailError(response_data, http_res) + if utils.match_response(http_res, ["500", "503"], "application/problem+json"): + response_data = unmarshal_json_response( + errors.PlatformProblemDetailErrorData, http_res + ) + raise errors.PlatformProblemDetailError(response_data, http_res) + if utils.match_response(http_res, "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 list_async( + self, + *, + page_size: Optional[int] = None, + cursor: Optional[str] = None, + retries: OptionalNullable[utils.RetryConfig] = UNSET, + server_url: Optional[str] = None, + timeout_ms: Optional[int] = None, + http_headers: Optional[Mapping[str, str]] = None, + ) -> models.PlatformSkillsListResponse: + r"""List skills + + List skills available to the authenticated user. + + + :param page_size: Maximum number of skills to return. + :param cursor: Opaque pagination cursor from a previous response. + :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.PlatformSkillsListRequest( + page_size=page_size, + cursor=cursor, + ) + + req = self._build_request_async( + method="GET", + path="/api/skills", + base_url=base_url, + url_variables=url_variables, + request=request, + request_body_required=False, + 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, + 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="platform-skills-list", + oauth2_scopes=None, + security_source=get_security_from_env( + self.sdk_configuration.security, models.Security + ), + tags=["Skills"], + extensions={ + "x-glean-experimental": { + "id": "3eb65937-03a3-472b-9a00-be713f302b5f", + "introduced": "2026-06-23", + }, + "x-visibility": "Public", + }, + ), + request=req, + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), + retry_config=retry_config, + ) + + response_data: Any = None + if utils.match_response(http_res, "200", "application/json"): + return unmarshal_json_response(models.PlatformSkillsListResponse, http_res) + if utils.match_response( + http_res, + ["400", "401", "403", "404", "408", "429"], + "application/problem+json", + ): + response_data = unmarshal_json_response( + errors.PlatformProblemDetailErrorData, http_res + ) + raise errors.PlatformProblemDetailError(response_data, http_res) + if utils.match_response(http_res, ["500", "503"], "application/problem+json"): + response_data = unmarshal_json_response( + errors.PlatformProblemDetailErrorData, http_res + ) + raise errors.PlatformProblemDetailError(response_data, http_res) + if utils.match_response(http_res, "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( + self, + *, + skill_id: str, + retries: OptionalNullable[utils.RetryConfig] = UNSET, + server_url: Optional[str] = None, + timeout_ms: Optional[int] = None, + http_headers: Optional[Mapping[str, str]] = None, + ) -> models.PlatformSkillGetResponse: + r"""Retrieve skill + + Retrieve metadata for a skill available to the authenticated user. + + + :param skill_id: Glean skill ID. + :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.PlatformSkillsGetRequest( + skill_id=skill_id, + ) + + req = self._build_request( + method="GET", + path="/api/skills/{skill_id}", + base_url=base_url, + url_variables=url_variables, + request=request, + request_body_required=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, + 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="platform-skills-get", + oauth2_scopes=None, + security_source=get_security_from_env( + self.sdk_configuration.security, models.Security + ), + tags=["Skills"], + extensions={ + "x-glean-experimental": { + "id": "8f8d1c92-a484-4769-9903-200613dc8a72", + "introduced": "2026-06-23", + }, + "x-visibility": "Public", + }, + ), + request=req, + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), + retry_config=retry_config, + ) + + response_data: Any = None + if utils.match_response(http_res, "200", "application/json"): + return unmarshal_json_response(models.PlatformSkillGetResponse, http_res) + if utils.match_response( + http_res, + ["400", "401", "403", "404", "408", "429"], + "application/problem+json", + ): + response_data = unmarshal_json_response( + errors.PlatformProblemDetailErrorData, http_res + ) + raise errors.PlatformProblemDetailError(response_data, http_res) + if utils.match_response(http_res, ["500", "503"], "application/problem+json"): + response_data = unmarshal_json_response( + errors.PlatformProblemDetailErrorData, http_res + ) + raise errors.PlatformProblemDetailError(response_data, http_res) + if utils.match_response(http_res, "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_async( + self, + *, + skill_id: str, + retries: OptionalNullable[utils.RetryConfig] = UNSET, + server_url: Optional[str] = None, + timeout_ms: Optional[int] = None, + http_headers: Optional[Mapping[str, str]] = None, + ) -> models.PlatformSkillGetResponse: + r"""Retrieve skill + + Retrieve metadata for a skill available to the authenticated user. + + + :param skill_id: Glean skill ID. + :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.PlatformSkillsGetRequest( + skill_id=skill_id, + ) + + req = self._build_request_async( + method="GET", + path="/api/skills/{skill_id}", + base_url=base_url, + url_variables=url_variables, + request=request, + request_body_required=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, + 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="platform-skills-get", + oauth2_scopes=None, + security_source=get_security_from_env( + self.sdk_configuration.security, models.Security + ), + tags=["Skills"], + extensions={ + "x-glean-experimental": { + "id": "8f8d1c92-a484-4769-9903-200613dc8a72", + "introduced": "2026-06-23", + }, + "x-visibility": "Public", + }, + ), + request=req, + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), + retry_config=retry_config, + ) + + response_data: Any = None + if utils.match_response(http_res, "200", "application/json"): + return unmarshal_json_response(models.PlatformSkillGetResponse, http_res) + if utils.match_response( + http_res, + ["400", "401", "403", "404", "408", "429"], + "application/problem+json", + ): + response_data = unmarshal_json_response( + errors.PlatformProblemDetailErrorData, http_res + ) + raise errors.PlatformProblemDetailError(response_data, http_res) + if utils.match_response(http_res, ["500", "503"], "application/problem+json"): + response_data = unmarshal_json_response( + errors.PlatformProblemDetailErrorData, http_res + ) + raise errors.PlatformProblemDetailError(response_data, http_res) + if utils.match_response(http_res, "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/tests/mockserver/internal/handler/generated_handlers.go b/tests/mockserver/internal/handler/generated_handlers.go index d5fe2f85..49b7267f 100644 --- a/tests/mockserver/internal/handler/generated_handlers.go +++ b/tests/mockserver/internal/handler/generated_handlers.go @@ -16,6 +16,8 @@ func GeneratedHandlers(ctx context.Context, dir *logging.HTTPFileDirectory, rt * NewGeneratedHandler(ctx, http.MethodDelete, "/rest/api/index/document/{docId}/custom-metadata/{groupName}", pathDeleteRestAPIIndexDocumentDocIDCustomMetadataGroupName(dir, rt)), NewGeneratedHandler(ctx, http.MethodGet, "/api/agents/{agent_id}", pathGetAPIAgentsAgentID(dir, rt)), NewGeneratedHandler(ctx, http.MethodGet, "/api/agents/{agent_id}/schemas", pathGetAPIAgentsAgentIDSchemas(dir, rt)), + NewGeneratedHandler(ctx, http.MethodGet, "/api/skills", pathGetAPISkills(dir, rt)), + NewGeneratedHandler(ctx, http.MethodGet, "/api/skills/{skill_id}", pathGetAPISkillsSkillID(dir, rt)), NewGeneratedHandler(ctx, http.MethodGet, "/rest/api/index/custom-metadata/schema/{groupName}", pathGetRestAPIIndexCustomMetadataSchemaGroupName(dir, rt)), NewGeneratedHandler(ctx, http.MethodGet, "/rest/api/v1/actions/actionpack/{actionPackId}/auth", pathGetRestAPIV1ActionsActionpackActionPackIDAuth(dir, rt)), NewGeneratedHandler(ctx, http.MethodGet, "/rest/api/v1/agents/{agent_id}", pathGetRestAPIV1AgentsAgentID(dir, rt)), diff --git a/tests/mockserver/internal/handler/pathgetapiskills.go b/tests/mockserver/internal/handler/pathgetapiskills.go new file mode 100644 index 00000000..7baa51e7 --- /dev/null +++ b/tests/mockserver/internal/handler/pathgetapiskills.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/types" + "mockserver/internal/sdk/utils" + "mockserver/internal/tracking" + "net/http" +) + +func pathGetAPISkills(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 "platform-skills-list[0]": + dir.HandlerFunc("platform-skills-list", testPlatformSkillsListPlatformSkillsList0)(w, req) + default: + http.Error(w, fmt.Sprintf("Unknown test: %s[%d]", test, count), http.StatusBadRequest) + } + } +} + +func testPlatformSkillsListPlatformSkillsList0(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.PlatformSkillsListResponse = &components.PlatformSkillsListResponse{ + Skills: []components.PlatformSkill{}, + HasMore: true, + NextCursor: types.String(""), + RequestID: "", + } + 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/pathgetapiskillsskillid.go b/tests/mockserver/internal/handler/pathgetapiskillsskillid.go new file mode 100644 index 00000000..4f097d84 --- /dev/null +++ b/tests/mockserver/internal/handler/pathgetapiskillsskillid.go @@ -0,0 +1,79 @@ +// 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/types" + "mockserver/internal/sdk/utils" + "mockserver/internal/tracking" + "net/http" +) + +func pathGetAPISkillsSkillID(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 "platform-skills-get[0]": + dir.HandlerFunc("platform-skills-get", testPlatformSkillsGetPlatformSkillsGet0)(w, req) + default: + http.Error(w, fmt.Sprintf("Unknown test: %s[%d]", test, count), http.StatusBadRequest) + } + } +} + +func testPlatformSkillsGetPlatformSkillsGet0(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.PlatformSkillGetResponse = &components.PlatformSkillGetResponse{ + Skill: components.PlatformSkill{ + ID: "", + DisplayName: "Chad_Herzog", + Description: "whenever up aha controvert", + LatestVersion: 151495, + LatestMinorVersion: 170771, + Status: components.PlatformSkillStatusDisabled, + Origin: components.PlatformSkillOriginCustom, + Owner: components.PlatformPersonReference{ + Name: "", + }, + CreatedAt: types.MustTimeFromString("2024-12-25T16:41:00.099Z"), + UpdatedAt: types.MustTimeFromString("2026-12-07T21:59:59.375Z"), + }, + RequestID: "", + } + 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/sdk/models/components/dlpfindingfilter.go b/tests/mockserver/internal/sdk/models/components/dlpfindingfilter.go index f0498927..f3b7f96f 100644 --- a/tests/mockserver/internal/sdk/models/components/dlpfindingfilter.go +++ b/tests/mockserver/internal/sdk/models/components/dlpfindingfilter.go @@ -9,7 +9,7 @@ type DlpFindingFilter struct { Datasource *string `json:"datasource,omitempty"` Visibility *string `json:"visibility,omitempty"` DocumentIds []string `json:"documentIds,omitempty"` - // Severity levels for DLP findings and analyses. + // Severity levels for DLP findings and analyses. FALSE_POSITIVE ranks below LOW and marks analyses that concluded every flagged entity is a detector false positive. Severity *DlpSeverity `json:"severity,omitempty"` DocumentSeverity []DlpSeverity `json:"documentSeverity,omitempty"` Statuses []DlpIssueStatus `json:"statuses,omitempty"` diff --git a/tests/mockserver/internal/sdk/models/components/dlpseverity.go b/tests/mockserver/internal/sdk/models/components/dlpseverity.go index a0c02199..aac78928 100644 --- a/tests/mockserver/internal/sdk/models/components/dlpseverity.go +++ b/tests/mockserver/internal/sdk/models/components/dlpseverity.go @@ -7,14 +7,15 @@ import ( "fmt" ) -// DlpSeverity - Severity levels for DLP findings and analyses. +// DlpSeverity - Severity levels for DLP findings and analyses. FALSE_POSITIVE ranks below LOW and marks analyses that concluded every flagged entity is a detector false positive. type DlpSeverity string const ( - DlpSeverityUnspecified DlpSeverity = "UNSPECIFIED" - DlpSeverityLow DlpSeverity = "LOW" - DlpSeverityMedium DlpSeverity = "MEDIUM" - DlpSeverityHigh DlpSeverity = "HIGH" + DlpSeverityUnspecified DlpSeverity = "UNSPECIFIED" + DlpSeverityLow DlpSeverity = "LOW" + DlpSeverityMedium DlpSeverity = "MEDIUM" + DlpSeverityHigh DlpSeverity = "HIGH" + DlpSeverityFalsePositive DlpSeverity = "FALSE_POSITIVE" ) func (e DlpSeverity) ToPointer() *DlpSeverity { @@ -33,6 +34,8 @@ func (e *DlpSeverity) UnmarshalJSON(data []byte) error { case "MEDIUM": fallthrough case "HIGH": + fallthrough + case "FALSE_POSITIVE": *e = DlpSeverity(v) return nil default: diff --git a/tests/mockserver/internal/sdk/models/components/platformskill.go b/tests/mockserver/internal/sdk/models/components/platformskill.go new file mode 100644 index 00000000..8397a899 --- /dev/null +++ b/tests/mockserver/internal/sdk/models/components/platformskill.go @@ -0,0 +1,120 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +package components + +import ( + "mockserver/internal/sdk/utils" + "time" +) + +type PlatformSkill struct { + // Glean skill ID. + ID string `json:"id"` + // Human-readable skill name. + DisplayName string `json:"display_name"` + // Human-readable skill description. + Description string `json:"description"` + // Latest major version number for the skill. + LatestVersion int64 `json:"latest_version"` + // Latest minor version number for the skill. + LatestMinorVersion int64 `json:"latest_minor_version"` + // Current skill status. + Status PlatformSkillStatus `json:"status"` + // Source category for the skill. + Origin PlatformSkillOrigin `json:"origin"` + SourceProvenance *PlatformSkillSourceProvenance `json:"source_provenance,omitempty"` + // A lightweight reference to a person, used where a payload merely points at someone. + Owner PlatformPersonReference `json:"owner"` + // Time the skill was created. + CreatedAt time.Time `json:"created_at"` + // Time the skill was last updated. + UpdatedAt time.Time `json:"updated_at"` +} + +func (p PlatformSkill) MarshalJSON() ([]byte, error) { + return utils.MarshalJSON(p, "", false) +} + +func (p *PlatformSkill) UnmarshalJSON(data []byte) error { + if err := utils.UnmarshalJSON(data, &p, "", false, []string{"id", "display_name", "description", "latest_version", "latest_minor_version", "status", "origin", "owner", "created_at", "updated_at"}); err != nil { + return err + } + return nil +} + +func (o *PlatformSkill) GetID() string { + if o == nil { + return "" + } + return o.ID +} + +func (o *PlatformSkill) GetDisplayName() string { + if o == nil { + return "" + } + return o.DisplayName +} + +func (o *PlatformSkill) GetDescription() string { + if o == nil { + return "" + } + return o.Description +} + +func (o *PlatformSkill) GetLatestVersion() int64 { + if o == nil { + return 0 + } + return o.LatestVersion +} + +func (o *PlatformSkill) GetLatestMinorVersion() int64 { + if o == nil { + return 0 + } + return o.LatestMinorVersion +} + +func (o *PlatformSkill) GetStatus() PlatformSkillStatus { + if o == nil { + return PlatformSkillStatus("") + } + return o.Status +} + +func (o *PlatformSkill) GetOrigin() PlatformSkillOrigin { + if o == nil { + return PlatformSkillOrigin("") + } + return o.Origin +} + +func (o *PlatformSkill) GetSourceProvenance() *PlatformSkillSourceProvenance { + if o == nil { + return nil + } + return o.SourceProvenance +} + +func (o *PlatformSkill) GetOwner() PlatformPersonReference { + if o == nil { + return PlatformPersonReference{} + } + return o.Owner +} + +func (o *PlatformSkill) GetCreatedAt() time.Time { + if o == nil { + return time.Time{} + } + return o.CreatedAt +} + +func (o *PlatformSkill) GetUpdatedAt() time.Time { + if o == nil { + return time.Time{} + } + return o.UpdatedAt +} diff --git a/tests/mockserver/internal/sdk/models/components/platformskillgetresponse.go b/tests/mockserver/internal/sdk/models/components/platformskillgetresponse.go new file mode 100644 index 00000000..c9bcfa2f --- /dev/null +++ b/tests/mockserver/internal/sdk/models/components/platformskillgetresponse.go @@ -0,0 +1,23 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +package components + +type PlatformSkillGetResponse struct { + Skill PlatformSkill `json:"skill"` + // Platform-generated request ID for support correlation. + RequestID string `json:"request_id"` +} + +func (o *PlatformSkillGetResponse) GetSkill() PlatformSkill { + if o == nil { + return PlatformSkill{} + } + return o.Skill +} + +func (o *PlatformSkillGetResponse) GetRequestID() string { + if o == nil { + return "" + } + return o.RequestID +} diff --git a/tests/mockserver/internal/sdk/models/components/platformskillorigin.go b/tests/mockserver/internal/sdk/models/components/platformskillorigin.go new file mode 100644 index 00000000..e0a00449 --- /dev/null +++ b/tests/mockserver/internal/sdk/models/components/platformskillorigin.go @@ -0,0 +1,32 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +package components + +import ( + "encoding/json" + "fmt" +) + +// PlatformSkillOrigin - Source category for the skill. +type PlatformSkillOrigin string + +const ( + PlatformSkillOriginCustom PlatformSkillOrigin = "CUSTOM" +) + +func (e PlatformSkillOrigin) ToPointer() *PlatformSkillOrigin { + return &e +} +func (e *PlatformSkillOrigin) UnmarshalJSON(data []byte) error { + var v string + if err := json.Unmarshal(data, &v); err != nil { + return err + } + switch v { + case "CUSTOM": + *e = PlatformSkillOrigin(v) + return nil + default: + return fmt.Errorf("invalid value for PlatformSkillOrigin: %v", v) + } +} diff --git a/tests/mockserver/internal/sdk/models/components/platformskillslistresponse.go b/tests/mockserver/internal/sdk/models/components/platformskillslistresponse.go new file mode 100644 index 00000000..566d5351 --- /dev/null +++ b/tests/mockserver/internal/sdk/models/components/platformskillslistresponse.go @@ -0,0 +1,42 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +package components + +type PlatformSkillsListResponse struct { + // Skills available to the user. + Skills []PlatformSkill `json:"skills"` + // Whether additional results are available. + HasMore bool `json:"has_more"` + // Cursor for the next page, or null when no more results are available. + NextCursor *string `json:"next_cursor"` + // Platform-generated request ID for support correlation. + RequestID string `json:"request_id"` +} + +func (o *PlatformSkillsListResponse) GetSkills() []PlatformSkill { + if o == nil { + return []PlatformSkill{} + } + return o.Skills +} + +func (o *PlatformSkillsListResponse) GetHasMore() bool { + if o == nil { + return false + } + return o.HasMore +} + +func (o *PlatformSkillsListResponse) GetNextCursor() *string { + if o == nil { + return nil + } + return o.NextCursor +} + +func (o *PlatformSkillsListResponse) GetRequestID() string { + if o == nil { + return "" + } + return o.RequestID +} diff --git a/tests/mockserver/internal/sdk/models/components/platformskillsourceprovenance.go b/tests/mockserver/internal/sdk/models/components/platformskillsourceprovenance.go new file mode 100644 index 00000000..65ed2aac --- /dev/null +++ b/tests/mockserver/internal/sdk/models/components/platformskillsourceprovenance.go @@ -0,0 +1,76 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +package components + +import ( + "mockserver/internal/sdk/utils" + "time" +) + +type PlatformSkillSourceProvenance struct { + // URL of the external source the skill was imported from. + SourceURL *string `json:"source_url,omitempty"` + // Source commit SHA for the imported skill. + CommitSha *string `json:"commit_sha,omitempty"` + // Time the skill was imported. + ImportedAt *time.Time `json:"imported_at,omitempty"` + // Time the skill was last synced from its source. + LastSyncedAt *time.Time `json:"last_synced_at,omitempty"` + // Current external-source sync status. + SyncStatus *PlatformSkillSyncStatus `json:"sync_status,omitempty"` + // Human-readable sync failure reason, present only when sync_status is SYNC_FAILED. + SyncError *string `json:"sync_error,omitempty"` +} + +func (p PlatformSkillSourceProvenance) MarshalJSON() ([]byte, error) { + return utils.MarshalJSON(p, "", false) +} + +func (p *PlatformSkillSourceProvenance) UnmarshalJSON(data []byte) error { + if err := utils.UnmarshalJSON(data, &p, "", false, nil); err != nil { + return err + } + return nil +} + +func (o *PlatformSkillSourceProvenance) GetSourceURL() *string { + if o == nil { + return nil + } + return o.SourceURL +} + +func (o *PlatformSkillSourceProvenance) GetCommitSha() *string { + if o == nil { + return nil + } + return o.CommitSha +} + +func (o *PlatformSkillSourceProvenance) GetImportedAt() *time.Time { + if o == nil { + return nil + } + return o.ImportedAt +} + +func (o *PlatformSkillSourceProvenance) GetLastSyncedAt() *time.Time { + if o == nil { + return nil + } + return o.LastSyncedAt +} + +func (o *PlatformSkillSourceProvenance) GetSyncStatus() *PlatformSkillSyncStatus { + if o == nil { + return nil + } + return o.SyncStatus +} + +func (o *PlatformSkillSourceProvenance) GetSyncError() *string { + if o == nil { + return nil + } + return o.SyncError +} diff --git a/tests/mockserver/internal/sdk/models/components/platformskillstatus.go b/tests/mockserver/internal/sdk/models/components/platformskillstatus.go new file mode 100644 index 00000000..a218b760 --- /dev/null +++ b/tests/mockserver/internal/sdk/models/components/platformskillstatus.go @@ -0,0 +1,38 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +package components + +import ( + "encoding/json" + "fmt" +) + +// PlatformSkillStatus - Current skill status. +type PlatformSkillStatus string + +const ( + PlatformSkillStatusDraft PlatformSkillStatus = "DRAFT" + PlatformSkillStatusEnabled PlatformSkillStatus = "ENABLED" + PlatformSkillStatusDisabled PlatformSkillStatus = "DISABLED" +) + +func (e PlatformSkillStatus) ToPointer() *PlatformSkillStatus { + return &e +} +func (e *PlatformSkillStatus) UnmarshalJSON(data []byte) error { + var v string + if err := json.Unmarshal(data, &v); err != nil { + return err + } + switch v { + case "DRAFT": + fallthrough + case "ENABLED": + fallthrough + case "DISABLED": + *e = PlatformSkillStatus(v) + return nil + default: + return fmt.Errorf("invalid value for PlatformSkillStatus: %v", v) + } +} diff --git a/tests/mockserver/internal/sdk/models/components/platformskillsyncstatus.go b/tests/mockserver/internal/sdk/models/components/platformskillsyncstatus.go new file mode 100644 index 00000000..0582664c --- /dev/null +++ b/tests/mockserver/internal/sdk/models/components/platformskillsyncstatus.go @@ -0,0 +1,38 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +package components + +import ( + "encoding/json" + "fmt" +) + +// PlatformSkillSyncStatus - Current external-source sync status. +type PlatformSkillSyncStatus string + +const ( + PlatformSkillSyncStatusUpToDate PlatformSkillSyncStatus = "UP_TO_DATE" + PlatformSkillSyncStatusUpdateAvailable PlatformSkillSyncStatus = "UPDATE_AVAILABLE" + PlatformSkillSyncStatusSyncFailed PlatformSkillSyncStatus = "SYNC_FAILED" +) + +func (e PlatformSkillSyncStatus) ToPointer() *PlatformSkillSyncStatus { + return &e +} +func (e *PlatformSkillSyncStatus) UnmarshalJSON(data []byte) error { + var v string + if err := json.Unmarshal(data, &v); err != nil { + return err + } + switch v { + case "UP_TO_DATE": + fallthrough + case "UPDATE_AVAILABLE": + fallthrough + case "SYNC_FAILED": + *e = PlatformSkillSyncStatus(v) + return nil + default: + return fmt.Errorf("invalid value for PlatformSkillSyncStatus: %v", v) + } +} diff --git a/tests/mockserver/internal/sdk/models/components/toolmetadata.go b/tests/mockserver/internal/sdk/models/components/toolmetadata.go index 3c803a6d..061df30a 100644 --- a/tests/mockserver/internal/sdk/models/components/toolmetadata.go +++ b/tests/mockserver/internal/sdk/models/components/toolmetadata.go @@ -96,6 +96,46 @@ func (e *WriteActionType) UnmarshalJSON(data []byte) error { } } +// ActionTypeSource - Analytics-only signal (product snapshot) describing WHERE the action's +// read/write determination came from. Complementary to the effective +// read/write value (the tool's ToolType, which drives HITL): the value says +// read-or-write, this says how confident that is. MCP_ANNOTATION = from the +// tool's read-only/destructive hints; ADMIN_OVERRIDE = an admin set it; +// NONE = no usable hint (the effective value then defaults to write); +// NATIVE_TOOL_DEFINITION = from a curated native tool (snapshot-derived). +// Does not affect runtime behavior. +type ActionTypeSource string + +const ( + ActionTypeSourceMcpAnnotation ActionTypeSource = "MCP_ANNOTATION" + ActionTypeSourceAdminOverride ActionTypeSource = "ADMIN_OVERRIDE" + ActionTypeSourceNone ActionTypeSource = "NONE" + ActionTypeSourceNativeToolDefinition ActionTypeSource = "NATIVE_TOOL_DEFINITION" +) + +func (e ActionTypeSource) ToPointer() *ActionTypeSource { + return &e +} +func (e *ActionTypeSource) UnmarshalJSON(data []byte) error { + var v string + if err := json.Unmarshal(data, &v); err != nil { + return err + } + switch v { + case "MCP_ANNOTATION": + fallthrough + case "ADMIN_OVERRIDE": + fallthrough + case "NONE": + fallthrough + case "NATIVE_TOOL_DEFINITION": + *e = ActionTypeSource(v) + return nil + default: + return fmt.Errorf("invalid value for ActionTypeSource: %v", v) + } +} + // AuthType - 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. @@ -165,6 +205,16 @@ type ToolMetadata struct { LastUpdatedAt *time.Time `json:"lastUpdatedAt,omitempty"` // 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. WriteActionType *WriteActionType `json:"writeActionType,omitempty"` + // Analytics-only signal (product snapshot) describing WHERE the action's + // read/write determination came from. Complementary to the effective + // read/write value (the tool's ToolType, which drives HITL): the value says + // read-or-write, this says how confident that is. MCP_ANNOTATION = from the + // tool's read-only/destructive hints; ADMIN_OVERRIDE = an admin set it; + // NONE = no usable hint (the effective value then defaults to write); + // NATIVE_TOOL_DEFINITION = from a curated native tool (snapshot-derived). + // Does not affect runtime behavior. + // + ActionTypeSource *ActionTypeSource `json:"actionTypeSource,omitempty"` // 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. @@ -283,6 +333,13 @@ func (o *ToolMetadata) GetWriteActionType() *WriteActionType { return o.WriteActionType } +func (o *ToolMetadata) GetActionTypeSource() *ActionTypeSource { + if o == nil { + return nil + } + return o.ActionTypeSource +} + func (o *ToolMetadata) GetAuthType() *AuthType { if o == nil { return nil diff --git a/tests/mockserver/internal/sdk/models/operations/platformskillsget.go b/tests/mockserver/internal/sdk/models/operations/platformskillsget.go new file mode 100644 index 00000000..6ebb5b11 --- /dev/null +++ b/tests/mockserver/internal/sdk/models/operations/platformskillsget.go @@ -0,0 +1,39 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +package operations + +import ( + "mockserver/internal/sdk/models/components" +) + +type PlatformSkillsGetRequest struct { + // Glean skill ID. + SkillID string `pathParam:"style=simple,explode=false,name=skill_id"` +} + +func (o *PlatformSkillsGetRequest) GetSkillID() string { + if o == nil { + return "" + } + return o.SkillID +} + +type PlatformSkillsGetResponse struct { + HTTPMeta components.HTTPMetadata `json:"-"` + // Successful response. + PlatformSkillGetResponse *components.PlatformSkillGetResponse +} + +func (o *PlatformSkillsGetResponse) GetHTTPMeta() components.HTTPMetadata { + if o == nil { + return components.HTTPMetadata{} + } + return o.HTTPMeta +} + +func (o *PlatformSkillsGetResponse) GetPlatformSkillGetResponse() *components.PlatformSkillGetResponse { + if o == nil { + return nil + } + return o.PlatformSkillGetResponse +} diff --git a/tests/mockserver/internal/sdk/models/operations/platformskillslist.go b/tests/mockserver/internal/sdk/models/operations/platformskillslist.go new file mode 100644 index 00000000..40f74199 --- /dev/null +++ b/tests/mockserver/internal/sdk/models/operations/platformskillslist.go @@ -0,0 +1,48 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +package operations + +import ( + "mockserver/internal/sdk/models/components" +) + +type PlatformSkillsListRequest struct { + // Maximum number of skills to return. + PageSize *int64 `queryParam:"style=form,explode=true,name=page_size"` + // Opaque pagination cursor from a previous response. + Cursor *string `queryParam:"style=form,explode=true,name=cursor"` +} + +func (o *PlatformSkillsListRequest) GetPageSize() *int64 { + if o == nil { + return nil + } + return o.PageSize +} + +func (o *PlatformSkillsListRequest) GetCursor() *string { + if o == nil { + return nil + } + return o.Cursor +} + +type PlatformSkillsListResponse struct { + HTTPMeta components.HTTPMetadata `json:"-"` + // Successful response. + PlatformSkillsListResponse *components.PlatformSkillsListResponse +} + +func (o *PlatformSkillsListResponse) GetHTTPMeta() components.HTTPMetadata { + if o == nil { + return components.HTTPMetadata{} + } + return o.HTTPMeta +} + +func (o *PlatformSkillsListResponse) GetPlatformSkillsListResponse() *components.PlatformSkillsListResponse { + if o == nil { + return nil + } + return o.PlatformSkillsListResponse +} diff --git a/tests/test_messages.py b/tests/test_messages.py index dfdc1864..636f01d3 100644 --- a/tests/test_messages.py +++ b/tests/test_messages.py @@ -18,7 +18,7 @@ def test_messages_messages(): res = glean.client.messages.retrieve( id_type=models.IDType.CONVERSATION_ID, id="", - datasource=models.Datasource.SLACKENTGRID, + datasource=models.Datasource.GCHAT, timestamp_millis=558834, ) assert res is not None diff --git a/tests/test_skills.py b/tests/test_skills.py new file mode 100644 index 00000000..2dd66ab3 --- /dev/null +++ b/tests/test_skills.py @@ -0,0 +1,33 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from glean.api_client import Glean +import os +from tests.test_client import create_test_http_client + + +def test_skills_platform_skills_list(): + test_http_client = create_test_http_client("platform-skills-list") + + 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.skills.list() + assert res is not None + + +def test_skills_platform_skills_get(): + test_http_client = create_test_http_client("platform-skills-get") + + 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.skills.retrieve(skill_id="") + assert res is not None diff --git a/tests/test_summarize.py b/tests/test_summarize.py index cac8e978..337a5d83 100644 --- a/tests/test_summarize.py +++ b/tests/test_summarize.py @@ -18,12 +18,11 @@ def test_summarize_summarize(): res = glean.client.documents.summarize( document_specs=[ { - "ugc_type": models.DocumentSpecUgcType1.SHORTCUTS, - "content_id": 602763, + "ugc_type": models.DocumentSpecUgcType2.CHATS, + "ugc_id": "", }, { - "ugc_type": models.DocumentSpecUgcType1.SHORTCUTS, - "content_id": 602763, + "url": "https://super-stay.net/", }, ] ) From 5240b6fcd0beeb83cbf00c52744a8c441f16de22 Mon Sep 17 00:00:00 2001 From: "speakeasy-github[bot]" <128539517+speakeasy-github[bot]@users.noreply.github.com> Date: Wed, 15 Jul 2026 11:22:29 +0000 Subject: [PATCH 2/2] empty commit to trigger [run-tests] workflow