From 1eba7881c9e2d0af6a07ba6bdeefd99c8c471491 Mon Sep 17 00:00:00 2001 From: Chris Freeman Date: Mon, 15 Jun 2026 17:47:17 -0600 Subject: [PATCH 1/6] Add Platform API to SDK spec generation Include Platform in the merged Speakeasy source and preserve stable SDK metadata, traceability, and streaming coverage before downstream SDK generation. --- .speakeasy/workflow.lock | 1 + .speakeasy/workflow.yaml | 1 + generated_specs/admin_rest.yaml | 4 +- generated_specs/client_rest.yaml | 4 +- generated_specs/indexing.yaml | 4 +- generated_specs/platform.yaml | 1659 +++++++ overlayed_specs/glean-merged-spec.yaml | 6025 +++++++++++++++--------- source_specs/platform.yaml | 1678 +++++++ src/source-spec-transformer.js | 16 +- tests/post_transform_smoke.test.js | 109 + tests/source-spec-transformer.test.js | 142 + 11 files changed, 7452 insertions(+), 2191 deletions(-) create mode 100644 generated_specs/platform.yaml create mode 100644 source_specs/platform.yaml diff --git a/.speakeasy/workflow.lock b/.speakeasy/workflow.lock index 59f12c7f..c7387451 100644 --- a/.speakeasy/workflow.lock +++ b/.speakeasy/workflow.lock @@ -52,6 +52,7 @@ workflow: sources: glean-api-specs: inputs: + - location: generated_specs/platform.yaml - location: generated_specs/client_rest.yaml - location: generated_specs/indexing.yaml - location: generated_specs/admin_rest.yaml diff --git a/.speakeasy/workflow.yaml b/.speakeasy/workflow.yaml index ddd657a0..873ff6cf 100644 --- a/.speakeasy/workflow.yaml +++ b/.speakeasy/workflow.yaml @@ -3,6 +3,7 @@ speakeasyVersion: latest sources: glean-api-specs: inputs: + - location: generated_specs/platform.yaml - location: generated_specs/client_rest.yaml - location: generated_specs/indexing.yaml - location: generated_specs/admin_rest.yaml diff --git a/generated_specs/admin_rest.yaml b/generated_specs/admin_rest.yaml index c33fc11e..f54aadf9 100644 --- a/generated_specs/admin_rest.yaml +++ b/generated_specs/admin_rest.yaml @@ -2,14 +2,14 @@ openapi: 3.0.0 info: version: 0.9.0 title: Glean Rest Admin API - x-source-commit-sha: 44d244bc10e748c7e8c6ec85b030d6ba214830af + x-source-commit-sha: 2425f68d5b782d8d29908367e47216642f338198 description: | # Introduction These are all the APIs exposed to the users through an auth token to utilize certain admin operations. These offer limited exposure to the admin APIs through rest endpoints. x-logo: url: https://app.glean.com/images/glean-text2.svg - x-open-api-commit-sha: 21df4f948ed0b5213e33588e4eeaaf07ddb88ee6 + x-open-api-commit-sha: b58293f3dd13332f3b6860055e3971b8d4044750 servers: - url: https://{instance}-be.glean.com variables: diff --git a/generated_specs/client_rest.yaml b/generated_specs/client_rest.yaml index 2e93eb53..e843481d 100644 --- a/generated_specs/client_rest.yaml +++ b/generated_specs/client_rest.yaml @@ -2,7 +2,7 @@ openapi: 3.0.0 info: version: 0.9.0 title: Glean Client API - x-source-commit-sha: 44d244bc10e748c7e8c6ec85b030d6ba214830af + x-source-commit-sha: 2425f68d5b782d8d29908367e47216642f338198 description: | # Introduction These are the public APIs to enable implementing a custom client interface to the Glean system. @@ -31,7 +31,7 @@ info: Determine the host you need to connect to. This will be the URL of the backend for your Glean deployment, for example, customer-be.glean.com x-logo: url: https://app.glean.com/images/glean-text2.svg - x-open-api-commit-sha: 21df4f948ed0b5213e33588e4eeaaf07ddb88ee6 + x-open-api-commit-sha: b58293f3dd13332f3b6860055e3971b8d4044750 servers: - url: https://{instance}-be.glean.com variables: diff --git a/generated_specs/indexing.yaml b/generated_specs/indexing.yaml index b5d163a0..3ed44f34 100644 --- a/generated_specs/indexing.yaml +++ b/generated_specs/indexing.yaml @@ -2,7 +2,7 @@ openapi: 3.0.0 info: version: 0.9.0 title: Glean Indexing API - x-source-commit-sha: 44d244bc10e748c7e8c6ec85b030d6ba214830af + x-source-commit-sha: 2425f68d5b782d8d29908367e47216642f338198 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. @@ -12,7 +12,7 @@ info: with a 6-month sunset period for anything that requires developers to adopt the new versions. x-logo: url: https://app.glean.com/images/glean-text2.svg - x-open-api-commit-sha: 21df4f948ed0b5213e33588e4eeaaf07ddb88ee6 + x-open-api-commit-sha: b58293f3dd13332f3b6860055e3971b8d4044750 servers: - url: https://{instance}-be.glean.com variables: diff --git a/generated_specs/platform.yaml b/generated_specs/platform.yaml new file mode 100644 index 00000000..0c6a00b1 --- /dev/null +++ b/generated_specs/platform.yaml @@ -0,0 +1,1659 @@ +openapi: 3.0.0 +info: + version: "2026-04-01" + title: Glean Platform API + x-source-commit-sha: 2425f68d5b782d8d29908367e47216642f338198 + x-open-api-commit-sha: b58293f3dd13332f3b6860055e3971b8d4044750 +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. +security: + - APIToken: [] +paths: + /api/documents/batch: + post: + tags: + - Documents + summary: Retrieve documents + description: | + Retrieve details for a batch of documents by URL, Glean document ID, or user-generated content reference. The response preserves request order and reports per-document lookup failures alongside successful results. + operationId: platform-documents-batch + x-visibility: Public + x-glean-experimental: + id: 9eb7c7c2-9807-4e64-bc53-7b10aeff813f + introduced: "2026-06-02" + x-codegen-request-body-name: payload + requestBody: + required: true + content: + application/json: + schema: + $ref: "#/components/schemas/PlatformDocumentsBatchRequest" + responses: + "200": + description: Successful batch retrieval. + content: + application/json: + schema: + $ref: "#/components/schemas/PlatformDocumentsBatchResponse" + "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: platform.documents + x-speakeasy-name-override: batch + /api/documents/{id}/permissions: + get: + tags: + - Documents + summary: Retrieve document permissions + description: | + Retrieve whether a document is visible to everyone and the email addresses of users who have access to it. + operationId: platform-documents-permissions + x-visibility: Public + x-glean-experimental: + id: 45684a5a-b8c0-4c2c-b022-50e2583666ff + introduced: "2026-06-03" + parameters: + - name: id + in: path + required: true + description: Glean document ID. + schema: + type: string + minLength: 1 + responses: + "200": + description: Successful document permissions retrieval. + content: + application/json: + schema: + $ref: "#/components/schemas/PlatformDocumentPermissionsResponse" + "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: platform.documents + x-speakeasy-name-override: getPermissions + /api/people/search: + post: + tags: + - People + summary: Search people + description: | + Retrieve people by Glean person ID or email address. When no identifiers are provided, the authenticated user's profile is returned. + operationId: platform-people-search + x-visibility: Public + x-glean-experimental: + id: 51692e94-d9ff-4e5b-b5b5-4b78c4a9879a + introduced: "2026-05-18" + x-codegen-request-body-name: payload + requestBody: + required: true + content: + application/json: + schema: + $ref: "#/components/schemas/PlatformPeopleSearchRequest" + responses: + "200": + description: Successful people response. + content: + application/json: + schema: + $ref: "#/components/schemas/PlatformPeopleSearchResponse" + "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: platform.people + x-speakeasy-name-override: search + /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" + "429": + $ref: "#/components/responses/PlatformTooManyRequests" + "500": + $ref: "#/components/responses/PlatformInternalServerError" + "503": + $ref: "#/components/responses/PlatformServiceUnavailable" + x-speakeasy-group: platform.agents + x-speakeasy-name-override: search + /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: platform.agents + x-speakeasy-name-override: get + /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: platform.agents + x-speakeasy-name-override: getSchemas + /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"}]}]} + + 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" + "429": + $ref: "#/components/responses/PlatformTooManyRequests" + "500": + $ref: "#/components/responses/PlatformInternalServerError" + "503": + $ref: "#/components/responses/PlatformServiceUnavailable" + x-speakeasy-group: platform.agents + x-speakeasy-name-override: createRun + /api/tools: + get: + tags: + - Tools + summary: List tools + description: | + List tools available to the authenticated user, optionally filtered by tool name. + operationId: platform-tools-list + x-visibility: Public + x-glean-experimental: + id: 3cb43a04-ad52-4c25-be62-3ce1daffd513 + introduced: "2026-05-06" + parameters: + - in: query + name: tool_names + description: Optional comma-delimited list of tool names to return. + required: false + style: form + explode: false + schema: + type: array + items: + type: string + responses: + "200": + description: Successful response. + content: + application/json: + schema: + $ref: "#/components/schemas/PlatformToolsListResponse" + "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: platform.tools + x-speakeasy-name-override: list + /api/tools/call: + post: + tags: + - Tools + summary: Call tool + description: | + Execute a tool available to the authenticated user with the provided parameters. + operationId: platform-tools-call + x-visibility: Public + x-glean-experimental: + id: 9ea7c149-7d5b-4c62-860d-afb56481069a + introduced: "2026-05-08" + x-codegen-request-body-name: payload + requestBody: + required: true + content: + application/json: + schema: + $ref: "#/components/schemas/PlatformToolsCallRequest" + responses: + "200": + description: Successful response. + content: + application/json: + schema: + $ref: "#/components/schemas/PlatformToolsCallResponse" + "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: platform.tools + x-speakeasy-name-override: call + /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" + "429": + $ref: "#/components/responses/PlatformTooManyRequests" + "500": + $ref: "#/components/responses/PlatformInternalServerError" + "503": + $ref: "#/components/responses/PlatformServiceUnavailable" + x-speakeasy-group: platform.search + x-speakeasy-name-override: query + /api/summarize: + post: + tags: + - Summarize + summary: Summarize documents + description: | + Generate an AI summary of one or more documents. Supply documents by URL, Glean document ID, or user-generated content reference. + operationId: platform-summarize + x-visibility: Public + x-glean-experimental: + id: 4d2f8b2e-7c9d-4f4f-9b1d-4d2f8b2e7c9d + introduced: "2026-05-27" + x-codegen-request-body-name: payload + requestBody: + required: true + content: + application/json: + schema: + $ref: "#/components/schemas/PlatformSummarizeRequest" + responses: + "200": + description: Successful summary. + content: + application/json: + schema: + $ref: "#/components/schemas/PlatformSummarizeResponse" + "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: platform.summarize + x-speakeasy-name-override: create +components: + securitySchemes: + APIToken: + type: http + scheme: bearer + description: | + Glean API token. Obtain via Admin Console -> Platform -> API Tokens, or via OAuth 2.0 client credentials flow. + schemas: + PlatformUgcType: + type: string + enum: + - ANNOUNCEMENTS + - ANSWERS + - COLLECTIONS + - SHORTCUTS + description: Type of user-generated content. + PlatformDocumentSpec: + type: object + description: | + Reference to a document. Exactly one of `url`, `id`, or `content_id` with `ugc_type` must be provided. + oneOf: + - type: object + additionalProperties: false + required: + - url + properties: + url: + type: string + description: URL of the document. + - type: object + additionalProperties: false + required: + - id + properties: + id: + type: string + description: Glean document ID. + - type: object + additionalProperties: false + required: + - content_id + - ugc_type + properties: + content_id: + type: integer + format: int32 + description: Numeric ID of the user-generated content item. + ugc_type: + $ref: "#/components/schemas/PlatformUgcType" + doc_type: + type: string + description: Specific subtype of the user-generated content item. + PlatformDocumentIncludeField: + type: string + enum: + - LAST_VIEWED_AT + - VISITORS_COUNT + - RECENT_SHARES + - DOCUMENT_CONTENT + - CUSTOM_METADATA + description: Optional fields that can be included in returned documents. + PlatformDocumentsBatchRequest: + type: object + additionalProperties: false + required: + - document_specs + properties: + document_specs: + type: array + minItems: 1 + items: + $ref: "#/components/schemas/PlatformDocumentSpec" + description: Documents to retrieve. + include_fields: + type: array + items: + $ref: "#/components/schemas/PlatformDocumentIncludeField" + description: Additional document fields to include in the response. + PlatformDocumentContent: + type: object + properties: + full_text_list: + type: array + items: + type: string + description: Plaintext content of the document. + PlatformDocumentReference: + type: object + properties: + id: + type: string + description: Glean document ID. + title: + type: string + description: Title of the referenced document. + url: + type: string + description: Permalink for the referenced document. + PlatformCountInfo: + type: object + properties: + count: + type: integer + format: int64 + period: + type: string + description: Human-readable period represented by this count. + from: + type: string + format: date-time + to: + type: string + format: date-time + PlatformPerson: + type: object + properties: + name: + type: string + email: + type: string + obfuscated_id: + type: string + PlatformShare: + type: object + properties: + num_days_ago: + type: integer + description: Number of days since the share occurred. + sharer: + $ref: "#/components/schemas/PlatformPerson" + sharing_document: + $ref: "#/components/schemas/PlatformDocumentReference" + PlatformDocumentInteractions: + type: object + properties: + visitor_count: + $ref: "#/components/schemas/PlatformCountInfo" + shares: + type: array + items: + $ref: "#/components/schemas/PlatformShare" + PlatformViewerInfo: + type: object + properties: + last_viewed_time: + type: string + format: date-time + PlatformCustomDataValue: + type: object + properties: + string_value: + type: string + string_list_value: + type: array + items: + type: string + PlatformDocumentMetadata: + type: object + properties: + datasource: + type: string + datasource_instance: + type: string + description: Datasource instance from which the document was extracted. + object_type: + type: string + description: Datasource-specific object type. + container: + type: string + description: Name of the higher-level container. + container_id: + type: string + description: Glean document ID of the container. + parent_id: + type: string + description: Glean document ID of the direct parent. + mime_type: + type: string + interactions: + $ref: "#/components/schemas/PlatformDocumentInteractions" + viewer_info: + $ref: "#/components/schemas/PlatformViewerInfo" + custom_data: + type: object + additionalProperties: + $ref: "#/components/schemas/PlatformCustomDataValue" + description: Custom metadata requested via `CUSTOM_METADATA`. + PlatformDocumentSection: + type: object + properties: + title: + type: string + description: Section title. + url: + type: string + description: Permalink for the section. + PlatformDocument: + type: object + required: + - id + properties: + id: + type: string + description: Glean document ID. + datasource: + type: string + description: App or repository type from which the document was extracted. + connector_type: + type: string + description: Connector type for the source system. + document_type: + type: string + description: Datasource-specific type of the document. + title: + type: string + description: Title of the document. + url: + type: string + description: Permalink for the document. + content: + $ref: "#/components/schemas/PlatformDocumentContent" + container_document: + $ref: "#/components/schemas/PlatformDocumentReference" + parent_document: + $ref: "#/components/schemas/PlatformDocumentReference" + metadata: + $ref: "#/components/schemas/PlatformDocumentMetadata" + sections: + type: array + items: + $ref: "#/components/schemas/PlatformDocumentSection" + description: Content subsections in the document. + PlatformDocumentBatchErrorCode: + type: string + enum: + - NOT_FOUND_OR_NOT_ALLOWED + - INVALID_DOCUMENT_SPEC + - ANNOTATION_ERROR + - DOCUMENT_GENERATION_ERROR + description: Stable machine-readable item-level failure code. + PlatformDocumentBatchError: + type: object + required: + - code + - message + properties: + code: + $ref: "#/components/schemas/PlatformDocumentBatchErrorCode" + message: + type: string + description: Human-readable explanation for the item-level failure. + PlatformDocumentBatchResult: + description: | + One document retrieval result. Successful results include `document`; lookup failures include `error`. + oneOf: + - type: object + additionalProperties: false + required: + - status + - document + properties: + status: + type: string + enum: + - FOUND + document: + $ref: "#/components/schemas/PlatformDocument" + - type: object + additionalProperties: false + required: + - status + - error + properties: + status: + type: string + enum: + - NOT_FOUND + - INVALID + - ERROR + error: + $ref: "#/components/schemas/PlatformDocumentBatchError" + PlatformDocumentsBatchResponse: + type: object + required: + - request_id + - results + properties: + request_id: + type: string + description: Server-generated identifier for this response, useful for support. + results: + type: array + items: + $ref: "#/components/schemas/PlatformDocumentBatchResult" + description: Results in the same order as `document_specs`. + 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://developer.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: + type: string + description: Stable machine-readable error code. + enum: + - invalid_request + - missing_required_field + - invalid_parameter + - invalid_cursor + - expired_cursor + - invalid_filter + - authentication_required + - token_expired + - insufficient_permissions + - resource_not_found + - method_not_allowed + - request_timeout + - conflict + - gone + - unprocessable_query + - rate_limit_exceeded + - internal_error + - service_unavailable + example: invalid_cursor + documentation_url: + type: string + format: uri + description: Direct URL to documentation for this error code. + example: https://developer.glean.com/errors/invalid-cursor + request_id: + type: string + description: Platform-generated request ID for support correlation. + example: req_7f8a9b0c1d2e + PlatformDocumentPermissionsResponse: + type: object + required: + - request_id + - allowed_user_emails + - visible_to_all + properties: + request_id: + type: string + description: Server-generated identifier for this response, useful for support. + allowed_user_emails: + type: array + items: + type: string + description: Email addresses for users who can access the document. + visible_to_all: + type: boolean + description: Whether the document is visible to everyone. + PlatformPeopleIncludeField: + type: string + description: Optional profile fields to request. + enum: + - PEOPLE_DETAILS + - MANAGEMENT_DETAILS + PlatformPeopleIncludeType: + type: string + description: Optional people result types to request. + x-enumDescriptions: + INVALID_ENTITIES: Return invalid requested people that can be loaded in the people array with is_valid set to false. Identifiers that cannot be loaded are returned in not_found. + enum: + - INVALID_ENTITIES + x-speakeasy-enum-descriptions: + INVALID_ENTITIES: Return invalid requested people that can be loaded in the people array with is_valid set to false. Identifiers that cannot be loaded are returned in not_found. + PlatformPeopleSearchRequest: + type: object + additionalProperties: false + properties: + person_ids: + type: array + description: Glean person IDs to retrieve. + items: + type: string + example: + - abc123 + - abc456 + email_ids: + type: array + description: Email addresses to retrieve. + items: + type: string + example: + - jane.smith@example.com + include_fields: + type: array + description: Optional profile fields to include beyond the default profile. + items: + $ref: "#/components/schemas/PlatformPeopleIncludeField" + include_types: + type: array + description: Optional non-default people result types to include. + items: + $ref: "#/components/schemas/PlatformPeopleIncludeType" + PlatformPersonType: + type: string + description: Person employment status or account type. + enum: + - FULL_TIME + - CONTRACTOR + - NON_EMPLOYEE + - FORMER_EMPLOYEE + PlatformPeopleSearchPerson: + type: object + required: + - id + - is_valid + - name + properties: + id: + type: string + description: Opaque Glean person ID. + is_valid: + type: boolean + description: Whether this is a valid person record. Invalid people are returned only when requested with include_types. + name: + type: string + description: Display name. + type: + $ref: "#/components/schemas/PlatformPersonType" + email: + type: string + format: email + description: Primary email address. + title: + type: string + description: Job title. + department: + type: string + description: Department or organizational unit. + location: + type: string + description: User-facing location. + photo_url: + type: string + format: uri + description: Avatar URL. + manager_id: + type: string + description: Opaque Glean person ID for the person's manager. + manager_name: + type: string + description: Display name for the person's manager. + PlatformPeopleSearchResponse: + type: object + required: + - people + - not_found + - request_id + properties: + people: + type: array + description: People matching the requested identifiers. + items: + $ref: "#/components/schemas/PlatformPeopleSearchPerson" + not_found: + type: array + description: Identifiers that could not be resolved. + items: + type: string + request_id: + type: string + description: Platform-generated request ID for support correlation. + 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. + 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 + 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. + PlatformToolParameter: + type: object + properties: + type: + type: string + description: Parameter type. + enum: + - string + - number + - boolean + - object + - array + name: + type: string + description: Parameter name. + description: + type: string + description: Parameter description. + is_required: + type: boolean + description: Whether the parameter is required. + possible_values: + type: array + description: Possible primitive values for the parameter. + items: + type: string + items: + $ref: "#/components/schemas/PlatformToolParameter" + properties: + type: object + description: Object properties for object parameters. + additionalProperties: + $ref: "#/components/schemas/PlatformToolParameter" + PlatformTool: + type: object + required: + - type + - name + - display_name + - description + - parameters + properties: + type: + type: string + description: Type of tool. + enum: + - READ + - WRITE + name: + type: string + description: Unique identifier for the tool. + display_name: + type: string + description: Human-readable name. + description: + type: string + description: LLM-friendly description of the tool. + parameters: + type: object + description: Parameters supported by the tool. + additionalProperties: + $ref: "#/components/schemas/PlatformToolParameter" + PlatformToolsListResponse: + type: object + required: + - tools + - request_id + properties: + tools: + type: array + description: List of tools available to the user. + items: + $ref: "#/components/schemas/PlatformTool" + request_id: + type: string + description: Platform-generated request ID for support correlation. + PlatformToolsCallRequest: + type: object + additionalProperties: false + required: + - name + - parameters + properties: + name: + type: string + minLength: 1 + description: Name of the tool to execute. + parameters: + type: object + description: Tool parameter values keyed by parameter name. + additionalProperties: true + PlatformToolsCallResponse: + type: object + required: + - raw_response + - request_id + properties: + raw_response: + type: object + description: Raw response returned by the tool. + additionalProperties: true + request_id: + type: string + description: Platform-generated request ID for support correlation. + PlatformFilter: + type: object + required: + - field + - values + description: | + A single filter criterion. Multiple values within a filter are OR'd. 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 operator 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 + exclude: + type: boolean + default: false + description: Excludes results matching any of the specified values when true. + 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 + 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`. + example: quarterly planning 2026 + 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. + example: + - confluence + - google_drive + filters: + type: array + items: + $ref: "#/components/schemas/PlatformFilter" + description: | + Structured filters applied to search results. Multiple values within a filter are OR'd. Multiple filters are AND'd together. 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" + PlatformSearchResultPerson: + type: object + nullable: true + description: A person associated with the result. + properties: + name: + type: string + description: Display name. + example: Jane Smith + email: + type: string + format: email + description: Email address. + example: jane.smith@company.com + 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 + document_type: + type: string + nullable: true + description: The document type within the datasource. + example: page + creator: + $ref: "#/components/schemas/PlatformSearchResultPerson" + owner: + $ref: "#/components/schemas/PlatformSearchResultPerson" + 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. + PlatformSummarizeDocumentSpec: + type: object + description: | + Reference to a document to summarize. Exactly one of `url`, `id`, or a UGC pair (`content_id` + `ugc_type` for ANNOUNCEMENTS/ANSWERS/COLLECTIONS) must be provided. + oneOf: + - type: object + additionalProperties: false + required: + - url + properties: + url: + type: string + description: Public URL of the document. + - type: object + additionalProperties: false + required: + - id + properties: + id: + type: string + description: Glean document ID. + - type: object + additionalProperties: false + required: + - content_id + - ugc_type + properties: + content_id: + type: integer + format: int32 + description: Numeric ID of the user-generated content item. + ugc_type: + type: string + enum: + - ANNOUNCEMENTS + - ANSWERS + - COLLECTIONS + description: Datasource type of the user-generated content item. + PlatformSummarizeRequest: + type: object + additionalProperties: false + required: + - document_specs + properties: + document_specs: + type: array + minItems: 1 + items: + $ref: "#/components/schemas/PlatformSummarizeDocumentSpec" + description: Specifications of the documents to summarize. + preferred_summary_length: + type: integer + minimum: 1 + default: 1000 + description: | + Preferred summary length in characters. The model treats this as a target, not a strict bound. + tracking_token: + type: string + description: | + Opaque token from a previous response. Pass it back when reporting feedback to associate the feedback with this summary. + PlatformSummary: + type: object + properties: + text: + type: string + description: The generated summary text. + follow_up_prompts: + type: array + items: + type: string + description: Suggested follow-up prompts derived from the summarized documents. + PlatformSummarizeResponse: + type: object + properties: + request_id: + type: string + description: Server-generated identifier for this response, useful for support. + summary: + $ref: "#/components/schemas/PlatformSummary" + tracking_token: + type: string + description: | + Opaque token representing this summary. Pass it back to the feedback endpoint to associate feedback with this summary. + 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" + 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" diff --git a/overlayed_specs/glean-merged-spec.yaml b/overlayed_specs/glean-merged-spec.yaml index d2971476..990f87cb 100644 --- a/overlayed_specs/glean-merged-spec.yaml +++ b/overlayed_specs/glean-merged-spec.yaml @@ -1,8 +1,9 @@ openapi: 3.0.0 info: - version: 0.9.0 + version: "0.9.0" title: Glean API - x-source-commit-sha: 44d244bc10e748c7e8c6ec85b030d6ba214830af + x-source-commit-sha: 2425f68d5b782d8d29908367e47216642f338198 + x-open-api-commit-sha: b58293f3dd13332f3b6860055e3971b8d4044750 description: | # Introduction In addition to the data sources that Glean has built-in support for, Glean also provides a REST API that enables customers to put arbitrary content in the search index. This is useful, for example, for doing permissions-aware search over content in internal tools that reside on-prem as well as for searching over applications that Glean does not currently support first class. In addition these APIs allow the customer to push organization data (people info, organization structure etc) into Glean. @@ -22,7 +23,6 @@ info: These API clients provide type-safe, idiomatic interfaces for working with Glean IndexingAPIs in your language of choice. x-logo: url: https://app.glean.com/images/glean-text2.svg - x-open-api-commit-sha: 21df4f948ed0b5213e33588e4eeaaf07ddb88ee6 x-speakeasy-name: 'Glean API' servers: - url: https://{instance}-be.glean.com @@ -31,451 +31,732 @@ servers: default: instance-name description: The instance name (typically the email domain without the TLD) that determines the deployment backend. paths: - /rest/api/v1/activity: + /api/documents/batch: 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 + - Documents + summary: Retrieve documents + description: | + Retrieve details for a batch of documents by URL, Glean document ID, or user-generated content reference. The response preserves request order and reports per-document lookup failures alongside successful results. + operationId: platform-documents-batch x-visibility: Public + x-glean-experimental: + id: 9eb7c7c2-9807-4e64-bc53-7b10aeff813f + introduced: "2026-06-02" x-codegen-request-body-name: payload requestBody: + required: true content: application/json: schema: - $ref: "#/components/schemas/Activity" - required: true - x-exportParamName: Activity + $ref: "#/components/schemas/PlatformDocumentsBatchRequest" responses: "200": - description: OK + description: Successful batch retrieval. + content: + application/json: + schema: + $ref: "#/components/schemas/PlatformDocumentsBatchResponse" "400": - description: Invalid request + $ref: "#/components/responses/PlatformBadRequest" "401": - description: Not Authorized + $ref: "#/components/responses/PlatformUnauthorized" + "403": + $ref: "#/components/responses/PlatformForbidden" + "404": + $ref: "#/components/responses/PlatformNotFound" + "408": + $ref: "#/components/responses/PlatformRequestTimeout" "429": - description: Too Many Requests + $ref: "#/components/responses/PlatformTooManyRequests" + "500": + $ref: "#/components/responses/PlatformInternalServerError" + "503": + $ref: "#/components/responses/PlatformServiceUnavailable" + x-speakeasy-group: platform.documents + x-speakeasy-name-override: batch security: - APIToken: [] - x-speakeasy-name-override: report - x-speakeasy-group: client.activity - /rest/api/v1/feedback: - post: + /api/documents/{id}/permissions: + get: 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 + - Documents + summary: Retrieve document permissions + description: | + Retrieve whether a document is visible to everyone and the email addresses of users who have access to it. + operationId: platform-documents-permissions x-visibility: Public - x-codegen-request-body-name: payload + x-glean-experimental: + id: 45684a5a-b8c0-4c2c-b022-50e2583666ff + introduced: "2026-06-03" parameters: - - name: feedback - in: query - description: A URL encoded versions of Feedback. This is useful for requests. - required: false + - name: id + in: path + required: true + description: Glean document ID. schema: type: string - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/Feedback" - x-exportParamName: Feedback + minLength: 1 responses: "200": - description: OK + description: Successful document permissions retrieval. + content: + application/json: + schema: + $ref: "#/components/schemas/PlatformDocumentPermissionsResponse" "400": - description: Invalid request + $ref: "#/components/responses/PlatformBadRequest" "401": - description: Not Authorized + $ref: "#/components/responses/PlatformUnauthorized" + "403": + $ref: "#/components/responses/PlatformForbidden" + "404": + $ref: "#/components/responses/PlatformNotFound" + "408": + $ref: "#/components/responses/PlatformRequestTimeout" "429": - description: Too Many Requests + $ref: "#/components/responses/PlatformTooManyRequests" + "500": + $ref: "#/components/responses/PlatformInternalServerError" + "503": + $ref: "#/components/responses/PlatformServiceUnavailable" + x-speakeasy-group: platform.documents + x-speakeasy-name-override: getPermissions security: - APIToken: [] - x-speakeasy-group: client.activity - /rest/api/v1/createannouncement: + /api/people/search: post: tags: - - Announcements - summary: Create Announcement - description: Create a textual announcement visible to some set of users based on department and location. - operationId: createannouncement + - People + summary: Search people + description: | + Retrieve people by Glean person ID or email address. When no identifiers are provided, the authenticated user's profile is returned. + operationId: platform-people-search x-visibility: Public + x-glean-experimental: + id: 51692e94-d9ff-4e5b-b5b5-4b78c4a9879a + introduced: "2026-05-18" x-codegen-request-body-name: payload - parameters: - - $ref: "#/components/parameters/locale" requestBody: + required: true content: application/json: schema: - $ref: "#/components/schemas/CreateAnnouncementRequest" - description: Announcement content - required: true - x-exportParamName: Request + $ref: "#/components/schemas/PlatformPeopleSearchRequest" responses: "200": - description: OK + description: Successful people response. content: application/json: schema: - $ref: "#/components/schemas/Announcement" + $ref: "#/components/schemas/PlatformPeopleSearchResponse" "400": - description: Invalid request + $ref: "#/components/responses/PlatformBadRequest" "401": - description: Not Authorized + $ref: "#/components/responses/PlatformUnauthorized" + "403": + $ref: "#/components/responses/PlatformForbidden" + "404": + $ref: "#/components/responses/PlatformNotFound" + "408": + $ref: "#/components/responses/PlatformRequestTimeout" "429": - description: Too Many Requests + $ref: "#/components/responses/PlatformTooManyRequests" + "500": + $ref: "#/components/responses/PlatformInternalServerError" + "503": + $ref: "#/components/responses/PlatformServiceUnavailable" + x-speakeasy-group: platform.people + x-speakeasy-name-override: search security: - APIToken: [] - x-speakeasy-name-override: create - x-speakeasy-group: client.announcements - /rest/api/v1/deleteannouncement: + /api/agents/search: post: tags: - - Announcements - summary: Delete Announcement - description: Delete an existing user-generated announcement. - operationId: deleteannouncement + - 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 - parameters: - - $ref: "#/components/parameters/locale" requestBody: + required: true content: application/json: schema: - $ref: "#/components/schemas/DeleteAnnouncementRequest" - description: Delete announcement request - required: true - x-exportParamName: Request + $ref: "#/components/schemas/PlatformAgentsSearchRequest" responses: "200": - description: OK + description: Successful response. + content: + application/json: + schema: + $ref: "#/components/schemas/PlatformAgentsSearchResponse" "400": - description: Invalid request + $ref: "#/components/responses/PlatformBadRequest" "401": - description: Not Authorized + $ref: "#/components/responses/PlatformUnauthorized" + "403": + $ref: "#/components/responses/PlatformForbidden" + "404": + $ref: "#/components/responses/PlatformNotFound" + "408": + $ref: "#/components/responses/PlatformRequestTimeout" "429": - description: Too Many Requests + $ref: "#/components/responses/PlatformTooManyRequests" + "500": + $ref: "#/components/responses/PlatformInternalServerError" + "503": + $ref: "#/components/responses/PlatformServiceUnavailable" + x-speakeasy-group: platform.agents + x-speakeasy-name-override: search security: - APIToken: [] - x-speakeasy-name-override: delete - x-speakeasy-group: client.announcements - /rest/api/v1/updateannouncement: - post: + /api/agents/{agent_id}: + get: tags: - - Announcements - summary: Update Announcement - description: Update a textual announcement visible to some set of users based on department and location. - operationId: updateannouncement + - Agents + summary: Get agent + description: | + Retrieve details for an agent available to the authenticated user. + operationId: platform-agents-get x-visibility: Public - x-codegen-request-body-name: payload + x-glean-experimental: + id: 009b3e94-694b-4deb-b80a-c67011173715 + introduced: "2026-05-12" 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 + - in: path + name: agent_id + description: ID of the agent to retrieve. + required: true + schema: + type: string + minLength: 1 responses: "200": - description: OK + description: Successful response. content: application/json: schema: - $ref: "#/components/schemas/Announcement" + $ref: "#/components/schemas/PlatformAgentGetResponse" "400": - description: Invalid request + $ref: "#/components/responses/PlatformBadRequest" "401": - description: Not Authorized + $ref: "#/components/responses/PlatformUnauthorized" + "403": + $ref: "#/components/responses/PlatformForbidden" + "404": + $ref: "#/components/responses/PlatformNotFound" + "408": + $ref: "#/components/responses/PlatformRequestTimeout" "429": - description: Too Many Requests + $ref: "#/components/responses/PlatformTooManyRequests" + "500": + $ref: "#/components/responses/PlatformInternalServerError" + "503": + $ref: "#/components/responses/PlatformServiceUnavailable" + x-speakeasy-group: platform.agents + x-speakeasy-name-override: get security: - APIToken: [] - x-speakeasy-name-override: update - x-speakeasy-group: client.announcements - /rest/api/v1/createanswer: - post: + /api/agents/{agent_id}/schemas: + get: tags: - - Answers - summary: Create Answer - description: Create a user-generated Answer that contains a question and answer. - operationId: createanswer + - Agents + summary: Get agent schemas + description: | + Retrieve an agent's input and output JSON schemas. + operationId: platform-agents-get-schemas x-visibility: Public - x-codegen-request-body-name: payload + x-glean-experimental: + id: b40b4dd3-3839-48e6-9e45-7e63e8148b49 + introduced: "2026-05-12" parameters: - - $ref: "#/components/parameters/locale" - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/CreateAnswerRequest" - description: CreateAnswer request - required: true - x-exportParamName: Request + - 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: OK + description: Successful response. content: application/json: schema: - $ref: "#/components/schemas/Answer" + $ref: "#/components/schemas/PlatformAgentSchemasResponse" "400": - description: Invalid request + $ref: "#/components/responses/PlatformBadRequest" "401": - description: Not Authorized + $ref: "#/components/responses/PlatformUnauthorized" + "403": + $ref: "#/components/responses/PlatformForbidden" + "404": + $ref: "#/components/responses/PlatformNotFound" + "408": + $ref: "#/components/responses/PlatformRequestTimeout" "429": - description: Too Many Requests + $ref: "#/components/responses/PlatformTooManyRequests" + "500": + $ref: "#/components/responses/PlatformInternalServerError" + "503": + $ref: "#/components/responses/PlatformServiceUnavailable" + x-speakeasy-group: platform.agents + x-speakeasy-name-override: getSchemas security: - APIToken: [] - x-speakeasy-name-override: create - x-speakeasy-group: client.answers - /rest/api/v1/deleteanswer: + /api/agents/{agent_id}/runs: post: tags: - - Answers - summary: Delete Answer - description: Delete an existing user-generated Answer. - operationId: deleteanswer + - 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: - - $ref: "#/components/parameters/locale" + - 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/DeleteAnswerRequest" - description: DeleteAnswer request - required: true - x-exportParamName: Request + $ref: "#/components/schemas/PlatformAgentRunCreateRequest" responses: "200": - description: OK + 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": - description: Invalid request + $ref: "#/components/responses/PlatformBadRequest" "401": - description: Not Authorized + $ref: "#/components/responses/PlatformUnauthorized" + "403": + $ref: "#/components/responses/PlatformForbidden" + "404": + $ref: "#/components/responses/PlatformNotFound" + "408": + $ref: "#/components/responses/PlatformRequestTimeout" + "409": + $ref: "#/components/responses/PlatformConflict" "429": - description: Too Many Requests + $ref: "#/components/responses/PlatformTooManyRequests" + "500": + $ref: "#/components/responses/PlatformInternalServerError" + "503": + $ref: "#/components/responses/PlatformServiceUnavailable" + x-speakeasy-group: platform.agents + x-speakeasy-name-override: createRun security: - APIToken: [] - x-speakeasy-name-override: delete - x-speakeasy-group: client.answers - /rest/api/v1/editanswer: - post: + /api/tools: + get: tags: - - Answers - summary: Update Answer - description: Update an existing user-generated Answer. - operationId: editanswer + - Tools + summary: List tools + description: | + List tools available to the authenticated user, optionally filtered by tool name. + operationId: platform-tools-list x-visibility: Public - x-codegen-request-body-name: payload + x-glean-experimental: + id: 3cb43a04-ad52-4c25-be62-3ce1daffd513 + introduced: "2026-05-06" parameters: - - $ref: "#/components/parameters/locale" - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/EditAnswerRequest" - description: EditAnswer request - required: true - x-exportParamName: Request + - in: query + name: tool_names + description: Optional comma-delimited list of tool names to return. + required: false + style: form + explode: false + schema: + type: array + items: + type: string responses: "200": - description: OK + description: Successful response. content: application/json: schema: - $ref: "#/components/schemas/Answer" + $ref: "#/components/schemas/PlatformToolsListResponse" "400": - description: Invalid request + $ref: "#/components/responses/PlatformBadRequest" "401": - description: Not Authorized + $ref: "#/components/responses/PlatformUnauthorized" + "403": + $ref: "#/components/responses/PlatformForbidden" + "404": + $ref: "#/components/responses/PlatformNotFound" + "408": + $ref: "#/components/responses/PlatformRequestTimeout" "429": - description: Too Many Requests + $ref: "#/components/responses/PlatformTooManyRequests" + "500": + $ref: "#/components/responses/PlatformInternalServerError" + "503": + $ref: "#/components/responses/PlatformServiceUnavailable" + x-speakeasy-group: platform.tools + x-speakeasy-name-override: list security: - APIToken: [] - x-speakeasy-name-override: update - x-speakeasy-group: client.answers - /rest/api/v1/getanswer: + /api/tools/call: post: tags: - - Answers - summary: Read Answer - description: Read the details of a particular Answer given its ID. - operationId: getanswer + - Tools + summary: Call tool + description: | + Execute a tool available to the authenticated user with the provided parameters. + operationId: platform-tools-call x-visibility: Public + x-glean-experimental: + id: 9ea7c149-7d5b-4c62-860d-afb56481069a + introduced: "2026-05-08" x-codegen-request-body-name: payload - parameters: - - $ref: "#/components/parameters/locale" requestBody: + required: true content: application/json: schema: - $ref: "#/components/schemas/GetAnswerRequest" - description: GetAnswer request - required: true - x-exportParamName: Request + $ref: "#/components/schemas/PlatformToolsCallRequest" responses: "200": - description: OK + description: Successful response. content: application/json: schema: - $ref: "#/components/schemas/GetAnswerResponse" + $ref: "#/components/schemas/PlatformToolsCallResponse" "400": - description: Invalid request + $ref: "#/components/responses/PlatformBadRequest" "401": - description: Not Authorized + $ref: "#/components/responses/PlatformUnauthorized" + "403": + $ref: "#/components/responses/PlatformForbidden" + "404": + $ref: "#/components/responses/PlatformNotFound" + "408": + $ref: "#/components/responses/PlatformRequestTimeout" "429": - description: Too Many Requests + $ref: "#/components/responses/PlatformTooManyRequests" + "500": + $ref: "#/components/responses/PlatformInternalServerError" + "503": + $ref: "#/components/responses/PlatformServiceUnavailable" + x-speakeasy-group: platform.tools + x-speakeasy-name-override: call security: - APIToken: [] - x-speakeasy-name-override: retrieve - x-speakeasy-group: client.answers - /rest/api/v1/listanswers: + /api/search: post: tags: - - Answers - summary: List Answers - description: List Answers created by the current user. - operationId: listanswers - deprecated: true + - 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 - parameters: - - $ref: "#/components/parameters/locale" requestBody: + required: true content: application/json: schema: - $ref: "#/components/schemas/ListAnswersRequest" - description: ListAnswers request - required: true - x-exportParamName: Request + $ref: "#/components/schemas/PlatformSearchRequest" responses: "200": - description: OK + description: Successful search. content: application/json: schema: - $ref: "#/components/schemas/ListAnswersResponse" + $ref: "#/components/schemas/PlatformSearchResponse" "400": - description: Invalid request + $ref: "#/components/responses/PlatformBadRequest" "401": - description: Not Authorized + $ref: "#/components/responses/PlatformUnauthorized" + "403": + $ref: "#/components/responses/PlatformForbidden" + "404": + $ref: "#/components/responses/PlatformNotFound" + "408": + $ref: "#/components/responses/PlatformRequestTimeout" "429": - description: Too Many Requests - x-glean-deprecated: - id: 4c0923bd-64c7-45b9-99a5-b36f2705e618 - introduced: "2026-01-21" - message: Answer boards have been removed and this endpoint no longer serves a purpose - removal: "2026-10-15" - x-speakeasy-deprecation-message: "Deprecated on 2026-01-21, removal scheduled for 2026-10-15: Answer boards have been removed and this endpoint no longer serves a purpose" + $ref: "#/components/responses/PlatformTooManyRequests" + "500": + $ref: "#/components/responses/PlatformInternalServerError" + "503": + $ref: "#/components/responses/PlatformServiceUnavailable" + x-speakeasy-group: platform.search + x-speakeasy-name-override: query security: - APIToken: [] - x-speakeasy-name-override: list - x-speakeasy-group: client.answers - /rest/api/v1/checkdatasourceauth: + /api/summarize: post: tags: - - Authentication - summary: Check datasource authorization + - Summarize + summary: Summarize documents description: | - Returns all datasource instances that require per-user OAuth authorization - for the authenticated user, along with a transient auth token that can be - appended to auth URLs to complete OAuth flows. - - Clients construct the full OAuth URL by combining the backend base URL, - the `authUrlRelativePath` from each instance, and the transient auth token: - `/?transient_auth_token=`. - operationId: checkdatasourceauth + Generate an AI summary of one or more documents. Supply documents by URL, Glean document ID, or user-generated content reference. + operationId: platform-summarize x-visibility: Public - parameters: [] + x-glean-experimental: + id: 4d2f8b2e-7c9d-4f4f-9b1d-4d2f8b2e7c9d + introduced: "2026-05-27" + x-codegen-request-body-name: payload + requestBody: + required: true + content: + application/json: + schema: + $ref: "#/components/schemas/PlatformSummarizeRequest" responses: "200": - description: OK + description: Successful summary. content: application/json: schema: - $ref: "#/components/schemas/CheckDatasourceAuthResponse" + $ref: "#/components/schemas/PlatformSummarizeResponse" + "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: platform.summarize + x-speakeasy-name-override: create + 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: [] - /rest/api/v1/createauthtoken: + 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: - - Authentication - summary: Create authentication token - description: | - Creates an authentication token for the authenticated user. These are - specifically intended to be used with the [Web SDK](https://developers.glean.com/web). - - Note: The tokens generated from this endpoint are **not** valid tokens - for use with the Client API (e.g. `/rest/api/v1/*`). - operationId: createauthtoken - x-visibility: Public - parameters: [] + - 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/CreateAuthTokenResponse" + $ref: '#/components/schemas/Announcement' "400": - description: Invalid Request + 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: [] - x-speakeasy-name-override: createToken - x-speakeasy-group: client.authentication - /rest/api/v1/chat: + 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: - - Chat - summary: Chat - description: Have a conversation with Glean AI. - operationId: chat + - 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" - - $ref: "#/components/parameters/timezoneOffset" + - $ref: '#/components/parameters/locale' requestBody: + description: CreateAnswer request 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. + $ref: '#/components/schemas/CreateAnswerRequest' required: true x-exportParamName: Request responses: @@ -484,8 +765,269 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/ChatResponse' - examples: + $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. + + 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 + /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). + + 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: @@ -579,7 +1121,7 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/ChatResponse" + $ref: '#/components/schemas/ChatResponse' examples: queuedExample: value: @@ -594,23 +1136,23 @@ paths: description: Request Timeout "429": description: Too Many Requests - security: - - APIToken: [] + 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: - tags: - - Chat + 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. - operationId: deleteallchats - x-visibility: Public - x-codegen-request-body-name: payload + tags: + - Chat + security: + - APIToken: [] parameters: - - $ref: "#/components/parameters/locale" - - $ref: "#/components/parameters/timezoneOffset" + - $ref: '#/components/parameters/locale' + - $ref: '#/components/parameters/timezoneOffset' responses: "200": description: OK @@ -620,27 +1162,27 @@ paths: description: Not Authorized "403": description: Forbidden - security: - - APIToken: [] + x-visibility: Public + x-codegen-request-body-name: payload x-speakeasy-name-override: deleteAll x-speakeasy-group: client.chat /rest/api/v1/deletechats: post: - tags: - - Chat + operationId: deletechats 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 + tags: + - Chat + security: + - APIToken: [] parameters: - - $ref: "#/components/parameters/locale" - - $ref: "#/components/parameters/timezoneOffset" + - $ref: '#/components/parameters/locale' + - $ref: '#/components/parameters/timezoneOffset' requestBody: content: application/json: schema: - $ref: "#/components/schemas/DeleteChatsRequest" + $ref: '#/components/schemas/DeleteChatsRequest' required: true x-exportParamName: Request responses: @@ -654,27 +1196,27 @@ paths: description: Forbidden "429": description: Too Many Requests - security: - - APIToken: [] + x-visibility: Public + x-codegen-request-body-name: payload x-speakeasy-name-override: delete x-speakeasy-group: client.chat /rest/api/v1/getchat: post: - tags: - - Chat + operationId: getchat 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 + tags: + - Chat + security: + - APIToken: [] parameters: - - $ref: "#/components/parameters/locale" - - $ref: "#/components/parameters/timezoneOffset" + - $ref: '#/components/parameters/locale' + - $ref: '#/components/parameters/timezoneOffset' requestBody: content: application/json: schema: - $ref: "#/components/schemas/GetChatRequest" + $ref: '#/components/schemas/GetChatRequest' required: true x-exportParamName: Request responses: @@ -683,7 +1225,7 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/GetChatResponse" + $ref: '#/components/schemas/GetChatResponse' "400": description: Invalid request "401": @@ -692,56 +1234,56 @@ paths: description: Forbidden "429": description: Too Many Requests - security: - - APIToken: [] + x-visibility: Public + x-codegen-request-body-name: payload x-speakeasy-name-override: retrieve x-speakeasy-group: client.chat /rest/api/v1/listchats: post: - tags: - - Chat + 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. - operationId: listchats - x-visibility: Public - x-codegen-request-body-name: payload + tags: + - Chat + security: + - APIToken: [] parameters: - - $ref: "#/components/parameters/locale" - - $ref: "#/components/parameters/timezoneOffset" + - $ref: '#/components/parameters/locale' + - $ref: '#/components/parameters/timezoneOffset' responses: "200": description: OK content: application/json: schema: - $ref: "#/components/schemas/ListChatsResponse" + $ref: '#/components/schemas/ListChatsResponse' "401": description: Not Authorized "403": description: Forbidden "429": description: Too Many Requests - security: - - APIToken: [] + x-visibility: Public + x-codegen-request-body-name: payload x-speakeasy-name-override: list x-speakeasy-group: client.chat /rest/api/v1/getchatapplication: post: - tags: - - Chat + operationId: getchatapplication 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 + tags: + - Chat + security: + - APIToken: [] parameters: - - $ref: "#/components/parameters/locale" - - $ref: "#/components/parameters/timezoneOffset" + - $ref: '#/components/parameters/locale' + - $ref: '#/components/parameters/timezoneOffset' requestBody: content: application/json: schema: - $ref: "#/components/schemas/GetChatApplicationRequest" + $ref: '#/components/schemas/GetChatApplicationRequest' required: true x-exportParamName: Request responses: @@ -750,34 +1292,35 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/GetChatApplicationResponse" + $ref: '#/components/schemas/GetChatApplicationResponse' "400": description: Invalid request "401": description: Not Authorized "403": description: Forbidden - security: - - APIToken: [] + x-visibility: Preview + x-codegen-request-body-name: payload x-speakeasy-name-override: retrieveApplication x-speakeasy-group: client.chat /rest/api/v1/uploadchatfiles: post: - tags: - - Chat + operationId: uploadchatfiles summary: Upload files for Chat description: Upload files for Chat. - operationId: uploadchatfiles - x-visibility: Public + tags: + - Chat + security: + - APIToken: [] parameters: - - $ref: "#/components/parameters/locale" - - $ref: "#/components/parameters/timezoneOffset" + - $ref: '#/components/parameters/locale' + - $ref: '#/components/parameters/timezoneOffset' requestBody: - required: true content: multipart/form-data: schema: - $ref: "#/components/schemas/UploadChatFilesRequest" + $ref: '#/components/schemas/UploadChatFilesRequest' + required: true x-exportParamName: Request responses: "200": @@ -785,7 +1328,7 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/UploadChatFilesResponse" + $ref: '#/components/schemas/UploadChatFilesResponse' "400": description: Invalid request "401": @@ -794,27 +1337,27 @@ paths: description: Forbidden "429": description: Too Many Requests - security: - - APIToken: [] + x-visibility: Public x-speakeasy-name-override: uploadFiles x-speakeasy-group: client.chat /rest/api/v1/getchatfiles: post: - tags: - - Chat + operationId: getchatfiles summary: Get files uploaded by a user for Chat description: Get files uploaded by a user for Chat. - operationId: getchatfiles - x-visibility: Public + tags: + - Chat + security: + - APIToken: [] parameters: - - $ref: "#/components/parameters/locale" - - $ref: "#/components/parameters/timezoneOffset" + - $ref: '#/components/parameters/locale' + - $ref: '#/components/parameters/timezoneOffset' requestBody: - required: true content: application/json: schema: - $ref: "#/components/schemas/GetChatFilesRequest" + $ref: '#/components/schemas/GetChatFilesRequest' + required: true x-exportParamName: Request responses: "200": @@ -822,7 +1365,7 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/GetChatFilesResponse" + $ref: '#/components/schemas/GetChatFilesResponse' "400": description: Invalid request "401": @@ -831,27 +1374,27 @@ paths: description: Forbidden "429": description: Too Many Requests - security: - - APIToken: [] + x-visibility: Public x-speakeasy-name-override: retrieveFiles x-speakeasy-group: client.chat /rest/api/v1/deletechatfiles: post: - tags: - - Chat + operationId: deletechatfiles summary: Delete files uploaded by a user for chat description: Delete files uploaded by a user for Chat. - operationId: deletechatfiles - x-visibility: Public + tags: + - Chat + security: + - APIToken: [] parameters: - - $ref: "#/components/parameters/locale" - - $ref: "#/components/parameters/timezoneOffset" + - $ref: '#/components/parameters/locale' + - $ref: '#/components/parameters/timezoneOffset' requestBody: - required: true content: application/json: schema: - $ref: "#/components/schemas/DeleteChatFilesRequest" + $ref: '#/components/schemas/DeleteChatFilesRequest' + required: true responses: "200": description: OK @@ -863,31 +1406,31 @@ paths: description: Forbidden "429": description: Too Many Requests - security: - - APIToken: [] + x-visibility: Public x-speakeasy-name-override: deleteFiles x-speakeasy-group: client.chat /rest/api/v1/chat-files/{fileId}: get: - tags: - - Chat + 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. - operationId: getChatFile - x-visibility: Public + tags: + - Chat + security: + - APIToken: [] parameters: - name: fileId in: path - required: true description: Identifier of the chat file to download. + required: true 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. + required: false schema: type: boolean responses: @@ -908,32 +1451,32 @@ paths: description: File not found. "500": description: Internal server error. - security: - - APIToken: [] + x-visibility: Public /rest/api/v1/agents: post: - tags: - - Agents + operationId: createAgent summary: Create an agent description: Create an agent. - operationId: createAgent - x-visibility: Preview + tags: + - Agents + security: + - APIToken: [] parameters: - - $ref: "#/components/parameters/locale" - - $ref: "#/components/parameters/timezoneOffset" + - $ref: '#/components/parameters/locale' + - $ref: '#/components/parameters/timezoneOffset' requestBody: - required: true content: application/json: schema: - $ref: "#/components/schemas/CreateWorkflowRequest" + $ref: '#/components/schemas/CreateWorkflowRequest' + required: true responses: "200": description: Success content: application/json: schema: - $ref: "#/components/schemas/CreateWorkflowResponse" + $ref: '#/components/schemas/CreateWorkflowResponse' "400": description: Bad request "401": @@ -942,34 +1485,34 @@ paths: description: Forbidden "500": description: Internal server error - security: - - APIToken: [] + x-visibility: Preview /rest/api/v1/agents/{agent_id}: get: - tags: - - Agents + operationId: getAgent 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 + tags: + - Agents + security: + - APIToken: [] parameters: - - $ref: "#/components/parameters/locale" - - $ref: "#/components/parameters/timezoneOffset" - - description: The ID of the agent. + - $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. - name: agent_id - in: path responses: "200": description: Success content: application/json: schema: - $ref: "#/components/schemas/Agent" + $ref: '#/components/schemas/Agent' "400": description: Bad request "403": @@ -979,37 +1522,37 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/ErrorResponse" + $ref: '#/components/schemas/ErrorResponse' "500": description: Internal server error - security: - - APIToken: [] + x-visibility: Preview x-speakeasy-group: client.agents x-speakeasy-name-override: retrieve post: - tags: - - Agents + 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. - operationId: editAgent - x-visibility: Preview + tags: + - Agents + security: + - APIToken: [] parameters: - - $ref: "#/components/parameters/locale" - - $ref: "#/components/parameters/timezoneOffset" - - description: The ID of the agent. + - $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. - name: agent_id - in: path requestBody: - required: true content: application/json: schema: - $ref: "#/components/schemas/EditWorkflowRequest" + $ref: '#/components/schemas/EditWorkflowRequest' + required: true responses: "200": description: Success @@ -1024,37 +1567,37 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/ErrorResponse" + $ref: '#/components/schemas/ErrorResponse' "500": description: Internal server error - security: - - APIToken: [] + x-visibility: Preview /rest/api/v1/agents/{agent_id}/schemas: get: - tags: - - Agents + 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. - operationId: getAgentSchemas - x-visibility: Preview + tags: + - Agents + security: + - APIToken: [] parameters: - - $ref: "#/components/parameters/locale" - - $ref: "#/components/parameters/timezoneOffset" - - description: The ID of the agent. + - $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. - name: agent_id - in: path responses: "200": description: Success content: application/json: schema: - $ref: "#/components/schemas/AgentSchemas" + $ref: '#/components/schemas/AgentSchemas' "400": description: Bad request "403": @@ -1064,40 +1607,40 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/ErrorResponse" + $ref: '#/components/schemas/ErrorResponse' "422": description: Validation Error content: application/json: schema: - $ref: "#/components/schemas/ErrorResponse" + $ref: '#/components/schemas/ErrorResponse' "500": description: Internal server error - security: - - APIToken: [] + x-visibility: Preview x-speakeasy-group: client.agents x-speakeasy-name-override: retrieveSchemas /rest/api/v1/agents/search: post: - tags: - - Agents + operationId: searchAgents summary: Search agents description: Search for [agents](https://developers.glean.com/agents/agents-api) by agent name. - operationId: searchAgents - x-visibility: Preview + tags: + - Agents + security: + - APIToken: [] requestBody: - required: true content: application/json: schema: - $ref: "#/components/schemas/SearchAgentsRequest" + $ref: '#/components/schemas/SearchAgentsRequest' + required: true responses: "200": description: Success content: application/json: schema: - $ref: "#/components/schemas/SearchAgentsResponse" + $ref: '#/components/schemas/SearchAgentsResponse' "400": description: Bad request "403": @@ -1107,32 +1650,32 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/ErrorResponse" + $ref: '#/components/schemas/ErrorResponse' "422": description: Validation Error content: application/json: schema: - $ref: "#/components/schemas/ErrorResponse" + $ref: '#/components/schemas/ErrorResponse' "500": description: Internal server error - security: - - APIToken: [] + 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 - 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 + security: + - APIToken: [] requestBody: content: application/json: schema: - $ref: "#/components/schemas/AgentRunCreate" + $ref: '#/components/schemas/AgentRunCreate' required: true responses: "200": @@ -1167,38 +1710,38 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/ErrorResponse" + $ref: '#/components/schemas/ErrorResponse' "409": description: Conflict content: application/json: schema: - $ref: "#/components/schemas/ErrorResponse" + $ref: '#/components/schemas/ErrorResponse' "422": description: Validation Error content: application/json: schema: - $ref: "#/components/schemas/ErrorResponse" + $ref: '#/components/schemas/ErrorResponse' "500": description: Internal server error - security: - - APIToken: [] + 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 - 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 + security: + - APIToken: [] requestBody: content: application/json: schema: - $ref: "#/components/schemas/AgentRunCreate" + $ref: '#/components/schemas/AgentRunCreate' required: true responses: "200": @@ -1206,7 +1749,7 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/AgentRunWaitResponse" + $ref: '#/components/schemas/AgentRunWaitResponse' "400": description: Bad request "403": @@ -1219,27 +1762,26 @@ paths: description: Validation Error "500": description: Internal server error - security: - - APIToken: [] + x-visibility: Preview x-speakeasy-group: client.agents x-speakeasy-name-override: run /rest/api/v1/addcollectionitems: post: - tags: - - Collections + operationId: addcollectionitems summary: Add Collection item description: Add items to a Collection. - operationId: addcollectionitems - x-visibility: Public - x-codegen-request-body-name: payload + tags: + - Collections + security: + - APIToken: [] parameters: - - $ref: "#/components/parameters/locale" + - $ref: '#/components/parameters/locale' requestBody: + description: Data describing the add operation. content: application/json: schema: - $ref: "#/components/schemas/AddCollectionItemsRequest" - description: Data describing the add operation. + $ref: '#/components/schemas/AddCollectionItemsRequest' required: true x-exportParamName: Request responses: @@ -1248,34 +1790,34 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/AddCollectionItemsResponse" + $ref: '#/components/schemas/AddCollectionItemsResponse' "400": description: Invalid request "401": description: Not Authorized "429": description: Too Many Requests - security: - - APIToken: [] + x-visibility: Public + x-codegen-request-body-name: payload x-speakeasy-name-override: addItems x-speakeasy-group: client.collections /rest/api/v1/createcollection: post: - tags: - - Collections + operationId: createcollection summary: Create Collection description: Create a publicly visible (empty) Collection of documents. - operationId: createcollection - x-visibility: Public - x-codegen-request-body-name: payload + tags: + - Collections + security: + - APIToken: [] parameters: - - $ref: "#/components/parameters/locale" + - $ref: '#/components/parameters/locale' requestBody: + description: Collection content plus any additional metadata for the request. content: application/json: schema: - $ref: "#/components/schemas/CreateCollectionRequest" - description: Collection content plus any additional metadata for the request. + $ref: '#/components/schemas/CreateCollectionRequest' required: true x-exportParamName: Request responses: @@ -1284,7 +1826,7 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/CreateCollectionResponse" + $ref: '#/components/schemas/CreateCollectionResponse' "400": description: Invalid request "401": @@ -1294,30 +1836,30 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/CollectionError" + $ref: '#/components/schemas/CollectionError' "429": description: Too Many Requests - security: - - APIToken: [] + x-visibility: Public + x-codegen-request-body-name: payload x-speakeasy-group: client.collections x-speakeasy-name-override: create /rest/api/v1/deletecollection: post: - tags: - - Collections + operationId: deletecollection summary: Delete Collection description: Delete a Collection given the Collection's ID. - operationId: deletecollection - x-visibility: Public - x-codegen-request-body-name: payload + tags: + - Collections + security: + - APIToken: [] parameters: - - $ref: "#/components/parameters/locale" + - $ref: '#/components/parameters/locale' requestBody: + description: DeleteCollection request content: application/json: schema: - $ref: "#/components/schemas/DeleteCollectionRequest" - description: DeleteCollection request + $ref: '#/components/schemas/DeleteCollectionRequest' required: true x-exportParamName: Request responses: @@ -1332,30 +1874,30 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/CollectionError" + $ref: '#/components/schemas/CollectionError' "429": description: Too Many Requests - security: - - APIToken: [] + x-visibility: Public + x-codegen-request-body-name: payload x-speakeasy-name-override: delete x-speakeasy-group: client.collections /rest/api/v1/deletecollectionitem: post: - tags: - - Collections + operationId: deletecollectionitem summary: Delete Collection item description: Delete a single item from a Collection. - operationId: deletecollectionitem - x-visibility: Public - x-codegen-request-body-name: payload + tags: + - Collections + security: + - APIToken: [] parameters: - - $ref: "#/components/parameters/locale" + - $ref: '#/components/parameters/locale' requestBody: + description: Data describing the delete operation. content: application/json: schema: - $ref: "#/components/schemas/DeleteCollectionItemRequest" - description: Data describing the delete operation. + $ref: '#/components/schemas/DeleteCollectionItemRequest' required: true x-exportParamName: Request responses: @@ -1364,7 +1906,7 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/DeleteCollectionItemResponse" + $ref: '#/components/schemas/DeleteCollectionItemResponse' "400": description: Invalid request "401": @@ -1373,27 +1915,27 @@ paths: description: Failed to save deletion "429": description: Too Many Requests - security: - - APIToken: [] + x-visibility: Public + x-codegen-request-body-name: payload x-speakeasy-name-override: deleteItem x-speakeasy-group: client.collections /rest/api/v1/editcollection: post: - tags: - - Collections + operationId: editcollection summary: Update Collection description: Update the properties of an existing Collection. - operationId: editcollection - x-visibility: Public - x-codegen-request-body-name: payload + tags: + - Collections + security: + - APIToken: [] parameters: - - $ref: "#/components/parameters/locale" + - $ref: '#/components/parameters/locale' requestBody: + description: Collection content plus any additional metadata for the request. content: application/json: schema: - $ref: "#/components/schemas/EditCollectionRequest" - description: Collection content plus any additional metadata for the request. + $ref: '#/components/schemas/EditCollectionRequest' required: true x-exportParamName: Request responses: @@ -1402,7 +1944,7 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/EditCollectionResponse" + $ref: '#/components/schemas/EditCollectionResponse' "400": description: Invalid request "401": @@ -1412,30 +1954,30 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/CollectionError" + $ref: '#/components/schemas/CollectionError' "429": description: Too Many Requests - security: - - APIToken: [] + x-visibility: Public + x-codegen-request-body-name: payload x-speakeasy-name-override: update x-speakeasy-group: client.collections /rest/api/v1/editcollectionitem: post: - tags: - - Collections + operationId: editcollectionitem 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 + tags: + - Collections + security: + - APIToken: [] parameters: - - $ref: "#/components/parameters/locale" + - $ref: '#/components/parameters/locale' requestBody: + description: Edit Collection Items request content: application/json: schema: - $ref: "#/components/schemas/EditCollectionItemRequest" - description: Edit Collection Items request + $ref: '#/components/schemas/EditCollectionItemRequest' required: true x-exportParamName: Request responses: @@ -1444,34 +1986,34 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/EditCollectionItemResponse" + $ref: '#/components/schemas/EditCollectionItemResponse' "400": description: Invalid request "401": description: Not Authorized "429": description: Too Many Requests - security: - - APIToken: [] + x-visibility: Public + x-codegen-request-body-name: payload x-speakeasy-name-override: updateItem x-speakeasy-group: client.collections /rest/api/v1/getcollection: post: - tags: - - Collections + operationId: getcollection 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 + tags: + - Collections + security: + - APIToken: [] parameters: - - $ref: "#/components/parameters/locale" + - $ref: '#/components/parameters/locale' requestBody: + description: GetCollection request content: application/json: schema: - $ref: "#/components/schemas/GetCollectionRequest" - description: GetCollection request + $ref: '#/components/schemas/GetCollectionRequest' required: true x-exportParamName: Request responses: @@ -1480,34 +2022,34 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/GetCollectionResponse" + $ref: '#/components/schemas/GetCollectionResponse' "400": description: Invalid request "401": description: Not Authorized "429": description: Too Many Requests - security: - - APIToken: [] + x-visibility: Preview + x-codegen-request-body-name: payload x-speakeasy-name-override: retrieve x-speakeasy-group: client.collections /rest/api/v1/listcollections: post: - tags: - - Collections + operationId: listcollections summary: List Collections description: List all existing Collections. - operationId: listcollections - x-visibility: Public - x-codegen-request-body-name: payload + tags: + - Collections + security: + - APIToken: [] parameters: - - $ref: "#/components/parameters/locale" + - $ref: '#/components/parameters/locale' requestBody: + description: ListCollections request content: application/json: schema: - $ref: "#/components/schemas/ListCollectionsRequest" - description: ListCollections request + $ref: '#/components/schemas/ListCollectionsRequest' required: true x-exportParamName: Request responses: @@ -1516,34 +2058,34 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/ListCollectionsResponse" + $ref: '#/components/schemas/ListCollectionsResponse' "400": description: Invalid request "401": description: Not Authorized "429": description: Too Many Requests - security: - - APIToken: [] + x-visibility: Public + x-codegen-request-body-name: payload x-speakeasy-name-override: list x-speakeasy-group: client.collections /rest/api/v1/getdocpermissions: post: - tags: - - Documents + operationId: getdocpermissions 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 + tags: + - Documents + security: + - APIToken: [] parameters: - - $ref: "#/components/parameters/locale" + - $ref: '#/components/parameters/locale' requestBody: + description: Document permissions request content: application/json: schema: - $ref: "#/components/schemas/GetDocPermissionsRequest" - description: Document permissions request + $ref: '#/components/schemas/GetDocPermissionsRequest' required: true x-exportParamName: Request responses: @@ -1552,7 +2094,7 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/GetDocPermissionsResponse" + $ref: '#/components/schemas/GetDocPermissionsResponse' "400": description: Invalid request "401": @@ -1561,34 +2103,34 @@ paths: description: Forbidden "429": description: Too Many Requests - security: - - APIToken: [] + x-visibility: Preview + x-codegen-request-body-name: payload x-speakeasy-name-override: retrievePermissions x-speakeasy-group: client.documents /rest/api/v1/getdocuments: post: - tags: - - Documents + 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. - operationId: getdocuments - x-visibility: Public - x-codegen-request-body-name: payload + tags: + - Documents + security: + - APIToken: [] parameters: - - $ref: "#/components/parameters/locale" + - $ref: '#/components/parameters/locale' requestBody: + description: Information about documents requested. content: application/json: schema: - $ref: "#/components/schemas/GetDocumentsRequest" - description: Information about documents requested. + $ref: '#/components/schemas/GetDocumentsRequest' responses: "200": description: OK content: application/json: schema: - $ref: "#/components/schemas/GetDocumentsResponse" + $ref: '#/components/schemas/GetDocumentsResponse' "400": description: Invalid request "401": @@ -1597,34 +2139,34 @@ paths: description: Documents does not exist, or user cannot access documents. "429": description: Too Many Requests - security: - - APIToken: [] + x-visibility: Public + x-codegen-request-body-name: payload x-speakeasy-name-override: retrieve x-speakeasy-group: client.documents /rest/api/v1/getdocumentsbyfacets: post: - tags: - - Documents + 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. - operationId: getdocumentsbyfacets - x-visibility: Preview - x-codegen-request-body-name: payload + tags: + - Documents + security: + - APIToken: [] parameters: - - $ref: "#/components/parameters/locale" + - $ref: '#/components/parameters/locale' requestBody: + description: Information about facet conditions for documents to be retrieved. content: application/json: schema: - $ref: "#/components/schemas/GetDocumentsByFacetsRequest" - description: Information about facet conditions for documents to be retrieved. + $ref: '#/components/schemas/GetDocumentsByFacetsRequest' responses: "200": description: OK content: application/json: schema: - $ref: "#/components/schemas/GetDocumentsByFacetsResponse" + $ref: '#/components/schemas/GetDocumentsByFacetsResponse' "400": description: Invalid request "401": @@ -1633,27 +2175,27 @@ paths: description: Not Found "429": description: Too Many Requests - security: - - APIToken: [] + x-visibility: Preview + x-codegen-request-body-name: payload x-speakeasy-name-override: retrieveByFacets x-speakeasy-group: client.documents /rest/api/v1/insights: post: - tags: - - Insights + operationId: 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 + tags: + - Insights + security: + - APIToken: [] parameters: - - $ref: "#/components/parameters/locale" + - $ref: '#/components/parameters/locale' requestBody: + description: Includes request parameters for insights requests. content: application/json: schema: - $ref: "#/components/schemas/InsightsRequest" - description: Includes request parameters for insights requests. + $ref: '#/components/schemas/InsightsRequest' required: true x-exportParamName: InsightsRequest responses: @@ -1662,34 +2204,34 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/InsightsResponse" + $ref: '#/components/schemas/InsightsResponse' "400": description: Invalid request "401": description: Not Authorized "429": description: Too Many Requests - security: - - APIToken: [] + x-visibility: Public + x-codegen-request-body-name: payload x-speakeasy-name-override: retrieve x-speakeasy-group: client.insights /rest/api/v1/messages: post: - tags: - - Messages + operationId: 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 + tags: + - Messages + security: + - APIToken: [] parameters: - - $ref: "#/components/parameters/locale" + - $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" - description: Includes request params such as the id for channel/message and direction. + $ref: '#/components/schemas/MessagesRequest' required: true x-exportParamName: MessagesRequest responses: @@ -1698,34 +2240,34 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/MessagesResponse" + $ref: '#/components/schemas/MessagesResponse' "400": description: Invalid request "401": description: Not Authorized "429": description: Too Many Requests - security: - - APIToken: [] + x-visibility: Preview + x-codegen-request-body-name: payload x-speakeasy-name-override: retrieve x-speakeasy-group: client.messages /rest/api/v1/editpin: post: - tags: - - Pins + operationId: editpin summary: Update pin description: Update an existing user-generated pin. - operationId: editpin - x-visibility: Public - x-codegen-request-body-name: payload + tags: + - Pins + security: + - APIToken: [] parameters: - - $ref: "#/components/parameters/locale" + - $ref: '#/components/parameters/locale' requestBody: + description: Edit pins request content: application/json: schema: - $ref: "#/components/schemas/EditPinRequest" - description: Edit pins request + $ref: '#/components/schemas/EditPinRequest' required: true x-exportParamName: Request responses: @@ -1734,34 +2276,34 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/PinDocument" + $ref: '#/components/schemas/PinDocument' "400": description: Invalid request "401": description: Not Authorized "429": description: Too Many Requests - security: - - APIToken: [] + x-visibility: Public + x-codegen-request-body-name: payload x-speakeasy-name-override: update x-speakeasy-group: client.pins /rest/api/v1/getpin: post: - tags: - - Pins + operationId: getpin summary: Read pin description: Read pin details given its ID. - operationId: getpin - x-visibility: Public - x-codegen-request-body-name: payload + tags: + - Pins + security: + - APIToken: [] parameters: - - $ref: "#/components/parameters/locale" + - $ref: '#/components/parameters/locale' requestBody: + description: Get pin request content: application/json: schema: - $ref: "#/components/schemas/GetPinRequest" - description: Get pin request + $ref: '#/components/schemas/GetPinRequest' required: true x-exportParamName: Request responses: @@ -1770,34 +2312,34 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/GetPinResponse" + $ref: '#/components/schemas/GetPinResponse' "400": description: Invalid request "401": description: Not Authorized "429": description: Too Many Requests - security: - - APIToken: [] + x-visibility: Public + x-codegen-request-body-name: payload x-speakeasy-name-override: retrieve x-speakeasy-group: client.pins /rest/api/v1/listpins: post: - tags: - - Pins + operationId: listpins summary: List pins description: Lists all pins. - operationId: listpins - x-visibility: Public - x-codegen-request-body-name: payload + tags: + - Pins + security: + - APIToken: [] parameters: - - $ref: "#/components/parameters/locale" + - $ref: '#/components/parameters/locale' requestBody: + description: List pins request content: application/json: schema: type: object - description: List pins request required: true x-exportParamName: Request responses: @@ -1806,34 +2348,34 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/ListPinsResponse" + $ref: '#/components/schemas/ListPinsResponse' "400": description: Invalid request "401": description: Not Authorized "429": description: Too Many Requests - security: - - APIToken: [] + x-visibility: Public + x-codegen-request-body-name: payload x-speakeasy-name-override: list x-speakeasy-group: client.pins /rest/api/v1/pin: post: - tags: - - Pins + 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. - operationId: pin - x-visibility: Public - x-codegen-request-body-name: payload + tags: + - Pins + security: + - APIToken: [] parameters: - - $ref: "#/components/parameters/locale" + - $ref: '#/components/parameters/locale' requestBody: + description: Details about the document and query for the pin. content: application/json: schema: - $ref: "#/components/schemas/PinRequest" - description: Details about the document and query for the pin. + $ref: '#/components/schemas/PinRequest' required: true x-exportParamName: PinDocument responses: @@ -1842,34 +2384,34 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/PinDocument" + $ref: '#/components/schemas/PinDocument' "400": description: Invalid request "401": description: Not Authorized "429": description: Too Many Requests - security: - - APIToken: [] + x-visibility: Public + x-codegen-request-body-name: payload x-speakeasy-name-override: create x-speakeasy-group: client.pins /rest/api/v1/unpin: post: - tags: - - Pins + operationId: unpin summary: Delete pin description: Unpin a previously pinned result. - operationId: unpin - x-visibility: Public - x-codegen-request-body-name: payload + tags: + - Pins + security: + - APIToken: [] parameters: - - $ref: "#/components/parameters/locale" + - $ref: '#/components/parameters/locale' requestBody: + description: Details about the pin being unpinned. content: application/json: schema: - $ref: "#/components/schemas/Unpin" - description: Details about the pin being unpinned. + $ref: '#/components/schemas/Unpin' required: true x-exportParamName: Unpin responses: @@ -1883,27 +2425,27 @@ paths: description: Forbidden from unpinning someone else's pin "429": description: Too Many Requests - security: - - APIToken: [] + x-visibility: Public + x-codegen-request-body-name: payload x-speakeasy-name-override: remove x-speakeasy-group: client.pins /rest/api/v1/adminsearch: post: - tags: - - Search + operationId: adminsearch 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 + tags: + - Search + security: + - APIToken: [] parameters: - - $ref: "#/components/parameters/locale" + - $ref: '#/components/parameters/locale' requestBody: + description: Admin search request content: application/json: schema: - $ref: "#/components/schemas/SearchRequest" - description: Admin search request + $ref: '#/components/schemas/SearchRequest' required: true x-exportParamName: Request responses: @@ -1912,7 +2454,7 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/SearchResponse" + $ref: '#/components/schemas/SearchResponse' "400": description: Invalid request "401": @@ -1922,36 +2464,36 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/ErrorInfo" + $ref: '#/components/schemas/ErrorInfo' "422": description: Invalid Query content: application/json: schema: - $ref: "#/components/schemas/ErrorInfo" + $ref: '#/components/schemas/ErrorInfo' "429": description: Too Many Requests - security: - - APIToken: [] + x-visibility: Preview + x-codegen-request-body-name: payload x-speakeasy-group: client.search x-speakeasy-name-override: queryAsAdmin /rest/api/v1/autocomplete: post: - tags: - - Search + operationId: autocomplete 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 + tags: + - Search + security: + - APIToken: [] parameters: - - $ref: "#/components/parameters/locale" + - $ref: '#/components/parameters/locale' requestBody: + description: Autocomplete request content: application/json: schema: - $ref: "#/components/schemas/AutocompleteRequest" - description: Autocomplete request + $ref: '#/components/schemas/AutocompleteRequest' required: true x-exportParamName: Request responses: @@ -1960,34 +2502,34 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/AutocompleteResponse" + $ref: '#/components/schemas/AutocompleteResponse' "400": description: Invalid request "401": description: Not Authorized "429": description: Too Many Requests - security: - - APIToken: [] + x-visibility: Public + x-codegen-request-body-name: payload x-speakeasy-group: client.search x-speakeasy-name-override: autocomplete /rest/api/v1/feed: post: - tags: - - Search + 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. - operationId: feed - x-visibility: Public - x-codegen-request-body-name: payload + tags: + - Search + security: + - APIToken: [] parameters: - - $ref: "#/components/parameters/locale" + - $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" - description: Includes request params, client data and more for making user's feed. + $ref: '#/components/schemas/FeedRequest' required: true x-exportParamName: FeedRequest responses: @@ -1996,7 +2538,7 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/FeedResponse" + $ref: '#/components/schemas/FeedResponse' "400": description: Invalid request "401": @@ -2005,27 +2547,27 @@ paths: description: Request Timeout "429": description: Too Many Requests - security: - - APIToken: [] + x-visibility: Public + x-codegen-request-body-name: payload x-speakeasy-name-override: retrieveFeed x-speakeasy-group: client.search /rest/api/v1/recommendations: post: - tags: - - Search + operationId: recommendations 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 + tags: + - Search + security: + - APIToken: [] parameters: - - $ref: "#/components/parameters/locale" + - $ref: '#/components/parameters/locale' requestBody: + description: Recommendations request content: application/json: schema: - $ref: "#/components/schemas/RecommendationsRequest" - description: Recommendations request + $ref: '#/components/schemas/RecommendationsRequest' required: true x-exportParamName: Request responses: @@ -2034,7 +2576,7 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/RecommendationsResponse" + $ref: '#/components/schemas/RecommendationsResponse' "202": description: Accepted. The Retry-After header has a hint about when the response will be available "204": @@ -2047,27 +2589,27 @@ paths: description: Document does not exist or user cannot access document "429": description: Too Many Requests - security: - - APIToken: [] + x-visibility: Preview + x-codegen-request-body-name: payload x-speakeasy-group: client.search x-speakeasy-name-override: recommendations /rest/api/v1/search: post: - tags: - - Search + operationId: 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 + tags: + - Search + security: + - APIToken: [] parameters: - - $ref: "#/components/parameters/locale" + - $ref: '#/components/parameters/locale' requestBody: + description: Search request content: application/json: schema: - $ref: "#/components/schemas/SearchRequest" - description: Search request + $ref: '#/components/schemas/SearchRequest' required: true x-exportParamName: Request responses: @@ -2076,7 +2618,7 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/SearchResponse" + $ref: '#/components/schemas/SearchResponse' "400": description: Invalid request "401": @@ -2086,7 +2628,7 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/ErrorInfo" + $ref: '#/components/schemas/ErrorInfo' "408": description: Request Timeout "422": @@ -2094,30 +2636,30 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/ErrorInfo" + $ref: '#/components/schemas/ErrorInfo' "429": description: Too Many Requests - security: - - APIToken: [] + x-visibility: Public + x-codegen-request-body-name: payload x-speakeasy-group: client.search x-speakeasy-name-override: query /rest/api/v1/listentities: post: - tags: - - Entities + 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. - operationId: listentities - x-visibility: Public - x-codegen-request-body-name: payload + tags: + - Entities + security: + - APIToken: [] parameters: - - $ref: "#/components/parameters/locale" + - $ref: '#/components/parameters/locale' requestBody: + description: List people request content: application/json: schema: - $ref: "#/components/schemas/ListEntitiesRequest" - description: List people request + $ref: '#/components/schemas/ListEntitiesRequest' required: true x-exportParamName: Request responses: @@ -2126,34 +2668,34 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/ListEntitiesResponse" + $ref: '#/components/schemas/ListEntitiesResponse' "400": description: Invalid request "401": description: Not Authorized "429": description: Too Many Requests - security: - - APIToken: [] + x-visibility: Public + x-codegen-request-body-name: payload x-speakeasy-group: client.entities x-speakeasy-name-override: list /rest/api/v1/people: post: - tags: - - Entities + operationId: people summary: Read people description: Read people details for the given IDs. - operationId: people - x-visibility: Public - x-codegen-request-body-name: payload + tags: + - Entities + security: + - APIToken: [] parameters: - - $ref: "#/components/parameters/locale" + - $ref: '#/components/parameters/locale' requestBody: + description: People request content: application/json: schema: - $ref: "#/components/schemas/PeopleRequest" - description: People request + $ref: '#/components/schemas/PeopleRequest' required: true x-exportParamName: Request responses: @@ -2162,38 +2704,39 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/PeopleResponse" + $ref: '#/components/schemas/PeopleResponse' "400": description: Invalid request "401": description: Not Authorized "429": description: Too Many Requests - security: - - APIToken: [] + 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: - tags: - - Entities + 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. - operationId: getPersonPhoto - x-visibility: Public + tags: + - Entities + security: + - APIToken: [] parameters: - name: person_id in: path - required: true description: The obfuscated ID of the person whose photo to retrieve. + required: true 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. + required: false schema: type: string responses: @@ -2223,25 +2766,24 @@ paths: 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. - security: - - APIToken: [] + x-visibility: Public /rest/api/v1/createshortcut: post: - tags: - - Shortcuts + operationId: createshortcut 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 + tags: + - Shortcuts + security: + - APIToken: [] parameters: - - $ref: "#/components/parameters/locale" + - $ref: '#/components/parameters/locale' requestBody: + description: CreateShortcut request content: application/json: schema: - $ref: "#/components/schemas/CreateShortcutRequest" - description: CreateShortcut request + $ref: '#/components/schemas/CreateShortcutRequest' required: true x-exportParamName: Request responses: @@ -2250,34 +2792,34 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/CreateShortcutResponse" + $ref: '#/components/schemas/CreateShortcutResponse' "400": description: Invalid request "401": description: Not Authorized "429": description: Too Many Requests - security: - - APIToken: [] + x-visibility: Public + x-codegen-request-body-name: payload x-speakeasy-name-override: create x-speakeasy-group: client.shortcuts /rest/api/v1/deleteshortcut: post: - tags: - - Shortcuts + operationId: deleteshortcut summary: Delete shortcut description: Delete an existing user-generated shortcut. - operationId: deleteshortcut - x-visibility: Public - x-codegen-request-body-name: payload + tags: + - Shortcuts + security: + - APIToken: [] parameters: - - $ref: "#/components/parameters/locale" + - $ref: '#/components/parameters/locale' requestBody: + description: DeleteShortcut request content: application/json: schema: - $ref: "#/components/schemas/DeleteShortcutRequest" - description: DeleteShortcut request + $ref: '#/components/schemas/DeleteShortcutRequest' required: true x-exportParamName: Request responses: @@ -2289,27 +2831,27 @@ paths: description: Not Authorized "429": description: Too Many Requests - security: - - APIToken: [] + x-visibility: Public + x-codegen-request-body-name: payload x-speakeasy-name-override: delete x-speakeasy-group: client.shortcuts /rest/api/v1/getshortcut: post: - tags: - - Shortcuts + operationId: getshortcut summary: Read shortcut description: Read a particular shortcut's details given its ID. - operationId: getshortcut - x-visibility: Public - x-codegen-request-body-name: payload + tags: + - Shortcuts + security: + - APIToken: [] parameters: - - $ref: "#/components/parameters/locale" + - $ref: '#/components/parameters/locale' requestBody: + description: GetShortcut request content: application/json: schema: - $ref: "#/components/schemas/GetShortcutRequest" - description: GetShortcut request + $ref: '#/components/schemas/GetShortcutRequest' required: true x-exportParamName: Request responses: @@ -2318,34 +2860,34 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/GetShortcutResponse" + $ref: '#/components/schemas/GetShortcutResponse' "400": description: Invalid request "401": description: Not Authorized "429": description: Too Many Requests - security: - - APIToken: [] + x-visibility: Public + x-codegen-request-body-name: payload x-speakeasy-group: client.shortcuts x-speakeasy-name-override: retrieve /rest/api/v1/listshortcuts: post: - tags: - - Shortcuts + operationId: listshortcuts summary: List shortcuts description: List shortcuts editable/owned by the currently authenticated user. - operationId: listshortcuts - x-visibility: Public - x-codegen-request-body-name: payload + tags: + - Shortcuts + security: + - APIToken: [] parameters: - - $ref: "#/components/parameters/locale" + - $ref: '#/components/parameters/locale' requestBody: + description: Filters, sorters, paging params required for pagination content: application/json: schema: - $ref: "#/components/schemas/ListShortcutsPaginatedRequest" - description: Filters, sorters, paging params required for pagination + $ref: '#/components/schemas/ListShortcutsPaginatedRequest' required: true x-exportParamName: Request responses: @@ -2354,34 +2896,34 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/ListShortcutsPaginatedResponse" + $ref: '#/components/schemas/ListShortcutsPaginatedResponse' "400": description: Invalid request "401": description: Not Authorized "429": description: Too Many Requests - security: - - APIToken: [] + x-visibility: Public + x-codegen-request-body-name: payload x-speakeasy-group: client.shortcuts x-speakeasy-name-override: list /rest/api/v1/updateshortcut: post: - tags: - - Shortcuts + operationId: updateshortcut summary: Update shortcut description: Updates the shortcut with the given ID. - operationId: updateshortcut - x-visibility: Public - x-codegen-request-body-name: payload + tags: + - Shortcuts + security: + - APIToken: [] parameters: - - $ref: "#/components/parameters/locale" + - $ref: '#/components/parameters/locale' requestBody: + description: Shortcut content. Id need to be specified for the shortcut. content: application/json: schema: - $ref: "#/components/schemas/UpdateShortcutRequest" - description: Shortcut content. Id need to be specified for the shortcut. + $ref: '#/components/schemas/UpdateShortcutRequest' required: true x-exportParamName: Request responses: @@ -2390,34 +2932,34 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/UpdateShortcutResponse" + $ref: '#/components/schemas/UpdateShortcutResponse' "400": description: Invalid request "401": description: Not Authorized "429": description: Too Many Requests - security: - - APIToken: [] + x-visibility: Public + x-codegen-request-body-name: payload x-speakeasy-group: client.shortcuts x-speakeasy-name-override: update /rest/api/v1/summarize: post: - tags: - - Summarize + operationId: summarize summary: Summarize documents description: Generate an AI summary of the requested documents. - operationId: summarize - x-visibility: Public - x-codegen-request-body-name: payload + tags: + - Summarize + security: + - APIToken: [] parameters: - - $ref: "#/components/parameters/locale" + - $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" - description: Includes request params such as the query and specs of the documents to summarize. + $ref: '#/components/schemas/SummarizeRequest' required: true x-exportParamName: Request responses: @@ -2426,34 +2968,34 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/SummarizeResponse" + $ref: '#/components/schemas/SummarizeResponse' "400": description: Invalid request "401": description: Not Authorized "429": description: Too Many Requests - security: - - APIToken: [] + x-visibility: Public + x-codegen-request-body-name: payload x-speakeasy-name-override: summarize x-speakeasy-group: client.documents /rest/api/v1/addverificationreminder: post: - tags: - - Verification + operationId: addverificationreminder 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 + tags: + - Verification + security: + - APIToken: [] parameters: - - $ref: "#/components/parameters/locale" + - $ref: '#/components/parameters/locale' requestBody: + description: Details about the reminder. content: application/json: schema: - $ref: "#/components/schemas/ReminderRequest" - description: Details about the reminder. + $ref: '#/components/schemas/ReminderRequest' required: true x-exportParamName: ReminderRequest responses: @@ -2462,7 +3004,7 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/Verification" + $ref: '#/components/schemas/Verification' "400": description: Invalid request "401": @@ -2471,61 +3013,61 @@ paths: description: Document does not exist, does not support verification or user cannot access document "429": description: Too Many Requests - security: - - APIToken: [] + x-visibility: Public + x-codegen-request-body-name: payload x-speakeasy-name-override: addReminder x-speakeasy-group: client.verification /rest/api/v1/listverifications: post: - tags: - - Verification + 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. - operationId: listverifications - x-visibility: Public - x-codegen-request-body-name: payload + tags: + - Verification + security: + - APIToken: [] parameters: - - in: query - name: count + - name: count + in: query description: Maximum number of documents to return required: false schema: type: integer - - $ref: "#/components/parameters/locale" + - $ref: '#/components/parameters/locale' responses: "200": description: OK content: application/json: schema: - $ref: "#/components/schemas/VerificationFeed" + $ref: '#/components/schemas/VerificationFeed' "400": description: Invalid request "401": description: Not Authorized "429": description: Too Many Requests - security: - - APIToken: [] + x-visibility: Public + x-codegen-request-body-name: payload x-speakeasy-name-override: list x-speakeasy-group: client.verification /rest/api/v1/verify: post: - tags: - - Verification + operationId: verify 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 + tags: + - Verification + security: + - APIToken: [] parameters: - - $ref: "#/components/parameters/locale" + - $ref: '#/components/parameters/locale' requestBody: + description: Details about the verification request. content: application/json: schema: - $ref: "#/components/schemas/VerifyRequest" - description: Details about the verification request. + $ref: '#/components/schemas/VerifyRequest' required: true x-exportParamName: VerifyRequest responses: @@ -2534,7 +3076,7 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/Verification" + $ref: '#/components/schemas/Verification' "400": description: Invalid request "401": @@ -2543,36 +3085,37 @@ paths: description: Document does not exist, does not support verification or user cannot access document "429": description: Too Many Requests - security: - - APIToken: [] + 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 - 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 + security: + - APIToken: [] parameters: - - in: query - name: toolNames + - 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 - style: form - explode: false responses: "200": description: Successful operation content: application/json: schema: - $ref: "#/components/schemas/ToolsListResponse" + $ref: '#/components/schemas/ToolsListResponse' "400": description: Bad Request "401": @@ -2581,31 +3124,31 @@ paths: description: Not Found "429": description: Too Many Requests - security: - - APIToken: [] + 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 - summary: Execute the specified tool - description: Execute the specified tool with provided parameters - x-visibility: Preview + security: + - APIToken: [] requestBody: - required: true content: application/json: schema: - $ref: "#/components/schemas/ToolsCallRequest" + $ref: '#/components/schemas/ToolsCallRequest' + required: true responses: "200": description: Successful operation content: application/json: schema: - $ref: "#/components/schemas/ToolsCallResponse" + $ref: '#/components/schemas/ToolsCallResponse' "400": description: Bad Request "401": @@ -2614,35 +3157,28 @@ paths: description: Not Found "429": description: Too Many Requests - security: - - APIToken: [] + x-visibility: Preview 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 get: - tags: - - Tools + 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. - operationId: getActionPackAuthStatus - x-visibility: Preview + tags: + - Tools + security: + - APIToken: [] responses: "200": description: Successful operation content: application/json: schema: - $ref: "#/components/schemas/ActionPackAuthStatusResponse" + $ref: '#/components/schemas/ActionPackAuthStatusResponse' "400": description: Bad Request "401": @@ -2651,11 +3187,9 @@ paths: description: Action pack not found "429": description: Too Many Requests - security: - - APIToken: [] + x-visibility: Preview post: - tags: - - Tools + 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 @@ -2665,21 +3199,23 @@ paths: `returnUrl` must match the tenant's configured return URL allowlist; otherwise the request is rejected with 400. - operationId: authorizeActionPack - x-visibility: Preview + tags: + - Tools + security: + - APIToken: [] requestBody: - required: true content: application/json: schema: - $ref: "#/components/schemas/AuthorizeActionPackRequest" + $ref: '#/components/schemas/AuthorizeActionPackRequest' + required: true responses: "200": description: Successful operation content: application/json: schema: - $ref: "#/components/schemas/AuthorizeActionPackResponse" + $ref: '#/components/schemas/AuthorizeActionPackResponse' "400": description: Invalid request (e.g. returnUrl not in allowlist, unsupported auth type) "401": @@ -2690,8 +3226,14 @@ paths: description: Action pack not found "429": description: Too Many Requests - security: - - APIToken: [] + x-visibility: Preview + parameters: + - name: actionPackId + in: path + description: ID of the action pack to query or authorize. + required: true + schema: + type: string /api/index/v1/indexdocument: post: summary: Index document @@ -4707,16 +5249,1077 @@ paths: components: securitySchemes: APIToken: - scheme: bearer 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: + PlatformUgcType: + type: string + enum: + - ANNOUNCEMENTS + - ANSWERS + - COLLECTIONS + - SHORTCUTS + description: Type of user-generated content. + PlatformDocumentSpec: + type: object + description: | + Reference to a document. Exactly one of `url`, `id`, or `content_id` with `ugc_type` must be provided. + oneOf: + - type: object + additionalProperties: false + required: + - url + properties: + url: + type: string + description: URL of the document. + - type: object + additionalProperties: false + required: + - id + properties: + id: + type: string + description: Glean document ID. + - type: object + additionalProperties: false + required: + - content_id + - ugc_type + properties: + content_id: + type: integer + format: int32 + description: Numeric ID of the user-generated content item. + ugc_type: + $ref: "#/components/schemas/PlatformUgcType" + doc_type: + type: string + description: Specific subtype of the user-generated content item. + PlatformDocumentIncludeField: + type: string + enum: + - LAST_VIEWED_AT + - VISITORS_COUNT + - RECENT_SHARES + - DOCUMENT_CONTENT + - CUSTOM_METADATA + description: Optional fields that can be included in returned documents. + PlatformDocumentsBatchRequest: + type: object + additionalProperties: false + required: + - document_specs + properties: + document_specs: + type: array + minItems: 1 + items: + $ref: "#/components/schemas/PlatformDocumentSpec" + description: Documents to retrieve. + include_fields: + type: array + items: + $ref: "#/components/schemas/PlatformDocumentIncludeField" + description: Additional document fields to include in the response. + PlatformDocumentContent: + type: object + properties: + full_text_list: + type: array + items: + type: string + description: Plaintext content of the document. + PlatformDocumentReference: + type: object + properties: + id: + type: string + description: Glean document ID. + title: + type: string + description: Title of the referenced document. + url: + type: string + description: Permalink for the referenced document. + PlatformCountInfo: + type: object + properties: + count: + type: integer + format: int64 + period: + type: string + description: Human-readable period represented by this count. + from: + type: string + format: date-time + to: + type: string + format: date-time + PlatformPerson: + type: object + properties: + name: + type: string + email: + type: string + obfuscated_id: + type: string + PlatformShare: + type: object + properties: + num_days_ago: + type: integer + description: Number of days since the share occurred. + sharer: + $ref: "#/components/schemas/PlatformPerson" + sharing_document: + $ref: "#/components/schemas/PlatformDocumentReference" + PlatformDocumentInteractions: + type: object + properties: + visitor_count: + $ref: "#/components/schemas/PlatformCountInfo" + shares: + type: array + items: + $ref: "#/components/schemas/PlatformShare" + PlatformViewerInfo: + type: object + properties: + last_viewed_time: + type: string + format: date-time + PlatformCustomDataValue: + type: object + properties: + string_value: + type: string + string_list_value: + type: array + items: + type: string + PlatformDocumentMetadata: + type: object + properties: + datasource: + type: string + datasource_instance: + type: string + description: Datasource instance from which the document was extracted. + object_type: + type: string + description: Datasource-specific object type. + container: + type: string + description: Name of the higher-level container. + container_id: + type: string + description: Glean document ID of the container. + parent_id: + type: string + description: Glean document ID of the direct parent. + mime_type: + type: string + interactions: + $ref: "#/components/schemas/PlatformDocumentInteractions" + viewer_info: + $ref: "#/components/schemas/PlatformViewerInfo" + custom_data: + type: object + additionalProperties: + $ref: "#/components/schemas/PlatformCustomDataValue" + description: Custom metadata requested via `CUSTOM_METADATA`. + PlatformDocumentSection: + type: object + properties: + title: + type: string + description: Section title. + url: + type: string + description: Permalink for the section. + PlatformDocument: + type: object + required: + - id + properties: + id: + type: string + description: Glean document ID. + datasource: + type: string + description: App or repository type from which the document was extracted. + connector_type: + type: string + description: Connector type for the source system. + document_type: + type: string + description: Datasource-specific type of the document. + title: + type: string + description: Title of the document. + url: + type: string + description: Permalink for the document. + content: + $ref: "#/components/schemas/PlatformDocumentContent" + container_document: + $ref: "#/components/schemas/PlatformDocumentReference" + parent_document: + $ref: "#/components/schemas/PlatformDocumentReference" + metadata: + $ref: "#/components/schemas/PlatformDocumentMetadata" + sections: + type: array + items: + $ref: "#/components/schemas/PlatformDocumentSection" + description: Content subsections in the document. + PlatformDocumentBatchErrorCode: + type: string + enum: + - NOT_FOUND_OR_NOT_ALLOWED + - INVALID_DOCUMENT_SPEC + - ANNOTATION_ERROR + - DOCUMENT_GENERATION_ERROR + description: Stable machine-readable item-level failure code. + PlatformDocumentBatchError: + type: object + required: + - code + - message + properties: + code: + $ref: "#/components/schemas/PlatformDocumentBatchErrorCode" + message: + type: string + description: Human-readable explanation for the item-level failure. + PlatformDocumentBatchResult: + description: | + One document retrieval result. Successful results include `document`; lookup failures include `error`. + oneOf: + - type: object + additionalProperties: false + required: + - status + - document + properties: + status: + type: string + enum: + - FOUND + document: + $ref: "#/components/schemas/PlatformDocument" + - type: object + additionalProperties: false + required: + - status + - error + properties: + status: + type: string + enum: + - NOT_FOUND + - INVALID + - ERROR + error: + $ref: "#/components/schemas/PlatformDocumentBatchError" + PlatformDocumentsBatchResponse: + type: object + required: + - request_id + - results + properties: + request_id: + type: string + description: Server-generated identifier for this response, useful for support. + results: + type: array + items: + $ref: "#/components/schemas/PlatformDocumentBatchResult" + description: Results in the same order as `document_specs`. + 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://developer.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: + type: string + description: Stable machine-readable error code. + enum: + - invalid_request + - missing_required_field + - invalid_parameter + - invalid_cursor + - expired_cursor + - invalid_filter + - authentication_required + - token_expired + - insufficient_permissions + - resource_not_found + - method_not_allowed + - request_timeout + - conflict + - gone + - unprocessable_query + - rate_limit_exceeded + - internal_error + - service_unavailable + example: invalid_cursor + documentation_url: + type: string + format: uri + description: Direct URL to documentation for this error code. + example: https://developer.glean.com/errors/invalid-cursor + request_id: + type: string + description: Platform-generated request ID for support correlation. + example: req_7f8a9b0c1d2e + PlatformDocumentPermissionsResponse: + type: object + required: + - request_id + - allowed_user_emails + - visible_to_all + properties: + request_id: + type: string + description: Server-generated identifier for this response, useful for support. + allowed_user_emails: + type: array + items: + type: string + description: Email addresses for users who can access the document. + visible_to_all: + type: boolean + description: Whether the document is visible to everyone. + PlatformPeopleIncludeField: + type: string + description: Optional profile fields to request. + enum: + - PEOPLE_DETAILS + - MANAGEMENT_DETAILS + PlatformPeopleIncludeType: + type: string + description: Optional people result types to request. + x-enumDescriptions: + INVALID_ENTITIES: Return invalid requested people that can be loaded in the people array with is_valid set to false. Identifiers that cannot be loaded are returned in not_found. + enum: + - INVALID_ENTITIES + x-speakeasy-enum-descriptions: + INVALID_ENTITIES: Return invalid requested people that can be loaded in the people array with is_valid set to false. Identifiers that cannot be loaded are returned in not_found. + PlatformPeopleSearchRequest: + type: object + additionalProperties: false + properties: + person_ids: + type: array + description: Glean person IDs to retrieve. + items: + type: string + example: + - abc123 + - abc456 + email_ids: + type: array + description: Email addresses to retrieve. + items: + type: string + example: + - jane.smith@example.com + include_fields: + type: array + description: Optional profile fields to include beyond the default profile. + items: + $ref: "#/components/schemas/PlatformPeopleIncludeField" + include_types: + type: array + description: Optional non-default people result types to include. + items: + $ref: "#/components/schemas/PlatformPeopleIncludeType" + PlatformPersonType: + type: string + description: Person employment status or account type. + enum: + - FULL_TIME + - CONTRACTOR + - NON_EMPLOYEE + - FORMER_EMPLOYEE + PlatformPeopleSearchPerson: + type: object + required: + - id + - is_valid + - name + properties: + id: + type: string + description: Opaque Glean person ID. + is_valid: + type: boolean + description: Whether this is a valid person record. Invalid people are returned only when requested with include_types. + name: + type: string + description: Display name. + type: + $ref: "#/components/schemas/PlatformPersonType" + email: + type: string + format: email + description: Primary email address. + title: + type: string + description: Job title. + department: + type: string + description: Department or organizational unit. + location: + type: string + description: User-facing location. + photo_url: + type: string + format: uri + description: Avatar URL. + manager_id: + type: string + description: Opaque Glean person ID for the person's manager. + manager_name: + type: string + description: Display name for the person's manager. + PlatformPeopleSearchResponse: + type: object + required: + - people + - not_found + - request_id + properties: + people: + type: array + description: People matching the requested identifiers. + items: + $ref: "#/components/schemas/PlatformPeopleSearchPerson" + not_found: + type: array + description: Identifiers that could not be resolved. + items: + type: string + request_id: + type: string + description: Platform-generated request ID for support correlation. + 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. + 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 + 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. + PlatformToolParameter: + type: object + properties: + type: + type: string + description: Parameter type. + enum: + - string + - number + - boolean + - object + - array + name: + type: string + description: Parameter name. + description: + type: string + description: Parameter description. + is_required: + type: boolean + description: Whether the parameter is required. + possible_values: + type: array + description: Possible primitive values for the parameter. + items: + type: string + items: + $ref: "#/components/schemas/PlatformToolParameter" + properties: + type: object + description: Object properties for object parameters. + additionalProperties: + $ref: "#/components/schemas/PlatformToolParameter" + PlatformTool: + type: object + required: + - type + - name + - display_name + - description + - parameters + properties: + type: + type: string + description: Type of tool. + enum: + - READ + - WRITE + name: + type: string + description: Unique identifier for the tool. + display_name: + type: string + description: Human-readable name. + description: + type: string + description: LLM-friendly description of the tool. + parameters: + type: object + description: Parameters supported by the tool. + additionalProperties: + $ref: "#/components/schemas/PlatformToolParameter" + PlatformToolsListResponse: + type: object + required: + - tools + - request_id + properties: + tools: + type: array + description: List of tools available to the user. + items: + $ref: "#/components/schemas/PlatformTool" + request_id: + type: string + description: Platform-generated request ID for support correlation. + PlatformToolsCallRequest: + type: object + additionalProperties: false + required: + - name + - parameters + properties: + name: + type: string + minLength: 1 + description: Name of the tool to execute. + parameters: + type: object + description: Tool parameter values keyed by parameter name. + additionalProperties: true + PlatformToolsCallResponse: + type: object + required: + - raw_response + - request_id + properties: + raw_response: + type: object + description: Raw response returned by the tool. + additionalProperties: true + request_id: + type: string + description: Platform-generated request ID for support correlation. + PlatformFilter: + type: object + required: + - field + - values + description: | + A single filter criterion. Multiple values within a filter are OR'd. 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 operator 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 + exclude: + type: boolean + default: false + description: Excludes results matching any of the specified values when true. + 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 + 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`. + example: quarterly planning 2026 + 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. + example: + - confluence + - google_drive + filters: + type: array + items: + $ref: "#/components/schemas/PlatformFilter" + description: | + Structured filters applied to search results. Multiple values within a filter are OR'd. Multiple filters are AND'd together. 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" + PlatformSearchResultPerson: + type: object + nullable: true + description: A person associated with the result. + properties: + name: + type: string + description: Display name. + example: Jane Smith + email: + type: string + format: email + description: Email address. + example: jane.smith@company.com + 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 + document_type: + type: string + nullable: true + description: The document type within the datasource. + example: page + creator: + $ref: "#/components/schemas/PlatformSearchResultPerson" + owner: + $ref: "#/components/schemas/PlatformSearchResultPerson" + 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. + PlatformSummarizeDocumentSpec: + type: object + description: | + Reference to a document to summarize. Exactly one of `url`, `id`, or a UGC pair (`content_id` + `ugc_type` for ANNOUNCEMENTS/ANSWERS/COLLECTIONS) must be provided. + oneOf: + - type: object + additionalProperties: false + required: + - url + properties: + url: + type: string + description: Public URL of the document. + - type: object + additionalProperties: false + required: + - id + properties: + id: + type: string + description: Glean document ID. + - type: object + additionalProperties: false + required: + - content_id + - ugc_type + properties: + content_id: + type: integer + format: int32 + description: Numeric ID of the user-generated content item. + ugc_type: + type: string + enum: + - ANNOUNCEMENTS + - ANSWERS + - COLLECTIONS + description: Datasource type of the user-generated content item. + PlatformSummarizeRequest: + type: object + additionalProperties: false + required: + - document_specs + properties: + document_specs: + type: array + minItems: 1 + items: + $ref: "#/components/schemas/PlatformSummarizeDocumentSpec" + description: Specifications of the documents to summarize. + preferred_summary_length: + type: integer + minimum: 1 + default: 1000 + description: | + Preferred summary length in characters. The model treats this as a target, not a strict bound. + tracking_token: + type: string + description: | + Opaque token from a previous response. Pass it back when reporting feedback to associate the feedback with this summary. + PlatformSummary: + type: object + properties: + text: + type: string + description: The generated summary text. + follow_up_prompts: + type: array + items: + type: string + description: Suggested follow-up prompts derived from the summarized documents. + PlatformSummarizeResponse: + type: object + properties: + request_id: + type: string + description: Server-generated identifier for this response, useful for support. + summary: + $ref: "#/components/schemas/PlatformSummary" + tracking_token: + type: string + description: | + Opaque token representing this summary. Pass it back to the feedback endpoint to associate feedback with this summary. ActivityEventParams: properties: bodyContent: - description: The HTML content of the page body. 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 @@ -4727,32 +6330,35 @@ components: 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 + description: Length in seconds of the activity. For VIEWS, this represents the amount the page was visible in the foreground. query: - description: The user's search query associated with a SEARCH. type: string + description: The user's search query associated with a SEARCH. referrer: - description: The referring URL of the VIEW or SEARCH. type: string + description: The referring URL of the VIEW or SEARCH. title: - description: The page title associated with the URL of the event type: string + description: The page title associated with the URL of the event 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 + 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: - 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 + 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`. @@ -4762,14 +6368,6 @@ components: CRAWL: Represents an explicit request to index the given `url` along with associated attributes in this payload. HISTORICAL_SEARCH: Represents a search performed at the given `url` as indicated by the user's history. HISTORICAL_VIEW: Represents a visit to the given `url` as indicated by the user's history. - enum: - - VIEW - - EDIT - - SEARCH - - COMMENT - - CRAWL - - HISTORICAL_SEARCH - - HISTORICAL_VIEW x-speakeasy-enum-descriptions: VIEW: Represents a visit to the given `url`. EDIT: Represents an edit of the document represented by the `url`. @@ -4779,22 +6377,27 @@ components: 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" + $ref: '#/components/schemas/ActivityEventParams' timestamp: type: string - description: The ISO 8601 timestamp when the activity began. format: date-time + description: The ISO 8601 timestamp when the activity began. url: - description: The URL of the activity. type: string - Activity: + description: The URL of the activity. required: - - events + - action + - source + - timestamp + - url + Activity: properties: events: type: array items: - $ref: "#/components/schemas/ActivityEvent" + $ref: '#/components/schemas/ActivityEvent' + required: + - events example: events: - url: https://example.com/ @@ -4829,11 +6432,11 @@ components: 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 + description: An opaque user ID for the claimed authority (i.e., the actas param, or the origid if actas is not specified). origID: - description: An opaque user ID for the authenticated user (ignores actas). type: string + description: An opaque user ID for the authenticated user (ignores actas). FeedbackChatExchange: properties: timestamp: @@ -4851,13 +6454,13 @@ components: 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 + description: List of documents read by the agent. response: type: string ManualFeedbackInfo: @@ -4868,7 +6471,6 @@ components: deprecated: true source: type: string - description: The source associated with the Feedback.event.MANUAL_FEEDBACK event. enum: - AUTOCOMPLETE - CALENDAR @@ -4892,13 +6494,13 @@ components: - 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 - description: The issue(s) the user indicated in the feedback. items: type: string enum: @@ -4917,6 +6519,7 @@ components: - RESULTS_HELPFUL - RESULTS_POOR_ORDER - TOO_MUCH_ONE_KIND + description: The issue(s) the user indicated in the feedback. imageUrls: type: array items: @@ -4947,17 +6550,17 @@ components: chatTranscript: type: array items: - $ref: "#/components/schemas/FeedbackChatExchange" + $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 + 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. @@ -4977,15 +6580,14 @@ components: 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 + description: The search/chat parameters used for this implementation. 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 @@ -4996,6 +6598,7 @@ components: modelUsed: type: string description: The specific model version used. + description: Metadata about the response (e.g., latency, token count). ManualFeedbackSideBySideInfo: properties: email: @@ -5003,19 +6606,19 @@ components: 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 + 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 - description: Array of implementations that were compared side-by-side. items: - $ref: "#/components/schemas/SideBySideImplementation" + $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. @@ -5024,11 +6627,11 @@ components: 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 + description: The vote for this specific implementation. comments: type: string description: Specific feedback comments for this implementation. @@ -5058,16 +6661,12 @@ components: - 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 @@ -5083,46 +6682,14 @@ components: - 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 - description: A list of server-generated trackingTokens to which this event applies. items: type: string + description: A list of server-generated trackingTokens to which this event applies. event: type: string - description: The action the user took within a Glean client with respect to the object referred to by the given `trackingToken`. - x-enumDescriptions: - CLICK: The object's primary link was clicked with the intent to view its full representation. Depending on the object type, this may imply an external navigation or navigating to a new page or view within the Glean app. - CONTAINER_CLICK: A link to the object's parent container (e.g. the folder in which it's located) was clicked. - COPY_LINK: The user copied a link to the primary link. - CREATE: The user creates a document. - DISMISS: The user dismissed the object such that it was hidden from view. - DOWNVOTE: The user gave feedback that the object was not useful. - EMAIL: The user attempted to send an email. - EXECUTE: The user executed the object (e.g. ran a workflow). - FILTER: The user applied a filter. - FIRST_TOKEN: The first token of a streaming response is received. - FOCUS_IN: The user clicked into an interactive element, e.g. the search box. - LAST_TOKEN: The final token of a streaming response is received. - MANUAL_FEEDBACK: The user submitted textual manual feedback regarding the object. - MANUAL_FEEDBACK_SIDE_BY_SIDE: The user submitted comparative feedback for multiple side-by-side implementations. - FEEDBACK_TIME_SAVED: The user submitted feedback about time saved by an agent or workflow. - MARK_AS_READ: The user explicitly marked the content as read. - MESSAGE: The user attempted to send a message using their default messaing app. - MIDDLE_CLICK: The user middle clicked the object's primary link with the intent to open its full representation in a new tab. - PAGE_BLUR: The user puts a page out of focus but keeps it in the background. - PAGE_FOCUS: The user puts a page in focus, meaning it is the first to receive keyboard events. - PAGE_LEAVE: The user leaves a page and it is unloaded (by clicking a link, closing the tab/window, etc). - PREVIEW: The user clicked the object's inline preview affordance. - RIGHT_CLICK: The user right clicked the object's primary link. This may indicate an intent to open it in a new tab or copy it. - SECTION_CLICK: The user clicked a link to a subsection of the primary object. - SEEN: The user has likely seen the object (e.g. took action to make the object visible within the user's viewport). - SELECT: The user explicitly selected something, eg. a chat response variant they prefer. - SHARE: The user shared the object with another user. - SHOW_MORE: The user clicked the object's show more affordance. - UPVOTE: The user gave feedback that the object was useful. - VIEW: The object was visible within the user's viewport. - VISIBLE: The object was visible within the user's viewport. enum: - CLICK - CONTAINER_CLICK @@ -5156,6 +6723,39 @@ components: - 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. @@ -5195,65 +6795,67 @@ components: 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" + $ref: '#/components/schemas/SessionInfo' timestamp: type: string - description: The ISO 8601 timestamp when the event occured. format: date-time + description: The ISO 8601 timestamp when the event occured. user: - $ref: "#/components/schemas/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 + 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: - description: The UI element tree associated with the event, if any. + type: array items: type: string - type: array + 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" + $ref: '#/components/schemas/ManualFeedbackInfo' manualFeedbackSideBySideInfo: - $ref: "#/components/schemas/ManualFeedbackSideBySideInfo" + $ref: '#/components/schemas/ManualFeedbackSideBySideInfo' seenFeedbackInfo: - $ref: "#/components/schemas/SeenFeedbackInfo" + $ref: '#/components/schemas/SeenFeedbackInfo' userViewInfo: - $ref: "#/components/schemas/UserViewInfo" + $ref: '#/components/schemas/UserViewInfo' workflowFeedbackInfo: - $ref: "#/components/schemas/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: - 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. + required: + - text ConnectorType: type: string - description: The source from which document content was pulled, e.g. an API crawl or browser history enum: - API_CRAWL - BROWSER_CRAWL @@ -5263,6 +6865,7 @@ components: - 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: @@ -5279,16 +6882,16 @@ components: type: string description: The app or other repository type from which the document was extracted connectorType: - $ref: "#/components/schemas/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" + $ref: '#/components/schemas/DocumentContent' containerDocument: - $ref: "#/components/schemas/Document" + $ref: '#/components/schemas/Document' parentDocument: - $ref: "#/components/schemas/Document" + $ref: '#/components/schemas/Document' title: type: string description: The title of the document. @@ -5296,12 +6899,12 @@ components: type: string description: A permalink for the document. metadata: - $ref: "#/components/schemas/DocumentMetadata" + $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" + $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: @@ -5344,13 +6947,13 @@ components: - 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. - example: EQUALS x-speakeasy-enum-descriptions: EQUALS: The value is equal to the specified value. ID_EQUALS: The value is equal to the specified ID. @@ -5359,8 +6962,8 @@ components: NOT_EQUALS: The value is not equal to the specified value. isNegated: type: boolean - deprecated: true description: DEPRECATED - please use relationType instead + deprecated: true x-glean-deprecated: id: 75a48c79-b36a-4171-a0a0-4af7189da66e introduced: "2026-02-05" @@ -5375,12 +6978,12 @@ components: values: type: array items: - $ref: "#/components/schemas/FacetFilterValue" + $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: Spreadsheet example: fieldName: type values: @@ -5393,7 +6996,7 @@ components: filters: type: array items: - $ref: "#/components/schemas/FacetFilter" + $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: @@ -5404,9 +7007,6 @@ components: type: string description: The per-term prefix that facet buckets should be filtered on. AuthToken: - required: - - accessToken - - datasource properties: accessToken: type: string @@ -5417,12 +7017,15 @@ components: 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 + description: Used by Google to indicate the index of the logged in user. Useful for generating hyperlinks that support multilogin. expiration: - description: Unix timestamp when this token expires (in seconds since epoch UTC). type: integer format: int64 + description: Unix timestamp when this token expires (in seconds since epoch UTC). + required: + - accessToken + - datasource example: accessToken: 123abc datasource: gmail @@ -5430,28 +7033,24 @@ components: 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 + x-discriminator: true required: - - id + - url + - type: object properties: id: type: string - x-discriminator: true description: The ID of the document. - - type: object + x-discriminator: true required: - - contentId - - ugcType + - id + - type: object properties: ugcType: type: string @@ -5464,15 +7063,15 @@ components: 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. + x-discriminator: true docType: type: string description: The specific type of the user generated content type. - - type: object required: + - contentId - ugcType - - ugcId + - type: object properties: ugcType: type: string @@ -5486,21 +7085,23 @@ components: 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. + 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: - 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" + $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: - required: - - facetBucketSize properties: datasourceFilter: type: string @@ -5516,15 +7117,15 @@ components: facetFilters: type: array items: - $ref: "#/components/schemas/FacetFilter" + $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" + $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" + $ref: '#/components/schemas/FacetBucketFilter' facetBucketSize: type: integer description: The maximum number of FacetBuckets to return in each FacetResult. @@ -5535,17 +7136,22 @@ components: 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" + $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 - description: Array of hints containing which fields should be populated in the response. items: type: string + enum: + - ALL_RESULT_COUNTS + - FACET_RESULTS + - QUERY_METADATA + - RESULTS + - SPELLCHECK_METADATA 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. @@ -5553,18 +7159,13 @@ components: 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 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. @@ -5578,11 +7179,13 @@ components: 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" + $ref: '#/components/schemas/RestrictionFilters' description: A list of filters which restrict the search results to only the specified content. exclusions: - $ref: "#/components/schemas/RestrictionFilters" + $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: @@ -5598,9 +7201,6 @@ components: - fieldValues - fieldValues TextRange: - required: - - startIndex - description: A subsection of a given string to which some special formatting should be applied. properties: startIndex: type: integer @@ -5619,8 +7219,11 @@ components: 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" + $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: @@ -5629,8 +7232,6 @@ components: example: hasCopyPaste: true QuerySuggestion: - required: - - query properties: missingTerm: type: string @@ -5639,7 +7240,7 @@ components: type: string description: The query being suggested (e.g. enforcing the missing term from the original query). searchProviderInfo: - $ref: "#/components/schemas/SearchProviderInfo" + $ref: '#/components/schemas/SearchProviderInfo' description: Information about the search provider that generated this suggestion. label: type: string @@ -5648,25 +7249,24 @@ components: type: string description: The datasource associated with the suggestion. resultTab: - $ref: "#/components/schemas/ResultTab" + $ref: '#/components/schemas/ResultTab' description: The result tab associated with the suggestion. requestOptions: - $ref: "#/components/schemas/SearchRequestOptions" + $ref: '#/components/schemas/SearchRequestOptions' ranges: type: array items: - $ref: "#/components/schemas/TextRange" + $ref: '#/components/schemas/TextRange' description: The bolded ranges within the query of the QuerySuggestion. inputDetails: - $ref: "#/components/schemas/SearchRequestInputDetails" + $ref: '#/components/schemas/SearchRequestInputDetails' + required: + - query example: query: app:github type:pull author:mortimer label: Mortimer's PRs datasource: github Person: - required: - - name - - obfuscatedId properties: name: type: string @@ -5677,16 +7277,17 @@ components: relatedDocuments: type: array items: - $ref: "#/components/schemas/RelatedDocuments" + $ref: '#/components/schemas/RelatedDocuments' description: A list of documents related to this person. metadata: - $ref: "#/components/schemas/PersonMetadata" + $ref: '#/components/schemas/PersonMetadata' + required: + - name + - obfuscatedId example: name: George Clooney obfuscatedId: abc123 Company: - required: - - name properties: name: type: string @@ -5696,9 +7297,9 @@ components: description: Link to internal company company profile. websiteUrls: type: array - description: Link to company's associated websites. 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). @@ -5735,11 +7336,13 @@ components: 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 - description: A map of {string, int} pairs representing counts of each document type associated with this customer. additionalProperties: type: integer + description: A map of {string, int} pairs representing counts of each document type associated with this customer. CustomDataValue: properties: displayLabel: @@ -5748,54 +7351,51 @@ components: type: string stringListValue: type: array - description: list of strings for multi-value properties items: type: string + description: list of strings for multi-value properties numberValue: type: number booleanValue: type: boolean CustomData: type: object - description: Custom fields specific to individual datasources additionalProperties: - $ref: "#/components/schemas/CustomDataValue" + $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" + $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 + description: Link to company's associated website domains. company: - $ref: "#/components/schemas/Company" + $ref: '#/components/schemas/Company' documentCounts: - $ref: "#/components/schemas/DocumentCounts" + $ref: '#/components/schemas/DocumentCounts' poc: type: array - description: A list of POC for company. items: - $ref: "#/components/schemas/Person" + $ref: '#/components/schemas/Person' + description: A list of POC for company. metadata: - $ref: "#/components/schemas/CustomerMetadata" + $ref: '#/components/schemas/CustomerMetadata' mergedCustomers: type: array - description: A list of Customers. items: - $ref: "#/components/schemas/Customer" + $ref: '#/components/schemas/Customer' + description: A list of Customers. startDate: type: string format: date @@ -5808,44 +7408,46 @@ components: type: string description: User facing (potentially generated) notes about company. example: CIO is interested in trying out the product. - RelatedObject: required: - id + - company + RelatedObject: 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. + 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" + $ref: '#/components/schemas/RelatedObject' RelatedObjects: properties: relatedObjects: type: object - description: A list of objects related to a source object. additionalProperties: - $ref: "#/components/schemas/RelatedObjectEdge" + $ref: '#/components/schemas/RelatedObjectEdge' + description: A list of objects related to a source object. ScopeType: type: string - description: Describes the scope for a ReadPermission, WritePermission, or GrantPermission object enum: - GLOBAL - OWN + description: Describes the scope for a ReadPermission, WritePermission, or GrantPermission object WritePermission: - description: Describes the write permissions levels that a user has for a specific feature properties: scopeType: - $ref: "#/components/schemas/ScopeType" + $ref: '#/components/schemas/ScopeType' create: type: boolean description: True if user has create permission for this feature and scope @@ -5855,33 +7457,31 @@ components: 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" + $ref: '#/components/schemas/WritePermission' PermissionedObject: properties: permissions: - $ref: "#/components/schemas/ObjectPermissions" + $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" + $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 + 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`. @@ -5889,7 +7489,11 @@ components: 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 @@ -5897,9 +7501,8 @@ components: description: An email address type: type: string - default: OTHER description: An enum of `PRIMARY`, `SECONDARY`, `ONCALL`, `OTHER` - type: object + default: OTHER required: - email - type @@ -5920,17 +7523,13 @@ components: CustomFieldValuePerson: properties: person: - $ref: "#/components/schemas/Person" + $ref: '#/components/schemas/Person' CustomFieldValue: oneOf: - - $ref: "#/components/schemas/CustomFieldValueStr" - - $ref: "#/components/schemas/CustomFieldValueHyperlink" - - $ref: "#/components/schemas/CustomFieldValuePerson" + - $ref: '#/components/schemas/CustomFieldValueStr' + - $ref: '#/components/schemas/CustomFieldValueHyperlink' + - $ref: '#/components/schemas/CustomFieldValuePerson' CustomFieldData: - required: - - label - - values - - displayable properties: label: type: string @@ -5938,20 +7537,21 @@ components: values: type: array items: - $ref: "#/components/schemas/CustomFieldValue" + $ref: '#/components/schemas/CustomFieldValue' displayable: type: boolean description: Determines whether the client should display this custom field default: true - DatasourceProfile: required: - - datasource - - handle + - label + - values + - displayable + DatasourceProfile: properties: datasource: type: string - example: github description: The datasource the profile is of. + example: github handle: type: string description: The display name of the entity in the given datasource. @@ -5964,14 +7564,14 @@ components: 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" + - $ref: '#/components/schemas/RelatedObjects' + - $ref: '#/components/schemas/PermissionedObject' - type: object - required: - - id - - name properties: id: type: string @@ -6002,27 +7602,27 @@ components: 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" + $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 - description: The emails for this team items: - $ref: "#/components/schemas/TeamEmail" + $ref: '#/components/schemas/TeamEmail' + description: The emails for this team customFields: type: array - description: Customizable fields for additional team information. items: - $ref: "#/components/schemas/CustomFieldData" + $ref: '#/components/schemas/CustomFieldData' + description: Customizable fields for additional team information. datasourceProfiles: type: array - description: The datasource profiles of the team items: - $ref: "#/components/schemas/DatasourceProfile" + $ref: '#/components/schemas/DatasourceProfile' + description: The datasource profiles of the team datasource: type: string description: the data source of the team, e.g. GDRIVE @@ -6035,12 +7635,12 @@ components: 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 + 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 @@ -6048,15 +7648,15 @@ components: 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" + $ref: '#/components/schemas/CustomData' GroupType: type: string - description: The type of user group - x-enumDescriptions: - COLLECTION_AUDIENCE: Refers to any viewers of the Collection. enum: - DEPARTMENT - ALL @@ -6067,15 +7667,15 @@ components: - 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: - required: - - type - - id properties: type: - $ref: "#/components/schemas/GroupType" + $ref: '#/components/schemas/GroupType' id: type: string description: A unique identifier for the group. May be the same as name. @@ -6088,31 +7688,34 @@ components: provisioningId: type: string description: identifier for greenlist provisioning, aka sciokey + required: + - type + - id UserRole: type: string - description: A user's role with respect to a specific document. enum: - OWNER - VIEWER - ANSWER_MODERATOR - EDITOR - VERIFIER + description: A user's role with respect to a specific document. UserRoleSpecification: - required: - - role properties: sourceDocumentSpec: - $ref: "#/components/schemas/DocumentSpec" + $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" + $ref: '#/components/schemas/Person' group: - $ref: "#/components/schemas/Group" + $ref: '#/components/schemas/Group' role: - $ref: "#/components/schemas/UserRole" + $ref: '#/components/schemas/UserRole' + required: + - role CustomEntity: allOf: - - $ref: "#/components/schemas/PermissionedObject" + - $ref: '#/components/schemas/PermissionedObject' - type: object properties: id: @@ -6128,12 +7731,12 @@ components: type: string description: The type of the entity. Interpretation is specific to each datasource metadata: - $ref: "#/components/schemas/CustomEntityMetadata" + $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" + $ref: '#/components/schemas/UserRoleSpecification' + description: A list of user roles for the custom entity explicitly granted by the owner. AnswerId: properties: id: @@ -6153,9 +7756,9 @@ components: example: Why is the sky blue? questionVariations: type: array - description: Additional ways of phrasing this question. items: type: string + description: Additional ways of phrasing this question. bodyText: type: string description: The plain text answer to the question. @@ -6172,26 +7775,26 @@ components: 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" + $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 - description: A list of user roles for the answer added by the owner. items: - $ref: "#/components/schemas/UserRoleSpecification" + $ref: '#/components/schemas/UserRoleSpecification' + description: A list of user roles for the answer added by the owner. removedRoles: type: array - description: A list of user roles for the answer removed by the owner. items: - $ref: "#/components/schemas/UserRoleSpecification" + $ref: '#/components/schemas/UserRoleSpecification' + description: A list of user roles for the answer removed by the owner. roles: type: array - description: A list of roles for this answer explicitly granted by an owner, editor, or admin. items: - $ref: "#/components/schemas/UserRoleSpecification" + $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" + $ref: '#/components/schemas/DocumentSpec' sourceType: type: string enum: @@ -6205,47 +7808,44 @@ components: description: An opaque token that represents this particular UGC. To be used for `/feedback` reporting. StructuredText: allOf: - - $ref: "#/components/schemas/StructuredTextMutableProperties" + - $ref: '#/components/schemas/StructuredTextMutableProperties' - type: object properties: structuredList: type: array items: - $ref: "#/components/schemas/StructuredTextItem" + $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" + $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" + $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 + - likedBy + - likedByUser + - numLikes + Reminder: properties: assignee: - $ref: "#/components/schemas/Person" + $ref: '#/components/schemas/Person' requestor: - $ref: "#/components/schemas/Person" + $ref: '#/components/schemas/Person' remindAt: type: integer description: Unix timestamp for when the reminder should trigger (in seconds since epoch UTC). @@ -6255,6 +7855,9 @@ components: 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: @@ -6274,27 +7877,25 @@ components: 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" + $ref: '#/components/schemas/TimePoint' end: - $ref: "#/components/schemas/TimePoint" + $ref: '#/components/schemas/TimePoint' CountInfo: - required: - - count properties: count: type: integer description: The counter value period: - $ref: "#/components/schemas/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 + - count + VerificationMetadata: properties: lastVerifier: - $ref: "#/components/schemas/Person" + $ref: '#/components/schemas/Person' lastVerificationTs: type: integer description: The unix timestamp of the verification (in seconds since epoch UTC). @@ -6302,27 +7903,27 @@ components: type: integer description: The unix timestamp of the verification expiration if applicable (in seconds since epoch UTC). document: - $ref: "#/components/schemas/Document" + $ref: '#/components/schemas/Document' reminders: type: array items: - $ref: "#/components/schemas/Reminder" + $ref: '#/components/schemas/Reminder' description: Info about all outstanding verification reminders for the document if exists. lastReminder: - $ref: "#/components/schemas/Reminder" + $ref: '#/components/schemas/Reminder' visitorCount: type: array items: - $ref: "#/components/schemas/CountInfo" + $ref: '#/components/schemas/CountInfo' description: Number of visitors to the document during included time periods. candidateVerifiers: type: array items: - $ref: "#/components/schemas/Person" + $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 + - documentId + Verification: properties: state: type: string @@ -6332,10 +7933,10 @@ components: - DEPRECATED description: The verification state for the document. metadata: - $ref: "#/components/schemas/VerificationMetadata" - CollectionBaseMutableProperties: + $ref: '#/components/schemas/VerificationMetadata' required: - - name + - state + CollectionBaseMutableProperties: properties: name: type: string @@ -6345,19 +7946,21 @@ components: 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" + $ref: '#/components/schemas/UserRoleSpecification' + description: A list of added user roles for the Collection. removedRoles: type: array - description: A list of removed user roles for the Collection. items: - $ref: "#/components/schemas/UserRoleSpecification" + $ref: '#/components/schemas/UserRoleSpecification' + description: A list of removed user roles for the Collection. audienceFilters: type: array items: - $ref: "#/components/schemas/FacetFilter" + $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: @@ -6368,10 +7971,8 @@ components: description: Thumbnail URL. This can be user provided image and/or from downloaded images hosted by Glean. CollectionMutableProperties: allOf: - - $ref: "#/components/schemas/CollectionBaseMutableProperties" + - $ref: '#/components/schemas/CollectionBaseMutableProperties' - type: object - required: - - name properties: icon: type: string @@ -6383,10 +7984,12 @@ components: type: integer description: The parent of this Collection, or 0 if it's a top-level Collection. thumbnail: - $ref: "#/components/schemas/Thumbnail" + $ref: '#/components/schemas/Thumbnail' allowedDatasource: type: string description: The datasource type this Collection can hold. + required: + - name CollectionItemMutableProperties: properties: name: @@ -6425,30 +8028,30 @@ components: 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" + $ref: '#/components/schemas/UserRoleSpecification' + description: A list of user roles added for the Shortcut. removedRoles: type: array - description: A list of user roles removed for the Shortcut. items: - $ref: "#/components/schemas/UserRoleSpecification" + $ref: '#/components/schemas/UserRoleSpecification' + description: A list of user roles removed for the Shortcut. ShortcutMetadata: properties: createdBy: - $ref: "#/components/schemas/Person" + $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" + $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" + $ref: '#/components/schemas/Document' description: Document that corresponds to the destination URL, if applicable. intermediateUrl: type: string @@ -6464,13 +8067,11 @@ components: description: The URL using which the user can access the edit page of the shortcut. Shortcut: allOf: - - $ref: "#/components/schemas/UserGeneratedContentId" - - $ref: "#/components/schemas/ShortcutMutableProperties" - - $ref: "#/components/schemas/PermissionedObject" - - $ref: "#/components/schemas/ShortcutMetadata" + - $ref: '#/components/schemas/UserGeneratedContentId' + - $ref: '#/components/schemas/ShortcutMutableProperties' + - $ref: '#/components/schemas/PermissionedObject' + - $ref: '#/components/schemas/ShortcutMetadata' - type: object - required: - - inputAlias properties: alias: type: string @@ -6480,18 +8081,17 @@ components: description: Title for the Go Link roles: type: array - description: A list of user roles for the Go Link. items: - $ref: "#/components/schemas/UserRoleSpecification" + $ref: '#/components/schemas/UserRoleSpecification' + description: A list of user roles for the Go Link. + required: + - inputAlias Collection: allOf: - - $ref: "#/components/schemas/CollectionMutableProperties" - - $ref: "#/components/schemas/PermissionedObject" - - $ref: "#/components/schemas/UgcTrackingSignals" + - $ref: '#/components/schemas/CollectionMutableProperties' + - $ref: '#/components/schemas/PermissionedObject' + - $ref: '#/components/schemas/UgcTrackingSignals' - type: object - required: - - id - - description properties: id: type: integer @@ -6503,9 +8103,9 @@ components: type: string format: date-time creator: - $ref: "#/components/schemas/Person" + $ref: '#/components/schemas/Person' updatedBy: - $ref: "#/components/schemas/Person" + $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. @@ -6515,10 +8115,10 @@ components: items: type: array items: - $ref: "#/components/schemas/CollectionItem" + $ref: '#/components/schemas/CollectionItem' description: The items in this Collection. pinMetadata: - $ref: "#/components/schemas/CollectionPinnedMetadata" + $ref: '#/components/schemas/CollectionPinnedMetadata' description: Metadata having what categories this Collection is pinned to and the eligible categories to pin to shortcuts: type: array @@ -6528,20 +8128,20 @@ components: children: type: array items: - $ref: "#/components/schemas/Collection" + $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" + $ref: '#/components/schemas/UserRoleSpecification' + description: A list of user roles for the Collection. + required: + - id + - description CollectionItem: allOf: - - $ref: "#/components/schemas/CollectionItemMutableProperties" + - $ref: '#/components/schemas/CollectionItemMutableProperties' - type: object - required: - - collectionId - - itemType properties: collectionId: type: integer @@ -6556,20 +8156,20 @@ components: type: string description: Unique identifier for the item within the Collection it belongs to. createdBy: - $ref: "#/components/schemas/Person" + $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" + $ref: '#/components/schemas/Document' description: The Document this CollectionItem corresponds to (omitted if item is a non-indexed URL). shortcut: - $ref: "#/components/schemas/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" + $ref: '#/components/schemas/Collection' description: The Collection this CollectionItem corresponds to (only included if item type is COLLECTION). itemType: type: string @@ -6578,69 +8178,70 @@ components: - TEXT - URL - COLLECTION + required: + - collectionId + - itemType CollectionPinnableCategories: type: string - description: Categories a Collection can be pinned to. enum: - COMPANY_RESOURCE - DEPARTMENT_RESOURCE - TEAM_RESOURCE + description: Categories a Collection can be pinned to. CollectionPinnableTargets: type: string - description: What targets can a Collection be pinned to. enum: - RESOURCE_CARD - TEAM_PROFILE_PAGE + description: What targets can a Collection be pinned to. CollectionPinTarget: - required: - - category properties: category: - $ref: "#/components/schemas/CollectionPinnableCategories" + $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: + $ref: '#/components/schemas/CollectionPinnableTargets' required: - - id - - target + - category + CollectionPinMetadata: properties: id: type: integer description: The ID of the Collection. target: - $ref: "#/components/schemas/CollectionPinTarget" + $ref: '#/components/schemas/CollectionPinTarget' + required: + - id + - target CollectionPinnedMetadata: properties: existingPins: type: array items: - $ref: "#/components/schemas/CollectionPinTarget" + $ref: '#/components/schemas/CollectionPinTarget' description: List of targets this Collection is pinned to. eligiblePins: type: array items: - $ref: "#/components/schemas/CollectionPinMetadata" + $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" + - $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" + $ref: '#/components/schemas/StructuredText' likes: - $ref: "#/components/schemas/AnswerLikes" + $ref: '#/components/schemas/AnswerLikes' author: - $ref: "#/components/schemas/Person" + $ref: '#/components/schemas/Person' createTime: type: string format: date-time @@ -6650,21 +8251,22 @@ components: format: date-time description: The time the answer was last updated in ISO format (ISO 8601). updatedBy: - $ref: "#/components/schemas/Person" + $ref: '#/components/schemas/Person' verification: - $ref: "#/components/schemas/Verification" + $ref: '#/components/schemas/Verification' collections: type: array - description: The collections to which the answer belongs. items: - $ref: "#/components/schemas/Collection" + $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" + $ref: '#/components/schemas/Document' + required: + - id 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 @@ -6677,9 +8279,9 @@ components: description: The ID of the associated action. parameters: type: object - description: Map of assistant predicted parameters and their corresponding values. 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. @@ -6689,6 +8291,7 @@ components: 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: @@ -6703,14 +8306,14 @@ components: 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" + $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" + $ref: '#/components/schemas/TextRange' description: Answer subsections to mark with special formatting (citations, bolding etc) status: type: string @@ -6731,14 +8334,12 @@ components: 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" + - $ref: '#/components/schemas/Result' - type: object properties: document: - $ref: "#/components/schemas/Document" + $ref: '#/components/schemas/Document' title: type: string url: @@ -6749,60 +8350,62 @@ components: snippets: type: array items: - $ref: "#/components/schemas/SearchResultSnippet" + $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 + 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" + $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" + $ref: '#/components/schemas/SearchResult' + description: A list of results that should be displayed as associated with this result. allClusteredResults: type: array - description: A list of results that should be displayed as associated with this result. items: - $ref: "#/components/schemas/ClusterGroup" + $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 - description: A (potentially partial) list of results representing documents attached to the main result document. items: - $ref: "#/components/schemas/SearchResult" + $ref: '#/components/schemas/SearchResult' + description: A (potentially partial) list of results representing documents attached to the main result document. 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" + $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" + $ref: '#/components/schemas/ClusterTypeEnum' mustIncludeSuggestions: - $ref: "#/components/schemas/QuerySuggestionList" + $ref: '#/components/schemas/QuerySuggestionList' querySuggestion: - $ref: "#/components/schemas/QuerySuggestion" + $ref: '#/components/schemas/QuerySuggestion' prominence: - $ref: "#/components/schemas/SearchResultProminenceEnum" + $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" + $ref: '#/components/schemas/PinDocument' + description: A list of pins associated with this search result. + required: + - url example: snippets: - snippet: snippet @@ -6832,10 +8435,8 @@ components: type: string description: Question text that was matched to produce this result. questionResult: - $ref: "#/components/schemas/SearchResult" + $ref: '#/components/schemas/SearchResult' CalendarAttendee: - required: - - person properties: isOrganizer: type: boolean @@ -6844,12 +8445,12 @@ components: 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" + $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" + $ref: '#/components/schemas/CalendarAttendee' + description: If this attendee is a group, represents the list of individual attendees in the group. responseStatus: type: string enum: @@ -6857,12 +8458,14 @@ components: - DECLINED - NO_RESPONSE - TENTATIVE + required: + - person CalendarAttendees: properties: people: type: array items: - $ref: "#/components/schemas/CalendarAttendee" + $ref: '#/components/schemas/CalendarAttendee' description: Full details of some of the attendees of this event isLimit: type: boolean @@ -6899,7 +8502,7 @@ components: type: string format: date-time attendees: - $ref: "#/components/schemas/CalendarAttendees" + $ref: '#/components/schemas/CalendarAttendees' description: The attendee list, including their response status isCancelled: type: boolean @@ -6917,8 +8520,6 @@ components: type: string description: The conference provider (e.g., "Microsoft Teams", "Zoom") AppResult: - required: - - datasource properties: datasource: type: string @@ -6932,6 +8533,8 @@ components: iconUrl: type: string description: If there is available icon URL. + required: + - datasource CodeLine: properties: lineNumber: @@ -6941,7 +8544,7 @@ components: ranges: type: array items: - $ref: "#/components/schemas/TextRange" + $ref: '#/components/schemas/TextRange' description: Index ranges depicting matched sections of the line Code: properties: @@ -6954,7 +8557,7 @@ components: lines: type: array items: - $ref: "#/components/schemas/CodeLine" + $ref: '#/components/schemas/CodeLine' isLastMatch: type: boolean description: Last file match for a repo @@ -6980,11 +8583,10 @@ components: suggestions: type: array items: - $ref: "#/components/schemas/QuerySuggestion" + $ref: '#/components/schemas/QuerySuggestion' person: - $ref: "#/components/schemas/Person" + $ref: '#/components/schemas/Person' IconConfig: - description: Defines how to render an icon properties: generatedBackgroundColorKey: type: string @@ -7018,13 +8620,13 @@ components: 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: - description: Metadata of a Chat a user had with Glean Assistant. This contains no actual conversational content. properties: id: type: string @@ -7033,7 +8635,7 @@ components: type: integer description: Server Unix timestamp of the creation time (in seconds since epoch UTC). createdBy: - $ref: "#/components/schemas/Person" + $ref: '#/components/schemas/Person' description: The user who created this Chat. updateTime: type: integer @@ -7048,12 +8650,12 @@ components: type: string description: The display name of the AI App that this Chat is associated to. icon: - $ref: "#/components/schemas/IconConfig" + $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 - description: How this document relates to the including entity. enum: - ATTACHMENT - CANONICAL @@ -7071,6 +8673,7 @@ components: - TICKET - TRANSCRIPT - WITH + description: How this document relates to the including entity. x-enum-varnames: - ATTACHMENT - CANONICAL @@ -7096,11 +8699,11 @@ components: 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" + $ref: '#/components/schemas/QuerySuggestion' documents: type: array items: - $ref: "#/components/schemas/Document" + $ref: '#/components/schemas/Document' description: A truncated list of documents with this relation. TO BE DEPRECATED. deprecated: true x-glean-deprecated: @@ -7112,7 +8715,7 @@ components: results: type: array items: - $ref: "#/components/schemas/SearchResult" + $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: @@ -7125,19 +8728,18 @@ components: ranges: type: array items: - $ref: "#/components/schemas/TextRange" + $ref: '#/components/schemas/TextRange' description: Subsections of the answer string to which some special formatting should be applied (eg. bold) EntityType: type: string - description: The type of entity. - x-include-enum-class-prefix: true enum: - PERSON - PROJECT - CUSTOMER + description: The type of entity. + x-include-enum-class-prefix: true Disambiguation: type: object - description: A disambiguation between multiple entities with the same name properties: name: type: string @@ -7146,7 +8748,8 @@ components: type: string description: The unique id of the entity in the knowledge graph type: - $ref: "#/components/schemas/EntityType" + $ref: '#/components/schemas/EntityType' + description: A disambiguation between multiple entities with the same name SearchResultSnippet: properties: mimeType: @@ -7161,15 +8764,15 @@ components: ranges: type: array items: - $ref: "#/components/schemas/TextRange" + $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. + deprecated: true x-glean-deprecated: id: e55ddf30-7c47-43a5-b775-d78f8b29411a introduced: "2026-02-05" @@ -7181,91 +8784,90 @@ components: 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" + $ref: '#/components/schemas/Document' person: - $ref: "#/components/schemas/Person" + $ref: '#/components/schemas/Person' customer: - $ref: "#/components/schemas/Customer" + $ref: '#/components/schemas/Customer' team: - $ref: "#/components/schemas/Team" + $ref: '#/components/schemas/Team' customEntity: - $ref: "#/components/schemas/CustomEntity" + $ref: '#/components/schemas/CustomEntity' answer: - $ref: "#/components/schemas/Answer" + $ref: '#/components/schemas/Answer' generatedQna: - $ref: "#/components/schemas/GeneratedQna" + $ref: '#/components/schemas/GeneratedQna' extractedQnA: - $ref: "#/components/schemas/ExtractedQnA" + $ref: '#/components/schemas/ExtractedQnA' meeting: - $ref: "#/components/schemas/Meeting" + $ref: '#/components/schemas/Meeting' app: - $ref: "#/components/schemas/AppResult" + $ref: '#/components/schemas/AppResult' collection: - $ref: "#/components/schemas/Collection" + $ref: '#/components/schemas/Collection' code: - $ref: "#/components/schemas/Code" + $ref: '#/components/schemas/Code' shortcut: - $ref: "#/components/schemas/Shortcut" + $ref: '#/components/schemas/Shortcut' querySuggestions: - $ref: "#/components/schemas/QuerySuggestionList" + $ref: '#/components/schemas/QuerySuggestionList' chat: - $ref: "#/components/schemas/ChatMetadata" + $ref: '#/components/schemas/ChatMetadata' relatedDocuments: type: array items: - $ref: "#/components/schemas/RelatedDocuments" + $ref: '#/components/schemas/RelatedDocuments' description: A list of documents related to this structured result. relatedQuestion: - $ref: "#/components/schemas/RelatedQuestion" + $ref: '#/components/schemas/RelatedQuestion' disambiguation: - $ref: "#/components/schemas/Disambiguation" + $ref: '#/components/schemas/Disambiguation' snippets: - description: Any snippets associated to the populated object. type: array items: - $ref: "#/components/schemas/SearchResultSnippet" + $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. - enum: - - HERO - - PROMOTED - - STANDARD x-speakeasy-enum-descriptions: HERO: A high-confidence result that should feature prominently on the page. PROMOTED: May not be the best result but should be given additional visual distinction. STANDARD: Should not be distinct from any other results. source: type: string - description: Source context for this result. Possible values depend on the result type. enum: - EXPERT_DETECTION - ENTITY_NLQ - CALENDAR_EVENT - AGENT + 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 - description: An array of entities in the work graph retrieved via a data request. items: - $ref: "#/components/schemas/StructuredResult" + $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 - description: The reason for inclusion of clusteredResults. enum: - SIMILAR - FRESHNESS @@ -7278,32 +8880,33 @@ components: - SUFFIX - AUTHOR_PREFIX - AUTHOR_SUFFIX + description: The reason for inclusion of clusteredResults. 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" + $ref: '#/components/schemas/SearchResult' + description: A list of results that should be displayed as associated with this result. clusterType: - $ref: "#/components/schemas/ClusterTypeEnum" + $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. - enum: - - HERO - - PROMOTED - - STANDARD x-speakeasy-enum-descriptions: HERO: A high-confidence result that should feature prominently on the page. PROMOTED: May not be the best result but should be given additional visual distinction. @@ -7312,20 +8915,18 @@ components: properties: queries: type: array - description: The query strings for which the pinned result will show. items: type: string + description: The query strings for which the pinned result will show. 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" + $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" + - $ref: '#/components/schemas/PinDocumentMutableProperties' - type: object - required: - - documentId properties: id: type: string @@ -7335,21 +8936,22 @@ components: 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" + $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" + $ref: '#/components/schemas/Person' updatedBy: - $ref: "#/components/schemas/Person" + $ref: '#/components/schemas/Person' createTime: type: string format: date-time updateTime: type: string format: date-time + required: + - documentId 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 @@ -7363,21 +8965,21 @@ components: 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 + 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 - description: Detailed location with information about country, state, city etc. properties: deskLocation: type: string @@ -7406,10 +9008,8 @@ components: 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: - required: - - name - - profileUrl properties: name: type: string @@ -7421,11 +9021,10 @@ components: type: string format: url description: Link to profile. - PersonDistance: required: - name - - obfuscatedId - - distance + - profileUrl + PersonDistance: properties: name: type: string @@ -7437,23 +9036,26 @@ components: 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: - description: Information regarding the invite status of a person for a particular channel. properties: channel: + $ref: '#/components/schemas/CommunicationChannel' 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 + 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. - $ref: "#/components/schemas/Person" inviteTime: type: string format: date-time @@ -7462,8 +9064,8 @@ components: 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: - description: Information regarding the invite status of a person. properties: signUpTime: type: string @@ -7472,12 +9074,12 @@ components: invites: type: array items: - $ref: "#/components/schemas/ChannelInviteInfo" + $ref: '#/components/schemas/ChannelInviteInfo' description: Latest invites received by the user for each channel inviter: - deprecated: true + $ref: '#/components/schemas/Person' description: The person that invited this person. - $ref: "#/components/schemas/Person" + deprecated: true x-glean-deprecated: id: 1d3cd23f-9085-4378-b466-9bdc2e344a71 introduced: "2026-02-05" @@ -7485,10 +9087,10 @@ components: 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). + deprecated: true x-glean-deprecated: id: 2dc3f572-cded-483d-af07-fc9fc7fd0ae4 introduced: "2026-02-05" @@ -7496,51 +9098,49 @@ components: 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. + 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: - description: Describes the read permission level that a user has for a specific feature properties: scopeType: - $ref: "#/components/schemas/ScopeType" + $ref: '#/components/schemas/ScopeType' + description: Describes the read permission level that a user has for a specific feature 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" + $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: - 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" + $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: - description: Describes the grant permission level that a user has for a specific feature properties: scopeType: - $ref: "#/components/schemas/ScopeType" + $ref: '#/components/schemas/ScopeType' + description: Describes the grant permission level that a user has for a specific feature 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" + $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: - 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 @@ -7552,23 +9152,23 @@ components: 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" + $ref: '#/components/schemas/ReadPermissions' write: - $ref: "#/components/schemas/WritePermissions" + $ref: '#/components/schemas/WritePermissions' grant: - $ref: "#/components/schemas/GrantPermissions" + $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 + 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: - required: - - start - - end properties: start: type: string @@ -7576,21 +9176,23 @@ components: end: type: string description: The RFC3339 timestamp formatted end time of this event. + required: + - start + - end AnonymousEvent: - description: A generic, light-weight calendar event. type: object properties: time: - $ref: "#/components/schemas/TimeInterval" + $ref: '#/components/schemas/TimeInterval' eventType: - description: The nature of the event, for example "out of office". 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 - description: Displays a user's accomplishment or milestone properties: key: type: string @@ -7599,10 +9201,11 @@ components: type: string description: The badge name displayed to users iconConfig: - $ref: "#/components/schemas/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 @@ -7615,17 +9218,17 @@ components: properties: type: type: string - x-enumDescriptions: - FULL_TIME: The person is a current full-time employee of the company. - CONTRACTOR: The person is a current contractor of the company. - NON_EMPLOYEE: The person object represents a non-human actor such as a service or admin account. - FORMER_EMPLOYEE: The person is a previous employee of the company. enum: - FULL_TIME - CONTRACTOR - NON_EMPLOYEE - FORMER_EMPLOYEE example: FULL_TIME + x-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. @@ -7647,10 +9250,10 @@ components: 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" + $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. @@ -7659,24 +9262,24 @@ components: 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 + 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" + $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" + $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" + $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. @@ -7705,11 +9308,11 @@ components: reports: type: array items: - $ref: "#/components/schemas/Person" + $ref: '#/components/schemas/Person' startDate: type: string - description: The date when the employee started. format: date + description: The date when the employee started. endDate: type: string format: date @@ -7730,24 +9333,24 @@ components: 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" + $ref: '#/components/schemas/SocialNetwork' + description: List of social network profiles. datasourceProfile: type: array - description: List of profiles this user has in different datasources / tools that they use. items: - $ref: "#/components/schemas/DatasourceProfile" + $ref: '#/components/schemas/DatasourceProfile' + description: List of profiles this user has in different datasources / tools that they use. querySuggestions: - $ref: "#/components/schemas/QuerySuggestionList" + $ref: '#/components/schemas/QuerySuggestionList' peopleDistance: type: array items: - $ref: "#/components/schemas/PersonDistance" + $ref: '#/components/schemas/PersonDistance' description: List of people and distances to those people from this person. Optionally with metadata. inviteInfo: - $ref: "#/components/schemas/InviteInfo" + $ref: '#/components/schemas/InviteInfo' isSignedUp: type: boolean description: Whether the user has signed into Glean at least once. @@ -7756,12 +9359,12 @@ components: format: date-time description: The last time the user has used the Glean extension in ISO 8601 format. permissions: - $ref: "#/components/schemas/Permissions" + $ref: '#/components/schemas/Permissions' customFields: type: array - description: User customizable fields for additional people information. items: - $ref: "#/components/schemas/CustomFieldData" + $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. @@ -7772,7 +9375,7 @@ components: busyEvents: type: array items: - $ref: "#/components/schemas/AnonymousEvent" + $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 @@ -7782,7 +9385,7 @@ components: badges: type: array items: - $ref: "#/components/schemas/Badge" + $ref: '#/components/schemas/Badge' description: The badges that a user has earned over their lifetime. isOrgRoot: type: boolean @@ -7797,6 +9400,13 @@ components: 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. @@ -7805,13 +9415,6 @@ components: DOMAIN_VISIBLE: Anyone in the domain can search for the document. PUBLIC_LINK: Anyone with the link can see the document. PUBLIC_VISIBLE: Anyone on the internet can search for the document. - enum: - - PRIVATE - - SPECIFIC_PEOPLE_AND_GROUPS - - DOMAIN_LINK - - DOMAIN_VISIBLE - - PUBLIC_LINK - - PUBLIC_VISIBLE x-speakeasy-enum-descriptions: PRIVATE: Only one person is able to see the document. SPECIFIC_PEOPLE_AND_GROUPS: Only specific people and/or groups can see the document. @@ -7829,22 +9432,22 @@ components: reactors: type: array items: - $ref: "#/components/schemas/Person" + $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" + $ref: '#/components/schemas/Person' sharingDocument: - $ref: "#/components/schemas/Document" + $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: @@ -7855,10 +9458,10 @@ components: 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 + 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" @@ -7868,14 +9471,14 @@ components: reacts: type: array items: - $ref: "#/components/schemas/Reaction" + $ref: '#/components/schemas/Reaction' shares: type: array items: - $ref: "#/components/schemas/Share" + $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" + $ref: '#/components/schemas/CountInfo' ViewerInfo: properties: role: @@ -7899,13 +9502,13 @@ components: IndexStatus: properties: lastCrawledTime: - description: When the document was last crawled type: string format: date-time + description: When the document was last crawled lastIndexedTime: - description: When the document was last indexed type: string format: date-time + description: When the document was last indexed DocumentMetadata: properties: datasource: @@ -7946,21 +9549,21 @@ components: type: string format: date-time author: - $ref: "#/components/schemas/Person" + $ref: '#/components/schemas/Person' owner: - $ref: "#/components/schemas/Person" + $ref: '#/components/schemas/Person' mentionedPeople: type: array items: - $ref: "#/components/schemas/Person" + $ref: '#/components/schemas/Person' description: A list of people mentioned in the document. visibility: - $ref: "#/components/schemas/DocumentVisibility" + $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 + 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). @@ -7969,64 +9572,64 @@ components: 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" + $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" + $ref: '#/components/schemas/Person' updatedBy: - $ref: "#/components/schemas/Person" + $ref: '#/components/schemas/Person' labels: type: array - description: A list of tags for the document. Interpretation is datasource specific. items: type: string + description: A list of tags for the document. Interpretation is datasource specific. collections: type: array - description: A list of collections that the document belongs to. items: - $ref: "#/components/schemas/Collection" + $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" + $ref: '#/components/schemas/DocumentInteractions' verification: - $ref: "#/components/schemas/Verification" + $ref: '#/components/schemas/Verification' viewerInfo: - $ref: "#/components/schemas/ViewerInfo" + $ref: '#/components/schemas/ViewerInfo' permissions: - $ref: "#/components/schemas/ObjectPermissions" + $ref: '#/components/schemas/ObjectPermissions' visitCount: - $ref: "#/components/schemas/CountInfo" + $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" + $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" + $ref: '#/components/schemas/CustomData' documentCategory: type: string description: The document's document_category(.proto). contactPerson: - $ref: "#/components/schemas/Person" + $ref: '#/components/schemas/Person' thumbnail: - $ref: "#/components/schemas/Thumbnail" + $ref: '#/components/schemas/Thumbnail' description: A thumbnail image representing this document. indexStatus: - $ref: "#/components/schemas/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" + $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 @@ -8060,14 +9663,14 @@ components: type: string example: https://en.wikipedia.org/wiki/Diffuse_sky_radiation document: - deprecated: true + $ref: '#/components/schemas/Document' description: Deprecated. To be gradually migrated to structuredResult. - $ref: "#/components/schemas/Document" + 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" + $ref: '#/components/schemas/StructuredResult' AnnouncementMutableProperties: properties: startTime: @@ -8082,20 +9685,20 @@ components: type: string description: The headline of the announcement. body: - $ref: "#/components/schemas/StructuredText" + $ref: '#/components/schemas/StructuredText' emoji: type: string description: An emoji used to indicate the nature of the announcement. thumbnail: - $ref: "#/components/schemas/Thumbnail" + $ref: '#/components/schemas/Thumbnail' banner: - $ref: "#/components/schemas/Thumbnail" + $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" + $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). @@ -8122,7 +9725,7 @@ components: 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" + - $ref: '#/components/schemas/AnnouncementMutableProperties' - type: object required: - title @@ -8137,17 +9740,17 @@ components: draftId: 342 Announcement: allOf: - - $ref: "#/components/schemas/AnnouncementMutableProperties" - - $ref: "#/components/schemas/DraftProperties" - - $ref: "#/components/schemas/PermissionedObject" - - $ref: "#/components/schemas/UgcTrackingSignals" + - $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" + $ref: '#/components/schemas/Person' createTimestamp: type: integer description: Server Unix timestamp of the creation time (in seconds since epoch UTC). @@ -8155,7 +9758,7 @@ components: type: integer description: Server Unix timestamp of the last update time (in seconds since epoch UTC). updatedBy: - $ref: "#/components/schemas/Person" + $ref: '#/components/schemas/Person' viewerInfo: type: object properties: @@ -8166,31 +9769,31 @@ components: type: boolean description: Whether the viewer has read the announcement. sourceDocument: - $ref: "#/components/schemas/Document" + $ref: '#/components/schemas/Document' description: The source document if the announcement is created from one. isPublished: type: boolean description: Whether or not the announcement is published. DeleteAnnouncementRequest: - required: - - id properties: id: type: integer description: The opaque id of the announcement to be deleted. + required: + - id UpdateAnnouncementRequest: allOf: - - $ref: "#/components/schemas/AnnouncementMutableProperties" + - $ref: '#/components/schemas/AnnouncementMutableProperties' - type: object + properties: + id: + type: integer + description: The opaque id of the announcement. required: - id - title - startTime - endTime - properties: - id: - type: integer - description: The opaque id of the announcement. AddedCollections: properties: addedCollections: @@ -8200,22 +9803,22 @@ components: description: IDs of Collections to which a document is added. AnswerCreationData: allOf: - - $ref: "#/components/schemas/AnswerMutableProperties" - - $ref: "#/components/schemas/AddedCollections" + - $ref: '#/components/schemas/AnswerMutableProperties' + - $ref: '#/components/schemas/AddedCollections' - type: object properties: combinedAnswerText: - $ref: "#/components/schemas/StructuredTextMutableProperties" + $ref: '#/components/schemas/StructuredTextMutableProperties' CreateAnswerRequest: - required: - - data properties: data: - $ref: "#/components/schemas/AnswerCreationData" + $ref: '#/components/schemas/AnswerCreationData' + required: + - data DeleteAnswerRequest: allOf: - - $ref: "#/components/schemas/AnswerId" - - $ref: "#/components/schemas/AnswerDocId" + - $ref: '#/components/schemas/AnswerId' + - $ref: '#/components/schemas/AnswerDocId' - type: object required: - id @@ -8228,27 +9831,25 @@ components: 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" + - $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" + $ref: '#/components/schemas/StructuredTextMutableProperties' + required: + - id GetAnswerRequest: allOf: - - $ref: "#/components/schemas/AnswerId" - - $ref: "#/components/schemas/AnswerDocId" + - $ref: '#/components/schemas/AnswerId' + - $ref: '#/components/schemas/AnswerDocId' AnswerResult: - required: - - answer properties: answer: - $ref: "#/components/schemas/Answer" + $ref: '#/components/schemas/Answer' trackingToken: type: string description: Use `answer.trackingToken` instead. @@ -8259,6 +9860,8 @@ components: 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." + required: + - answer GetAnswerError: properties: errorType: @@ -8267,37 +9870,37 @@ components: - NO_PERMISSION - INVALID_ID answerAuthor: - $ref: "#/components/schemas/Person" + $ref: '#/components/schemas/Person' GetAnswerResponse: properties: answerResult: - $ref: "#/components/schemas/AnswerResult" + $ref: '#/components/schemas/AnswerResult' error: - $ref: "#/components/schemas/GetAnswerError" + $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" + $ref: '#/components/schemas/AnswerResult' description: List of answers with tracking tokens. + required: + - answers + - answerResults AuthStatus: type: string - description: The per-user authorization status for a datasource. 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 @@ -8305,8 +9908,6 @@ components: - 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 @@ -8318,48 +9919,56 @@ components: description: Human-readable name of the datasource instance for display. example: Slack authStatus: - $ref: "#/components/schemas/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: - required: - - unauthorizedDatasourceInstances properties: unauthorizedDatasourceInstances: type: array + items: + $ref: '#/components/schemas/UnauthorizedDatasourceInstance' description: | Datasource instances that require per-user OAuth authorization. Empty when all datasources are authorized. - items: - $ref: "#/components/schemas/UnauthorizedDatasourceInstance" - CreateAuthTokenResponse: required: - - token - - expirationTime + - unauthorizedDatasourceInstances + CreateAuthTokenResponse: 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 + description: Unix timestamp for when this token expires (in seconds since epoch UTC). + required: + - token + - expirationTime 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)." + 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: '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: - description: Describes the agent that executes the request. 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 @@ -8368,13 +9977,6 @@ components: FAST: Uses an agent powered by the agentic engine that responds faster but may have lower quality results. Requires the agentic engine to be enabled in the deployment. ADVANCED: Uses an agent powered by the agentic engine that thinks for longer and potentially makes more LLM calls to return higher quality results. Requires the agentic engine to be enabled in the deployment. AUTO: Uses an agent powered by the agentic engine that routes between reasoning efforts based on the question and context. - enum: - - DEFAULT - - GPT - - UNIVERSAL - - FAST - - ADVANCED - - AUTO x-speakeasy-enum-descriptions: DEFAULT: Integrates with your company's knowledge. This will soon be deprecated in favor of the FAST and ADVANCED `agent` values GPT: Communicates directly with the LLM. This will soon be deprecated in favor of the FAST and ADVANCED `agent` values @@ -8383,36 +9985,35 @@ components: 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" + $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. - enum: - - DEFAULT - - QUICK x-speakeasy-enum-descriptions: DEFAULT: Used if no mode supplied. QUICK: Deprecated. useImageGeneration: type: boolean description: Whether the agent should create an image. + description: Describes the agent that executes the request. ChatFileStatus: type: string - description: Current status of the file. - x-include-enum-class-prefix: true enum: - PROCESSING - PROCESSED - PARTIALLY_PROCESSED - FAILED - DELETED + description: Current status of the file. + x-include-enum-class-prefix: true ChatFileFailureReason: type: string - description: Reason for failed status. - x-include-enum-class-prefix: true enum: - PARSE_FAILED - AV_SCAN_FAILED @@ -8425,12 +10026,13 @@ components: - URL_FETCH_FAILED - EMPTY_CONTENT - AUTH_REQUIRED + description: Reason for failed status. + x-include-enum-class-prefix: true ChatFileMetadata: type: object - description: Metadata of a file uploaded by a user for Chat. properties: status: - $ref: "#/components/schemas/ChatFileStatus" + $ref: '#/components/schemas/ChatFileStatus' uploadTime: type: integer format: int64 @@ -8440,13 +10042,13 @@ components: format: int64 description: Size of the processed file in bytes. failureReason: - $ref: "#/components/schemas/ChatFileFailureReason" + $ref: '#/components/schemas/ChatFileFailureReason' mimeType: - description: MIME type of the file. type: string + description: MIME type of the file. + description: Metadata of a file uploaded by a user for Chat. ChatFile: type: object - description: Structure for file uploaded by a user for Chat. properties: id: type: string @@ -8461,38 +10063,39 @@ components: description: Name of the uploaded file. example: sample.pdf metadata: - $ref: "#/components/schemas/ChatFileMetadata" + $ref: '#/components/schemas/ChatFileMetadata' + description: Structure for file uploaded by a user for Chat. 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" + $ref: '#/components/schemas/TextRange' snippets: type: array items: - $ref: "#/components/schemas/SearchResultSnippet" + $ref: '#/components/schemas/SearchResultSnippet' + description: Each text range from the response can correspond to an array of snippets from the citation source. 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" + $ref: '#/components/schemas/Document' sourceFile: - $ref: "#/components/schemas/ChatFile" + $ref: '#/components/schemas/ChatFile' sourcePerson: - $ref: "#/components/schemas/Person" + $ref: '#/components/schemas/Person' sourceCustomEntity: - $ref: "#/components/schemas/CustomEntity" + $ref: '#/components/schemas/CustomEntity' referenceRanges: - description: Each reference range and its corresponding snippets type: array items: - $ref: "#/components/schemas/ReferenceRange" + $ref: '#/components/schemas/ReferenceRange' + description: Each reference range and its corresponding snippets + description: Information about the source for a ChatMessage. displayName: - description: Human understandable name of the tool. Max 50 characters. type: string + description: Human understandable name of the tool. Max 50 characters. logoUrl: type: string description: URL used to fetch the logo. @@ -8504,9 +10107,6 @@ components: - Email - Chat message PersonObject: - required: - - name - - obfuscatedId properties: name: type: string @@ -8514,8 +10114,10 @@ components: obfuscatedId: type: string description: An opaque identifier that can be used to request metadata for a Person. + required: + - name + - obfuscatedId AuthConfig: - description: Config for tool's authentication method. type: object properties: isOnPrem: @@ -8547,11 +10149,11 @@ components: description: The type of grant type being used. status: type: string - description: Auth status of the tool. enum: - AWAITING_AUTH - AUTHORIZED - AUTH_DISABLED + description: Auth status of the tool. client_url: type: string format: url @@ -8585,46 +10187,41 @@ components: 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: - 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 + description: The type of tool. name: - description: Unique identifier for the tool. Name should be understandable by the LLM, and will be used to invoke a tool. 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" + $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 + description: Description of the tool meant for a human. logoUrl: - $ref: "#/components/schemas/logoUrl" + $ref: '#/components/schemas/logoUrl' objectName: - $ref: "#/components/schemas/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 + description: Indicates the kind of knowledge a tool would access or modify. createdBy: - $ref: "#/components/schemas/PersonObject" + $ref: '#/components/schemas/PersonObject' lastUpdatedBy: - $ref: "#/components/schemas/PersonObject" + $ref: '#/components/schemas/PersonObject' createdAt: type: string format: date-time @@ -8635,11 +10232,11 @@ components: 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 + 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: @@ -8656,20 +10253,25 @@ components: 'OAUTH_USER' uses individual user tokens for external API calls. 'DWD' refers to domain wide delegation. auth: + $ref: '#/components/schemas/AuthConfig' deprecated: true - $ref: "#/components/schemas/AuthConfig" permissions: + $ref: '#/components/schemas/ObjectPermissions' deprecated: true - $ref: "#/components/schemas/ObjectPermissions" usageInstructions: - description: Usage instructions for the LLM to use this action. 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 - description: Possible value of a specific parameter properties: value: type: string @@ -8677,17 +10279,18 @@ components: 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 - description: The type of the value (e.g., integer, string, boolean, etc.) 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. @@ -8703,54 +10306,53 @@ components: possibleValues: type: array items: - $ref: "#/components/schemas/PossibleValue" + $ref: '#/components/schemas/PossibleValue' description: Possible values that the parameter can take. ToolInfo: type: object properties: metadata: - $ref: "#/components/schemas/ToolMetadata" + $ref: '#/components/schemas/ToolMetadata' parameters: type: object - description: Parameters supported by the tool. additionalProperties: - $ref: "#/components/schemas/WriteActionParameter" + $ref: '#/components/schemas/WriteActionParameter' + description: Parameters supported by the tool. 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" + - $ref: '#/components/schemas/Result' - type: object properties: text: type: string querySuggestion: + $ref: '#/components/schemas/QuerySuggestion' description: The search queries issued while responding. - $ref: "#/components/schemas/QuerySuggestion" file: + $ref: '#/components/schemas/ChatFile' description: Files referenced in the message fragment. This is used to construct rich-text messages with file references. - $ref: "#/components/schemas/ChatFile" action: + $ref: '#/components/schemas/ToolInfo' description: Basic information about an action. This can be used to construct rich-text messages with action references. - $ref: "#/components/schemas/ToolInfo" citation: + $ref: '#/components/schemas/ChatMessageCitation' description: Inline citation. - $ref: "#/components/schemas/ChatMessageCitation" + 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: - description: A message that is rendered as one coherent unit with one given sender. properties: agentConfig: - $ref: "#/components/schemas/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 + 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." + $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 @@ -8765,9 +10367,9 @@ components: 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" + $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. @@ -8779,8 +10381,24 @@ components: description: Opaque tracking token generated server-side. messageType: type: string - default: CONTENT + 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. @@ -8797,22 +10415,6 @@ components: HEADING: A heading message used to distinguish different sections of the holistic response. WARNING: A warning message to be shown to the user. SERVER_TOOL: A message used to for server-side tool auth/use, for request and response. - enum: - - UPDATE - - CONTENT - - CONTEXT - - CONTROL - - CONTROL_START - - CONTROL_FINISH - - CONTROL_CANCEL - - CONTROL_RETRY - - CONTROL_UNKNOWN - - DEBUG - - DEBUG_EXTERNAL - - ERROR - - HEADING - - WARNING - - SERVER_TOOL x-speakeasy-enum-descriptions: UPDATE: An intermediate state message for progress updates. CONTENT: A user query or response message. @@ -8830,22 +10432,20 @@ components: WARNING: A warning message to be shown to the user. SERVER_TOOL: A message used to for server-side tool auth/use, for request and response. hasMoreFragments: - deprecated: true type: boolean description: Signals there are additional response fragments incoming. + deprecated: true + description: A message that is rendered as one coherent unit with one given sender. 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" + $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. - $ref: "#/components/schemas/SessionInfo" saveChat: type: boolean description: Save the current interaction as a Chat for the user to access and potentially continue later. @@ -8853,31 +10453,34 @@ components: 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" + $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" + - $ref: '#/components/schemas/RestrictionFilters' - type: object properties: documentSpecs: type: array items: - $ref: "#/components/schemas/DocumentSpec" + $ref: '#/components/schemas/DocumentSpec' datasourceInstances: type: array items: type: string ChatRequest: allOf: - - $ref: "#/components/schemas/ChatRequestBase" + - $ref: '#/components/schemas/ChatRequestBase' - type: object properties: inclusions: - $ref: "#/components/schemas/ChatRestrictionFilters" + $ref: '#/components/schemas/ChatRestrictionFilters' description: A list of filters which only allows chat to access certain content. exclusions: - $ref: "#/components/schemas/ChatRestrictionFilters" + $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 @@ -8893,17 +10496,16 @@ components: 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" + $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" + $ref: '#/components/schemas/ChatMetadata' followUpPrompts: type: array items: @@ -8917,53 +10519,54 @@ components: chatSessionTrackingToken: type: string description: A token that is used to track the session. + description: A single response from the /chat backend. 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 + - ids + GetChatRequest: properties: id: type: string description: The id of the Chat to be retrieved. + required: + - id 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" + - $ref: '#/components/schemas/ChatMetadata' + - $ref: '#/components/schemas/PermissionedObject' properties: messages: type: array items: - $ref: "#/components/schemas/ChatMessage" + $ref: '#/components/schemas/ChatMessage' description: The chat messages within a Chat. roles: type: array items: - $ref: "#/components/schemas/UserRoleSpecification" + $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" + $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" + $ref: '#/components/schemas/ChatResult' ChatMetadataResult: properties: chat: - $ref: "#/components/schemas/ChatMetadata" + $ref: '#/components/schemas/ChatMetadata' trackingToken: type: string description: An opaque token that represents this particular Chat. To be used for `/feedback` reporting. @@ -8972,26 +10575,24 @@ components: chatResults: type: array items: - $ref: "#/components/schemas/ChatMetadataResult" + $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. + required: + - id ChatApplicationDetails: {} GetChatApplicationResponse: properties: application: - $ref: "#/components/schemas/ChatApplicationDetails" + $ref: '#/components/schemas/ChatApplicationDetails' UploadChatFilesRequest: - required: - - files properties: files: type: array @@ -8999,38 +10600,40 @@ components: 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" + $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. + required: + - fileIds GetChatFilesResponse: properties: files: - description: A map of file IDs to ChatFile structs. type: object additionalProperties: - $ref: "#/components/schemas/ChatFile" + $ref: '#/components/schemas/ChatFile' + description: A map of file IDs to ChatFile structs. DeleteChatFilesRequest: - required: - - fileIds properties: fileIds: type: array items: type: string description: IDs of files to delete. + required: + - fileIds WorkflowDraftableProperties: properties: name: @@ -9039,11 +10642,11 @@ components: WorkflowMutableProperties: type: object allOf: - - $ref: "#/components/schemas/WorkflowDraftableProperties" + - $ref: '#/components/schemas/WorkflowDraftableProperties' - type: object CreateWorkflowRequest: allOf: - - $ref: "#/components/schemas/WorkflowMutableProperties" + - $ref: '#/components/schemas/WorkflowMutableProperties' - type: object properties: transient: @@ -9057,7 +10660,7 @@ components: - type: object properties: author: - $ref: "#/components/schemas/Person" + $ref: '#/components/schemas/Person' createTimestamp: type: integer description: Server Unix timestamp of the creation time. @@ -9068,20 +10671,20 @@ components: 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. - $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" + $ref: '#/components/schemas/Person' AttributionProperties: {} Workflow: allOf: - - $ref: "#/components/schemas/PermissionedObject" - - $ref: "#/components/schemas/WorkflowMutableProperties" - - $ref: "#/components/schemas/WorkflowMetadata" - - $ref: "#/components/schemas/AttributionProperties" + - $ref: '#/components/schemas/PermissionedObject' + - $ref: '#/components/schemas/WorkflowMutableProperties' + - $ref: '#/components/schemas/WorkflowMetadata' + - $ref: '#/components/schemas/AttributionProperties' - type: object properties: id: @@ -9089,29 +10692,24 @@ components: 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. + readOnly: true 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. + readOnly: true WorkflowResult: type: object - required: - - workflow properties: workflow: - $ref: "#/components/schemas/Workflow" + $ref: '#/components/schemas/Workflow' + required: + - workflow CreateWorkflowResponse: allOf: - - $ref: "#/components/schemas/WorkflowResult" + - $ref: '#/components/schemas/WorkflowResult' Agent: - title: Agent type: object - required: - - agent_id - - name - - capabilities properties: agent_id: type: string @@ -9134,12 +10732,6 @@ components: 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 @@ -9149,17 +10741,28 @@ components: 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 - description: Error response returned for failed requests 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" + - $ref: '#/components/schemas/WorkflowMutableProperties' - type: object properties: id: @@ -9167,10 +10770,6 @@ components: 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 @@ -9203,7 +10802,12 @@ components: 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 @@ -9225,16 +10829,15 @@ components: 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. - items: - $ref: "#/components/schemas/ActionSummary" - type: object + title: AgentSchemas required: - agent_id - input_schema - output_schema - title: AgentSchemas description: Defines the structure and properties of an agent. SearchAgentsRequest: type: object @@ -9245,12 +10848,12 @@ components: example: HR Policy Agent SearchAgentsResponse: type: object - title: Response Search Agents properties: agents: type: array items: - $ref: "#/components/schemas/Agent" + $ref: '#/components/schemas/Agent' + title: Response Search Agents ContentType: type: string enum: @@ -9264,8 +10867,6 @@ components: description: The role of the message. example: USER content: - title: Content - description: The content of the message. type: array items: type: object @@ -9273,16 +10874,15 @@ components: text: type: string type: - $ref: "#/components/schemas/ContentType" + $ref: '#/components/schemas/ContentType' + title: MessageTextBlock required: - text - type - title: MessageTextBlock + title: Content + description: The content of the message. 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 @@ -9291,49 +10891,52 @@ components: input: type: object title: Input - description: The input to the agent. Required when the agent uses an input form trigger. 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" + $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 + 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: - description: The status of the run. One of 'error', 'success'. type: string + title: AgentExecutionStatus enum: - error - success - title: AgentExecutionStatus + description: The status of the run. One of 'error', 'success'. AgentRun: allOf: - - $ref: "#/components/schemas/AgentRunCreate" + - $ref: '#/components/schemas/AgentRunCreate' - type: object properties: status: - $ref: "#/components/schemas/AgentExecutionStatus" + $ref: '#/components/schemas/AgentExecutionStatus' AgentRunWaitResponse: type: object properties: run: - $ref: "#/components/schemas/AgentRun" + $ref: '#/components/schemas/AgentRun' title: Run description: The run information. messages: type: array items: - $ref: "#/components/schemas/Message" + $ref: '#/components/schemas/Message' title: Messages description: The messages returned by the run. CollectionItemDescriptor: allOf: - - $ref: "#/components/schemas/CollectionItemMutableProperties" + - $ref: '#/components/schemas/CollectionItemMutableProperties' properties: url: type: string @@ -9351,8 +10954,6 @@ components: - TEXT - URL AddCollectionItemsRequest: - required: - - collectionId properties: collectionId: type: number @@ -9360,8 +10961,10 @@ components: addedCollectionItemDescriptors: type: array items: - $ref: "#/components/schemas/CollectionItemDescriptor" + $ref: '#/components/schemas/CollectionItemDescriptor' description: The CollectionItemDescriptors of the items being added. + required: + - collectionId AddCollectionItemsError: properties: errorType: @@ -9372,21 +10975,19 @@ components: AddCollectionItemsResponse: properties: collection: - $ref: "#/components/schemas/Collection" + $ref: '#/components/schemas/Collection' description: The modified Collection. Only CollectionItemMutableProperties are set for each item. error: - $ref: "#/components/schemas/AddCollectionItemsError" + $ref: '#/components/schemas/AddCollectionItemsError' CreateCollectionRequest: allOf: - - $ref: "#/components/schemas/CollectionMutableProperties" + - $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 @@ -9399,6 +11000,8 @@ components: - WIDTH_VIOLATION - NO_PERMISSIONS - CORRUPT_ITEM + required: + - errorCode CreateCollectionResponse: allOf: - type: object @@ -9409,12 +11012,10 @@ components: - error properties: collection: - $ref: "#/components/schemas/Collection" + $ref: '#/components/schemas/Collection' error: - $ref: "#/components/schemas/CollectionError" + $ref: '#/components/schemas/CollectionError' DeleteCollectionRequest: - required: - - ids properties: ids: type: array @@ -9424,10 +11025,9 @@ components: allowedDatasource: type: string description: The datasource allowed in the Collection to be deleted. - DeleteCollectionItemRequest: required: - - collectionId - - itemId + - ids + DeleteCollectionItemRequest: properties: collectionId: type: number @@ -9438,37 +11038,37 @@ components: 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" + $ref: '#/components/schemas/Collection' description: The modified Collection. Only CollectionItemMutableProperties are set for each item. EditCollectionRequest: allOf: - - $ref: "#/components/schemas/CollectionMutableProperties" + - $ref: '#/components/schemas/CollectionMutableProperties' - type: object - required: - - id properties: id: type: integer description: The ID of the Collection to modify. + required: + - id EditCollectionResponse: allOf: - - $ref: "#/components/schemas/Collection" - - $ref: "#/components/schemas/CollectionError" + - $ref: '#/components/schemas/Collection' + - $ref: '#/components/schemas/CollectionError' - type: object properties: collection: - $ref: "#/components/schemas/Collection" + $ref: '#/components/schemas/Collection' error: - $ref: "#/components/schemas/CollectionError" + $ref: '#/components/schemas/CollectionError' EditCollectionItemRequest: - required: - - collectionId - - itemId allOf: - - $ref: "#/components/schemas/CollectionItemMutableProperties" + - $ref: '#/components/schemas/CollectionItemMutableProperties' - type: object properties: collectionId: @@ -9477,14 +11077,15 @@ components: itemId: type: string description: The ID of the CollectionItem to edit. + required: + - collectionId + - itemId EditCollectionItemResponse: properties: collection: - $ref: "#/components/schemas/Collection" + $ref: '#/components/schemas/Collection' description: The modified Collection. Only CollectionItemMutableProperties are set for each item. GetCollectionRequest: - required: - - id properties: id: type: integer @@ -9498,14 +11099,16 @@ components: allowedDatasource: type: string description: The datasource allowed in the Collection returned. + required: + - id GetCollectionResponse: properties: collection: - $ref: "#/components/schemas/Collection" + $ref: '#/components/schemas/Collection' rootCollection: - $ref: "#/components/schemas/Collection" + $ref: '#/components/schemas/Collection' error: - $ref: "#/components/schemas/CollectionError" + $ref: '#/components/schemas/CollectionError' trackingToken: type: string description: Use `collection.trackingToken` instead. @@ -9530,14 +11133,14 @@ components: 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" + $ref: '#/components/schemas/Collection' description: List of all Collections, no Collection items are fetched. + required: + - collections GetDocPermissionsRequest: type: object properties: @@ -9553,16 +11156,13 @@ components: 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" + $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 @@ -9572,28 +11172,29 @@ components: - RECENT_SHARES - DOCUMENT_CONTENT - CUSTOM_METADATA + description: List of Document fields to return (that aren't returned by default) + required: + - documentSpecs DocumentOrError: - x-omit-error-on-success: true oneOf: - - $ref: "#/components/schemas/Document" + - $ref: '#/components/schemas/Document' - type: object - required: - - error 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" + $ref: '#/components/schemas/DocumentOrError' description: The document details or the error if document is not found. GetDocumentsByFacetsRequest: - required: - - filterSets properties: datasourcesFilter: type: array @@ -9603,17 +11204,19 @@ components: filterSets: type: array items: - $ref: "#/components/schemas/FacetFilterSet" + $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" + $ref: '#/components/schemas/Document' description: The document details, ordered by score. hasMoreResults: type: boolean @@ -9634,7 +11237,7 @@ components: type: string description: Manager emails whose teams should be filtered for. Empty array means no filtering. dayRange: - $ref: "#/components/schemas/Period" + $ref: '#/components/schemas/Period' description: Time period for which Insights are requested. InsightsAssistantRequest: properties: @@ -9649,7 +11252,7 @@ components: type: string description: Manager emails whose teams should be filtered for. Empty array means no filtering. dayRange: - $ref: "#/components/schemas/Period" + $ref: '#/components/schemas/Period' description: Time period for which Insights are requested. AgentsInsightsV2Request: properties: @@ -9669,7 +11272,7 @@ components: type: string description: Manager emails whose teams should be filtered for. Empty array means no filtering. dayRange: - $ref: "#/components/schemas/Period" + $ref: '#/components/schemas/Period' description: Time period for which Insights are requested. McpInsightsRequest: properties: @@ -9689,7 +11292,7 @@ components: type: string description: Manager emails whose teams should be filtered for. Empty array means no filtering. dayRange: - $ref: "#/components/schemas/Period" + $ref: '#/components/schemas/Period' description: Time period for which Insights are requested. McpBreakdownInsightsRequest: properties: @@ -9709,7 +11312,7 @@ components: type: string description: Manager emails whose teams should be filtered for. Empty array means no filtering. dayRange: - $ref: "#/components/schemas/Period" + $ref: '#/components/schemas/Period' description: Time period for which Insights are requested. breakdownType: type: string @@ -9737,32 +11340,29 @@ components: InsightsRequest: properties: overviewRequest: - $ref: "#/components/schemas/InsightsOverviewRequest" - x-visibility: Public + $ref: '#/components/schemas/InsightsOverviewRequest' description: If specified, will return data for the Overview section of the Insights Dashboard. - assistantRequest: - $ref: "#/components/schemas/InsightsAssistantRequest" x-visibility: Public + assistantRequest: + $ref: '#/components/schemas/InsightsAssistantRequest' description: If specified, will return data for the Assistant section of the Insights Dashboard. - agentsRequest: - $ref: "#/components/schemas/AgentsInsightsV2Request" 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" + $ref: '#/components/schemas/McpInsightsRequest' description: If specified, will return data for the MCP section of the Insights Dashboard. mcpBreakdownRequest: - $ref: "#/components/schemas/McpBreakdownInsightsRequest" + $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" + $ref: '#/components/schemas/Person' activity: type: string enum: @@ -9773,9 +11373,12 @@ components: type: integer description: Unix timestamp of the last activity (in seconds since epoch UTC). activityCount: - $ref: "#/components/schemas/CountInfo" + $ref: '#/components/schemas/CountInfo' activeDayCount: - $ref: "#/components/schemas/CountInfo" + $ref: '#/components/schemas/CountInfo' + required: + - user + - activity GleanAssistInsightsResponse: properties: lastLogTimestamp: @@ -9784,7 +11387,7 @@ components: activityInsights: type: array items: - $ref: "#/components/schemas/UserActivityInsight" + $ref: '#/components/schemas/UserActivityInsight' description: Insights for all active users with respect to set of actions. totalActiveUsers: type: integer @@ -9809,7 +11412,7 @@ components: description: Number of current Weekly Active Users. InsightsSearchSummary: allOf: - - $ref: "#/components/schemas/CurrentActiveUsers" + - $ref: '#/components/schemas/CurrentActiveUsers' - type: object properties: numSearches: @@ -9820,7 +11423,7 @@ components: description: Total number of distinct users who searched over the specified time period. InsightsChatSummary: allOf: - - $ref: "#/components/schemas/CurrentActiveUsers" + - $ref: '#/components/schemas/CurrentActiveUsers' - type: object properties: numChats: @@ -9831,7 +11434,7 @@ components: description: Total number of distinct users who used Chat over the specified time period. InsightsDepartmentsSummary: allOf: - - $ref: "#/components/schemas/CurrentActiveUsers" + - $ref: '#/components/schemas/CurrentActiveUsers' - type: object properties: departments: @@ -9846,28 +11449,26 @@ components: type: integer description: Number of current signed up employees in the specified departments, according to the Org Chart. searchSummary: - $ref: "#/components/schemas/InsightsSearchSummary" + $ref: '#/components/schemas/InsightsSearchSummary' chatSummary: - $ref: "#/components/schemas/InsightsChatSummary" + $ref: '#/components/schemas/InsightsChatSummary' searchActiveUsers: - $ref: "#/components/schemas/CurrentActiveUsers" + $ref: '#/components/schemas/CurrentActiveUsers' description: Search-specific active user counts for the specified departments. assistantActiveUsers: - $ref: "#/components/schemas/CurrentActiveUsers" + $ref: '#/components/schemas/CurrentActiveUsers' description: Assistant-specific active user counts for the specified departments. agentsActiveUsers: - $ref: "#/components/schemas/CurrentActiveUsers" + $ref: '#/components/schemas/CurrentActiveUsers' description: Agents-specific active user counts for the specified departments. mcpActiveUsers: - $ref: "#/components/schemas/CurrentActiveUsers" + $ref: '#/components/schemas/CurrentActiveUsers' description: MCP active user counts for the specified departments. extensionSummary: - $ref: "#/components/schemas/CurrentActiveUsers" + $ref: '#/components/schemas/CurrentActiveUsers' ugcSummary: - $ref: "#/components/schemas/CurrentActiveUsers" + $ref: '#/components/schemas/CurrentActiveUsers' LabeledCountInfo: - required: - - label properties: label: type: string @@ -9875,12 +11476,14 @@ components: countInfo: type: array items: - $ref: "#/components/schemas/CountInfo" + $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" + $ref: '#/components/schemas/Person' numSearches: type: integer description: Total number of searches by this user over the specified time period. @@ -9910,7 +11513,7 @@ components: description: Total number of MCP calls for this user over the specified time period. InsightsOverviewResponse: allOf: - - $ref: "#/components/schemas/InsightsDepartmentsSummary" + - $ref: '#/components/schemas/InsightsDepartmentsSummary' - type: object properties: lastUpdatedTs: @@ -9928,43 +11531,43 @@ components: 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" + $ref: '#/components/schemas/LabeledCountInfo' weeklyActiveUserTimeseries: - $ref: "#/components/schemas/LabeledCountInfo" + $ref: '#/components/schemas/LabeledCountInfo' dailyActiveUserTimeseries: - $ref: "#/components/schemas/LabeledCountInfo" + $ref: '#/components/schemas/LabeledCountInfo' searchMonthlyActiveUserTimeseries: - $ref: "#/components/schemas/LabeledCountInfo" + $ref: '#/components/schemas/LabeledCountInfo' searchWeeklyActiveUserTimeseries: - $ref: "#/components/schemas/LabeledCountInfo" + $ref: '#/components/schemas/LabeledCountInfo' searchDailyActiveUserTimeseries: - $ref: "#/components/schemas/LabeledCountInfo" + $ref: '#/components/schemas/LabeledCountInfo' assistantMonthlyActiveUserTimeseries: - $ref: "#/components/schemas/LabeledCountInfo" + $ref: '#/components/schemas/LabeledCountInfo' assistantWeeklyActiveUserTimeseries: - $ref: "#/components/schemas/LabeledCountInfo" + $ref: '#/components/schemas/LabeledCountInfo' assistantDailyActiveUserTimeseries: - $ref: "#/components/schemas/LabeledCountInfo" + $ref: '#/components/schemas/LabeledCountInfo' agentsMonthlyActiveUserTimeseries: - $ref: "#/components/schemas/LabeledCountInfo" + $ref: '#/components/schemas/LabeledCountInfo' agentsWeeklyActiveUserTimeseries: - $ref: "#/components/schemas/LabeledCountInfo" + $ref: '#/components/schemas/LabeledCountInfo' agentsDailyActiveUserTimeseries: - $ref: "#/components/schemas/LabeledCountInfo" + $ref: '#/components/schemas/LabeledCountInfo' mcpMonthlyActiveUserTimeseries: - $ref: "#/components/schemas/LabeledCountInfo" + $ref: '#/components/schemas/LabeledCountInfo' mcpWeeklyActiveUserTimeseries: - $ref: "#/components/schemas/LabeledCountInfo" + $ref: '#/components/schemas/LabeledCountInfo' mcpDailyActiveUserTimeseries: - $ref: "#/components/schemas/LabeledCountInfo" + $ref: '#/components/schemas/LabeledCountInfo' searchesTimeseries: - $ref: "#/components/schemas/LabeledCountInfo" + $ref: '#/components/schemas/LabeledCountInfo' assistantInteractionsTimeseries: - $ref: "#/components/schemas/LabeledCountInfo" + $ref: '#/components/schemas/LabeledCountInfo' agentRunsTimeseries: - $ref: "#/components/schemas/LabeledCountInfo" + $ref: '#/components/schemas/LabeledCountInfo' mcpCallsTimeseries: - $ref: "#/components/schemas/LabeledCountInfo" + $ref: '#/components/schemas/LabeledCountInfo' searchDatasourceCounts: type: object additionalProperties: @@ -9978,12 +11581,12 @@ components: perUserInsights: type: array items: - $ref: "#/components/schemas/PerUserInsight" + $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" + $ref: '#/components/schemas/Person' numChatMessages: type: integer description: Total number of chat messages sent by this user over the specified time period. @@ -10001,37 +11604,37 @@ components: description: Total number of days this user was active on the Assistant over the specified time period. AssistantInsightsResponse: allOf: - - $ref: "#/components/schemas/CurrentActiveUsers" + - $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" + $ref: '#/components/schemas/LabeledCountInfo' weeklyActiveUserTimeseries: - $ref: "#/components/schemas/LabeledCountInfo" + $ref: '#/components/schemas/LabeledCountInfo' dailyActiveUserTimeseries: - $ref: "#/components/schemas/LabeledCountInfo" + $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" + $ref: '#/components/schemas/LabeledCountInfo' summarizationsTimeseries: - $ref: "#/components/schemas/LabeledCountInfo" + $ref: '#/components/schemas/LabeledCountInfo' aiAnswersTimeseries: - $ref: "#/components/schemas/LabeledCountInfo" + $ref: '#/components/schemas/LabeledCountInfo' gleanbotInteractionsTimeseries: - $ref: "#/components/schemas/LabeledCountInfo" + $ref: '#/components/schemas/LabeledCountInfo' perUserInsights: type: array items: - $ref: "#/components/schemas/PerUserAssistantInsight" + $ref: '#/components/schemas/PerUserAssistantInsight' upvotesTimeseries: - $ref: "#/components/schemas/LabeledCountInfo" + $ref: '#/components/schemas/LabeledCountInfo' downvotesTimeseries: - $ref: "#/components/schemas/LabeledCountInfo" + $ref: '#/components/schemas/LabeledCountInfo' PerAgentInsight: properties: agentId: @@ -10041,7 +11644,7 @@ components: type: string description: Agent name icon: - $ref: "#/components/schemas/IconConfig" + $ref: '#/components/schemas/IconConfig' description: Agent icon configuration isDeleted: type: boolean @@ -10059,7 +11662,7 @@ components: type: integer description: Total number of downvotes for this agent over the specified time period. owner: - $ref: "#/components/schemas/Person" + $ref: '#/components/schemas/Person' description: | The creator/owner of the agent. Absent if agent is deleted or owner is unknown. AgentUseCaseInsight: @@ -10084,7 +11687,7 @@ components: type: string description: Name of the most-used agent for this use case. topAgentIcon: - $ref: "#/components/schemas/IconConfig" + $ref: '#/components/schemas/IconConfig' description: Icon of the most-used agent for this use case. topAgentIsDeleted: type: boolean @@ -10111,7 +11714,7 @@ components: 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" + $ref: '#/components/schemas/IconConfig' description: Agent icon configuration isDeleted: type: boolean @@ -10119,7 +11722,7 @@ components: AgentUsersInsight: properties: person: - $ref: "#/components/schemas/Person" + $ref: '#/components/schemas/Person' departmentName: type: string description: Department name @@ -10145,7 +11748,7 @@ components: type: string description: Agent name icon: - $ref: "#/components/schemas/IconConfig" + $ref: '#/components/schemas/IconConfig' description: Agent icon configuration isDeleted: type: boolean @@ -10162,75 +11765,75 @@ components: 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" + - $ref: '#/components/schemas/CurrentActiveUsers' - type: object properties: monthlyActiveUserTimeseries: - $ref: "#/components/schemas/LabeledCountInfo" + $ref: '#/components/schemas/LabeledCountInfo' weeklyActiveUserTimeseries: - $ref: "#/components/schemas/LabeledCountInfo" + $ref: '#/components/schemas/LabeledCountInfo' dailyActiveUserTimeseries: - $ref: "#/components/schemas/LabeledCountInfo" + $ref: '#/components/schemas/LabeledCountInfo' sharedAgentsCount: type: integer description: Total number of shared agents. topAgentsInsights: type: array items: - $ref: "#/components/schemas/PerAgentInsight" + $ref: '#/components/schemas/PerAgentInsight' topUseCasesInsights: type: array items: - $ref: "#/components/schemas/AgentUseCaseInsight" + $ref: '#/components/schemas/AgentUseCaseInsight' agentsUsageByDepartmentInsights: type: array items: - $ref: "#/components/schemas/AgentsUsageByDepartmentInsight" + $ref: '#/components/schemas/AgentsUsageByDepartmentInsight' agentUsersInsights: type: array items: - $ref: "#/components/schemas/AgentUsersInsight" + $ref: '#/components/schemas/AgentUsersInsight' agentsTimeSavedInsights: type: array items: - $ref: "#/components/schemas/AgentsTimeSavedInsight" + $ref: '#/components/schemas/AgentsTimeSavedInsight' description: Insights for agents time saved over the specified time period. dailyAgentRunsTimeseries: - $ref: "#/components/schemas/LabeledCountInfo" + $ref: '#/components/schemas/LabeledCountInfo' successfulRunsTimeseries: - $ref: "#/components/schemas/LabeledCountInfo" + $ref: '#/components/schemas/LabeledCountInfo' failedRunsTimeseries: - $ref: "#/components/schemas/LabeledCountInfo" + $ref: '#/components/schemas/LabeledCountInfo' pausedRunsTimeseries: - $ref: "#/components/schemas/LabeledCountInfo" + $ref: '#/components/schemas/LabeledCountInfo' upvotesTimeseries: - $ref: "#/components/schemas/LabeledCountInfo" + $ref: '#/components/schemas/LabeledCountInfo' downvotesTimeseries: - $ref: "#/components/schemas/LabeledCountInfo" + $ref: '#/components/schemas/LabeledCountInfo' McpInsightsResponse: allOf: - - $ref: "#/components/schemas/CurrentActiveUsers" + - $ref: '#/components/schemas/CurrentActiveUsers' - type: object properties: dailyActiveUsers: type: integer description: Number of current Daily Active Users. monthlyActiveUserTimeseries: - $ref: "#/components/schemas/LabeledCountInfo" + $ref: '#/components/schemas/LabeledCountInfo' weeklyActiveUserTimeseries: - $ref: "#/components/schemas/LabeledCountInfo" + $ref: '#/components/schemas/LabeledCountInfo' dailyActiveUserTimeseries: - $ref: "#/components/schemas/LabeledCountInfo" + $ref: '#/components/schemas/LabeledCountInfo' overallDailyActiveUserTimeseries: - $ref: "#/components/schemas/LabeledCountInfo" + $ref: '#/components/schemas/LabeledCountInfo' topHostApplicationsActiveUserTimeseries: type: array items: - $ref: "#/components/schemas/LabeledCountInfo" + $ref: '#/components/schemas/LabeledCountInfo' McpUserBreakdown: properties: person: - $ref: "#/components/schemas/Person" + $ref: '#/components/schemas/Person' totalCalls: type: integer description: Total number of MCP calls made by this user in the specified time period. @@ -10297,24 +11900,24 @@ components: usersBreakdown: type: array items: - $ref: "#/components/schemas/McpUserBreakdown" + $ref: '#/components/schemas/McpUserBreakdown' hostApplicationsBreakdown: type: array items: - $ref: "#/components/schemas/McpHostApplicationBreakdown" + $ref: '#/components/schemas/McpHostApplicationBreakdown' toolsBreakdown: type: array items: - $ref: "#/components/schemas/McpToolBreakdown" + $ref: '#/components/schemas/McpToolBreakdown' serversBreakdown: type: array items: - $ref: "#/components/schemas/McpServerBreakdown" + $ref: '#/components/schemas/McpServerBreakdown' InsightsResponse: properties: gleanAssist: + $ref: '#/components/schemas/GleanAssistInsightsResponse' deprecated: true - $ref: "#/components/schemas/GleanAssistInsightsResponse" x-glean-deprecated: id: 15850758-4d95-4d98-8d57-39c50663a796 introduced: "2026-02-05" @@ -10322,20 +11925,16 @@ components: 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" + $ref: '#/components/schemas/InsightsOverviewResponse' assistantResponse: - $ref: "#/components/schemas/AssistantInsightsResponse" + $ref: '#/components/schemas/AssistantInsightsResponse' agentsResponse: - $ref: "#/components/schemas/AgentsInsightsV2Response" + $ref: '#/components/schemas/AgentsInsightsV2Response' mcpResponse: - $ref: "#/components/schemas/McpInsightsResponse" + $ref: '#/components/schemas/McpInsightsResponse' mcpBreakdownResponse: - $ref: "#/components/schemas/McpBreakdownInsightsResponse" + $ref: '#/components/schemas/McpBreakdownInsightsResponse' MessagesRequest: - required: - - id - - idType - - datasource properties: idType: type: string @@ -10375,19 +11974,23 @@ components: 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: - description: The operator key that has an invalid value. type: string + description: The operator key that has an invalid value. value: - description: The invalid operator value. type: string + description: The invalid operator value. ErrorMessage: properties: source: - description: The datasource this message relates to. type: string + description: The datasource this message relates to. errorMessage: type: string ErrorInfo: @@ -10400,13 +12003,13 @@ components: 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" + $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" + $ref: '#/components/schemas/ErrorMessage' federatedSearchRateLimitError: type: boolean description: Indicates the federated search results could not be fetched due to rate limiting. @@ -10417,19 +12020,19 @@ components: 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" + $ref: '#/components/schemas/SessionInfo' results: type: array items: - $ref: "#/components/schemas/SearchResult" + $ref: '#/components/schemas/SearchResult' structuredResults: type: array items: - $ref: "#/components/schemas/StructuredResult" + $ref: '#/components/schemas/StructuredResult' generatedQnaResult: - $ref: "#/components/schemas/GeneratedQna" + $ref: '#/components/schemas/GeneratedQna' errorInfo: - $ref: "#/components/schemas/ErrorInfo" + $ref: '#/components/schemas/ErrorInfo' requestID: type: string description: A platform-generated request ID to correlate backend logs. @@ -10447,8 +12050,6 @@ components: format: int64 description: List of experiment ids for the corresponding request. SearchWarning: - required: - - warningType properties: warningType: type: string @@ -10472,6 +12073,8 @@ components: 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. + required: + - warningType SearchResponseMetadata: properties: rewrittenQuery: @@ -10487,16 +12090,16 @@ components: searchedQueryRanges: type: array items: - $ref: "#/components/schemas/TextRange" + $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" + $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" + $ref: '#/components/schemas/QuerySuggestionList' description: Other alternative queries that may provide better or more specific results than the original query. negatedTerms: type: array @@ -10510,7 +12113,7 @@ components: 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" + $ref: '#/components/schemas/SearchWarning' triggeredExpertDetection: type: boolean description: Whether the query triggered expert detection results in the People tab. @@ -10521,17 +12124,17 @@ components: properties: stringValue: type: string - example: engineering 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 - example: engineering description: An optional user-friendly label to display in place of the facet value. + example: engineering iconConfig: - $ref: "#/components/schemas/IconConfig" + $ref: '#/components/schemas/IconConfig' FacetBucket: properties: count: @@ -10540,14 +12143,14 @@ components: 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. + example: jira percentage: type: integer description: Estimated percentage of results in this facet. example: 5 value: - $ref: "#/components/schemas/FacetValue" + $ref: '#/components/schemas/FacetValue' FacetResult: properties: sourceName: @@ -10560,9 +12163,9 @@ components: example: SelectMultiple buckets: type: array - description: A list of unique buckets that exist within this result set. items: - $ref: "#/components/schemas/FacetBucket" + $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. @@ -10577,24 +12180,24 @@ components: 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" + $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" + - $ref: '#/components/schemas/ResultsResponse' + - $ref: '#/components/schemas/BackendExperimentsContext' - type: object properties: metadata: - $ref: "#/components/schemas/SearchResponseMetadata" + $ref: '#/components/schemas/SearchResponseMetadata' facetResults: type: array items: - $ref: "#/components/schemas/FacetResult" + $ref: '#/components/schemas/FacetResult' resultTabs: type: array items: - $ref: "#/components/schemas/ResultTab" + $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 @@ -10602,11 +12205,11 @@ components: type: string description: The unique IDs of the result tabs to which this response belongs. resultsDescription: - $ref: "#/components/schemas/ResultsDescription" + $ref: '#/components/schemas/ResultsDescription' rewrittenFacetFilters: type: array items: - $ref: "#/components/schemas/FacetFilter" + $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 @@ -10696,19 +12299,19 @@ components: - 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" + $ref: '#/components/schemas/SearchResponse' rootMessage: - $ref: "#/components/schemas/SearchResult" + $ref: '#/components/schemas/SearchResult' + required: + - hasMore EditPinRequest: allOf: - - $ref: "#/components/schemas/PinDocumentMutableProperties" + - $ref: '#/components/schemas/PinDocumentMutableProperties' - type: object properties: id: @@ -10722,19 +12325,19 @@ components: GetPinResponse: properties: pin: - $ref: "#/components/schemas/PinDocument" + $ref: '#/components/schemas/PinDocument' ListPinsResponse: - required: - - pins properties: pins: type: array items: - $ref: "#/components/schemas/PinDocument" + $ref: '#/components/schemas/PinDocument' description: List of pinned documents. + required: + - pins PinRequest: allOf: - - $ref: "#/components/schemas/PinDocumentMutableProperties" + - $ref: '#/components/schemas/PinDocumentMutableProperties' - type: object properties: documentId: @@ -10749,29 +12352,27 @@ components: properties: timestamp: type: string - description: The ISO 8601 timestamp associated with the client request. 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" + $ref: '#/components/schemas/SessionInfo' sourceDocument: - $ref: "#/components/schemas/Document" + $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. + 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: - required: - - query allOf: - - $ref: "#/components/schemas/ResultsRequest" + - $ref: '#/components/schemas/ResultsRequest' - type: object properties: query: @@ -10787,9 +12388,9 @@ components: 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" + $ref: '#/components/schemas/SearchRequestInputDetails' requestOptions: - $ref: "#/components/schemas/SearchRequestOptions" + $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. @@ -10797,6 +12398,8 @@ components: disableSpellcheck: type: boolean description: Whether or not to disable spellcheck. + required: + - query example: trackingToken: trackingToken query: vacation policy @@ -10819,7 +12422,7 @@ components: trackingToken: type: string sessionInfo: - $ref: "#/components/schemas/SessionInfo" + $ref: '#/components/schemas/SessionInfo' query: type: string description: Partially typed query. @@ -10834,7 +12437,6 @@ components: 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: @@ -10852,6 +12454,7 @@ components: - 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: | @@ -10859,9 +12462,9 @@ components: example: 10 authTokens: type: array - description: Auth tokens which may be used for federated results. items: - $ref: "#/components/schemas/AuthToken" + $ref: '#/components/schemas/AuthToken' + description: Auth tokens which may be used for federated results. example: trackingToken: trackingToken query: what is a que @@ -10874,8 +12477,6 @@ components: docType: type: string OperatorMetadata: - required: - - name properties: name: type: string @@ -10894,13 +12495,15 @@ components: scopes: type: array items: - $ref: "#/components/schemas/OperatorScope" + $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 @@ -10909,7 +12512,6 @@ components: 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 @@ -10921,14 +12523,13 @@ components: type: string description: The URL of the action. iconConfig: - $ref: "#/components/schemas/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: @@ -10937,10 +12538,9 @@ components: - 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: - required: - - result - - result_type properties: result: type: string @@ -10970,23 +12570,26 @@ components: type: number description: Higher indicates a more confident match. operatorMetadata: - $ref: "#/components/schemas/OperatorMetadata" + $ref: '#/components/schemas/OperatorMetadata' quicklink: - $ref: "#/components/schemas/Quicklink" + $ref: '#/components/schemas/Quicklink' document: - $ref: "#/components/schemas/Document" + $ref: '#/components/schemas/Document' url: type: string structuredResult: - $ref: "#/components/schemas/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" + $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 @@ -10997,7 +12600,6 @@ components: - datasource: confluence - objectType: page AutocompleteResultGroup: - description: A subsection of the results list from which distinct sections should be created. properties: startIndex: type: integer @@ -11008,27 +12610,28 @@ components: 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" + - $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" + $ref: '#/components/schemas/SessionInfo' results: type: array items: - $ref: "#/components/schemas/AutocompleteResult" + $ref: '#/components/schemas/AutocompleteResult' groups: type: array items: - $ref: "#/components/schemas/AutocompleteResultGroup" + $ref: '#/components/schemas/AutocompleteResultGroup' description: Subsections of the results list from which distinct sections should be created. errorInfo: - $ref: "#/components/schemas/ErrorInfo" + $ref: '#/components/schemas/ErrorInfo' backendTimeMillis: type: integer format: int64 @@ -11042,8 +12645,6 @@ components: 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 @@ -11065,10 +12666,10 @@ components: type: string description: Datasources for which content should be included. Empty is for all. chatZeroStateSuggestionOptions: - $ref: "#/components/schemas/ChatZeroStateSuggestionOptions" - FeedRequest: + $ref: '#/components/schemas/ChatZeroStateSuggestionOptions' required: - - refreshType + - resultSize + FeedRequest: properties: categories: type: array @@ -11118,13 +12719,15 @@ components: - OOO_CATCH_UP description: Categories of content requested. An allowlist gives flexibility to request content separately or together. requestOptions: - $ref: "#/components/schemas/FeedRequestOptions" + $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" + $ref: '#/components/schemas/SessionInfo' + required: + - refreshType DisplayableListFormat: properties: format: @@ -11134,15 +12737,12 @@ components: 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 + description: UI configurations for each item of the list ConferenceData: - required: - - provider - - uri properties: provider: type: string @@ -11158,14 +12758,16 @@ components: - NATIVE_CONFERENCE - LOCATION - DESCRIPTION + required: + - provider + - uri EventClassificationName: - description: The name for a generated classification of an event. type: string enum: - External Event + description: The name for a generated classification of an event. EventStrategyName: type: string - description: The name of method used to surface relevant data for a given calendar event. enum: - customerCard - news @@ -11176,17 +12778,17 @@ components: - relevantDocuments - chatFollowUps - conversations + description: The name of method used to surface relevant data for a given calendar event. EventClassification: - description: A generated classification of a given event. properties: name: - $ref: "#/components/schemas/EventClassificationName" + $ref: '#/components/schemas/EventClassificationName' strategies: type: array items: - $ref: "#/components/schemas/EventStrategyName" + $ref: '#/components/schemas/EventStrategyName' + description: A generated classification of a given event. StructuredLink: - description: The display configuration for a link. properties: name: type: string @@ -11195,47 +12797,45 @@ components: type: string description: The URL for the link. iconConfig: - $ref: "#/components/schemas/IconConfig" + $ref: '#/components/schemas/IconConfig' + description: The display configuration for a link. 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 + description: The header describing the generated content. text: - description: The content that has been generated. 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: - description: These are attachments that aren't natively present on the event, and have been smartly suggested. properties: strategyName: - $ref: "#/components/schemas/EventStrategyName" + $ref: '#/components/schemas/EventStrategyName' documents: type: array items: - $ref: "#/components/schemas/Document" + $ref: '#/components/schemas/Document' person: - $ref: "#/components/schemas/Person" + $ref: '#/components/schemas/Person' customer: - $ref: "#/components/schemas/Customer" + $ref: '#/components/schemas/Customer' externalLinks: - description: A list of links to external sources outside of Glean. type: array items: - $ref: "#/components/schemas/StructuredLink" + $ref: '#/components/schemas/StructuredLink' + description: A list of links to external sources outside of Glean. content: type: array items: - $ref: "#/components/schemas/GeneratedAttachmentContent" + $ref: '#/components/schemas/GeneratedAttachmentContent' + description: These are attachments that aren't natively present on the event, and have been smartly suggested. CalendarEvent: - required: - - id - - url allOf: - - $ref: "#/components/schemas/AnonymousEvent" + - $ref: '#/components/schemas/AnonymousEvent' - type: object properties: id: @@ -11245,12 +12845,12 @@ components: type: string description: A permalink for this calendar event attendees: - $ref: "#/components/schemas/CalendarAttendees" + $ref: '#/components/schemas/CalendarAttendees' location: type: string description: The location that this event is taking place at. conferenceData: - $ref: "#/components/schemas/ConferenceData" + $ref: '#/components/schemas/ConferenceData' description: type: string description: The HTML description of the event. @@ -11266,35 +12866,38 @@ components: classifications: type: array items: - $ref: "#/components/schemas/EventClassification" + $ref: '#/components/schemas/EventClassification' generatedAttachments: type: array items: - $ref: "#/components/schemas/GeneratedAttachment" + $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. - enum: - - CHANNEL - - MENTIONS - - TOPIC x-speakeasy-enum-descriptions: CHANNEL: A standard section for channel-based digests (e.g. from Slack, Teams). MENTIONS: A dedicated section that surfaces user mentions (actionable, informative, or all). TOPIC: A section driven by a generic topic, not tied to any specific channel or instance. UpdateType: type: string + 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 - enum: - - ACTIONABLE - - INFORMATIVE x-speakeasy-enum-descriptions: ACTIONABLE: Updates that require user attention or action INFORMATIVE: Updates that are purely informational @@ -11303,9 +12906,9 @@ components: properties: urls: type: array - description: List of URLs for similar updates that are grouped together and rendered as a single update. 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. @@ -11319,19 +12922,15 @@ components: type: string description: Brief summary or description of the update content. type: - $ref: "#/components/schemas/UpdateType" + $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" + $ref: '#/components/schemas/SectionType' displayName: type: string description: Human-readable name for the digest section. @@ -11352,8 +12951,12 @@ components: updates: type: array items: - $ref: "#/components/schemas/DigestUpdate" + $ref: '#/components/schemas/DigestUpdate' description: List of updates within this digest section. + required: + - id + - type + - updates Digest: type: object properties: @@ -11371,7 +12974,7 @@ components: sections: type: array items: - $ref: "#/components/schemas/DigestSection" + $ref: '#/components/schemas/DigestSection' description: Array of digest sections from which the podcast was created. ChatSuggestion: properties: @@ -11390,8 +12993,6 @@ components: type: string description: Document IDs that grounded the suggestion. PromptTemplateMutableProperties: - required: - - template properties: name: type: string @@ -11403,30 +13004,32 @@ components: type: string description: The Application Id the prompt template should be created under. Empty for default assistant. inclusions: - $ref: "#/components/schemas/ChatRestrictionFilters" + $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" + $ref: '#/components/schemas/UserRoleSpecification' + description: A list of added user roles for the Workflow. removedRoles: type: array - description: A list of removed user roles for the Workflow. items: - $ref: "#/components/schemas/UserRoleSpecification" + $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" + - $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" + $ref: '#/components/schemas/Person' createTimestamp: type: integer description: Server Unix timestamp of the creation time. @@ -11434,12 +13037,12 @@ components: type: integer description: Server Unix timestamp of the last update time. lastUpdatedBy: - $ref: "#/components/schemas/Person" + $ref: '#/components/schemas/Person' roles: type: array - description: A list of roles for this prompt template explicitly granted. items: - $ref: "#/components/schemas/UserRoleSpecification" + $ref: '#/components/schemas/UserRoleSpecification' + description: A list of roles for this prompt template explicitly granted. UgcType: enum: - AGENT_TYPE @@ -11466,34 +13069,34 @@ components: type: object properties: ugcType: - $ref: "#/components/schemas/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. + x-includeEmpty: true favoritedByUser: type: boolean - x-includeEmpty: true description: If the requesting user has favorited this object. + x-includeEmpty: true PromptTemplateResult: properties: promptTemplate: - $ref: "#/components/schemas/PromptTemplate" + $ref: '#/components/schemas/PromptTemplate' trackingToken: type: string description: An opaque token that represents this prompt template favoriteInfo: - $ref: "#/components/schemas/FavoriteInfo" + $ref: '#/components/schemas/FavoriteInfo' runCount: - $ref: "#/components/schemas/CountInfo" + $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" + $ref: '#/components/schemas/Person' timestamp: type: integer description: Unix timestamp of the activity (in seconds since epoch UTC). @@ -11516,10 +13119,8 @@ components: - VIEW description: The action for the activity aggregateVisitCount: - $ref: "#/components/schemas/CountInfo" + $ref: '#/components/schemas/CountInfo' FeedEntry: - required: - - title properties: entryId: type: string @@ -11528,16 +13129,16 @@ components: type: string description: Title for the result. Can be document title, event title and so on. thumbnail: - $ref: "#/components/schemas/Thumbnail" + $ref: '#/components/schemas/Thumbnail' createdBy: - $ref: "#/components/schemas/Person" + $ref: '#/components/schemas/Person' uiConfig: allOf: - - $ref: "#/components/schemas/DisplayableListFormat" + - $ref: '#/components/schemas/DisplayableListFormat' - type: object properties: additionalFlags: - $ref: "#/components/schemas/DisplayableListItemUIConfig" + $ref: '#/components/schemas/DisplayableListItemUIConfig' justificationType: type: string enum: @@ -11606,38 +13207,37 @@ components: type: string description: View URL for the entry if based on links that are not documents in Glean. document: - $ref: "#/components/schemas/Document" + $ref: '#/components/schemas/Document' event: - $ref: "#/components/schemas/CalendarEvent" + $ref: '#/components/schemas/CalendarEvent' announcement: - $ref: "#/components/schemas/Announcement" + $ref: '#/components/schemas/Announcement' digest: - $ref: "#/components/schemas/Digest" + $ref: '#/components/schemas/Digest' collection: - $ref: "#/components/schemas/Collection" + $ref: '#/components/schemas/Collection' collectionItem: - $ref: "#/components/schemas/CollectionItem" + $ref: '#/components/schemas/CollectionItem' person: - $ref: "#/components/schemas/Person" + $ref: '#/components/schemas/Person' app: - $ref: "#/components/schemas/AppResult" + $ref: '#/components/schemas/AppResult' chatSuggestion: - $ref: "#/components/schemas/ChatSuggestion" + $ref: '#/components/schemas/ChatSuggestion' promptTemplate: - $ref: "#/components/schemas/PromptTemplateResult" + $ref: '#/components/schemas/PromptTemplateResult' workflow: - $ref: "#/components/schemas/WorkflowResult" + $ref: '#/components/schemas/WorkflowResult' activities: type: array items: - $ref: "#/components/schemas/UserActivity" + $ref: '#/components/schemas/UserActivity' description: List of activity where each activity has user, action, timestamp. documentVisitorCount: - $ref: "#/components/schemas/CountInfo" - FeedResult: + $ref: '#/components/schemas/CountInfo' required: - - category - - primaryEntry + - title + FeedResult: properties: category: type: string @@ -11685,11 +13285,11 @@ components: - OOO_CATCH_UP description: Category of the result, one of the requested categories in incoming request. primaryEntry: - $ref: "#/components/schemas/FeedEntry" + $ref: '#/components/schemas/FeedEntry' secondaryEntries: type: array items: - $ref: "#/components/schemas/FeedEntry" + $ref: '#/components/schemas/FeedEntry' description: Secondary entries for the result e.g. suggested docs for the calendar, carousel. rank: type: integer @@ -11700,11 +13300,12 @@ components: - 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 + - category + - primaryEntry + FeedResponse: allOf: - - $ref: "#/components/schemas/BackendExperimentsContext" + - $ref: '#/components/schemas/BackendExperimentsContext' - type: object properties: trackingToken: @@ -11716,17 +13317,19 @@ components: results: type: array items: - $ref: "#/components/schemas/FeedResult" + $ref: '#/components/schemas/FeedResult' facetResults: type: object additionalProperties: type: array items: - $ref: "#/components/schemas/FacetResult" + $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: @@ -11740,30 +13343,30 @@ components: facetFilterSets: type: array items: - $ref: "#/components/schemas/FacetFilterSet" + $ref: '#/components/schemas/FacetFilterSet' description: A list of facet filter sets that will be OR'ed together. context: - $ref: "#/components/schemas/Document" + $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" + $ref: '#/components/schemas/SearchResultProminenceEnum' + description: The types of prominence wanted in results returned. Default is any type. RecommendationsRequest: allOf: - - $ref: "#/components/schemas/ResultsRequest" + - $ref: '#/components/schemas/ResultsRequest' - type: object properties: recommendationDocumentSpec: - $ref: "#/components/schemas/DocumentSpec" + $ref: '#/components/schemas/DocumentSpec' description: Retrieve recommendations for this document. Glean Document ID is preferred over URL. requestOptions: - $ref: "#/components/schemas/RecommendationsRequestOptions" + $ref: '#/components/schemas/RecommendationsRequestOptions' description: Options for adjusting the request for recommendations. RecommendationsResponse: allOf: - - $ref: "#/components/schemas/ResultsResponse" + - $ref: '#/components/schemas/ResultsResponse' SortOptions: type: object properties: @@ -11780,19 +13383,19 @@ components: filter: type: array items: - $ref: "#/components/schemas/FacetFilter" + $ref: '#/components/schemas/FacetFilter' sort: - description: Use EntitiesSortOrder enum for SortOptions.sortBy type: array items: - $ref: "#/components/schemas/SortOptions" + $ref: '#/components/schemas/SortOptions' + description: Use EntitiesSortOrder enum for SortOptions.sortBy entityType: type: string - default: PEOPLE enum: - PEOPLE - TEAMS - CUSTOM_ENTITIES + default: PEOPLE datasource: type: string description: The datasource associated with the entity type, most commonly used with CUSTOM_ENTITIES @@ -11800,7 +13403,6 @@ components: 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 @@ -11814,10 +13416,11 @@ components: - LAST_EXTENSION_USE - MANAGEMENT_DETAILS - UNPROCESSED_TEAMS + description: List of entity fields to return (that aren't returned by default) pageSize: type: integer - example: 100 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. @@ -11826,20 +13429,19 @@ components: description: A string denoting the search surface from which the endpoint is called. requestType: type: string - default: STANDARD + 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. - enum: - - STANDARD - - FULL_DIRECTORY x-speakeasy-enum-descriptions: STANDARD: Used by default for all requests and satisfies all standard use cases for list requests. Limited to 10000 entities. FULL_DIRECTORY: Used exclusively to return a comprehensive list of all people entities in the organization, typically for audit like purposes. The recommended approach is to sort by FIRST_NAME or LAST_NAME, and use pagination for large organizations. EntitiesSortOrder: type: string - description: Different ways of sorting entities enum: - ENTITY_NAME - FIRST_NAME @@ -11848,25 +13450,26 @@ components: - START_DATE - TEAM_SIZE - RELEVANCE + description: Different ways of sorting entities ListEntitiesResponse: type: object properties: results: type: array items: - $ref: "#/components/schemas/Person" + $ref: '#/components/schemas/Person' teamResults: type: array items: - $ref: "#/components/schemas/Team" + $ref: '#/components/schemas/Team' customEntityResults: type: array items: - $ref: "#/components/schemas/CustomEntity" + $ref: '#/components/schemas/CustomEntity' facetResults: type: array items: - $ref: "#/components/schemas/FacetResult" + $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. @@ -11878,14 +13481,14 @@ components: 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" + $ref: '#/components/schemas/EntitiesSortOrder' + description: Sort options from EntitiesSortOrder supported for this response. Default is empty list. customFacetNames: type: array - description: list of Person attributes that are custom setup by deployment items: type: string + description: list of Person attributes that are custom setup by deployment PeopleRequest: type: object properties: @@ -11903,7 +13506,6 @@ components: 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 @@ -11918,17 +13520,18 @@ components: - MANAGEMENT_DETAILS - PEOPLE_PROFILE_SETTINGS - PEOPLE_WITHOUT_MANAGER + description: List of PersonMetadata fields to return (that aren't returned by default) includeTypes: - description: The types of people entities to include in the response in addition to those returned by default. - x-enumDescriptions: - PEOPLE_WITHOUT_MANAGER: Returns all people without a manager apart from the requested IDs. - INVALID_ENTITIES: Includes invalid entities in the response if any of the requested IDs are invalid. type: array items: 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. @@ -11944,12 +13547,12 @@ components: results: type: array items: - $ref: "#/components/schemas/Person" + $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" + $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 @@ -11957,11 +13560,11 @@ components: type: string description: A list of IDs that could not be found. CreateShortcutRequest: - required: - - data properties: data: - $ref: "#/components/schemas/ShortcutMutableProperties" + $ref: '#/components/schemas/ShortcutMutableProperties' + required: + - data ShortcutError: properties: errorType: @@ -11974,44 +13577,42 @@ components: CreateShortcutResponse: properties: shortcut: - $ref: "#/components/schemas/Shortcut" + $ref: '#/components/schemas/Shortcut' error: - $ref: "#/components/schemas/ShortcutError" + $ref: '#/components/schemas/ShortcutError' DeleteShortcutRequest: allOf: - - $ref: "#/components/schemas/UserGeneratedContentId" + - $ref: '#/components/schemas/UserGeneratedContentId' - type: object required: - id GetShortcutRequest: oneOf: - - $ref: "#/components/schemas/UserGeneratedContentId" + - $ref: '#/components/schemas/UserGeneratedContentId' - type: object - required: - - alias 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" + $ref: '#/components/schemas/Shortcut' description: Shortcut given the input alias with any provided arguments substituted into the destination URL. error: - $ref: "#/components/schemas/ShortcutError" + $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 + description: Array of fields/data to be included in response that are not included by default pageSize: type: integer example: 10 @@ -12021,14 +13622,16 @@ components: filters: type: array items: - $ref: "#/components/schemas/FacetFilter" + $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" + $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: @@ -12039,44 +13642,41 @@ components: totalItemCount: type: integer ListShortcutsPaginatedResponse: - required: - - shortcuts - - meta properties: shortcuts: type: array items: - $ref: "#/components/schemas/Shortcut" + $ref: '#/components/schemas/Shortcut' description: List of all shortcuts accessible to the user facetResults: type: array items: - $ref: "#/components/schemas/FacetResult" + $ref: '#/components/schemas/FacetResult' meta: - $ref: "#/components/schemas/ShortcutsPaginationMetadata" + $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" + - $ref: '#/components/schemas/UserGeneratedContentId' + - $ref: '#/components/schemas/ShortcutMutableProperties' - type: object required: - id UpdateShortcutResponse: properties: shortcut: - $ref: "#/components/schemas/Shortcut" + $ref: '#/components/schemas/Shortcut' error: - $ref: "#/components/schemas/ShortcutError" + $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 + description: The ISO 8601 timestamp associated with the client request. query: type: string description: Optional query that the summary should be about @@ -12086,11 +13686,14 @@ components: documentSpecs: type: array items: - $ref: "#/components/schemas/DocumentSpec" + $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: @@ -12108,13 +13711,11 @@ components: message: type: string summary: - $ref: "#/components/schemas/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 @@ -12128,16 +13729,16 @@ components: 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" + $ref: '#/components/schemas/Verification' description: List of document infos that include verification related information for them. VerifyRequest: - required: - - documentId properties: documentId: type: string @@ -12149,18 +13750,20 @@ components: - DEPRECATE - UNVERIFY description: The verification action requested. + required: + - documentId ToolParameter: type: object properties: type: type: string - description: Parameter type (string, number, boolean, object, array) enum: - string - number - boolean - object - array + description: Parameter type (string, number, boolean, object, array) name: type: string description: The name of the parameter @@ -12172,27 +13775,27 @@ components: 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 + 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. - $ref: "#/components/schemas/ToolParameter" properties: type: object - description: When type is 'object', this describes the structure of the object. additionalProperties: - $ref: "#/components/schemas/ToolParameter" + $ref: '#/components/schemas/ToolParameter' + description: When type is 'object', this describes the structure of the object. Tool: type: object properties: type: type: string - description: Type of tool (READ, WRITE) enum: - READ - WRITE + description: Type of tool (READ, WRITE) name: type: string description: Unique identifier for the tool @@ -12204,21 +13807,18 @@ components: 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" + $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" + $ref: '#/components/schemas/Tool' ToolsCallParameter: type: object - required: - - name - - value properties: name: type: string @@ -12228,91 +13828,94 @@ components: 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" + $ref: '#/components/schemas/ToolsCallParameter' + description: The value of the parameter (for array types) properties: type: object - description: The value of the parameter (for object types) additionalProperties: - $ref: "#/components/schemas/ToolsCallParameter" - ToolsCallRequest: - type: object + $ref: '#/components/schemas/ToolsCallParameter' + description: The value of the parameter (for object types) required: - name - - parameters + - value + ToolsCallRequest: + type: object 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" + $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: - additionalProperties: true 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. - 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" + $ref: '#/components/schemas/ActionAuthType' + required: + - authenticated + - authType ActionPackAuthStatusResponse: type: object - required: - - actionPack properties: actionPack: - $ref: "#/components/schemas/ActionPackAuthStatus" + $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 - 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. + required: + - returnUrl 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. + required: + - redirectUrl IndexDocumentRequest: type: object properties: @@ -14924,6 +16527,97 @@ components: 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" + 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 @@ -14962,43 +16656,17 @@ components: schema: type: string example: o365sharepoint_abc123 - responses: - SuccessResponse: - description: OK - content: - application/json: - schema: - $ref: '#/components/schemas/SuccessResponse' - BadRequestError: - description: Bad Request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorInfoResponse' - UnauthorizedError: - description: Not Authorized - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorInfoResponse' - NotFoundError: - description: Not Found - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorInfoResponse' - TooManyRequestsError: - description: Too Many Requests - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorInfoResponse' - InternalServerError: - description: Internal Server Error - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorInfoResponse' +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: @@ -15028,14 +16696,3 @@ x-tagGroups: - Authentication - Insights - User -tags: - - name: Datasources - description: Manage datasources. - - name: Documents - description: Index documents from a datasource. - - name: People - description: Index employee people data. - - name: Permissions - description: Manage users, groups and membership. - - name: Authentication - description: Manage indexing API tokens. diff --git a/source_specs/platform.yaml b/source_specs/platform.yaml new file mode 100644 index 00000000..59400a02 --- /dev/null +++ b/source_specs/platform.yaml @@ -0,0 +1,1678 @@ +openapi: 3.0.0 +info: + version: '2026-04-01' + title: Glean Platform API + x-source-commit-sha: 2425f68d5b782d8d29908367e47216642f338198 +servers: + - url: https://{domain}-be.glean.com/api + variables: + domain: + default: domain + description: Backend subdomain for the API (e.g. mycompany or be4f5226 for new customers) +security: + - ApiToken: [] +paths: + /documents/batch: + post: + tags: + - Documents + summary: Retrieve documents + description: | + Retrieve details for a batch of documents by URL, Glean document ID, or user-generated content reference. The response preserves request order and reports per-document lookup failures alongside successful results. + operationId: platform-documents-batch + x-visibility: Public + x-glean-sdk: + group: platform.documents + method: batch + x-glean-experimental: + id: 9eb7c7c2-9807-4e64-bc53-7b10aeff813f + introduced: '2026-06-02' + x-codegen-request-body-name: payload + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/DocumentsBatchRequest' + responses: + '200': + description: Successful batch retrieval. + content: + application/json: + schema: + $ref: '#/components/schemas/DocumentsBatchResponse' + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '408': + $ref: '#/components/responses/RequestTimeout' + '429': + $ref: '#/components/responses/TooManyRequests' + '500': + $ref: '#/components/responses/InternalServerError' + '503': + $ref: '#/components/responses/ServiceUnavailable' + /documents/{id}/permissions: + get: + tags: + - Documents + summary: Retrieve document permissions + description: | + Retrieve whether a document is visible to everyone and the email addresses of users who have access to it. + operationId: platform-documents-permissions + x-visibility: Public + x-glean-sdk: + group: platform.documents + method: getPermissions + x-glean-experimental: + id: 45684a5a-b8c0-4c2c-b022-50e2583666ff + introduced: '2026-06-03' + parameters: + - name: id + in: path + required: true + description: Glean document ID. + schema: + type: string + minLength: 1 + responses: + '200': + description: Successful document permissions retrieval. + content: + application/json: + schema: + $ref: '#/components/schemas/DocumentPermissionsResponse' + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '408': + $ref: '#/components/responses/RequestTimeout' + '429': + $ref: '#/components/responses/TooManyRequests' + '500': + $ref: '#/components/responses/InternalServerError' + '503': + $ref: '#/components/responses/ServiceUnavailable' + /people/search: + post: + tags: + - People + summary: Search people + description: | + Retrieve people by Glean person ID or email address. When no identifiers are provided, the authenticated user's profile is returned. + operationId: platform-people-search + x-visibility: Public + x-glean-sdk: + group: platform.people + method: search + x-glean-experimental: + id: 51692e94-d9ff-4e5b-b5b5-4b78c4a9879a + introduced: '2026-05-18' + x-codegen-request-body-name: payload + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/PeopleSearchRequest' + responses: + '200': + description: Successful people response. + content: + application/json: + schema: + $ref: '#/components/schemas/PeopleSearchResponse' + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '408': + $ref: '#/components/responses/RequestTimeout' + '429': + $ref: '#/components/responses/TooManyRequests' + '500': + $ref: '#/components/responses/InternalServerError' + '503': + $ref: '#/components/responses/ServiceUnavailable' + /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-sdk: + group: platform.agents + method: search + 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/AgentsSearchRequest' + responses: + '200': + description: Successful response. + content: + application/json: + schema: + $ref: '#/components/schemas/AgentsSearchResponse' + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '408': + $ref: '#/components/responses/RequestTimeout' + '429': + $ref: '#/components/responses/TooManyRequests' + '500': + $ref: '#/components/responses/InternalServerError' + '503': + $ref: '#/components/responses/ServiceUnavailable' + /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-sdk: + group: platform.agents + method: get + 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/AgentGetResponse' + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '408': + $ref: '#/components/responses/RequestTimeout' + '429': + $ref: '#/components/responses/TooManyRequests' + '500': + $ref: '#/components/responses/InternalServerError' + '503': + $ref: '#/components/responses/ServiceUnavailable' + /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-sdk: + group: platform.agents + method: getSchemas + 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/AgentSchemasResponse' + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '408': + $ref: '#/components/responses/RequestTimeout' + '429': + $ref: '#/components/responses/TooManyRequests' + '500': + $ref: '#/components/responses/InternalServerError' + '503': + $ref: '#/components/responses/ServiceUnavailable' + /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-sdk: + group: platform.agents + method: createRun + 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/AgentRunCreateRequest' + responses: + '200': + description: Successful response. + content: + application/json: + schema: + $ref: '#/components/schemas/AgentRunWaitResponse' + 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/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '408': + $ref: '#/components/responses/RequestTimeout' + '409': + $ref: '#/components/responses/Conflict' + '429': + $ref: '#/components/responses/TooManyRequests' + '500': + $ref: '#/components/responses/InternalServerError' + '503': + $ref: '#/components/responses/ServiceUnavailable' + /tools: + get: + tags: + - Tools + summary: List tools + description: | + List tools available to the authenticated user, optionally filtered by tool name. + operationId: platform-tools-list + x-visibility: Public + x-glean-sdk: + group: platform.tools + method: list + x-glean-experimental: + id: 3cb43a04-ad52-4c25-be62-3ce1daffd513 + introduced: '2026-05-06' + parameters: + - in: query + name: tool_names + description: Optional comma-delimited list of tool names to return. + required: false + style: form + explode: false + schema: + type: array + items: + type: string + responses: + '200': + description: Successful response. + content: + application/json: + schema: + $ref: '#/components/schemas/ToolsListResponse' + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '408': + $ref: '#/components/responses/RequestTimeout' + '429': + $ref: '#/components/responses/TooManyRequests' + '500': + $ref: '#/components/responses/InternalServerError' + '503': + $ref: '#/components/responses/ServiceUnavailable' + /tools/call: + post: + tags: + - Tools + summary: Call tool + description: | + Execute a tool available to the authenticated user with the provided parameters. + operationId: platform-tools-call + x-visibility: Public + x-glean-sdk: + group: platform.tools + method: call + x-glean-experimental: + id: 9ea7c149-7d5b-4c62-860d-afb56481069a + introduced: '2026-05-08' + x-codegen-request-body-name: payload + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/ToolsCallRequest' + responses: + '200': + description: Successful response. + content: + application/json: + schema: + $ref: '#/components/schemas/ToolsCallResponse' + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '408': + $ref: '#/components/responses/RequestTimeout' + '429': + $ref: '#/components/responses/TooManyRequests' + '500': + $ref: '#/components/responses/InternalServerError' + '503': + $ref: '#/components/responses/ServiceUnavailable' + /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-sdk: + group: platform.search + method: query + 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/SearchRequest' + responses: + '200': + description: Successful search. + content: + application/json: + schema: + $ref: '#/components/schemas/SearchResponse' + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '408': + $ref: '#/components/responses/RequestTimeout' + '429': + $ref: '#/components/responses/TooManyRequests' + '500': + $ref: '#/components/responses/InternalServerError' + '503': + $ref: '#/components/responses/ServiceUnavailable' + /summarize: + post: + tags: + - Summarize + summary: Summarize documents + description: | + Generate an AI summary of one or more documents. Supply documents by URL, Glean document ID, or user-generated content reference. + operationId: platform-summarize + x-visibility: Public + x-glean-sdk: + group: platform.summarize + method: create + x-glean-experimental: + id: 4d2f8b2e-7c9d-4f4f-9b1d-4d2f8b2e7c9d + introduced: '2026-05-27' + x-codegen-request-body-name: payload + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/SummarizeRequest' + responses: + '200': + description: Successful summary. + content: + application/json: + schema: + $ref: '#/components/schemas/SummarizeResponse' + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '408': + $ref: '#/components/responses/RequestTimeout' + '429': + $ref: '#/components/responses/TooManyRequests' + '500': + $ref: '#/components/responses/InternalServerError' + '503': + $ref: '#/components/responses/ServiceUnavailable' +components: + securitySchemes: + ApiToken: + type: http + scheme: bearer + description: | + Glean API token. Obtain via Admin Console -> Platform -> API Tokens, or via OAuth 2.0 client credentials flow. + schemas: + UgcType: + type: string + enum: + - ANNOUNCEMENTS + - ANSWERS + - COLLECTIONS + - SHORTCUTS + description: Type of user-generated content. + DocumentSpec: + type: object + description: | + Reference to a document. Exactly one of `url`, `id`, or `content_id` with `ugc_type` must be provided. + oneOf: + - type: object + additionalProperties: false + required: + - url + properties: + url: + type: string + description: URL of the document. + - type: object + additionalProperties: false + required: + - id + properties: + id: + type: string + description: Glean document ID. + - type: object + additionalProperties: false + required: + - content_id + - ugc_type + properties: + content_id: + type: integer + format: int32 + description: Numeric ID of the user-generated content item. + ugc_type: + $ref: '#/components/schemas/UgcType' + doc_type: + type: string + description: Specific subtype of the user-generated content item. + DocumentIncludeField: + type: string + enum: + - LAST_VIEWED_AT + - VISITORS_COUNT + - RECENT_SHARES + - DOCUMENT_CONTENT + - CUSTOM_METADATA + description: Optional fields that can be included in returned documents. + DocumentsBatchRequest: + type: object + additionalProperties: false + required: + - document_specs + properties: + document_specs: + type: array + minItems: 1 + items: + $ref: '#/components/schemas/DocumentSpec' + description: Documents to retrieve. + include_fields: + type: array + items: + $ref: '#/components/schemas/DocumentIncludeField' + description: Additional document fields to include in the response. + DocumentContent: + type: object + properties: + full_text_list: + type: array + items: + type: string + description: Plaintext content of the document. + DocumentReference: + type: object + properties: + id: + type: string + description: Glean document ID. + title: + type: string + description: Title of the referenced document. + url: + type: string + description: Permalink for the referenced document. + CountInfo: + type: object + properties: + count: + type: integer + format: int64 + period: + type: string + description: Human-readable period represented by this count. + from: + type: string + format: date-time + to: + type: string + format: date-time + Person: + type: object + properties: + name: + type: string + email: + type: string + obfuscated_id: + type: string + Share: + type: object + properties: + num_days_ago: + type: integer + description: Number of days since the share occurred. + sharer: + $ref: '#/components/schemas/Person' + sharing_document: + $ref: '#/components/schemas/DocumentReference' + DocumentInteractions: + type: object + properties: + visitor_count: + $ref: '#/components/schemas/CountInfo' + shares: + type: array + items: + $ref: '#/components/schemas/Share' + ViewerInfo: + type: object + properties: + last_viewed_time: + type: string + format: date-time + CustomDataValue: + type: object + properties: + string_value: + type: string + string_list_value: + type: array + items: + type: string + DocumentMetadata: + type: object + properties: + datasource: + type: string + datasource_instance: + type: string + description: Datasource instance from which the document was extracted. + object_type: + type: string + description: Datasource-specific object type. + container: + type: string + description: Name of the higher-level container. + container_id: + type: string + description: Glean document ID of the container. + parent_id: + type: string + description: Glean document ID of the direct parent. + mime_type: + type: string + interactions: + $ref: '#/components/schemas/DocumentInteractions' + viewer_info: + $ref: '#/components/schemas/ViewerInfo' + custom_data: + type: object + additionalProperties: + $ref: '#/components/schemas/CustomDataValue' + description: Custom metadata requested via `CUSTOM_METADATA`. + DocumentSection: + type: object + properties: + title: + type: string + description: Section title. + url: + type: string + description: Permalink for the section. + Document: + type: object + required: + - id + properties: + id: + type: string + description: Glean document ID. + datasource: + type: string + description: App or repository type from which the document was extracted. + connector_type: + type: string + description: Connector type for the source system. + document_type: + type: string + description: Datasource-specific type of the document. + title: + type: string + description: Title of the document. + url: + type: string + description: Permalink for the document. + content: + $ref: '#/components/schemas/DocumentContent' + container_document: + $ref: '#/components/schemas/DocumentReference' + parent_document: + $ref: '#/components/schemas/DocumentReference' + metadata: + $ref: '#/components/schemas/DocumentMetadata' + sections: + type: array + items: + $ref: '#/components/schemas/DocumentSection' + description: Content subsections in the document. + DocumentBatchErrorCode: + type: string + enum: + - NOT_FOUND_OR_NOT_ALLOWED + - INVALID_DOCUMENT_SPEC + - ANNOTATION_ERROR + - DOCUMENT_GENERATION_ERROR + description: Stable machine-readable item-level failure code. + DocumentBatchError: + type: object + required: + - code + - message + properties: + code: + $ref: '#/components/schemas/DocumentBatchErrorCode' + message: + type: string + description: Human-readable explanation for the item-level failure. + DocumentBatchResult: + description: | + One document retrieval result. Successful results include `document`; lookup failures include `error`. + oneOf: + - type: object + additionalProperties: false + required: + - status + - document + properties: + status: + type: string + enum: + - FOUND + document: + $ref: '#/components/schemas/Document' + - type: object + additionalProperties: false + required: + - status + - error + properties: + status: + type: string + enum: + - NOT_FOUND + - INVALID + - ERROR + error: + $ref: '#/components/schemas/DocumentBatchError' + DocumentsBatchResponse: + type: object + required: + - request_id + - results + properties: + request_id: + type: string + description: Server-generated identifier for this response, useful for support. + results: + type: array + items: + $ref: '#/components/schemas/DocumentBatchResult' + description: Results in the same order as `document_specs`. + ProblemDetail: + 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://developer.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: + type: string + description: Stable machine-readable error code. + enum: + - invalid_request + - missing_required_field + - invalid_parameter + - invalid_cursor + - expired_cursor + - invalid_filter + - authentication_required + - token_expired + - insufficient_permissions + - resource_not_found + - method_not_allowed + - request_timeout + - conflict + - gone + - unprocessable_query + - rate_limit_exceeded + - internal_error + - service_unavailable + example: invalid_cursor + documentation_url: + type: string + format: uri + description: Direct URL to documentation for this error code. + example: https://developer.glean.com/errors/invalid-cursor + request_id: + type: string + description: Platform-generated request ID for support correlation. + example: req_7f8a9b0c1d2e + DocumentPermissionsResponse: + type: object + required: + - request_id + - allowed_user_emails + - visible_to_all + properties: + request_id: + type: string + description: Server-generated identifier for this response, useful for support. + allowed_user_emails: + type: array + items: + type: string + description: Email addresses for users who can access the document. + visible_to_all: + type: boolean + description: Whether the document is visible to everyone. + PeopleIncludeField: + type: string + description: Optional profile fields to request. + enum: + - PEOPLE_DETAILS + - MANAGEMENT_DETAILS + PeopleIncludeType: + type: string + description: Optional people result types to request. + x-enumDescriptions: + INVALID_ENTITIES: Return invalid requested people that can be loaded in the people array with is_valid set to false. Identifiers that cannot be loaded are returned in not_found. + enum: + - INVALID_ENTITIES + PeopleSearchRequest: + type: object + additionalProperties: false + properties: + person_ids: + type: array + description: Glean person IDs to retrieve. + items: + type: string + example: + - abc123 + - abc456 + email_ids: + type: array + description: Email addresses to retrieve. + items: + type: string + example: + - jane.smith@example.com + include_fields: + type: array + description: Optional profile fields to include beyond the default profile. + items: + $ref: '#/components/schemas/PeopleIncludeField' + include_types: + type: array + description: Optional non-default people result types to include. + items: + $ref: '#/components/schemas/PeopleIncludeType' + PersonType: + type: string + description: Person employment status or account type. + enum: + - FULL_TIME + - CONTRACTOR + - NON_EMPLOYEE + - FORMER_EMPLOYEE + Person-2: + type: object + required: + - id + - is_valid + - name + properties: + id: + type: string + description: Opaque Glean person ID. + is_valid: + type: boolean + description: Whether this is a valid person record. Invalid people are returned only when requested with include_types. + name: + type: string + description: Display name. + type: + $ref: '#/components/schemas/PersonType' + email: + type: string + format: email + description: Primary email address. + title: + type: string + description: Job title. + department: + type: string + description: Department or organizational unit. + location: + type: string + description: User-facing location. + photo_url: + type: string + format: uri + description: Avatar URL. + manager_id: + type: string + description: Opaque Glean person ID for the person's manager. + manager_name: + type: string + description: Display name for the person's manager. + PeopleSearchResponse: + type: object + required: + - people + - not_found + - request_id + properties: + people: + type: array + description: People matching the requested identifiers. + items: + $ref: '#/components/schemas/Person-2' + not_found: + type: array + description: Identifiers that could not be resolved. + items: + type: string + request_id: + type: string + description: Platform-generated request ID for support correlation. + AgentsSearchRequest: + 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 + AgentCapabilities: + 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. + Agent: + 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/AgentCapabilities' + AgentsSearchResponse: + type: object + required: + - agents + - request_id + properties: + agents: + type: array + description: Agents matching the search request. + items: + $ref: '#/components/schemas/Agent' + request_id: + type: string + description: Platform-generated request ID for support correlation. + AgentGetResponse: + type: object + required: + - agent + - request_id + properties: + agent: + $ref: '#/components/schemas/Agent' + request_id: + type: string + description: Platform-generated request ID for support correlation. + ActionSummary: + 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. + AgentSchemasResponse: + 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/ActionSummary' + request_id: + type: string + description: Platform-generated request ID for support correlation. + MessageRole: + type: string + description: Role of the message author. + example: USER + enum: + - USER + - GLEAN_AI + ContentType: + type: string + enum: + - text + MessageTextBlock: + type: object + required: + - text + - type + properties: + text: + type: string + description: Text content. + type: + $ref: '#/components/schemas/ContentType' + Message: + type: object + required: + - role + - content + properties: + role: + $ref: '#/components/schemas/MessageRole' + content: + type: array + description: Content blocks in the message. + items: + $ref: '#/components/schemas/MessageTextBlock' + AgentRunCreateRequest: + 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/Message' + 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 + AgentRunCreate: + 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/Message' + metadata: + type: object + description: Metadata passed to the agent. + additionalProperties: true + AgentExecutionStatus: + type: string + description: Status of the agent run. + enum: + - error + - success + AgentRun: + allOf: + - $ref: '#/components/schemas/AgentRunCreate' + - type: object + required: + - status + properties: + status: + $ref: '#/components/schemas/AgentExecutionStatus' + AgentRunWaitResponse: + type: object + required: + - request_id + properties: + run: + $ref: '#/components/schemas/AgentRun' + messages: + type: array + description: Messages returned by the completed run. + items: + $ref: '#/components/schemas/Message' + request_id: + type: string + description: Platform-generated request ID for support correlation. + ToolParameter: + type: object + properties: + type: + type: string + description: Parameter type. + enum: + - string + - number + - boolean + - object + - array + name: + type: string + description: Parameter name. + description: + type: string + description: Parameter description. + is_required: + type: boolean + description: Whether the parameter is required. + possible_values: + type: array + description: Possible primitive values for the parameter. + items: + type: string + items: + $ref: '#/components/schemas/ToolParameter' + properties: + type: object + description: Object properties for object parameters. + additionalProperties: + $ref: '#/components/schemas/ToolParameter' + Tool: + type: object + required: + - type + - name + - display_name + - description + - parameters + properties: + type: + type: string + description: Type of tool. + enum: + - READ + - WRITE + name: + type: string + description: Unique identifier for the tool. + display_name: + type: string + description: Human-readable name. + description: + type: string + description: LLM-friendly description of the tool. + parameters: + type: object + description: Parameters supported by the tool. + additionalProperties: + $ref: '#/components/schemas/ToolParameter' + ToolsListResponse: + type: object + required: + - tools + - request_id + properties: + tools: + type: array + description: List of tools available to the user. + items: + $ref: '#/components/schemas/Tool' + request_id: + type: string + description: Platform-generated request ID for support correlation. + ToolsCallRequest: + type: object + additionalProperties: false + required: + - name + - parameters + properties: + name: + type: string + minLength: 1 + description: Name of the tool to execute. + parameters: + type: object + description: Tool parameter values keyed by parameter name. + additionalProperties: true + ToolsCallResponse: + type: object + required: + - raw_response + - request_id + properties: + raw_response: + type: object + description: Raw response returned by the tool. + additionalProperties: true + request_id: + type: string + description: Platform-generated request ID for support correlation. + Filter: + type: object + required: + - field + - values + description: | + A single filter criterion. Multiple values within a filter are OR'd. 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 operator 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 + exclude: + type: boolean + default: false + description: Excludes results matching any of the specified values when true. + TimeRange: + 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. + SearchRequest: + type: object + additionalProperties: false + required: + - query + 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`. + example: quarterly planning 2026 + 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. + example: + - confluence + - google_drive + filters: + type: array + items: + $ref: '#/components/schemas/Filter' + description: | + Structured filters applied to search results. Multiple values within a filter are OR'd. Multiple filters are AND'd together. 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/TimeRange' + Person-3: + type: object + nullable: true + description: A person associated with the result. + properties: + name: + type: string + description: Display name. + example: Jane Smith + email: + type: string + format: email + description: Email address. + example: jane.smith@company.com + Result: + 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 + document_type: + type: string + nullable: true + description: The document type within the datasource. + example: page + creator: + $ref: '#/components/schemas/Person-3' + owner: + $ref: '#/components/schemas/Person-3' + 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. + SearchResponse: + type: object + required: + - results + - has_more + - next_cursor + - request_id + properties: + results: + type: array + items: + $ref: '#/components/schemas/Result' + 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. + DocumentSpec-2: + type: object + description: | + Reference to a document to summarize. Exactly one of `url`, `id`, or a UGC pair (`content_id` + `ugc_type` for ANNOUNCEMENTS/ANSWERS/COLLECTIONS) must be provided. + oneOf: + - type: object + additionalProperties: false + required: + - url + properties: + url: + type: string + description: Public URL of the document. + - type: object + additionalProperties: false + required: + - id + properties: + id: + type: string + description: Glean document ID. + - type: object + additionalProperties: false + required: + - content_id + - ugc_type + properties: + content_id: + type: integer + format: int32 + description: Numeric ID of the user-generated content item. + ugc_type: + type: string + enum: + - ANNOUNCEMENTS + - ANSWERS + - COLLECTIONS + description: Datasource type of the user-generated content item. + SummarizeRequest: + type: object + additionalProperties: false + required: + - document_specs + properties: + document_specs: + type: array + minItems: 1 + items: + $ref: '#/components/schemas/DocumentSpec-2' + description: Specifications of the documents to summarize. + preferred_summary_length: + type: integer + minimum: 1 + default: 1000 + description: | + Preferred summary length in characters. The model treats this as a target, not a strict bound. + tracking_token: + type: string + description: | + Opaque token from a previous response. Pass it back when reporting feedback to associate the feedback with this summary. + Summary: + type: object + properties: + text: + type: string + description: The generated summary text. + follow_up_prompts: + type: array + items: + type: string + description: Suggested follow-up prompts derived from the summarized documents. + SummarizeResponse: + type: object + properties: + request_id: + type: string + description: Server-generated identifier for this response, useful for support. + summary: + $ref: '#/components/schemas/Summary' + tracking_token: + type: string + description: | + Opaque token representing this summary. Pass it back to the feedback endpoint to associate feedback with this summary. + responses: + BadRequest: + description: Invalid request (malformed JSON, invalid parameter values, unknown fields). + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetail' + Unauthorized: + description: Missing or invalid authentication token. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetail' + Forbidden: + description: Token valid but lacks permission for the requested operation. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetail' + NotFound: + description: Resource not found. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetail' + RequestTimeout: + description: Backend did not respond within the timeout window. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetail' + TooManyRequests: + description: Rate limit exceeded. Includes Retry-After header. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetail' + InternalServerError: + description: Unexpected server-side failure. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetail' + ServiceUnavailable: + description: Backend temporarily unavailable. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetail' + Conflict: + description: Request conflicts with current state of the resource. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetail' +x-tagGroups: + - name: AI + tags: + - Agents + - Summarize + - name: Data Retrieval + tags: + - Documents + - People + - Search + - Tools diff --git a/src/source-spec-transformer.js b/src/source-spec-transformer.js index e8dbdbbd..38f8d260 100644 --- a/src/source-spec-transformer.js +++ b/src/source-spec-transformer.js @@ -70,6 +70,11 @@ const httpMethods = new Set([ const platformSdkGroupPattern = /^platform(\.[a-z][a-z0-9]*)+$/; const platformSdkMethodPattern = /^[a-z][A-Za-z0-9]*$/; +const platformComponentNameOverrides = { + 'Person-2': 'PeopleSearchPerson', + 'Person-3': 'SearchResultPerson', + 'DocumentSpec-2': 'SummarizeDocumentSpec', +}; function rewriteRefs(obj, refMap) { if (!obj || typeof obj !== 'object') return; @@ -85,8 +90,16 @@ function rewriteRefs(obj, refMap) { }); } +function transformPlatformTagGroups(spec) { + delete spec['x-tagGroups']; +} + function platformSchemaName(name) { - return name.startsWith('Platform') ? name : `Platform${name}`; + const overriddenName = platformComponentNameOverrides[name] ?? name; + + return overriddenName.startsWith('Platform') + ? overriddenName + : `Platform${overriddenName}`; } function transformPlatformSchemas(spec) { @@ -279,6 +292,7 @@ function transformPlatformOperations(spec) { } export function transformPlatformSpec(spec) { + transformPlatformTagGroups(spec); transformPlatformSchemas(spec); transformPlatformResponses(spec); transformPlatformApiTokenSecurity(spec); diff --git a/tests/post_transform_smoke.test.js b/tests/post_transform_smoke.test.js index 9aeb761f..1dde671f 100644 --- a/tests/post_transform_smoke.test.js +++ b/tests/post_transform_smoke.test.js @@ -50,6 +50,20 @@ describe('Post-transformation smoke tests', () => { expect(spec.info?.title).toBe('Glean API'); }); + test('merged spec keeps existing version and source traceability', () => { + expect(spec.info?.version).toBe('0.9.0'); + expect(spec.info?.['x-source-commit-sha']).toBeDefined(); + expect(spec.info?.['x-open-api-commit-sha']).toBeDefined(); + }); + + test('existing merged tag groups are preserved', () => { + const tagGroupNames = (spec['x-tagGroups'] ?? []).map(({ name }) => name); + + expect(tagGroupNames).toContain('Search & Generative AI'); + expect(tagGroupNames).toContain('Connected Content'); + expect(tagGroupNames).not.toEqual(['AI', 'Data Retrieval']); + }); + test('all paths use expected base prefixes', () => { const paths = Object.keys(spec.paths ?? {}); @@ -130,4 +144,99 @@ describe('Post-transformation smoke tests', () => { '#/components/schemas/CustomMetadataPropertyDefinition', ); }); + + test('Platform operations land under expected SDK groups', () => { + const platformOps = [ + { + path: '/api/documents/batch', + method: 'post', + group: 'platform.documents', + nameOverride: 'batch', + }, + { + path: '/api/documents/{id}/permissions', + method: 'get', + group: 'platform.documents', + nameOverride: 'getPermissions', + }, + { + path: '/api/people/search', + method: 'post', + group: 'platform.people', + nameOverride: 'search', + }, + { + path: '/api/agents/search', + method: 'post', + group: 'platform.agents', + nameOverride: 'search', + }, + { + path: '/api/agents/{agent_id}', + method: 'get', + group: 'platform.agents', + nameOverride: 'get', + }, + { + path: '/api/agents/{agent_id}/schemas', + method: 'get', + group: 'platform.agents', + nameOverride: 'getSchemas', + }, + { + path: '/api/agents/{agent_id}/runs', + method: 'post', + group: 'platform.agents', + nameOverride: 'createRun', + }, + { + path: '/api/search', + method: 'post', + group: 'platform.search', + nameOverride: 'query', + }, + { + path: '/api/tools', + method: 'get', + group: 'platform.tools', + nameOverride: 'list', + }, + { + path: '/api/tools/call', + method: 'post', + group: 'platform.tools', + nameOverride: 'call', + }, + { + path: '/api/summarize', + method: 'post', + group: 'platform.summarize', + nameOverride: 'create', + }, + ]; + + for (const { path, method, group, nameOverride } of platformOps) { + const operation = spec.paths?.[path]?.[method]; + + expect( + operation, + `expected operation ${method.toUpperCase()} ${path}`, + ).toBeDefined(); + expect(operation['x-speakeasy-group']).toBe(group); + expect(operation['x-speakeasy-name-override']).toBe(nameOverride); + expect(operation['x-glean-sdk']).toBeUndefined(); + } + }); + + test('Platform merged spec retains streaming run response', () => { + const operation = spec.paths?.['/api/agents/{agent_id}/runs']?.post; + + expect(operation?.responses?.['200']?.content).toHaveProperty( + 'text/event-stream', + ); + }); + + test('Platform private runtime gates do not reach merged spec', () => { + expect(JSON.stringify(spec)).not.toContain('gated-by'); + }); }); diff --git a/tests/source-spec-transformer.test.js b/tests/source-spec-transformer.test.js index a0b3d74b..10ebe17e 100644 --- a/tests/source-spec-transformer.test.js +++ b/tests/source-spec-transformer.test.js @@ -232,6 +232,7 @@ describe('OpenAPI YAML Transformer', () => { const platformSpec = { openapi: '3.0.0', info: { title: 'Glean Platform API', version: '2026-04-01' }, + 'x-tagGroups': [{ name: 'Platform', tags: ['Search'] }], servers: [{ url: 'https://{domain}-be.glean.com/api' }], components: { securitySchemes: { @@ -259,10 +260,41 @@ describe('OpenAPI YAML Transformer', () => { }, }, Tool: { type: 'object' }, + ToolCallRequest: { type: 'object' }, + ToolCallResponse: { + type: 'object', + properties: { + result: { $ref: '#/components/schemas/Result' }, + }, + }, + 'Person-2': { type: 'object' }, + 'Person-3': { type: 'object' }, + 'DocumentSpec-2': { type: 'object' }, + PeopleSearchResponse: { + type: 'object', + properties: { + people: { + type: 'array', + items: { $ref: '#/components/schemas/Person-2' }, + }, + }, + }, + RunRequest: { type: 'object' }, + RunEvent: { type: 'object' }, Result: { type: 'object', properties: { related: { $ref: '#/components/schemas/SearchRequest' }, + creator: { $ref: '#/components/schemas/Person-3' }, + }, + }, + SummarizeRequest: { + type: 'object', + properties: { + document_specs: { + type: 'array', + items: { $ref: '#/components/schemas/DocumentSpec-2' }, + }, }, }, PlatformExisting: { type: 'object' }, @@ -322,6 +354,64 @@ describe('OpenAPI YAML Transformer', () => { }, }, }, + '/tools/call': { + post: { + tags: ['Tools'], + operationId: 'platform-tools-call', + 'x-glean-sdk': { + group: 'platform.tools', + method: 'call', + }, + requestBody: { + content: { + 'application/json': { + schema: { $ref: '#/components/schemas/ToolCallRequest' }, + }, + }, + }, + responses: { + 200: { + description: 'ok', + content: { + 'application/json': { + schema: { + $ref: '#/components/schemas/ToolCallResponse', + }, + }, + }, + }, + }, + }, + }, + '/agents/{agent_id}/runs': { + post: { + tags: ['Agents'], + operationId: 'platform-agents-create-run', + 'x-glean-sdk': { + group: 'platform.agents', + method: 'createRun', + }, + requestBody: { + content: { + 'application/json': { + schema: { $ref: '#/components/schemas/RunRequest' }, + }, + }, + }, + responses: { + 200: { + description: 'ok', + content: { + 'text/event-stream': { + schema: { + $ref: '#/components/schemas/RunEvent', + }, + }, + }, + }, + }, + }, + }, }, }; @@ -334,12 +424,24 @@ describe('OpenAPI YAML Transformer', () => { ); expect(transformedSpec.paths).toHaveProperty('/api/search'); expect(transformedSpec.paths).toHaveProperty('/api/tools'); + expect(transformedSpec.paths).toHaveProperty('/api/tools/call'); + expect(transformedSpec.paths).toHaveProperty('/api/agents/{agent_id}/runs'); + expect(transformedSpec['x-tagGroups']).toBeUndefined(); expect(Object.keys(transformedSpec.components.schemas).sort()).toEqual([ 'PlatformExisting', + 'PlatformPeopleSearchPerson', + 'PlatformPeopleSearchResponse', 'PlatformResult', + 'PlatformRunEvent', + 'PlatformRunRequest', 'PlatformSearchRequest', + 'PlatformSearchResultPerson', + 'PlatformSummarizeDocumentSpec', + 'PlatformSummarizeRequest', 'PlatformTool', + 'PlatformToolCallRequest', + 'PlatformToolCallResponse', 'PlatformToolsListResponse', ]); expect( @@ -350,6 +452,17 @@ describe('OpenAPI YAML Transformer', () => { expect( transformedSpec.components.schemas.PlatformResult.properties.related.$ref, ).toBe('#/components/schemas/PlatformSearchRequest'); + expect( + transformedSpec.components.schemas.PlatformResult.properties.creator.$ref, + ).toBe('#/components/schemas/PlatformSearchResultPerson'); + expect( + transformedSpec.components.schemas.PlatformPeopleSearchResponse.properties + .people.items.$ref, + ).toBe('#/components/schemas/PlatformPeopleSearchPerson'); + expect( + transformedSpec.components.schemas.PlatformSummarizeRequest.properties + .document_specs.items.$ref, + ).toBe('#/components/schemas/PlatformSummarizeDocumentSpec'); expect(transformedSpec.components.responses).toHaveProperty( 'PlatformBadRequest', ); @@ -380,6 +493,35 @@ describe('OpenAPI YAML Transformer', () => { expect(transformedSpec.paths['/api/tools'].get).not.toHaveProperty( 'x-glean-sdk', ); + expect(transformedSpec.paths['/api/tools/call'].post).toMatchObject({ + 'x-speakeasy-group': 'platform.tools', + 'x-speakeasy-name-override': 'call', + }); + expect( + transformedSpec.paths['/api/tools/call'].post.responses[200].content[ + 'application/json' + ].schema.$ref, + ).toBe('#/components/schemas/PlatformToolCallResponse'); + expect( + transformedSpec.components.schemas.PlatformToolCallResponse.properties + .result.$ref, + ).toBe('#/components/schemas/PlatformResult'); + expect(transformedSpec.paths['/api/tools/call'].post).not.toHaveProperty( + 'x-glean-sdk', + ); + expect( + transformedSpec.paths['/api/agents/{agent_id}/runs'].post, + ).toMatchObject({ + 'x-speakeasy-group': 'platform.agents', + 'x-speakeasy-name-override': 'createRun', + }); + expect( + transformedSpec.paths['/api/agents/{agent_id}/runs'].post.responses[200] + .content['text/event-stream'].schema.$ref, + ).toBe('#/components/schemas/PlatformRunEvent'); + expect( + transformedSpec.paths['/api/agents/{agent_id}/runs'].post, + ).not.toHaveProperty('x-glean-sdk'); expect(transformedSpec.security).toEqual([{ APIToken: [] }]); expect(transformedSpec.components.securitySchemes).toHaveProperty( 'APIToken', From 2dbdd3638953227228fe4871595f007e0095186b Mon Sep 17 00:00:00 2001 From: Chris Freeman Date: Mon, 15 Jun 2026 17:55:18 -0600 Subject: [PATCH 2/6] Exclude generated Platform specs from manual PR Keep the Platform SDK restore PR focused on source configuration and tests while leaving generated spec artifacts to the transform automation. --- .speakeasy/workflow.lock | 1 - generated_specs/admin_rest.yaml | 4 +- generated_specs/client_rest.yaml | 4 +- generated_specs/indexing.yaml | 4 +- generated_specs/platform.yaml | 1659 ------- overlayed_specs/glean-merged-spec.yaml | 6265 +++++++++--------------- source_specs/platform.yaml | 1678 ------- tests/post_transform_smoke.test.js | 13 + 8 files changed, 2323 insertions(+), 7305 deletions(-) delete mode 100644 generated_specs/platform.yaml delete mode 100644 source_specs/platform.yaml diff --git a/.speakeasy/workflow.lock b/.speakeasy/workflow.lock index c7387451..59f12c7f 100644 --- a/.speakeasy/workflow.lock +++ b/.speakeasy/workflow.lock @@ -52,7 +52,6 @@ workflow: sources: glean-api-specs: inputs: - - location: generated_specs/platform.yaml - location: generated_specs/client_rest.yaml - location: generated_specs/indexing.yaml - location: generated_specs/admin_rest.yaml diff --git a/generated_specs/admin_rest.yaml b/generated_specs/admin_rest.yaml index f54aadf9..c33fc11e 100644 --- a/generated_specs/admin_rest.yaml +++ b/generated_specs/admin_rest.yaml @@ -2,14 +2,14 @@ openapi: 3.0.0 info: version: 0.9.0 title: Glean Rest Admin API - x-source-commit-sha: 2425f68d5b782d8d29908367e47216642f338198 + x-source-commit-sha: 44d244bc10e748c7e8c6ec85b030d6ba214830af description: | # Introduction These are all the APIs exposed to the users through an auth token to utilize certain admin operations. These offer limited exposure to the admin APIs through rest endpoints. x-logo: url: https://app.glean.com/images/glean-text2.svg - x-open-api-commit-sha: b58293f3dd13332f3b6860055e3971b8d4044750 + x-open-api-commit-sha: 21df4f948ed0b5213e33588e4eeaaf07ddb88ee6 servers: - url: https://{instance}-be.glean.com variables: diff --git a/generated_specs/client_rest.yaml b/generated_specs/client_rest.yaml index e843481d..2e93eb53 100644 --- a/generated_specs/client_rest.yaml +++ b/generated_specs/client_rest.yaml @@ -2,7 +2,7 @@ openapi: 3.0.0 info: version: 0.9.0 title: Glean Client API - x-source-commit-sha: 2425f68d5b782d8d29908367e47216642f338198 + x-source-commit-sha: 44d244bc10e748c7e8c6ec85b030d6ba214830af description: | # Introduction These are the public APIs to enable implementing a custom client interface to the Glean system. @@ -31,7 +31,7 @@ info: Determine the host you need to connect to. This will be the URL of the backend for your Glean deployment, for example, customer-be.glean.com x-logo: url: https://app.glean.com/images/glean-text2.svg - x-open-api-commit-sha: b58293f3dd13332f3b6860055e3971b8d4044750 + x-open-api-commit-sha: 21df4f948ed0b5213e33588e4eeaaf07ddb88ee6 servers: - url: https://{instance}-be.glean.com variables: diff --git a/generated_specs/indexing.yaml b/generated_specs/indexing.yaml index 3ed44f34..b5d163a0 100644 --- a/generated_specs/indexing.yaml +++ b/generated_specs/indexing.yaml @@ -2,7 +2,7 @@ openapi: 3.0.0 info: version: 0.9.0 title: Glean Indexing API - x-source-commit-sha: 2425f68d5b782d8d29908367e47216642f338198 + x-source-commit-sha: 44d244bc10e748c7e8c6ec85b030d6ba214830af 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. @@ -12,7 +12,7 @@ info: with a 6-month sunset period for anything that requires developers to adopt the new versions. x-logo: url: https://app.glean.com/images/glean-text2.svg - x-open-api-commit-sha: b58293f3dd13332f3b6860055e3971b8d4044750 + x-open-api-commit-sha: 21df4f948ed0b5213e33588e4eeaaf07ddb88ee6 servers: - url: https://{instance}-be.glean.com variables: diff --git a/generated_specs/platform.yaml b/generated_specs/platform.yaml deleted file mode 100644 index 0c6a00b1..00000000 --- a/generated_specs/platform.yaml +++ /dev/null @@ -1,1659 +0,0 @@ -openapi: 3.0.0 -info: - version: "2026-04-01" - title: Glean Platform API - x-source-commit-sha: 2425f68d5b782d8d29908367e47216642f338198 - x-open-api-commit-sha: b58293f3dd13332f3b6860055e3971b8d4044750 -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. -security: - - APIToken: [] -paths: - /api/documents/batch: - post: - tags: - - Documents - summary: Retrieve documents - description: | - Retrieve details for a batch of documents by URL, Glean document ID, or user-generated content reference. The response preserves request order and reports per-document lookup failures alongside successful results. - operationId: platform-documents-batch - x-visibility: Public - x-glean-experimental: - id: 9eb7c7c2-9807-4e64-bc53-7b10aeff813f - introduced: "2026-06-02" - x-codegen-request-body-name: payload - requestBody: - required: true - content: - application/json: - schema: - $ref: "#/components/schemas/PlatformDocumentsBatchRequest" - responses: - "200": - description: Successful batch retrieval. - content: - application/json: - schema: - $ref: "#/components/schemas/PlatformDocumentsBatchResponse" - "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: platform.documents - x-speakeasy-name-override: batch - /api/documents/{id}/permissions: - get: - tags: - - Documents - summary: Retrieve document permissions - description: | - Retrieve whether a document is visible to everyone and the email addresses of users who have access to it. - operationId: platform-documents-permissions - x-visibility: Public - x-glean-experimental: - id: 45684a5a-b8c0-4c2c-b022-50e2583666ff - introduced: "2026-06-03" - parameters: - - name: id - in: path - required: true - description: Glean document ID. - schema: - type: string - minLength: 1 - responses: - "200": - description: Successful document permissions retrieval. - content: - application/json: - schema: - $ref: "#/components/schemas/PlatformDocumentPermissionsResponse" - "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: platform.documents - x-speakeasy-name-override: getPermissions - /api/people/search: - post: - tags: - - People - summary: Search people - description: | - Retrieve people by Glean person ID or email address. When no identifiers are provided, the authenticated user's profile is returned. - operationId: platform-people-search - x-visibility: Public - x-glean-experimental: - id: 51692e94-d9ff-4e5b-b5b5-4b78c4a9879a - introduced: "2026-05-18" - x-codegen-request-body-name: payload - requestBody: - required: true - content: - application/json: - schema: - $ref: "#/components/schemas/PlatformPeopleSearchRequest" - responses: - "200": - description: Successful people response. - content: - application/json: - schema: - $ref: "#/components/schemas/PlatformPeopleSearchResponse" - "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: platform.people - x-speakeasy-name-override: search - /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" - "429": - $ref: "#/components/responses/PlatformTooManyRequests" - "500": - $ref: "#/components/responses/PlatformInternalServerError" - "503": - $ref: "#/components/responses/PlatformServiceUnavailable" - x-speakeasy-group: platform.agents - x-speakeasy-name-override: search - /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: platform.agents - x-speakeasy-name-override: get - /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: platform.agents - x-speakeasy-name-override: getSchemas - /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"}]}]} - - 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" - "429": - $ref: "#/components/responses/PlatformTooManyRequests" - "500": - $ref: "#/components/responses/PlatformInternalServerError" - "503": - $ref: "#/components/responses/PlatformServiceUnavailable" - x-speakeasy-group: platform.agents - x-speakeasy-name-override: createRun - /api/tools: - get: - tags: - - Tools - summary: List tools - description: | - List tools available to the authenticated user, optionally filtered by tool name. - operationId: platform-tools-list - x-visibility: Public - x-glean-experimental: - id: 3cb43a04-ad52-4c25-be62-3ce1daffd513 - introduced: "2026-05-06" - parameters: - - in: query - name: tool_names - description: Optional comma-delimited list of tool names to return. - required: false - style: form - explode: false - schema: - type: array - items: - type: string - responses: - "200": - description: Successful response. - content: - application/json: - schema: - $ref: "#/components/schemas/PlatformToolsListResponse" - "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: platform.tools - x-speakeasy-name-override: list - /api/tools/call: - post: - tags: - - Tools - summary: Call tool - description: | - Execute a tool available to the authenticated user with the provided parameters. - operationId: platform-tools-call - x-visibility: Public - x-glean-experimental: - id: 9ea7c149-7d5b-4c62-860d-afb56481069a - introduced: "2026-05-08" - x-codegen-request-body-name: payload - requestBody: - required: true - content: - application/json: - schema: - $ref: "#/components/schemas/PlatformToolsCallRequest" - responses: - "200": - description: Successful response. - content: - application/json: - schema: - $ref: "#/components/schemas/PlatformToolsCallResponse" - "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: platform.tools - x-speakeasy-name-override: call - /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" - "429": - $ref: "#/components/responses/PlatformTooManyRequests" - "500": - $ref: "#/components/responses/PlatformInternalServerError" - "503": - $ref: "#/components/responses/PlatformServiceUnavailable" - x-speakeasy-group: platform.search - x-speakeasy-name-override: query - /api/summarize: - post: - tags: - - Summarize - summary: Summarize documents - description: | - Generate an AI summary of one or more documents. Supply documents by URL, Glean document ID, or user-generated content reference. - operationId: platform-summarize - x-visibility: Public - x-glean-experimental: - id: 4d2f8b2e-7c9d-4f4f-9b1d-4d2f8b2e7c9d - introduced: "2026-05-27" - x-codegen-request-body-name: payload - requestBody: - required: true - content: - application/json: - schema: - $ref: "#/components/schemas/PlatformSummarizeRequest" - responses: - "200": - description: Successful summary. - content: - application/json: - schema: - $ref: "#/components/schemas/PlatformSummarizeResponse" - "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: platform.summarize - x-speakeasy-name-override: create -components: - securitySchemes: - APIToken: - type: http - scheme: bearer - description: | - Glean API token. Obtain via Admin Console -> Platform -> API Tokens, or via OAuth 2.0 client credentials flow. - schemas: - PlatformUgcType: - type: string - enum: - - ANNOUNCEMENTS - - ANSWERS - - COLLECTIONS - - SHORTCUTS - description: Type of user-generated content. - PlatformDocumentSpec: - type: object - description: | - Reference to a document. Exactly one of `url`, `id`, or `content_id` with `ugc_type` must be provided. - oneOf: - - type: object - additionalProperties: false - required: - - url - properties: - url: - type: string - description: URL of the document. - - type: object - additionalProperties: false - required: - - id - properties: - id: - type: string - description: Glean document ID. - - type: object - additionalProperties: false - required: - - content_id - - ugc_type - properties: - content_id: - type: integer - format: int32 - description: Numeric ID of the user-generated content item. - ugc_type: - $ref: "#/components/schemas/PlatformUgcType" - doc_type: - type: string - description: Specific subtype of the user-generated content item. - PlatformDocumentIncludeField: - type: string - enum: - - LAST_VIEWED_AT - - VISITORS_COUNT - - RECENT_SHARES - - DOCUMENT_CONTENT - - CUSTOM_METADATA - description: Optional fields that can be included in returned documents. - PlatformDocumentsBatchRequest: - type: object - additionalProperties: false - required: - - document_specs - properties: - document_specs: - type: array - minItems: 1 - items: - $ref: "#/components/schemas/PlatformDocumentSpec" - description: Documents to retrieve. - include_fields: - type: array - items: - $ref: "#/components/schemas/PlatformDocumentIncludeField" - description: Additional document fields to include in the response. - PlatformDocumentContent: - type: object - properties: - full_text_list: - type: array - items: - type: string - description: Plaintext content of the document. - PlatformDocumentReference: - type: object - properties: - id: - type: string - description: Glean document ID. - title: - type: string - description: Title of the referenced document. - url: - type: string - description: Permalink for the referenced document. - PlatformCountInfo: - type: object - properties: - count: - type: integer - format: int64 - period: - type: string - description: Human-readable period represented by this count. - from: - type: string - format: date-time - to: - type: string - format: date-time - PlatformPerson: - type: object - properties: - name: - type: string - email: - type: string - obfuscated_id: - type: string - PlatformShare: - type: object - properties: - num_days_ago: - type: integer - description: Number of days since the share occurred. - sharer: - $ref: "#/components/schemas/PlatformPerson" - sharing_document: - $ref: "#/components/schemas/PlatformDocumentReference" - PlatformDocumentInteractions: - type: object - properties: - visitor_count: - $ref: "#/components/schemas/PlatformCountInfo" - shares: - type: array - items: - $ref: "#/components/schemas/PlatformShare" - PlatformViewerInfo: - type: object - properties: - last_viewed_time: - type: string - format: date-time - PlatformCustomDataValue: - type: object - properties: - string_value: - type: string - string_list_value: - type: array - items: - type: string - PlatformDocumentMetadata: - type: object - properties: - datasource: - type: string - datasource_instance: - type: string - description: Datasource instance from which the document was extracted. - object_type: - type: string - description: Datasource-specific object type. - container: - type: string - description: Name of the higher-level container. - container_id: - type: string - description: Glean document ID of the container. - parent_id: - type: string - description: Glean document ID of the direct parent. - mime_type: - type: string - interactions: - $ref: "#/components/schemas/PlatformDocumentInteractions" - viewer_info: - $ref: "#/components/schemas/PlatformViewerInfo" - custom_data: - type: object - additionalProperties: - $ref: "#/components/schemas/PlatformCustomDataValue" - description: Custom metadata requested via `CUSTOM_METADATA`. - PlatformDocumentSection: - type: object - properties: - title: - type: string - description: Section title. - url: - type: string - description: Permalink for the section. - PlatformDocument: - type: object - required: - - id - properties: - id: - type: string - description: Glean document ID. - datasource: - type: string - description: App or repository type from which the document was extracted. - connector_type: - type: string - description: Connector type for the source system. - document_type: - type: string - description: Datasource-specific type of the document. - title: - type: string - description: Title of the document. - url: - type: string - description: Permalink for the document. - content: - $ref: "#/components/schemas/PlatformDocumentContent" - container_document: - $ref: "#/components/schemas/PlatformDocumentReference" - parent_document: - $ref: "#/components/schemas/PlatformDocumentReference" - metadata: - $ref: "#/components/schemas/PlatformDocumentMetadata" - sections: - type: array - items: - $ref: "#/components/schemas/PlatformDocumentSection" - description: Content subsections in the document. - PlatformDocumentBatchErrorCode: - type: string - enum: - - NOT_FOUND_OR_NOT_ALLOWED - - INVALID_DOCUMENT_SPEC - - ANNOTATION_ERROR - - DOCUMENT_GENERATION_ERROR - description: Stable machine-readable item-level failure code. - PlatformDocumentBatchError: - type: object - required: - - code - - message - properties: - code: - $ref: "#/components/schemas/PlatformDocumentBatchErrorCode" - message: - type: string - description: Human-readable explanation for the item-level failure. - PlatformDocumentBatchResult: - description: | - One document retrieval result. Successful results include `document`; lookup failures include `error`. - oneOf: - - type: object - additionalProperties: false - required: - - status - - document - properties: - status: - type: string - enum: - - FOUND - document: - $ref: "#/components/schemas/PlatformDocument" - - type: object - additionalProperties: false - required: - - status - - error - properties: - status: - type: string - enum: - - NOT_FOUND - - INVALID - - ERROR - error: - $ref: "#/components/schemas/PlatformDocumentBatchError" - PlatformDocumentsBatchResponse: - type: object - required: - - request_id - - results - properties: - request_id: - type: string - description: Server-generated identifier for this response, useful for support. - results: - type: array - items: - $ref: "#/components/schemas/PlatformDocumentBatchResult" - description: Results in the same order as `document_specs`. - 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://developer.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: - type: string - description: Stable machine-readable error code. - enum: - - invalid_request - - missing_required_field - - invalid_parameter - - invalid_cursor - - expired_cursor - - invalid_filter - - authentication_required - - token_expired - - insufficient_permissions - - resource_not_found - - method_not_allowed - - request_timeout - - conflict - - gone - - unprocessable_query - - rate_limit_exceeded - - internal_error - - service_unavailable - example: invalid_cursor - documentation_url: - type: string - format: uri - description: Direct URL to documentation for this error code. - example: https://developer.glean.com/errors/invalid-cursor - request_id: - type: string - description: Platform-generated request ID for support correlation. - example: req_7f8a9b0c1d2e - PlatformDocumentPermissionsResponse: - type: object - required: - - request_id - - allowed_user_emails - - visible_to_all - properties: - request_id: - type: string - description: Server-generated identifier for this response, useful for support. - allowed_user_emails: - type: array - items: - type: string - description: Email addresses for users who can access the document. - visible_to_all: - type: boolean - description: Whether the document is visible to everyone. - PlatformPeopleIncludeField: - type: string - description: Optional profile fields to request. - enum: - - PEOPLE_DETAILS - - MANAGEMENT_DETAILS - PlatformPeopleIncludeType: - type: string - description: Optional people result types to request. - x-enumDescriptions: - INVALID_ENTITIES: Return invalid requested people that can be loaded in the people array with is_valid set to false. Identifiers that cannot be loaded are returned in not_found. - enum: - - INVALID_ENTITIES - x-speakeasy-enum-descriptions: - INVALID_ENTITIES: Return invalid requested people that can be loaded in the people array with is_valid set to false. Identifiers that cannot be loaded are returned in not_found. - PlatformPeopleSearchRequest: - type: object - additionalProperties: false - properties: - person_ids: - type: array - description: Glean person IDs to retrieve. - items: - type: string - example: - - abc123 - - abc456 - email_ids: - type: array - description: Email addresses to retrieve. - items: - type: string - example: - - jane.smith@example.com - include_fields: - type: array - description: Optional profile fields to include beyond the default profile. - items: - $ref: "#/components/schemas/PlatformPeopleIncludeField" - include_types: - type: array - description: Optional non-default people result types to include. - items: - $ref: "#/components/schemas/PlatformPeopleIncludeType" - PlatformPersonType: - type: string - description: Person employment status or account type. - enum: - - FULL_TIME - - CONTRACTOR - - NON_EMPLOYEE - - FORMER_EMPLOYEE - PlatformPeopleSearchPerson: - type: object - required: - - id - - is_valid - - name - properties: - id: - type: string - description: Opaque Glean person ID. - is_valid: - type: boolean - description: Whether this is a valid person record. Invalid people are returned only when requested with include_types. - name: - type: string - description: Display name. - type: - $ref: "#/components/schemas/PlatformPersonType" - email: - type: string - format: email - description: Primary email address. - title: - type: string - description: Job title. - department: - type: string - description: Department or organizational unit. - location: - type: string - description: User-facing location. - photo_url: - type: string - format: uri - description: Avatar URL. - manager_id: - type: string - description: Opaque Glean person ID for the person's manager. - manager_name: - type: string - description: Display name for the person's manager. - PlatformPeopleSearchResponse: - type: object - required: - - people - - not_found - - request_id - properties: - people: - type: array - description: People matching the requested identifiers. - items: - $ref: "#/components/schemas/PlatformPeopleSearchPerson" - not_found: - type: array - description: Identifiers that could not be resolved. - items: - type: string - request_id: - type: string - description: Platform-generated request ID for support correlation. - 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. - 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 - 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. - PlatformToolParameter: - type: object - properties: - type: - type: string - description: Parameter type. - enum: - - string - - number - - boolean - - object - - array - name: - type: string - description: Parameter name. - description: - type: string - description: Parameter description. - is_required: - type: boolean - description: Whether the parameter is required. - possible_values: - type: array - description: Possible primitive values for the parameter. - items: - type: string - items: - $ref: "#/components/schemas/PlatformToolParameter" - properties: - type: object - description: Object properties for object parameters. - additionalProperties: - $ref: "#/components/schemas/PlatformToolParameter" - PlatformTool: - type: object - required: - - type - - name - - display_name - - description - - parameters - properties: - type: - type: string - description: Type of tool. - enum: - - READ - - WRITE - name: - type: string - description: Unique identifier for the tool. - display_name: - type: string - description: Human-readable name. - description: - type: string - description: LLM-friendly description of the tool. - parameters: - type: object - description: Parameters supported by the tool. - additionalProperties: - $ref: "#/components/schemas/PlatformToolParameter" - PlatformToolsListResponse: - type: object - required: - - tools - - request_id - properties: - tools: - type: array - description: List of tools available to the user. - items: - $ref: "#/components/schemas/PlatformTool" - request_id: - type: string - description: Platform-generated request ID for support correlation. - PlatformToolsCallRequest: - type: object - additionalProperties: false - required: - - name - - parameters - properties: - name: - type: string - minLength: 1 - description: Name of the tool to execute. - parameters: - type: object - description: Tool parameter values keyed by parameter name. - additionalProperties: true - PlatformToolsCallResponse: - type: object - required: - - raw_response - - request_id - properties: - raw_response: - type: object - description: Raw response returned by the tool. - additionalProperties: true - request_id: - type: string - description: Platform-generated request ID for support correlation. - PlatformFilter: - type: object - required: - - field - - values - description: | - A single filter criterion. Multiple values within a filter are OR'd. 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 operator 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 - exclude: - type: boolean - default: false - description: Excludes results matching any of the specified values when true. - 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 - 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`. - example: quarterly planning 2026 - 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. - example: - - confluence - - google_drive - filters: - type: array - items: - $ref: "#/components/schemas/PlatformFilter" - description: | - Structured filters applied to search results. Multiple values within a filter are OR'd. Multiple filters are AND'd together. 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" - PlatformSearchResultPerson: - type: object - nullable: true - description: A person associated with the result. - properties: - name: - type: string - description: Display name. - example: Jane Smith - email: - type: string - format: email - description: Email address. - example: jane.smith@company.com - 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 - document_type: - type: string - nullable: true - description: The document type within the datasource. - example: page - creator: - $ref: "#/components/schemas/PlatformSearchResultPerson" - owner: - $ref: "#/components/schemas/PlatformSearchResultPerson" - 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. - PlatformSummarizeDocumentSpec: - type: object - description: | - Reference to a document to summarize. Exactly one of `url`, `id`, or a UGC pair (`content_id` + `ugc_type` for ANNOUNCEMENTS/ANSWERS/COLLECTIONS) must be provided. - oneOf: - - type: object - additionalProperties: false - required: - - url - properties: - url: - type: string - description: Public URL of the document. - - type: object - additionalProperties: false - required: - - id - properties: - id: - type: string - description: Glean document ID. - - type: object - additionalProperties: false - required: - - content_id - - ugc_type - properties: - content_id: - type: integer - format: int32 - description: Numeric ID of the user-generated content item. - ugc_type: - type: string - enum: - - ANNOUNCEMENTS - - ANSWERS - - COLLECTIONS - description: Datasource type of the user-generated content item. - PlatformSummarizeRequest: - type: object - additionalProperties: false - required: - - document_specs - properties: - document_specs: - type: array - minItems: 1 - items: - $ref: "#/components/schemas/PlatformSummarizeDocumentSpec" - description: Specifications of the documents to summarize. - preferred_summary_length: - type: integer - minimum: 1 - default: 1000 - description: | - Preferred summary length in characters. The model treats this as a target, not a strict bound. - tracking_token: - type: string - description: | - Opaque token from a previous response. Pass it back when reporting feedback to associate the feedback with this summary. - PlatformSummary: - type: object - properties: - text: - type: string - description: The generated summary text. - follow_up_prompts: - type: array - items: - type: string - description: Suggested follow-up prompts derived from the summarized documents. - PlatformSummarizeResponse: - type: object - properties: - request_id: - type: string - description: Server-generated identifier for this response, useful for support. - summary: - $ref: "#/components/schemas/PlatformSummary" - tracking_token: - type: string - description: | - Opaque token representing this summary. Pass it back to the feedback endpoint to associate feedback with this summary. - 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" - 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" diff --git a/overlayed_specs/glean-merged-spec.yaml b/overlayed_specs/glean-merged-spec.yaml index 990f87cb..d2971476 100644 --- a/overlayed_specs/glean-merged-spec.yaml +++ b/overlayed_specs/glean-merged-spec.yaml @@ -1,9 +1,8 @@ openapi: 3.0.0 info: - version: "0.9.0" + version: 0.9.0 title: Glean API - x-source-commit-sha: 2425f68d5b782d8d29908367e47216642f338198 - x-open-api-commit-sha: b58293f3dd13332f3b6860055e3971b8d4044750 + x-source-commit-sha: 44d244bc10e748c7e8c6ec85b030d6ba214830af 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. @@ -23,6 +22,7 @@ info: These API clients provide type-safe, idiomatic interfaces for working with Glean IndexingAPIs in your language of choice. x-logo: url: https://app.glean.com/images/glean-text2.svg + x-open-api-commit-sha: 21df4f948ed0b5213e33588e4eeaaf07ddb88ee6 x-speakeasy-name: 'Glean API' servers: - url: https://{instance}-be.glean.com @@ -31,993 +31,451 @@ servers: default: instance-name description: The instance name (typically the email domain without the TLD) that determines the deployment backend. paths: - /api/documents/batch: + /rest/api/v1/activity: post: tags: - - Documents - summary: Retrieve documents - description: | - Retrieve details for a batch of documents by URL, Glean document ID, or user-generated content reference. The response preserves request order and reports per-document lookup failures alongside successful results. - operationId: platform-documents-batch + - 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-glean-experimental: - id: 9eb7c7c2-9807-4e64-bc53-7b10aeff813f - introduced: "2026-06-02" x-codegen-request-body-name: payload requestBody: - required: true content: application/json: schema: - $ref: "#/components/schemas/PlatformDocumentsBatchRequest" + $ref: "#/components/schemas/Activity" + required: true + x-exportParamName: Activity responses: "200": - description: Successful batch retrieval. - content: - application/json: - schema: - $ref: "#/components/schemas/PlatformDocumentsBatchResponse" + description: OK "400": - $ref: "#/components/responses/PlatformBadRequest" + description: Invalid request "401": - $ref: "#/components/responses/PlatformUnauthorized" - "403": - $ref: "#/components/responses/PlatformForbidden" - "404": - $ref: "#/components/responses/PlatformNotFound" - "408": - $ref: "#/components/responses/PlatformRequestTimeout" + description: Not Authorized "429": - $ref: "#/components/responses/PlatformTooManyRequests" - "500": - $ref: "#/components/responses/PlatformInternalServerError" - "503": - $ref: "#/components/responses/PlatformServiceUnavailable" - x-speakeasy-group: platform.documents - x-speakeasy-name-override: batch + description: Too Many Requests security: - APIToken: [] - /api/documents/{id}/permissions: - get: + x-speakeasy-name-override: report + x-speakeasy-group: client.activity + /rest/api/v1/feedback: + post: tags: - - Documents - summary: Retrieve document permissions - description: | - Retrieve whether a document is visible to everyone and the email addresses of users who have access to it. - operationId: platform-documents-permissions + - 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-glean-experimental: - id: 45684a5a-b8c0-4c2c-b022-50e2583666ff - introduced: "2026-06-03" + x-codegen-request-body-name: payload parameters: - - name: id - in: path - required: true - description: Glean document ID. + - name: feedback + in: query + description: A URL encoded versions of Feedback. This is useful for requests. + required: false schema: type: string - minLength: 1 + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/Feedback" + x-exportParamName: Feedback responses: "200": - description: Successful document permissions retrieval. - content: - application/json: - schema: - $ref: "#/components/schemas/PlatformDocumentPermissionsResponse" + description: OK "400": - $ref: "#/components/responses/PlatformBadRequest" + description: Invalid request "401": - $ref: "#/components/responses/PlatformUnauthorized" - "403": - $ref: "#/components/responses/PlatformForbidden" - "404": - $ref: "#/components/responses/PlatformNotFound" - "408": - $ref: "#/components/responses/PlatformRequestTimeout" + description: Not Authorized "429": - $ref: "#/components/responses/PlatformTooManyRequests" - "500": - $ref: "#/components/responses/PlatformInternalServerError" - "503": - $ref: "#/components/responses/PlatformServiceUnavailable" - x-speakeasy-group: platform.documents - x-speakeasy-name-override: getPermissions + description: Too Many Requests security: - APIToken: [] - /api/people/search: + x-speakeasy-group: client.activity + /rest/api/v1/createannouncement: post: tags: - - People - summary: Search people - description: | - Retrieve people by Glean person ID or email address. When no identifiers are provided, the authenticated user's profile is returned. - operationId: platform-people-search + - 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-glean-experimental: - id: 51692e94-d9ff-4e5b-b5b5-4b78c4a9879a - introduced: "2026-05-18" x-codegen-request-body-name: payload + parameters: + - $ref: "#/components/parameters/locale" requestBody: - required: true content: application/json: schema: - $ref: "#/components/schemas/PlatformPeopleSearchRequest" + $ref: "#/components/schemas/CreateAnnouncementRequest" + description: Announcement content + required: true + x-exportParamName: Request responses: "200": - description: Successful people response. + description: OK content: application/json: schema: - $ref: "#/components/schemas/PlatformPeopleSearchResponse" + $ref: "#/components/schemas/Announcement" "400": - $ref: "#/components/responses/PlatformBadRequest" + description: Invalid request "401": - $ref: "#/components/responses/PlatformUnauthorized" - "403": - $ref: "#/components/responses/PlatformForbidden" - "404": - $ref: "#/components/responses/PlatformNotFound" - "408": - $ref: "#/components/responses/PlatformRequestTimeout" + description: Not Authorized "429": - $ref: "#/components/responses/PlatformTooManyRequests" - "500": - $ref: "#/components/responses/PlatformInternalServerError" - "503": - $ref: "#/components/responses/PlatformServiceUnavailable" - x-speakeasy-group: platform.people - x-speakeasy-name-override: search + description: Too Many Requests security: - APIToken: [] - /api/agents/search: + x-speakeasy-name-override: create + x-speakeasy-group: client.announcements + /rest/api/v1/deleteannouncement: post: tags: - - Agents - summary: Search agents - description: | - Search agents available to the authenticated user by agent name. - operationId: platform-agents-search + - Announcements + summary: Delete Announcement + description: Delete an existing user-generated announcement. + operationId: deleteannouncement x-visibility: Public - x-glean-experimental: - id: 4abc1e17-8e06-490b-99a7-e8f97592405a - introduced: "2026-05-12" x-codegen-request-body-name: payload + parameters: + - $ref: "#/components/parameters/locale" requestBody: - required: true content: application/json: schema: - $ref: "#/components/schemas/PlatformAgentsSearchRequest" + $ref: "#/components/schemas/DeleteAnnouncementRequest" + description: Delete announcement request + required: true + x-exportParamName: Request responses: "200": - description: Successful response. - content: - application/json: - schema: - $ref: "#/components/schemas/PlatformAgentsSearchResponse" + description: OK "400": - $ref: "#/components/responses/PlatformBadRequest" + description: Invalid request "401": - $ref: "#/components/responses/PlatformUnauthorized" - "403": - $ref: "#/components/responses/PlatformForbidden" - "404": - $ref: "#/components/responses/PlatformNotFound" - "408": - $ref: "#/components/responses/PlatformRequestTimeout" + description: Not Authorized "429": - $ref: "#/components/responses/PlatformTooManyRequests" - "500": - $ref: "#/components/responses/PlatformInternalServerError" - "503": - $ref: "#/components/responses/PlatformServiceUnavailable" - x-speakeasy-group: platform.agents - x-speakeasy-name-override: search + description: Too Many Requests security: - APIToken: [] - /api/agents/{agent_id}: - get: + x-speakeasy-name-override: delete + x-speakeasy-group: client.announcements + /rest/api/v1/updateannouncement: + post: tags: - - Agents - summary: Get agent - description: | - Retrieve details for an agent available to the authenticated user. - operationId: platform-agents-get + - 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-glean-experimental: - id: 009b3e94-694b-4deb-b80a-c67011173715 - introduced: "2026-05-12" + x-codegen-request-body-name: payload parameters: - - in: path - name: agent_id - description: ID of the agent to retrieve. - required: true - schema: - type: string - minLength: 1 + - $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: Successful response. + description: OK content: application/json: schema: - $ref: "#/components/schemas/PlatformAgentGetResponse" + $ref: "#/components/schemas/Announcement" "400": - $ref: "#/components/responses/PlatformBadRequest" + description: Invalid request "401": - $ref: "#/components/responses/PlatformUnauthorized" - "403": - $ref: "#/components/responses/PlatformForbidden" - "404": - $ref: "#/components/responses/PlatformNotFound" - "408": - $ref: "#/components/responses/PlatformRequestTimeout" + description: Not Authorized "429": - $ref: "#/components/responses/PlatformTooManyRequests" - "500": - $ref: "#/components/responses/PlatformInternalServerError" - "503": - $ref: "#/components/responses/PlatformServiceUnavailable" - x-speakeasy-group: platform.agents - x-speakeasy-name-override: get + description: Too Many Requests security: - APIToken: [] - /api/agents/{agent_id}/schemas: - get: + x-speakeasy-name-override: update + x-speakeasy-group: client.announcements + /rest/api/v1/createanswer: + post: tags: - - Agents - summary: Get agent schemas - description: | - Retrieve an agent's input and output JSON schemas. - operationId: platform-agents-get-schemas + - Answers + summary: Create Answer + description: Create a user-generated Answer that contains a question and answer. + operationId: createanswer x-visibility: Public - x-glean-experimental: - id: b40b4dd3-3839-48e6-9e45-7e63e8148b49 - introduced: "2026-05-12" + x-codegen-request-body-name: payload 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 + - $ref: "#/components/parameters/locale" + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/CreateAnswerRequest" + description: CreateAnswer request + required: true + x-exportParamName: Request responses: "200": - description: Successful response. + description: OK content: application/json: schema: - $ref: "#/components/schemas/PlatformAgentSchemasResponse" + $ref: "#/components/schemas/Answer" "400": - $ref: "#/components/responses/PlatformBadRequest" + description: Invalid request "401": - $ref: "#/components/responses/PlatformUnauthorized" - "403": - $ref: "#/components/responses/PlatformForbidden" - "404": - $ref: "#/components/responses/PlatformNotFound" - "408": - $ref: "#/components/responses/PlatformRequestTimeout" + description: Not Authorized "429": - $ref: "#/components/responses/PlatformTooManyRequests" - "500": - $ref: "#/components/responses/PlatformInternalServerError" - "503": - $ref: "#/components/responses/PlatformServiceUnavailable" - x-speakeasy-group: platform.agents - x-speakeasy-name-override: getSchemas + description: Too Many Requests security: - APIToken: [] - /api/agents/{agent_id}/runs: + x-speakeasy-name-override: create + x-speakeasy-group: client.answers + /rest/api/v1/deleteanswer: 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 + - Answers + summary: Delete Answer + description: Delete an existing user-generated Answer. + operationId: deleteanswer 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 + - $ref: "#/components/parameters/locale" requestBody: - required: true content: application/json: schema: - $ref: "#/components/schemas/PlatformAgentRunCreateRequest" + $ref: "#/components/schemas/DeleteAnswerRequest" + description: DeleteAnswer request + required: true + x-exportParamName: Request 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"}]}]} + description: OK "400": - $ref: "#/components/responses/PlatformBadRequest" + description: Invalid request "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" + description: Not Authorized "429": - $ref: "#/components/responses/PlatformTooManyRequests" - "500": - $ref: "#/components/responses/PlatformInternalServerError" - "503": - $ref: "#/components/responses/PlatformServiceUnavailable" - x-speakeasy-group: platform.agents - x-speakeasy-name-override: createRun + description: Too Many Requests security: - APIToken: [] - /api/tools: - get: + x-speakeasy-name-override: delete + x-speakeasy-group: client.answers + /rest/api/v1/editanswer: + post: tags: - - Tools - summary: List tools - description: | - List tools available to the authenticated user, optionally filtered by tool name. - operationId: platform-tools-list + - Answers + summary: Update Answer + description: Update an existing user-generated Answer. + operationId: editanswer x-visibility: Public - x-glean-experimental: - id: 3cb43a04-ad52-4c25-be62-3ce1daffd513 - introduced: "2026-05-06" + x-codegen-request-body-name: payload parameters: - - in: query - name: tool_names - description: Optional comma-delimited list of tool names to return. - required: false - style: form - explode: false - schema: - type: array - items: - type: string + - $ref: "#/components/parameters/locale" + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/EditAnswerRequest" + description: EditAnswer request + required: true + x-exportParamName: Request responses: "200": - description: Successful response. + description: OK content: application/json: schema: - $ref: "#/components/schemas/PlatformToolsListResponse" + $ref: "#/components/schemas/Answer" "400": - $ref: "#/components/responses/PlatformBadRequest" + description: Invalid request "401": - $ref: "#/components/responses/PlatformUnauthorized" - "403": - $ref: "#/components/responses/PlatformForbidden" - "404": - $ref: "#/components/responses/PlatformNotFound" - "408": - $ref: "#/components/responses/PlatformRequestTimeout" + description: Not Authorized "429": - $ref: "#/components/responses/PlatformTooManyRequests" - "500": - $ref: "#/components/responses/PlatformInternalServerError" - "503": - $ref: "#/components/responses/PlatformServiceUnavailable" - x-speakeasy-group: platform.tools - x-speakeasy-name-override: list + description: Too Many Requests security: - APIToken: [] - /api/tools/call: + x-speakeasy-name-override: update + x-speakeasy-group: client.answers + /rest/api/v1/getanswer: post: tags: - - Tools - summary: Call tool - description: | - Execute a tool available to the authenticated user with the provided parameters. - operationId: platform-tools-call + - Answers + summary: Read Answer + description: Read the details of a particular Answer given its ID. + operationId: getanswer x-visibility: Public - x-glean-experimental: - id: 9ea7c149-7d5b-4c62-860d-afb56481069a - introduced: "2026-05-08" x-codegen-request-body-name: payload + parameters: + - $ref: "#/components/parameters/locale" requestBody: - required: true content: application/json: schema: - $ref: "#/components/schemas/PlatformToolsCallRequest" - responses: - "200": - description: Successful response. - content: - application/json: - schema: - $ref: "#/components/schemas/PlatformToolsCallResponse" - "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: platform.tools - x-speakeasy-name-override: call - 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: + $ref: "#/components/schemas/GetAnswerRequest" + description: GetAnswer request required: true - content: - application/json: - schema: - $ref: "#/components/schemas/PlatformSearchRequest" + x-exportParamName: Request responses: "200": - description: Successful search. + description: OK content: application/json: schema: - $ref: "#/components/schemas/PlatformSearchResponse" + $ref: "#/components/schemas/GetAnswerResponse" "400": - $ref: "#/components/responses/PlatformBadRequest" + description: Invalid request "401": - $ref: "#/components/responses/PlatformUnauthorized" - "403": - $ref: "#/components/responses/PlatformForbidden" - "404": - $ref: "#/components/responses/PlatformNotFound" - "408": - $ref: "#/components/responses/PlatformRequestTimeout" + description: Not Authorized "429": - $ref: "#/components/responses/PlatformTooManyRequests" - "500": - $ref: "#/components/responses/PlatformInternalServerError" - "503": - $ref: "#/components/responses/PlatformServiceUnavailable" - x-speakeasy-group: platform.search - x-speakeasy-name-override: query + description: Too Many Requests security: - APIToken: [] - /api/summarize: + x-speakeasy-name-override: retrieve + x-speakeasy-group: client.answers + /rest/api/v1/listanswers: post: tags: - - Summarize - summary: Summarize documents - description: | - Generate an AI summary of one or more documents. Supply documents by URL, Glean document ID, or user-generated content reference. - operationId: platform-summarize + - Answers + summary: List Answers + description: List Answers created by the current user. + operationId: listanswers + deprecated: true x-visibility: Public - x-glean-experimental: - id: 4d2f8b2e-7c9d-4f4f-9b1d-4d2f8b2e7c9d - introduced: "2026-05-27" x-codegen-request-body-name: payload + parameters: + - $ref: "#/components/parameters/locale" requestBody: - required: true content: application/json: schema: - $ref: "#/components/schemas/PlatformSummarizeRequest" + $ref: "#/components/schemas/ListAnswersRequest" + description: ListAnswers request + required: true + x-exportParamName: Request responses: "200": - description: Successful summary. + description: OK content: application/json: schema: - $ref: "#/components/schemas/PlatformSummarizeResponse" - "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: platform.summarize - x-speakeasy-name-override: create - 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 + $ref: "#/components/schemas/ListAnswersResponse" "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 + 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" 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: + x-speakeasy-name-override: list + x-speakeasy-group: client.answers + /rest/api/v1/checkdatasourceauth: 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 + - Authentication + summary: Check datasource authorization + description: | + Returns all datasource instances that require per-user OAuth authorization + for the authenticated user, along with a transient auth token that can be + appended to auth URLs to complete OAuth flows. + + Clients construct the full OAuth URL by combining the backend base URL, + the `authUrlRelativePath` from each instance, and the transient auth token: + `/?transient_auth_token=`. + operationId: checkdatasourceauth + x-visibility: Public + parameters: [] responses: "200": description: OK content: application/json: schema: - $ref: '#/components/schemas/Announcement' - "400": - description: Invalid request + $ref: "#/components/schemas/CheckDatasourceAuthResponse" "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: + /rest/api/v1/createauthtoken: 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 + - Authentication + summary: Create authentication token + description: | + Creates an authentication token for the authenticated user. These are + specifically intended to be used with the [Web SDK](https://developers.glean.com/web). + + Note: The tokens generated from this endpoint are **not** valid tokens + for use with the Client API (e.g. `/rest/api/v1/*`). + operationId: createauthtoken + x-visibility: Public + parameters: [] responses: "200": description: OK content: application/json: schema: - $ref: '#/components/schemas/Announcement' + $ref: "#/components/schemas/CreateAuthTokenResponse" "400": - description: Invalid request + 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: [] + 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/locale" + - $ref: "#/components/parameters/timezoneOffset" 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. - - 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 - /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). - - 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? + $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: @@ -1121,7 +579,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/ChatResponse' + $ref: "#/components/schemas/ChatResponse" examples: queuedExample: value: @@ -1136,23 +594,23 @@ paths: description: Request Timeout "429": description: Too Many Requests - x-visibility: Public - x-codegen-request-body-name: payload + security: + - APIToken: [] 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: [] + 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' + - $ref: "#/components/parameters/locale" + - $ref: "#/components/parameters/timezoneOffset" responses: "200": description: OK @@ -1162,27 +620,27 @@ paths: description: Not Authorized "403": description: Forbidden - x-visibility: Public - x-codegen-request-body-name: payload + security: + - APIToken: [] 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: [] + 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' + - $ref: "#/components/parameters/locale" + - $ref: "#/components/parameters/timezoneOffset" requestBody: content: application/json: schema: - $ref: '#/components/schemas/DeleteChatsRequest' + $ref: "#/components/schemas/DeleteChatsRequest" required: true x-exportParamName: Request responses: @@ -1196,27 +654,27 @@ paths: description: Forbidden "429": description: Too Many Requests - x-visibility: Public - x-codegen-request-body-name: payload + security: + - APIToken: [] 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: [] + 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' + - $ref: "#/components/parameters/locale" + - $ref: "#/components/parameters/timezoneOffset" requestBody: content: application/json: schema: - $ref: '#/components/schemas/GetChatRequest' + $ref: "#/components/schemas/GetChatRequest" required: true x-exportParamName: Request responses: @@ -1225,7 +683,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/GetChatResponse' + $ref: "#/components/schemas/GetChatResponse" "400": description: Invalid request "401": @@ -1234,56 +692,56 @@ paths: description: Forbidden "429": description: Too Many Requests - x-visibility: Public - x-codegen-request-body-name: payload + security: + - APIToken: [] 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: [] + 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' + - $ref: "#/components/parameters/locale" + - $ref: "#/components/parameters/timezoneOffset" responses: "200": description: OK content: application/json: schema: - $ref: '#/components/schemas/ListChatsResponse' + $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 + security: + - APIToken: [] 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: [] + 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' + - $ref: "#/components/parameters/locale" + - $ref: "#/components/parameters/timezoneOffset" requestBody: content: application/json: schema: - $ref: '#/components/schemas/GetChatApplicationRequest' + $ref: "#/components/schemas/GetChatApplicationRequest" required: true x-exportParamName: Request responses: @@ -1292,35 +750,34 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/GetChatApplicationResponse' + $ref: "#/components/schemas/GetChatApplicationResponse" "400": description: Invalid request "401": description: Not Authorized "403": description: Forbidden - x-visibility: Preview - x-codegen-request-body-name: payload + security: + - APIToken: [] 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: [] + summary: Upload files for Chat + description: Upload files for Chat. + operationId: uploadchatfiles + x-visibility: Public parameters: - - $ref: '#/components/parameters/locale' - - $ref: '#/components/parameters/timezoneOffset' + - $ref: "#/components/parameters/locale" + - $ref: "#/components/parameters/timezoneOffset" requestBody: + required: true content: multipart/form-data: schema: - $ref: '#/components/schemas/UploadChatFilesRequest' - required: true + $ref: "#/components/schemas/UploadChatFilesRequest" x-exportParamName: Request responses: "200": @@ -1328,7 +785,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/UploadChatFilesResponse' + $ref: "#/components/schemas/UploadChatFilesResponse" "400": description: Invalid request "401": @@ -1337,27 +794,27 @@ paths: description: Forbidden "429": description: Too Many Requests - x-visibility: Public + security: + - APIToken: [] 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: [] + 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' + - $ref: "#/components/parameters/locale" + - $ref: "#/components/parameters/timezoneOffset" requestBody: + required: true content: application/json: schema: - $ref: '#/components/schemas/GetChatFilesRequest' - required: true + $ref: "#/components/schemas/GetChatFilesRequest" x-exportParamName: Request responses: "200": @@ -1365,7 +822,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/GetChatFilesResponse' + $ref: "#/components/schemas/GetChatFilesResponse" "400": description: Invalid request "401": @@ -1374,27 +831,27 @@ paths: description: Forbidden "429": description: Too Many Requests - x-visibility: Public + security: + - APIToken: [] 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: [] + 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' + - $ref: "#/components/parameters/locale" + - $ref: "#/components/parameters/timezoneOffset" requestBody: + required: true content: application/json: schema: - $ref: '#/components/schemas/DeleteChatFilesRequest' - required: true + $ref: "#/components/schemas/DeleteChatFilesRequest" responses: "200": description: OK @@ -1406,31 +863,31 @@ paths: description: Forbidden "429": description: Too Many Requests - x-visibility: Public + security: + - APIToken: [] x-speakeasy-name-override: deleteFiles x-speakeasy-group: client.chat /rest/api/v1/chat-files/{fileId}: get: - operationId: getChatFile + 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. - tags: - - Chat - security: - - APIToken: [] + operationId: getChatFile + x-visibility: Public parameters: - name: fileId in: path - description: Identifier of the chat file to download. 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. - required: false schema: type: boolean responses: @@ -1451,32 +908,32 @@ paths: description: File not found. "500": description: Internal server error. - x-visibility: Public + security: + - APIToken: [] /rest/api/v1/agents: post: - operationId: createAgent - summary: Create an agent - description: Create an agent. tags: - Agents - security: - - APIToken: [] + summary: Create an agent + description: Create an agent. + operationId: createAgent + x-visibility: Preview parameters: - - $ref: '#/components/parameters/locale' - - $ref: '#/components/parameters/timezoneOffset' + - $ref: "#/components/parameters/locale" + - $ref: "#/components/parameters/timezoneOffset" requestBody: + required: true content: application/json: schema: - $ref: '#/components/schemas/CreateWorkflowRequest' - required: true + $ref: "#/components/schemas/CreateWorkflowRequest" responses: "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/CreateWorkflowResponse' + $ref: "#/components/schemas/CreateWorkflowResponse" "400": description: Bad request "401": @@ -1485,34 +942,34 @@ paths: description: Forbidden "500": description: Internal server error - x-visibility: Preview + security: + - APIToken: [] /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: [] + 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' - - name: agent_id - in: path - description: The ID of the agent. + - $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' + $ref: "#/components/schemas/Agent" "400": description: Bad request "403": @@ -1522,37 +979,37 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/ErrorResponse' + $ref: "#/components/schemas/ErrorResponse" "500": description: Internal server error - x-visibility: Preview + security: + - APIToken: [] 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: [] + 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' - - name: agent_id - in: path - description: The ID of the agent. + - $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' - required: true + $ref: "#/components/schemas/EditWorkflowRequest" responses: "200": description: Success @@ -1567,37 +1024,37 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/ErrorResponse' + $ref: "#/components/schemas/ErrorResponse" "500": description: Internal server error - x-visibility: Preview + security: + - APIToken: [] /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: [] + 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' - - name: agent_id - in: path - description: The ID of the agent. + - $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' + $ref: "#/components/schemas/AgentSchemas" "400": description: Bad request "403": @@ -1607,40 +1064,40 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/ErrorResponse' + $ref: "#/components/schemas/ErrorResponse" "422": description: Validation Error content: application/json: schema: - $ref: '#/components/schemas/ErrorResponse' + $ref: "#/components/schemas/ErrorResponse" "500": description: Internal server error - x-visibility: Preview + security: + - APIToken: [] 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: [] + 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' - required: true + $ref: "#/components/schemas/SearchAgentsRequest" responses: "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/SearchAgentsResponse' + $ref: "#/components/schemas/SearchAgentsResponse" "400": description: Bad request "403": @@ -1650,32 +1107,32 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/ErrorResponse' + $ref: "#/components/schemas/ErrorResponse" "422": description: Validation Error content: application/json: schema: - $ref: '#/components/schemas/ErrorResponse' + $ref: "#/components/schemas/ErrorResponse" "500": description: Internal server error - x-visibility: Preview + security: + - APIToken: [] 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: [] + 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' + $ref: "#/components/schemas/AgentRunCreate" required: true responses: "200": @@ -1710,38 +1167,38 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/ErrorResponse' + $ref: "#/components/schemas/ErrorResponse" "409": description: Conflict content: application/json: schema: - $ref: '#/components/schemas/ErrorResponse' + $ref: "#/components/schemas/ErrorResponse" "422": description: Validation Error content: application/json: schema: - $ref: '#/components/schemas/ErrorResponse' + $ref: "#/components/schemas/ErrorResponse" "500": description: Internal server error - x-visibility: Preview + security: + - APIToken: [] 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: [] + 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' + $ref: "#/components/schemas/AgentRunCreate" required: true responses: "200": @@ -1749,7 +1206,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/AgentRunWaitResponse' + $ref: "#/components/schemas/AgentRunWaitResponse" "400": description: Bad request "403": @@ -1762,26 +1219,27 @@ paths: description: Validation Error "500": description: Internal server error - x-visibility: Preview + security: + - APIToken: [] 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: [] + 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' + - $ref: "#/components/parameters/locale" requestBody: - description: Data describing the add operation. content: application/json: schema: - $ref: '#/components/schemas/AddCollectionItemsRequest' + $ref: "#/components/schemas/AddCollectionItemsRequest" + description: Data describing the add operation. required: true x-exportParamName: Request responses: @@ -1790,34 +1248,34 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/AddCollectionItemsResponse' + $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 + security: + - APIToken: [] 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: [] + 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' + - $ref: "#/components/parameters/locale" requestBody: - description: Collection content plus any additional metadata for the request. content: application/json: schema: - $ref: '#/components/schemas/CreateCollectionRequest' + $ref: "#/components/schemas/CreateCollectionRequest" + description: Collection content plus any additional metadata for the request. required: true x-exportParamName: Request responses: @@ -1826,7 +1284,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/CreateCollectionResponse' + $ref: "#/components/schemas/CreateCollectionResponse" "400": description: Invalid request "401": @@ -1836,30 +1294,30 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/CollectionError' + $ref: "#/components/schemas/CollectionError" "429": description: Too Many Requests - x-visibility: Public - x-codegen-request-body-name: payload + security: + - APIToken: [] 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: [] + 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' + - $ref: "#/components/parameters/locale" requestBody: - description: DeleteCollection request content: application/json: schema: - $ref: '#/components/schemas/DeleteCollectionRequest' + $ref: "#/components/schemas/DeleteCollectionRequest" + description: DeleteCollection request required: true x-exportParamName: Request responses: @@ -1874,30 +1332,30 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/CollectionError' + $ref: "#/components/schemas/CollectionError" "429": description: Too Many Requests - x-visibility: Public - x-codegen-request-body-name: payload + security: + - APIToken: [] 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: [] + 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' + - $ref: "#/components/parameters/locale" requestBody: - description: Data describing the delete operation. content: application/json: schema: - $ref: '#/components/schemas/DeleteCollectionItemRequest' + $ref: "#/components/schemas/DeleteCollectionItemRequest" + description: Data describing the delete operation. required: true x-exportParamName: Request responses: @@ -1906,7 +1364,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/DeleteCollectionItemResponse' + $ref: "#/components/schemas/DeleteCollectionItemResponse" "400": description: Invalid request "401": @@ -1915,27 +1373,27 @@ paths: description: Failed to save deletion "429": description: Too Many Requests - x-visibility: Public - x-codegen-request-body-name: payload + security: + - APIToken: [] 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: [] + 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' + - $ref: "#/components/parameters/locale" requestBody: - description: Collection content plus any additional metadata for the request. content: application/json: schema: - $ref: '#/components/schemas/EditCollectionRequest' + $ref: "#/components/schemas/EditCollectionRequest" + description: Collection content plus any additional metadata for the request. required: true x-exportParamName: Request responses: @@ -1944,7 +1402,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/EditCollectionResponse' + $ref: "#/components/schemas/EditCollectionResponse" "400": description: Invalid request "401": @@ -1954,30 +1412,30 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/CollectionError' + $ref: "#/components/schemas/CollectionError" "429": description: Too Many Requests - x-visibility: Public - x-codegen-request-body-name: payload + security: + - APIToken: [] 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: [] + 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' + - $ref: "#/components/parameters/locale" requestBody: - description: Edit Collection Items request content: application/json: schema: - $ref: '#/components/schemas/EditCollectionItemRequest' + $ref: "#/components/schemas/EditCollectionItemRequest" + description: Edit Collection Items request required: true x-exportParamName: Request responses: @@ -1986,34 +1444,34 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/EditCollectionItemResponse' + $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 + security: + - APIToken: [] 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: [] + 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' + - $ref: "#/components/parameters/locale" requestBody: - description: GetCollection request content: application/json: schema: - $ref: '#/components/schemas/GetCollectionRequest' + $ref: "#/components/schemas/GetCollectionRequest" + description: GetCollection request required: true x-exportParamName: Request responses: @@ -2022,34 +1480,34 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/GetCollectionResponse' + $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 + security: + - APIToken: [] 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: [] + summary: List Collections + description: List all existing Collections. + operationId: listcollections + x-visibility: Public + x-codegen-request-body-name: payload parameters: - - $ref: '#/components/parameters/locale' + - $ref: "#/components/parameters/locale" requestBody: - description: ListCollections request content: application/json: schema: - $ref: '#/components/schemas/ListCollectionsRequest' + $ref: "#/components/schemas/ListCollectionsRequest" + description: ListCollections request required: true x-exportParamName: Request responses: @@ -2058,34 +1516,34 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/ListCollectionsResponse' + $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 + security: + - APIToken: [] 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: [] + 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' + - $ref: "#/components/parameters/locale" requestBody: - description: Document permissions request content: application/json: schema: - $ref: '#/components/schemas/GetDocPermissionsRequest' + $ref: "#/components/schemas/GetDocPermissionsRequest" + description: Document permissions request required: true x-exportParamName: Request responses: @@ -2094,7 +1552,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/GetDocPermissionsResponse' + $ref: "#/components/schemas/GetDocPermissionsResponse" "400": description: Invalid request "401": @@ -2103,34 +1561,34 @@ paths: description: Forbidden "429": description: Too Many Requests - x-visibility: Preview - x-codegen-request-body-name: payload + security: + - APIToken: [] 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: [] + 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' + - $ref: "#/components/parameters/locale" requestBody: - description: Information about documents requested. content: application/json: schema: - $ref: '#/components/schemas/GetDocumentsRequest' + $ref: "#/components/schemas/GetDocumentsRequest" + description: Information about documents requested. responses: "200": description: OK content: application/json: schema: - $ref: '#/components/schemas/GetDocumentsResponse' + $ref: "#/components/schemas/GetDocumentsResponse" "400": description: Invalid request "401": @@ -2139,34 +1597,34 @@ paths: description: Documents does not exist, or user cannot access documents. "429": description: Too Many Requests - x-visibility: Public - x-codegen-request-body-name: payload + security: + - APIToken: [] 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: [] + 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' + - $ref: "#/components/parameters/locale" requestBody: - description: Information about facet conditions for documents to be retrieved. content: application/json: schema: - $ref: '#/components/schemas/GetDocumentsByFacetsRequest' + $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' + $ref: "#/components/schemas/GetDocumentsByFacetsResponse" "400": description: Invalid request "401": @@ -2175,27 +1633,27 @@ paths: description: Not Found "429": description: Too Many Requests - x-visibility: Preview - x-codegen-request-body-name: payload + security: + - APIToken: [] 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: [] + 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' + - $ref: "#/components/parameters/locale" requestBody: - description: Includes request parameters for insights requests. content: application/json: schema: - $ref: '#/components/schemas/InsightsRequest' + $ref: "#/components/schemas/InsightsRequest" + description: Includes request parameters for insights requests. required: true x-exportParamName: InsightsRequest responses: @@ -2204,34 +1662,34 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/InsightsResponse' + $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 + security: + - APIToken: [] 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: [] + 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' + - $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' + $ref: "#/components/schemas/MessagesRequest" + description: Includes request params such as the id for channel/message and direction. required: true x-exportParamName: MessagesRequest responses: @@ -2240,34 +1698,34 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/MessagesResponse' + $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 + security: + - APIToken: [] 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: [] + 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' + - $ref: "#/components/parameters/locale" requestBody: - description: Edit pins request content: application/json: schema: - $ref: '#/components/schemas/EditPinRequest' + $ref: "#/components/schemas/EditPinRequest" + description: Edit pins request required: true x-exportParamName: Request responses: @@ -2276,34 +1734,34 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/PinDocument' + $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 + security: + - APIToken: [] 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: [] + 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' + - $ref: "#/components/parameters/locale" requestBody: - description: Get pin request content: application/json: schema: - $ref: '#/components/schemas/GetPinRequest' + $ref: "#/components/schemas/GetPinRequest" + description: Get pin request required: true x-exportParamName: Request responses: @@ -2312,34 +1770,34 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/GetPinResponse' + $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 + security: + - APIToken: [] 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: [] + summary: List pins + description: Lists all pins. + operationId: listpins + x-visibility: Public + x-codegen-request-body-name: payload parameters: - - $ref: '#/components/parameters/locale' + - $ref: "#/components/parameters/locale" requestBody: - description: List pins request content: application/json: schema: type: object + description: List pins request required: true x-exportParamName: Request responses: @@ -2348,34 +1806,34 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/ListPinsResponse' + $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 + security: + - APIToken: [] 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: [] + 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' + - $ref: "#/components/parameters/locale" requestBody: - description: Details about the document and query for the pin. content: application/json: schema: - $ref: '#/components/schemas/PinRequest' + $ref: "#/components/schemas/PinRequest" + description: Details about the document and query for the pin. required: true x-exportParamName: PinDocument responses: @@ -2384,34 +1842,34 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/PinDocument' + $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 + security: + - APIToken: [] 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: [] + 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' + - $ref: "#/components/parameters/locale" requestBody: - description: Details about the pin being unpinned. content: application/json: schema: - $ref: '#/components/schemas/Unpin' + $ref: "#/components/schemas/Unpin" + description: Details about the pin being unpinned. required: true x-exportParamName: Unpin responses: @@ -2425,27 +1883,27 @@ paths: description: Forbidden from unpinning someone else's pin "429": description: Too Many Requests - x-visibility: Public - x-codegen-request-body-name: payload + security: + - APIToken: [] 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: [] + 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' + - $ref: "#/components/parameters/locale" requestBody: - description: Admin search request content: application/json: schema: - $ref: '#/components/schemas/SearchRequest' + $ref: "#/components/schemas/SearchRequest" + description: Admin search request required: true x-exportParamName: Request responses: @@ -2454,7 +1912,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/SearchResponse' + $ref: "#/components/schemas/SearchResponse" "400": description: Invalid request "401": @@ -2464,36 +1922,36 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/ErrorInfo' + $ref: "#/components/schemas/ErrorInfo" "422": description: Invalid Query content: application/json: schema: - $ref: '#/components/schemas/ErrorInfo' + $ref: "#/components/schemas/ErrorInfo" "429": description: Too Many Requests - x-visibility: Preview - x-codegen-request-body-name: payload + security: + - APIToken: [] 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: [] + 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' + - $ref: "#/components/parameters/locale" requestBody: - description: Autocomplete request content: application/json: schema: - $ref: '#/components/schemas/AutocompleteRequest' + $ref: "#/components/schemas/AutocompleteRequest" + description: Autocomplete request required: true x-exportParamName: Request responses: @@ -2502,34 +1960,34 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/AutocompleteResponse' + $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 + security: + - APIToken: [] 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: [] + 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' + - $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' + $ref: "#/components/schemas/FeedRequest" + description: Includes request params, client data and more for making user's feed. required: true x-exportParamName: FeedRequest responses: @@ -2538,7 +1996,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/FeedResponse' + $ref: "#/components/schemas/FeedResponse" "400": description: Invalid request "401": @@ -2547,27 +2005,27 @@ paths: description: Request Timeout "429": description: Too Many Requests - x-visibility: Public - x-codegen-request-body-name: payload + security: + - APIToken: [] 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: [] + 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' + - $ref: "#/components/parameters/locale" requestBody: - description: Recommendations request content: application/json: schema: - $ref: '#/components/schemas/RecommendationsRequest' + $ref: "#/components/schemas/RecommendationsRequest" + description: Recommendations request required: true x-exportParamName: Request responses: @@ -2576,7 +2034,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/RecommendationsResponse' + $ref: "#/components/schemas/RecommendationsResponse" "202": description: Accepted. The Retry-After header has a hint about when the response will be available "204": @@ -2589,27 +2047,27 @@ paths: description: Document does not exist or user cannot access document "429": description: Too Many Requests - x-visibility: Preview - x-codegen-request-body-name: payload + security: + - APIToken: [] 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: [] + 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' + - $ref: "#/components/parameters/locale" requestBody: - description: Search request content: application/json: schema: - $ref: '#/components/schemas/SearchRequest' + $ref: "#/components/schemas/SearchRequest" + description: Search request required: true x-exportParamName: Request responses: @@ -2618,7 +2076,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/SearchResponse' + $ref: "#/components/schemas/SearchResponse" "400": description: Invalid request "401": @@ -2628,7 +2086,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/ErrorInfo' + $ref: "#/components/schemas/ErrorInfo" "408": description: Request Timeout "422": @@ -2636,30 +2094,30 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/ErrorInfo' + $ref: "#/components/schemas/ErrorInfo" "429": description: Too Many Requests - x-visibility: Public - x-codegen-request-body-name: payload + security: + - APIToken: [] 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: [] + 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' + - $ref: "#/components/parameters/locale" requestBody: - description: List people request content: application/json: schema: - $ref: '#/components/schemas/ListEntitiesRequest' + $ref: "#/components/schemas/ListEntitiesRequest" + description: List people request required: true x-exportParamName: Request responses: @@ -2668,34 +2126,34 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/ListEntitiesResponse' + $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 + security: + - APIToken: [] 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: [] + 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' + - $ref: "#/components/parameters/locale" requestBody: - description: People request content: application/json: schema: - $ref: '#/components/schemas/PeopleRequest' + $ref: "#/components/schemas/PeopleRequest" + description: People request required: true x-exportParamName: Request responses: @@ -2704,39 +2162,38 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/PeopleResponse' + $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 + security: + - APIToken: [] x-speakeasy-name-override: readPeople x-speakeasy-group: client.entities /rest/api/v1/people/{person_id}/photo: get: - operationId: getPersonPhoto + 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. - tags: - - Entities - security: - - APIToken: [] + operationId: getPersonPhoto + x-visibility: Public parameters: - name: person_id in: path - description: The obfuscated ID of the person whose photo to retrieve. 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. - required: false schema: type: string responses: @@ -2766,24 +2223,25 @@ paths: 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 + security: + - APIToken: [] /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: [] + 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' + - $ref: "#/components/parameters/locale" requestBody: - description: CreateShortcut request content: application/json: schema: - $ref: '#/components/schemas/CreateShortcutRequest' + $ref: "#/components/schemas/CreateShortcutRequest" + description: CreateShortcut request required: true x-exportParamName: Request responses: @@ -2792,34 +2250,34 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/CreateShortcutResponse' + $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 + security: + - APIToken: [] 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: [] + 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' + - $ref: "#/components/parameters/locale" requestBody: - description: DeleteShortcut request content: application/json: schema: - $ref: '#/components/schemas/DeleteShortcutRequest' + $ref: "#/components/schemas/DeleteShortcutRequest" + description: DeleteShortcut request required: true x-exportParamName: Request responses: @@ -2831,27 +2289,27 @@ paths: description: Not Authorized "429": description: Too Many Requests - x-visibility: Public - x-codegen-request-body-name: payload + security: + - APIToken: [] 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: [] + 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' + - $ref: "#/components/parameters/locale" requestBody: - description: GetShortcut request content: application/json: schema: - $ref: '#/components/schemas/GetShortcutRequest' + $ref: "#/components/schemas/GetShortcutRequest" + description: GetShortcut request required: true x-exportParamName: Request responses: @@ -2860,34 +2318,34 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/GetShortcutResponse' + $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 + security: + - APIToken: [] 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: [] + 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' + - $ref: "#/components/parameters/locale" requestBody: - description: Filters, sorters, paging params required for pagination content: application/json: schema: - $ref: '#/components/schemas/ListShortcutsPaginatedRequest' + $ref: "#/components/schemas/ListShortcutsPaginatedRequest" + description: Filters, sorters, paging params required for pagination required: true x-exportParamName: Request responses: @@ -2896,34 +2354,34 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/ListShortcutsPaginatedResponse' + $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 + security: + - APIToken: [] 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: [] + 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' + - $ref: "#/components/parameters/locale" requestBody: - description: Shortcut content. Id need to be specified for the shortcut. content: application/json: schema: - $ref: '#/components/schemas/UpdateShortcutRequest' + $ref: "#/components/schemas/UpdateShortcutRequest" + description: Shortcut content. Id need to be specified for the shortcut. required: true x-exportParamName: Request responses: @@ -2932,34 +2390,34 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/UpdateShortcutResponse' + $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 + security: + - APIToken: [] 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: [] + 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' + - $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' + $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: @@ -2968,34 +2426,34 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/SummarizeResponse' + $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 + security: + - APIToken: [] 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: [] + 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' + - $ref: "#/components/parameters/locale" requestBody: - description: Details about the reminder. content: application/json: schema: - $ref: '#/components/schemas/ReminderRequest' + $ref: "#/components/schemas/ReminderRequest" + description: Details about the reminder. required: true x-exportParamName: ReminderRequest responses: @@ -3004,7 +2462,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/Verification' + $ref: "#/components/schemas/Verification" "400": description: Invalid request "401": @@ -3013,61 +2471,61 @@ paths: 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 + security: + - APIToken: [] 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: [] + 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: - - name: count - in: query + - in: query + name: count description: Maximum number of documents to return required: false schema: type: integer - - $ref: '#/components/parameters/locale' + - $ref: "#/components/parameters/locale" responses: "200": description: OK content: application/json: schema: - $ref: '#/components/schemas/VerificationFeed' + $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 + security: + - APIToken: [] 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: [] + 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' + - $ref: "#/components/parameters/locale" requestBody: - description: Details about the verification request. content: application/json: schema: - $ref: '#/components/schemas/VerifyRequest' + $ref: "#/components/schemas/VerifyRequest" + description: Details about the verification request. required: true x-exportParamName: VerifyRequest responses: @@ -3076,7 +2534,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/Verification' + $ref: "#/components/schemas/Verification" "400": description: Invalid request "401": @@ -3085,37 +2543,36 @@ paths: 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 + security: + - APIToken: [] 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: [] + 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: - - name: toolNames - in: query + - in: query + name: toolNames description: Optional array of tool names to filter by required: false - style: form - explode: false schema: type: array items: type: string + style: form + explode: false responses: "200": description: Successful operation content: application/json: schema: - $ref: '#/components/schemas/ToolsListResponse' + $ref: "#/components/schemas/ToolsListResponse" "400": description: Bad Request "401": @@ -3124,31 +2581,31 @@ paths: description: Not Found "429": description: Too Many Requests - x-visibility: Preview + security: + - APIToken: [] 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: [] + 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' - required: true + $ref: "#/components/schemas/ToolsCallRequest" responses: "200": description: Successful operation content: application/json: schema: - $ref: '#/components/schemas/ToolsCallResponse' + $ref: "#/components/schemas/ToolsCallResponse" "400": description: Bad Request "401": @@ -3157,28 +2614,35 @@ paths: description: Not Found "429": description: Too Many Requests - x-visibility: Preview + security: + - APIToken: [] 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 get: - operationId: getActionPackAuthStatus + 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. - tags: - - Tools - security: - - APIToken: [] + operationId: getActionPackAuthStatus + x-visibility: Preview responses: "200": description: Successful operation content: application/json: schema: - $ref: '#/components/schemas/ActionPackAuthStatusResponse' + $ref: "#/components/schemas/ActionPackAuthStatusResponse" "400": description: Bad Request "401": @@ -3187,9 +2651,11 @@ paths: description: Action pack not found "429": description: Too Many Requests - x-visibility: Preview + security: + - APIToken: [] post: - operationId: authorizeActionPack + 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 @@ -3199,23 +2665,21 @@ paths: `returnUrl` must match the tenant's configured return URL allowlist; otherwise the request is rejected with 400. - tags: - - Tools - security: - - APIToken: [] + operationId: authorizeActionPack + x-visibility: Preview requestBody: + required: true content: application/json: schema: - $ref: '#/components/schemas/AuthorizeActionPackRequest' - required: true + $ref: "#/components/schemas/AuthorizeActionPackRequest" responses: "200": description: Successful operation content: application/json: schema: - $ref: '#/components/schemas/AuthorizeActionPackResponse' + $ref: "#/components/schemas/AuthorizeActionPackResponse" "400": description: Invalid request (e.g. returnUrl not in allowlist, unsupported auth type) "401": @@ -3226,14 +2690,8 @@ paths: description: Action pack not found "429": description: Too Many Requests - x-visibility: Preview - parameters: - - name: actionPackId - in: path - description: ID of the action pack to query or authorize. - required: true - schema: - type: string + security: + - APIToken: [] /api/index/v1/indexdocument: post: summary: Index document @@ -5132,1194 +4590,133 @@ paths: 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: - 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: - PlatformUgcType: - type: string - enum: - - ANNOUNCEMENTS - - ANSWERS - - COLLECTIONS - - SHORTCUTS - description: Type of user-generated content. - PlatformDocumentSpec: - type: object - description: | - Reference to a document. Exactly one of `url`, `id`, or `content_id` with `ugc_type` must be provided. - oneOf: - - type: object - additionalProperties: false - required: - - url - properties: - url: - type: string - description: URL of the document. - - type: object - additionalProperties: false - required: - - id - properties: - id: - type: string - description: Glean document ID. - - type: object - additionalProperties: false - required: - - content_id - - ugc_type - properties: - content_id: - type: integer - format: int32 - description: Numeric ID of the user-generated content item. - ugc_type: - $ref: "#/components/schemas/PlatformUgcType" - doc_type: - type: string - description: Specific subtype of the user-generated content item. - PlatformDocumentIncludeField: - type: string - enum: - - LAST_VIEWED_AT - - VISITORS_COUNT - - RECENT_SHARES - - DOCUMENT_CONTENT - - CUSTOM_METADATA - description: Optional fields that can be included in returned documents. - PlatformDocumentsBatchRequest: - type: object - additionalProperties: false - required: - - document_specs - properties: - document_specs: - type: array - minItems: 1 - items: - $ref: "#/components/schemas/PlatformDocumentSpec" - description: Documents to retrieve. - include_fields: - type: array - items: - $ref: "#/components/schemas/PlatformDocumentIncludeField" - description: Additional document fields to include in the response. - PlatformDocumentContent: - type: object - properties: - full_text_list: - type: array - items: - type: string - description: Plaintext content of the document. - PlatformDocumentReference: - type: object - properties: - id: - type: string - description: Glean document ID. - title: - type: string - description: Title of the referenced document. - url: - type: string - description: Permalink for the referenced document. - PlatformCountInfo: - type: object - properties: - count: - type: integer - format: int64 - period: - type: string - description: Human-readable period represented by this count. - from: - type: string - format: date-time - to: - type: string - format: date-time - PlatformPerson: - type: object - properties: - name: - type: string - email: - type: string - obfuscated_id: - type: string - PlatformShare: - type: object - properties: - num_days_ago: - type: integer - description: Number of days since the share occurred. - sharer: - $ref: "#/components/schemas/PlatformPerson" - sharing_document: - $ref: "#/components/schemas/PlatformDocumentReference" - PlatformDocumentInteractions: - type: object - properties: - visitor_count: - $ref: "#/components/schemas/PlatformCountInfo" - shares: - type: array - items: - $ref: "#/components/schemas/PlatformShare" - PlatformViewerInfo: - type: object - properties: - last_viewed_time: - type: string - format: date-time - PlatformCustomDataValue: - type: object - properties: - string_value: - type: string - string_list_value: - type: array - items: - type: string - PlatformDocumentMetadata: - type: object - properties: - datasource: - type: string - datasource_instance: - type: string - description: Datasource instance from which the document was extracted. - object_type: - type: string - description: Datasource-specific object type. - container: - type: string - description: Name of the higher-level container. - container_id: - type: string - description: Glean document ID of the container. - parent_id: - type: string - description: Glean document ID of the direct parent. - mime_type: - type: string - interactions: - $ref: "#/components/schemas/PlatformDocumentInteractions" - viewer_info: - $ref: "#/components/schemas/PlatformViewerInfo" - custom_data: - type: object - additionalProperties: - $ref: "#/components/schemas/PlatformCustomDataValue" - description: Custom metadata requested via `CUSTOM_METADATA`. - PlatformDocumentSection: - type: object - properties: - title: - type: string - description: Section title. - url: - type: string - description: Permalink for the section. - PlatformDocument: - type: object - required: - - id - properties: - id: - type: string - description: Glean document ID. - datasource: - type: string - description: App or repository type from which the document was extracted. - connector_type: - type: string - description: Connector type for the source system. - document_type: - type: string - description: Datasource-specific type of the document. - title: - type: string - description: Title of the document. - url: - type: string - description: Permalink for the document. - content: - $ref: "#/components/schemas/PlatformDocumentContent" - container_document: - $ref: "#/components/schemas/PlatformDocumentReference" - parent_document: - $ref: "#/components/schemas/PlatformDocumentReference" - metadata: - $ref: "#/components/schemas/PlatformDocumentMetadata" - sections: - type: array - items: - $ref: "#/components/schemas/PlatformDocumentSection" - description: Content subsections in the document. - PlatformDocumentBatchErrorCode: - type: string - enum: - - NOT_FOUND_OR_NOT_ALLOWED - - INVALID_DOCUMENT_SPEC - - ANNOTATION_ERROR - - DOCUMENT_GENERATION_ERROR - description: Stable machine-readable item-level failure code. - PlatformDocumentBatchError: - type: object - required: - - code - - message - properties: - code: - $ref: "#/components/schemas/PlatformDocumentBatchErrorCode" - message: - type: string - description: Human-readable explanation for the item-level failure. - PlatformDocumentBatchResult: - description: | - One document retrieval result. Successful results include `document`; lookup failures include `error`. - oneOf: - - type: object - additionalProperties: false - required: - - status - - document - properties: - status: - type: string - enum: - - FOUND - document: - $ref: "#/components/schemas/PlatformDocument" - - type: object - additionalProperties: false - required: - - status - - error - properties: - status: - type: string - enum: - - NOT_FOUND - - INVALID - - ERROR - error: - $ref: "#/components/schemas/PlatformDocumentBatchError" - PlatformDocumentsBatchResponse: - type: object - required: - - request_id - - results - properties: - request_id: - type: string - description: Server-generated identifier for this response, useful for support. - results: - type: array - items: - $ref: "#/components/schemas/PlatformDocumentBatchResult" - description: Results in the same order as `document_specs`. - 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://developer.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: - type: string - description: Stable machine-readable error code. - enum: - - invalid_request - - missing_required_field - - invalid_parameter - - invalid_cursor - - expired_cursor - - invalid_filter - - authentication_required - - token_expired - - insufficient_permissions - - resource_not_found - - method_not_allowed - - request_timeout - - conflict - - gone - - unprocessable_query - - rate_limit_exceeded - - internal_error - - service_unavailable - example: invalid_cursor - documentation_url: - type: string - format: uri - description: Direct URL to documentation for this error code. - example: https://developer.glean.com/errors/invalid-cursor - request_id: - type: string - description: Platform-generated request ID for support correlation. - example: req_7f8a9b0c1d2e - PlatformDocumentPermissionsResponse: - type: object - required: - - request_id - - allowed_user_emails - - visible_to_all - properties: - request_id: - type: string - description: Server-generated identifier for this response, useful for support. - allowed_user_emails: - type: array - items: - type: string - description: Email addresses for users who can access the document. - visible_to_all: - type: boolean - description: Whether the document is visible to everyone. - PlatformPeopleIncludeField: - type: string - description: Optional profile fields to request. - enum: - - PEOPLE_DETAILS - - MANAGEMENT_DETAILS - PlatformPeopleIncludeType: - type: string - description: Optional people result types to request. - x-enumDescriptions: - INVALID_ENTITIES: Return invalid requested people that can be loaded in the people array with is_valid set to false. Identifiers that cannot be loaded are returned in not_found. - enum: - - INVALID_ENTITIES - x-speakeasy-enum-descriptions: - INVALID_ENTITIES: Return invalid requested people that can be loaded in the people array with is_valid set to false. Identifiers that cannot be loaded are returned in not_found. - PlatformPeopleSearchRequest: - type: object - additionalProperties: false - properties: - person_ids: - type: array - description: Glean person IDs to retrieve. - items: - type: string - example: - - abc123 - - abc456 - email_ids: - type: array - description: Email addresses to retrieve. - items: - type: string - example: - - jane.smith@example.com - include_fields: - type: array - description: Optional profile fields to include beyond the default profile. - items: - $ref: "#/components/schemas/PlatformPeopleIncludeField" - include_types: - type: array - description: Optional non-default people result types to include. - items: - $ref: "#/components/schemas/PlatformPeopleIncludeType" - PlatformPersonType: - type: string - description: Person employment status or account type. - enum: - - FULL_TIME - - CONTRACTOR - - NON_EMPLOYEE - - FORMER_EMPLOYEE - PlatformPeopleSearchPerson: - type: object - required: - - id - - is_valid - - name - properties: - id: - type: string - description: Opaque Glean person ID. - is_valid: - type: boolean - description: Whether this is a valid person record. Invalid people are returned only when requested with include_types. - name: - type: string - description: Display name. - type: - $ref: "#/components/schemas/PlatformPersonType" - email: - type: string - format: email - description: Primary email address. - title: - type: string - description: Job title. - department: - type: string - description: Department or organizational unit. - location: - type: string - description: User-facing location. - photo_url: - type: string - format: uri - description: Avatar URL. - manager_id: - type: string - description: Opaque Glean person ID for the person's manager. - manager_name: - type: string - description: Display name for the person's manager. - PlatformPeopleSearchResponse: - type: object - required: - - people - - not_found - - request_id - properties: - people: - type: array - description: People matching the requested identifiers. - items: - $ref: "#/components/schemas/PlatformPeopleSearchPerson" - not_found: - type: array - description: Identifiers that could not be resolved. - items: - type: string - request_id: - type: string - description: Platform-generated request ID for support correlation. - 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. - 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 - 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. - PlatformToolParameter: - type: object - properties: - type: - type: string - description: Parameter type. - enum: - - string - - number - - boolean - - object - - array - name: - type: string - description: Parameter name. - description: - type: string - description: Parameter description. - is_required: - type: boolean - description: Whether the parameter is required. - possible_values: - type: array - description: Possible primitive values for the parameter. - items: - type: string - items: - $ref: "#/components/schemas/PlatformToolParameter" - properties: - type: object - description: Object properties for object parameters. - additionalProperties: - $ref: "#/components/schemas/PlatformToolParameter" - PlatformTool: - type: object - required: - - type - - name - - display_name - - description - - parameters - properties: - type: - type: string - description: Type of tool. - enum: - - READ - - WRITE - name: - type: string - description: Unique identifier for the tool. - display_name: - type: string - description: Human-readable name. - description: - type: string - description: LLM-friendly description of the tool. - parameters: - type: object - description: Parameters supported by the tool. - additionalProperties: - $ref: "#/components/schemas/PlatformToolParameter" - PlatformToolsListResponse: - type: object - required: - - tools - - request_id - properties: - tools: - type: array - description: List of tools available to the user. - items: - $ref: "#/components/schemas/PlatformTool" - request_id: - type: string - description: Platform-generated request ID for support correlation. - PlatformToolsCallRequest: - type: object - additionalProperties: false - required: - - name - - parameters - properties: - name: - type: string - minLength: 1 - description: Name of the tool to execute. - parameters: - type: object - description: Tool parameter values keyed by parameter name. - additionalProperties: true - PlatformToolsCallResponse: - type: object - required: - - raw_response - - request_id - properties: - raw_response: - type: object - description: Raw response returned by the tool. - additionalProperties: true - request_id: - type: string - description: Platform-generated request ID for support correlation. - PlatformFilter: - type: object - required: - - field - - values - description: | - A single filter criterion. Multiple values within a filter are OR'd. 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 operator 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 - exclude: - type: boolean - default: false - description: Excludes results matching any of the specified values when true. - 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 - 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`. - example: quarterly planning 2026 - 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. - example: - - confluence - - google_drive - filters: - type: array - items: - $ref: "#/components/schemas/PlatformFilter" - description: | - Structured filters applied to search results. Multiple values within a filter are OR'd. Multiple filters are AND'd together. 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" - PlatformSearchResultPerson: - type: object - nullable: true - description: A person associated with the result. - properties: - name: - type: string - description: Display name. - example: Jane Smith - email: - type: string - format: email - description: Email address. - example: jane.smith@company.com - 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 - document_type: - type: string - nullable: true - description: The document type within the datasource. - example: page - creator: - $ref: "#/components/schemas/PlatformSearchResultPerson" - owner: - $ref: "#/components/schemas/PlatformSearchResultPerson" - 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. - PlatformSummarizeDocumentSpec: - type: object - description: | - Reference to a document to summarize. Exactly one of `url`, `id`, or a UGC pair (`content_id` + `ugc_type` for ANNOUNCEMENTS/ANSWERS/COLLECTIONS) must be provided. - oneOf: - - type: object - additionalProperties: false - required: - - url - properties: - url: - type: string - description: Public URL of the document. - - type: object - additionalProperties: false - required: - - id - properties: - id: - type: string - description: Glean document ID. - - type: object - additionalProperties: false - required: - - content_id - - ugc_type - properties: - content_id: - type: integer - format: int32 - description: Numeric ID of the user-generated content item. - ugc_type: - type: string - enum: - - ANNOUNCEMENTS - - ANSWERS - - COLLECTIONS - description: Datasource type of the user-generated content item. - PlatformSummarizeRequest: - type: object - additionalProperties: false - required: - - document_specs - properties: - document_specs: - type: array - minItems: 1 - items: - $ref: "#/components/schemas/PlatformSummarizeDocumentSpec" - description: Specifications of the documents to summarize. - preferred_summary_length: - type: integer - minimum: 1 - default: 1000 - description: | - Preferred summary length in characters. The model treats this as a target, not a strict bound. - tracking_token: - type: string - description: | - Opaque token from a previous response. Pass it back when reporting feedback to associate the feedback with this summary. - PlatformSummary: - type: object - properties: - text: - type: string - description: The generated summary text. - follow_up_prompts: - type: array - items: - type: string - description: Suggested follow-up prompts derived from the summarized documents. - PlatformSummarizeResponse: - type: object - properties: - request_id: - type: string - description: Server-generated identifier for this response, useful for support. - summary: - $ref: "#/components/schemas/PlatformSummary" - tracking_token: - type: string - description: | - Opaque token representing this summary. Pass it back to the feedback endpoint to associate feedback with this summary. + 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: ActivityEventParams: properties: bodyContent: - type: string 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 @@ -6330,35 +4727,32 @@ components: 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. + type: integer query: - type: string description: The user's search query associated with a SEARCH. - referrer: type: string + referrer: description: The referring URL of the VIEW or SEARCH. - title: type: string + title: description: The page title associated with the URL of the event + type: string 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. + 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 - 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`. @@ -6368,6 +4762,14 @@ components: CRAWL: Represents an explicit request to index the given `url` along with associated attributes in this payload. HISTORICAL_SEARCH: Represents a search performed at the given `url` as indicated by the user's history. HISTORICAL_VIEW: Represents a visit to the given `url` as indicated by the user's history. + enum: + - VIEW + - EDIT + - SEARCH + - COMMENT + - CRAWL + - HISTORICAL_SEARCH + - HISTORICAL_VIEW x-speakeasy-enum-descriptions: VIEW: Represents a visit to the given `url`. EDIT: Represents an edit of the document represented by the `url`. @@ -6377,27 +4779,22 @@ components: 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' + $ref: "#/components/schemas/ActivityEventParams" timestamp: type: string - format: date-time description: The ISO 8601 timestamp when the activity began. + format: date-time url: - type: string description: The URL of the activity. - required: - - action - - source - - timestamp - - url + type: string Activity: + required: + - events properties: events: type: array items: - $ref: '#/components/schemas/ActivityEvent' - required: - - events + $ref: "#/components/schemas/ActivityEvent" example: events: - url: https://example.com/ @@ -6432,11 +4829,11 @@ components: 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 + origID: description: An opaque user ID for the authenticated user (ignores actas). + type: string FeedbackChatExchange: properties: timestamp: @@ -6454,13 +4851,13 @@ components: 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 - description: List of documents read by the agent. response: type: string ManualFeedbackInfo: @@ -6471,6 +4868,7 @@ components: deprecated: true source: type: string + description: The source associated with the Feedback.event.MANUAL_FEEDBACK event. enum: - AUTOCOMPLETE - CALENDAR @@ -6494,13 +4892,13 @@ components: - 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 + description: The issue(s) the user indicated in the feedback. items: type: string enum: @@ -6519,7 +4917,6 @@ components: - RESULTS_HELPFUL - RESULTS_POOR_ORDER - TOO_MUCH_ONE_KIND - description: The issue(s) the user indicated in the feedback. imageUrls: type: array items: @@ -6550,17 +4947,17 @@ components: chatTranscript: type: array items: - $ref: '#/components/schemas/FeedbackChatExchange' + $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 - 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. @@ -6580,14 +4977,15 @@ components: 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 - description: The search/chat parameters used for this implementation. 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 @@ -6598,7 +4996,6 @@ components: modelUsed: type: string description: The specific model version used. - description: Metadata about the response (e.g., latency, token count). ManualFeedbackSideBySideInfo: properties: email: @@ -6606,19 +5003,19 @@ components: 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 - 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. + items: + $ref: "#/components/schemas/SideBySideImplementation" evaluationSessionId: type: string description: Unique identifier for this evaluation session to group related feedback events. @@ -6627,11 +5024,11 @@ components: 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 - description: The vote for this specific implementation. comments: type: string description: Specific feedback comments for this implementation. @@ -6661,12 +5058,16 @@ components: - 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 @@ -6682,47 +5083,13 @@ components: - 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 + description: A list of server-generated trackingTokens to which this event applies. 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. @@ -6756,6 +5123,39 @@ components: UPVOTE: The user gave feedback that the object was useful. VIEW: The object was visible within the user's viewport. VISIBLE: The object was visible within the user's viewport. + enum: + - CLICK + - CONTAINER_CLICK + - COPY_LINK + - CREATE + - DISMISS + - DOWNVOTE + - EMAIL + - EXECUTE + - FILTER + - FIRST_TOKEN + - FOCUS_IN + - LAST_TOKEN + - MANUAL_FEEDBACK + - MANUAL_FEEDBACK_SIDE_BY_SIDE + - FEEDBACK_TIME_SAVED + - MARK_AS_READ + - MESSAGE + - MIDDLE_CLICK + - PAGE_BLUR + - PAGE_FOCUS + - PAGE_LEAVE + - PREVIEW + - RELATED_CLICK + - RIGHT_CLICK + - SECTION_CLICK + - SEEN + - SELECT + - SHARE + - SHOW_MORE + - UPVOTE + - VIEW + - VISIBLE x-speakeasy-enum-descriptions: CLICK: The object's primary link was clicked with the intent to view its full representation. Depending on the object type, this may imply an external navigation or navigating to a new page or view within the Glean app. CONTAINER_CLICK: A link to the object's parent container (e.g. the folder in which it's located) was clicked. @@ -6795,67 +5195,65 @@ components: 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' + $ref: "#/components/schemas/SessionInfo" timestamp: type: string - format: date-time description: The ISO 8601 timestamp when the event occured. + format: date-time user: - $ref: '#/components/schemas/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 - 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 + description: The UI element tree associated with the event, if any. items: type: string - description: The UI element tree associated with the event, if any. + type: array uiElement: type: string description: The UI element associated with the event, if any. manualFeedbackInfo: - $ref: '#/components/schemas/ManualFeedbackInfo' + $ref: "#/components/schemas/ManualFeedbackInfo" manualFeedbackSideBySideInfo: - $ref: '#/components/schemas/ManualFeedbackSideBySideInfo' + $ref: "#/components/schemas/ManualFeedbackSideBySideInfo" seenFeedbackInfo: - $ref: '#/components/schemas/SeenFeedbackInfo' + $ref: "#/components/schemas/SeenFeedbackInfo" userViewInfo: - $ref: '#/components/schemas/UserViewInfo' + $ref: "#/components/schemas/UserViewInfo" workflowFeedbackInfo: - $ref: '#/components/schemas/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: + 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. - required: - - text ConnectorType: type: string + description: The source from which document content was pulled, e.g. an API crawl or browser history enum: - API_CRAWL - BROWSER_CRAWL @@ -6865,7 +5263,6 @@ components: - 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: @@ -6882,16 +5279,16 @@ components: type: string description: The app or other repository type from which the document was extracted connectorType: - $ref: '#/components/schemas/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' + $ref: "#/components/schemas/DocumentContent" containerDocument: - $ref: '#/components/schemas/Document' + $ref: "#/components/schemas/Document" parentDocument: - $ref: '#/components/schemas/Document' + $ref: "#/components/schemas/Document" title: type: string description: The title of the document. @@ -6899,12 +5296,12 @@ components: type: string description: A permalink for the document. metadata: - $ref: '#/components/schemas/DocumentMetadata' + $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. + items: + $ref: "#/components/schemas/DocumentSection" SearchProviderInfo: properties: name: @@ -6947,13 +5344,13 @@ components: - 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. + example: EQUALS x-speakeasy-enum-descriptions: EQUALS: The value is equal to the specified value. ID_EQUALS: The value is equal to the specified ID. @@ -6962,8 +5359,8 @@ components: NOT_EQUALS: The value is not equal to the specified value. isNegated: type: boolean - description: DEPRECATED - please use relationType instead deprecated: true + description: DEPRECATED - please use relationType instead x-glean-deprecated: id: 75a48c79-b36a-4171-a0a0-4af7189da66e introduced: "2026-02-05" @@ -6978,12 +5375,12 @@ components: values: type: array items: - $ref: '#/components/schemas/FacetFilterValue' + $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 + 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: @@ -6996,7 +5393,7 @@ components: filters: type: array items: - $ref: '#/components/schemas/FacetFilter' + $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: @@ -7007,6 +5404,9 @@ components: type: string description: The per-term prefix that facet buckets should be filtered on. AuthToken: + required: + - accessToken + - datasource properties: accessToken: type: string @@ -7017,15 +5417,12 @@ components: 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. + type: string expiration: + description: Unix timestamp when this token expires (in seconds since epoch UTC). type: integer format: int64 - description: Unix timestamp when this token expires (in seconds since epoch UTC). - required: - - accessToken - - datasource example: accessToken: 123abc datasource: gmail @@ -7033,24 +5430,28 @@ components: tokenType: Bearer authUser: "1" DocumentSpec: + x-multiple-discriminators: true oneOf: - type: object + required: + - url properties: url: type: string - description: The URL of the document. x-discriminator: true - required: - - url + description: The URL of the document. - type: object + required: + - id properties: id: type: string - description: The ID of the document. x-discriminator: true - required: - - id + description: The ID of the document. - type: object + required: + - contentId + - ugcType properties: ugcType: type: string @@ -7063,15 +5464,15 @@ components: 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 + 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: - - contentId - ugcType - - type: object + - ugcId properties: ugcType: type: string @@ -7085,23 +5486,21 @@ components: 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 + description: The string id for user generated content. Used for CHATS. docType: type: string description: The specific type of the user generated content type. - required: - - ugcType - - ugcId - x-multiple-discriminators: true 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' - 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.' + $ref: "#/components/schemas/DocumentSpec" SearchRequestOptions: + required: + - facetBucketSize properties: datasourceFilter: type: string @@ -7117,15 +5516,15 @@ components: facetFilters: type: array items: - $ref: '#/components/schemas/FacetFilter' + $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' + $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' + $ref: "#/components/schemas/FacetBucketFilter" facetBucketSize: type: integer description: The maximum number of FacetBuckets to return in each FacetResult. @@ -7136,22 +5535,17 @@ components: 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). + 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 - enum: - - ALL_RESULT_COUNTS - - FACET_RESULTS - - QUERY_METADATA - - RESULTS - - SPELLCHECK_METADATA 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. @@ -7159,13 +5553,18 @@ components: 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 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. @@ -7179,13 +5578,11 @@ components: 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' + $ref: "#/components/schemas/RestrictionFilters" description: A list of filters which restrict the search results to only the specified content. exclusions: - $ref: '#/components/schemas/RestrictionFilters' + $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: @@ -7201,6 +5598,9 @@ components: - fieldValues - fieldValues TextRange: + required: + - startIndex + description: A subsection of a given string to which some special formatting should be applied. properties: startIndex: type: integer @@ -7219,11 +5619,8 @@ components: 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' + $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: @@ -7232,6 +5629,8 @@ components: example: hasCopyPaste: true QuerySuggestion: + required: + - query properties: missingTerm: type: string @@ -7240,7 +5639,7 @@ components: type: string description: The query being suggested (e.g. enforcing the missing term from the original query). searchProviderInfo: - $ref: '#/components/schemas/SearchProviderInfo' + $ref: "#/components/schemas/SearchProviderInfo" description: Information about the search provider that generated this suggestion. label: type: string @@ -7249,24 +5648,25 @@ components: type: string description: The datasource associated with the suggestion. resultTab: - $ref: '#/components/schemas/ResultTab' + $ref: "#/components/schemas/ResultTab" description: The result tab associated with the suggestion. requestOptions: - $ref: '#/components/schemas/SearchRequestOptions' + $ref: "#/components/schemas/SearchRequestOptions" ranges: type: array items: - $ref: '#/components/schemas/TextRange' + $ref: "#/components/schemas/TextRange" description: The bolded ranges within the query of the QuerySuggestion. inputDetails: - $ref: '#/components/schemas/SearchRequestInputDetails' - required: - - query + $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 @@ -7277,17 +5677,16 @@ components: relatedDocuments: type: array items: - $ref: '#/components/schemas/RelatedDocuments' + $ref: "#/components/schemas/RelatedDocuments" description: A list of documents related to this person. metadata: - $ref: '#/components/schemas/PersonMetadata' - required: - - name - - obfuscatedId + $ref: "#/components/schemas/PersonMetadata" example: name: George Clooney obfuscatedId: abc123 Company: + required: + - name properties: name: type: string @@ -7297,9 +5696,9 @@ components: description: Link to internal company company profile. websiteUrls: type: array + description: Link to company's associated websites. 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). @@ -7336,13 +5735,11 @@ components: 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 + description: A map of {string, int} pairs representing counts of each document type associated with this customer. additionalProperties: type: integer - description: A map of {string, int} pairs representing counts of each document type associated with this customer. CustomDataValue: properties: displayLabel: @@ -7351,51 +5748,54 @@ components: type: string stringListValue: type: array + description: list of strings for multi-value properties items: 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 + 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' + $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 - description: Link to company's associated website domains. company: - $ref: '#/components/schemas/Company' + $ref: "#/components/schemas/Company" documentCounts: - $ref: '#/components/schemas/DocumentCounts' + $ref: "#/components/schemas/DocumentCounts" poc: type: array - items: - $ref: '#/components/schemas/Person' description: A list of POC for company. + items: + $ref: "#/components/schemas/Person" metadata: - $ref: '#/components/schemas/CustomerMetadata' + $ref: "#/components/schemas/CustomerMetadata" mergedCustomers: type: array - items: - $ref: '#/components/schemas/Customer' description: A list of Customers. + items: + $ref: "#/components/schemas/Customer" startDate: type: string format: date @@ -7408,46 +5808,44 @@ components: type: string description: User facing (potentially generated) notes about company. example: CIO is interested in trying out the product. + RelatedObject: required: - id - - company - RelatedObject: 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. - 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' + $ref: "#/components/schemas/RelatedObject" RelatedObjects: properties: relatedObjects: type: object - additionalProperties: - $ref: '#/components/schemas/RelatedObjectEdge' 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 - description: Describes the scope for a ReadPermission, WritePermission, or GrantPermission object WritePermission: + description: Describes the write permissions levels that a user has for a specific feature properties: scopeType: - $ref: '#/components/schemas/ScopeType' + $ref: "#/components/schemas/ScopeType" create: type: boolean description: True if user has create permission for this feature and scope @@ -7457,31 +5855,33 @@ components: 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' + $ref: "#/components/schemas/WritePermission" PermissionedObject: properties: permissions: - $ref: '#/components/schemas/ObjectPermissions' + $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' + $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 - 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`. @@ -7489,11 +5889,7 @@ components: 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 @@ -7501,8 +5897,9 @@ components: description: An email address type: type: string - description: An enum of `PRIMARY`, `SECONDARY`, `ONCALL`, `OTHER` default: OTHER + description: An enum of `PRIMARY`, `SECONDARY`, `ONCALL`, `OTHER` + type: object required: - email - type @@ -7523,13 +5920,17 @@ components: CustomFieldValuePerson: properties: person: - $ref: '#/components/schemas/Person' + $ref: "#/components/schemas/Person" CustomFieldValue: oneOf: - - $ref: '#/components/schemas/CustomFieldValueStr' - - $ref: '#/components/schemas/CustomFieldValueHyperlink' - - $ref: '#/components/schemas/CustomFieldValuePerson' + - $ref: "#/components/schemas/CustomFieldValueStr" + - $ref: "#/components/schemas/CustomFieldValueHyperlink" + - $ref: "#/components/schemas/CustomFieldValuePerson" CustomFieldData: + required: + - label + - values + - displayable properties: label: type: string @@ -7537,21 +5938,20 @@ components: values: type: array items: - $ref: '#/components/schemas/CustomFieldValue' + $ref: "#/components/schemas/CustomFieldValue" displayable: type: boolean description: Determines whether the client should display this custom field default: true - required: - - label - - values - - displayable DatasourceProfile: + required: + - datasource + - handle properties: datasource: type: string - description: The datasource the profile is of. example: github + description: The datasource the profile is of. handle: type: string description: The display name of the entity in the given datasource. @@ -7564,14 +5964,14 @@ components: 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' + - $ref: "#/components/schemas/RelatedObjects" + - $ref: "#/components/schemas/PermissionedObject" - type: object + required: + - id + - name properties: id: type: string @@ -7602,27 +6002,27 @@ components: 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 + 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 - items: - $ref: '#/components/schemas/TeamEmail' description: The emails for this team + items: + $ref: "#/components/schemas/TeamEmail" customFields: type: array - items: - $ref: '#/components/schemas/CustomFieldData' description: Customizable fields for additional team information. + items: + $ref: "#/components/schemas/CustomFieldData" datasourceProfiles: type: array - items: - $ref: '#/components/schemas/DatasourceProfile' 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 @@ -7635,12 +6035,12 @@ components: 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 - 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 @@ -7648,15 +6048,15 @@ components: 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' + $ref: "#/components/schemas/CustomData" GroupType: type: string + description: The type of user group + x-enumDescriptions: + COLLECTION_AUDIENCE: Refers to any viewers of the Collection. enum: - DEPARTMENT - ALL @@ -7667,15 +6067,15 @@ components: - 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: + required: + - type + - id properties: type: - $ref: '#/components/schemas/GroupType' + $ref: "#/components/schemas/GroupType" id: type: string description: A unique identifier for the group. May be the same as name. @@ -7688,34 +6088,31 @@ components: provisioningId: type: string description: identifier for greenlist provisioning, aka sciokey - required: - - type - - id UserRole: type: string + description: A user's role with respect to a specific document. enum: - OWNER - VIEWER - ANSWER_MODERATOR - EDITOR - VERIFIER - description: A user's role with respect to a specific document. UserRoleSpecification: + required: + - role properties: sourceDocumentSpec: - $ref: '#/components/schemas/DocumentSpec' + $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' + $ref: "#/components/schemas/Person" group: - $ref: '#/components/schemas/Group' + $ref: "#/components/schemas/Group" role: - $ref: '#/components/schemas/UserRole' - required: - - role + $ref: "#/components/schemas/UserRole" CustomEntity: allOf: - - $ref: '#/components/schemas/PermissionedObject' + - $ref: "#/components/schemas/PermissionedObject" - type: object properties: id: @@ -7731,12 +6128,12 @@ components: type: string description: The type of the entity. Interpretation is specific to each datasource metadata: - $ref: '#/components/schemas/CustomEntityMetadata' + $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. + items: + $ref: "#/components/schemas/UserRoleSpecification" AnswerId: properties: id: @@ -7756,9 +6153,9 @@ components: example: Why is the sky blue? questionVariations: type: array + description: Additional ways of phrasing this question. items: type: string - description: Additional ways of phrasing this question. bodyText: type: string description: The plain text answer to the question. @@ -7775,26 +6172,26 @@ components: 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. + items: + $ref: "#/components/schemas/FacetFilter" addedRoles: type: array - items: - $ref: '#/components/schemas/UserRoleSpecification' description: A list of user roles for the answer added by the owner. + items: + $ref: "#/components/schemas/UserRoleSpecification" removedRoles: type: array - items: - $ref: '#/components/schemas/UserRoleSpecification' description: A list of user roles for the answer removed by the owner. + items: + $ref: "#/components/schemas/UserRoleSpecification" roles: type: array - items: - $ref: '#/components/schemas/UserRoleSpecification' 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' + $ref: "#/components/schemas/DocumentSpec" sourceType: type: string enum: @@ -7808,44 +6205,47 @@ components: description: An opaque token that represents this particular UGC. To be used for `/feedback` reporting. StructuredText: allOf: - - $ref: '#/components/schemas/StructuredTextMutableProperties' + - $ref: "#/components/schemas/StructuredTextMutableProperties" - type: object properties: structuredList: type: array items: - $ref: '#/components/schemas/StructuredTextItem' + $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' + $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' + $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: + required: + - assignee + - remindAt properties: assignee: - $ref: '#/components/schemas/Person' + $ref: "#/components/schemas/Person" requestor: - $ref: '#/components/schemas/Person' + $ref: "#/components/schemas/Person" remindAt: type: integer description: Unix timestamp for when the reminder should trigger (in seconds since epoch UTC). @@ -7855,9 +6255,6 @@ components: 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: @@ -7877,25 +6274,27 @@ components: 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' + $ref: "#/components/schemas/TimePoint" end: - $ref: '#/components/schemas/TimePoint' + $ref: "#/components/schemas/TimePoint" CountInfo: + required: + - count properties: count: type: integer description: The counter value period: - $ref: '#/components/schemas/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: + required: + - documentId properties: lastVerifier: - $ref: '#/components/schemas/Person' + $ref: "#/components/schemas/Person" lastVerificationTs: type: integer description: The unix timestamp of the verification (in seconds since epoch UTC). @@ -7903,27 +6302,27 @@ components: type: integer description: The unix timestamp of the verification expiration if applicable (in seconds since epoch UTC). document: - $ref: '#/components/schemas/Document' + $ref: "#/components/schemas/Document" reminders: type: array items: - $ref: '#/components/schemas/Reminder' + $ref: "#/components/schemas/Reminder" description: Info about all outstanding verification reminders for the document if exists. lastReminder: - $ref: '#/components/schemas/Reminder' + $ref: "#/components/schemas/Reminder" visitorCount: type: array items: - $ref: '#/components/schemas/CountInfo' + $ref: "#/components/schemas/CountInfo" description: Number of visitors to the document during included time periods. candidateVerifiers: type: array items: - $ref: '#/components/schemas/Person' + $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: + required: + - state properties: state: type: string @@ -7933,10 +6332,10 @@ components: - DEPRECATED description: The verification state for the document. metadata: - $ref: '#/components/schemas/VerificationMetadata' - required: - - state + $ref: "#/components/schemas/VerificationMetadata" CollectionBaseMutableProperties: + required: + - name properties: name: type: string @@ -7946,21 +6345,19 @@ components: 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. + items: + $ref: "#/components/schemas/UserRoleSpecification" removedRoles: type: array - items: - $ref: '#/components/schemas/UserRoleSpecification' description: A list of removed user roles for the Collection. + items: + $ref: "#/components/schemas/UserRoleSpecification" audienceFilters: type: array items: - $ref: '#/components/schemas/FacetFilter' + $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: @@ -7971,8 +6368,10 @@ components: description: Thumbnail URL. This can be user provided image and/or from downloaded images hosted by Glean. CollectionMutableProperties: allOf: - - $ref: '#/components/schemas/CollectionBaseMutableProperties' + - $ref: "#/components/schemas/CollectionBaseMutableProperties" - type: object + required: + - name properties: icon: type: string @@ -7984,12 +6383,10 @@ components: type: integer description: The parent of this Collection, or 0 if it's a top-level Collection. thumbnail: - $ref: '#/components/schemas/Thumbnail' + $ref: "#/components/schemas/Thumbnail" allowedDatasource: type: string description: The datasource type this Collection can hold. - required: - - name CollectionItemMutableProperties: properties: name: @@ -8028,30 +6425,30 @@ components: 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. + items: + $ref: "#/components/schemas/UserRoleSpecification" removedRoles: type: array - items: - $ref: '#/components/schemas/UserRoleSpecification' description: A list of user roles removed for the Shortcut. + items: + $ref: "#/components/schemas/UserRoleSpecification" ShortcutMetadata: properties: createdBy: - $ref: '#/components/schemas/Person' + $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' + $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' + $ref: "#/components/schemas/Document" description: Document that corresponds to the destination URL, if applicable. intermediateUrl: type: string @@ -8067,11 +6464,13 @@ components: description: The URL using which the user can access the edit page of the shortcut. Shortcut: allOf: - - $ref: '#/components/schemas/UserGeneratedContentId' - - $ref: '#/components/schemas/ShortcutMutableProperties' - - $ref: '#/components/schemas/PermissionedObject' - - $ref: '#/components/schemas/ShortcutMetadata' + - $ref: "#/components/schemas/UserGeneratedContentId" + - $ref: "#/components/schemas/ShortcutMutableProperties" + - $ref: "#/components/schemas/PermissionedObject" + - $ref: "#/components/schemas/ShortcutMetadata" - type: object + required: + - inputAlias properties: alias: type: string @@ -8081,17 +6480,18 @@ components: description: Title for the Go Link roles: type: array - items: - $ref: '#/components/schemas/UserRoleSpecification' description: A list of user roles for the Go Link. - required: - - inputAlias + items: + $ref: "#/components/schemas/UserRoleSpecification" Collection: allOf: - - $ref: '#/components/schemas/CollectionMutableProperties' - - $ref: '#/components/schemas/PermissionedObject' - - $ref: '#/components/schemas/UgcTrackingSignals' + - $ref: "#/components/schemas/CollectionMutableProperties" + - $ref: "#/components/schemas/PermissionedObject" + - $ref: "#/components/schemas/UgcTrackingSignals" - type: object + required: + - id + - description properties: id: type: integer @@ -8103,9 +6503,9 @@ components: type: string format: date-time creator: - $ref: '#/components/schemas/Person' + $ref: "#/components/schemas/Person" updatedBy: - $ref: '#/components/schemas/Person' + $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. @@ -8115,10 +6515,10 @@ components: items: type: array items: - $ref: '#/components/schemas/CollectionItem' + $ref: "#/components/schemas/CollectionItem" description: The items in this Collection. pinMetadata: - $ref: '#/components/schemas/CollectionPinnedMetadata' + $ref: "#/components/schemas/CollectionPinnedMetadata" description: Metadata having what categories this Collection is pinned to and the eligible categories to pin to shortcuts: type: array @@ -8128,20 +6528,20 @@ components: children: type: array items: - $ref: '#/components/schemas/Collection' + $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. - required: - - id - - description + items: + $ref: "#/components/schemas/UserRoleSpecification" CollectionItem: allOf: - - $ref: '#/components/schemas/CollectionItemMutableProperties' + - $ref: "#/components/schemas/CollectionItemMutableProperties" - type: object + required: + - collectionId + - itemType properties: collectionId: type: integer @@ -8156,20 +6556,20 @@ components: type: string description: Unique identifier for the item within the Collection it belongs to. createdBy: - $ref: '#/components/schemas/Person' + $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' + $ref: "#/components/schemas/Document" description: The Document this CollectionItem corresponds to (omitted if item is a non-indexed URL). shortcut: - $ref: '#/components/schemas/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' + $ref: "#/components/schemas/Collection" description: The Collection this CollectionItem corresponds to (only included if item type is COLLECTION). itemType: type: string @@ -8178,70 +6578,69 @@ components: - TEXT - URL - COLLECTION - required: - - collectionId - - itemType CollectionPinnableCategories: type: string + description: Categories a Collection can be pinned to. enum: - COMPANY_RESOURCE - DEPARTMENT_RESOURCE - TEAM_RESOURCE - description: Categories a Collection can be pinned to. CollectionPinnableTargets: type: string + description: What targets can a Collection be pinned to. enum: - RESOURCE_CARD - TEAM_PROFILE_PAGE - description: What targets can a Collection be pinned to. CollectionPinTarget: + required: + - category properties: category: - $ref: '#/components/schemas/CollectionPinnableCategories' + $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 + $ref: "#/components/schemas/CollectionPinnableTargets" CollectionPinMetadata: + required: + - id + - target properties: id: type: integer description: The ID of the Collection. target: - $ref: '#/components/schemas/CollectionPinTarget' - required: - - id - - target + $ref: "#/components/schemas/CollectionPinTarget" CollectionPinnedMetadata: properties: existingPins: type: array items: - $ref: '#/components/schemas/CollectionPinTarget' + $ref: "#/components/schemas/CollectionPinTarget" description: List of targets this Collection is pinned to. eligiblePins: type: array items: - $ref: '#/components/schemas/CollectionPinMetadata' + $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' + - $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' + $ref: "#/components/schemas/StructuredText" likes: - $ref: '#/components/schemas/AnswerLikes' + $ref: "#/components/schemas/AnswerLikes" author: - $ref: '#/components/schemas/Person' + $ref: "#/components/schemas/Person" createTime: type: string format: date-time @@ -8251,22 +6650,21 @@ components: format: date-time description: The time the answer was last updated in ISO format (ISO 8601). updatedBy: - $ref: '#/components/schemas/Person' + $ref: "#/components/schemas/Person" verification: - $ref: '#/components/schemas/Verification' + $ref: "#/components/schemas/Verification" collections: type: array - items: - $ref: '#/components/schemas/Collection' 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' - required: - - id + $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 @@ -8279,9 +6677,9 @@ components: description: The ID of the associated action. parameters: type: object + description: Map of assistant predicted parameters and their corresponding values. 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. @@ -8291,7 +6689,6 @@ components: 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: @@ -8306,14 +6703,14 @@ components: 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' - description: List of follow-up actions generated for the given query or the generated question. + $ref: "#/components/schemas/FollowupAction" ranges: type: array items: - $ref: '#/components/schemas/TextRange' + $ref: "#/components/schemas/TextRange" description: Answer subsections to mark with special formatting (citations, bolding etc) status: type: string @@ -8334,12 +6731,14 @@ components: 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' + - $ref: "#/components/schemas/Result" - type: object properties: document: - $ref: '#/components/schemas/Document' + $ref: "#/components/schemas/Document" title: type: string url: @@ -8350,62 +6749,60 @@ components: snippets: type: array items: - $ref: '#/components/schemas/SearchResultSnippet' + $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 - 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' + $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. + items: + $ref: "#/components/schemas/SearchResult" allClusteredResults: type: array - items: - $ref: '#/components/schemas/ClusterGroup' 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 - items: - $ref: '#/components/schemas/SearchResult' description: A (potentially partial) list of results representing documents attached to the main result document. + items: + $ref: "#/components/schemas/SearchResult" 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. + items: + $ref: "#/components/schemas/SearchResult" clusterType: - $ref: '#/components/schemas/ClusterTypeEnum' + $ref: "#/components/schemas/ClusterTypeEnum" mustIncludeSuggestions: - $ref: '#/components/schemas/QuerySuggestionList' + $ref: "#/components/schemas/QuerySuggestionList" querySuggestion: - $ref: '#/components/schemas/QuerySuggestion' + $ref: "#/components/schemas/QuerySuggestion" prominence: - $ref: '#/components/schemas/SearchResultProminenceEnum' + $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 + items: + $ref: "#/components/schemas/PinDocument" example: snippets: - snippet: snippet @@ -8435,8 +6832,10 @@ components: type: string description: Question text that was matched to produce this result. questionResult: - $ref: '#/components/schemas/SearchResult' + $ref: "#/components/schemas/SearchResult" CalendarAttendee: + required: + - person properties: isOrganizer: type: boolean @@ -8445,12 +6844,12 @@ components: 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' + $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. + items: + $ref: "#/components/schemas/CalendarAttendee" responseStatus: type: string enum: @@ -8458,14 +6857,12 @@ components: - DECLINED - NO_RESPONSE - TENTATIVE - required: - - person CalendarAttendees: properties: people: type: array items: - $ref: '#/components/schemas/CalendarAttendee' + $ref: "#/components/schemas/CalendarAttendee" description: Full details of some of the attendees of this event isLimit: type: boolean @@ -8502,7 +6899,7 @@ components: type: string format: date-time attendees: - $ref: '#/components/schemas/CalendarAttendees' + $ref: "#/components/schemas/CalendarAttendees" description: The attendee list, including their response status isCancelled: type: boolean @@ -8520,6 +6917,8 @@ components: type: string description: The conference provider (e.g., "Microsoft Teams", "Zoom") AppResult: + required: + - datasource properties: datasource: type: string @@ -8533,8 +6932,6 @@ components: iconUrl: type: string description: If there is available icon URL. - required: - - datasource CodeLine: properties: lineNumber: @@ -8544,7 +6941,7 @@ components: ranges: type: array items: - $ref: '#/components/schemas/TextRange' + $ref: "#/components/schemas/TextRange" description: Index ranges depicting matched sections of the line Code: properties: @@ -8557,7 +6954,7 @@ components: lines: type: array items: - $ref: '#/components/schemas/CodeLine' + $ref: "#/components/schemas/CodeLine" isLastMatch: type: boolean description: Last file match for a repo @@ -8583,10 +6980,11 @@ components: suggestions: type: array items: - $ref: '#/components/schemas/QuerySuggestion' + $ref: "#/components/schemas/QuerySuggestion" person: - $ref: '#/components/schemas/Person' + $ref: "#/components/schemas/Person" IconConfig: + description: Defines how to render an icon properties: generatedBackgroundColorKey: type: string @@ -8620,13 +7018,13 @@ components: 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: + description: Metadata of a Chat a user had with Glean Assistant. This contains no actual conversational content. properties: id: type: string @@ -8635,7 +7033,7 @@ components: type: integer description: Server Unix timestamp of the creation time (in seconds since epoch UTC). createdBy: - $ref: '#/components/schemas/Person' + $ref: "#/components/schemas/Person" description: The user who created this Chat. updateTime: type: integer @@ -8650,12 +7048,12 @@ components: 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. + $ref: "#/components/schemas/IconConfig" RelatedDocuments: properties: relation: type: string + description: How this document relates to the including entity. enum: - ATTACHMENT - CANONICAL @@ -8673,7 +7071,6 @@ components: - TICKET - TRANSCRIPT - WITH - description: How this document relates to the including entity. x-enum-varnames: - ATTACHMENT - CANONICAL @@ -8699,11 +7096,11 @@ components: 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' + $ref: "#/components/schemas/QuerySuggestion" documents: type: array items: - $ref: '#/components/schemas/Document' + $ref: "#/components/schemas/Document" description: A truncated list of documents with this relation. TO BE DEPRECATED. deprecated: true x-glean-deprecated: @@ -8715,7 +7112,7 @@ components: results: type: array items: - $ref: '#/components/schemas/SearchResult' + $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: @@ -8728,18 +7125,19 @@ components: ranges: type: array items: - $ref: '#/components/schemas/TextRange' + $ref: "#/components/schemas/TextRange" description: Subsections of the answer string to which some special formatting should be applied (eg. bold) EntityType: type: string + description: The type of entity. + x-include-enum-class-prefix: true enum: - PERSON - PROJECT - CUSTOMER - description: The type of entity. - x-include-enum-class-prefix: true Disambiguation: type: object + description: A disambiguation between multiple entities with the same name properties: name: type: string @@ -8748,8 +7146,7 @@ components: 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 + $ref: "#/components/schemas/EntityType" SearchResultSnippet: properties: mimeType: @@ -8764,15 +7161,15 @@ components: ranges: type: array items: - $ref: '#/components/schemas/TextRange' + $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 + 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" @@ -8784,90 +7181,91 @@ components: 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' + $ref: "#/components/schemas/Document" person: - $ref: '#/components/schemas/Person' + $ref: "#/components/schemas/Person" customer: - $ref: '#/components/schemas/Customer' + $ref: "#/components/schemas/Customer" team: - $ref: '#/components/schemas/Team' + $ref: "#/components/schemas/Team" customEntity: - $ref: '#/components/schemas/CustomEntity' + $ref: "#/components/schemas/CustomEntity" answer: - $ref: '#/components/schemas/Answer' + $ref: "#/components/schemas/Answer" generatedQna: - $ref: '#/components/schemas/GeneratedQna' + $ref: "#/components/schemas/GeneratedQna" extractedQnA: - $ref: '#/components/schemas/ExtractedQnA' + $ref: "#/components/schemas/ExtractedQnA" meeting: - $ref: '#/components/schemas/Meeting' + $ref: "#/components/schemas/Meeting" app: - $ref: '#/components/schemas/AppResult' + $ref: "#/components/schemas/AppResult" collection: - $ref: '#/components/schemas/Collection' + $ref: "#/components/schemas/Collection" code: - $ref: '#/components/schemas/Code' + $ref: "#/components/schemas/Code" shortcut: - $ref: '#/components/schemas/Shortcut' + $ref: "#/components/schemas/Shortcut" querySuggestions: - $ref: '#/components/schemas/QuerySuggestionList' + $ref: "#/components/schemas/QuerySuggestionList" chat: - $ref: '#/components/schemas/ChatMetadata' + $ref: "#/components/schemas/ChatMetadata" relatedDocuments: type: array items: - $ref: '#/components/schemas/RelatedDocuments' + $ref: "#/components/schemas/RelatedDocuments" description: A list of documents related to this structured result. relatedQuestion: - $ref: '#/components/schemas/RelatedQuestion' + $ref: "#/components/schemas/RelatedQuestion" disambiguation: - $ref: '#/components/schemas/Disambiguation' + $ref: "#/components/schemas/Disambiguation" snippets: + description: Any snippets associated to the populated object. type: array items: - $ref: '#/components/schemas/SearchResultSnippet' - description: Any snippets associated to the populated object. + $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 - 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. + enum: + - HERO + - PROMOTED + - STANDARD x-speakeasy-enum-descriptions: HERO: A high-confidence result that should feature prominently on the page. PROMOTED: May not be the best result but should be given additional visual distinction. STANDARD: Should not be distinct from any other results. source: type: string + description: Source context for this result. Possible values depend on the result type. enum: - EXPERT_DETECTION - ENTITY_NLQ - CALENDAR_EVENT - AGENT - 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. + items: + $ref: "#/components/schemas/StructuredResult" trackingToken: type: string description: An opaque token that represents this particular result in this particular query. To be used for /feedback reporting. ClusterTypeEnum: type: string + description: The reason for inclusion of clusteredResults. enum: - SIMILAR - FRESHNESS @@ -8880,33 +7278,32 @@ components: - SUFFIX - AUTHOR_PREFIX - AUTHOR_SUFFIX - description: The reason for inclusion of clusteredResults. ClusterGroup: + required: + - visibleCountHint properties: clusteredResults: type: array - items: - $ref: '#/components/schemas/SearchResult' description: A list of results that should be displayed as associated with this result. + items: + $ref: "#/components/schemas/SearchResult" clusterType: - $ref: '#/components/schemas/ClusterTypeEnum' + $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. + enum: + - HERO + - PROMOTED + - STANDARD x-speakeasy-enum-descriptions: HERO: A high-confidence result that should feature prominently on the page. PROMOTED: May not be the best result but should be given additional visual distinction. @@ -8915,18 +7312,20 @@ components: properties: queries: type: array + description: The query strings for which the pinned result will show. 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. + items: + $ref: "#/components/schemas/FacetFilter" PinDocument: allOf: - - $ref: '#/components/schemas/PinDocumentMutableProperties' + - $ref: "#/components/schemas/PinDocumentMutableProperties" - type: object + required: + - documentId properties: id: type: string @@ -8936,22 +7335,21 @@ components: 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. + items: + $ref: "#/components/schemas/FacetFilter" attribution: - $ref: '#/components/schemas/Person' + $ref: "#/components/schemas/Person" updatedBy: - $ref: '#/components/schemas/Person' + $ref: "#/components/schemas/Person" createTime: type: string format: date-time updateTime: type: string format: date-time - required: - - documentId 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 @@ -8965,21 +7363,21 @@ components: 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 - 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 + description: Detailed location with information about country, state, city etc. properties: deskLocation: type: string @@ -9008,8 +7406,10 @@ components: 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: + required: + - name + - profileUrl properties: name: type: string @@ -9021,10 +7421,11 @@ components: type: string format: url description: Link to profile. + PersonDistance: required: - name - - profileUrl - PersonDistance: + - obfuscatedId + - distance properties: name: type: string @@ -9036,26 +7437,23 @@ components: 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: + description: Information regarding the invite status of a person for a particular channel. properties: channel: - $ref: '#/components/schemas/CommunicationChannel' description: Channel through which the invite was sent + $ref: "#/components/schemas/CommunicationChannel" isAutoInvite: - type: boolean description: Bit that tracks if this invite was automatically sent or user-sent + type: boolean inviter: - $ref: '#/components/schemas/Person' description: The person that invited this person. + $ref: "#/components/schemas/Person" inviteTime: type: string format: date-time @@ -9064,8 +7462,8 @@ components: 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: + description: Information regarding the invite status of a person. properties: signUpTime: type: string @@ -9074,12 +7472,12 @@ components: invites: type: array items: - $ref: '#/components/schemas/ChannelInviteInfo' + $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 + description: The person that invited this person. + $ref: "#/components/schemas/Person" x-glean-deprecated: id: 1d3cd23f-9085-4378-b466-9bdc2e344a71 introduced: "2026-02-05" @@ -9087,10 +7485,10 @@ components: 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). - deprecated: true x-glean-deprecated: id: 2dc3f572-cded-483d-af07-fc9fc7fd0ae4 introduced: "2026-02-05" @@ -9098,49 +7496,51 @@ components: 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. - 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: + description: Describes the read permission level that a user has for a specific feature properties: scopeType: - $ref: '#/components/schemas/ScopeType' - description: Describes the read permission level that a user has for a specific feature + $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 - 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 + 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 - 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 + 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' - description: Describes the grant permission level that a user has for a specific feature + $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 - 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 + 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 @@ -9152,23 +7552,23 @@ components: 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' + $ref: "#/components/schemas/ReadPermissions" write: - $ref: '#/components/schemas/WritePermissions' + $ref: "#/components/schemas/WritePermissions" grant: - $ref: '#/components/schemas/GrantPermissions' + $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 - 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: + required: + - start + - end properties: start: type: string @@ -9176,23 +7576,21 @@ components: end: type: string description: The RFC3339 timestamp formatted end time of this event. - required: - - start - - end AnonymousEvent: + description: A generic, light-weight calendar event. type: object properties: time: - $ref: '#/components/schemas/TimeInterval' + $ref: "#/components/schemas/TimeInterval" eventType: + description: The nature of the event, for example "out of office". 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 + description: Displays a user's accomplishment or milestone properties: key: type: string @@ -9201,11 +7599,10 @@ components: type: string description: The badge name displayed to users iconConfig: - $ref: '#/components/schemas/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 @@ -9218,17 +7615,17 @@ components: properties: type: type: string + x-enumDescriptions: + FULL_TIME: The person is a current full-time employee of the company. + CONTRACTOR: The person is a current contractor of the company. + NON_EMPLOYEE: The person object represents a non-human actor such as a service or admin account. + FORMER_EMPLOYEE: The person is a previous employee of the company. enum: - FULL_TIME - CONTRACTOR - NON_EMPLOYEE - FORMER_EMPLOYEE example: FULL_TIME - x-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. @@ -9250,10 +7647,10 @@ components: 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' - description: Info about the employee's team(s). + $ref: "#/components/schemas/PersonTeam" departmentCount: type: integer description: The number of people in this person's department. @@ -9262,24 +7659,24 @@ components: 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 - 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' + $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' + $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' - description: The chain of reporting in the company as far up as it goes. The last entry is this person's direct manager. + $ref: "#/components/schemas/Person" phone: type: string description: Phone number as a number string. @@ -9308,11 +7705,11 @@ components: reports: type: array items: - $ref: '#/components/schemas/Person' + $ref: "#/components/schemas/Person" startDate: type: string - format: date description: The date when the employee started. + format: date endDate: type: string format: date @@ -9333,24 +7730,24 @@ components: 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' - description: List of social network profiles. + $ref: "#/components/schemas/SocialNetwork" datasourceProfile: type: array - items: - $ref: '#/components/schemas/DatasourceProfile' description: List of profiles this user has in different datasources / tools that they use. + items: + $ref: "#/components/schemas/DatasourceProfile" querySuggestions: - $ref: '#/components/schemas/QuerySuggestionList' + $ref: "#/components/schemas/QuerySuggestionList" peopleDistance: type: array items: - $ref: '#/components/schemas/PersonDistance' + $ref: "#/components/schemas/PersonDistance" description: List of people and distances to those people from this person. Optionally with metadata. inviteInfo: - $ref: '#/components/schemas/InviteInfo' + $ref: "#/components/schemas/InviteInfo" isSignedUp: type: boolean description: Whether the user has signed into Glean at least once. @@ -9359,12 +7756,12 @@ components: format: date-time description: The last time the user has used the Glean extension in ISO 8601 format. permissions: - $ref: '#/components/schemas/Permissions' + $ref: "#/components/schemas/Permissions" customFields: type: array - items: - $ref: '#/components/schemas/CustomFieldData' 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. @@ -9375,7 +7772,7 @@ components: busyEvents: type: array items: - $ref: '#/components/schemas/AnonymousEvent' + $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 @@ -9385,7 +7782,7 @@ components: badges: type: array items: - $ref: '#/components/schemas/Badge' + $ref: "#/components/schemas/Badge" description: The badges that a user has earned over their lifetime. isOrgRoot: type: boolean @@ -9400,13 +7797,6 @@ components: 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. @@ -9415,6 +7805,13 @@ components: DOMAIN_VISIBLE: Anyone in the domain can search for the document. PUBLIC_LINK: Anyone with the link can see the document. PUBLIC_VISIBLE: Anyone on the internet can search for the document. + enum: + - PRIVATE + - SPECIFIC_PEOPLE_AND_GROUPS + - DOMAIN_LINK + - DOMAIN_VISIBLE + - PUBLIC_LINK + - PUBLIC_VISIBLE x-speakeasy-enum-descriptions: PRIVATE: Only one person is able to see the document. SPECIFIC_PEOPLE_AND_GROUPS: Only specific people and/or groups can see the document. @@ -9432,22 +7829,22 @@ components: reactors: type: array items: - $ref: '#/components/schemas/Person' + $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' + $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 + $ref: "#/components/schemas/Document" DocumentInteractions: properties: numComments: @@ -9458,10 +7855,10 @@ components: 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 + items: + type: string x-glean-deprecated: id: cd754845-6eec-480f-b395-c93478aff563 introduced: "2026-02-05" @@ -9471,14 +7868,14 @@ components: reacts: type: array items: - $ref: '#/components/schemas/Reaction' + $ref: "#/components/schemas/Reaction" shares: type: array items: - $ref: '#/components/schemas/Share' + $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' + $ref: "#/components/schemas/CountInfo" ViewerInfo: properties: role: @@ -9502,13 +7899,13 @@ components: IndexStatus: properties: lastCrawledTime: + description: When the document was last crawled type: string format: date-time - description: When the document was last crawled lastIndexedTime: + description: When the document was last indexed type: string format: date-time - description: When the document was last indexed DocumentMetadata: properties: datasource: @@ -9549,21 +7946,21 @@ components: type: string format: date-time author: - $ref: '#/components/schemas/Person' + $ref: "#/components/schemas/Person" owner: - $ref: '#/components/schemas/Person' + $ref: "#/components/schemas/Person" mentionedPeople: type: array items: - $ref: '#/components/schemas/Person' + $ref: "#/components/schemas/Person" description: A list of people mentioned in the document. visibility: - $ref: '#/components/schemas/DocumentVisibility' + $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 - 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). @@ -9572,64 +7969,64 @@ components: 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. + items: + $ref: "#/components/schemas/PinDocument" priority: type: string description: The document priority. Interpretation is datasource specific. assignedTo: - $ref: '#/components/schemas/Person' + $ref: "#/components/schemas/Person" updatedBy: - $ref: '#/components/schemas/Person' + $ref: "#/components/schemas/Person" labels: type: array + description: A list of tags for the document. Interpretation is datasource specific. 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. + 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' + $ref: "#/components/schemas/DocumentInteractions" verification: - $ref: '#/components/schemas/Verification' + $ref: "#/components/schemas/Verification" viewerInfo: - $ref: '#/components/schemas/ViewerInfo' + $ref: "#/components/schemas/ViewerInfo" permissions: - $ref: '#/components/schemas/ObjectPermissions' + $ref: "#/components/schemas/ObjectPermissions" visitCount: - $ref: '#/components/schemas/CountInfo' + $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. + 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' + $ref: "#/components/schemas/CustomData" documentCategory: type: string description: The document's document_category(.proto). contactPerson: - $ref: '#/components/schemas/Person' + $ref: "#/components/schemas/Person" thumbnail: - $ref: '#/components/schemas/Thumbnail' + $ref: "#/components/schemas/Thumbnail" description: A thumbnail image representing this document. indexStatus: - $ref: '#/components/schemas/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. + items: + $ref: "#/components/schemas/Document" example: container: container parentId: JIRA_EN-1337 @@ -9663,14 +8060,14 @@ components: 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 + 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' + $ref: "#/components/schemas/StructuredResult" AnnouncementMutableProperties: properties: startTime: @@ -9685,20 +8082,20 @@ components: type: string description: The headline of the announcement. body: - $ref: '#/components/schemas/StructuredText' + $ref: "#/components/schemas/StructuredText" emoji: type: string description: An emoji used to indicate the nature of the announcement. thumbnail: - $ref: '#/components/schemas/Thumbnail' + $ref: "#/components/schemas/Thumbnail" banner: - $ref: '#/components/schemas/Thumbnail' + $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. + 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). @@ -9725,7 +8122,7 @@ components: 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' + - $ref: "#/components/schemas/AnnouncementMutableProperties" - type: object required: - title @@ -9740,17 +8137,17 @@ components: draftId: 342 Announcement: allOf: - - $ref: '#/components/schemas/AnnouncementMutableProperties' - - $ref: '#/components/schemas/DraftProperties' - - $ref: '#/components/schemas/PermissionedObject' - - $ref: '#/components/schemas/UgcTrackingSignals' + - $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' + $ref: "#/components/schemas/Person" createTimestamp: type: integer description: Server Unix timestamp of the creation time (in seconds since epoch UTC). @@ -9758,7 +8155,7 @@ components: type: integer description: Server Unix timestamp of the last update time (in seconds since epoch UTC). updatedBy: - $ref: '#/components/schemas/Person' + $ref: "#/components/schemas/Person" viewerInfo: type: object properties: @@ -9769,31 +8166,31 @@ components: type: boolean description: Whether the viewer has read the announcement. sourceDocument: - $ref: '#/components/schemas/Document' + $ref: "#/components/schemas/Document" description: The source document if the announcement is created from one. isPublished: type: boolean description: Whether or not the announcement is published. DeleteAnnouncementRequest: + required: + - id properties: id: type: integer description: The opaque id of the announcement to be deleted. - required: - - id UpdateAnnouncementRequest: allOf: - - $ref: '#/components/schemas/AnnouncementMutableProperties' + - $ref: "#/components/schemas/AnnouncementMutableProperties" - type: object - properties: - id: - type: integer - description: The opaque id of the announcement. required: - id - title - startTime - endTime + properties: + id: + type: integer + description: The opaque id of the announcement. AddedCollections: properties: addedCollections: @@ -9803,22 +8200,22 @@ components: description: IDs of Collections to which a document is added. AnswerCreationData: allOf: - - $ref: '#/components/schemas/AnswerMutableProperties' - - $ref: '#/components/schemas/AddedCollections' + - $ref: "#/components/schemas/AnswerMutableProperties" + - $ref: "#/components/schemas/AddedCollections" - type: object properties: combinedAnswerText: - $ref: '#/components/schemas/StructuredTextMutableProperties' + $ref: "#/components/schemas/StructuredTextMutableProperties" CreateAnswerRequest: - properties: - data: - $ref: '#/components/schemas/AnswerCreationData' required: - data + properties: + data: + $ref: "#/components/schemas/AnswerCreationData" DeleteAnswerRequest: allOf: - - $ref: '#/components/schemas/AnswerId' - - $ref: '#/components/schemas/AnswerDocId' + - $ref: "#/components/schemas/AnswerId" + - $ref: "#/components/schemas/AnswerDocId" - type: object required: - id @@ -9831,25 +8228,27 @@ components: 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' + - $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 + properties: + combinedAnswerText: + $ref: "#/components/schemas/StructuredTextMutableProperties" GetAnswerRequest: allOf: - - $ref: '#/components/schemas/AnswerId' - - $ref: '#/components/schemas/AnswerDocId' + - $ref: "#/components/schemas/AnswerId" + - $ref: "#/components/schemas/AnswerDocId" AnswerResult: + required: + - answer properties: answer: - $ref: '#/components/schemas/Answer' + $ref: "#/components/schemas/Answer" trackingToken: type: string description: Use `answer.trackingToken` instead. @@ -9860,8 +8259,6 @@ components: 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." - required: - - answer GetAnswerError: properties: errorType: @@ -9870,37 +8267,37 @@ components: - NO_PERMISSION - INVALID_ID answerAuthor: - $ref: '#/components/schemas/Person' + $ref: "#/components/schemas/Person" GetAnswerResponse: properties: answerResult: - $ref: '#/components/schemas/AnswerResult' + $ref: "#/components/schemas/AnswerResult" error: - $ref: '#/components/schemas/GetAnswerError' + $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' + $ref: "#/components/schemas/AnswerResult" description: List of answers with tracking tokens. - required: - - answers - - answerResults AuthStatus: type: string + description: The per-user authorization status for a datasource. 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 @@ -9908,6 +8305,8 @@ components: - 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 @@ -9919,56 +8318,48 @@ components: description: Human-readable name of the datasource instance for display. example: Slack authStatus: - $ref: '#/components/schemas/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: + required: + - unauthorizedDatasourceInstances 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 + 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 - description: Unix timestamp for when this token expires (in seconds since epoch UTC). - required: - - token - - expirationTime 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).' + 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 + 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 - 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 @@ -9977,6 +8368,13 @@ components: FAST: Uses an agent powered by the agentic engine that responds faster but may have lower quality results. Requires the agentic engine to be enabled in the deployment. ADVANCED: Uses an agent powered by the agentic engine that thinks for longer and potentially makes more LLM calls to return higher quality results. Requires the agentic engine to be enabled in the deployment. AUTO: Uses an agent powered by the agentic engine that routes between reasoning efforts based on the question and context. + enum: + - DEFAULT + - GPT + - UNIVERSAL + - FAST + - ADVANCED + - AUTO x-speakeasy-enum-descriptions: DEFAULT: Integrates with your company's knowledge. This will soon be deprecated in favor of the FAST and ADVANCED `agent` values GPT: Communicates directly with the LLM. This will soon be deprecated in favor of the FAST and ADVANCED `agent` values @@ -9985,35 +8383,36 @@ components: 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' + $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. + enum: + - DEFAULT + - QUICK x-speakeasy-enum-descriptions: DEFAULT: Used if no mode supplied. QUICK: Deprecated. useImageGeneration: type: boolean description: Whether the agent should create an image. - description: Describes the agent that executes the request. ChatFileStatus: type: string + description: Current status of the file. + x-include-enum-class-prefix: true enum: - PROCESSING - PROCESSED - PARTIALLY_PROCESSED - FAILED - DELETED - description: Current status of the file. - x-include-enum-class-prefix: true ChatFileFailureReason: type: string + description: Reason for failed status. + x-include-enum-class-prefix: true enum: - PARSE_FAILED - AV_SCAN_FAILED @@ -10026,13 +8425,12 @@ components: - URL_FETCH_FAILED - EMPTY_CONTENT - AUTH_REQUIRED - description: Reason for failed status. - x-include-enum-class-prefix: true ChatFileMetadata: type: object + description: Metadata of a file uploaded by a user for Chat. properties: status: - $ref: '#/components/schemas/ChatFileStatus' + $ref: "#/components/schemas/ChatFileStatus" uploadTime: type: integer format: int64 @@ -10042,13 +8440,13 @@ components: format: int64 description: Size of the processed file in bytes. failureReason: - $ref: '#/components/schemas/ChatFileFailureReason' + $ref: "#/components/schemas/ChatFileFailureReason" mimeType: - type: string description: MIME type of the file. - description: Metadata of a file uploaded by a user for Chat. + type: string ChatFile: type: object + description: Structure for file uploaded by a user for Chat. properties: id: type: string @@ -10063,39 +8461,38 @@ components: description: Name of the uploaded file. example: sample.pdf metadata: - $ref: '#/components/schemas/ChatFileMetadata' - description: Structure for file uploaded by a user for Chat. + $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' + $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. + $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' + $ref: "#/components/schemas/Document" sourceFile: - $ref: '#/components/schemas/ChatFile' + $ref: "#/components/schemas/ChatFile" sourcePerson: - $ref: '#/components/schemas/Person' + $ref: "#/components/schemas/Person" sourceCustomEntity: - $ref: '#/components/schemas/CustomEntity' + $ref: "#/components/schemas/CustomEntity" referenceRanges: + description: Each reference range and its corresponding snippets type: array items: - $ref: '#/components/schemas/ReferenceRange' - description: Each reference range and its corresponding snippets - description: Information about the source for a ChatMessage. + $ref: "#/components/schemas/ReferenceRange" displayName: - type: string description: Human understandable name of the tool. Max 50 characters. + type: string logoUrl: type: string description: URL used to fetch the logo. @@ -10107,6 +8504,9 @@ components: - Email - Chat message PersonObject: + required: + - name + - obfuscatedId properties: name: type: string @@ -10114,10 +8514,8 @@ components: obfuscatedId: type: string description: An opaque identifier that can be used to request metadata for a Person. - required: - - name - - obfuscatedId AuthConfig: + description: Config for tool's authentication method. type: object properties: isOnPrem: @@ -10149,11 +8547,11 @@ components: description: The type of grant type being used. status: type: string + description: Auth status of the tool. enum: - AWAITING_AUTH - AUTHORIZED - AUTH_DISABLED - description: Auth status of the tool. client_url: type: string format: url @@ -10187,41 +8585,46 @@ components: 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: + 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 - 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. + type: string displayName: - $ref: '#/components/schemas/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. + type: string logoUrl: - $ref: '#/components/schemas/logoUrl' + $ref: "#/components/schemas/logoUrl" objectName: - $ref: '#/components/schemas/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 - description: Indicates the kind of knowledge a tool would access or modify. createdBy: - $ref: '#/components/schemas/PersonObject' + $ref: "#/components/schemas/PersonObject" lastUpdatedBy: - $ref: '#/components/schemas/PersonObject' + $ref: "#/components/schemas/PersonObject" createdAt: type: string format: date-time @@ -10232,11 +8635,11 @@ components: 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 - 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: @@ -10253,25 +8656,20 @@ components: 'OAUTH_USER' uses individual user tokens for external API calls. 'DWD' refers to domain wide delegation. auth: - $ref: '#/components/schemas/AuthConfig' deprecated: true + $ref: "#/components/schemas/AuthConfig" permissions: - $ref: '#/components/schemas/ObjectPermissions' deprecated: true + $ref: "#/components/schemas/ObjectPermissions" usageInstructions: - type: string 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. - required: - - type - - name - - displayName - - displayDescription - description: The manifest for a tool that can be used to augment Glean Assistant. PossibleValue: type: object + description: Possible value of a specific parameter properties: value: type: string @@ -10279,18 +8677,17 @@ components: 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 + description: The type of the value (e.g., integer, string, boolean, etc.) 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. @@ -10306,53 +8703,54 @@ components: possibleValues: type: array items: - $ref: '#/components/schemas/PossibleValue' + $ref: "#/components/schemas/PossibleValue" description: Possible values that the parameter can take. ToolInfo: type: object properties: metadata: - $ref: '#/components/schemas/ToolMetadata' + $ref: "#/components/schemas/ToolMetadata" parameters: type: object - additionalProperties: - $ref: '#/components/schemas/WriteActionParameter' description: Parameters supported by the tool. + additionalProperties: + $ref: "#/components/schemas/WriteActionParameter" ChatMessageFragment: + description: Represents a part of a ChatMessage that originates from a single action/tool. It is designed to support rich data formats beyond simple text, allowing for a more dynamic and interactive chat experience. Each fragment can include various types of content, such as text, search queries, action information, and more. Also, each ChatMessageFragment should only have one of structuredResults, querySuggestion, writeAction, followupAction, agentRecommendation, followupRoutingSuggestion or file. allOf: - - $ref: '#/components/schemas/Result' + - $ref: "#/components/schemas/Result" - type: object properties: text: type: string querySuggestion: - $ref: '#/components/schemas/QuerySuggestion' description: The search queries issued while responding. + $ref: "#/components/schemas/QuerySuggestion" file: - $ref: '#/components/schemas/ChatFile' description: Files referenced in the message fragment. This is used to construct rich-text messages with file references. + $ref: "#/components/schemas/ChatFile" action: - $ref: '#/components/schemas/ToolInfo' description: Basic information about an action. This can be used to construct rich-text messages with action references. + $ref: "#/components/schemas/ToolInfo" citation: - $ref: '#/components/schemas/ChatMessageCitation' description: Inline citation. - 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. + $ref: "#/components/schemas/ChatMessageCitation" ChatMessage: + description: A message that is rendered as one coherent unit with one given sender. properties: agentConfig: - $ref: '#/components/schemas/AgentConfig' + $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 - 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.' + $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 @@ -10367,9 +8765,9 @@ components: 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. + items: + $ref: "#/components/schemas/ChatMessageFragment" ts: type: string description: Response timestamp of the message. @@ -10381,24 +8779,8 @@ components: 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 + 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. @@ -10415,6 +8797,22 @@ components: HEADING: A heading message used to distinguish different sections of the holistic response. WARNING: A warning message to be shown to the user. SERVER_TOOL: A message used to for server-side tool auth/use, for request and response. + enum: + - UPDATE + - CONTENT + - CONTEXT + - CONTROL + - CONTROL_START + - CONTROL_FINISH + - CONTROL_CANCEL + - CONTROL_RETRY + - CONTROL_UNKNOWN + - DEBUG + - DEBUG_EXTERNAL + - ERROR + - HEADING + - WARNING + - SERVER_TOOL x-speakeasy-enum-descriptions: UPDATE: An intermediate state message for progress updates. CONTENT: A user query or response message. @@ -10432,20 +8830,22 @@ components: WARNING: A warning message to be shown to the user. SERVER_TOOL: A message used to for server-side tool auth/use, for request and response. hasMoreFragments: + deprecated: true type: boolean description: Signals there are additional response fragments incoming. - deprecated: true - description: A message that is rendered as one coherent unit with one given sender. ChatRequestBase: + required: + - messages + description: The minimal set of fields that form a chat request. 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. + items: + $ref: "#/components/schemas/ChatMessage" sessionInfo: - $ref: '#/components/schemas/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. @@ -10453,34 +8853,31 @@ components: 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' + $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' + - $ref: "#/components/schemas/RestrictionFilters" - type: object properties: documentSpecs: type: array items: - $ref: '#/components/schemas/DocumentSpec' + $ref: "#/components/schemas/DocumentSpec" datasourceInstances: type: array items: type: string ChatRequest: allOf: - - $ref: '#/components/schemas/ChatRequestBase' + - $ref: "#/components/schemas/ChatRequestBase" - type: object properties: inclusions: - $ref: '#/components/schemas/ChatRestrictionFilters' + $ref: "#/components/schemas/ChatRestrictionFilters" description: A list of filters which only allows chat to access certain content. exclusions: - $ref: '#/components/schemas/ChatRestrictionFilters' + $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 @@ -10496,16 +8893,17 @@ components: 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' + $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' + $ref: "#/components/schemas/ChatMetadata" followUpPrompts: type: array items: @@ -10519,54 +8917,53 @@ components: chatSessionTrackingToken: type: string description: A token that is used to track the session. - description: A single response from the /chat backend. DeleteChatsRequest: + required: + - ids properties: ids: type: array items: type: string description: A non-empty list of ids of the Chats to be deleted. - required: - - ids GetChatRequest: + required: + - id properties: id: type: string description: The id of the Chat to be retrieved. - required: - - id 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' + - $ref: "#/components/schemas/ChatMetadata" + - $ref: "#/components/schemas/PermissionedObject" properties: messages: type: array items: - $ref: '#/components/schemas/ChatMessage' + $ref: "#/components/schemas/ChatMessage" description: The chat messages within a Chat. roles: type: array items: - $ref: '#/components/schemas/UserRoleSpecification' + $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' + $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' + $ref: "#/components/schemas/ChatResult" ChatMetadataResult: properties: chat: - $ref: '#/components/schemas/ChatMetadata' + $ref: "#/components/schemas/ChatMetadata" trackingToken: type: string description: An opaque token that represents this particular Chat. To be used for `/feedback` reporting. @@ -10575,24 +8972,26 @@ components: chatResults: type: array items: - $ref: '#/components/schemas/ChatMetadataResult' + $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. - required: - - id ChatApplicationDetails: {} GetChatApplicationResponse: properties: application: - $ref: '#/components/schemas/ChatApplicationDetails' + $ref: "#/components/schemas/ChatApplicationDetails" UploadChatFilesRequest: + required: + - files properties: files: type: array @@ -10600,40 +8999,38 @@ components: 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' + $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. - required: - - fileIds GetChatFilesResponse: properties: files: + description: A map of file IDs to ChatFile structs. type: object additionalProperties: - $ref: '#/components/schemas/ChatFile' - description: A map of file IDs to ChatFile structs. + $ref: "#/components/schemas/ChatFile" DeleteChatFilesRequest: + required: + - fileIds properties: fileIds: type: array items: type: string description: IDs of files to delete. - required: - - fileIds WorkflowDraftableProperties: properties: name: @@ -10642,11 +9039,11 @@ components: WorkflowMutableProperties: type: object allOf: - - $ref: '#/components/schemas/WorkflowDraftableProperties' + - $ref: "#/components/schemas/WorkflowDraftableProperties" - type: object CreateWorkflowRequest: allOf: - - $ref: '#/components/schemas/WorkflowMutableProperties' + - $ref: "#/components/schemas/WorkflowMutableProperties" - type: object properties: transient: @@ -10660,7 +9057,7 @@ components: - type: object properties: author: - $ref: '#/components/schemas/Person' + $ref: "#/components/schemas/Person" createTimestamp: type: integer description: Server Unix timestamp of the creation time. @@ -10671,20 +9068,20 @@ components: 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. + $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' + $ref: "#/components/schemas/Person" AttributionProperties: {} Workflow: allOf: - - $ref: '#/components/schemas/PermissionedObject' - - $ref: '#/components/schemas/WorkflowMutableProperties' - - $ref: '#/components/schemas/WorkflowMetadata' - - $ref: '#/components/schemas/AttributionProperties' + - $ref: "#/components/schemas/PermissionedObject" + - $ref: "#/components/schemas/WorkflowMutableProperties" + - $ref: "#/components/schemas/WorkflowMetadata" + - $ref: "#/components/schemas/AttributionProperties" - type: object properties: id: @@ -10692,24 +9089,29 @@ components: 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 + description: When present, indicates this workflow is admin-verified. Set via the dedicated admin settings endpoint, not by regular edits. 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 + 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 - properties: - workflow: - $ref: '#/components/schemas/Workflow' required: - workflow + properties: + workflow: + $ref: "#/components/schemas/Workflow" CreateWorkflowResponse: allOf: - - $ref: '#/components/schemas/WorkflowResult' + - $ref: "#/components/schemas/WorkflowResult" Agent: + title: Agent type: object + required: + - agent_id + - name + - capabilities properties: agent_id: type: string @@ -10732,6 +9134,12 @@ components: 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 @@ -10741,28 +9149,17 @@ components: 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 + description: Error response returned for failed requests 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' + - $ref: "#/components/schemas/WorkflowMutableProperties" - type: object properties: id: @@ -10770,6 +9167,10 @@ components: 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 @@ -10802,12 +9203,7 @@ components: 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 @@ -10829,15 +9225,16 @@ components: 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 + 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 @@ -10848,12 +9245,12 @@ components: example: HR Policy Agent SearchAgentsResponse: type: object + title: Response Search Agents properties: agents: type: array items: - $ref: '#/components/schemas/Agent' - title: Response Search Agents + $ref: "#/components/schemas/Agent" ContentType: type: string enum: @@ -10867,6 +9264,8 @@ components: description: The role of the message. example: USER content: + title: Content + description: The content of the message. type: array items: type: object @@ -10874,15 +9273,16 @@ components: text: type: string type: - $ref: '#/components/schemas/ContentType' - title: MessageTextBlock + $ref: "#/components/schemas/ContentType" required: - text - type - title: Content - description: The content of the message. + 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 @@ -10891,52 +9291,49 @@ components: input: type: object title: Input - additionalProperties: true 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' + $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.' + additionalProperties: true AgentExecutionStatus: + description: The status of the run. One of 'error', 'success'. type: string - title: AgentExecutionStatus enum: - error - success - description: The status of the run. One of 'error', 'success'. + title: AgentExecutionStatus AgentRun: allOf: - - $ref: '#/components/schemas/AgentRunCreate' + - $ref: "#/components/schemas/AgentRunCreate" - type: object properties: status: - $ref: '#/components/schemas/AgentExecutionStatus' + $ref: "#/components/schemas/AgentExecutionStatus" AgentRunWaitResponse: type: object properties: run: - $ref: '#/components/schemas/AgentRun' + $ref: "#/components/schemas/AgentRun" title: Run description: The run information. messages: type: array items: - $ref: '#/components/schemas/Message' + $ref: "#/components/schemas/Message" title: Messages description: The messages returned by the run. CollectionItemDescriptor: allOf: - - $ref: '#/components/schemas/CollectionItemMutableProperties' + - $ref: "#/components/schemas/CollectionItemMutableProperties" properties: url: type: string @@ -10954,6 +9351,8 @@ components: - TEXT - URL AddCollectionItemsRequest: + required: + - collectionId properties: collectionId: type: number @@ -10961,10 +9360,8 @@ components: addedCollectionItemDescriptors: type: array items: - $ref: '#/components/schemas/CollectionItemDescriptor' + $ref: "#/components/schemas/CollectionItemDescriptor" description: The CollectionItemDescriptors of the items being added. - required: - - collectionId AddCollectionItemsError: properties: errorType: @@ -10975,19 +9372,21 @@ components: AddCollectionItemsResponse: properties: collection: - $ref: '#/components/schemas/Collection' + $ref: "#/components/schemas/Collection" description: The modified Collection. Only CollectionItemMutableProperties are set for each item. error: - $ref: '#/components/schemas/AddCollectionItemsError' + $ref: "#/components/schemas/AddCollectionItemsError" CreateCollectionRequest: allOf: - - $ref: '#/components/schemas/CollectionMutableProperties' + - $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 @@ -11000,8 +9399,6 @@ components: - WIDTH_VIOLATION - NO_PERMISSIONS - CORRUPT_ITEM - required: - - errorCode CreateCollectionResponse: allOf: - type: object @@ -11012,10 +9409,12 @@ components: - error properties: collection: - $ref: '#/components/schemas/Collection' + $ref: "#/components/schemas/Collection" error: - $ref: '#/components/schemas/CollectionError' + $ref: "#/components/schemas/CollectionError" DeleteCollectionRequest: + required: + - ids properties: ids: type: array @@ -11025,9 +9424,10 @@ components: allowedDatasource: type: string description: The datasource allowed in the Collection to be deleted. - required: - - ids DeleteCollectionItemRequest: + required: + - collectionId + - itemId properties: collectionId: type: number @@ -11038,37 +9438,37 @@ components: 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' + $ref: "#/components/schemas/Collection" description: The modified Collection. Only CollectionItemMutableProperties are set for each item. EditCollectionRequest: allOf: - - $ref: '#/components/schemas/CollectionMutableProperties' + - $ref: "#/components/schemas/CollectionMutableProperties" - type: object + required: + - id properties: id: type: integer description: The ID of the Collection to modify. - required: - - id EditCollectionResponse: allOf: - - $ref: '#/components/schemas/Collection' - - $ref: '#/components/schemas/CollectionError' + - $ref: "#/components/schemas/Collection" + - $ref: "#/components/schemas/CollectionError" - type: object properties: collection: - $ref: '#/components/schemas/Collection' + $ref: "#/components/schemas/Collection" error: - $ref: '#/components/schemas/CollectionError' + $ref: "#/components/schemas/CollectionError" EditCollectionItemRequest: + required: + - collectionId + - itemId allOf: - - $ref: '#/components/schemas/CollectionItemMutableProperties' + - $ref: "#/components/schemas/CollectionItemMutableProperties" - type: object properties: collectionId: @@ -11077,15 +9477,14 @@ components: itemId: type: string description: The ID of the CollectionItem to edit. - required: - - collectionId - - itemId EditCollectionItemResponse: properties: collection: - $ref: '#/components/schemas/Collection' + $ref: "#/components/schemas/Collection" description: The modified Collection. Only CollectionItemMutableProperties are set for each item. GetCollectionRequest: + required: + - id properties: id: type: integer @@ -11099,16 +9498,14 @@ components: allowedDatasource: type: string description: The datasource allowed in the Collection returned. - required: - - id GetCollectionResponse: properties: collection: - $ref: '#/components/schemas/Collection' + $ref: "#/components/schemas/Collection" rootCollection: - $ref: '#/components/schemas/Collection' + $ref: "#/components/schemas/Collection" error: - $ref: '#/components/schemas/CollectionError' + $ref: "#/components/schemas/CollectionError" trackingToken: type: string description: Use `collection.trackingToken` instead. @@ -11133,14 +9530,14 @@ components: 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' + $ref: "#/components/schemas/Collection" description: List of all Collections, no Collection items are fetched. - required: - - collections GetDocPermissionsRequest: type: object properties: @@ -11156,13 +9553,16 @@ components: 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' + $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 @@ -11172,29 +9572,28 @@ components: - RECENT_SHARES - DOCUMENT_CONTENT - CUSTOM_METADATA - description: List of Document fields to return (that aren't returned by default) - required: - - documentSpecs DocumentOrError: + x-omit-error-on-success: true oneOf: - - $ref: '#/components/schemas/Document' + - $ref: "#/components/schemas/Document" - type: object + required: + - error 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' + $ref: "#/components/schemas/DocumentOrError" description: The document details or the error if document is not found. GetDocumentsByFacetsRequest: + required: + - filterSets properties: datasourcesFilter: type: array @@ -11204,19 +9603,17 @@ components: filterSets: type: array items: - $ref: '#/components/schemas/FacetFilterSet' + $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' + $ref: "#/components/schemas/Document" description: The document details, ordered by score. hasMoreResults: type: boolean @@ -11237,7 +9634,7 @@ components: type: string description: Manager emails whose teams should be filtered for. Empty array means no filtering. dayRange: - $ref: '#/components/schemas/Period' + $ref: "#/components/schemas/Period" description: Time period for which Insights are requested. InsightsAssistantRequest: properties: @@ -11252,7 +9649,7 @@ components: type: string description: Manager emails whose teams should be filtered for. Empty array means no filtering. dayRange: - $ref: '#/components/schemas/Period' + $ref: "#/components/schemas/Period" description: Time period for which Insights are requested. AgentsInsightsV2Request: properties: @@ -11272,7 +9669,7 @@ components: type: string description: Manager emails whose teams should be filtered for. Empty array means no filtering. dayRange: - $ref: '#/components/schemas/Period' + $ref: "#/components/schemas/Period" description: Time period for which Insights are requested. McpInsightsRequest: properties: @@ -11292,7 +9689,7 @@ components: type: string description: Manager emails whose teams should be filtered for. Empty array means no filtering. dayRange: - $ref: '#/components/schemas/Period' + $ref: "#/components/schemas/Period" description: Time period for which Insights are requested. McpBreakdownInsightsRequest: properties: @@ -11312,7 +9709,7 @@ components: type: string description: Manager emails whose teams should be filtered for. Empty array means no filtering. dayRange: - $ref: '#/components/schemas/Period' + $ref: "#/components/schemas/Period" description: Time period for which Insights are requested. breakdownType: type: string @@ -11340,29 +9737,32 @@ components: InsightsRequest: properties: overviewRequest: - $ref: '#/components/schemas/InsightsOverviewRequest' - description: If specified, will return data for the Overview section of the Insights Dashboard. + $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' - description: If specified, will return data for the Assistant section of the Insights Dashboard. + $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' - description: If specified, will return data for the Agents section of the Insights Dashboard. + $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' + $ref: "#/components/schemas/McpInsightsRequest" description: If specified, will return data for the MCP section of the Insights Dashboard. mcpBreakdownRequest: - $ref: '#/components/schemas/McpBreakdownInsightsRequest' + $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' + $ref: "#/components/schemas/Person" activity: type: string enum: @@ -11373,12 +9773,9 @@ components: type: integer description: Unix timestamp of the last activity (in seconds since epoch UTC). activityCount: - $ref: '#/components/schemas/CountInfo' + $ref: "#/components/schemas/CountInfo" activeDayCount: - $ref: '#/components/schemas/CountInfo' - required: - - user - - activity + $ref: "#/components/schemas/CountInfo" GleanAssistInsightsResponse: properties: lastLogTimestamp: @@ -11387,7 +9784,7 @@ components: activityInsights: type: array items: - $ref: '#/components/schemas/UserActivityInsight' + $ref: "#/components/schemas/UserActivityInsight" description: Insights for all active users with respect to set of actions. totalActiveUsers: type: integer @@ -11412,7 +9809,7 @@ components: description: Number of current Weekly Active Users. InsightsSearchSummary: allOf: - - $ref: '#/components/schemas/CurrentActiveUsers' + - $ref: "#/components/schemas/CurrentActiveUsers" - type: object properties: numSearches: @@ -11423,7 +9820,7 @@ components: description: Total number of distinct users who searched over the specified time period. InsightsChatSummary: allOf: - - $ref: '#/components/schemas/CurrentActiveUsers' + - $ref: "#/components/schemas/CurrentActiveUsers" - type: object properties: numChats: @@ -11434,7 +9831,7 @@ components: description: Total number of distinct users who used Chat over the specified time period. InsightsDepartmentsSummary: allOf: - - $ref: '#/components/schemas/CurrentActiveUsers' + - $ref: "#/components/schemas/CurrentActiveUsers" - type: object properties: departments: @@ -11449,26 +9846,28 @@ components: type: integer description: Number of current signed up employees in the specified departments, according to the Org Chart. searchSummary: - $ref: '#/components/schemas/InsightsSearchSummary' + $ref: "#/components/schemas/InsightsSearchSummary" chatSummary: - $ref: '#/components/schemas/InsightsChatSummary' + $ref: "#/components/schemas/InsightsChatSummary" searchActiveUsers: - $ref: '#/components/schemas/CurrentActiveUsers' + $ref: "#/components/schemas/CurrentActiveUsers" description: Search-specific active user counts for the specified departments. assistantActiveUsers: - $ref: '#/components/schemas/CurrentActiveUsers' + $ref: "#/components/schemas/CurrentActiveUsers" description: Assistant-specific active user counts for the specified departments. agentsActiveUsers: - $ref: '#/components/schemas/CurrentActiveUsers' + $ref: "#/components/schemas/CurrentActiveUsers" description: Agents-specific active user counts for the specified departments. mcpActiveUsers: - $ref: '#/components/schemas/CurrentActiveUsers' + $ref: "#/components/schemas/CurrentActiveUsers" description: MCP active user counts for the specified departments. extensionSummary: - $ref: '#/components/schemas/CurrentActiveUsers' + $ref: "#/components/schemas/CurrentActiveUsers" ugcSummary: - $ref: '#/components/schemas/CurrentActiveUsers' + $ref: "#/components/schemas/CurrentActiveUsers" LabeledCountInfo: + required: + - label properties: label: type: string @@ -11476,14 +9875,12 @@ components: countInfo: type: array items: - $ref: '#/components/schemas/CountInfo' + $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' + $ref: "#/components/schemas/Person" numSearches: type: integer description: Total number of searches by this user over the specified time period. @@ -11513,7 +9910,7 @@ components: description: Total number of MCP calls for this user over the specified time period. InsightsOverviewResponse: allOf: - - $ref: '#/components/schemas/InsightsDepartmentsSummary' + - $ref: "#/components/schemas/InsightsDepartmentsSummary" - type: object properties: lastUpdatedTs: @@ -11531,43 +9928,43 @@ components: 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' + $ref: "#/components/schemas/LabeledCountInfo" weeklyActiveUserTimeseries: - $ref: '#/components/schemas/LabeledCountInfo' + $ref: "#/components/schemas/LabeledCountInfo" dailyActiveUserTimeseries: - $ref: '#/components/schemas/LabeledCountInfo' + $ref: "#/components/schemas/LabeledCountInfo" searchMonthlyActiveUserTimeseries: - $ref: '#/components/schemas/LabeledCountInfo' + $ref: "#/components/schemas/LabeledCountInfo" searchWeeklyActiveUserTimeseries: - $ref: '#/components/schemas/LabeledCountInfo' + $ref: "#/components/schemas/LabeledCountInfo" searchDailyActiveUserTimeseries: - $ref: '#/components/schemas/LabeledCountInfo' + $ref: "#/components/schemas/LabeledCountInfo" assistantMonthlyActiveUserTimeseries: - $ref: '#/components/schemas/LabeledCountInfo' + $ref: "#/components/schemas/LabeledCountInfo" assistantWeeklyActiveUserTimeseries: - $ref: '#/components/schemas/LabeledCountInfo' + $ref: "#/components/schemas/LabeledCountInfo" assistantDailyActiveUserTimeseries: - $ref: '#/components/schemas/LabeledCountInfo' + $ref: "#/components/schemas/LabeledCountInfo" agentsMonthlyActiveUserTimeseries: - $ref: '#/components/schemas/LabeledCountInfo' + $ref: "#/components/schemas/LabeledCountInfo" agentsWeeklyActiveUserTimeseries: - $ref: '#/components/schemas/LabeledCountInfo' + $ref: "#/components/schemas/LabeledCountInfo" agentsDailyActiveUserTimeseries: - $ref: '#/components/schemas/LabeledCountInfo' + $ref: "#/components/schemas/LabeledCountInfo" mcpMonthlyActiveUserTimeseries: - $ref: '#/components/schemas/LabeledCountInfo' + $ref: "#/components/schemas/LabeledCountInfo" mcpWeeklyActiveUserTimeseries: - $ref: '#/components/schemas/LabeledCountInfo' + $ref: "#/components/schemas/LabeledCountInfo" mcpDailyActiveUserTimeseries: - $ref: '#/components/schemas/LabeledCountInfo' + $ref: "#/components/schemas/LabeledCountInfo" searchesTimeseries: - $ref: '#/components/schemas/LabeledCountInfo' + $ref: "#/components/schemas/LabeledCountInfo" assistantInteractionsTimeseries: - $ref: '#/components/schemas/LabeledCountInfo' + $ref: "#/components/schemas/LabeledCountInfo" agentRunsTimeseries: - $ref: '#/components/schemas/LabeledCountInfo' + $ref: "#/components/schemas/LabeledCountInfo" mcpCallsTimeseries: - $ref: '#/components/schemas/LabeledCountInfo' + $ref: "#/components/schemas/LabeledCountInfo" searchDatasourceCounts: type: object additionalProperties: @@ -11581,12 +9978,12 @@ components: perUserInsights: type: array items: - $ref: '#/components/schemas/PerUserInsight' + $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' + $ref: "#/components/schemas/Person" numChatMessages: type: integer description: Total number of chat messages sent by this user over the specified time period. @@ -11604,37 +10001,37 @@ components: description: Total number of days this user was active on the Assistant over the specified time period. AssistantInsightsResponse: allOf: - - $ref: '#/components/schemas/CurrentActiveUsers' + - $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' + $ref: "#/components/schemas/LabeledCountInfo" weeklyActiveUserTimeseries: - $ref: '#/components/schemas/LabeledCountInfo' + $ref: "#/components/schemas/LabeledCountInfo" dailyActiveUserTimeseries: - $ref: '#/components/schemas/LabeledCountInfo' + $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' + $ref: "#/components/schemas/LabeledCountInfo" summarizationsTimeseries: - $ref: '#/components/schemas/LabeledCountInfo' + $ref: "#/components/schemas/LabeledCountInfo" aiAnswersTimeseries: - $ref: '#/components/schemas/LabeledCountInfo' + $ref: "#/components/schemas/LabeledCountInfo" gleanbotInteractionsTimeseries: - $ref: '#/components/schemas/LabeledCountInfo' + $ref: "#/components/schemas/LabeledCountInfo" perUserInsights: type: array items: - $ref: '#/components/schemas/PerUserAssistantInsight' + $ref: "#/components/schemas/PerUserAssistantInsight" upvotesTimeseries: - $ref: '#/components/schemas/LabeledCountInfo' + $ref: "#/components/schemas/LabeledCountInfo" downvotesTimeseries: - $ref: '#/components/schemas/LabeledCountInfo' + $ref: "#/components/schemas/LabeledCountInfo" PerAgentInsight: properties: agentId: @@ -11644,7 +10041,7 @@ components: type: string description: Agent name icon: - $ref: '#/components/schemas/IconConfig' + $ref: "#/components/schemas/IconConfig" description: Agent icon configuration isDeleted: type: boolean @@ -11662,7 +10059,7 @@ components: type: integer description: Total number of downvotes for this agent over the specified time period. owner: - $ref: '#/components/schemas/Person' + $ref: "#/components/schemas/Person" description: | The creator/owner of the agent. Absent if agent is deleted or owner is unknown. AgentUseCaseInsight: @@ -11687,7 +10084,7 @@ components: type: string description: Name of the most-used agent for this use case. topAgentIcon: - $ref: '#/components/schemas/IconConfig' + $ref: "#/components/schemas/IconConfig" description: Icon of the most-used agent for this use case. topAgentIsDeleted: type: boolean @@ -11714,7 +10111,7 @@ components: 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' + $ref: "#/components/schemas/IconConfig" description: Agent icon configuration isDeleted: type: boolean @@ -11722,7 +10119,7 @@ components: AgentUsersInsight: properties: person: - $ref: '#/components/schemas/Person' + $ref: "#/components/schemas/Person" departmentName: type: string description: Department name @@ -11748,7 +10145,7 @@ components: type: string description: Agent name icon: - $ref: '#/components/schemas/IconConfig' + $ref: "#/components/schemas/IconConfig" description: Agent icon configuration isDeleted: type: boolean @@ -11765,75 +10162,75 @@ components: 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' + - $ref: "#/components/schemas/CurrentActiveUsers" - type: object properties: monthlyActiveUserTimeseries: - $ref: '#/components/schemas/LabeledCountInfo' + $ref: "#/components/schemas/LabeledCountInfo" weeklyActiveUserTimeseries: - $ref: '#/components/schemas/LabeledCountInfo' + $ref: "#/components/schemas/LabeledCountInfo" dailyActiveUserTimeseries: - $ref: '#/components/schemas/LabeledCountInfo' + $ref: "#/components/schemas/LabeledCountInfo" sharedAgentsCount: type: integer description: Total number of shared agents. topAgentsInsights: type: array items: - $ref: '#/components/schemas/PerAgentInsight' + $ref: "#/components/schemas/PerAgentInsight" topUseCasesInsights: type: array items: - $ref: '#/components/schemas/AgentUseCaseInsight' + $ref: "#/components/schemas/AgentUseCaseInsight" agentsUsageByDepartmentInsights: type: array items: - $ref: '#/components/schemas/AgentsUsageByDepartmentInsight' + $ref: "#/components/schemas/AgentsUsageByDepartmentInsight" agentUsersInsights: type: array items: - $ref: '#/components/schemas/AgentUsersInsight' + $ref: "#/components/schemas/AgentUsersInsight" agentsTimeSavedInsights: type: array items: - $ref: '#/components/schemas/AgentsTimeSavedInsight' + $ref: "#/components/schemas/AgentsTimeSavedInsight" description: Insights for agents time saved over the specified time period. dailyAgentRunsTimeseries: - $ref: '#/components/schemas/LabeledCountInfo' + $ref: "#/components/schemas/LabeledCountInfo" successfulRunsTimeseries: - $ref: '#/components/schemas/LabeledCountInfo' + $ref: "#/components/schemas/LabeledCountInfo" failedRunsTimeseries: - $ref: '#/components/schemas/LabeledCountInfo' + $ref: "#/components/schemas/LabeledCountInfo" pausedRunsTimeseries: - $ref: '#/components/schemas/LabeledCountInfo' + $ref: "#/components/schemas/LabeledCountInfo" upvotesTimeseries: - $ref: '#/components/schemas/LabeledCountInfo' + $ref: "#/components/schemas/LabeledCountInfo" downvotesTimeseries: - $ref: '#/components/schemas/LabeledCountInfo' + $ref: "#/components/schemas/LabeledCountInfo" McpInsightsResponse: allOf: - - $ref: '#/components/schemas/CurrentActiveUsers' + - $ref: "#/components/schemas/CurrentActiveUsers" - type: object properties: dailyActiveUsers: type: integer description: Number of current Daily Active Users. monthlyActiveUserTimeseries: - $ref: '#/components/schemas/LabeledCountInfo' + $ref: "#/components/schemas/LabeledCountInfo" weeklyActiveUserTimeseries: - $ref: '#/components/schemas/LabeledCountInfo' + $ref: "#/components/schemas/LabeledCountInfo" dailyActiveUserTimeseries: - $ref: '#/components/schemas/LabeledCountInfo' + $ref: "#/components/schemas/LabeledCountInfo" overallDailyActiveUserTimeseries: - $ref: '#/components/schemas/LabeledCountInfo' + $ref: "#/components/schemas/LabeledCountInfo" topHostApplicationsActiveUserTimeseries: type: array items: - $ref: '#/components/schemas/LabeledCountInfo' + $ref: "#/components/schemas/LabeledCountInfo" McpUserBreakdown: properties: person: - $ref: '#/components/schemas/Person' + $ref: "#/components/schemas/Person" totalCalls: type: integer description: Total number of MCP calls made by this user in the specified time period. @@ -11900,24 +10297,24 @@ components: usersBreakdown: type: array items: - $ref: '#/components/schemas/McpUserBreakdown' + $ref: "#/components/schemas/McpUserBreakdown" hostApplicationsBreakdown: type: array items: - $ref: '#/components/schemas/McpHostApplicationBreakdown' + $ref: "#/components/schemas/McpHostApplicationBreakdown" toolsBreakdown: type: array items: - $ref: '#/components/schemas/McpToolBreakdown' + $ref: "#/components/schemas/McpToolBreakdown" serversBreakdown: type: array items: - $ref: '#/components/schemas/McpServerBreakdown' + $ref: "#/components/schemas/McpServerBreakdown" InsightsResponse: properties: gleanAssist: - $ref: '#/components/schemas/GleanAssistInsightsResponse' deprecated: true + $ref: "#/components/schemas/GleanAssistInsightsResponse" x-glean-deprecated: id: 15850758-4d95-4d98-8d57-39c50663a796 introduced: "2026-02-05" @@ -11925,16 +10322,20 @@ components: 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' + $ref: "#/components/schemas/InsightsOverviewResponse" assistantResponse: - $ref: '#/components/schemas/AssistantInsightsResponse' + $ref: "#/components/schemas/AssistantInsightsResponse" agentsResponse: - $ref: '#/components/schemas/AgentsInsightsV2Response' + $ref: "#/components/schemas/AgentsInsightsV2Response" mcpResponse: - $ref: '#/components/schemas/McpInsightsResponse' + $ref: "#/components/schemas/McpInsightsResponse" mcpBreakdownResponse: - $ref: '#/components/schemas/McpBreakdownInsightsResponse' + $ref: "#/components/schemas/McpBreakdownInsightsResponse" MessagesRequest: + required: + - id + - idType + - datasource properties: idType: type: string @@ -11974,23 +10375,19 @@ components: 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 + value: description: The invalid operator value. + type: string ErrorMessage: properties: source: - type: string description: The datasource this message relates to. + type: string errorMessage: type: string ErrorInfo: @@ -12003,13 +10400,13 @@ components: 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. + items: + $ref: "#/components/schemas/InvalidOperatorValueError" errorMessages: type: array items: - $ref: '#/components/schemas/ErrorMessage' + $ref: "#/components/schemas/ErrorMessage" federatedSearchRateLimitError: type: boolean description: Indicates the federated search results could not be fetched due to rate limiting. @@ -12020,19 +10417,19 @@ components: 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' + $ref: "#/components/schemas/SessionInfo" results: type: array items: - $ref: '#/components/schemas/SearchResult' + $ref: "#/components/schemas/SearchResult" structuredResults: type: array items: - $ref: '#/components/schemas/StructuredResult' + $ref: "#/components/schemas/StructuredResult" generatedQnaResult: - $ref: '#/components/schemas/GeneratedQna' + $ref: "#/components/schemas/GeneratedQna" errorInfo: - $ref: '#/components/schemas/ErrorInfo' + $ref: "#/components/schemas/ErrorInfo" requestID: type: string description: A platform-generated request ID to correlate backend logs. @@ -12050,6 +10447,8 @@ components: format: int64 description: List of experiment ids for the corresponding request. SearchWarning: + required: + - warningType properties: warningType: type: string @@ -12073,8 +10472,6 @@ components: 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. - required: - - warningType SearchResponseMetadata: properties: rewrittenQuery: @@ -12090,16 +10487,16 @@ components: searchedQueryRanges: type: array items: - $ref: '#/components/schemas/TextRange' + $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' + $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' + $ref: "#/components/schemas/QuerySuggestionList" description: Other alternative queries that may provide better or more specific results than the original query. negatedTerms: type: array @@ -12113,7 +10510,7 @@ components: 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' + $ref: "#/components/schemas/SearchWarning" triggeredExpertDetection: type: boolean description: Whether the query triggered expert detection results in the People tab. @@ -12124,17 +10521,17 @@ components: properties: stringValue: type: string - description: The value that should be set in the FacetFilter when applying this filter to a search request. 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 - description: An optional user-friendly label to display in place of the facet value. example: engineering + description: An optional user-friendly label to display in place of the facet value. iconConfig: - $ref: '#/components/schemas/IconConfig' + $ref: "#/components/schemas/IconConfig" FacetBucket: properties: count: @@ -12143,14 +10540,14 @@ components: 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 + 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' + $ref: "#/components/schemas/FacetValue" FacetResult: properties: sourceName: @@ -12163,9 +10560,9 @@ components: example: SelectMultiple buckets: type: array - items: - $ref: '#/components/schemas/FacetBucket' 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. @@ -12180,24 +10577,24 @@ components: 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' + $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' + - $ref: "#/components/schemas/ResultsResponse" + - $ref: "#/components/schemas/BackendExperimentsContext" - type: object properties: metadata: - $ref: '#/components/schemas/SearchResponseMetadata' + $ref: "#/components/schemas/SearchResponseMetadata" facetResults: type: array items: - $ref: '#/components/schemas/FacetResult' + $ref: "#/components/schemas/FacetResult" resultTabs: type: array items: - $ref: '#/components/schemas/ResultTab' + $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 @@ -12205,11 +10602,11 @@ components: type: string description: The unique IDs of the result tabs to which this response belongs. resultsDescription: - $ref: '#/components/schemas/ResultsDescription' + $ref: "#/components/schemas/ResultsDescription" rewrittenFacetFilters: type: array items: - $ref: '#/components/schemas/FacetFilter' + $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 @@ -12299,19 +10696,19 @@ components: - 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' + $ref: "#/components/schemas/SearchResponse" rootMessage: - $ref: '#/components/schemas/SearchResult' - required: - - hasMore + $ref: "#/components/schemas/SearchResult" EditPinRequest: allOf: - - $ref: '#/components/schemas/PinDocumentMutableProperties' + - $ref: "#/components/schemas/PinDocumentMutableProperties" - type: object properties: id: @@ -12325,19 +10722,19 @@ components: GetPinResponse: properties: pin: - $ref: '#/components/schemas/PinDocument' + $ref: "#/components/schemas/PinDocument" ListPinsResponse: + required: + - pins properties: pins: type: array items: - $ref: '#/components/schemas/PinDocument' + $ref: "#/components/schemas/PinDocument" description: List of pinned documents. - required: - - pins PinRequest: allOf: - - $ref: '#/components/schemas/PinDocumentMutableProperties' + - $ref: "#/components/schemas/PinDocumentMutableProperties" - type: object properties: documentId: @@ -12352,27 +10749,29 @@ components: properties: timestamp: type: string - format: date-time 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' + $ref: "#/components/schemas/SessionInfo" sourceDocument: - $ref: '#/components/schemas/Document' + $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 + 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' + - $ref: "#/components/schemas/ResultsRequest" - type: object properties: query: @@ -12388,9 +10787,9 @@ components: 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' + $ref: "#/components/schemas/SearchRequestInputDetails" requestOptions: - $ref: '#/components/schemas/SearchRequestOptions' + $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. @@ -12398,8 +10797,6 @@ components: disableSpellcheck: type: boolean description: Whether or not to disable spellcheck. - required: - - query example: trackingToken: trackingToken query: vacation policy @@ -12422,7 +10819,7 @@ components: trackingToken: type: string sessionInfo: - $ref: '#/components/schemas/SessionInfo' + $ref: "#/components/schemas/SessionInfo" query: type: string description: Partially typed query. @@ -12437,6 +10834,7 @@ components: 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: @@ -12454,7 +10852,6 @@ components: - 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: | @@ -12462,9 +10859,9 @@ components: example: 10 authTokens: type: array - items: - $ref: '#/components/schemas/AuthToken' description: Auth tokens which may be used for federated results. + items: + $ref: "#/components/schemas/AuthToken" example: trackingToken: trackingToken query: what is a que @@ -12477,6 +10874,8 @@ components: docType: type: string OperatorMetadata: + required: + - name properties: name: type: string @@ -12495,15 +10894,13 @@ components: scopes: type: array items: - $ref: '#/components/schemas/OperatorScope' + $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 @@ -12512,6 +10909,7 @@ components: 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 @@ -12523,13 +10921,14 @@ components: type: string description: The URL of the action. iconConfig: - $ref: '#/components/schemas/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: @@ -12538,9 +10937,10 @@ components: - 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: + required: + - result + - result_type properties: result: type: string @@ -12570,26 +10970,23 @@ components: type: number description: Higher indicates a more confident match. operatorMetadata: - $ref: '#/components/schemas/OperatorMetadata' + $ref: "#/components/schemas/OperatorMetadata" quicklink: - $ref: '#/components/schemas/Quicklink' + $ref: "#/components/schemas/Quicklink" document: - $ref: '#/components/schemas/Document' + $ref: "#/components/schemas/Document" url: type: string structuredResult: - $ref: '#/components/schemas/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' + $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 @@ -12600,6 +10997,7 @@ components: - datasource: confluence - objectType: page AutocompleteResultGroup: + description: A subsection of the results list from which distinct sections should be created. properties: startIndex: type: integer @@ -12610,28 +11008,27 @@ components: 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' + - $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' + $ref: "#/components/schemas/SessionInfo" results: type: array items: - $ref: '#/components/schemas/AutocompleteResult' + $ref: "#/components/schemas/AutocompleteResult" groups: type: array items: - $ref: '#/components/schemas/AutocompleteResultGroup' + $ref: "#/components/schemas/AutocompleteResultGroup" description: Subsections of the results list from which distinct sections should be created. errorInfo: - $ref: '#/components/schemas/ErrorInfo' + $ref: "#/components/schemas/ErrorInfo" backendTimeMillis: type: integer format: int64 @@ -12645,6 +11042,8 @@ components: 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 @@ -12666,10 +11065,10 @@ components: type: string description: Datasources for which content should be included. Empty is for all. chatZeroStateSuggestionOptions: - $ref: '#/components/schemas/ChatZeroStateSuggestionOptions' - required: - - resultSize + $ref: "#/components/schemas/ChatZeroStateSuggestionOptions" FeedRequest: + required: + - refreshType properties: categories: type: array @@ -12719,15 +11118,13 @@ components: - OOO_CATCH_UP description: Categories of content requested. An allowlist gives flexibility to request content separately or together. requestOptions: - $ref: '#/components/schemas/FeedRequestOptions' + $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 + $ref: "#/components/schemas/SessionInfo" DisplayableListFormat: properties: format: @@ -12737,12 +11134,15 @@ components: 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 - description: UI configurations for each item of the list ConferenceData: + required: + - provider + - uri properties: provider: type: string @@ -12758,16 +11158,14 @@ components: - NATIVE_CONFERENCE - LOCATION - DESCRIPTION - required: - - provider - - uri EventClassificationName: + description: The name for a generated classification of an event. type: string enum: - External Event - description: The name for a generated classification of an event. EventStrategyName: type: string + description: The name of method used to surface relevant data for a given calendar event. enum: - customerCard - news @@ -12778,17 +11176,17 @@ components: - relevantDocuments - chatFollowUps - conversations - description: The name of method used to surface relevant data for a given calendar event. EventClassification: + description: A generated classification of a given event. properties: name: - $ref: '#/components/schemas/EventClassificationName' + $ref: "#/components/schemas/EventClassificationName" strategies: type: array items: - $ref: '#/components/schemas/EventStrategyName' - description: A generated classification of a given event. + $ref: "#/components/schemas/EventStrategyName" StructuredLink: + description: The display configuration for a link. properties: name: type: string @@ -12797,45 +11195,47 @@ components: type: string description: The URL for the link. iconConfig: - $ref: '#/components/schemas/IconConfig' - description: The display configuration for a link. + $ref: "#/components/schemas/IconConfig" GeneratedAttachmentContent: + description: Content that has been generated or extrapolated from the documents present in the document field. properties: displayHeader: - type: string description: The header describing the generated content. - text: type: string + text: description: The content that has been generated. - description: Content that has been generated or extrapolated from the documents present in the document field. + 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' + $ref: "#/components/schemas/EventStrategyName" documents: type: array items: - $ref: '#/components/schemas/Document' + $ref: "#/components/schemas/Document" person: - $ref: '#/components/schemas/Person' + $ref: "#/components/schemas/Person" customer: - $ref: '#/components/schemas/Customer' + $ref: "#/components/schemas/Customer" externalLinks: + description: A list of links to external sources outside of Glean. type: array items: - $ref: '#/components/schemas/StructuredLink' - description: A list of links to external sources outside of Glean. + $ref: "#/components/schemas/StructuredLink" 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. + $ref: "#/components/schemas/GeneratedAttachmentContent" CalendarEvent: + required: + - id + - url allOf: - - $ref: '#/components/schemas/AnonymousEvent' + - $ref: "#/components/schemas/AnonymousEvent" - type: object properties: id: @@ -12845,12 +11245,12 @@ components: type: string description: A permalink for this calendar event attendees: - $ref: '#/components/schemas/CalendarAttendees' + $ref: "#/components/schemas/CalendarAttendees" location: type: string description: The location that this event is taking place at. conferenceData: - $ref: '#/components/schemas/ConferenceData' + $ref: "#/components/schemas/ConferenceData" description: type: string description: The HTML description of the event. @@ -12866,38 +11266,35 @@ components: classifications: type: array items: - $ref: '#/components/schemas/EventClassification' + $ref: "#/components/schemas/EventClassification" generatedAttachments: type: array items: - $ref: '#/components/schemas/GeneratedAttachment' - required: - - id - - url + $ref: "#/components/schemas/GeneratedAttachment" 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. + enum: + - CHANNEL + - MENTIONS + - TOPIC x-speakeasy-enum-descriptions: CHANNEL: A standard section for channel-based digests (e.g. from Slack, Teams). MENTIONS: A dedicated section that surfaces user mentions (actionable, informative, or all). TOPIC: A section driven by a generic topic, not tied to any specific channel or instance. UpdateType: type: string - 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 + enum: + - ACTIONABLE + - INFORMATIVE x-speakeasy-enum-descriptions: ACTIONABLE: Updates that require user attention or action INFORMATIVE: Updates that are purely informational @@ -12906,9 +11303,9 @@ components: properties: urls: type: array + description: List of URLs for similar updates that are grouped together and rendered as a single update. 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. @@ -12922,15 +11319,19 @@ components: type: string description: Brief summary or description of the update content. type: - $ref: '#/components/schemas/UpdateType' + $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' + $ref: "#/components/schemas/SectionType" displayName: type: string description: Human-readable name for the digest section. @@ -12951,12 +11352,8 @@ components: updates: type: array items: - $ref: '#/components/schemas/DigestUpdate' + $ref: "#/components/schemas/DigestUpdate" description: List of updates within this digest section. - required: - - id - - type - - updates Digest: type: object properties: @@ -12974,7 +11371,7 @@ components: sections: type: array items: - $ref: '#/components/schemas/DigestSection' + $ref: "#/components/schemas/DigestSection" description: Array of digest sections from which the podcast was created. ChatSuggestion: properties: @@ -12993,6 +11390,8 @@ components: type: string description: Document IDs that grounded the suggestion. PromptTemplateMutableProperties: + required: + - template properties: name: type: string @@ -13004,32 +11403,30 @@ components: type: string description: The Application Id the prompt template should be created under. Empty for default assistant. inclusions: - $ref: '#/components/schemas/ChatRestrictionFilters' + $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. + items: + $ref: "#/components/schemas/UserRoleSpecification" removedRoles: type: array - items: - $ref: '#/components/schemas/UserRoleSpecification' description: A list of removed user roles for the Workflow. - required: - - template + items: + $ref: "#/components/schemas/UserRoleSpecification" PromptTemplate: allOf: - - $ref: '#/components/schemas/PromptTemplateMutableProperties' - - $ref: '#/components/schemas/PermissionedObject' - - $ref: '#/components/schemas/AttributionProperties' + - $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' + $ref: "#/components/schemas/Person" createTimestamp: type: integer description: Server Unix timestamp of the creation time. @@ -13037,12 +11434,12 @@ components: type: integer description: Server Unix timestamp of the last update time. lastUpdatedBy: - $ref: '#/components/schemas/Person' + $ref: "#/components/schemas/Person" roles: type: array - items: - $ref: '#/components/schemas/UserRoleSpecification' description: A list of roles for this prompt template explicitly granted. + items: + $ref: "#/components/schemas/UserRoleSpecification" UgcType: enum: - AGENT_TYPE @@ -13069,34 +11466,34 @@ components: type: object properties: ugcType: - $ref: '#/components/schemas/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 + description: Number of users this object has been favorited by. favoritedByUser: type: boolean - description: If the requesting user has favorited this object. x-includeEmpty: true + description: If the requesting user has favorited this object. PromptTemplateResult: properties: promptTemplate: - $ref: '#/components/schemas/PromptTemplate' + $ref: "#/components/schemas/PromptTemplate" trackingToken: type: string description: An opaque token that represents this prompt template favoriteInfo: - $ref: '#/components/schemas/FavoriteInfo' + $ref: "#/components/schemas/FavoriteInfo" runCount: - $ref: '#/components/schemas/CountInfo' + $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' + $ref: "#/components/schemas/Person" timestamp: type: integer description: Unix timestamp of the activity (in seconds since epoch UTC). @@ -13119,8 +11516,10 @@ components: - VIEW description: The action for the activity aggregateVisitCount: - $ref: '#/components/schemas/CountInfo' + $ref: "#/components/schemas/CountInfo" FeedEntry: + required: + - title properties: entryId: type: string @@ -13129,16 +11528,16 @@ components: type: string description: Title for the result. Can be document title, event title and so on. thumbnail: - $ref: '#/components/schemas/Thumbnail' + $ref: "#/components/schemas/Thumbnail" createdBy: - $ref: '#/components/schemas/Person' + $ref: "#/components/schemas/Person" uiConfig: allOf: - - $ref: '#/components/schemas/DisplayableListFormat' + - $ref: "#/components/schemas/DisplayableListFormat" - type: object properties: additionalFlags: - $ref: '#/components/schemas/DisplayableListItemUIConfig' + $ref: "#/components/schemas/DisplayableListItemUIConfig" justificationType: type: string enum: @@ -13207,37 +11606,38 @@ components: type: string description: View URL for the entry if based on links that are not documents in Glean. document: - $ref: '#/components/schemas/Document' + $ref: "#/components/schemas/Document" event: - $ref: '#/components/schemas/CalendarEvent' + $ref: "#/components/schemas/CalendarEvent" announcement: - $ref: '#/components/schemas/Announcement' + $ref: "#/components/schemas/Announcement" digest: - $ref: '#/components/schemas/Digest' + $ref: "#/components/schemas/Digest" collection: - $ref: '#/components/schemas/Collection' + $ref: "#/components/schemas/Collection" collectionItem: - $ref: '#/components/schemas/CollectionItem' + $ref: "#/components/schemas/CollectionItem" person: - $ref: '#/components/schemas/Person' + $ref: "#/components/schemas/Person" app: - $ref: '#/components/schemas/AppResult' + $ref: "#/components/schemas/AppResult" chatSuggestion: - $ref: '#/components/schemas/ChatSuggestion' + $ref: "#/components/schemas/ChatSuggestion" promptTemplate: - $ref: '#/components/schemas/PromptTemplateResult' + $ref: "#/components/schemas/PromptTemplateResult" workflow: - $ref: '#/components/schemas/WorkflowResult' + $ref: "#/components/schemas/WorkflowResult" activities: type: array items: - $ref: '#/components/schemas/UserActivity' + $ref: "#/components/schemas/UserActivity" description: List of activity where each activity has user, action, timestamp. documentVisitorCount: - $ref: '#/components/schemas/CountInfo' - required: - - title + $ref: "#/components/schemas/CountInfo" FeedResult: + required: + - category + - primaryEntry properties: category: type: string @@ -13285,11 +11685,11 @@ components: - OOO_CATCH_UP description: Category of the result, one of the requested categories in incoming request. primaryEntry: - $ref: '#/components/schemas/FeedEntry' + $ref: "#/components/schemas/FeedEntry" secondaryEntries: type: array items: - $ref: '#/components/schemas/FeedEntry' + $ref: "#/components/schemas/FeedEntry" description: Secondary entries for the result e.g. suggested docs for the calendar, carousel. rank: type: integer @@ -13300,12 +11700,11 @@ components: - 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: + required: + - serverTimestamp allOf: - - $ref: '#/components/schemas/BackendExperimentsContext' + - $ref: "#/components/schemas/BackendExperimentsContext" - type: object properties: trackingToken: @@ -13317,19 +11716,17 @@ components: results: type: array items: - $ref: '#/components/schemas/FeedResult' + $ref: "#/components/schemas/FeedResult" facetResults: type: object additionalProperties: type: array items: - $ref: '#/components/schemas/FacetResult' + $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: @@ -13343,30 +11740,30 @@ components: facetFilterSets: type: array items: - $ref: '#/components/schemas/FacetFilterSet' + $ref: "#/components/schemas/FacetFilterSet" description: A list of facet filter sets that will be OR'ed together. context: - $ref: '#/components/schemas/Document' + $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' - description: The types of prominence wanted in results returned. Default is any type. + $ref: "#/components/schemas/SearchResultProminenceEnum" RecommendationsRequest: allOf: - - $ref: '#/components/schemas/ResultsRequest' + - $ref: "#/components/schemas/ResultsRequest" - type: object properties: recommendationDocumentSpec: - $ref: '#/components/schemas/DocumentSpec' + $ref: "#/components/schemas/DocumentSpec" description: Retrieve recommendations for this document. Glean Document ID is preferred over URL. requestOptions: - $ref: '#/components/schemas/RecommendationsRequestOptions' + $ref: "#/components/schemas/RecommendationsRequestOptions" description: Options for adjusting the request for recommendations. RecommendationsResponse: allOf: - - $ref: '#/components/schemas/ResultsResponse' + - $ref: "#/components/schemas/ResultsResponse" SortOptions: type: object properties: @@ -13383,19 +11780,19 @@ components: filter: type: array items: - $ref: '#/components/schemas/FacetFilter' + $ref: "#/components/schemas/FacetFilter" sort: + description: Use EntitiesSortOrder enum for SortOptions.sortBy type: array items: - $ref: '#/components/schemas/SortOptions' - description: Use EntitiesSortOrder enum for SortOptions.sortBy + $ref: "#/components/schemas/SortOptions" entityType: type: string + default: PEOPLE enum: - PEOPLE - TEAMS - CUSTOM_ENTITIES - default: PEOPLE datasource: type: string description: The datasource associated with the entity type, most commonly used with CUSTOM_ENTITIES @@ -13403,6 +11800,7 @@ components: 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 @@ -13416,11 +11814,10 @@ components: - 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 + 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. @@ -13429,19 +11826,20 @@ components: 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 + description: The type of request being made. x-enumDescriptions: STANDARD: Used by default for all requests and satisfies all standard use cases for list requests. Limited to 10000 entities. FULL_DIRECTORY: Used exclusively to return a comprehensive list of all people entities in the organization, typically for audit like purposes. The recommended approach is to sort by FIRST_NAME or LAST_NAME, and use pagination for large organizations. + enum: + - STANDARD + - FULL_DIRECTORY x-speakeasy-enum-descriptions: STANDARD: Used by default for all requests and satisfies all standard use cases for list requests. Limited to 10000 entities. FULL_DIRECTORY: Used exclusively to return a comprehensive list of all people entities in the organization, typically for audit like purposes. The recommended approach is to sort by FIRST_NAME or LAST_NAME, and use pagination for large organizations. EntitiesSortOrder: type: string + description: Different ways of sorting entities enum: - ENTITY_NAME - FIRST_NAME @@ -13450,26 +11848,25 @@ components: - START_DATE - TEAM_SIZE - RELEVANCE - description: Different ways of sorting entities ListEntitiesResponse: type: object properties: results: type: array items: - $ref: '#/components/schemas/Person' + $ref: "#/components/schemas/Person" teamResults: type: array items: - $ref: '#/components/schemas/Team' + $ref: "#/components/schemas/Team" customEntityResults: type: array items: - $ref: '#/components/schemas/CustomEntity' + $ref: "#/components/schemas/CustomEntity" facetResults: type: array items: - $ref: '#/components/schemas/FacetResult' + $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. @@ -13481,14 +11878,14 @@ components: 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. + items: + $ref: "#/components/schemas/EntitiesSortOrder" customFacetNames: type: array + description: list of Person attributes that are custom setup by deployment items: type: string - description: list of Person attributes that are custom setup by deployment PeopleRequest: type: object properties: @@ -13506,6 +11903,7 @@ components: 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 @@ -13520,18 +11918,17 @@ components: - MANAGEMENT_DETAILS - PEOPLE_PROFILE_SETTINGS - PEOPLE_WITHOUT_MANAGER - description: List of PersonMetadata fields to return (that aren't returned by default) includeTypes: + description: The types of people entities to include in the response in addition to those returned by default. + x-enumDescriptions: + PEOPLE_WITHOUT_MANAGER: Returns all people without a manager apart from the requested IDs. + INVALID_ENTITIES: Includes invalid entities in the response if any of the requested IDs are invalid. type: array items: 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. @@ -13547,12 +11944,12 @@ components: results: type: array items: - $ref: '#/components/schemas/Person' + $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' + $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 @@ -13560,11 +11957,11 @@ components: type: string description: A list of IDs that could not be found. CreateShortcutRequest: - properties: - data: - $ref: '#/components/schemas/ShortcutMutableProperties' required: - data + properties: + data: + $ref: "#/components/schemas/ShortcutMutableProperties" ShortcutError: properties: errorType: @@ -13577,42 +11974,44 @@ components: CreateShortcutResponse: properties: shortcut: - $ref: '#/components/schemas/Shortcut' + $ref: "#/components/schemas/Shortcut" error: - $ref: '#/components/schemas/ShortcutError' + $ref: "#/components/schemas/ShortcutError" DeleteShortcutRequest: allOf: - - $ref: '#/components/schemas/UserGeneratedContentId' + - $ref: "#/components/schemas/UserGeneratedContentId" - type: object required: - id GetShortcutRequest: oneOf: - - $ref: '#/components/schemas/UserGeneratedContentId' + - $ref: "#/components/schemas/UserGeneratedContentId" - type: object + required: + - alias 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' + $ref: "#/components/schemas/Shortcut" description: Shortcut given the input alias with any provided arguments substituted into the destination URL. error: - $ref: '#/components/schemas/ShortcutError' + $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 - description: Array of fields/data to be included in response that are not included by default pageSize: type: integer example: 10 @@ -13622,16 +12021,14 @@ components: filters: type: array items: - $ref: '#/components/schemas/FacetFilter' + $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' + $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: @@ -13642,41 +12039,44 @@ components: totalItemCount: type: integer ListShortcutsPaginatedResponse: + required: + - shortcuts + - meta properties: shortcuts: type: array items: - $ref: '#/components/schemas/Shortcut' + $ref: "#/components/schemas/Shortcut" description: List of all shortcuts accessible to the user facetResults: type: array items: - $ref: '#/components/schemas/FacetResult' + $ref: "#/components/schemas/FacetResult" meta: - $ref: '#/components/schemas/ShortcutsPaginationMetadata' + $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' + - $ref: "#/components/schemas/UserGeneratedContentId" + - $ref: "#/components/schemas/ShortcutMutableProperties" - type: object required: - id UpdateShortcutResponse: properties: shortcut: - $ref: '#/components/schemas/Shortcut' + $ref: "#/components/schemas/Shortcut" error: - $ref: '#/components/schemas/ShortcutError' + $ref: "#/components/schemas/ShortcutError" SummarizeRequest: + description: Summary of the document + required: + - documentSpecs properties: timestamp: type: string - format: date-time 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 @@ -13686,14 +12086,11 @@ components: documentSpecs: type: array items: - $ref: '#/components/schemas/DocumentSpec' + $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: @@ -13711,11 +12108,13 @@ components: message: type: string summary: - $ref: '#/components/schemas/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 @@ -13729,16 +12128,16 @@ components: 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' + $ref: "#/components/schemas/Verification" description: List of document infos that include verification related information for them. VerifyRequest: + required: + - documentId properties: documentId: type: string @@ -13750,20 +12149,18 @@ components: - DEPRECATE - UNVERIFY description: The verification action requested. - required: - - documentId ToolParameter: type: object properties: type: type: string + description: Parameter type (string, number, boolean, object, array) enum: - string - number - boolean - object - array - description: Parameter type (string, number, boolean, object, array) name: type: string description: The name of the parameter @@ -13775,27 +12172,27 @@ components: 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 - 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. + $ref: "#/components/schemas/ToolParameter" properties: type: object - additionalProperties: - $ref: '#/components/schemas/ToolParameter' 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 - description: Type of tool (READ, WRITE) name: type: string description: Unique identifier for the tool @@ -13807,18 +12204,21 @@ components: 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. + additionalProperties: + $ref: "#/components/schemas/ToolParameter" ToolsListResponse: type: object properties: tools: type: array items: - $ref: '#/components/schemas/Tool' + $ref: "#/components/schemas/Tool" ToolsCallParameter: type: object + required: + - name + - value properties: name: type: string @@ -13828,94 +12228,91 @@ components: 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) + items: + $ref: "#/components/schemas/ToolsCallParameter" properties: type: object - additionalProperties: - $ref: '#/components/schemas/ToolsCallParameter' description: The value of the parameter (for object types) - required: - - name - - value + 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 - 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 + additionalProperties: + $ref: "#/components/schemas/ToolsCallParameter" ToolsCallResponse: type: object properties: rawResponse: - type: object additionalProperties: true + type: object 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. + 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' - required: - - authenticated - - authType + $ref: "#/components/schemas/ActionAuthType" ActionPackAuthStatusResponse: type: object + required: + - actionPack properties: actionPack: - $ref: '#/components/schemas/ActionPackAuthStatus' + $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 + 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. - required: - - returnUrl 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. - required: - - redirectUrl IndexDocumentRequest: type: object properties: @@ -16527,97 +14924,6 @@ components: 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" - 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 @@ -16656,17 +14962,43 @@ components: 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. + responses: + SuccessResponse: + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/SuccessResponse' + BadRequestError: + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorInfoResponse' + UnauthorizedError: + description: Not Authorized + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorInfoResponse' + NotFoundError: + description: Not Found + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorInfoResponse' + TooManyRequestsError: + description: Too Many Requests + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorInfoResponse' + InternalServerError: + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorInfoResponse' x-tagGroups: - name: Search & Generative AI tags: @@ -16696,3 +15028,14 @@ x-tagGroups: - Authentication - Insights - User +tags: + - name: Datasources + description: Manage datasources. + - name: Documents + description: Index documents from a datasource. + - name: People + description: Index employee people data. + - name: Permissions + description: Manage users, groups and membership. + - name: Authentication + description: Manage indexing API tokens. diff --git a/source_specs/platform.yaml b/source_specs/platform.yaml deleted file mode 100644 index 59400a02..00000000 --- a/source_specs/platform.yaml +++ /dev/null @@ -1,1678 +0,0 @@ -openapi: 3.0.0 -info: - version: '2026-04-01' - title: Glean Platform API - x-source-commit-sha: 2425f68d5b782d8d29908367e47216642f338198 -servers: - - url: https://{domain}-be.glean.com/api - variables: - domain: - default: domain - description: Backend subdomain for the API (e.g. mycompany or be4f5226 for new customers) -security: - - ApiToken: [] -paths: - /documents/batch: - post: - tags: - - Documents - summary: Retrieve documents - description: | - Retrieve details for a batch of documents by URL, Glean document ID, or user-generated content reference. The response preserves request order and reports per-document lookup failures alongside successful results. - operationId: platform-documents-batch - x-visibility: Public - x-glean-sdk: - group: platform.documents - method: batch - x-glean-experimental: - id: 9eb7c7c2-9807-4e64-bc53-7b10aeff813f - introduced: '2026-06-02' - x-codegen-request-body-name: payload - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/DocumentsBatchRequest' - responses: - '200': - description: Successful batch retrieval. - content: - application/json: - schema: - $ref: '#/components/schemas/DocumentsBatchResponse' - '400': - $ref: '#/components/responses/BadRequest' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '408': - $ref: '#/components/responses/RequestTimeout' - '429': - $ref: '#/components/responses/TooManyRequests' - '500': - $ref: '#/components/responses/InternalServerError' - '503': - $ref: '#/components/responses/ServiceUnavailable' - /documents/{id}/permissions: - get: - tags: - - Documents - summary: Retrieve document permissions - description: | - Retrieve whether a document is visible to everyone and the email addresses of users who have access to it. - operationId: platform-documents-permissions - x-visibility: Public - x-glean-sdk: - group: platform.documents - method: getPermissions - x-glean-experimental: - id: 45684a5a-b8c0-4c2c-b022-50e2583666ff - introduced: '2026-06-03' - parameters: - - name: id - in: path - required: true - description: Glean document ID. - schema: - type: string - minLength: 1 - responses: - '200': - description: Successful document permissions retrieval. - content: - application/json: - schema: - $ref: '#/components/schemas/DocumentPermissionsResponse' - '400': - $ref: '#/components/responses/BadRequest' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '408': - $ref: '#/components/responses/RequestTimeout' - '429': - $ref: '#/components/responses/TooManyRequests' - '500': - $ref: '#/components/responses/InternalServerError' - '503': - $ref: '#/components/responses/ServiceUnavailable' - /people/search: - post: - tags: - - People - summary: Search people - description: | - Retrieve people by Glean person ID or email address. When no identifiers are provided, the authenticated user's profile is returned. - operationId: platform-people-search - x-visibility: Public - x-glean-sdk: - group: platform.people - method: search - x-glean-experimental: - id: 51692e94-d9ff-4e5b-b5b5-4b78c4a9879a - introduced: '2026-05-18' - x-codegen-request-body-name: payload - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/PeopleSearchRequest' - responses: - '200': - description: Successful people response. - content: - application/json: - schema: - $ref: '#/components/schemas/PeopleSearchResponse' - '400': - $ref: '#/components/responses/BadRequest' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '408': - $ref: '#/components/responses/RequestTimeout' - '429': - $ref: '#/components/responses/TooManyRequests' - '500': - $ref: '#/components/responses/InternalServerError' - '503': - $ref: '#/components/responses/ServiceUnavailable' - /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-sdk: - group: platform.agents - method: search - 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/AgentsSearchRequest' - responses: - '200': - description: Successful response. - content: - application/json: - schema: - $ref: '#/components/schemas/AgentsSearchResponse' - '400': - $ref: '#/components/responses/BadRequest' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '408': - $ref: '#/components/responses/RequestTimeout' - '429': - $ref: '#/components/responses/TooManyRequests' - '500': - $ref: '#/components/responses/InternalServerError' - '503': - $ref: '#/components/responses/ServiceUnavailable' - /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-sdk: - group: platform.agents - method: get - 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/AgentGetResponse' - '400': - $ref: '#/components/responses/BadRequest' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '408': - $ref: '#/components/responses/RequestTimeout' - '429': - $ref: '#/components/responses/TooManyRequests' - '500': - $ref: '#/components/responses/InternalServerError' - '503': - $ref: '#/components/responses/ServiceUnavailable' - /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-sdk: - group: platform.agents - method: getSchemas - 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/AgentSchemasResponse' - '400': - $ref: '#/components/responses/BadRequest' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '408': - $ref: '#/components/responses/RequestTimeout' - '429': - $ref: '#/components/responses/TooManyRequests' - '500': - $ref: '#/components/responses/InternalServerError' - '503': - $ref: '#/components/responses/ServiceUnavailable' - /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-sdk: - group: platform.agents - method: createRun - 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/AgentRunCreateRequest' - responses: - '200': - description: Successful response. - content: - application/json: - schema: - $ref: '#/components/schemas/AgentRunWaitResponse' - 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/BadRequest' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '408': - $ref: '#/components/responses/RequestTimeout' - '409': - $ref: '#/components/responses/Conflict' - '429': - $ref: '#/components/responses/TooManyRequests' - '500': - $ref: '#/components/responses/InternalServerError' - '503': - $ref: '#/components/responses/ServiceUnavailable' - /tools: - get: - tags: - - Tools - summary: List tools - description: | - List tools available to the authenticated user, optionally filtered by tool name. - operationId: platform-tools-list - x-visibility: Public - x-glean-sdk: - group: platform.tools - method: list - x-glean-experimental: - id: 3cb43a04-ad52-4c25-be62-3ce1daffd513 - introduced: '2026-05-06' - parameters: - - in: query - name: tool_names - description: Optional comma-delimited list of tool names to return. - required: false - style: form - explode: false - schema: - type: array - items: - type: string - responses: - '200': - description: Successful response. - content: - application/json: - schema: - $ref: '#/components/schemas/ToolsListResponse' - '400': - $ref: '#/components/responses/BadRequest' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '408': - $ref: '#/components/responses/RequestTimeout' - '429': - $ref: '#/components/responses/TooManyRequests' - '500': - $ref: '#/components/responses/InternalServerError' - '503': - $ref: '#/components/responses/ServiceUnavailable' - /tools/call: - post: - tags: - - Tools - summary: Call tool - description: | - Execute a tool available to the authenticated user with the provided parameters. - operationId: platform-tools-call - x-visibility: Public - x-glean-sdk: - group: platform.tools - method: call - x-glean-experimental: - id: 9ea7c149-7d5b-4c62-860d-afb56481069a - introduced: '2026-05-08' - x-codegen-request-body-name: payload - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/ToolsCallRequest' - responses: - '200': - description: Successful response. - content: - application/json: - schema: - $ref: '#/components/schemas/ToolsCallResponse' - '400': - $ref: '#/components/responses/BadRequest' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '408': - $ref: '#/components/responses/RequestTimeout' - '429': - $ref: '#/components/responses/TooManyRequests' - '500': - $ref: '#/components/responses/InternalServerError' - '503': - $ref: '#/components/responses/ServiceUnavailable' - /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-sdk: - group: platform.search - method: query - 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/SearchRequest' - responses: - '200': - description: Successful search. - content: - application/json: - schema: - $ref: '#/components/schemas/SearchResponse' - '400': - $ref: '#/components/responses/BadRequest' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '408': - $ref: '#/components/responses/RequestTimeout' - '429': - $ref: '#/components/responses/TooManyRequests' - '500': - $ref: '#/components/responses/InternalServerError' - '503': - $ref: '#/components/responses/ServiceUnavailable' - /summarize: - post: - tags: - - Summarize - summary: Summarize documents - description: | - Generate an AI summary of one or more documents. Supply documents by URL, Glean document ID, or user-generated content reference. - operationId: platform-summarize - x-visibility: Public - x-glean-sdk: - group: platform.summarize - method: create - x-glean-experimental: - id: 4d2f8b2e-7c9d-4f4f-9b1d-4d2f8b2e7c9d - introduced: '2026-05-27' - x-codegen-request-body-name: payload - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/SummarizeRequest' - responses: - '200': - description: Successful summary. - content: - application/json: - schema: - $ref: '#/components/schemas/SummarizeResponse' - '400': - $ref: '#/components/responses/BadRequest' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '408': - $ref: '#/components/responses/RequestTimeout' - '429': - $ref: '#/components/responses/TooManyRequests' - '500': - $ref: '#/components/responses/InternalServerError' - '503': - $ref: '#/components/responses/ServiceUnavailable' -components: - securitySchemes: - ApiToken: - type: http - scheme: bearer - description: | - Glean API token. Obtain via Admin Console -> Platform -> API Tokens, or via OAuth 2.0 client credentials flow. - schemas: - UgcType: - type: string - enum: - - ANNOUNCEMENTS - - ANSWERS - - COLLECTIONS - - SHORTCUTS - description: Type of user-generated content. - DocumentSpec: - type: object - description: | - Reference to a document. Exactly one of `url`, `id`, or `content_id` with `ugc_type` must be provided. - oneOf: - - type: object - additionalProperties: false - required: - - url - properties: - url: - type: string - description: URL of the document. - - type: object - additionalProperties: false - required: - - id - properties: - id: - type: string - description: Glean document ID. - - type: object - additionalProperties: false - required: - - content_id - - ugc_type - properties: - content_id: - type: integer - format: int32 - description: Numeric ID of the user-generated content item. - ugc_type: - $ref: '#/components/schemas/UgcType' - doc_type: - type: string - description: Specific subtype of the user-generated content item. - DocumentIncludeField: - type: string - enum: - - LAST_VIEWED_AT - - VISITORS_COUNT - - RECENT_SHARES - - DOCUMENT_CONTENT - - CUSTOM_METADATA - description: Optional fields that can be included in returned documents. - DocumentsBatchRequest: - type: object - additionalProperties: false - required: - - document_specs - properties: - document_specs: - type: array - minItems: 1 - items: - $ref: '#/components/schemas/DocumentSpec' - description: Documents to retrieve. - include_fields: - type: array - items: - $ref: '#/components/schemas/DocumentIncludeField' - description: Additional document fields to include in the response. - DocumentContent: - type: object - properties: - full_text_list: - type: array - items: - type: string - description: Plaintext content of the document. - DocumentReference: - type: object - properties: - id: - type: string - description: Glean document ID. - title: - type: string - description: Title of the referenced document. - url: - type: string - description: Permalink for the referenced document. - CountInfo: - type: object - properties: - count: - type: integer - format: int64 - period: - type: string - description: Human-readable period represented by this count. - from: - type: string - format: date-time - to: - type: string - format: date-time - Person: - type: object - properties: - name: - type: string - email: - type: string - obfuscated_id: - type: string - Share: - type: object - properties: - num_days_ago: - type: integer - description: Number of days since the share occurred. - sharer: - $ref: '#/components/schemas/Person' - sharing_document: - $ref: '#/components/schemas/DocumentReference' - DocumentInteractions: - type: object - properties: - visitor_count: - $ref: '#/components/schemas/CountInfo' - shares: - type: array - items: - $ref: '#/components/schemas/Share' - ViewerInfo: - type: object - properties: - last_viewed_time: - type: string - format: date-time - CustomDataValue: - type: object - properties: - string_value: - type: string - string_list_value: - type: array - items: - type: string - DocumentMetadata: - type: object - properties: - datasource: - type: string - datasource_instance: - type: string - description: Datasource instance from which the document was extracted. - object_type: - type: string - description: Datasource-specific object type. - container: - type: string - description: Name of the higher-level container. - container_id: - type: string - description: Glean document ID of the container. - parent_id: - type: string - description: Glean document ID of the direct parent. - mime_type: - type: string - interactions: - $ref: '#/components/schemas/DocumentInteractions' - viewer_info: - $ref: '#/components/schemas/ViewerInfo' - custom_data: - type: object - additionalProperties: - $ref: '#/components/schemas/CustomDataValue' - description: Custom metadata requested via `CUSTOM_METADATA`. - DocumentSection: - type: object - properties: - title: - type: string - description: Section title. - url: - type: string - description: Permalink for the section. - Document: - type: object - required: - - id - properties: - id: - type: string - description: Glean document ID. - datasource: - type: string - description: App or repository type from which the document was extracted. - connector_type: - type: string - description: Connector type for the source system. - document_type: - type: string - description: Datasource-specific type of the document. - title: - type: string - description: Title of the document. - url: - type: string - description: Permalink for the document. - content: - $ref: '#/components/schemas/DocumentContent' - container_document: - $ref: '#/components/schemas/DocumentReference' - parent_document: - $ref: '#/components/schemas/DocumentReference' - metadata: - $ref: '#/components/schemas/DocumentMetadata' - sections: - type: array - items: - $ref: '#/components/schemas/DocumentSection' - description: Content subsections in the document. - DocumentBatchErrorCode: - type: string - enum: - - NOT_FOUND_OR_NOT_ALLOWED - - INVALID_DOCUMENT_SPEC - - ANNOTATION_ERROR - - DOCUMENT_GENERATION_ERROR - description: Stable machine-readable item-level failure code. - DocumentBatchError: - type: object - required: - - code - - message - properties: - code: - $ref: '#/components/schemas/DocumentBatchErrorCode' - message: - type: string - description: Human-readable explanation for the item-level failure. - DocumentBatchResult: - description: | - One document retrieval result. Successful results include `document`; lookup failures include `error`. - oneOf: - - type: object - additionalProperties: false - required: - - status - - document - properties: - status: - type: string - enum: - - FOUND - document: - $ref: '#/components/schemas/Document' - - type: object - additionalProperties: false - required: - - status - - error - properties: - status: - type: string - enum: - - NOT_FOUND - - INVALID - - ERROR - error: - $ref: '#/components/schemas/DocumentBatchError' - DocumentsBatchResponse: - type: object - required: - - request_id - - results - properties: - request_id: - type: string - description: Server-generated identifier for this response, useful for support. - results: - type: array - items: - $ref: '#/components/schemas/DocumentBatchResult' - description: Results in the same order as `document_specs`. - ProblemDetail: - 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://developer.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: - type: string - description: Stable machine-readable error code. - enum: - - invalid_request - - missing_required_field - - invalid_parameter - - invalid_cursor - - expired_cursor - - invalid_filter - - authentication_required - - token_expired - - insufficient_permissions - - resource_not_found - - method_not_allowed - - request_timeout - - conflict - - gone - - unprocessable_query - - rate_limit_exceeded - - internal_error - - service_unavailable - example: invalid_cursor - documentation_url: - type: string - format: uri - description: Direct URL to documentation for this error code. - example: https://developer.glean.com/errors/invalid-cursor - request_id: - type: string - description: Platform-generated request ID for support correlation. - example: req_7f8a9b0c1d2e - DocumentPermissionsResponse: - type: object - required: - - request_id - - allowed_user_emails - - visible_to_all - properties: - request_id: - type: string - description: Server-generated identifier for this response, useful for support. - allowed_user_emails: - type: array - items: - type: string - description: Email addresses for users who can access the document. - visible_to_all: - type: boolean - description: Whether the document is visible to everyone. - PeopleIncludeField: - type: string - description: Optional profile fields to request. - enum: - - PEOPLE_DETAILS - - MANAGEMENT_DETAILS - PeopleIncludeType: - type: string - description: Optional people result types to request. - x-enumDescriptions: - INVALID_ENTITIES: Return invalid requested people that can be loaded in the people array with is_valid set to false. Identifiers that cannot be loaded are returned in not_found. - enum: - - INVALID_ENTITIES - PeopleSearchRequest: - type: object - additionalProperties: false - properties: - person_ids: - type: array - description: Glean person IDs to retrieve. - items: - type: string - example: - - abc123 - - abc456 - email_ids: - type: array - description: Email addresses to retrieve. - items: - type: string - example: - - jane.smith@example.com - include_fields: - type: array - description: Optional profile fields to include beyond the default profile. - items: - $ref: '#/components/schemas/PeopleIncludeField' - include_types: - type: array - description: Optional non-default people result types to include. - items: - $ref: '#/components/schemas/PeopleIncludeType' - PersonType: - type: string - description: Person employment status or account type. - enum: - - FULL_TIME - - CONTRACTOR - - NON_EMPLOYEE - - FORMER_EMPLOYEE - Person-2: - type: object - required: - - id - - is_valid - - name - properties: - id: - type: string - description: Opaque Glean person ID. - is_valid: - type: boolean - description: Whether this is a valid person record. Invalid people are returned only when requested with include_types. - name: - type: string - description: Display name. - type: - $ref: '#/components/schemas/PersonType' - email: - type: string - format: email - description: Primary email address. - title: - type: string - description: Job title. - department: - type: string - description: Department or organizational unit. - location: - type: string - description: User-facing location. - photo_url: - type: string - format: uri - description: Avatar URL. - manager_id: - type: string - description: Opaque Glean person ID for the person's manager. - manager_name: - type: string - description: Display name for the person's manager. - PeopleSearchResponse: - type: object - required: - - people - - not_found - - request_id - properties: - people: - type: array - description: People matching the requested identifiers. - items: - $ref: '#/components/schemas/Person-2' - not_found: - type: array - description: Identifiers that could not be resolved. - items: - type: string - request_id: - type: string - description: Platform-generated request ID for support correlation. - AgentsSearchRequest: - 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 - AgentCapabilities: - 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. - Agent: - 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/AgentCapabilities' - AgentsSearchResponse: - type: object - required: - - agents - - request_id - properties: - agents: - type: array - description: Agents matching the search request. - items: - $ref: '#/components/schemas/Agent' - request_id: - type: string - description: Platform-generated request ID for support correlation. - AgentGetResponse: - type: object - required: - - agent - - request_id - properties: - agent: - $ref: '#/components/schemas/Agent' - request_id: - type: string - description: Platform-generated request ID for support correlation. - ActionSummary: - 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. - AgentSchemasResponse: - 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/ActionSummary' - request_id: - type: string - description: Platform-generated request ID for support correlation. - MessageRole: - type: string - description: Role of the message author. - example: USER - enum: - - USER - - GLEAN_AI - ContentType: - type: string - enum: - - text - MessageTextBlock: - type: object - required: - - text - - type - properties: - text: - type: string - description: Text content. - type: - $ref: '#/components/schemas/ContentType' - Message: - type: object - required: - - role - - content - properties: - role: - $ref: '#/components/schemas/MessageRole' - content: - type: array - description: Content blocks in the message. - items: - $ref: '#/components/schemas/MessageTextBlock' - AgentRunCreateRequest: - 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/Message' - 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 - AgentRunCreate: - 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/Message' - metadata: - type: object - description: Metadata passed to the agent. - additionalProperties: true - AgentExecutionStatus: - type: string - description: Status of the agent run. - enum: - - error - - success - AgentRun: - allOf: - - $ref: '#/components/schemas/AgentRunCreate' - - type: object - required: - - status - properties: - status: - $ref: '#/components/schemas/AgentExecutionStatus' - AgentRunWaitResponse: - type: object - required: - - request_id - properties: - run: - $ref: '#/components/schemas/AgentRun' - messages: - type: array - description: Messages returned by the completed run. - items: - $ref: '#/components/schemas/Message' - request_id: - type: string - description: Platform-generated request ID for support correlation. - ToolParameter: - type: object - properties: - type: - type: string - description: Parameter type. - enum: - - string - - number - - boolean - - object - - array - name: - type: string - description: Parameter name. - description: - type: string - description: Parameter description. - is_required: - type: boolean - description: Whether the parameter is required. - possible_values: - type: array - description: Possible primitive values for the parameter. - items: - type: string - items: - $ref: '#/components/schemas/ToolParameter' - properties: - type: object - description: Object properties for object parameters. - additionalProperties: - $ref: '#/components/schemas/ToolParameter' - Tool: - type: object - required: - - type - - name - - display_name - - description - - parameters - properties: - type: - type: string - description: Type of tool. - enum: - - READ - - WRITE - name: - type: string - description: Unique identifier for the tool. - display_name: - type: string - description: Human-readable name. - description: - type: string - description: LLM-friendly description of the tool. - parameters: - type: object - description: Parameters supported by the tool. - additionalProperties: - $ref: '#/components/schemas/ToolParameter' - ToolsListResponse: - type: object - required: - - tools - - request_id - properties: - tools: - type: array - description: List of tools available to the user. - items: - $ref: '#/components/schemas/Tool' - request_id: - type: string - description: Platform-generated request ID for support correlation. - ToolsCallRequest: - type: object - additionalProperties: false - required: - - name - - parameters - properties: - name: - type: string - minLength: 1 - description: Name of the tool to execute. - parameters: - type: object - description: Tool parameter values keyed by parameter name. - additionalProperties: true - ToolsCallResponse: - type: object - required: - - raw_response - - request_id - properties: - raw_response: - type: object - description: Raw response returned by the tool. - additionalProperties: true - request_id: - type: string - description: Platform-generated request ID for support correlation. - Filter: - type: object - required: - - field - - values - description: | - A single filter criterion. Multiple values within a filter are OR'd. 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 operator 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 - exclude: - type: boolean - default: false - description: Excludes results matching any of the specified values when true. - TimeRange: - 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. - SearchRequest: - type: object - additionalProperties: false - required: - - query - 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`. - example: quarterly planning 2026 - 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. - example: - - confluence - - google_drive - filters: - type: array - items: - $ref: '#/components/schemas/Filter' - description: | - Structured filters applied to search results. Multiple values within a filter are OR'd. Multiple filters are AND'd together. 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/TimeRange' - Person-3: - type: object - nullable: true - description: A person associated with the result. - properties: - name: - type: string - description: Display name. - example: Jane Smith - email: - type: string - format: email - description: Email address. - example: jane.smith@company.com - Result: - 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 - document_type: - type: string - nullable: true - description: The document type within the datasource. - example: page - creator: - $ref: '#/components/schemas/Person-3' - owner: - $ref: '#/components/schemas/Person-3' - 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. - SearchResponse: - type: object - required: - - results - - has_more - - next_cursor - - request_id - properties: - results: - type: array - items: - $ref: '#/components/schemas/Result' - 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. - DocumentSpec-2: - type: object - description: | - Reference to a document to summarize. Exactly one of `url`, `id`, or a UGC pair (`content_id` + `ugc_type` for ANNOUNCEMENTS/ANSWERS/COLLECTIONS) must be provided. - oneOf: - - type: object - additionalProperties: false - required: - - url - properties: - url: - type: string - description: Public URL of the document. - - type: object - additionalProperties: false - required: - - id - properties: - id: - type: string - description: Glean document ID. - - type: object - additionalProperties: false - required: - - content_id - - ugc_type - properties: - content_id: - type: integer - format: int32 - description: Numeric ID of the user-generated content item. - ugc_type: - type: string - enum: - - ANNOUNCEMENTS - - ANSWERS - - COLLECTIONS - description: Datasource type of the user-generated content item. - SummarizeRequest: - type: object - additionalProperties: false - required: - - document_specs - properties: - document_specs: - type: array - minItems: 1 - items: - $ref: '#/components/schemas/DocumentSpec-2' - description: Specifications of the documents to summarize. - preferred_summary_length: - type: integer - minimum: 1 - default: 1000 - description: | - Preferred summary length in characters. The model treats this as a target, not a strict bound. - tracking_token: - type: string - description: | - Opaque token from a previous response. Pass it back when reporting feedback to associate the feedback with this summary. - Summary: - type: object - properties: - text: - type: string - description: The generated summary text. - follow_up_prompts: - type: array - items: - type: string - description: Suggested follow-up prompts derived from the summarized documents. - SummarizeResponse: - type: object - properties: - request_id: - type: string - description: Server-generated identifier for this response, useful for support. - summary: - $ref: '#/components/schemas/Summary' - tracking_token: - type: string - description: | - Opaque token representing this summary. Pass it back to the feedback endpoint to associate feedback with this summary. - responses: - BadRequest: - description: Invalid request (malformed JSON, invalid parameter values, unknown fields). - content: - application/problem+json: - schema: - $ref: '#/components/schemas/ProblemDetail' - Unauthorized: - description: Missing or invalid authentication token. - content: - application/problem+json: - schema: - $ref: '#/components/schemas/ProblemDetail' - Forbidden: - description: Token valid but lacks permission for the requested operation. - content: - application/problem+json: - schema: - $ref: '#/components/schemas/ProblemDetail' - NotFound: - description: Resource not found. - content: - application/problem+json: - schema: - $ref: '#/components/schemas/ProblemDetail' - RequestTimeout: - description: Backend did not respond within the timeout window. - content: - application/problem+json: - schema: - $ref: '#/components/schemas/ProblemDetail' - TooManyRequests: - description: Rate limit exceeded. Includes Retry-After header. - content: - application/problem+json: - schema: - $ref: '#/components/schemas/ProblemDetail' - InternalServerError: - description: Unexpected server-side failure. - content: - application/problem+json: - schema: - $ref: '#/components/schemas/ProblemDetail' - ServiceUnavailable: - description: Backend temporarily unavailable. - content: - application/problem+json: - schema: - $ref: '#/components/schemas/ProblemDetail' - Conflict: - description: Request conflicts with current state of the resource. - content: - application/problem+json: - schema: - $ref: '#/components/schemas/ProblemDetail' -x-tagGroups: - - name: AI - tags: - - Agents - - Summarize - - name: Data Retrieval - tags: - - Documents - - People - - Search - - Tools diff --git a/tests/post_transform_smoke.test.js b/tests/post_transform_smoke.test.js index 1dde671f..e00a2b4f 100644 --- a/tests/post_transform_smoke.test.js +++ b/tests/post_transform_smoke.test.js @@ -10,6 +10,7 @@ const SPEC_PATH = path.join( ); const loadSpec = () => yaml.load(fs.readFileSync(SPEC_PATH, 'utf8')); +const hasPlatformPaths = (spec) => Boolean(spec.paths?.['/api/search']); describe('Post-transformation smoke tests', () => { let spec; @@ -146,6 +147,10 @@ describe('Post-transformation smoke tests', () => { }); test('Platform operations land under expected SDK groups', () => { + if (!hasPlatformPaths(spec)) { + return; + } + const platformOps = [ { path: '/api/documents/batch', @@ -229,6 +234,10 @@ describe('Post-transformation smoke tests', () => { }); test('Platform merged spec retains streaming run response', () => { + if (!hasPlatformPaths(spec)) { + return; + } + const operation = spec.paths?.['/api/agents/{agent_id}/runs']?.post; expect(operation?.responses?.['200']?.content).toHaveProperty( @@ -237,6 +246,10 @@ describe('Post-transformation smoke tests', () => { }); test('Platform private runtime gates do not reach merged spec', () => { + if (!hasPlatformPaths(spec)) { + return; + } + expect(JSON.stringify(spec)).not.toContain('gated-by'); }); }); From ac984b3380b48bbfd35be6e1b445091bbc342837 Mon Sep 17 00:00:00 2001 From: Chris Freeman Date: Wed, 17 Jun 2026 16:12:30 -0600 Subject: [PATCH 3/6] Use shared Platform schema names --- src/source-spec-transformer.js | 11 +---------- tests/source-spec-transformer.test.js | 24 ++++++++++++------------ 2 files changed, 13 insertions(+), 22 deletions(-) diff --git a/src/source-spec-transformer.js b/src/source-spec-transformer.js index 38f8d260..511e484e 100644 --- a/src/source-spec-transformer.js +++ b/src/source-spec-transformer.js @@ -70,11 +70,6 @@ const httpMethods = new Set([ const platformSdkGroupPattern = /^platform(\.[a-z][a-z0-9]*)+$/; const platformSdkMethodPattern = /^[a-z][A-Za-z0-9]*$/; -const platformComponentNameOverrides = { - 'Person-2': 'PeopleSearchPerson', - 'Person-3': 'SearchResultPerson', - 'DocumentSpec-2': 'SummarizeDocumentSpec', -}; function rewriteRefs(obj, refMap) { if (!obj || typeof obj !== 'object') return; @@ -95,11 +90,7 @@ function transformPlatformTagGroups(spec) { } function platformSchemaName(name) { - const overriddenName = platformComponentNameOverrides[name] ?? name; - - return overriddenName.startsWith('Platform') - ? overriddenName - : `Platform${overriddenName}`; + return name.startsWith('Platform') ? name : `Platform${name}`; } function transformPlatformSchemas(spec) { diff --git a/tests/source-spec-transformer.test.js b/tests/source-spec-transformer.test.js index 10ebe17e..3d2714e1 100644 --- a/tests/source-spec-transformer.test.js +++ b/tests/source-spec-transformer.test.js @@ -267,15 +267,15 @@ describe('OpenAPI YAML Transformer', () => { result: { $ref: '#/components/schemas/Result' }, }, }, - 'Person-2': { type: 'object' }, - 'Person-3': { type: 'object' }, - 'DocumentSpec-2': { type: 'object' }, + PersonReference: { type: 'object' }, + Person: { type: 'object' }, + DocumentSpec: { type: 'object' }, PeopleSearchResponse: { type: 'object', properties: { people: { type: 'array', - items: { $ref: '#/components/schemas/Person-2' }, + items: { $ref: '#/components/schemas/Person' }, }, }, }, @@ -285,7 +285,7 @@ describe('OpenAPI YAML Transformer', () => { type: 'object', properties: { related: { $ref: '#/components/schemas/SearchRequest' }, - creator: { $ref: '#/components/schemas/Person-3' }, + creator: { $ref: '#/components/schemas/PersonReference' }, }, }, SummarizeRequest: { @@ -293,7 +293,7 @@ describe('OpenAPI YAML Transformer', () => { properties: { document_specs: { type: 'array', - items: { $ref: '#/components/schemas/DocumentSpec-2' }, + items: { $ref: '#/components/schemas/DocumentSpec' }, }, }, }, @@ -429,15 +429,15 @@ describe('OpenAPI YAML Transformer', () => { expect(transformedSpec['x-tagGroups']).toBeUndefined(); expect(Object.keys(transformedSpec.components.schemas).sort()).toEqual([ + 'PlatformDocumentSpec', 'PlatformExisting', - 'PlatformPeopleSearchPerson', 'PlatformPeopleSearchResponse', + 'PlatformPerson', + 'PlatformPersonReference', 'PlatformResult', 'PlatformRunEvent', 'PlatformRunRequest', 'PlatformSearchRequest', - 'PlatformSearchResultPerson', - 'PlatformSummarizeDocumentSpec', 'PlatformSummarizeRequest', 'PlatformTool', 'PlatformToolCallRequest', @@ -454,15 +454,15 @@ describe('OpenAPI YAML Transformer', () => { ).toBe('#/components/schemas/PlatformSearchRequest'); expect( transformedSpec.components.schemas.PlatformResult.properties.creator.$ref, - ).toBe('#/components/schemas/PlatformSearchResultPerson'); + ).toBe('#/components/schemas/PlatformPersonReference'); expect( transformedSpec.components.schemas.PlatformPeopleSearchResponse.properties .people.items.$ref, - ).toBe('#/components/schemas/PlatformPeopleSearchPerson'); + ).toBe('#/components/schemas/PlatformPerson'); expect( transformedSpec.components.schemas.PlatformSummarizeRequest.properties .document_specs.items.$ref, - ).toBe('#/components/schemas/PlatformSummarizeDocumentSpec'); + ).toBe('#/components/schemas/PlatformDocumentSpec'); expect(transformedSpec.components.responses).toHaveProperty( 'PlatformBadRequest', ); From 670eb3f42432b102699407e19d0015b8671e9084 Mon Sep 17 00:00:00 2001 From: Chris Freeman Date: Wed, 17 Jun 2026 16:21:15 -0600 Subject: [PATCH 4/6] Tighten Platform smoke trigger --- tests/post_transform_smoke.test.js | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/tests/post_transform_smoke.test.js b/tests/post_transform_smoke.test.js index e00a2b4f..de14a116 100644 --- a/tests/post_transform_smoke.test.js +++ b/tests/post_transform_smoke.test.js @@ -8,9 +8,14 @@ const SPEC_PATH = path.join( 'overlayed_specs', 'glean-merged-spec.yaml', ); +const PLATFORM_SPEC_PATH = path.join( + process.cwd(), + 'generated_specs', + 'platform.yaml', +); const loadSpec = () => yaml.load(fs.readFileSync(SPEC_PATH, 'utf8')); -const hasPlatformPaths = (spec) => Boolean(spec.paths?.['/api/search']); +const hasGeneratedPlatformSpec = () => fs.existsSync(PLATFORM_SPEC_PATH); describe('Post-transformation smoke tests', () => { let spec; @@ -147,7 +152,7 @@ describe('Post-transformation smoke tests', () => { }); test('Platform operations land under expected SDK groups', () => { - if (!hasPlatformPaths(spec)) { + if (!hasGeneratedPlatformSpec()) { return; } @@ -234,7 +239,7 @@ describe('Post-transformation smoke tests', () => { }); test('Platform merged spec retains streaming run response', () => { - if (!hasPlatformPaths(spec)) { + if (!hasGeneratedPlatformSpec()) { return; } @@ -246,7 +251,7 @@ describe('Post-transformation smoke tests', () => { }); test('Platform private runtime gates do not reach merged spec', () => { - if (!hasPlatformPaths(spec)) { + if (!hasGeneratedPlatformSpec()) { return; } From 32043bdd8ffe049078cf3a9d40a02085c26b5f3c Mon Sep 17 00:00:00 2001 From: Chris Freeman Date: Wed, 17 Jun 2026 16:28:15 -0600 Subject: [PATCH 5/6] Handle Platform spec transition window --- .github/workflows/transform.yml | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/.github/workflows/transform.yml b/.github/workflows/transform.yml index 5ef3201d..532182d1 100644 --- a/.github/workflows/transform.yml +++ b/.github/workflows/transform.yml @@ -43,6 +43,24 @@ jobs: env: GITHUB_SHA: ${{ github.sha }} + - name: Omit Platform input until generated + if: ${{ hashFiles('generated_specs/platform.yaml') == '' }} + run: | + cp .speakeasy/workflow.yaml /tmp/speakeasy-workflow.yaml + python3 - <<'PY' + from pathlib import Path + + workflow_path = Path(".speakeasy/workflow.yaml") + workflow_path.write_text( + "\n".join( + line + for line in workflow_path.read_text().splitlines() + if "generated_specs/platform.yaml" not in line + ) + + "\n" + ) + PY + - name: Generate OpenAPI specs run: speakeasy run -s glean-api-specs env: @@ -65,6 +83,12 @@ jobs: - name: Run post-transformation smoke tests run: pnpm exec vitest run tests/post_transform_smoke.test.js + - name: Restore Speakeasy workflow + run: | + if [ -f /tmp/speakeasy-workflow.yaml ]; then + cp /tmp/speakeasy-workflow.yaml .speakeasy/workflow.yaml + fi + - name: Check if changes are only SHA updates id: check_changes run: | From c8020294748cd8a77179662a29d4100a5609a0af Mon Sep 17 00:00:00 2001 From: Chris Freeman Date: Wed, 17 Jun 2026 16:40:21 -0600 Subject: [PATCH 6/6] Defer Platform spec activation --- .github/workflows/transform.yml | 24 ------ .speakeasy/workflow.yaml | 1 - tests/post_transform_smoke.test.js | 127 ----------------------------- 3 files changed, 152 deletions(-) diff --git a/.github/workflows/transform.yml b/.github/workflows/transform.yml index 532182d1..5ef3201d 100644 --- a/.github/workflows/transform.yml +++ b/.github/workflows/transform.yml @@ -43,24 +43,6 @@ jobs: env: GITHUB_SHA: ${{ github.sha }} - - name: Omit Platform input until generated - if: ${{ hashFiles('generated_specs/platform.yaml') == '' }} - run: | - cp .speakeasy/workflow.yaml /tmp/speakeasy-workflow.yaml - python3 - <<'PY' - from pathlib import Path - - workflow_path = Path(".speakeasy/workflow.yaml") - workflow_path.write_text( - "\n".join( - line - for line in workflow_path.read_text().splitlines() - if "generated_specs/platform.yaml" not in line - ) - + "\n" - ) - PY - - name: Generate OpenAPI specs run: speakeasy run -s glean-api-specs env: @@ -83,12 +65,6 @@ jobs: - name: Run post-transformation smoke tests run: pnpm exec vitest run tests/post_transform_smoke.test.js - - name: Restore Speakeasy workflow - run: | - if [ -f /tmp/speakeasy-workflow.yaml ]; then - cp /tmp/speakeasy-workflow.yaml .speakeasy/workflow.yaml - fi - - name: Check if changes are only SHA updates id: check_changes run: | diff --git a/.speakeasy/workflow.yaml b/.speakeasy/workflow.yaml index 873ff6cf..ddd657a0 100644 --- a/.speakeasy/workflow.yaml +++ b/.speakeasy/workflow.yaml @@ -3,7 +3,6 @@ speakeasyVersion: latest sources: glean-api-specs: inputs: - - location: generated_specs/platform.yaml - location: generated_specs/client_rest.yaml - location: generated_specs/indexing.yaml - location: generated_specs/admin_rest.yaml diff --git a/tests/post_transform_smoke.test.js b/tests/post_transform_smoke.test.js index de14a116..9aeb761f 100644 --- a/tests/post_transform_smoke.test.js +++ b/tests/post_transform_smoke.test.js @@ -8,14 +8,8 @@ const SPEC_PATH = path.join( 'overlayed_specs', 'glean-merged-spec.yaml', ); -const PLATFORM_SPEC_PATH = path.join( - process.cwd(), - 'generated_specs', - 'platform.yaml', -); const loadSpec = () => yaml.load(fs.readFileSync(SPEC_PATH, 'utf8')); -const hasGeneratedPlatformSpec = () => fs.existsSync(PLATFORM_SPEC_PATH); describe('Post-transformation smoke tests', () => { let spec; @@ -56,20 +50,6 @@ describe('Post-transformation smoke tests', () => { expect(spec.info?.title).toBe('Glean API'); }); - test('merged spec keeps existing version and source traceability', () => { - expect(spec.info?.version).toBe('0.9.0'); - expect(spec.info?.['x-source-commit-sha']).toBeDefined(); - expect(spec.info?.['x-open-api-commit-sha']).toBeDefined(); - }); - - test('existing merged tag groups are preserved', () => { - const tagGroupNames = (spec['x-tagGroups'] ?? []).map(({ name }) => name); - - expect(tagGroupNames).toContain('Search & Generative AI'); - expect(tagGroupNames).toContain('Connected Content'); - expect(tagGroupNames).not.toEqual(['AI', 'Data Retrieval']); - }); - test('all paths use expected base prefixes', () => { const paths = Object.keys(spec.paths ?? {}); @@ -150,111 +130,4 @@ describe('Post-transformation smoke tests', () => { '#/components/schemas/CustomMetadataPropertyDefinition', ); }); - - test('Platform operations land under expected SDK groups', () => { - if (!hasGeneratedPlatformSpec()) { - return; - } - - const platformOps = [ - { - path: '/api/documents/batch', - method: 'post', - group: 'platform.documents', - nameOverride: 'batch', - }, - { - path: '/api/documents/{id}/permissions', - method: 'get', - group: 'platform.documents', - nameOverride: 'getPermissions', - }, - { - path: '/api/people/search', - method: 'post', - group: 'platform.people', - nameOverride: 'search', - }, - { - path: '/api/agents/search', - method: 'post', - group: 'platform.agents', - nameOverride: 'search', - }, - { - path: '/api/agents/{agent_id}', - method: 'get', - group: 'platform.agents', - nameOverride: 'get', - }, - { - path: '/api/agents/{agent_id}/schemas', - method: 'get', - group: 'platform.agents', - nameOverride: 'getSchemas', - }, - { - path: '/api/agents/{agent_id}/runs', - method: 'post', - group: 'platform.agents', - nameOverride: 'createRun', - }, - { - path: '/api/search', - method: 'post', - group: 'platform.search', - nameOverride: 'query', - }, - { - path: '/api/tools', - method: 'get', - group: 'platform.tools', - nameOverride: 'list', - }, - { - path: '/api/tools/call', - method: 'post', - group: 'platform.tools', - nameOverride: 'call', - }, - { - path: '/api/summarize', - method: 'post', - group: 'platform.summarize', - nameOverride: 'create', - }, - ]; - - for (const { path, method, group, nameOverride } of platformOps) { - const operation = spec.paths?.[path]?.[method]; - - expect( - operation, - `expected operation ${method.toUpperCase()} ${path}`, - ).toBeDefined(); - expect(operation['x-speakeasy-group']).toBe(group); - expect(operation['x-speakeasy-name-override']).toBe(nameOverride); - expect(operation['x-glean-sdk']).toBeUndefined(); - } - }); - - test('Platform merged spec retains streaming run response', () => { - if (!hasGeneratedPlatformSpec()) { - return; - } - - const operation = spec.paths?.['/api/agents/{agent_id}/runs']?.post; - - expect(operation?.responses?.['200']?.content).toHaveProperty( - 'text/event-stream', - ); - }); - - test('Platform private runtime gates do not reach merged spec', () => { - if (!hasGeneratedPlatformSpec()) { - return; - } - - expect(JSON.stringify(spec)).not.toContain('gated-by'); - }); });