googleapis/google/cloud/discoveryengine/v1beta/document_service.proto
Google APIs ff32775da0 chore: update copyright year for auto-generated protos
PiperOrigin-RevId: 731678103
2025-02-27 04:49:41 -08:00

459 lines
18 KiB
Protocol Buffer

// Copyright 2025 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.cloud.discoveryengine.v1beta;
import "google/api/annotations.proto";
import "google/api/client.proto";
import "google/api/field_behavior.proto";
import "google/api/resource.proto";
import "google/cloud/discoveryengine/v1beta/document.proto";
import "google/cloud/discoveryengine/v1beta/import_config.proto";
import "google/cloud/discoveryengine/v1beta/purge_config.proto";
import "google/longrunning/operations.proto";
import "google/protobuf/empty.proto";
import "google/protobuf/field_mask.proto";
import "google/protobuf/timestamp.proto";
option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1Beta";
option go_package = "cloud.google.com/go/discoveryengine/apiv1beta/discoveryenginepb;discoveryenginepb";
option java_multiple_files = true;
option java_outer_classname = "DocumentServiceProto";
option java_package = "com.google.cloud.discoveryengine.v1beta";
option objc_class_prefix = "DISCOVERYENGINE";
option php_namespace = "Google\\Cloud\\DiscoveryEngine\\V1beta";
option ruby_package = "Google::Cloud::DiscoveryEngine::V1beta";
// Service for ingesting
// [Document][google.cloud.discoveryengine.v1beta.Document] information of the
// customer's website.
service DocumentService {
option (google.api.default_host) = "discoveryengine.googleapis.com";
option (google.api.oauth_scopes) =
"https://www.googleapis.com/auth/cloud-platform";
// Gets a [Document][google.cloud.discoveryengine.v1beta.Document].
rpc GetDocument(GetDocumentRequest) returns (Document) {
option (google.api.http) = {
get: "/v1beta/{name=projects/*/locations/*/dataStores/*/branches/*/documents/*}"
additional_bindings {
get: "/v1beta/{name=projects/*/locations/*/collections/*/dataStores/*/branches/*/documents/*}"
}
};
option (google.api.method_signature) = "name";
}
// Gets a list of [Document][google.cloud.discoveryengine.v1beta.Document]s.
rpc ListDocuments(ListDocumentsRequest) returns (ListDocumentsResponse) {
option (google.api.http) = {
get: "/v1beta/{parent=projects/*/locations/*/dataStores/*/branches/*}/documents"
additional_bindings {
get: "/v1beta/{parent=projects/*/locations/*/collections/*/dataStores/*/branches/*}/documents"
}
};
option (google.api.method_signature) = "parent";
}
// Creates a [Document][google.cloud.discoveryengine.v1beta.Document].
rpc CreateDocument(CreateDocumentRequest) returns (Document) {
option (google.api.http) = {
post: "/v1beta/{parent=projects/*/locations/*/dataStores/*/branches/*}/documents"
body: "document"
additional_bindings {
post: "/v1beta/{parent=projects/*/locations/*/collections/*/dataStores/*/branches/*}/documents"
body: "document"
}
};
option (google.api.method_signature) = "parent,document,document_id";
}
// Updates a [Document][google.cloud.discoveryengine.v1beta.Document].
rpc UpdateDocument(UpdateDocumentRequest) returns (Document) {
option (google.api.http) = {
patch: "/v1beta/{document.name=projects/*/locations/*/dataStores/*/branches/*/documents/*}"
body: "document"
additional_bindings {
patch: "/v1beta/{document.name=projects/*/locations/*/collections/*/dataStores/*/branches/*/documents/*}"
body: "document"
}
};
option (google.api.method_signature) = "document,update_mask";
}
// Deletes a [Document][google.cloud.discoveryengine.v1beta.Document].
rpc DeleteDocument(DeleteDocumentRequest) returns (google.protobuf.Empty) {
option (google.api.http) = {
delete: "/v1beta/{name=projects/*/locations/*/dataStores/*/branches/*/documents/*}"
additional_bindings {
delete: "/v1beta/{name=projects/*/locations/*/collections/*/dataStores/*/branches/*/documents/*}"
}
};
option (google.api.method_signature) = "name";
}
// Bulk import of multiple
// [Document][google.cloud.discoveryengine.v1beta.Document]s. Request
// processing may be synchronous. Non-existing items are created.
//
// Note: It is possible for a subset of the
// [Document][google.cloud.discoveryengine.v1beta.Document]s to be
// successfully updated.
rpc ImportDocuments(ImportDocumentsRequest)
returns (google.longrunning.Operation) {
option (google.api.http) = {
post: "/v1beta/{parent=projects/*/locations/*/dataStores/*/branches/*}/documents:import"
body: "*"
additional_bindings {
post: "/v1beta/{parent=projects/*/locations/*/collections/*/dataStores/*/branches/*}/documents:import"
body: "*"
}
};
option (google.longrunning.operation_info) = {
response_type: "google.cloud.discoveryengine.v1beta.ImportDocumentsResponse"
metadata_type: "google.cloud.discoveryengine.v1beta.ImportDocumentsMetadata"
};
}
// Permanently deletes all selected
// [Document][google.cloud.discoveryengine.v1beta.Document]s in a branch.
//
// This process is asynchronous. Depending on the number of
// [Document][google.cloud.discoveryengine.v1beta.Document]s to be deleted,
// this operation can take hours to complete. Before the delete operation
// completes, some [Document][google.cloud.discoveryengine.v1beta.Document]s
// might still be returned by
// [DocumentService.GetDocument][google.cloud.discoveryengine.v1beta.DocumentService.GetDocument]
// or
// [DocumentService.ListDocuments][google.cloud.discoveryengine.v1beta.DocumentService.ListDocuments].
//
// To get a list of the
// [Document][google.cloud.discoveryengine.v1beta.Document]s to be deleted,
// set
// [PurgeDocumentsRequest.force][google.cloud.discoveryengine.v1beta.PurgeDocumentsRequest.force]
// to false.
rpc PurgeDocuments(PurgeDocumentsRequest)
returns (google.longrunning.Operation) {
option (google.api.http) = {
post: "/v1beta/{parent=projects/*/locations/*/dataStores/*/branches/*}/documents:purge"
body: "*"
additional_bindings {
post: "/v1beta/{parent=projects/*/locations/*/collections/*/dataStores/*/branches/*}/documents:purge"
body: "*"
}
};
option (google.longrunning.operation_info) = {
response_type: "google.cloud.discoveryengine.v1beta.PurgeDocumentsResponse"
metadata_type: "google.cloud.discoveryengine.v1beta.PurgeDocumentsMetadata"
};
}
// Gets index freshness metadata for
// [Document][google.cloud.discoveryengine.v1beta.Document]s. Supported for
// website search only.
rpc BatchGetDocumentsMetadata(BatchGetDocumentsMetadataRequest)
returns (BatchGetDocumentsMetadataResponse) {
option (google.api.http) = {
get: "/v1beta/{parent=projects/*/locations/*/dataStores/*/branches/*}/batchGetDocumentsMetadata"
additional_bindings {
get: "/v1beta/{parent=projects/*/locations/*/collections/*/dataStores/*/branches/*}/batchGetDocumentsMetadata"
}
};
option (google.api.method_signature) = "parent";
}
}
// Request message for
// [DocumentService.GetDocument][google.cloud.discoveryengine.v1beta.DocumentService.GetDocument]
// method.
message GetDocumentRequest {
// Required. Full resource name of
// [Document][google.cloud.discoveryengine.v1beta.Document], such as
// `projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}/branches/{branch}/documents/{document}`.
//
// If the caller does not have permission to access the
// [Document][google.cloud.discoveryengine.v1beta.Document], regardless of
// whether or not it exists, a `PERMISSION_DENIED` error is returned.
//
// If the requested [Document][google.cloud.discoveryengine.v1beta.Document]
// does not exist, a `NOT_FOUND` error is returned.
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "discoveryengine.googleapis.com/Document"
}
];
}
// Request message for
// [DocumentService.ListDocuments][google.cloud.discoveryengine.v1beta.DocumentService.ListDocuments]
// method.
message ListDocumentsRequest {
// Required. The parent branch resource name, such as
// `projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}/branches/{branch}`.
// Use `default_branch` as the branch ID, to list documents under the default
// branch.
//
// If the caller does not have permission to list
// [Document][google.cloud.discoveryengine.v1beta.Document]s under this
// branch, regardless of whether or not this branch exists, a
// `PERMISSION_DENIED` error is returned.
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "discoveryengine.googleapis.com/Branch"
}
];
// Maximum number of [Document][google.cloud.discoveryengine.v1beta.Document]s
// to return. If unspecified, defaults to 100. The maximum allowed value is
// 1000. Values above 1000 are set to 1000.
//
// If this field is negative, an `INVALID_ARGUMENT` error is returned.
int32 page_size = 2;
// A page token
// [ListDocumentsResponse.next_page_token][google.cloud.discoveryengine.v1beta.ListDocumentsResponse.next_page_token],
// received from a previous
// [DocumentService.ListDocuments][google.cloud.discoveryengine.v1beta.DocumentService.ListDocuments]
// call. Provide this to retrieve the subsequent page.
//
// When paginating, all other parameters provided to
// [DocumentService.ListDocuments][google.cloud.discoveryengine.v1beta.DocumentService.ListDocuments]
// must match the call that provided the page token. Otherwise, an
// `INVALID_ARGUMENT` error is returned.
string page_token = 3;
}
// Response message for
// [DocumentService.ListDocuments][google.cloud.discoveryengine.v1beta.DocumentService.ListDocuments]
// method.
message ListDocumentsResponse {
// The [Document][google.cloud.discoveryengine.v1beta.Document]s.
repeated Document documents = 1;
// A token that can be sent as
// [ListDocumentsRequest.page_token][google.cloud.discoveryengine.v1beta.ListDocumentsRequest.page_token]
// to retrieve the next page. If this field is omitted, there are no
// subsequent pages.
string next_page_token = 2;
}
// Request message for
// [DocumentService.CreateDocument][google.cloud.discoveryengine.v1beta.DocumentService.CreateDocument]
// method.
message CreateDocumentRequest {
// Required. The parent resource name, such as
// `projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}/branches/{branch}`.
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "discoveryengine.googleapis.com/Branch"
}
];
// Required. The [Document][google.cloud.discoveryengine.v1beta.Document] to
// create.
Document document = 2 [(google.api.field_behavior) = REQUIRED];
// Required. The ID to use for the
// [Document][google.cloud.discoveryengine.v1beta.Document], which becomes the
// final component of the
// [Document.name][google.cloud.discoveryengine.v1beta.Document.name].
//
// If the caller does not have permission to create the
// [Document][google.cloud.discoveryengine.v1beta.Document], regardless of
// whether or not it exists, a `PERMISSION_DENIED` error is returned.
//
// This field must be unique among all
// [Document][google.cloud.discoveryengine.v1beta.Document]s with the same
// [parent][google.cloud.discoveryengine.v1beta.CreateDocumentRequest.parent].
// Otherwise, an `ALREADY_EXISTS` error is returned.
//
// This field must conform to [RFC-1034](https://tools.ietf.org/html/rfc1034)
// standard with a length limit of 63 characters. Otherwise, an
// `INVALID_ARGUMENT` error is returned.
string document_id = 3 [(google.api.field_behavior) = REQUIRED];
}
// Request message for
// [DocumentService.UpdateDocument][google.cloud.discoveryengine.v1beta.DocumentService.UpdateDocument]
// method.
message UpdateDocumentRequest {
// Required. The document to update/create.
//
// If the caller does not have permission to update the
// [Document][google.cloud.discoveryengine.v1beta.Document], regardless of
// whether or not it exists, a `PERMISSION_DENIED` error is returned.
//
// If the [Document][google.cloud.discoveryengine.v1beta.Document] to update
// does not exist and
// [allow_missing][google.cloud.discoveryengine.v1beta.UpdateDocumentRequest.allow_missing]
// is not set, a `NOT_FOUND` error is returned.
Document document = 1 [(google.api.field_behavior) = REQUIRED];
// If set to `true` and the
// [Document][google.cloud.discoveryengine.v1beta.Document] is not found, a
// new [Document][google.cloud.discoveryengine.v1beta.Document] is be created.
bool allow_missing = 2;
// Indicates which fields in the provided imported 'document' to update. If
// not set, by default updates all fields.
google.protobuf.FieldMask update_mask = 3;
}
// Request message for
// [DocumentService.DeleteDocument][google.cloud.discoveryengine.v1beta.DocumentService.DeleteDocument]
// method.
message DeleteDocumentRequest {
// Required. Full resource name of
// [Document][google.cloud.discoveryengine.v1beta.Document], such as
// `projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}/branches/{branch}/documents/{document}`.
//
// If the caller does not have permission to delete the
// [Document][google.cloud.discoveryengine.v1beta.Document], regardless of
// whether or not it exists, a `PERMISSION_DENIED` error is returned.
//
// If the [Document][google.cloud.discoveryengine.v1beta.Document] to delete
// does not exist, a `NOT_FOUND` error is returned.
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "discoveryengine.googleapis.com/Document"
}
];
}
// Request message for
// [DocumentService.BatchGetDocumentsMetadata][google.cloud.discoveryengine.v1beta.DocumentService.BatchGetDocumentsMetadata]
// method.
message BatchGetDocumentsMetadataRequest {
// Matcher for the [Document][google.cloud.discoveryengine.v1beta.Document]s
// by exact uris.
message UrisMatcher {
// The exact URIs to match by.
repeated string uris = 1;
}
// Matcher for the [Document][google.cloud.discoveryengine.v1beta.Document]s
// by FHIR resource names.
message FhirMatcher {
// Required. The FHIR resources to match by.
// Format:
// projects/{project}/locations/{location}/datasets/{dataset}/fhirStores/{fhir_store}/fhir/{resource_type}/{fhir_resource_id}
repeated string fhir_resources = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "healthcare.googleapis.com/FhirResource"
}
];
}
// Matcher for the [Document][google.cloud.discoveryengine.v1beta.Document]s.
// Currently supports matching by exact URIs.
message Matcher {
// Matcher for the
// [Document][google.cloud.discoveryengine.v1beta.Document]s.
oneof matcher {
// Matcher by exact URIs.
UrisMatcher uris_matcher = 1;
// Matcher by FHIR resource names.
FhirMatcher fhir_matcher = 2;
}
}
// Required. The parent branch resource name, such as
// `projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}/branches/{branch}`.
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "discoveryengine.googleapis.com/Branch"
}
];
// Required. Matcher for the
// [Document][google.cloud.discoveryengine.v1beta.Document]s.
Matcher matcher = 2 [(google.api.field_behavior) = REQUIRED];
}
// Response message for
// [DocumentService.BatchGetDocumentsMetadata][google.cloud.discoveryengine.v1beta.DocumentService.BatchGetDocumentsMetadata]
// method.
message BatchGetDocumentsMetadataResponse {
// The metadata of a [Document][google.cloud.discoveryengine.v1beta.Document].
message DocumentMetadata {
// The value of the matcher that was used to match the
// [Document][google.cloud.discoveryengine.v1beta.Document].
message MatcherValue {
// The value of the matcher that was used to match the
// [Document][google.cloud.discoveryengine.v1beta.Document].
oneof matcher_value {
// If match by URI, the URI of the
// [Document][google.cloud.discoveryengine.v1beta.Document].
string uri = 1;
// Format:
// projects/{project}/locations/{location}/datasets/{dataset}/fhirStores/{fhir_store}/fhir/{resource_type}/{fhir_resource_id}
string fhir_resource = 2 [(google.api.resource_reference) = {
type: "healthcare.googleapis.com/FhirResource"
}];
}
}
// The value of the matcher that was used to match the
// [Document][google.cloud.discoveryengine.v1beta.Document].
MatcherValue matcher_value = 2;
// The state of the document.
State state = 3;
// The timestamp of the last time the
// [Document][google.cloud.discoveryengine.v1beta.Document] was last
// indexed.
google.protobuf.Timestamp last_refreshed_time = 4;
// The data ingestion source of the
// [Document][google.cloud.discoveryengine.v1beta.Document].
//
// Allowed values are:
//
// * `batch`: Data ingested via Batch API, e.g., ImportDocuments.
// * `streaming` Data ingested via Streaming API, e.g., FHIR streaming.
string data_ingestion_source = 5;
}
// The state of the [Document][google.cloud.discoveryengine.v1beta.Document].
enum State {
// Should never be set.
STATE_UNSPECIFIED = 0;
// The [Document][google.cloud.discoveryengine.v1beta.Document] is indexed.
INDEXED = 1;
// The [Document][google.cloud.discoveryengine.v1beta.Document] is not
// indexed because its URI is not in the
// [TargetSite][google.cloud.discoveryengine.v1beta.TargetSite].
NOT_IN_TARGET_SITE = 2;
// The [Document][google.cloud.discoveryengine.v1beta.Document] is not
// indexed.
NOT_IN_INDEX = 3;
}
// The metadata of the
// [Document][google.cloud.discoveryengine.v1beta.Document]s.
repeated DocumentMetadata documents_metadata = 1;
}