Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
202 changes: 151 additions & 51 deletions .speakeasy/gen.lock

Large diffs are not rendered by default.

4 changes: 3 additions & 1 deletion .speakeasy/gen.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ generation:
generateNewTests: true
skipResponseBodyAssertions: true
python:
version: 0.15.1
version: 0.15.2
additionalDependencies:
dev: {}
main: {}
Expand All @@ -51,6 +51,7 @@ python:
constFieldCasing: upper
defaultErrorName: GleanError
description: Python Client SDK Generated by Speakeasy.
durationFormat: false
enableCustomCodeRegions: false
enumFormat: enum
envVarPrefix: GLEAN
Expand Down Expand Up @@ -99,3 +100,4 @@ python:
sseFlatResponse: false
templateVersion: v2
useAsyncHooks: false
uuidFormat: false
200 changes: 196 additions & 4 deletions .speakeasy/glean-merged-spec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ openapi: 3.0.0
info:
version: "0.9.0"
title: Glean API
x-source-commit-sha: 33bf057cf0f948a83126e81582717aebdb622bfa
x-open-api-commit-sha: 4f3a4abf8f003a4edc5522021b22184c76d051ad
x-source-commit-sha: 1ccc408fdb2c210e136239b5b42a53c7b9b4abe5
x-open-api-commit-sha: 1bf9887187c8200b2881b1768fc50ae4fae41796
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.
Expand Down Expand Up @@ -2973,6 +2973,89 @@ paths:
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
Expand Down Expand Up @@ -5091,6 +5174,67 @@ components:
- 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
Expand Down Expand Up @@ -5125,7 +5269,7 @@ components:
type: string
format: uri
description: URI identifying the error type.
example: https://developer.glean.com/errors/invalid-cursor
example: https://developers.glean.com/errors/invalid-cursor
title:
type: string
description: Short, human-readable summary of the error.
Expand All @@ -5145,7 +5289,7 @@ components:
type: string
format: uri
description: Direct URL to documentation for this error code.
example: https://developer.glean.com/errors/invalid-cursor
example: https://developers.glean.com/errors/invalid-cursor
request_id:
type: string
description: Platform-generated request ID for support correlation.
Expand Down Expand Up @@ -11970,6 +12114,7 @@ components:
- 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'
Expand Down Expand Up @@ -12413,6 +12558,7 @@ components:
- DEMO_CARD
- OOO_PLANNER
- OOO_CATCH_UP
- ADMIN_HEALTH_CENTER
description: Type of the justification.
justification:
type: string
Expand Down Expand Up @@ -12502,6 +12648,7 @@ components:
- 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'
Expand Down Expand Up @@ -13135,6 +13282,51 @@ components:
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:
Expand Down
38 changes: 38 additions & 0 deletions .speakeasy/tests.arazzo.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -158828,3 +158828,41 @@ workflows:
type: simple
x-speakeasy-test-group: search
x-speakeasy-test-rebuild: true
- workflowId: getToolServerAuthStatus
steps:
- stepId: test
operationId: getToolServerAuthStatus
parameters:
- name: serverId
in: path
value: <id>
successCriteria:
- condition: $statusCode == 200
- condition: $response.header.Content-Type == application/json
- context: $response.body
condition: |
{"authStatus":"AUTHORIZED","authType":"AUTH_NONE"}
type: simple
x-speakeasy-test-group: tools
x-speakeasy-test-rebuild: true
- workflowId: authorizeToolServer
steps:
- stepId: test
operationId: authorizeToolServer
parameters:
- name: serverId
in: path
value: <id>
requestBody:
contentType: application/json
payload:
returnUrl: https://lucky-disadvantage.com
successCriteria:
- condition: $statusCode == 200
- condition: $response.header.Content-Type == application/json
- context: $response.body
condition: |
{"authorizationUrl":"https://shocked-casket.name/"}
type: simple
x-speakeasy-test-group: tools
x-speakeasy-test-rebuild: true
12 changes: 6 additions & 6 deletions .speakeasy/workflow.lock
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
speakeasyVersion: 1.788.1
speakeasyVersion: 1.789.0
sources:
Glean API:
sourceNamespace: glean-api-specs
sourceRevisionDigest: sha256:8b1b5374e6d5c2f98bc7cddfa619249cd150deba48f6c8b9f2637f723ff73fd2
sourceBlobDigest: sha256:3373213fc1a05b08aad1cf828d00ce46e1da651645fc1ccde24fcdf3efca5861
sourceRevisionDigest: sha256:38135f10206267ef24935fe6f997edba535c1d95313a1bfd30066f791e2f692b
sourceBlobDigest: sha256:cabd9d3d8eb34d9f7324632354255e5b224c05443dd6f8f27094c47cd4839d01
tags:
- latest
Glean Client API:
Expand All @@ -16,10 +16,10 @@ targets:
glean:
source: Glean API
sourceNamespace: glean-api-specs
sourceRevisionDigest: sha256:8b1b5374e6d5c2f98bc7cddfa619249cd150deba48f6c8b9f2637f723ff73fd2
sourceBlobDigest: sha256:3373213fc1a05b08aad1cf828d00ce46e1da651645fc1ccde24fcdf3efca5861
sourceRevisionDigest: sha256:38135f10206267ef24935fe6f997edba535c1d95313a1bfd30066f791e2f692b
sourceBlobDigest: sha256:cabd9d3d8eb34d9f7324632354255e5b224c05443dd6f8f27094c47cd4839d01
codeSamplesNamespace: glean-api-specs-python-code-samples
codeSamplesRevisionDigest: sha256:42ee88e1e120eaba45acb7fec56cd56a4a6c0988876f4b9be96e2ac3adf98ea9
codeSamplesRevisionDigest: sha256:0c2ffb1bbb551c0718176c53dd5fdd322c6c78ec6ab0979f9469cfef459b051e
workflow:
workflowVersion: 1.0.0
speakeasyVersion: latest
Expand Down
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -464,6 +464,8 @@ For more information on obtaining the appropriate token type, please contact you
* [run](docs/sdks/tools/README.md#run) - Execute the specified tool
* [retrieve_action_pack_auth_status](docs/sdks/tools/README.md#retrieve_action_pack_auth_status) - Get end-user authentication status for an action pack.
* [authorize_action_pack](docs/sdks/tools/README.md#authorize_action_pack) - Start the OAuth authorization flow for an action pack.
* [retrieve_tool_server_auth_status](docs/sdks/tools/README.md#retrieve_tool_server_auth_status) - Get end-user authentication status for a tool server.
* [authorize_tool_server](docs/sdks/tools/README.md#authorize_tool_server) - Start the OAuth authorization flow for a tool server.

### [Client.Verification](docs/sdks/clientverification/README.md)

Expand Down
12 changes: 11 additions & 1 deletion RELEASES.md
Original file line number Diff line number Diff line change
Expand Up @@ -778,4 +778,14 @@ Based on:
### Generated
- [python v0.15.1] .
### Releases
- [PyPI v0.15.1] https://pypi.org/project/glean-api-client/0.15.1 - .
- [PyPI v0.15.1] https://pypi.org/project/glean-api-client/0.15.1 - .

## 2026-07-08 02:45:44
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.789.0 (2.916.2) https://github.com/speakeasy-api/speakeasy
### Generated
- [python v0.15.2] .
### Releases
- [PyPI v0.15.2] https://pypi.org/project/glean-api-client/0.15.2 - .
4 changes: 2 additions & 2 deletions docs/errors/platformproblemdetailerror.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,11 @@ Error response following RFC 9457, extended with `code` and `documentation_url`

| Field | Type | Required | Description | Example |
| ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- |
| `type` | *str* | :heavy_check_mark: | URI identifying the error type. | https://developer.glean.com/errors/invalid-cursor |
| `type` | *str* | :heavy_check_mark: | URI identifying the error type. | https://developers.glean.com/errors/invalid-cursor |
| `title` | *str* | :heavy_check_mark: | Short, human-readable summary of the error. | Invalid Pagination Cursor |
| `status` | *int* | :heavy_check_mark: | HTTP status code mirrored from the response. | 400 |
| `detail` | *str* | :heavy_check_mark: | Human-readable explanation specific to this occurrence. | The provided cursor has expired. Start a new search to get a fresh cursor.<br/> |
| `code` | [models.PlatformProblemDetailCode](../models/platformproblemdetailcode.md) | :heavy_check_mark: | Stable machine-readable error code. | invalid_cursor |
| `documentation_url` | *Optional[str]* | :heavy_minus_sign: | Direct URL to documentation for this error code. | https://developer.glean.com/errors/invalid-cursor |
| `documentation_url` | *Optional[str]* | :heavy_minus_sign: | Direct URL to documentation for this error code. | https://developers.glean.com/errors/invalid-cursor |
| `request_id` | *str* | :heavy_check_mark: | Platform-generated request ID for support correlation. | req_7f8a9b0c1d2e |
| `errors` | List[[models.PlatformProblemDetailError](../models/platformproblemdetailerror.md)] | :heavy_minus_sign: | Field-level validation problems, one entry per offending field. | |
Loading
Loading