openapi: 3.0.0 info: version: 0.9.0 title: Glean API x-source-commit-sha: f7901d44d45ee81a4b6eeaab7f6771425f26a965 description: | # Introduction In addition to the data sources that Glean has built-in support for, Glean also provides a REST API that enables customers to put arbitrary content in the search index. This is useful, for example, for doing permissions-aware search over content in internal tools that reside on-prem as well as for searching over applications that Glean does not currently support first class. In addition these APIs allow the customer to push organization data (people info, organization structure etc) into Glean. # Usage guidelines This API is evolving fast. Glean will provide advance notice of any planned backwards incompatible changes along with a 6-month sunset period for anything that requires developers to adopt the new versions. # API Clients Official API clients for the Glean Indexing API are available in multiple languages: - [Python](https://github.com/gleanwork/api-client-python) - [TypeScript](https://github.com/gleanwork/api-client-typescript) - [Go](https://github.com/gleanwork/api-client-go) - [Java](https://github.com/gleanwork/api-client-java) 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: 79e9891cc4c0dc8c2c833f34e85e8a9aa722d103 x-speakeasy-name: 'Glean API' servers: - url: https://{instance}-be.glean.com variables: instance: default: instance-name description: The instance name (typically the email domain without the TLD) that determines the deployment backend. security: - APIToken: [] 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. paths: /api/index/v1/indexdocument: post: summary: Index document description: Adds a document to the index or updates an existing document. tags: - Documents requestBody: content: application/json: schema: $ref: "#/components/schemas/IndexDocumentRequest" required: true x-exportParamName: IndexDocumentRequest responses: "200": description: OK "400": description: Bad Request "401": description: Not Authorized "409": description: Conflict "429": description: Too Many Requests x-speakeasy-name-override: addOrUpdate x-speakeasy-group: indexing.documents /api/index/v1/indexdocuments: post: summary: Index documents description: Adds or updates multiple documents in the index. Please refer to the [bulk indexing](https://developers.glean.com/indexing/documents/bulk-indexing/choosing-indexdocuments-vs-bulkindexdocuments) documentation for an explanation of when to use this endpoint. tags: - Documents requestBody: content: application/json: schema: $ref: "#/components/schemas/IndexDocumentsRequest" required: true x-exportParamName: IndexDocumentsRequest responses: "200": description: OK "400": description: Bad Request "401": description: Not Authorized "409": description: Conflict "429": description: Too Many Requests x-speakeasy-name-override: index x-speakeasy-group: indexing.documents /api/index/v1/bulkindexdocuments: post: summary: Bulk index documents description: Replaces the documents in a datasource using paginated batch API calls. Please refer to the [bulk indexing](https://developers.glean.com/indexing/documents/bulk-upload-model) documentation for an explanation of how to use bulk endpoints. tags: - Documents requestBody: content: application/json: schema: $ref: "#/components/schemas/BulkIndexDocumentsRequest" required: true x-exportParamName: BulkIndexDocumentsRequest responses: "200": description: OK "400": description: Bad Request "401": description: Not Authorized "409": description: Conflict x-speakeasy-name-override: bulkIndex x-speakeasy-group: indexing.documents /api/index/v1/updatepermissions: post: summary: Update document permissions description: Updates the permissions for a given document without modifying document content. tags: - Documents requestBody: content: application/json: schema: $ref: "#/components/schemas/UpdatePermissionsRequest" required: true x-exportParamName: UpdatePermissionsRequest responses: "200": description: OK "400": description: Bad Request "401": description: Not Authorized "409": description: Conflict "429": description: Too Many Requests x-speakeasy-name-override: updatePermissions x-speakeasy-group: indexing.permissions /api/index/v1/processalldocuments: post: summary: Schedules the processing of uploaded documents description: | Schedules the immediate processing of documents uploaded through the indexing API. By default the uploaded documents will be processed asynchronously but this API can be used to schedule processing of all documents on demand. If a `datasource` parameter is specified, processing is limited to that custom datasource. Without it, processing applies to all documents across all custom datasources. #### Rate Limits This endpoint is rate-limited to one usage every 3 hours. Exceeding this limit results in a 429 response code. Here's how the rate limit works: 1. Calling `/processalldocuments` for datasource `foo` prevents another call for `foo` for 3 hours. 2. Calling `/processalldocuments` for datasource `foo` doesn't affect immediate calls for `bar`. 3. Calling `/processalldocuments` for all datasources prevents any datasource calls for 3 hours. 4. Calling `/processalldocuments` for datasource `foo` doesn't affect immediate calls for all datasources. For more frequent document processing, contact Glean support. tags: - Documents requestBody: content: application/json: schema: $ref: "#/components/schemas/ProcessAllDocumentsRequest" x-exportParamName: ProcessAllDocumentsRequest responses: "200": description: OK "400": description: Bad Request "401": description: Not Authorized "429": description: Too Many Requests x-speakeasy-name-override: processAll x-speakeasy-group: indexing.documents /api/index/v1/deletedocument: post: summary: Delete document description: Deletes the specified document from the index. Succeeds if document is not present. tags: - Documents requestBody: content: application/json: schema: $ref: "#/components/schemas/DeleteDocumentRequest" required: true x-exportParamName: DeleteDocumentRequest responses: "200": description: OK "400": description: Bad Request "401": description: Not Authorized "409": description: Conflict x-speakeasy-name-override: delete x-speakeasy-group: indexing.documents /api/index/v1/indexuser: post: summary: Index user description: Adds a datasource user or updates an existing user. tags: - Permissions requestBody: content: application/json: schema: $ref: "#/components/schemas/IndexUserRequest" required: true x-exportParamName: IndexUserRequest responses: "200": description: OK "400": description: Bad Request "401": description: Not Authorized "409": description: Conflict x-speakeasy-name-override: indexUser x-speakeasy-group: indexing.permissions /api/index/v1/bulkindexusers: post: summary: Bulk index users description: | Replaces the users in a datasource using paginated batch API calls. Please refer to the [bulk indexing](https://developers.glean.com/indexing/documents/bulk-upload-model) documentation for an explanation of how to use bulk endpoints. Note: Any users deleted from the existing set will have their associated memberships deleted as well. tags: - Permissions requestBody: content: application/json: schema: $ref: "#/components/schemas/BulkIndexUsersRequest" required: true x-exportParamName: BulkIndexUsersRequest responses: "200": description: OK "400": description: Bad Request "401": description: Not Authorized "409": description: Conflict x-speakeasy-name-override: bulkIndexUsers x-speakeasy-group: indexing.permissions /api/index/v1/indexgroup: post: summary: Index group description: Add or update a group in the datasource. tags: - Permissions requestBody: content: application/json: schema: $ref: "#/components/schemas/IndexGroupRequest" required: true x-exportParamName: IndexGroupRequest responses: "200": description: OK "400": description: Bad Request "401": description: Not Authorized "409": description: Conflict x-speakeasy-name-override: indexGroup x-speakeasy-group: indexing.permissions /api/index/v1/bulkindexgroups: post: summary: Bulk index groups description: | Replaces the groups in a datasource using paginated batch API calls. Please refer to the [bulk indexing](https://developers.glean.com/indexing/documents/bulk-upload-model) documentation for an explanation of how to use bulk endpoints. Note: Any groups deleted from the existing set will have their associated memberships deleted as well. tags: - Permissions requestBody: content: application/json: schema: $ref: "#/components/schemas/BulkIndexGroupsRequest" required: true x-exportParamName: BulkIndexGroupsRequest responses: "200": description: OK "400": description: Bad Request "401": description: Not Authorized "409": description: Conflict x-speakeasy-name-override: bulkIndexGroups x-speakeasy-group: indexing.permissions /api/index/v1/indexmembership: post: summary: Index membership description: Add the memberships of a group in the datasource. tags: - Permissions requestBody: content: application/json: schema: $ref: "#/components/schemas/IndexMembershipRequest" required: true x-exportParamName: IndexMembershipRequest responses: "200": description: OK "400": description: Bad Request "401": description: Not Authorized "409": description: Conflict x-speakeasy-name-override: indexMembership x-speakeasy-group: indexing.permissions /api/index/v1/bulkindexmemberships: post: summary: Bulk index memberships for a group description: Replaces the memberships for a group in a datasource using paginated batch API calls. Please refer to the [bulk indexing](https://developers.glean.com/indexing/documents/bulk-upload-model) documentation for an explanation of how to use bulk endpoints. tags: - Permissions requestBody: content: application/json: schema: $ref: "#/components/schemas/BulkIndexMembershipsRequest" required: true x-exportParamName: BulkIndexMembershipsRequest responses: "200": description: OK "400": description: Bad Request "401": description: Not Authorized "409": description: Conflict x-speakeasy-name-override: bulkIndexMemberships x-speakeasy-group: indexing.permissions /api/index/v1/processallmemberships: post: summary: Schedules the processing of group memberships description: | Schedules the immediate processing of all group memberships uploaded through the indexing API. By default the uploaded group memberships will be processed asynchronously but this API can be used to schedule processing of all memberships on demand. tags: - Permissions requestBody: content: application/json: schema: $ref: "#/components/schemas/ProcessAllMembershipsRequest" x-exportParamName: ProcessAllMembershipsRequest responses: "200": description: OK "400": description: Bad Request "401": description: Not Authorized x-speakeasy-name-override: processMemberships x-speakeasy-group: indexing.permissions /api/index/v1/deleteuser: post: summary: Delete user description: | Delete the user from the datasource. Silently succeeds if user is not present. Note: All memberships associated with the deleted user will also be deleted. tags: - Permissions requestBody: content: application/json: schema: $ref: "#/components/schemas/DeleteUserRequest" required: true x-exportParamName: DeleteUserRequest responses: "200": description: OK "400": description: Bad Request "401": description: Not Authorized "409": description: Conflict x-speakeasy-name-override: deleteUser x-speakeasy-group: indexing.permissions /api/index/v1/deletegroup: post: summary: Delete group description: | Delete group from the datasource. Silently succeeds if group is not present. Note: All memberships associated with the deleted group will also be deleted. tags: - Permissions requestBody: content: application/json: schema: $ref: "#/components/schemas/DeleteGroupRequest" required: true x-exportParamName: DeleteGroupRequest responses: "200": description: OK "400": description: Bad Request "401": description: Not Authorized "409": description: Conflict x-speakeasy-name-override: deleteGroup x-speakeasy-group: indexing.permissions /api/index/v1/deletemembership: post: summary: Delete membership description: Delete membership to a group in the specified datasource. Silently succeeds if membership is not present. tags: - Permissions requestBody: content: application/json: schema: $ref: "#/components/schemas/DeleteMembershipRequest" required: true x-exportParamName: DeleteMembershipRequest responses: "200": description: OK "400": description: Bad Request "401": description: Not Authorized "409": description: Conflict x-speakeasy-name-override: deleteMembership x-speakeasy-group: indexing.permissions /api/index/v1/debug/{datasource}/status: post: x-beta: true summary: | Beta: Get datasource status description: | Gather information about the datasource's overall status. Currently in beta, might undergo breaking changes without prior notice. Tip: Refer to the [Troubleshooting tutorial](https://developers.glean.com/indexing/debugging/datasource-config) for more information. tags: - Troubleshooting parameters: - name: datasource in: path description: The datasource to get debug status for. required: true schema: type: string responses: "200": description: OK content: application/json; charset=UTF-8: schema: $ref: "#/components/schemas/DebugDatasourceStatusResponse" "400": description: Bad Request "401": description: Not Authorized x-speakeasy-name-override: status x-speakeasy-group: indexing.datasource /api/index/v1/debug/{datasource}/document: post: x-beta: true summary: | Beta: Get document information description: | Gives various information that would help in debugging related to a particular document. Currently in beta, might undergo breaking changes without prior notice. Tip: Refer to the [Troubleshooting tutorial](https://developers.glean.com/indexing/debugging/datasource-config) for more information. tags: - Troubleshooting parameters: - name: datasource in: path description: The datasource to which the document belongs required: true schema: type: string requestBody: content: application/json; charset=UTF-8: schema: $ref: "#/components/schemas/DebugDocumentRequest" required: true x-exportParamName: DebugDocumentRequest responses: "200": description: OK content: application/json; charset=UTF-8: schema: $ref: "#/components/schemas/DebugDocumentResponse" "400": description: Bad Request "401": description: Not Authorized x-speakeasy-group: indexing.documents x-speakeasy-name-override: debug /api/index/v1/debug/{datasource}/documents: post: x-beta: true summary: | Beta: Get information of a batch of documents description: | Gives various information that would help in debugging related to a batch of documents. Currently in beta, might undergo breaking changes without prior notice. Tip: Refer to the [Troubleshooting tutorial](https://developers.glean.com/indexing/debugging/datasource-config) for more information. tags: - Troubleshooting parameters: - name: datasource in: path description: The datasource to which the document belongs required: true schema: type: string requestBody: content: application/json; charset=UTF-8: schema: $ref: "#/components/schemas/DebugDocumentsRequest" required: true x-exportParamName: DebugDocumentsRequest responses: "200": description: OK content: application/json; charset=UTF-8: schema: $ref: "#/components/schemas/DebugDocumentsResponse" "400": description: Bad Request "401": description: Not Authorized x-speakeasy-group: indexing.documents x-speakeasy-name-override: debugMany /api/index/v1/debug/{datasource}/user: post: x-beta: true summary: | Beta: Get user information description: | Gives various information that would help in debugging related to a particular user. Currently in beta, might undergo breaking changes without prior notice. Tip: Refer to the [Troubleshooting tutorial](https://developers.glean.com/indexing/debugging/datasource-config) for more information. tags: - Troubleshooting parameters: - name: datasource in: path description: The datasource to which the user belongs required: true schema: type: string requestBody: content: application/json; charset=UTF-8: schema: $ref: "#/components/schemas/DebugUserRequest" required: true x-exportParamName: DebugUserRequest responses: "200": description: OK content: application/json; charset=UTF-8: schema: $ref: "#/components/schemas/DebugUserResponse" "400": description: Bad Request "401": description: Not Authorized x-speakeasy-name-override: debug x-speakeasy-group: indexing.people /api/index/v1/checkdocumentaccess: post: summary: Check document access description: | Check if a given user has access to access a document in a custom datasource Tip: Refer to the [Troubleshooting tutorial](https://developers.glean.com/indexing/debugging/datasource-config) for more information. tags: - Troubleshooting requestBody: content: application/json: schema: $ref: "#/components/schemas/CheckDocumentAccessRequest" required: true x-exportParamName: CheckDocumentAccessRequest responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/CheckDocumentAccessResponse" "400": description: Bad Request "401": description: Not Authorized "429": description: Too Many Requests x-speakeasy-group: indexing.documents x-speakeasy-name-override: checkAccess /api/index/v1/getdocumentstatus: post: deprecated: true summary: Get document upload and indexing status description: | Intended for debugging/validation. Fetches the current upload and indexing status of documents. Tip: Use [/debug/{datasource}/document](https://developers.glean.com/indexing/debugging/datasource-document) for richer information. tags: - Troubleshooting requestBody: content: application/json: schema: $ref: "#/components/schemas/GetDocumentStatusRequest" required: true x-exportParamName: GetDocumentStatusRequest responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/GetDocumentStatusResponse" "400": description: Bad Request "401": description: Not Authorized "429": description: Too Many Requests x-glean-deprecated: id: 7eec0433-78fd-49f9-a34f-cca83640ec24 introduced: "2026-02-03" message: Endpoint is deprecated removal: "2026-10-15" x-speakeasy-deprecation-message: "Deprecated on 2026-02-03, removal scheduled for 2026-10-15: Endpoint is deprecated" x-speakeasy-group: indexing.documents x-speakeasy-name-override: status /api/index/v1/getdocumentcount: post: deprecated: true summary: Get document count description: | Fetches document count for the specified custom datasource. Tip: Use [/debug/{datasource}/status](https://developers.glean.com/indexing/debugging/datasource-status) for richer information. tags: - Troubleshooting requestBody: content: application/json: schema: $ref: "#/components/schemas/GetDocumentCountRequest" required: true x-exportParamName: GetDocumentCountRequest responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/GetDocumentCountResponse" "400": description: Bad Request "401": description: Not Authorized "409": description: Conflict x-glean-deprecated: id: c164089c-9412-4724-acf6-caf3b0d2a527 introduced: "2026-02-03" message: Endpoint is deprecated removal: "2026-10-15" x-speakeasy-deprecation-message: "Deprecated on 2026-02-03, removal scheduled for 2026-10-15: Endpoint is deprecated" x-speakeasy-group: indexing.documents x-speakeasy-name-override: count /api/index/v1/getusercount: post: deprecated: true summary: Get user count description: | Fetches user count for the specified custom datasource. Tip: Use [/debug/{datasource}/status](https://developers.glean.com/indexing/debugging/datasource-status) for richer information. tags: - Troubleshooting requestBody: content: application/json: schema: $ref: "#/components/schemas/GetUserCountRequest" required: true x-exportParamName: GetUserCountRequest responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/GetUserCountResponse" "400": description: Bad Request "401": description: Not Authorized "409": description: Conflict x-glean-deprecated: id: 4f5df873-385e-4539-8183-cb764b0f06b9 introduced: "2026-02-03" message: Endpoint is deprecated removal: "2026-10-15" x-speakeasy-deprecation-message: "Deprecated on 2026-02-03, removal scheduled for 2026-10-15: Endpoint is deprecated" x-speakeasy-name-override: count x-speakeasy-group: indexing.people /api/index/v1/betausers: post: summary: Beta users description: Allow the datasource be visible to the specified beta users. The default behaviour is datasource being visible to all users if it is enabled and not visible to any user if it is not enabled. tags: - Permissions requestBody: content: application/json: schema: $ref: "#/components/schemas/GreenlistUsersRequest" required: true x-exportParamName: GreenlistUsersRequest responses: "200": description: OK "400": description: Bad Request "401": description: Not Authorized "409": description: Conflict x-speakeasy-name-override: authorizeBetaUsers x-speakeasy-group: indexing.permissions /api/index/v1/adddatasource: post: summary: Add or update datasource description: Add or update a custom datasource and its schema. tags: - Datasources requestBody: content: application/json: schema: $ref: "#/components/schemas/CustomDatasourceConfig" required: true x-exportParamName: DatasourceConfig responses: "200": description: OK "400": description: Bad Request "401": description: Not Authorized x-speakeasy-name-override: add x-speakeasy-group: indexing.datasources /api/index/v1/getdatasourceconfig: post: summary: Get datasource config description: Fetches the datasource config for the specified custom datasource. tags: - Datasources requestBody: content: application/json: schema: $ref: "#/components/schemas/GetDatasourceConfigRequest" required: true x-exportParamName: GetDatasourceConfigRequest responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/CustomDatasourceConfig" "400": description: Bad Request "401": description: Not Authorized "409": description: Conflict x-speakeasy-name-override: retrieveConfig x-speakeasy-group: indexing.datasources /api/index/v1/rotatetoken: post: summary: Rotate token description: Rotates the secret value inside the Indexing API token and returns the new raw secret. All other properties of the token are unchanged. In order to rotate the secret value, include the token as the bearer token in the `/rotatetoken` request. Please refer to [Token rotation](https://developers.glean.com/indexing/authentication/token-rotation) documentation for more information. tags: - Authentication responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/RotateTokenResponse" "400": description: Bad Request "401": description: Not Authorized x-speakeasy-name-override: rotateToken x-speakeasy-group: indexing.authentication /api/index/v1/indexemployee: post: summary: Index employee description: Adds an employee or replaces the existing information about an employee. tags: - People requestBody: content: application/json; charset=UTF-8: schema: $ref: "#/components/schemas/IndexEmployeeRequest" required: true x-exportParamName: IndexEmployeeRequest responses: "200": description: OK "400": description: Bad Request "401": description: Not Authorized "409": description: Conflict x-speakeasy-name-override: index x-speakeasy-group: indexing.people /api/index/v1/bulkindexemployees: post: summary: Bulk index employees description: Replaces all the currently indexed employees using paginated batch API calls. Please refer to the [bulk indexing](https://developers.glean.com/indexing/documents/bulk-upload-model) documentation for an explanation of how to use bulk endpoints. tags: - People requestBody: content: application/json; charset=UTF-8: schema: $ref: "#/components/schemas/BulkIndexEmployeesRequest" required: true x-exportParamName: BulkIndexEmployeesRequest responses: "200": description: OK "400": description: Bad Request "401": description: Not Authorized "409": description: Conflict x-glean-deprecated: id: ce596f49-55c4-465e-bf3c-5a3a33906e1f introduced: "2026-02-03" message: Endpoint is deprecated removal: "2026-10-15" deprecated: true x-speakeasy-deprecation-message: "Deprecated on 2026-02-03, removal scheduled for 2026-10-15: Endpoint is deprecated" x-speakeasy-name-override: bulkIndex x-speakeasy-group: indexing.people /api/index/v1/indexemployeelist: {} /api/index/v1/processallemployeesandteams: post: summary: Schedules the processing of uploaded employees and teams description: | Schedules the immediate processing of employees and teams uploaded through the indexing API. By default all uploaded people data will be processed asynchronously but this API can be used to schedule its processing on demand. tags: - People responses: "200": description: OK "400": description: Bad Request "401": description: Not Authorized "429": description: Too Many Requests x-speakeasy-name-override: processAllEmployeesAndTeams x-speakeasy-group: indexing.people /api/index/v1/deleteemployee: post: summary: Delete employee description: Delete an employee. Silently succeeds if employee is not present. tags: - People requestBody: content: application/json; charset=UTF-8: schema: $ref: "#/components/schemas/DeleteEmployeeRequest" required: true x-exportParamName: DeleteEmployeeRequest responses: "200": description: OK "400": description: Bad Request "401": description: Not Authorized "409": description: Conflict x-speakeasy-name-override: delete x-speakeasy-group: indexing.people /api/index/v1/indexteam: post: summary: Index team description: Adds a team or updates information about a team tags: - People requestBody: content: application/json; charset=UTF-8: schema: $ref: "#/components/schemas/IndexTeamRequest" required: true x-exportParamName: IndexTeamRequest responses: "200": description: OK "400": description: Bad Request "401": description: Not Authorized "409": description: Conflict x-speakeasy-name-override: indexTeam x-speakeasy-group: indexing.people /api/index/v1/deleteteam: post: summary: Delete team description: Delete a team based on provided id. tags: - People requestBody: content: application/json; charset=UTF-8: schema: $ref: "#/components/schemas/DeleteTeamRequest" required: true x-exportParamName: DeleteTeamRequest responses: "200": description: OK "400": description: Bad Request "401": description: Not Authorized "409": description: Conflict x-speakeasy-name-override: deleteTeam x-speakeasy-group: indexing.people /api/index/v1/bulkindexteams: post: summary: Bulk index teams description: Replaces all the currently indexed teams using paginated batch API calls. Please refer to the [bulk indexing](https://developers.glean.com/indexing/documents/bulk-upload-model) documentation for an explanation of how to use bulk endpoints. tags: - People requestBody: content: application/json; charset=UTF-8: schema: $ref: "#/components/schemas/BulkIndexTeamsRequest" required: true x-exportParamName: BulkIndexTeamsRequest responses: "200": description: OK "400": description: Bad Request "401": description: Not Authorized "409": description: Conflict x-speakeasy-name-override: bulkIndexTeams x-speakeasy-group: indexing.people /api/index/v1/bulkindexshortcuts: post: summary: Bulk index external shortcuts description: Replaces all the currently indexed shortcuts using paginated batch API calls. Note that this endpoint is used for indexing shortcuts not hosted by Glean. If you want to upload shortcuts that would be hosted by Glean, please use the `/uploadshortcuts` endpoint. For information on what you can do with Golinks, which are Glean-hosted shortcuts, please refer to [this](https://docs.glean.com/user-guide/knowledge/go-links/how-go-links-work) page. tags: - Shortcuts requestBody: content: application/json; charset=UTF-8: schema: $ref: "#/components/schemas/BulkIndexShortcutsRequest" required: true x-exportParamName: BulkIndexShortcutsRequest responses: "200": description: OK "400": description: Bad Request "401": description: Not Authorized "409": description: Conflict x-speakeasy-name-override: bulkIndex x-speakeasy-group: indexing.shortcuts /api/index/v1/uploadshortcuts: post: summary: Upload shortcuts description: Creates glean shortcuts for uploaded shortcuts info. Glean would host the shortcuts, and they can be managed in the knowledge tab once uploaded. tags: - Shortcuts requestBody: content: application/json; charset=UTF-8: schema: $ref: "#/components/schemas/UploadShortcutsRequest" required: true x-exportParamName: UploadShortcutsRequest responses: "200": description: OK "400": description: Bad Request "401": description: Not Authorized "409": description: Conflict x-speakeasy-name-override: upload x-speakeasy-group: indexing.shortcuts /api/index/v1/debug/{datasource}/document/events: post: x-beta: true summary: | Beta: Get document lifecycle events description: | Retrieves lifecycle events for a specific document including upload time, index times and deletions. Rate limited to 1 request per minute per datasource. Currently in beta, might undergo breaking changes without prior notice. tags: - Troubleshooting parameters: - name: datasource in: path description: The datasource to which the document belongs required: true schema: type: string requestBody: content: application/json; charset=UTF-8: schema: $ref: "#/components/schemas/DebugDocumentLifecycleRequest" required: true x-exportParamName: DebugDocumentLifecycleRequest responses: "200": description: OK content: application/json; charset=UTF-8: schema: $ref: "#/components/schemas/DebugDocumentLifecycleResponse" "400": description: Bad Request "401": description: Not Authorized "429": description: Too Many Requests x-speakeasy-group: indexing.documents x-speakeasy-name-override: debugEvents /rest/api/index/submissions/{datasourceInstance}/{type}: servers: - url: https://{instance}-be.glean.com variables: instance: default: instance-name description: The instance name (typically the email domain without the TLD) that determines the deployment backend. parameters: - name: datasourceInstance in: path description: Datasource instance that should process the submission required: true schema: type: string - name: type in: path description: Submission type registered for the datasource required: true schema: type: string post: summary: Submit datasource data description: Validates and asynchronously processes a datasource-specific submission. tags: - Datasources requestBody: content: application/json: schema: type: object additionalProperties: true required: true x-exportParamName: SubmissionRequest responses: "202": description: Accepted content: application/json: schema: type: object properties: requestId: type: string required: - requestId "400": $ref: "#/components/responses/BadRequestError" "401": $ref: "#/components/responses/UnauthorizedError" "404": $ref: "#/components/responses/NotFoundError" "405": description: Method Not Allowed "413": description: Payload Too Large "500": $ref: "#/components/responses/InternalServerError" "503": description: Service Unavailable x-speakeasy-name-override: submit x-speakeasy-group: indexing.datasources /rest/api/index/document/{docId}/custom-metadata/{groupName}: servers: - url: https://{instance}-be.glean.com variables: instance: default: instance-name description: The instance name (typically the email domain without the TLD) that determines the deployment backend. parameters: - name: docId in: path description: Unique Glean identifier of the document required: true schema: type: string - name: groupName in: path description: Name of the metadata group as specified while adding schema required: true schema: type: string put: summary: Add or update custom metadata description: Associates custom metadata with a specific document. Custom metadata enables you to enrich documents with additional structured information that can be used for search, filtering, and faceting. tags: - Custom Metadata requestBody: content: application/json: schema: $ref: "#/components/schemas/CustomMetadataPutRequest" required: true x-exportParamName: CustomMetadataPutRequest responses: "200": $ref: "#/components/responses/SuccessResponse" "400": $ref: "#/components/responses/BadRequestError" "401": $ref: "#/components/responses/UnauthorizedError" "404": $ref: "#/components/responses/NotFoundError" "429": $ref: "#/components/responses/TooManyRequestsError" "500": $ref: "#/components/responses/InternalServerError" x-speakeasy-name-override: upsert x-speakeasy-group: indexing.customMetadata delete: summary: Remove custom metadata description: Removes all custom metadata for the specified metadata group from a document. tags: - Custom Metadata responses: "200": $ref: "#/components/responses/SuccessResponse" "400": $ref: "#/components/responses/BadRequestError" "401": $ref: "#/components/responses/UnauthorizedError" "404": $ref: "#/components/responses/NotFoundError" "429": $ref: "#/components/responses/TooManyRequestsError" "500": $ref: "#/components/responses/InternalServerError" x-speakeasy-name-override: delete x-speakeasy-group: indexing.customMetadata /rest/api/index/custom-metadata/schema/{groupName}: servers: - url: https://{instance}-be.glean.com variables: instance: default: instance-name description: The instance name (typically the email domain without the TLD) that determines the deployment backend. parameters: - name: groupName in: path description: Name of the metadata group schema required: true schema: type: string get: summary: Retrieve metadata schema description: Retrieves the current schema definition for a metadata group. tags: - Custom Metadata responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/CustomMetadataSchema" "401": $ref: "#/components/responses/UnauthorizedError" "404": $ref: "#/components/responses/NotFoundError" "429": $ref: "#/components/responses/TooManyRequestsError" "500": $ref: "#/components/responses/InternalServerError" x-speakeasy-name-override: getSchema x-speakeasy-group: indexing.customMetadata put: summary: Create or update metadata schema description: Defines or updates the schema for a metadata group. Schemas should be defined before indexing metadata. tags: - Custom Metadata requestBody: content: application/json: schema: $ref: "#/components/schemas/CustomMetadataSchema" required: true x-exportParamName: CustomMetadataSchema responses: "200": $ref: "#/components/responses/SuccessResponse" "400": $ref: "#/components/responses/BadRequestError" "401": $ref: "#/components/responses/UnauthorizedError" "409": description: Conflict - Schema already exists with incompatible changes content: application/json: schema: $ref: "#/components/schemas/ErrorInfoResponse" "429": $ref: "#/components/responses/TooManyRequestsError" "500": $ref: "#/components/responses/InternalServerError" x-speakeasy-name-override: upsertSchema x-speakeasy-group: indexing.customMetadata delete: summary: Remove metadata schema description: Deletes the schema definition for a metadata group. This does not delete existing metadata values on documents. tags: - Custom Metadata responses: "200": $ref: "#/components/responses/SuccessResponse" "400": $ref: "#/components/responses/BadRequestError" "401": $ref: "#/components/responses/UnauthorizedError" "404": $ref: "#/components/responses/NotFoundError" "429": $ref: "#/components/responses/TooManyRequestsError" "500": $ref: "#/components/responses/InternalServerError" x-speakeasy-name-override: deleteSchema x-speakeasy-group: indexing.customMetadata components: securitySchemes: APIToken: scheme: bearer type: http 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" schemas: IndexDocumentRequest: type: object description: Describes the request body of the /indexdocument API call properties: version: type: integer format: int64 description: Version number for document for optimistic concurrency control. If absent or 0 then no version checks are done. document: description: Document being added/updated $ref: "#/components/schemas/DocumentDefinition" required: - document IndexDocumentsRequest: type: object description: Describes the request body of the /indexdocuments API call properties: uploadId: type: string description: Optional id parameter to identify and track a batch of documents. datasource: type: string description: Datasource of the documents documents: description: Batch of documents being added/updated type: array items: $ref: "#/components/schemas/DocumentDefinition" required: - documents - datasource UpdatePermissionsRequest: type: object description: Describes the request body of the /updatepermissions API call properties: datasource: type: string objectType: type: string description: The type of the document (Case, KnowledgeArticle for Salesforce for example). It cannot have spaces or _ id: type: string description: The datasource specific id for the document. This field is case insensitive and should not be more than 200 characters in length. viewURL: type: string description: | The permalink for viewing the document. **Note: viewURL is a required field if id was not set when uploading the document.**' permissions: $ref: "#/components/schemas/DocumentPermissionsDefinition" description: The permissions that define who can view this document in the search results. Please refer to [this](https://developers.glean.com/indexing/documents/permissions) for more details. required: - permissions - datasource GetDocumentCountRequest: type: object description: Describes the request body of the /getdocumentcount API call properties: datasource: type: string description: Datasource name for which document count is needed. required: - datasource GetDocumentCountResponse: type: object description: Describes the response body of the /getdocumentcount API call properties: documentCount: type: integer description: Number of documents corresponding to the specified custom datasource. GetDocumentStatusRequest: type: object description: Describes the request body for /getdocumentstatus API call properties: datasource: type: string description: Datasource to get fetch document status for objectType: type: string description: Object type of the document to get the status for docId: type: string description: Glean Document ID within the datasource to get the status for. required: - datasource - objectType - docId GetDocumentStatusResponse: type: object description: Describes the response body of the /getdocumentstatus API call properties: uploadStatus: type: string description: Upload status, enum of NOT_UPLOADED, UPLOADED, STATUS_UNKNOWN lastUploadedAt: type: integer format: int64 description: Time of last successful upload, in epoch seconds indexingStatus: type: string description: Indexing status, enum of NOT_INDEXED, INDEXED, STATUS_UNKNOWN lastIndexedAt: type: integer format: int64 description: Time of last successful indexing, in epoch seconds BulkIndexRequest: type: object description: Describes the request body of a bulk upload API call required: - uploadId properties: uploadId: type: string description: Unique id that must be used for this bulk upload instance isFirstPage: type: boolean description: true if this is the first page of the upload. Defaults to false isLastPage: type: boolean description: true if this is the last page of the upload. Defaults to false forceRestartUpload: type: boolean description: Flag to discard previous upload attempts and start from scratch. Must be specified with isFirstPage=true BulkIndexTeamsRequest: type: object description: Describes the request body of the /bulkindexteams API call allOf: - $ref: "#/components/schemas/BulkIndexRequest" - type: object properties: teams: description: Batch of team information type: array items: $ref: "#/components/schemas/TeamInfoDefinition" required: - teams BulkIndexEmployeesRequest: type: object description: Describes the request body of the /bulkindexemployees API call allOf: - $ref: "#/components/schemas/BulkIndexRequest" - type: object properties: employees: description: Batch of employee information type: array items: $ref: "#/components/schemas/EmployeeInfoDefinition" disableStaleDataDeletionCheck: type: boolean description: True if older employee data needs to be force deleted after the upload completes. Defaults to older data being deleted only if the percentage of data being deleted is less than 20%. This must only be set when `isLastPage = true` required: - employees BulkIndexDocumentsRequest: type: object description: Describes the request body of the /bulkindexdocuments API call allOf: - $ref: "#/components/schemas/BulkIndexRequest" - type: object properties: datasource: type: string description: Datasource of the documents documents: description: Batch of documents for the datasource type: array items: $ref: "#/components/schemas/DocumentDefinition" disableStaleDocumentDeletionCheck: type: boolean description: True if older documents need to be force deleted after the upload completes. Defaults to older documents being deleted asynchronously. This must only be set when `isLastPage = true` required: - datasource - documents ProcessAllDocumentsRequest: type: object description: Describes the request body of the /processalldocuments API call properties: datasource: type: string description: If provided, process documents only for this custom datasource. Otherwise all uploaded documents are processed. DeleteDocumentRequest: type: object description: Describes the request body of the /deletedocument API call properties: version: type: integer format: int64 description: Version number for document for optimistic concurrency control. If absent or 0 then no version checks are done. datasource: type: string description: datasource of the document objectType: type: string description: object type of the document id: type: string description: The id of the document required: - datasource - id - objectType IndexUserRequest: type: object description: Describes the request body of the /indexuser API call properties: version: type: integer format: int64 description: Version number for document for optimistic concurrency control. If absent or 0 then no version checks are done. datasource: type: string description: The datasource for which the user is added user: description: The user to be added or updated $ref: "#/components/schemas/DatasourceUserDefinition" required: - datasource - user GetUserCountRequest: type: object description: Describes the request body of the /getusercount API call properties: datasource: type: string description: Datasource name for which user count is needed. required: - datasource GetUserCountResponse: type: object description: Describes the response body of the /getusercount API call properties: userCount: type: integer description: Number of users corresponding to the specified custom datasource. BulkIndexUsersRequest: type: object description: Describes the request body for the /bulkindexusers API call properties: uploadId: type: string description: Unique id that must be used for this instance of datasource users upload isFirstPage: type: boolean description: true if this is the first page of the upload. Defaults to false isLastPage: type: boolean description: true if this is the last page of the upload. Defaults to false forceRestartUpload: type: boolean description: Flag to discard previous upload attempts and start from scratch. Must be specified with isFirstPage=true datasource: type: string description: datasource of the users users: description: batch of users for the datasource type: array items: $ref: "#/components/schemas/DatasourceUserDefinition" disableStaleDataDeletionCheck: type: boolean description: True if older user data needs to be force deleted after the upload completes. Defaults to older data being deleted only if the percentage of data being deleted is less than a reasonable threshold. This must only be set when `isLastPage = true` required: - uploadId - datasource - users GreenlistUsersRequest: type: object description: Describes the request body of the /betausers API call properties: datasource: type: string description: Datasource which needs to be made visible to users specified in the `emails` field. emails: type: array description: The emails of the beta users items: type: string format: email required: - datasource - emails DatasourceUserDefinition: type: object description: describes a user in the datasource properties: email: type: string userId: description: To be supplied if the user id in the datasource is not the email type: string name: type: string isActive: type: boolean description: set to false if the user is a former employee or a bot required: - email - name IndexGroupRequest: type: object description: Describes the request body of the /indexgroup API call properties: version: type: integer format: int64 description: Version number for document for optimistic concurrency control. If absent or 0 then no version checks are done. datasource: type: string description: The datasource for which the group is added group: description: The group to be added or updated $ref: "#/components/schemas/DatasourceGroupDefinition" required: - datasource - group BulkIndexGroupsRequest: type: object description: Describes the request body for the /bulkindexgroups API call properties: uploadId: type: string description: Unique id that must be used for this instance of datasource groups upload isFirstPage: type: boolean description: true if this is the first page of the upload. Defaults to false isLastPage: type: boolean description: true if this is the last page of the upload. Defaults to false forceRestartUpload: type: boolean description: Flag to discard previous upload attempts and start from scratch. Must be specified with isFirstPage=true datasource: type: string description: datasource of the groups groups: description: batch of groups for the datasource type: array items: $ref: "#/components/schemas/DatasourceGroupDefinition" disableStaleDataDeletionCheck: type: boolean description: True if older group data needs to be force deleted after the upload completes. Defaults to older data being deleted only if the percentage of data being deleted is less than a reasonable threshold. This must only be set when `isLastPage = true` required: - uploadId - datasource - groups DatasourceGroupDefinition: type: object description: describes a group in the datasource properties: name: type: string description: name of the group. Should be unique among all groups for the datasource, and cannot have spaces. required: - name IndexMembershipRequest: type: object description: Describes the request body of the /indexmembership API call properties: version: type: integer format: int64 description: Version number for document for optimistic concurrency control. If absent or 0 then no version checks are done. datasource: type: string description: The datasource for which the membership is added membership: description: The membership to be added or updated $ref: "#/components/schemas/DatasourceMembershipDefinition" required: - datasource - membership BulkIndexMembershipsRequest: type: object description: Describes the request body for the /bulkindexmemberships API call properties: uploadId: type: string description: Unique id that must be used for this instance of datasource group memberships upload isFirstPage: type: boolean description: true if this is the first page of the upload. Defaults to false isLastPage: type: boolean description: true if this is the last page of the upload. Defaults to false forceRestartUpload: type: boolean description: Flag to discard previous upload attempts and start from scratch. Must be specified with isFirstPage=true datasource: type: string description: datasource of the memberships group: type: string description: group who's memberships are specified memberships: description: batch of memberships for the group type: array items: $ref: "#/components/schemas/DatasourceBulkMembershipDefinition" required: - uploadId - datasource - memberships ProcessAllMembershipsRequest: type: object description: Describes the request body of the /processallmemberships API call properties: datasource: type: string description: If provided, process group memberships only for this custom datasource. Otherwise all uploaded memberships are processed. DatasourceMembershipDefinition: type: object description: describes the membership row of a group. Only one of memberUserId and memberGroupName can be specified. properties: groupName: description: The group for which the membership is specified type: string memberUserId: description: If the member is a user, then the email or datasource id for the user type: string memberGroupName: description: If the member is a group, then the name of the member group type: string required: - groupName DatasourceBulkMembershipDefinition: type: object description: describes the membership row of a group in the bulk uploaded. Only one of memberUserId and memberGroupName can be specified. properties: memberUserId: description: If the member is a user, then the email or datasource id for the user type: string memberGroupName: description: If the member is a group, then the name of the member group type: string DeleteUserRequest: type: object description: Describes the request body of the /deleteuser API call properties: version: type: integer format: int64 description: Version number for document for optimistic concurrency control. If absent or 0 then no version checks are done. datasource: type: string description: The datasource for which the user is removed email: description: The email of the user to be deleted type: string required: - datasource - email DeleteGroupRequest: type: object description: Describes the request body of the /deletegroup API call properties: version: type: integer format: int64 description: Version number for document for optimistic concurrency control. If absent or 0 then no version checks are done. datasource: type: string description: The datasource for which the group is removed groupName: description: the name of the group to be deleted type: string required: - datasource - groupName DeleteMembershipRequest: type: object description: Describes the request body of the /deletemembership API call properties: version: type: integer format: int64 description: Version number for document for optimistic concurrency control. If absent or 0 then no version checks are done. datasource: type: string description: The datasource for which the membership is removed membership: description: the name of the membership to be deleted $ref: "#/components/schemas/DatasourceMembershipDefinition" required: - datasource - membership DeleteEmployeeRequest: type: object description: Describes the request body of the /deleteemployee API call properties: version: type: integer format: int64 description: Version number for document for optimistic concurrency control. If absent or 0 then no version checks are done. employeeEmail: description: The deleted employee's email type: string required: - employeeEmail DeleteTeamRequest: type: object description: Describes the request body of the /deleteteam API call properties: id: description: The deleted team's id type: string required: - id DocumentDefinition: type: object description: Indexable document structure properties: title: type: string description: Document title, in plain text, if present. If not present, the title would be attempted to be extracted from the content. filename: type: string description: Source filename, in plain text, for the document. May be used as a fallback title for the document, if the title is not provided and cannot be extracted from the content. Populate this if there is no explicit title for the document and the content is sourced from a file. container: type: string description: The container name for the content (Folder for example for file content). containerDatasourceId: type: string description: This represents the datasource sepcific id of the container. containerObjectType: type: string description: This represents the object type of the container. It cannot have spaces or _ datasource: type: string objectType: type: string description: The type of the document (Case, KnowledgeArticle for Salesforce for example). It cannot have spaces or _ viewURL: type: string description: | The permalink for viewing the document. **Note: viewURL is a required field for non-entity datasources, but not required if the datasource is used to push custom entities (ie. datasources where isEntityDatasource is false).**' id: type: string description: | The datasource specific id for the document. This field is case insensitive and should not be more than 200 characters in length. Note: id is a required field for datasources created after 1st March 2025 summary: $ref: "#/components/schemas/ContentDefinition" body: $ref: "#/components/schemas/ContentDefinition" author: $ref: "#/components/schemas/UserReferenceDefinition" owner: $ref: "#/components/schemas/UserReferenceDefinition" description: The current owner of the document, if not the author. permissions: $ref: "#/components/schemas/DocumentPermissionsDefinition" description: The permissions that define who can view this document in the search results. Please refer to [this](https://developers.glean.com/indexing/documents/permissions) for more details. createdAt: type: integer format: int64 description: The creation time, in epoch seconds. updatedAt: type: integer format: int64 description: The last update time, in epoch seconds. updatedBy: $ref: "#/components/schemas/UserReferenceDefinition" tags: type: array items: type: string description: Labels associated with the document. interactions: $ref: "#/components/schemas/DocumentInteractionsDefinition" status: type: string additionalUrls: type: array items: type: string description: Additional variations of the URL that this document points to. nativeAppUrl: type: string description: A deep link, if available, into the datasource's native application for the user's platform (e.g. slack://channel/message). comments: type: array items: $ref: "#/components/schemas/CommentDefinition" description: Comments associated with the document. customProperties: type: array items: $ref: "#/components/schemas/CustomProperty" description: Additional metadata properties of the document. These can surface as [facets and operators](https://developers.glean.com/indexing/datasource/custom-properties/operators_and_facets). required: - datasource CommentDefinition: type: object description: Describes a comment on a document properties: id: type: string description: The document specific id for the comment. This field is case insensitive and should not be more than 200 characters in length. author: $ref: "#/components/schemas/UserReferenceDefinition" description: The author of the comment. content: $ref: "#/components/schemas/ContentDefinition" description: The content of the comment. createdAt: type: integer format: int64 description: The creation time, in epoch seconds. updatedAt: type: integer format: int64 description: The last updated time, in epoch seconds. updatedBy: $ref: "#/components/schemas/UserReferenceDefinition" description: The user who last updated the comment. required: - id ContentDefinition: type: object description: Describes text content or base64 encoded binary content properties: mimeType: type: string textContent: type: string description: text content. Only one of textContent or binary content can be specified binaryContent: type: string description: base64 encoded binary content. Only one of textContent or binary content can be specified required: - mimeType UserReferenceDefinition: type: object description: Describes how a user is referenced in a document. The user can be referenced by email or by a datasource specific id. properties: email: type: string datasourceUserId: type: string description: some datasources refer to the user by the datasource user id in the document name: type: string PermissionsGroupIntersectionDefinition: type: object description: describes a list of groups that are all required in a permissions constraint properties: requiredGroups: type: array items: type: string DocumentPermissionsDefinition: type: object description: describes the access control details of the document properties: allowedUsers: description: List of users who can view the document type: array items: $ref: "#/components/schemas/UserReferenceDefinition" allowedGroups: description: List of groups that can view the document type: array items: type: string allowedGroupIntersections: description: List of allowed group intersections. This describes a permissions constraint of the form ((GroupA AND GroupB AND GroupC) OR (GroupX AND GroupY) OR ... type: array items: $ref: "#/components/schemas/PermissionsGroupIntersectionDefinition" allowAnonymousAccess: description: If true, then any Glean user can view the document type: boolean allowAllDatasourceUsersAccess: description: If true, then any user who has an account in the datasource can view the document. type: boolean DocumentInteractionsDefinition: type: object description: describes the interactions on the document properties: numViews: type: integer numLikes: type: integer numComments: type: integer CheckDocumentAccessRequest: type: object description: Describes the request body of the /checkdocumentaccess API call properties: datasource: type: string description: Datasource of document to check access for. objectType: type: string description: Object type of document to check access for. docId: type: string description: Glean Document ID to check access for. userEmail: type: string description: Email of user to check access for. required: - datasource - objectType - docId - userEmail CheckDocumentAccessResponse: type: object description: Describes the response body of the /checkdocumentaccess API call properties: hasAccess: type: boolean description: If true, user has access to document for search CustomProperty: type: object description: Describes the custom properties of the object. properties: name: type: string value: description: Must be a string, a number (for INT properties), or an array of strings. A boolean is not valid. When OpenAPI Generator supports `oneOf`, we can semantically enforce this. DatasourceConfig: $ref: "#/components/schemas/SharedDatasourceConfig" GetDatasourceConfigRequest: type: object description: Describes the request body of the /getdatasourceconfig API call properties: datasource: type: string description: Datasource name for which config is needed. required: - datasource DatasourceConfigList: description: List of datasource configurations. required: - datasourceConfig properties: datasourceConfig: type: array description: Datasource configuration. items: $ref: "#/components/schemas/SharedDatasourceConfig" RotateTokenResponse: description: Describes the response body of the /rotatetoken API call properties: rawSecret: type: string description: New raw secret createdAt: type: integer format: int64 description: Unix timestamp in seconds when the new secret value is assigned to the token. The token needs to be rotated before `rotationPeriodMinutes` past the createdAt timestamp otherwise it would be rendered unusable. rotationPeriodMinutes: type: integer format: int64 description: Refers to the time period in minutes before which this token needs to be rotated. It is required to rotate the token within the specified `rotationPeriodMinutes` after each `/rotatetoken` call, otherwise the tokens would expire. Note that the token would still expire at `expiresAt` timestamp provided during token creation even if the token is being regularly rotated. `rotationPeriodMinutes` property is inherited from the parent token being rotated IndexEmployeeRequest: type: object description: Info about an employee and optional version for that info properties: employee: description: Info about the employee $ref: "#/components/schemas/EmployeeInfoDefinition" version: description: Version number for the employee object. If absent or 0 then no version checks are done type: integer format: int64 required: - employee IndexEmployeeListRequest: type: object description: Describes the request body of the /indexemployeelist API call properties: employees: description: List of employee info and version. type: array items: $ref: "#/components/schemas/IndexEmployeeRequest" StructuredLocation: type: object description: Detailed location with information about country, state, city etc. properties: deskLocation: type: string description: Desk number. timezone: type: string description: Location's timezone, e.g. UTC, PST. address: type: string description: Office address or name. city: type: string description: Name of the city. state: type: string description: State code. region: type: string description: Region information, e.g. NORAM, APAC. zipCode: type: string description: ZIP Code for the address. country: type: string description: Country name. countryCode: type: string description: Alpha-2 or Alpha-3 ISO 3166 country code, e.g. US or USA. SocialNetworkDefinition: type: object description: Employee's social network profile properties: name: type: string description: Possible values are "twitter", "linkedin". profileName: type: string description: Human-readable profile name. profileUrl: type: string description: Link to profile. AdditionalFieldDefinition: type: object description: Additional information about the employee or team. properties: key: type: string description: Key to reference this field, e.g. "languages". Note that the key should be all lowercase alphabetic characters with no numbers, spaces, hyphens or underscores. value: type: array description: | List of type string or HypertextField. HypertextField is defined as ``` { anchor: string, // Anchor text for the hypertext field. hyperlink: string, // URL for the hypertext field. } ``` Example: ```{"anchor":"Glean","hyperlink":"https://glean.com"}``` When OpenAPI Generator supports oneOf, we will semantically enforce this in the docs. **Note**: If using the Python SDK to pass in a list of strings, the value may need to be a list of dictionaries. In that case, the key in that dictionary will be ignored. Example: ```"languages": [{"lang":"English","lang":"Spanish",...}]```. In this case, the key "lang" will be ignored and can even be passed in as an empty string. items: type: object description: Either a string or HypertextField. When OpenAPI Generator supports oneOf, we can semantically enforce this in the docs. HypertextField: type: object properties: anchor: type: string description: Anchor text for the hypertext field. hyperlink: type: string description: URL for the hypertext field. EmployeeInfoDefinition: type: object description: Describes employee info properties: email: type: string description: The employee's email firstName: type: string description: | The first name of the employee. **Note**: The value cannot be empty lastName: type: string description: | The last name of the employee. **Note**: The value cannot be empty preferredName: type: string description: The preferred name or nickname of the employee id: type: string description: | **[Advanced]** A unique universal internal identifier for the employee. This is solely used for understanding manager relationships along with `managerId`. phoneNumber: type: string description: The employee's phone number. location: type: string description: The employee's location (city/office name etc). deprecated: true x-glean-deprecated: id: a7f6fbaa-0eaf-4c0c-a4f5-ab90347f73fd introduced: "2026-02-05" message: Field is deprecated removal: "2026-10-15" x-speakeasy-deprecation-message: "Deprecated on 2026-02-05, removal scheduled for 2026-10-15: Field is deprecated" structuredLocation: description: Detailed location with information about country, state, city etc. $ref: "#/components/schemas/StructuredLocation" title: type: string description: The employee's role title. photoUrl: type: string format: uri description: The employee's profile pic businessUnit: type: string description: Typically the highest level organizational unit; generally applies to bigger companies with multiple distinct businesses. department: type: string description: An organizational unit where everyone has a similar task, e.g. `Engineering`. datasourceProfiles: type: array description: The datasource profiles of the employee, e.g. `Slack`,`Github`. items: $ref: "#/components/schemas/DatasourceProfile" teams: type: array description: Info about the employee's team(s) items: $ref: "#/components/schemas/EmployeeTeamInfo" startDate: type: string format: date description: The date when the employee started endDate: type: string format: date description: If a former employee, the last date of employment. bio: type: string description: Short biography or mission statement of the employee. pronoun: type: string description: She/her, He/his or other pronoun. alsoKnownAs: type: array description: Other names associated with the employee. items: type: string profileUrl: type: string description: Link to internal company person profile. socialNetworks: type: array description: List of social network profiles. items: $ref: "#/components/schemas/SocialNetworkDefinition" managerEmail: type: string description: The email of the employee's manager managerId: type: string description: | **[Advanced]** A unique universal internal identifier for the employee's manager. This is solely used in conjunction with `id`. type: type: string description: The type of the employee, an enum of `FULL_TIME`, `CONTRACTOR`, `NON_EMPLOYEE` default: FULL_TIME relationships: type: array description: List of unidirectional relationships with other employees. E.g. this employee (`A`) is a CHIEF_OF_STAFF to another employee (`B`); or this employee (`A`) is an EXECUTIVE_ASSISTANT of another employee (`C`). The mapping should be attached to `A`'s profile. items: $ref: "#/components/schemas/EntityRelationship" status: type: string description: The status of the employee, an enum of `CURRENT`, `FUTURE`, `EX` default: CURRENT additionalFields: type: array description: List of additional fields with more information about the employee. items: $ref: "#/components/schemas/AdditionalFieldDefinition" required: - department - email EmployeeAndVersionDefinition: type: object description: describes info about an employee and optional version for that info properties: employee: description: Info about the employee $ref: "#/components/schemas/EmployeeInfoDefinition" version: description: Version number for the employee object. If absent or 0 then no version checks are done type: integer format: int64 required: - info EmployeeTeamInfo: type: object description: Information about which team an employee belongs to properties: id: type: string description: unique identifier for this team name: type: string description: Team name url: type: string format: uri description: Link to internal company team page EntityRelationship: type: object description: Describes a relationship edge between a source and destination entity required: - name - email properties: name: type: string description: The title or type of relationship. Currently an enum of `CHIEF_OF_STAFF`, `EXECUTIVE_ASSISTANT` email: type: string description: Email of the person with whom the relationship exists. Per the example above, either `B` or `C`'s email depending on the relationship. TeamMember: type: object description: Information about a team's member properties: email: type: string description: The member's email format: email relationship: type: string description: The member's relationship to the team, an enum of `MEMBER`, `MANAGER`, `LEAD`, `POINT_OF_CONTACT`, `OTHER` default: MEMBER join_date: type: string format: date description: The member's start date required: - email TeamEmail: type: object description: Information about a team's email properties: email: type: string format: email description: An email address type: type: string description: An enum of `PRIMARY`, `SECONDARY`, `ONCALL`, `OTHER` default: OTHER required: - email - type TeamInfoDefinition: type: object description: Information about an employee's team properties: id: type: string description: The unique ID of the team name: type: string description: Human-readable team name description: type: string description: The description of this team businessUnit: type: string description: Typically the highest level organizational unit; generally applies to bigger companies with multiple distinct businesses. department: type: string description: An organizational unit where everyone has a similar task, e.g. `Engineering`. photoUrl: type: string format: uri description: A link to the team's photo externalLink: type: string format: uri description: | A link to an external team page. If set, team results will link to it. emails: type: array description: The emails of the team items: $ref: "#/components/schemas/TeamEmail" datasourceProfiles: type: array description: The datasource profiles of the team, e.g. `Slack`,`Github`. items: $ref: "#/components/schemas/DatasourceProfile" members: type: array description: The members of the team items: $ref: "#/components/schemas/TeamMember" additionalFields: type: array description: List of additional fields with more information about the team. items: $ref: "#/components/schemas/AdditionalFieldDefinition" required: - id - members - name IndexTeamRequest: type: object description: Info about a team and optional version for that info properties: team: description: Info about the team $ref: "#/components/schemas/TeamInfoDefinition" version: description: Version number for the team object. If absent or 0 then no version checks are done type: integer format: int64 required: - team BulkIndexShortcutsRequest: type: object description: Describes the request body of the /bulkindexshortcuts API call allOf: - $ref: "#/components/schemas/BulkIndexRequest" - type: object properties: shortcuts: description: Batch of shortcuts information type: array items: $ref: "#/components/schemas/ExternalShortcut" required: - shortcuts UploadShortcutsRequest: type: object description: Describes the request body of the /uploadshortcuts API call allOf: - $ref: "#/components/schemas/BulkIndexRequest" - type: object properties: shortcuts: description: Batch of shortcuts information type: array items: $ref: "#/components/schemas/IndexingShortcut" required: - shortcuts DebugDatasourceStatusResponse: type: object description: Describes the response body of the /debug/{datasource}/status API call properties: documents: type: object properties: bulkUploadHistory: type: object $ref: "#/components/schemas/BulkUploadHistoryEventList" counts: type: object properties: uploaded: type: array items: $ref: "#/components/schemas/DatasourceObjectTypeDocumentCountEntry" description: | A list of object types and corresponding upload counts. Note: This data may be cached and could be up to 3 hours stale. indexed: type: array description: The number of documents indexed, grouped by objectType items: $ref: "#/components/schemas/DatasourceObjectTypeDocumentCountEntry" processingHistory: $ref: "#/components/schemas/ProcessingHistoryEventList" identity: type: object properties: processingHistory: $ref: "#/components/schemas/ProcessingHistoryEventList" users: $ref: "#/components/schemas/DebugDatasourceStatusIdentityResponseComponent" groups: $ref: "#/components/schemas/DebugDatasourceStatusIdentityResponseComponent" memberships: $ref: "#/components/schemas/DebugDatasourceStatusIdentityResponseComponent" datasourceVisibility: type: string description: The visibility of the datasource, an enum of VISIBLE_TO_ALL, VISIBLE_TO_TEST_GROUP, NOT_VISIBLE enum: - ENABLED_FOR_ALL - ENABLED_FOR_TEST_GROUP - NOT_ENABLED example: ENABLED_FOR_ALL DebugDatasourceStatusIdentityResponseComponent: type: object properties: bulkUploadHistory: type: object $ref: "#/components/schemas/BulkUploadHistoryEventList" counts: type: object properties: uploaded: type: integer description: The number of users/groups/memberships uploaded example: 15 DatasourceObjectTypeDocumentCountEntry: type: object properties: objectType: type: string description: The object type of the document example: Article count: type: integer description: The number of documents of the corresponding objectType example: 15 BulkUploadHistoryEvent: type: object description: Information about a successful bulk upload properties: uploadId: type: string description: The unique ID of the upload example: upload-id-content-1707403081 startTime: type: string description: The start time of the upload in ISO 8601 format example: "2021-08-06T17:58:01.000Z" endTime: type: string description: The end time of the upload in ISO 8601 format, 'NA' if the upload is still active example: "2021-08-06T18:58:01.000Z" status: type: string description: The status of the upload, an enum of ACTIVE, SUCCESSFUL enum: - ACTIVE - SUCCESSFUL example: SUCCESSFUL processingState: type: string description: The current state of the upload, an enum of UNAVAILABLE, UPLOAD STARTED, UPLOAD IN PROGRESS, UPLOAD COMPLETED, DELETION PAUSED, INDEXING COMPLETED enum: - UNAVAILABLE - UPLOAD STARTED - UPLOAD IN PROGRESS - UPLOAD COMPLETED - DELETION PAUSED - INDEXING COMPLETED example: UPLOAD COMPLETED BulkUploadHistoryEventList: description: Information about active and recent successful uploads for the datasource type: array items: $ref: "#/components/schemas/BulkUploadHistoryEvent" DebugDocumentRequest: type: object description: Describes the request body of the /debug/{datasource}/document API call. properties: objectType: type: string description: Object type of the document to get the status for. example: Article docId: type: string description: Glean Document ID within the datasource to get the status for. example: art123 required: - objectType - docId DebugDocumentResponse: type: object description: Describes the response body of the /debug/{datasource}/document API call properties: status: type: object description: Upload and indexing status of the document $ref: "#/components/schemas/DocumentStatusResponse" uploadedPermissions: $ref: "#/components/schemas/DocumentPermissionsDefinition" DebugDocumentsRequest: type: object description: Describes the request body of the /debug/{datasource}/documents API call. properties: debugDocuments: type: array description: Documents to fetch debug information for items: $ref: "#/components/schemas/DebugDocumentRequest" required: - debugDocuments DebugDocumentsResponseItem: type: object description: Describes the response body of a single document in the /debug/{datasource}/documents API call properties: docId: type: string description: Id of the document objectType: type: string description: objectType of the document debugInfo: type: object description: Debug information of the document $ref: "#/components/schemas/DebugDocumentResponse" DebugDocumentsResponse: type: object description: Describes the response body of a single document in the /debug/{datasource}/documents API call properties: documentStatuses: type: array description: List of document ids/urls and their debug information items: $ref: "#/components/schemas/DebugDocumentsResponseItem" DocumentStatusResponse: type: object description: Describes the document status response body properties: uploadStatus: type: string description: Upload status, enum of NOT_UPLOADED, UPLOADED, STATUS_UNKNOWN example: UPLOADED lastUploadedAt: type: string description: Time of last successful upload for the document, in ISO 8601 format example: "2021-08-06T17:58:01.000Z" indexingStatus: type: string description: Indexing status, enum of NOT_INDEXED, INDEXED, STATUS_UNKNOWN example: INDEXED lastIndexedAt: type: string description: Time of last successful indexing for the document, in ISO 8601 format example: "2021-08-06T17:58:01.000Z" permissionIdentityStatus: type: string description: Permission identity status, enum of NOT_UPLOADED, UPLOADED, STATUS_UNKNOWN (Always unknown if `identityDatasourceName` is set). Document visibility may be affected status is `NOT_UPLOADED`. example: UPLOADED LifeCycleEvent: type: object properties: event: type: string description: Type of event enum: - UPLOADED - INDEXED - DELETION_REQUESTED - DELETED example: INDEXED timestamp: type: string description: Timestamp of the event example: "2021-08-06T17:58:01.000Z" ProcessingHistoryEvent: type: object description: Processing history event for a datasource properties: startTime: type: string description: The start time of the processing in ISO 8601 format example: "2021-08-06T17:58:01.000Z" endTime: type: string description: The end time of the processing in ISO 8601 format, 'NA' if still in progress example: "2021-08-06T18:58:01.000Z" ProcessingHistoryEventList: description: Information about processing history for the datasource type: array items: $ref: "#/components/schemas/ProcessingHistoryEvent" DebugUserRequest: type: object description: Describes the request body of the /debug/{datasource}/user API call properties: email: type: string description: Email ID of the user to get the status for example: u1@foo.com required: - email DebugUserResponse: type: object description: Describes the response body of the /debug/{datasource}/user API call properties: status: type: object description: Upload and indexing status of the user $ref: "#/components/schemas/UserStatusResponse" uploadedGroups: type: array description: List of groups the user is a member of, as uploaded via permissions API. items: $ref: "#/components/schemas/DatasourceGroupDefinition" UserStatusResponse: type: object description: Describes the user status response body properties: isActiveUser: type: boolean description: Whether the user is active or not example: true uploadStatus: $ref: "#/components/schemas/UploadStatusEnum" lastUploadedAt: type: string description: Time of last successful upload for the user, in ISO 8601 format example: "2021-08-06T17:58:01.000Z" UploadStatusEnum: type: string description: Upload status, enum of NOT_UPLOADED, UPLOADED, STATUS_UNKNOWN enum: - UPLOADED - NOT_UPLOADED - STATUS_UNKNOWN example: UPLOADED DebugDocumentLifecycleRequest: type: object description: Describes the request body of the /debug/{datasource}/document/events API call. properties: objectType: type: string description: Object type of the document to get lifecycle events for. example: Article docId: type: string description: Glean Document ID within the datasource to get lifecycle events for. example: art123 startDate: type: string description: The start date for events to be fetched. Cannot be more than 30 days (default 7 days) in the past. example: "2025-05-01" maxEvents: type: integer description: Max number of events to be fetched. Cannot be more than 100 (default 20). example: 50 required: - objectType - docId DebugDocumentLifecycleResponse: type: object description: Describes the response body of the /debug/{datasource}/document/events API call properties: lifeCycleEvents: type: array description: List of lifecycle events corresponding to the document items: $ref: "#/components/schemas/LifeCycleEvent" CustomMetadataPutRequest: type: object description: Request body for adding or updating custom metadata on a document properties: customMetadata: type: array description: Array of custom metadata key-value pairs items: $ref: "#/components/schemas/CustomProperty" required: - customMetadata CustomMetadataSchema: type: object description: Schema for custom metadata containing metadata key definitions properties: metadataKeys: type: array description: Array of metadata key definitions items: $ref: "#/components/schemas/CustomMetadataPropertyDefinition" required: - metadataKeys SuccessResponse: type: object description: Success response for custom metadata operations properties: success: type: boolean description: Indicates if the operation was successful default: true ErrorInfoResponse: type: object description: Error response for custom metadata operations properties: error: type: string description: Error message describing what went wrong message: type: string description: Additional details about the error required: - error PropertyDefinition: properties: name: type: string description: The name of the property in the `DocumentMetadata` (e.g. 'createTime', 'updateTime', 'author', 'container'). In the future, this will support custom properties too. displayLabel: type: string description: The user friendly label for the property. displayLabelPlural: type: string description: The user friendly label for the property that will be used if a plural context. propertyType: type: string enum: - TEXT - DATE - INT - USERID - PICKLIST - TEXTLIST - MULTIPICKLIST description: The type of custom property - this governs the search and faceting behavior. Note that MULTIPICKLIST is not yet supported. uiOptions: type: string enum: - NONE - SEARCH_RESULT - DOC_HOVERCARD hideUiFacet: type: boolean description: If true then the property will not show up as a facet in the UI. uiFacetOrder: type: integer description: Will be used to set the order of facets in the UI, if present. If set for one facet, must be set for all non-hidden UI facets. Must take on an integer value from 1 (shown at the top) to N (shown last), where N is the number of non-hidden UI facets. These facets will be ordered below the built-in "Type" and "Tag" operators. skipIndexing: type: boolean description: If true then the property will not be indexed for retrieval and ranking. group: type: string description: The unique identifier of the `PropertyGroup` to which this property belongs. PropertyGroup: description: A grouping for multiple PropertyDefinition. Grouped properties will be displayed together in the UI. properties: name: type: string description: The unique identifier of the group. displayLabel: type: string description: The user-friendly group label to display. ObjectDefinition: description: The definition for an `DocumentMetadata.objectType` within a datasource. properties: name: type: string description: Unique identifier for this `DocumentMetadata.objectType`. If omitted, this definition is used as a default for all unmatched `DocumentMetadata.objectType`s in this datasource. displayLabel: type: string description: The user-friendly name of the object for display. docCategory: type: string enum: - UNCATEGORIZED - TICKETS - CRM - PUBLISHED_CONTENT - COLLABORATIVE_CONTENT - QUESTION_ANSWER - MESSAGING - CODE_REPOSITORY - CHANGE_MANAGEMENT - PEOPLE - EMAIL - SSO - ATS - KNOWLEDGE_HUB - EXTERNAL_SHORTCUT - ENTITY - CALENDAR - AGENTS - AI_CONVERSATION - AI_ARTIFACT description: The document category of this object type. propertyDefinitions: type: array items: $ref: "#/components/schemas/PropertyDefinition" propertyGroups: type: array description: A list of `PropertyGroup`s belonging to this object type, which will group properties to be displayed together in the UI. items: $ref: "#/components/schemas/PropertyGroup" summarizable: description: Whether or not the object is summarizable type: boolean CanonicalizingRegexType: description: Regular expression to apply to an arbitrary string to transform it into a canonical string. properties: matchRegex: type: string description: Regular expression to match to an arbitrary string. rewriteRegex: type: string description: Regular expression to transform into a canonical string. ConnectorType: type: string description: The source from which document content was pulled, e.g. an API crawl or browser history enum: - API_CRAWL - BROWSER_CRAWL - BROWSER_HISTORY - BUILTIN - FEDERATED_SEARCH - PUSH_API - WEB_CRAWL - NATIVE_HISTORY IconConfig: description: Defines how to render an icon properties: generatedBackgroundColorKey: type: string backgroundColor: type: string color: type: string key: type: string iconType: enum: - COLLECTION - CUSTOM - DATASOURCE - DATASOURCE_INSTANCE - FAVICON - FILE_TYPE - GENERATED_BACKGROUND - GLYPH - MIME_TYPE - NO_ICON - PERSON - REACTIONS - URL masked: type: boolean description: Whether the icon should be masked based on current theme. name: type: string description: The name of the icon if applicable, e.g. the glyph name for `IconType.GLYPH` icons. url: type: string description: The URL to an image to be displayed if applicable, e.g. the URL for `iconType.URL` icons. example: color: "#343CED" key: person_icon iconType: GLYPH name: user Quicklink: description: An action for a specific datasource that will show up in autocomplete and app card, e.g. "Create new issue" for jira. properties: name: type: string description: Full action name. Used in autocomplete. shortName: type: string description: Shortened name. Used in app cards. url: type: string description: The URL of the action. iconConfig: $ref: "#/components/schemas/IconConfig" description: The config for the icon for this quicklink id: type: string description: Unique identifier of this quicklink scopes: type: array description: The scopes for which this quicklink is applicable items: type: string enum: - APP_CARD - AUTOCOMPLETE_EXACT_MATCH - AUTOCOMPLETE_FUZZY_MATCH - AUTOCOMPLETE_ZERO_QUERY - NEW_TAB_PAGE SharedDatasourceConfigNoInstance: type: object description: Structure describing shared config properties of a datasource with no multi-instance support. required: - name properties: name: type: string description: Unique identifier of datasource instance to which this config applies. displayName: type: string description: The user-friendly instance label to display. If omitted, falls back to the title-cased `name`. datasourceCategory: type: string enum: - UNCATEGORIZED - TICKETS - CRM - PUBLISHED_CONTENT - COLLABORATIVE_CONTENT - QUESTION_ANSWER - MESSAGING - CODE_REPOSITORY - CHANGE_MANAGEMENT - PEOPLE - EMAIL - SSO - ATS - KNOWLEDGE_HUB - EXTERNAL_SHORTCUT - ENTITY - CALENDAR - AGENTS - AI_CONVERSATION - AI_ARTIFACT default: UNCATEGORIZED description: The type of this datasource. It is an important signal for relevance and must be specified and cannot be UNCATEGORIZED. Please refer to [this](https://developers.glean.com/docs/indexing_api_datasource_category/) for more details. urlRegex: type: string description: "Regular expression that matches URLs of documents of the datasource instance. The behavior for multiple matches is non-deterministic. **Note: `urlRegex` is a required field for non-entity datasources, but not required if the datasource is used to push custom entities (ie. datasources where isEntityDatasource is false). Please add a regex as specific as possible to this datasource instance.**" example: https://example-company.datasource.com/.* iconUrl: type: string description: The URL to an image to be displayed as an icon for this datasource instance. Must have a transparency mask. SVG are recommended over PNG. Public, scio-authenticated and Base64 encoded data URLs are all valid (but not third-party-authenticated URLs). objectDefinitions: type: array description: The list of top-level `objectType`s for the datasource. items: $ref: "#/components/schemas/ObjectDefinition" suggestionText: type: string description: Example text for what to search for in this datasource homeUrl: type: string description: The URL of the landing page for this datasource instance. Should point to the most useful page for users, not the company marketing page. crawlerSeedUrls: type: array description: This only applies to WEB_CRAWL and BROWSER_CRAWL datasources. Defines the seed URLs for crawling. items: type: string iconDarkUrl: type: string description: The URL to an image to be displayed as an icon for this datasource instance in dark mode. Must have a transparency mask. SVG are recommended over PNG. Public, scio-authenticated and Base64 encoded data URLs are all valid (but not third-party-authenticated URLs). hideBuiltInFacets: type: array description: List of built-in facet types that should be hidden for the datasource. items: type: string enum: - TYPE - TAG - AUTHOR - OWNER canonicalizingURLRegex: type: array description: A list of regular expressions to apply to an arbitrary URL to transform it into a canonical URL for this datasource instance. Regexes are to be applied in the order specified in this list. items: $ref: "#/components/schemas/CanonicalizingRegexType" canonicalizingTitleRegex: type: array description: A list of regular expressions to apply to an arbitrary title to transform it into a title that will be displayed in the search results items: $ref: "#/components/schemas/CanonicalizingRegexType" redlistTitleRegex: type: string description: A regex that identifies titles that should not be indexed connectorType: allOf: - $ref: "#/components/schemas/ConnectorType" type: string deprecated: false quicklinks: type: array description: List of actions for this datasource instance that will show up in autocomplete and app card, e.g. "Create new issue" for jira items: $ref: "#/components/schemas/Quicklink" renderConfigPreset: type: string description: The name of a render config to use for displaying results from this datasource. Any well known datasource name may be used to render the same as that source, e.g. `web` or `gdrive`. Please refer to [this](https://developers.glean.com/docs/rendering_search_results/) for more details aliases: type: array description: Aliases that can be used as `app` operator-values. items: type: string isOnPrem: type: boolean description: Whether or not this datasource is hosted on-premise. trustUrlRegexForViewActivity: type: boolean default: true description: True if browser activity is able to report the correct URL for VIEW events. Set this to true if the URLs reported by Chrome are constant throughout each page load. Set this to false if the page has Javascript that modifies the URL during or after the load. includeUtmSource: type: boolean description: If true, a utm_source query param will be added to outbound links to this datasource within Glean. stripFragmentInCanonicalUrl: type: boolean default: true description: If true, the fragment part of the URL will be stripped when converting to a canonical url. CustomDatasourceConfig: description: Structure describing config properties of a custom datasource allOf: - $ref: "#/components/schemas/SharedDatasourceConfigNoInstance" - type: object properties: identityDatasourceName: type: string description: If the datasource uses another datasource for identity info, then the name of the datasource. The identity datasource must exist already and the datasource with identity info should have its visibility enabled for search results. productAccessGroup: type: string description: If the datasource uses a specific product access group, then the name of that group. isUserReferencedByEmail: type: boolean description: whether email is used to reference users in document ACLs and in group memberships. isEntityDatasource: type: boolean default: false description: True if this datasource is used to push custom entities. isTestDatasource: type: boolean default: false description: True if this datasource will be used for testing purpose only. Documents from such a datasource wouldn't have any effect on search rankings. DatasourceProfile: required: - datasource - handle properties: datasource: type: string example: github description: The datasource the profile is of. handle: type: string description: The display name of the entity in the given datasource. url: type: string description: URL to view the entity's profile. nativeAppUrl: type: string description: A deep link, if available, into the datasource's native application for the entity's platform (i.e. slack://...). isUserGenerated: type: boolean description: For internal use only. True iff the data source profile was manually added by a user from within Glean (aka not from the original data source) ShortcutProperties: properties: inputAlias: type: string description: link text following the viewPrefix as entered by the user. For example, if the view prefix is `go/` and the shortened URL is `go/abc`, then `abc` is the inputAlias. description: type: string description: A short, plain text blurb to help people understand the intent of the shortcut. destinationUrl: type: string format: url description: destination URL for the shortcut. createdBy: type: string description: Email of the user who created this shortcut. createTime: type: integer format: int64 description: The time the shortcut was created in epoch seconds. updatedBy: type: string description: Email of the user who last updated this shortcut. updateTime: type: integer format: int64 description: The time the shortcut was updated in epoch seconds. ExternalShortcut: allOf: - $ref: "#/components/schemas/ShortcutProperties" - type: object required: - destinationUrl - intermediateUrl - createdBy - inputAlias properties: title: type: string description: Title of the golink intermediateUrl: type: string format: url description: The URL from which the user is then redirected to the destination URL. decayedVisitScore: type: number format: double description: decayed visits score for ranking editUrl: type: string format: url description: The URL using which the user can access the edit page of the shortcut. SharedDatasourceConfig: description: Structure describing shared config properties of the datasource (including multi-instance support) allOf: - $ref: "#/components/schemas/SharedDatasourceConfigNoInstance" - type: object properties: datasourceName: type: string description: The (non-unique) name of the datasource of which this config is an instance, e.g. "jira". instanceOnlyName: type: string description: The instance of the datasource for this particular config, e.g. "onprem". instanceDescription: type: string description: A human readable string identifying this instance as compared to its peers, e.g. "github.com/askscio" or "github.askscio.com" IndexingShortcut: allOf: - $ref: "#/components/schemas/ShortcutProperties" - type: object required: - destinationUrl - createdBy - inputAlias properties: unlisted: type: boolean description: Whether this shortcut is unlisted or not. Unlisted shortcuts are visible to author and admins only. urlTemplate: type: string description: For variable shortcuts, contains the URL template; note, `destinationUrl` contains default URL. CustomMetadataPropertyDefinition: type: object description: The definition for a key within a Custom Metadata schema. Only the fields applicable to Custom Metadata are exposed. properties: name: type: string description: The name of the metadata key. propertyType: type: string enum: - TEXT - PICKLIST - TEXTLIST - MULTIPICKLIST description: The type of metadata key. This governs the search and faceting behavior. skipIndexing: type: boolean description: If true then the property will not be indexed for retrieval and ranking. required: - name - propertyType