mirror of
https://github.com/googleapis/googleapis.git
synced 2026-08-14 12:42:59 +02:00
341 lines
15 KiB
Protocol Buffer
341 lines
15 KiB
Protocol Buffer
// Copyright 2026 Google LLC
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
// you may not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
|
|
syntax = "proto3";
|
|
|
|
package google.developers.knowledge.v1;
|
|
|
|
import "google/api/annotations.proto";
|
|
import "google/api/client.proto";
|
|
import "google/api/field_behavior.proto";
|
|
import "google/api/resource.proto";
|
|
import "google/protobuf/timestamp.proto";
|
|
|
|
option csharp_namespace = "Google.Developers.DeveloperKnowledge.V1";
|
|
option go_package = "google.golang.org/genproto/googleapis/developers/knowledge/v1;knowledge";
|
|
option java_multiple_files = true;
|
|
option java_outer_classname = "DeveloperKnowledgeProto";
|
|
option java_package = "com.google.developers.knowledge.v1";
|
|
option php_namespace = "Google\\Developers\\DeveloperKnowledge\\V1";
|
|
option ruby_package = "Google::Developers::DeveloperKnowledge::V1";
|
|
|
|
// The Developer Knowledge API provides programmatic access to Google's public
|
|
// developer documentation, enabling you to integrate this knowledge base into
|
|
// your own applications and workflows.
|
|
//
|
|
// The API is designed to be the canonical source for machine-readable access to
|
|
// Google's developer documentation.
|
|
//
|
|
// A typical use case is to first use
|
|
// [DeveloperKnowledge.SearchDocumentChunks][google.developers.knowledge.v1.DeveloperKnowledge.SearchDocumentChunks]
|
|
// to find relevant page URIs based on a query, and then use
|
|
// [DeveloperKnowledge.GetDocument][google.developers.knowledge.v1.DeveloperKnowledge.GetDocument]
|
|
// or
|
|
// [DeveloperKnowledge.BatchGetDocuments][google.developers.knowledge.v1.DeveloperKnowledge.BatchGetDocuments]
|
|
// to fetch the full content of the top results.
|
|
//
|
|
// All document content is provided in Markdown format.
|
|
service DeveloperKnowledge {
|
|
option (google.api.default_host) = "developerknowledge.googleapis.com";
|
|
option (google.api.oauth_scopes) =
|
|
"https://www.googleapis.com/auth/cloud-platform";
|
|
|
|
// Searches for developer knowledge across Google's developer documentation.
|
|
// Returns [DocumentChunk][google.developers.knowledge.v1.DocumentChunk]s
|
|
// based on the user's query. There may be many chunks from the same
|
|
// [Document][google.developers.knowledge.v1.Document]. To retrieve full
|
|
// documents, use
|
|
// [DeveloperKnowledge.GetDocument][google.developers.knowledge.v1.DeveloperKnowledge.GetDocument]
|
|
// or
|
|
// [DeveloperKnowledge.BatchGetDocuments][google.developers.knowledge.v1.DeveloperKnowledge.BatchGetDocuments]
|
|
// with the
|
|
// [DocumentChunk.parent][google.developers.knowledge.v1.DocumentChunk.parent]
|
|
// returned in the
|
|
// [SearchDocumentChunksResponse.results][google.developers.knowledge.v1.SearchDocumentChunksResponse.results].
|
|
rpc SearchDocumentChunks(SearchDocumentChunksRequest)
|
|
returns (SearchDocumentChunksResponse) {
|
|
option (google.api.http) = {
|
|
get: "/v1/documents:searchDocumentChunks"
|
|
};
|
|
}
|
|
|
|
// Retrieves a single document with its full Markdown content.
|
|
rpc GetDocument(GetDocumentRequest) returns (Document) {
|
|
option (google.api.http) = {
|
|
get: "/v1/{name=documents/**}"
|
|
};
|
|
option (google.api.method_signature) = "name";
|
|
}
|
|
|
|
// Retrieves multiple documents, each with its full Markdown content.
|
|
rpc BatchGetDocuments(BatchGetDocumentsRequest)
|
|
returns (BatchGetDocumentsResponse) {
|
|
option (google.api.http) = {
|
|
get: "/v1/documents:batchGet"
|
|
};
|
|
}
|
|
}
|
|
|
|
// Specifies which fields of the
|
|
// [Document][google.developers.knowledge.v1.Document] are included.
|
|
enum DocumentView {
|
|
// The default / unset value. See each API method for its default value if
|
|
// [DocumentView][google.developers.knowledge.v1.DocumentView] is not
|
|
// specified.
|
|
DOCUMENT_VIEW_UNSPECIFIED = 0;
|
|
|
|
// Includes only the basic metadata fields:
|
|
// - `name`
|
|
// - `uri`
|
|
// - `data_source`
|
|
// - `title`
|
|
// - `description`
|
|
// - `update_time`
|
|
// - `view`
|
|
//
|
|
// This is the default of view for
|
|
// [DeveloperKnowledge.SearchDocumentChunks][google.developers.knowledge.v1.DeveloperKnowledge.SearchDocumentChunks].
|
|
DOCUMENT_VIEW_BASIC = 1;
|
|
|
|
// Includes all [Document][google.developers.knowledge.v1.Document] fields.
|
|
DOCUMENT_VIEW_FULL = 2;
|
|
|
|
// Includes the `DOCUMENT_VIEW_BASIC` fields and the `content` field.
|
|
//
|
|
// This is the default of view for
|
|
// [DeveloperKnowledge.GetDocument][google.developers.knowledge.v1.DeveloperKnowledge.GetDocument]
|
|
// and
|
|
// [DeveloperKnowledge.BatchGetDocuments][google.developers.knowledge.v1.DeveloperKnowledge.BatchGetDocuments].
|
|
DOCUMENT_VIEW_CONTENT = 3;
|
|
}
|
|
|
|
// A Document represents a piece of content from the Developer Knowledge corpus.
|
|
message Document {
|
|
option (google.api.resource) = {
|
|
type: "developerknowledge.googleapis.com/Document"
|
|
pattern: "documents/{document}"
|
|
plural: "documents"
|
|
singular: "document"
|
|
};
|
|
|
|
// Identifier. Contains the resource name of the document.
|
|
// Format: `documents/{uri_without_scheme}`
|
|
// Example: `documents/docs.cloud.google.com/storage/docs/creating-buckets`
|
|
string name = 1 [(google.api.field_behavior) = IDENTIFIER];
|
|
|
|
// Output only. Provides the URI of the content, such as
|
|
// `docs.cloud.google.com/storage/docs/creating-buckets`.
|
|
string uri = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
|
|
|
|
// Output only. Contains the full content of the document in Markdown format.
|
|
string content = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
|
|
|
|
// Output only. Provides a description of the document.
|
|
string description = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
|
|
|
|
// Output only. Specifies the data source of the document.
|
|
// Example data source: `firebase.google.com`
|
|
string data_source = 5 [(google.api.field_behavior) = OUTPUT_ONLY];
|
|
|
|
// Output only. Provides the title of the document.
|
|
string title = 6 [(google.api.field_behavior) = OUTPUT_ONLY];
|
|
|
|
// Output only. Represents the timestamp when the content or metadata of the
|
|
// document was last updated.
|
|
google.protobuf.Timestamp update_time = 7
|
|
[(google.api.field_behavior) = OUTPUT_ONLY];
|
|
|
|
// Output only. Specifies the
|
|
// [DocumentView][google.developers.knowledge.v1.DocumentView] of the
|
|
// document.
|
|
DocumentView view = 8 [(google.api.field_behavior) = OUTPUT_ONLY];
|
|
}
|
|
|
|
// Request message for
|
|
// [DeveloperKnowledge.SearchDocumentChunks][google.developers.knowledge.v1.DeveloperKnowledge.SearchDocumentChunks].
|
|
message SearchDocumentChunksRequest {
|
|
// Required. Provides the raw query string provided by the user, such as "How
|
|
// to create a Cloud Storage bucket?".
|
|
string query = 1 [(google.api.field_behavior) = REQUIRED];
|
|
|
|
// Optional. Specifies the maximum number of results to return. The service
|
|
// may return fewer than this value.
|
|
//
|
|
// If unspecified, at most 5 results will be returned.
|
|
//
|
|
// The maximum value is 20; values above 20 will result in an INVALID_ARGUMENT
|
|
// error.
|
|
int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL];
|
|
|
|
// Optional. Contains a page token, received from a previous
|
|
// `SearchDocumentChunks` call. Provide this to retrieve the subsequent page.
|
|
string page_token = 3 [(google.api.field_behavior) = OPTIONAL];
|
|
|
|
// Optional. Applies a strict filter to the search results. The expression
|
|
// supports a subset of the syntax described at https://google.aip.dev/160.
|
|
//
|
|
// While `SearchDocumentChunks` returns
|
|
// [DocumentChunk][google.developers.knowledge.v1.DocumentChunk]s, the filter
|
|
// is applied to `DocumentChunk.document` fields.
|
|
//
|
|
// Supported fields for filtering:
|
|
//
|
|
// * `data_source` (STRING): The source of the document, e.g.
|
|
// `docs.cloud.google.com`. See
|
|
// https://developers.google.com/knowledge/reference/corpus-reference for
|
|
// the complete list of data sources in the corpus.
|
|
// * `update_time` (TIMESTAMP): The timestamp of when the document was last
|
|
// meaningfully updated. A meaningful update is one that changes document's
|
|
// markdown content or metadata.
|
|
// * `uri` (STRING): The document URI, e.g.
|
|
// `https://docs.cloud.google.com/bigquery/docs/tables`.
|
|
//
|
|
// STRING fields support `=` (equals) and `!=` (not equals) operators for
|
|
// **exact match** on the whole string. Partial match, prefix match, and
|
|
// regexp match are not supported.
|
|
//
|
|
// TIMESTAMP fields support `=`, `<`, `<=`, `>`, and `>=` operators.
|
|
// Timestamps must be in RFC-3339 format, e.g., `"2025-01-01T00:00:00Z"`.
|
|
//
|
|
// You can combine expressions using `AND`, `OR`, and `NOT` (or `-`) logical
|
|
// operators. `OR` has higher precedence than `AND`. Use parentheses for
|
|
// explicit precedence grouping.
|
|
//
|
|
// Examples:
|
|
//
|
|
// * `data_source = "docs.cloud.google.com" OR data_source =
|
|
// "firebase.google.com"`
|
|
// * `data_source != "firebase.google.com"`
|
|
// * `update_time < "2024-01-01T00:00:00Z"`
|
|
// * `update_time >= "2025-01-22T00:00:00Z" AND (data_source =
|
|
// "developer.chrome.com" OR data_source = "web.dev")`
|
|
// * `uri = "https://docs.cloud.google.com/release-notes"`
|
|
//
|
|
// The `filter` string must not exceed 500 characters; values longer than 500
|
|
// characters will result in an `INVALID_ARGUMENT` error.
|
|
string filter = 4 [(google.api.field_behavior) = OPTIONAL];
|
|
}
|
|
|
|
// Response message for
|
|
// [DeveloperKnowledge.SearchDocumentChunks][google.developers.knowledge.v1.DeveloperKnowledge.SearchDocumentChunks].
|
|
message SearchDocumentChunksResponse {
|
|
// Contains the search results for the given query. Each
|
|
// [DocumentChunk][google.developers.knowledge.v1.DocumentChunk] in this list
|
|
// contains a snippet of content relevant to the search query. Use the
|
|
// [DocumentChunk.parent][google.developers.knowledge.v1.DocumentChunk.parent]
|
|
// field of each result with
|
|
// [DeveloperKnowledge.GetDocument][google.developers.knowledge.v1.DeveloperKnowledge.GetDocument]
|
|
// or
|
|
// [DeveloperKnowledge.BatchGetDocuments][google.developers.knowledge.v1.DeveloperKnowledge.BatchGetDocuments]
|
|
// to retrieve the full document content.
|
|
repeated DocumentChunk results = 1;
|
|
|
|
// Optional. Provides a token that can be sent as `page_token` to retrieve the
|
|
// next page. If this field is omitted, there are no subsequent pages.
|
|
string next_page_token = 2 [(google.api.field_behavior) = OPTIONAL];
|
|
}
|
|
|
|
// Request message for
|
|
// [DeveloperKnowledge.GetDocument][google.developers.knowledge.v1.DeveloperKnowledge.GetDocument].
|
|
message GetDocumentRequest {
|
|
// Required. Specifies the name of the document to retrieve.
|
|
// Format: `documents/{uri_without_scheme}`
|
|
// Example: `documents/docs.cloud.google.com/storage/docs/creating-buckets`
|
|
string name = 1 [
|
|
(google.api.field_behavior) = REQUIRED,
|
|
(google.api.resource_reference) = {
|
|
type: "developerknowledge.googleapis.com/Document"
|
|
}
|
|
];
|
|
|
|
// Optional. Specifies the
|
|
// [DocumentView][google.developers.knowledge.v1.DocumentView] of the
|
|
// document. If unspecified,
|
|
// [DeveloperKnowledge.GetDocument][google.developers.knowledge.v1.DeveloperKnowledge.GetDocument]
|
|
// defaults to `DOCUMENT_VIEW_CONTENT`.
|
|
DocumentView view = 2 [(google.api.field_behavior) = OPTIONAL];
|
|
}
|
|
|
|
// Request message for
|
|
// [DeveloperKnowledge.BatchGetDocuments][google.developers.knowledge.v1.DeveloperKnowledge.BatchGetDocuments].
|
|
message BatchGetDocumentsRequest {
|
|
// Required. Specifies the names of the documents to retrieve. A maximum of 20
|
|
// documents can be retrieved in a batch. The documents are returned in the
|
|
// same order as the `names` in the request.
|
|
//
|
|
// Format: `documents/{uri_without_scheme}`
|
|
// Example: `documents/docs.cloud.google.com/storage/docs/creating-buckets`
|
|
repeated string names = 1 [
|
|
(google.api.field_behavior) = REQUIRED,
|
|
(google.api.resource_reference) = {
|
|
type: "developerknowledge.googleapis.com/Document"
|
|
}
|
|
];
|
|
|
|
// Optional. Specifies the
|
|
// [DocumentView][google.developers.knowledge.v1.DocumentView] of the
|
|
// document. If unspecified,
|
|
// [DeveloperKnowledge.BatchGetDocuments][google.developers.knowledge.v1.DeveloperKnowledge.BatchGetDocuments]
|
|
// defaults to `DOCUMENT_VIEW_CONTENT`.
|
|
DocumentView view = 2 [(google.api.field_behavior) = OPTIONAL];
|
|
}
|
|
|
|
// Response message for
|
|
// [DeveloperKnowledge.BatchGetDocuments][google.developers.knowledge.v1.DeveloperKnowledge.BatchGetDocuments].
|
|
message BatchGetDocumentsResponse {
|
|
// Contains the documents requested.
|
|
repeated Document documents = 1;
|
|
}
|
|
|
|
// A DocumentChunk represents a piece of content from a
|
|
// [Document][google.developers.knowledge.v1.Document] in the DeveloperKnowledge
|
|
// corpus. To fetch the entire document content, pass the `parent` to
|
|
// [DeveloperKnowledge.GetDocument][google.developers.knowledge.v1.DeveloperKnowledge.GetDocument]
|
|
// or
|
|
// [DeveloperKnowledge.BatchGetDocuments][google.developers.knowledge.v1.DeveloperKnowledge.BatchGetDocuments].
|
|
message DocumentChunk {
|
|
// Output only. Contains the resource name of the document this chunk is from.
|
|
// Format: `documents/{uri_without_scheme}`
|
|
// Example: `documents/docs.cloud.google.com/storage/docs/creating-buckets`
|
|
string parent = 1 [
|
|
(google.api.field_behavior) = OUTPUT_ONLY,
|
|
(google.api.resource_reference) = {
|
|
type: "developerknowledge.googleapis.com/Document"
|
|
}
|
|
];
|
|
|
|
// Output only. Specifies the ID of this chunk within the document. The chunk
|
|
// ID is unique within a document, but not globally unique across documents.
|
|
// The chunk ID is not stable and may change over time.
|
|
string id = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
|
|
|
|
// Output only. Contains the content of the document chunk.
|
|
string content = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
|
|
|
|
// Output only. Represents metadata about the
|
|
// [Document][google.developers.knowledge.v1.Document] this chunk is from. The
|
|
// [DocumentView][google.developers.knowledge.v1.DocumentView] of this
|
|
// [Document][google.developers.knowledge.v1.Document] message will be set to
|
|
// `DOCUMENT_VIEW_BASIC`. It is included here for convenience so that clients
|
|
// do not need to call
|
|
// [DeveloperKnowledge.GetDocument][google.developers.knowledge.v1.DeveloperKnowledge.GetDocument]
|
|
// or
|
|
// [DeveloperKnowledge.BatchGetDocuments][google.developers.knowledge.v1.DeveloperKnowledge.BatchGetDocuments]
|
|
// if they only need the metadata fields. Otherwise, clients should use
|
|
// [DeveloperKnowledge.GetDocument][google.developers.knowledge.v1.DeveloperKnowledge.GetDocument]
|
|
// or
|
|
// [DeveloperKnowledge.BatchGetDocuments][google.developers.knowledge.v1.DeveloperKnowledge.BatchGetDocuments]
|
|
// to fetch the full document content.
|
|
Document document = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
|
|
}
|