PiperOrigin-RevId: 534896621pull/807/head^2
parent
eb5ac9d38c
commit
5f29cc976e
14 changed files with 2950 additions and 0 deletions
@ -0,0 +1,421 @@ |
||||
# This file was automatically generated by BuildFileGenerator |
||||
# https://github.com/googleapis/rules_gapic/tree/master/bazel |
||||
|
||||
# Most of the manual changes to this file will be overwritten. |
||||
# It's **only** allowed to change the following rule attribute values: |
||||
# - names of *_gapic_assembly_* rules |
||||
# - certain parameters of *_gapic_library rules, including but not limited to: |
||||
# * extra_protoc_parameters |
||||
# * extra_protoc_file_parameters |
||||
# The complete list of preserved parameters can be found in the source code. |
||||
|
||||
# This is an API workspace, having public visibility by default makes perfect sense. |
||||
package(default_visibility = ["//visibility:public"]) |
||||
|
||||
############################################################################## |
||||
# Common |
||||
############################################################################## |
||||
load("@rules_proto//proto:defs.bzl", "proto_library") |
||||
load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") |
||||
|
||||
proto_library( |
||||
name = "discoveryengine_proto", |
||||
srcs = [ |
||||
"common.proto", |
||||
"completion_service.proto", |
||||
"document.proto", |
||||
"document_service.proto", |
||||
"import_config.proto", |
||||
"purge_config.proto", |
||||
"schema.proto", |
||||
"schema_service.proto", |
||||
"search_service.proto", |
||||
"user_event.proto", |
||||
"user_event_service.proto", |
||||
], |
||||
deps = [ |
||||
"//google/api:annotations_proto", |
||||
"//google/api:client_proto", |
||||
"//google/api:field_behavior_proto", |
||||
"//google/api:httpbody_proto", |
||||
"//google/api:resource_proto", |
||||
"//google/longrunning:operations_proto", |
||||
"//google/rpc:status_proto", |
||||
"//google/type:date_proto", |
||||
"@com_google_protobuf//:duration_proto", |
||||
"@com_google_protobuf//:empty_proto", |
||||
"@com_google_protobuf//:struct_proto", |
||||
"@com_google_protobuf//:timestamp_proto", |
||||
], |
||||
) |
||||
|
||||
proto_library_with_info( |
||||
name = "discoveryengine_proto_with_info", |
||||
deps = [ |
||||
":discoveryengine_proto", |
||||
"//google/cloud:common_resources_proto", |
||||
], |
||||
) |
||||
|
||||
############################################################################## |
||||
# Java |
||||
############################################################################## |
||||
load( |
||||
"@com_google_googleapis_imports//:imports.bzl", |
||||
"java_gapic_assembly_gradle_pkg", |
||||
"java_gapic_library", |
||||
"java_gapic_test", |
||||
"java_grpc_library", |
||||
"java_proto_library", |
||||
) |
||||
|
||||
java_proto_library( |
||||
name = "discoveryengine_java_proto", |
||||
deps = [":discoveryengine_proto"], |
||||
) |
||||
|
||||
java_grpc_library( |
||||
name = "discoveryengine_java_grpc", |
||||
srcs = [":discoveryengine_proto"], |
||||
deps = [":discoveryengine_java_proto"], |
||||
) |
||||
|
||||
java_gapic_library( |
||||
name = "discoveryengine_java_gapic", |
||||
srcs = [":discoveryengine_proto_with_info"], |
||||
gapic_yaml = None, |
||||
grpc_service_config = "discoveryengine_grpc_service_config.json", |
||||
rest_numeric_enums = True, |
||||
service_yaml = "discoveryengine_v1.yaml", |
||||
test_deps = [ |
||||
":discoveryengine_java_grpc", |
||||
], |
||||
transport = "grpc+rest", |
||||
deps = [ |
||||
":discoveryengine_java_proto", |
||||
"//google/api:api_java_proto", |
||||
], |
||||
) |
||||
|
||||
java_gapic_test( |
||||
name = "discoveryengine_java_gapic_test_suite", |
||||
test_classes = [ |
||||
"com.google.cloud.discoveryengine.v1.CompletionServiceClientHttpJsonTest", |
||||
"com.google.cloud.discoveryengine.v1.CompletionServiceClientTest", |
||||
"com.google.cloud.discoveryengine.v1.DocumentServiceClientHttpJsonTest", |
||||
"com.google.cloud.discoveryengine.v1.DocumentServiceClientTest", |
||||
"com.google.cloud.discoveryengine.v1.SchemaServiceClientHttpJsonTest", |
||||
"com.google.cloud.discoveryengine.v1.SchemaServiceClientTest", |
||||
"com.google.cloud.discoveryengine.v1.SearchServiceClientHttpJsonTest", |
||||
"com.google.cloud.discoveryengine.v1.SearchServiceClientTest", |
||||
"com.google.cloud.discoveryengine.v1.UserEventServiceClientHttpJsonTest", |
||||
"com.google.cloud.discoveryengine.v1.UserEventServiceClientTest", |
||||
], |
||||
runtime_deps = [":discoveryengine_java_gapic_test"], |
||||
) |
||||
|
||||
# Open Source Packages |
||||
java_gapic_assembly_gradle_pkg( |
||||
name = "google-cloud-discoveryengine-v1-java", |
||||
transport = "grpc+rest", |
||||
deps = [ |
||||
":discoveryengine_java_gapic", |
||||
":discoveryengine_java_grpc", |
||||
":discoveryengine_java_proto", |
||||
":discoveryengine_proto", |
||||
], |
||||
include_samples = True, |
||||
) |
||||
|
||||
############################################################################## |
||||
# Go |
||||
############################################################################## |
||||
load( |
||||
"@com_google_googleapis_imports//:imports.bzl", |
||||
"go_gapic_assembly_pkg", |
||||
"go_gapic_library", |
||||
"go_proto_library", |
||||
"go_test", |
||||
) |
||||
|
||||
go_proto_library( |
||||
name = "discoveryengine_go_proto", |
||||
compilers = ["@io_bazel_rules_go//proto:go_grpc"], |
||||
importpath = "cloud.google.com/go/discoveryengine/apiv1/discoveryenginepb", |
||||
protos = [":discoveryengine_proto"], |
||||
deps = [ |
||||
"//google/api:annotations_go_proto", |
||||
"//google/api:httpbody_go_proto", |
||||
"//google/longrunning:longrunning_go_proto", |
||||
"//google/rpc:status_go_proto", |
||||
"//google/type:date_go_proto", |
||||
], |
||||
) |
||||
|
||||
go_gapic_library( |
||||
name = "discoveryengine_go_gapic", |
||||
srcs = [":discoveryengine_proto_with_info"], |
||||
grpc_service_config = "discoveryengine_grpc_service_config.json", |
||||
importpath = "cloud.google.com/go/discoveryengine/apiv1;discoveryengine", |
||||
metadata = True, |
||||
release_level = "beta", |
||||
rest_numeric_enums = True, |
||||
service_yaml = "discoveryengine_v1.yaml", |
||||
transport = "grpc+rest", |
||||
deps = [ |
||||
":discoveryengine_go_proto", |
||||
"//google/api:httpbody_go_proto", |
||||
"//google/longrunning:longrunning_go_proto", |
||||
"@com_google_cloud_go_longrunning//:go_default_library", |
||||
"@com_google_cloud_go_longrunning//autogen:go_default_library", |
||||
"@io_bazel_rules_go//proto/wkt:duration_go_proto", |
||||
"@io_bazel_rules_go//proto/wkt:struct_go_proto", |
||||
], |
||||
) |
||||
|
||||
go_test( |
||||
name = "discoveryengine_go_gapic_test", |
||||
srcs = [":discoveryengine_go_gapic_srcjar_test"], |
||||
embed = [":discoveryengine_go_gapic"], |
||||
importpath = "cloud.google.com/go/discoveryengine/apiv1", |
||||
) |
||||
|
||||
# Open Source Packages |
||||
go_gapic_assembly_pkg( |
||||
name = "gapi-cloud-discoveryengine-v1-go", |
||||
deps = [ |
||||
":discoveryengine_go_gapic", |
||||
":discoveryengine_go_gapic_srcjar-test.srcjar", |
||||
":discoveryengine_go_gapic_srcjar-metadata.srcjar", |
||||
":discoveryengine_go_gapic_srcjar-snippets.srcjar", |
||||
":discoveryengine_go_proto", |
||||
], |
||||
) |
||||
|
||||
############################################################################## |
||||
# Python |
||||
############################################################################## |
||||
load( |
||||
"@com_google_googleapis_imports//:imports.bzl", |
||||
"py_gapic_assembly_pkg", |
||||
"py_gapic_library", |
||||
"py_test", |
||||
) |
||||
|
||||
py_gapic_library( |
||||
name = "discoveryengine_py_gapic", |
||||
srcs = [":discoveryengine_proto"], |
||||
grpc_service_config = "discoveryengine_grpc_service_config.json", |
||||
rest_numeric_enums = True, |
||||
service_yaml = "discoveryengine_v1.yaml", |
||||
transport = "grpc+rest", |
||||
deps = [], |
||||
) |
||||
|
||||
py_test( |
||||
name = "discoveryengine_py_gapic_test", |
||||
srcs = [ |
||||
"discoveryengine_py_gapic_pytest.py", |
||||
"discoveryengine_py_gapic_test.py", |
||||
], |
||||
legacy_create_init = False, |
||||
deps = [":discoveryengine_py_gapic"], |
||||
) |
||||
|
||||
# Open Source Packages |
||||
py_gapic_assembly_pkg( |
||||
name = "discoveryengine-v1-py", |
||||
deps = [ |
||||
":discoveryengine_py_gapic", |
||||
], |
||||
) |
||||
|
||||
############################################################################## |
||||
# PHP |
||||
############################################################################## |
||||
load( |
||||
"@com_google_googleapis_imports//:imports.bzl", |
||||
"php_gapic_assembly_pkg", |
||||
"php_gapic_library", |
||||
"php_grpc_library", |
||||
"php_proto_library", |
||||
) |
||||
|
||||
php_proto_library( |
||||
name = "discoveryengine_php_proto", |
||||
deps = [":discoveryengine_proto"], |
||||
) |
||||
|
||||
php_grpc_library( |
||||
name = "discoveryengine_php_grpc", |
||||
srcs = [":discoveryengine_proto"], |
||||
deps = [":discoveryengine_php_proto"], |
||||
) |
||||
|
||||
php_gapic_library( |
||||
name = "discoveryengine_php_gapic", |
||||
srcs = [":discoveryengine_proto_with_info"], |
||||
grpc_service_config = "discoveryengine_grpc_service_config.json", |
||||
rest_numeric_enums = True, |
||||
migration_mode = "NEW_SURFACE_ONLY", |
||||
service_yaml = "discoveryengine_v1.yaml", |
||||
transport = "grpc+rest", |
||||
deps = [ |
||||
":discoveryengine_php_grpc", |
||||
":discoveryengine_php_proto", |
||||
], |
||||
) |
||||
|
||||
# Open Source Packages |
||||
php_gapic_assembly_pkg( |
||||
name = "google-cloud-discoveryengine-v1-php", |
||||
deps = [ |
||||
":discoveryengine_php_gapic", |
||||
":discoveryengine_php_grpc", |
||||
":discoveryengine_php_proto", |
||||
], |
||||
) |
||||
|
||||
############################################################################## |
||||
# Node.js |
||||
############################################################################## |
||||
load( |
||||
"@com_google_googleapis_imports//:imports.bzl", |
||||
"nodejs_gapic_assembly_pkg", |
||||
"nodejs_gapic_library", |
||||
) |
||||
|
||||
nodejs_gapic_library( |
||||
name = "discoveryengine_nodejs_gapic", |
||||
package_name = "@google-cloud/discoveryengine", |
||||
src = ":discoveryengine_proto_with_info", |
||||
extra_protoc_parameters = ["metadata"], |
||||
grpc_service_config = "discoveryengine_grpc_service_config.json", |
||||
package = "google.cloud.discoveryengine.v1", |
||||
rest_numeric_enums = True, |
||||
service_yaml = "discoveryengine_v1.yaml", |
||||
transport = "grpc+rest", |
||||
deps = [], |
||||
) |
||||
|
||||
nodejs_gapic_assembly_pkg( |
||||
name = "discoveryengine-v1-nodejs", |
||||
deps = [ |
||||
":discoveryengine_nodejs_gapic", |
||||
":discoveryengine_proto", |
||||
], |
||||
) |
||||
|
||||
############################################################################## |
||||
# Ruby |
||||
############################################################################## |
||||
load( |
||||
"@com_google_googleapis_imports//:imports.bzl", |
||||
"ruby_gapic_assembly_pkg", |
||||
"ruby_cloud_gapic_library", |
||||
"ruby_grpc_library", |
||||
"ruby_proto_library", |
||||
) |
||||
|
||||
ruby_proto_library( |
||||
name = "discoveryengine_ruby_proto", |
||||
deps = [":discoveryengine_proto"], |
||||
) |
||||
|
||||
ruby_grpc_library( |
||||
name = "discoveryengine_ruby_grpc", |
||||
srcs = [":discoveryengine_proto"], |
||||
deps = [":discoveryengine_ruby_proto"], |
||||
) |
||||
|
||||
ruby_cloud_gapic_library( |
||||
name = "discoveryengine_ruby_gapic", |
||||
srcs = [":discoveryengine_proto_with_info"], |
||||
extra_protoc_parameters = [ |
||||
"ruby-cloud-gem-name=google-cloud-discoveryengine-v1", |
||||
], |
||||
grpc_service_config = "discoveryengine_grpc_service_config.json", |
||||
rest_numeric_enums = True, |
||||
service_yaml = "discoveryengine_v1.yaml", |
||||
transport = "grpc+rest", |
||||
deps = [ |
||||
":discoveryengine_ruby_grpc", |
||||
":discoveryengine_ruby_proto", |
||||
], |
||||
) |
||||
|
||||
# Open Source Packages |
||||
ruby_gapic_assembly_pkg( |
||||
name = "google-cloud-discoveryengine-v1-ruby", |
||||
deps = [ |
||||
":discoveryengine_ruby_gapic", |
||||
":discoveryengine_ruby_grpc", |
||||
":discoveryengine_ruby_proto", |
||||
], |
||||
) |
||||
|
||||
############################################################################## |
||||
# C# |
||||
############################################################################## |
||||
load( |
||||
"@com_google_googleapis_imports//:imports.bzl", |
||||
"csharp_gapic_assembly_pkg", |
||||
"csharp_gapic_library", |
||||
"csharp_grpc_library", |
||||
"csharp_proto_library", |
||||
) |
||||
|
||||
csharp_proto_library( |
||||
name = "discoveryengine_csharp_proto", |
||||
deps = [":discoveryengine_proto"], |
||||
) |
||||
|
||||
csharp_grpc_library( |
||||
name = "discoveryengine_csharp_grpc", |
||||
srcs = [":discoveryengine_proto"], |
||||
deps = [":discoveryengine_csharp_proto"], |
||||
) |
||||
|
||||
csharp_gapic_library( |
||||
name = "discoveryengine_csharp_gapic", |
||||
srcs = [":discoveryengine_proto_with_info"], |
||||
common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", |
||||
grpc_service_config = "discoveryengine_grpc_service_config.json", |
||||
rest_numeric_enums = True, |
||||
service_yaml = "discoveryengine_v1.yaml", |
||||
deps = [ |
||||
":discoveryengine_csharp_grpc", |
||||
":discoveryengine_csharp_proto", |
||||
], |
||||
) |
||||
|
||||
# Open Source Packages |
||||
csharp_gapic_assembly_pkg( |
||||
name = "google-cloud-discoveryengine-v1-csharp", |
||||
deps = [ |
||||
":discoveryengine_csharp_gapic", |
||||
":discoveryengine_csharp_grpc", |
||||
":discoveryengine_csharp_proto", |
||||
], |
||||
) |
||||
|
||||
############################################################################## |
||||
# C++ |
||||
############################################################################## |
||||
load( |
||||
"@com_google_googleapis_imports//:imports.bzl", |
||||
"cc_grpc_library", |
||||
"cc_proto_library", |
||||
) |
||||
|
||||
cc_proto_library( |
||||
name = "discoveryengine_cc_proto", |
||||
deps = [":discoveryengine_proto"], |
||||
) |
||||
|
||||
cc_grpc_library( |
||||
name = "discoveryengine_cc_grpc", |
||||
srcs = [":discoveryengine_proto"], |
||||
grpc_only = True, |
||||
deps = [":discoveryengine_cc_proto"], |
||||
) |
@ -0,0 +1,100 @@ |
||||
// Copyright 2022 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.v1; |
||||
|
||||
import "google/api/resource.proto"; |
||||
|
||||
option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1"; |
||||
option go_package = "cloud.google.com/go/discoveryengine/apiv1/discoveryenginepb;discoveryenginepb"; |
||||
option java_multiple_files = true; |
||||
option java_outer_classname = "CommonProto"; |
||||
option java_package = "com.google.cloud.discoveryengine.v1"; |
||||
option objc_class_prefix = "DISCOVERYENGINE"; |
||||
option php_namespace = "Google\\Cloud\\DiscoveryEngine\\V1"; |
||||
option ruby_package = "Google::Cloud::DiscoveryEngine::V1"; |
||||
option (google.api.resource_definition) = { |
||||
type: "discoveryengine.googleapis.com/Branch" |
||||
pattern: "projects/{project}/locations/{location}/dataStores/{data_store}/branches/{branch}" |
||||
pattern: "projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}/branches/{branch}" |
||||
}; |
||||
option (google.api.resource_definition) = { |
||||
type: "discoveryengine.googleapis.com/DataStore" |
||||
pattern: "projects/{project}/locations/{location}/dataStores/{data_store}" |
||||
pattern: "projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}" |
||||
}; |
||||
option (google.api.resource_definition) = { |
||||
type: "discoveryengine.googleapis.com/ServingConfig" |
||||
pattern: "projects/{project}/locations/{location}/dataStores/{data_store}/servingConfigs/{serving_config}" |
||||
pattern: "projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}/servingConfigs/{serving_config}" |
||||
}; |
||||
|
||||
// A custom attribute that is not explicitly modeled in a resource, e.g. |
||||
// [UserEvent][google.cloud.discoveryengine.v1.UserEvent]. |
||||
message CustomAttribute { |
||||
// The textual values of this custom attribute. For example, `["yellow", |
||||
// "green"]` when the key is "color". |
||||
// |
||||
// Empty string is not allowed. Otherwise, an `INVALID_ARGUMENT` error is |
||||
// returned. |
||||
// |
||||
// Exactly one of |
||||
// [CustomAttribute.text][google.cloud.discoveryengine.v1.CustomAttribute.text] |
||||
// or |
||||
// [CustomAttribute.numbers][google.cloud.discoveryengine.v1.CustomAttribute.numbers] |
||||
// should be set. Otherwise, an `INVALID_ARGUMENT` error is returned. |
||||
repeated string text = 1; |
||||
|
||||
// The numerical values of this custom attribute. For example, `[2.3, 15.4]` |
||||
// when the key is "lengths_cm". |
||||
// |
||||
// Exactly one of |
||||
// [CustomAttribute.text][google.cloud.discoveryengine.v1.CustomAttribute.text] |
||||
// or |
||||
// [CustomAttribute.numbers][google.cloud.discoveryengine.v1.CustomAttribute.numbers] |
||||
// should be set. Otherwise, an `INVALID_ARGUMENT` error is returned. |
||||
repeated double numbers = 2; |
||||
} |
||||
|
||||
// Information of an end user. |
||||
message UserInfo { |
||||
// Highly recommended for logged-in users. Unique identifier for logged-in |
||||
// user, such as a user name. Don't set for anonymous users. |
||||
// |
||||
// Always use a hashed value for this ID. |
||||
// |
||||
// Don't set the field to the same fixed ID for different users. This mixes |
||||
// the event history of those users together, which results in degraded |
||||
// model quality. |
||||
// |
||||
// The field must be a UTF-8 encoded string with a length limit of 128 |
||||
// characters. Otherwise, an `INVALID_ARGUMENT` error is returned. |
||||
string user_id = 1; |
||||
|
||||
// User agent as included in the HTTP header. Required for getting |
||||
// [SearchResponse.sponsored_results][]. |
||||
// |
||||
// The field must be a UTF-8 encoded string with a length limit of 1,000 |
||||
// characters. Otherwise, an `INVALID_ARGUMENT` error is returned. |
||||
// |
||||
// This should not be set when using the client side event reporting with |
||||
// GTM or JavaScript tag in |
||||
// [UserEventService.CollectUserEvent][google.cloud.discoveryengine.v1.UserEventService.CollectUserEvent] |
||||
// or if |
||||
// [UserEvent.direct_user_request][google.cloud.discoveryengine.v1.UserEvent.direct_user_request] |
||||
// is set. |
||||
string user_agent = 2; |
||||
} |
@ -0,0 +1,116 @@ |
||||
// Copyright 2022 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.v1; |
||||
|
||||
import "google/api/annotations.proto"; |
||||
import "google/api/client.proto"; |
||||
import "google/api/field_behavior.proto"; |
||||
import "google/api/resource.proto"; |
||||
|
||||
option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1"; |
||||
option go_package = "cloud.google.com/go/discoveryengine/apiv1/discoveryenginepb;discoveryenginepb"; |
||||
option java_multiple_files = true; |
||||
option java_outer_classname = "CompletionServiceProto"; |
||||
option java_package = "com.google.cloud.discoveryengine.v1"; |
||||
option objc_class_prefix = "DISCOVERYENGINE"; |
||||
option php_namespace = "Google\\Cloud\\DiscoveryEngine\\V1"; |
||||
option ruby_package = "Google::Cloud::DiscoveryEngine::V1"; |
||||
|
||||
// Service for Auto-Completion. |
||||
service CompletionService { |
||||
option (google.api.default_host) = "discoveryengine.googleapis.com"; |
||||
option (google.api.oauth_scopes) = |
||||
"https://www.googleapis.com/auth/cloud-platform"; |
||||
|
||||
// Completes the specified user input with keyword suggestions. |
||||
rpc CompleteQuery(CompleteQueryRequest) returns (CompleteQueryResponse) { |
||||
option (google.api.http) = { |
||||
get: "/v1/{data_store=projects/*/locations/*/dataStores/*}:completeQuery" |
||||
additional_bindings { |
||||
get: "/v1/{data_store=projects/*/locations/*/collections/*/dataStores/*}:completeQuery" |
||||
} |
||||
}; |
||||
} |
||||
} |
||||
|
||||
// Request message for |
||||
// [CompletionService.CompleteQuery][google.cloud.discoveryengine.v1.CompletionService.CompleteQuery] |
||||
// method. |
||||
message CompleteQueryRequest { |
||||
// Required. The parent data store resource name for which the completion is |
||||
// performed, such as |
||||
// `projects/*/locations/global/collections/default_collection/dataStores/default_data_store`. |
||||
string data_store = 1 [ |
||||
(google.api.field_behavior) = REQUIRED, |
||||
(google.api.resource_reference) = { |
||||
type: "discoveryengine.googleapis.com/DataStore" |
||||
} |
||||
]; |
||||
|
||||
// Required. The typeahead input used to fetch suggestions. Maximum length is |
||||
// 128 characters. |
||||
string query = 2 [(google.api.field_behavior) = REQUIRED]; |
||||
|
||||
// Selects data model of query suggestions for serving. Currently supported |
||||
// values: |
||||
// |
||||
// * `document` - Using suggestions generated from user-imported documents. |
||||
// * `search-history` - Using suggestions generated from the past history of |
||||
// [SearchService.Search][google.cloud.discoveryengine.v1.SearchService.Search] |
||||
// API calls. Do not use it when there is no traffic for Search API. |
||||
// * `user-event` - Using suggestions generated from user-imported search |
||||
// events. |
||||
// |
||||
// Default values: |
||||
// |
||||
// * `document` is the default model for regular dataStores. |
||||
// * `search-history` is the default model for |
||||
// [IndustryVertical.SITE_SEARCH][google.cloud.discoveryengine.v1.IndustryVertical.SITE_SEARCH] |
||||
// dataStores. |
||||
string query_model = 3; |
||||
|
||||
// A unique identifier for tracking visitors. For example, this could be |
||||
// implemented with an HTTP cookie, which should be able to uniquely identify |
||||
// a visitor on a single device. This unique identifier should not change if |
||||
// the visitor logs in or out of the website. |
||||
// |
||||
// This field should NOT have a fixed value such as `unknown_visitor`. |
||||
// |
||||
// This should be the same identifier as |
||||
// [UserEvent.user_pseudo_id][google.cloud.discoveryengine.v1.UserEvent.user_pseudo_id] |
||||
// and |
||||
// [SearchRequest.user_pseudo_id][google.cloud.discoveryengine.v1.SearchRequest.user_pseudo_id]. |
||||
// |
||||
// The field must be a UTF-8 encoded string with a length limit of 128 |
||||
// characters. Otherwise, an `INVALID_ARGUMENT` error is returned. |
||||
string user_pseudo_id = 4; |
||||
} |
||||
|
||||
// Response message for |
||||
// [CompletionService.CompleteQuery][google.cloud.discoveryengine.v1.CompletionService.CompleteQuery] |
||||
// method. |
||||
message CompleteQueryResponse { |
||||
// Suggestions as search queries. |
||||
message QuerySuggestion { |
||||
// The suggestion for the query. |
||||
string suggestion = 1; |
||||
} |
||||
|
||||
// Results of the matched query suggestions. The result list is ordered and |
||||
// the first result is a top suggestion. |
||||
repeated QuerySuggestion query_suggestions = 1; |
||||
} |
@ -0,0 +1,55 @@ |
||||
{ |
||||
"methodConfig": [ |
||||
{ |
||||
"name": [ |
||||
{ "service": "google.cloud.discoveryengine.v1.CompletionService" }, |
||||
{ "service": "google.cloud.discoveryengine.v1.SearchService" } |
||||
], |
||||
"timeout": "5s", |
||||
"retryPolicy": { |
||||
"initialBackoff": "0.100s", |
||||
"maxBackoff": "5s", |
||||
"backoffMultiplier": 1.3, |
||||
"retryableStatusCodes": ["UNAVAILABLE"] |
||||
} |
||||
}, |
||||
{ |
||||
"name": [ |
||||
{ "service": "google.cloud.discoveryengine.v1.DocumentService" }, |
||||
{ "service": "google.cloud.discoveryengine.v1.SchemaService" }, |
||||
{ "service": "google.cloud.discoveryengine.v1.UserEventService" }, |
||||
{ "service": "google.longrunning.Operations"} |
||||
], |
||||
"timeout": "30s", |
||||
"retryPolicy": { |
||||
"initialBackoff": "1s", |
||||
"maxBackoff": "10s", |
||||
"backoffMultiplier": 1.3, |
||||
"retryableStatusCodes": ["UNAVAILABLE"] |
||||
} |
||||
}, |
||||
{ |
||||
"name": [ |
||||
{ |
||||
"service": "google.cloud.discoveryengine.v1.DocumentService", |
||||
"method": "ImportDocuments" |
||||
}, |
||||
{ |
||||
"service": "google.cloud.discoveryengine.v1.UserEventService", |
||||
"method": "ImportUserEvents" |
||||
}, |
||||
{ |
||||
"service": "google.longrunning.Operations", |
||||
"method": "ListOperations" |
||||
} |
||||
], |
||||
"timeout": "300s", |
||||
"retryPolicy": { |
||||
"initialBackoff": "1s", |
||||
"maxBackoff": "30s", |
||||
"backoffMultiplier": 1.3, |
||||
"retryableStatusCodes": ["UNAVAILABLE"] |
||||
} |
||||
} |
||||
] |
||||
} |
@ -0,0 +1,186 @@ |
||||
type: google.api.Service |
||||
config_version: 3 |
||||
name: discoveryengine.googleapis.com |
||||
title: Discovery Engine API |
||||
|
||||
apis: |
||||
- name: google.cloud.discoveryengine.v1.CompletionService |
||||
- name: google.cloud.discoveryengine.v1.DocumentService |
||||
- name: google.cloud.discoveryengine.v1.SchemaService |
||||
- name: google.cloud.discoveryengine.v1.SearchService |
||||
- name: google.cloud.discoveryengine.v1.UserEventService |
||||
- name: google.longrunning.Operations |
||||
|
||||
types: |
||||
- name: google.cloud.discoveryengine.v1.CreateSchemaMetadata |
||||
- name: google.cloud.discoveryengine.v1.DeleteSchemaMetadata |
||||
- name: google.cloud.discoveryengine.v1.ImportDocumentsMetadata |
||||
- name: google.cloud.discoveryengine.v1.ImportDocumentsResponse |
||||
- name: google.cloud.discoveryengine.v1.ImportUserEventsMetadata |
||||
- name: google.cloud.discoveryengine.v1.ImportUserEventsResponse |
||||
- name: google.cloud.discoveryengine.v1.PurgeDocumentsMetadata |
||||
- name: google.cloud.discoveryengine.v1.PurgeDocumentsResponse |
||||
- name: google.cloud.discoveryengine.v1.Schema |
||||
- name: google.cloud.discoveryengine.v1.UpdateSchemaMetadata |
||||
|
||||
documentation: |
||||
summary: Discovery Engine API. |
||||
|
||||
backend: |
||||
rules: |
||||
- selector: 'google.cloud.discoveryengine.v1.DocumentService.*' |
||||
deadline: 30.0 |
||||
- selector: google.cloud.discoveryengine.v1.DocumentService.ImportDocuments |
||||
deadline: 300.0 |
||||
- selector: 'google.cloud.discoveryengine.v1.SchemaService.*' |
||||
deadline: 300.0 |
||||
- selector: google.cloud.discoveryengine.v1.SchemaService.GetSchema |
||||
deadline: 30.0 |
||||
- selector: google.cloud.discoveryengine.v1.SchemaService.ListSchemas |
||||
deadline: 30.0 |
||||
- selector: google.cloud.discoveryengine.v1.UserEventService.CollectUserEvent |
||||
deadline: 30.0 |
||||
- selector: google.cloud.discoveryengine.v1.UserEventService.ImportUserEvents |
||||
deadline: 300.0 |
||||
- selector: google.cloud.discoveryengine.v1.UserEventService.WriteUserEvent |
||||
deadline: 30.0 |
||||
- selector: google.longrunning.Operations.ListOperations |
||||
deadline: 300.0 |
||||
|
||||
http: |
||||
rules: |
||||
- selector: google.longrunning.Operations.GetOperation |
||||
get: '/v1/{name=projects/*/operations/*}' |
||||
additional_bindings: |
||||
- get: '/v1/{name=projects/*/locations/*/collections/*/dataStores/*/branches/*/operations/*}' |
||||
- get: '/v1/{name=projects/*/locations/*/collections/*/dataStores/*/models/*/operations/*}' |
||||
- get: '/v1/{name=projects/*/locations/*/collections/*/dataStores/*/operations/*}' |
||||
- get: '/v1/{name=projects/*/locations/*/collections/*/dataStores/*/schemas/*/operations/*}' |
||||
- get: '/v1/{name=projects/*/locations/*/collections/*/operations/*}' |
||||
- get: '/v1/{name=projects/*/locations/*/dataStores/*/branches/*/operations/*}' |
||||
- get: '/v1/{name=projects/*/locations/*/dataStores/*/models/*/operations/*}' |
||||
- get: '/v1/{name=projects/*/locations/*/dataStores/*/operations/*}' |
||||
- get: '/v1/{name=projects/*/locations/*/operations/*}' |
||||
- get: '/v1/{name=projects/*/operations/*}' |
||||
- selector: google.longrunning.Operations.ListOperations |
||||
get: '/v1/{name=projects/*}/operations' |
||||
additional_bindings: |
||||
- get: '/v1/{name=projects/*/locations/*/collections/*/dataStores/*/branches/*}/operations' |
||||
- get: '/v1/{name=projects/*/locations/*/collections/*/dataStores/*/models/*}/operations' |
||||
- get: '/v1/{name=projects/*/locations/*/collections/*/dataStores/*/schemas/*}/operations' |
||||
- get: '/v1/{name=projects/*/locations/*/collections/*/dataStores/*}/operations' |
||||
- get: '/v1/{name=projects/*/locations/*/collections/*}/operations' |
||||
- get: '/v1/{name=projects/*/locations/*/dataStores/*/branches/*}/operations' |
||||
- get: '/v1/{name=projects/*/locations/*/dataStores/*/models/*}/operations' |
||||
- get: '/v1/{name=projects/*/locations/*/dataStores/*}/operations' |
||||
- get: '/v1/{name=projects/*/locations/*}/operations' |
||||
- get: '/v1/{name=projects/*}/operations' |
||||
|
||||
authentication: |
||||
rules: |
||||
- selector: google.cloud.discoveryengine.v1.CompletionService.CompleteQuery |
||||
oauth: |
||||
canonical_scopes: |- |
||||
https://www.googleapis.com/auth/cloud-platform |
||||
- selector: 'google.cloud.discoveryengine.v1.DocumentService.*' |
||||
oauth: |
||||
canonical_scopes: |- |
||||
https://www.googleapis.com/auth/cloud-platform |
||||
- selector: 'google.cloud.discoveryengine.v1.SchemaService.*' |
||||
oauth: |
||||
canonical_scopes: |- |
||||
https://www.googleapis.com/auth/cloud-platform |
||||
- selector: google.cloud.discoveryengine.v1.SearchService.Search |
||||
oauth: |
||||
canonical_scopes: |- |
||||
https://www.googleapis.com/auth/cloud-platform |
||||
- selector: 'google.cloud.discoveryengine.v1.UserEventService.*' |
||||
oauth: |
||||
canonical_scopes: |- |
||||
https://www.googleapis.com/auth/cloud-platform |
||||
- selector: google.longrunning.Operations.GetOperation |
||||
oauth: |
||||
canonical_scopes: |- |
||||
https://www.googleapis.com/auth/cloud-platform |
||||
- selector: google.longrunning.Operations.ListOperations |
||||
oauth: |
||||
canonical_scopes: |- |
||||
https://www.googleapis.com/auth/cloud-platform |
||||
|
||||
publishing: |
||||
new_issue_uri: https://issuetracker.google.com/issues/new?component=911831&template=1480251 |
||||
documentation_uri: https://cloud.google.com/generative-ai-app-builder/docs |
||||
api_short_name: discoveryengine |
||||
github_label: 'api: discoveryengine' |
||||
doc_tag_prefix: discoveryengine |
||||
organization: CLOUD |
||||
library_settings: |
||||
- version: google.cloud.discoveryengine.v1 |
||||
launch_stage: GA |
||||
java_settings: |
||||
common: |
||||
destinations: |
||||
- PACKAGE_MANAGER |
||||
cpp_settings: |
||||
common: |
||||
destinations: |
||||
- PACKAGE_MANAGER |
||||
php_settings: |
||||
common: |
||||
destinations: |
||||
- PACKAGE_MANAGER |
||||
python_settings: |
||||
common: |
||||
destinations: |
||||
- PACKAGE_MANAGER |
||||
node_settings: |
||||
common: |
||||
destinations: |
||||
- PACKAGE_MANAGER |
||||
dotnet_settings: |
||||
common: |
||||
destinations: |
||||
- PACKAGE_MANAGER |
||||
ruby_settings: |
||||
common: |
||||
destinations: |
||||
- PACKAGE_MANAGER |
||||
go_settings: |
||||
common: |
||||
destinations: |
||||
- PACKAGE_MANAGER |
||||
- version: google.cloud.discoveryengine.v1beta |
||||
launch_stage: BETA |
||||
java_settings: |
||||
common: |
||||
destinations: |
||||
- PACKAGE_MANAGER |
||||
cpp_settings: |
||||
common: |
||||
destinations: |
||||
- PACKAGE_MANAGER |
||||
php_settings: |
||||
common: |
||||
destinations: |
||||
- PACKAGE_MANAGER |
||||
python_settings: |
||||
common: |
||||
destinations: |
||||
- PACKAGE_MANAGER |
||||
node_settings: |
||||
common: |
||||
destinations: |
||||
- PACKAGE_MANAGER |
||||
dotnet_settings: |
||||
common: |
||||
destinations: |
||||
- PACKAGE_MANAGER |
||||
ruby_settings: |
||||
common: |
||||
destinations: |
||||
- PACKAGE_MANAGER |
||||
go_settings: |
||||
common: |
||||
destinations: |
||||
- PACKAGE_MANAGER |
||||
proto_reference_documentation_uri: https://cloud.google.com/generative-ai-app-builder/docs/reference/rpc |
@ -0,0 +1,118 @@ |
||||
// Copyright 2022 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.v1; |
||||
|
||||
import "google/api/field_behavior.proto"; |
||||
import "google/api/resource.proto"; |
||||
import "google/protobuf/struct.proto"; |
||||
|
||||
option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1"; |
||||
option go_package = "cloud.google.com/go/discoveryengine/apiv1/discoveryenginepb;discoveryenginepb"; |
||||
option java_multiple_files = true; |
||||
option java_outer_classname = "DocumentProto"; |
||||
option java_package = "com.google.cloud.discoveryengine.v1"; |
||||
option objc_class_prefix = "DISCOVERYENGINE"; |
||||
option php_namespace = "Google\\Cloud\\DiscoveryEngine\\V1"; |
||||
option ruby_package = "Google::Cloud::DiscoveryEngine::V1"; |
||||
|
||||
// Document captures all raw metadata information of items to be recommended or |
||||
// searched. |
||||
message Document { |
||||
option (google.api.resource) = { |
||||
type: "discoveryengine.googleapis.com/Document" |
||||
pattern: "projects/{project}/locations/{location}/dataStores/{data_store}/branches/{branch}/documents/{document}" |
||||
pattern: "projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}/branches/{branch}/documents/{document}" |
||||
}; |
||||
|
||||
// Unstructured data linked to this document. |
||||
message Content { |
||||
oneof content { |
||||
// The content represented as a stream of bytes. The maximum length is |
||||
// 1,000,000 bytes (1 MB / ~0.95 MiB). |
||||
// |
||||
// Note: As with all `bytes` fields, this field is represented as pure |
||||
// binary in Protocol Buffers and base64-encoded string in JSON. For |
||||
// example, `abc123!?$*&()'-=@~` should be represented as |
||||
// `YWJjMTIzIT8kKiYoKSctPUB+` in JSON. See |
||||
// https://developers.google.com/protocol-buffers/docs/proto3#json. |
||||
bytes raw_bytes = 2; |
||||
|
||||
// The URI of the content. Only Cloud Storage URIs (e.g. |
||||
// `gs://bucket-name/path/to/file`) are supported. The maximum file size |
||||
// is 100 MB. |
||||
string uri = 3; |
||||
} |
||||
|
||||
// The MIME type of the content. Supported types: |
||||
// |
||||
// * `application/pdf` (PDF) |
||||
// * `text/html` (HTML) |
||||
// |
||||
// See https://www.iana.org/assignments/media-types/media-types.xhtml. |
||||
string mime_type = 1; |
||||
} |
||||
|
||||
// Data representation. One of |
||||
// [struct_data][google.cloud.discoveryengine.v1.Document.struct_data] or |
||||
// [json_data][google.cloud.discoveryengine.v1.Document.json_data] should be |
||||
// provided otherwise an `INVALID_ARGUMENT` error is thrown. |
||||
oneof data { |
||||
// The structured JSON data for the document. It should conform to the |
||||
// registered [Schema.schema][google.cloud.discoveryengine.v1.Schema.schema] |
||||
// or an `INVALID_ARGUMENT` error is thrown. |
||||
google.protobuf.Struct struct_data = 4; |
||||
|
||||
// The JSON string representation of the document. It should conform to the |
||||
// registered [Schema.schema][google.cloud.discoveryengine.v1.Schema.schema] |
||||
// or an `INVALID_ARGUMENT` error is thrown. |
||||
string json_data = 5; |
||||
} |
||||
|
||||
// Immutable. The full resource name of the document. |
||||
// Format: |
||||
// `projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}/branches/{branch}/documents/{document_id}`. |
||||
// |
||||
// This field must be a UTF-8 encoded string with a length limit of 1024 |
||||
// characters. |
||||
string name = 1 [(google.api.field_behavior) = IMMUTABLE]; |
||||
|
||||
// Immutable. The identifier of the document. |
||||
// |
||||
// Id should conform to [RFC-1034](https://tools.ietf.org/html/rfc1034) |
||||
// standard with a length limit of 63 characters. |
||||
string id = 2 [(google.api.field_behavior) = IMMUTABLE]; |
||||
|
||||
// The identifier of the schema located in the same data store. |
||||
string schema_id = 3; |
||||
|
||||
// The unstructured data linked to this document. Content must be set if this |
||||
// document is under a |
||||
// `CONTENT_REQUIRED` data store. |
||||
Content content = 10; |
||||
|
||||
// The identifier of the parent document. Currently supports at most two level |
||||
// document hierarchy. |
||||
// |
||||
// Id should conform to [RFC-1034](https://tools.ietf.org/html/rfc1034) |
||||
// standard with a length limit of 63 characters. |
||||
string parent_document_id = 7; |
||||
|
||||
// Output only. This field is OUTPUT_ONLY. |
||||
// It contains derived data that are not in the original input document. |
||||
google.protobuf.Struct derived_struct_data = 6 |
||||
[(google.api.field_behavior) = OUTPUT_ONLY]; |
||||
} |
@ -0,0 +1,313 @@ |
||||
// Copyright 2022 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.v1; |
||||
|
||||
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/v1/document.proto"; |
||||
import "google/cloud/discoveryengine/v1/import_config.proto"; |
||||
import "google/cloud/discoveryengine/v1/purge_config.proto"; |
||||
import "google/longrunning/operations.proto"; |
||||
import "google/protobuf/empty.proto"; |
||||
|
||||
option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1"; |
||||
option go_package = "cloud.google.com/go/discoveryengine/apiv1/discoveryenginepb;discoveryenginepb"; |
||||
option java_multiple_files = true; |
||||
option java_outer_classname = "DocumentServiceProto"; |
||||
option java_package = "com.google.cloud.discoveryengine.v1"; |
||||
option objc_class_prefix = "DISCOVERYENGINE"; |
||||
option php_namespace = "Google\\Cloud\\DiscoveryEngine\\V1"; |
||||
option ruby_package = "Google::Cloud::DiscoveryEngine::V1"; |
||||
|
||||
// Service for ingesting [Document][google.cloud.discoveryengine.v1.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.v1.Document]. |
||||
rpc GetDocument(GetDocumentRequest) returns (Document) { |
||||
option (google.api.http) = { |
||||
get: "/v1/{name=projects/*/locations/*/dataStores/*/branches/*/documents/*}" |
||||
additional_bindings { |
||||
get: "/v1/{name=projects/*/locations/*/collections/*/dataStores/*/branches/*/documents/*}" |
||||
} |
||||
}; |
||||
option (google.api.method_signature) = "name"; |
||||
} |
||||
|
||||
// Gets a list of [Document][google.cloud.discoveryengine.v1.Document]s. |
||||
rpc ListDocuments(ListDocumentsRequest) returns (ListDocumentsResponse) { |
||||
option (google.api.http) = { |
||||
get: "/v1/{parent=projects/*/locations/*/dataStores/*/branches/*}/documents" |
||||
additional_bindings { |
||||
get: "/v1/{parent=projects/*/locations/*/collections/*/dataStores/*/branches/*}/documents" |
||||
} |
||||
}; |
||||
option (google.api.method_signature) = "parent"; |
||||
} |
||||
|
||||
// Creates a [Document][google.cloud.discoveryengine.v1.Document]. |
||||
rpc CreateDocument(CreateDocumentRequest) returns (Document) { |
||||
option (google.api.http) = { |
||||
post: "/v1/{parent=projects/*/locations/*/dataStores/*/branches/*}/documents" |
||||
body: "document" |
||||
additional_bindings { |
||||
post: "/v1/{parent=projects/*/locations/*/collections/*/dataStores/*/branches/*}/documents" |
||||
body: "document" |
||||
} |
||||
}; |
||||
option (google.api.method_signature) = "parent,document,document_id"; |
||||
} |
||||
|
||||
// Updates a [Document][google.cloud.discoveryengine.v1.Document]. |
||||
rpc UpdateDocument(UpdateDocumentRequest) returns (Document) { |
||||
option (google.api.http) = { |
||||
patch: "/v1/{document.name=projects/*/locations/*/dataStores/*/branches/*/documents/*}" |
||||
body: "document" |
||||
additional_bindings { |
||||
patch: "/v1/{document.name=projects/*/locations/*/collections/*/dataStores/*/branches/*/documents/*}" |
||||
body: "document" |
||||
} |
||||
}; |
||||
} |
||||
|
||||
// Deletes a [Document][google.cloud.discoveryengine.v1.Document]. |
||||
rpc DeleteDocument(DeleteDocumentRequest) returns (google.protobuf.Empty) { |
||||
option (google.api.http) = { |
||||
delete: "/v1/{name=projects/*/locations/*/dataStores/*/branches/*/documents/*}" |
||||
additional_bindings { |
||||
delete: "/v1/{name=projects/*/locations/*/collections/*/dataStores/*/branches/*/documents/*}" |
||||
} |
||||
}; |
||||
option (google.api.method_signature) = "name"; |
||||
} |
||||
|
||||
// Bulk import of multiple |
||||
// [Document][google.cloud.discoveryengine.v1.Document]s. Request processing |
||||
// may be synchronous. Non-existing items will be created. |
||||
// |
||||
// Note: It is possible for a subset of the |
||||
// [Document][google.cloud.discoveryengine.v1.Document]s to be successfully |
||||
// updated. |
||||
rpc ImportDocuments(ImportDocumentsRequest) |
||||
returns (google.longrunning.Operation) { |
||||
option (google.api.http) = { |
||||
post: "/v1/{parent=projects/*/locations/*/dataStores/*/branches/*}/documents:import" |
||||
body: "*" |
||||
additional_bindings { |
||||
post: "/v1/{parent=projects/*/locations/*/collections/*/dataStores/*/branches/*}/documents:import" |
||||
body: "*" |
||||
} |
||||
}; |
||||
option (google.longrunning.operation_info) = { |
||||
response_type: "google.cloud.discoveryengine.v1.ImportDocumentsResponse" |
||||
metadata_type: "google.cloud.discoveryengine.v1.ImportDocumentsMetadata" |
||||
}; |
||||
} |
||||
|
||||
// Permanently deletes all selected |
||||
// [Document][google.cloud.discoveryengine.v1.Document]s in a branch. |
||||
// |
||||
// This process is asynchronous. Depending on the number of |
||||
// [Document][google.cloud.discoveryengine.v1.Document]s to be deleted, this |
||||
// operation can take hours to complete. Before the delete operation |
||||
// completes, some [Document][google.cloud.discoveryengine.v1.Document]s might |
||||
// still be returned by |
||||
// [DocumentService.GetDocument][google.cloud.discoveryengine.v1.DocumentService.GetDocument] |
||||
// or |
||||
// [DocumentService.ListDocuments][google.cloud.discoveryengine.v1.DocumentService.ListDocuments]. |
||||
// |
||||
// To get a list of the [Document][google.cloud.discoveryengine.v1.Document]s |
||||
// to be deleted, set |
||||
// [PurgeDocumentsRequest.force][google.cloud.discoveryengine.v1.PurgeDocumentsRequest.force] |
||||
// to false. |
||||
rpc PurgeDocuments(PurgeDocumentsRequest) |
||||
returns (google.longrunning.Operation) { |
||||
option (google.api.http) = { |
||||
post: "/v1/{parent=projects/*/locations/*/dataStores/*/branches/*}/documents:purge" |
||||
body: "*" |
||||
additional_bindings { |
||||
post: "/v1/{parent=projects/*/locations/*/collections/*/dataStores/*/branches/*}/documents:purge" |
||||
body: "*" |
||||
} |
||||
}; |
||||
option (google.longrunning.operation_info) = { |
||||
response_type: "google.cloud.discoveryengine.v1.PurgeDocumentsResponse" |
||||
metadata_type: "google.cloud.discoveryengine.v1.PurgeDocumentsMetadata" |
||||
}; |
||||
} |
||||
} |
||||
|
||||
// Request message for |
||||
// [DocumentService.GetDocument][google.cloud.discoveryengine.v1.DocumentService.GetDocument] |
||||
// method. |
||||
message GetDocumentRequest { |
||||
// Required. Full resource name of |
||||
// [Document][google.cloud.discoveryengine.v1.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.v1.Document], regardless of whether |
||||
// or not it exists, a `PERMISSION_DENIED` error is returned. |
||||
// |
||||
// If the requested [Document][google.cloud.discoveryengine.v1.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.v1.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 [Documents][]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.v1.Document]s to |
||||
// return. If unspecified, defaults to 100. The maximum allowed value is 1000. |
||||
// Values above 1000 will be coerced 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.v1.ListDocumentsResponse.next_page_token], |
||||
// received from a previous |
||||
// [DocumentService.ListDocuments][google.cloud.discoveryengine.v1.DocumentService.ListDocuments] |
||||
// call. Provide this to retrieve the subsequent page. |
||||
// |
||||
// When paginating, all other parameters provided to |
||||
// [DocumentService.ListDocuments][google.cloud.discoveryengine.v1.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.v1.DocumentService.ListDocuments] |
||||
// method. |
||||
message ListDocumentsResponse { |
||||
// The [Document][google.cloud.discoveryengine.v1.Document]s. |
||||
repeated Document documents = 1; |
||||
|
||||
// A token that can be sent as |
||||
// [ListDocumentsRequest.page_token][google.cloud.discoveryengine.v1.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.v1.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.v1.Document] to |
||||
// create. |
||||
Document document = 2 [(google.api.field_behavior) = REQUIRED]; |
||||
|
||||
// Required. The ID to use for the |
||||
// [Document][google.cloud.discoveryengine.v1.Document], which will become the |
||||
// final component of the |
||||
// [Document.name][google.cloud.discoveryengine.v1.Document.name]. |
||||
// |
||||
// If the caller does not have permission to create the |
||||
// [Document][google.cloud.discoveryengine.v1.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.v1.Document]s with the same |
||||
// [parent][google.cloud.discoveryengine.v1.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.v1.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.v1.Document], regardless of whether |
||||
// or not it exists, a `PERMISSION_DENIED` error is returned. |
||||
// |
||||
// If the [Document][google.cloud.discoveryengine.v1.Document] to update does |
||||
// not exist and |
||||
// [allow_missing][google.cloud.discoveryengine.v1.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.v1.Document] is not found, a new |
||||
// [Document][google.cloud.discoveryengine.v1.Document] will be created. |
||||
bool allow_missing = 2; |
||||
} |
||||
|
||||
// Request message for |
||||
// [DocumentService.DeleteDocument][google.cloud.discoveryengine.v1.DocumentService.DeleteDocument] |
||||
// method. |
||||
message DeleteDocumentRequest { |
||||
// Required. Full resource name of |
||||
// [Document][google.cloud.discoveryengine.v1.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.v1.Document], regardless of whether |
||||
// or not it exists, a `PERMISSION_DENIED` error is returned. |
||||
// |
||||
// If the [Document][google.cloud.discoveryengine.v1.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" |
||||
} |
||||
]; |
||||
} |
@ -0,0 +1,334 @@ |
||||
// Copyright 2022 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.v1; |
||||
|
||||
import "google/api/field_behavior.proto"; |
||||
import "google/api/resource.proto"; |
||||
import "google/cloud/discoveryengine/v1/document.proto"; |
||||
import "google/cloud/discoveryengine/v1/user_event.proto"; |
||||
import "google/protobuf/timestamp.proto"; |
||||
import "google/rpc/status.proto"; |
||||
import "google/type/date.proto"; |
||||
|
||||
option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1"; |
||||
option go_package = "cloud.google.com/go/discoveryengine/apiv1/discoveryenginepb;discoveryenginepb"; |
||||
option java_multiple_files = true; |
||||
option java_outer_classname = "ImportConfigProto"; |
||||
option java_package = "com.google.cloud.discoveryengine.v1"; |
||||
option objc_class_prefix = "DISCOVERYENGINE"; |
||||
option php_namespace = "Google\\Cloud\\DiscoveryEngine\\V1"; |
||||
option ruby_package = "Google::Cloud::DiscoveryEngine::V1"; |
||||
|
||||
// Cloud Storage location for input content. |
||||
message GcsSource { |
||||
// Required. Cloud Storage URIs to input files. URI can be up to |
||||
// 2000 characters long. URIs can match the full object path (for example, |
||||
// `gs://bucket/directory/object.json`) or a pattern matching one or more |
||||
// files, such as `gs://bucket/directory/*.json`. |
||||
// |
||||
// A request can contain at most 100 files (or 100,000 files if `data_schema` |
||||
// is `content`). Each file can be up to 2 GB (or 100 MB if `data_schema` is |
||||
// `content`). |
||||
repeated string input_uris = 1 [(google.api.field_behavior) = REQUIRED]; |
||||
|
||||
// The schema to use when parsing the data from the source. |
||||
// |
||||
// Supported values for document imports: |
||||
// |
||||
// * `document` (default): One JSON |
||||
// [Document][google.cloud.discoveryengine.v1.Document] per line. Each |
||||
// document must |
||||
// have a valid [Document.id][google.cloud.discoveryengine.v1.Document.id]. |
||||
// * `content`: Unstructured data (e.g. PDF, HTML). Each file matched by |
||||
// `input_uris` will become a document, with the ID set to the first 128 |
||||
// bits of SHA256(URI) encoded as a hex string. |
||||
// * `custom`: One custom data JSON per row in arbitrary format that conforms |
||||
// the defined [Schema][google.cloud.discoveryengine.v1.Schema] of the data |
||||
// store. This can only be used by the GENERIC Data Store vertical. |
||||
// |
||||
// Supported values for user even imports: |
||||
// |
||||
// * `user_event` (default): One JSON |
||||
// [UserEvent][google.cloud.discoveryengine.v1.UserEvent] per line. |
||||
string data_schema = 2; |
||||
} |
||||
|
||||
// BigQuery source import data from. |
||||
message BigQuerySource { |
||||
// BigQuery table partition info. Leave this empty if the BigQuery table |
||||
// is not partitioned. |
||||
oneof partition { |
||||
// BigQuery time partitioned table's _PARTITIONDATE in YYYY-MM-DD format. |
||||
google.type.Date partition_date = 5; |
||||
} |
||||
|
||||
// The project ID (can be project # or ID) that the BigQuery source is in with |
||||
// a length limit of 128 characters. If not specified, inherits the project |
||||
// ID from the parent request. |
||||
string project_id = 1; |
||||
|
||||
// Required. The BigQuery data set to copy the data from with a length limit |
||||
// of 1,024 characters. |
||||
string dataset_id = 2 [(google.api.field_behavior) = REQUIRED]; |
||||
|
||||
// Required. The BigQuery table to copy the data from with a length limit of |
||||
// 1,024 characters. |
||||
string table_id = 3 [(google.api.field_behavior) = REQUIRED]; |
||||
|
||||
// Intermediate Cloud Storage directory used for the import with a length |
||||
// limit of 2,000 characters. Can be specified if one wants to have the |
||||
// BigQuery export to a specific Cloud Storage directory. |
||||
string gcs_staging_dir = 4; |
||||
|
||||
// The schema to use when parsing the data from the source. |
||||
// |
||||
// Supported values for user event imports: |
||||
// |
||||
// * `user_event` (default): One |
||||
// [UserEvent][google.cloud.discoveryengine.v1.UserEvent] per row. |
||||
// |
||||
// Supported values for document imports: |
||||
// |
||||
// * `document` (default): One |
||||
// [Document][google.cloud.discoveryengine.v1.Document] format per |
||||
// row. Each document must have a valid |
||||
// [Document.id][google.cloud.discoveryengine.v1.Document.id] and one of |
||||
// [Document.json_data][google.cloud.discoveryengine.v1.Document.json_data] |
||||
// or |
||||
// [Document.struct_data][google.cloud.discoveryengine.v1.Document.struct_data]. |
||||
// * `custom`: One custom data per row in arbitrary format that conforms the |
||||
// defined [Schema][google.cloud.discoveryengine.v1.Schema] of the data |
||||
// store. This can only be used by the GENERIC Data Store vertical. |
||||
string data_schema = 6; |
||||
} |
||||
|
||||
// Configuration of destination for Import related errors. |
||||
message ImportErrorConfig { |
||||
// Required. Errors destination. |
||||
oneof destination { |
||||
// Cloud Storage prefix for import errors. This must be an empty, |
||||
// existing Cloud Storage directory. Import errors will be written to |
||||
// sharded files in this directory, one per line, as a JSON-encoded |
||||
// `google.rpc.Status` message. |
||||
string gcs_prefix = 1; |
||||
} |
||||
} |
||||
|
||||
// Request message for the ImportUserEvents request. |
||||
message ImportUserEventsRequest { |
||||
// The inline source for the input config for ImportUserEvents method. |
||||
message InlineSource { |
||||
// Required. A list of user events to import. Recommended max of 10k items. |
||||
repeated UserEvent user_events = 1 [(google.api.field_behavior) = REQUIRED]; |
||||
} |
||||
|
||||
// The desired input source of the user event data. |
||||
oneof source { |
||||
// Required. The Inline source for the input content for UserEvents. |
||||
InlineSource inline_source = 2 [(google.api.field_behavior) = REQUIRED]; |
||||
|
||||
// Required. Cloud Storage location for the input content. |
||||
GcsSource gcs_source = 3 [(google.api.field_behavior) = REQUIRED]; |
||||
|
||||
// Required. BigQuery input source. |
||||
BigQuerySource bigquery_source = 4 [(google.api.field_behavior) = REQUIRED]; |
||||
} |
||||
|
||||
// Required. Parent DataStore resource name, of the form |
||||
// `projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}` |
||||
string parent = 1 [ |
||||
(google.api.field_behavior) = REQUIRED, |
||||
(google.api.resource_reference) = { |
||||
type: "discoveryengine.googleapis.com/DataStore" |
||||
} |
||||
]; |
||||
|
||||
// The desired location of errors incurred during the Import. Cannot be set |
||||
// for inline user event imports. |
||||
ImportErrorConfig error_config = 5; |
||||
} |
||||
|
||||
// Response of the ImportUserEventsRequest. If the long running |
||||
// operation was successful, then this message is returned by the |
||||
// google.longrunning.Operations.response field if the operation was successful. |
||||
message ImportUserEventsResponse { |
||||
// A sample of errors encountered while processing the request. |
||||
repeated google.rpc.Status error_samples = 1; |
||||
|
||||
// Echoes the destination for the complete errors if this field was set in |
||||
// the request. |
||||
ImportErrorConfig error_config = 2; |
||||
|
||||
// Count of user events imported with complete existing Documents. |
||||
int64 joined_events_count = 3; |
||||
|
||||
// Count of user events imported, but with Document information not found |
||||
// in the existing Branch. |
||||
int64 unjoined_events_count = 4; |
||||
} |
||||
|
||||
// Metadata related to the progress of the Import operation. This will be |
||||
// returned by the google.longrunning.Operation.metadata field. |
||||
message ImportUserEventsMetadata { |
||||
// Operation create time. |
||||
google.protobuf.Timestamp create_time = 1; |
||||
|
||||
// Operation last update time. If the operation is done, this is also the |
||||
// finish time. |
||||
google.protobuf.Timestamp update_time = 2; |
||||
|
||||
// Count of entries that were processed successfully. |
||||
int64 success_count = 3; |
||||
|
||||
// Count of entries that encountered errors while processing. |
||||
int64 failure_count = 4; |
||||
} |
||||
|
||||
// Metadata related to the progress of the ImportDocuments operation. This will |
||||
// be returned by the google.longrunning.Operation.metadata field. |
||||
message ImportDocumentsMetadata { |
||||
// Operation create time. |
||||
google.protobuf.Timestamp create_time = 1; |
||||
|
||||
// Operation last update time. If the operation is done, this is also the |
||||
// finish time. |
||||
google.protobuf.Timestamp update_time = 2; |
||||
|
||||
// Count of entries that were processed successfully. |
||||
int64 success_count = 3; |
||||
|
||||
// Count of entries that encountered errors while processing. |
||||
int64 failure_count = 4; |
||||
} |
||||
|
||||
// Request message for Import methods. |
||||
message ImportDocumentsRequest { |
||||
// The inline source for the input config for ImportDocuments method. |
||||
message InlineSource { |
||||
// Required. A list of documents to update/create. Each document must have a |
||||
// valid [Document.id][google.cloud.discoveryengine.v1.Document.id]. |
||||
// Recommended max of 100 items. |
||||
repeated Document documents = 1 [(google.api.field_behavior) = REQUIRED]; |
||||
} |
||||
|
||||
// Indicates how imported documents are reconciled with the existing documents |
||||
// created or imported before. |
||||
enum ReconciliationMode { |
||||
// Defaults to INCREMENTAL. |
||||
RECONCILIATION_MODE_UNSPECIFIED = 0; |
||||
|
||||
// Inserts new documents or updates existing documents. |
||||
INCREMENTAL = 1; |
||||
|
||||
// Calculates diff and replaces the entire document dataset. Existing |
||||
// documents may be deleted if they are not present in the source location. |
||||
FULL = 2; |
||||
} |
||||
|
||||
// Required. The source of the input. |
||||
oneof source { |
||||
// The Inline source for the input content for documents. |
||||
InlineSource inline_source = 2; |
||||
|
||||
// Cloud Storage location for the input content. |
||||
GcsSource gcs_source = 3; |
||||
|
||||
// BigQuery input source. |
||||
BigQuerySource bigquery_source = 4; |
||||
} |
||||
|
||||
// Required. The parent branch resource name, such as |
||||
// `projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}/branches/{branch}`. |
||||
// Requires create/update permission. |
||||
string parent = 1 [ |
||||
(google.api.field_behavior) = REQUIRED, |
||||
(google.api.resource_reference) = { |
||||
type: "discoveryengine.googleapis.com/Branch" |
||||
} |
||||
]; |
||||
|
||||
// The desired location of errors incurred during the Import. |
||||
ImportErrorConfig error_config = 5; |
||||
|
||||
// The mode of reconciliation between existing documents and the documents to |
||||
// be imported. Defaults to |
||||
// [ReconciliationMode.INCREMENTAL][google.cloud.discoveryengine.v1.ImportDocumentsRequest.ReconciliationMode.INCREMENTAL]. |
||||
ReconciliationMode reconciliation_mode = 6; |
||||
|
||||
// Whether to automatically generate IDs for the documents if absent. |
||||
// |
||||
// If set to `true`, |
||||
// [Document.id][google.cloud.discoveryengine.v1.Document.id]s are |
||||
// automatically generated based on the hash of the payload, where IDs may not |
||||
// be consistent during multiple imports. In which case |
||||
// [ReconciliationMode.FULL][google.cloud.discoveryengine.v1.ImportDocumentsRequest.ReconciliationMode.FULL] |
||||
// is highly recommended to avoid duplicate contents. If unset or set to |
||||
// `false`, [Document.id][google.cloud.discoveryengine.v1.Document.id]s have |
||||
// to be specified using |
||||
// [id_field][google.cloud.discoveryengine.v1.ImportDocumentsRequest.id_field], |
||||
// otherwises, documents without IDs will fail to be imported. |
||||
// |
||||
// Only set this field when using |
||||
// [GcsSource][google.cloud.discoveryengine.v1.GcsSource] or |
||||
// [BigQuerySource][google.cloud.discoveryengine.v1.BigQuerySource], and when |
||||
// [GcsSource.data_schema][google.cloud.discoveryengine.v1.GcsSource.data_schema] |
||||
// or |
||||
// [BigQuerySource.data_schema][google.cloud.discoveryengine.v1.BigQuerySource.data_schema] |
||||
// is `custom`. Otherwise, an INVALID_ARGUMENT error is thrown. |
||||
bool auto_generate_ids = 8; |
||||
|
||||
// The field in the Cloud Storage and BigQuery sources that indicates the |
||||
// unique IDs of the documents. |
||||
// |
||||
// For [GcsSource][google.cloud.discoveryengine.v1.GcsSource] it is the key of |
||||
// the JSON field. For instance, `my_id` for JSON `{"my_id": "some_uuid"}`. |
||||
// For [BigQuerySource][google.cloud.discoveryengine.v1.BigQuerySource] it is |
||||
// the column name of the BigQuery table where the unique ids are stored. |
||||
// |
||||
// The values of the JSON field or the BigQuery column will be used as the |
||||
// [Document.id][google.cloud.discoveryengine.v1.Document.id]s. The JSON field |
||||
// or the BigQuery column must be of string type, and the values must be set |
||||
// as valid strings conform to [RFC-1034](https://tools.ietf.org/html/rfc1034) |
||||
// with 1-63 characters. Otherwise, documents without valid IDs will fail to |
||||
// be imported. |
||||
// |
||||
// Only set this field when using |
||||
// [GcsSource][google.cloud.discoveryengine.v1.GcsSource] or |
||||
// [BigQuerySource][google.cloud.discoveryengine.v1.BigQuerySource], and when |
||||
// [GcsSource.data_schema][google.cloud.discoveryengine.v1.GcsSource.data_schema] |
||||
// or |
||||
// [BigQuerySource.data_schema][google.cloud.discoveryengine.v1.BigQuerySource.data_schema] |
||||
// is `custom`. And only set this field when |
||||
// [auto_generate_ids][google.cloud.discoveryengine.v1.ImportDocumentsRequest.auto_generate_ids] |
||||
// is unset or set as `false`. Otherwise, an INVALID_ARGUMENT error is thrown. |
||||
// |
||||
// If it is unset, a default value `_id` is used when importing from the |
||||
// allowed data sources. |
||||
string id_field = 9; |
||||
} |
||||
|
||||
// Response of the |
||||
// [ImportDocumentsRequest][google.cloud.discoveryengine.v1.ImportDocumentsRequest]. |
||||
// If the long running operation is done, then this message is returned by the |
||||
// google.longrunning.Operations.response field if the operation was successful. |
||||
message ImportDocumentsResponse { |
||||
// A sample of errors encountered while processing the request. |
||||
repeated google.rpc.Status error_samples = 1; |
||||
|
||||
// Echoes the destination for the complete errors in the request if set. |
||||
ImportErrorConfig error_config = 2; |
||||
} |
@ -0,0 +1,86 @@ |
||||
// Copyright 2022 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.v1; |
||||
|
||||
import "google/api/field_behavior.proto"; |
||||
import "google/api/resource.proto"; |
||||
import "google/protobuf/timestamp.proto"; |
||||
|
||||
option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1"; |
||||
option go_package = "cloud.google.com/go/discoveryengine/apiv1/discoveryenginepb;discoveryenginepb"; |
||||
option java_multiple_files = true; |
||||
option java_outer_classname = "PurgeConfigProto"; |
||||
option java_package = "com.google.cloud.discoveryengine.v1"; |
||||
option objc_class_prefix = "DISCOVERYENGINE"; |
||||
option php_namespace = "Google\\Cloud\\DiscoveryEngine\\V1"; |
||||
option ruby_package = "Google::Cloud::DiscoveryEngine::V1"; |
||||
|
||||
// Request message for |
||||
// [DocumentService.PurgeDocuments][google.cloud.discoveryengine.v1.DocumentService.PurgeDocuments] |
||||
// method. |
||||
message PurgeDocumentsRequest { |
||||
// 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. Filter matching documents to purge. Only currently supported |
||||
// value is |
||||
// `*` (all items). |
||||
string filter = 2 [(google.api.field_behavior) = REQUIRED]; |
||||
|
||||
// Actually performs the purge. If `force` is set to false, return the |
||||
// expected purge count without deleting any documents. |
||||
bool force = 3; |
||||
} |
||||
|
||||
// Response message for |
||||
// [DocumentService.PurgeDocuments][google.cloud.discoveryengine.v1.DocumentService.PurgeDocuments] |
||||
// method. If the long running operation is successfully done, then this message |
||||
// is returned by the google.longrunning.Operations.response field. |
||||
message PurgeDocumentsResponse { |
||||
// The total count of documents purged as a result of the operation. |
||||
int64 purge_count = 1; |
||||
|
||||
// A sample of document names that will be deleted. Only populated if `force` |
||||
// is set to false. A max of 100 names will be returned and the names are |
||||
// chosen at random. |
||||
repeated string purge_sample = 2 [(google.api.resource_reference) = { |
||||
type: "discoveryengine.googleapis.com/Document" |
||||
}]; |
||||
} |
||||
|
||||
// Metadata related to the progress of the PurgeDocuments operation. |
||||
// This will be returned by the google.longrunning.Operation.metadata field. |
||||
message PurgeDocumentsMetadata { |
||||
// Operation create time. |
||||
google.protobuf.Timestamp create_time = 1; |
||||
|
||||
// Operation last update time. If the operation is done, this is also the |
||||
// finish time. |
||||
google.protobuf.Timestamp update_time = 2; |
||||
|
||||
// Count of entries that were deleted successfully. |
||||
int64 success_count = 3; |
||||
|
||||
// Count of entries that encountered errors while processing. |
||||
int64 failure_count = 4; |
||||
} |
@ -0,0 +1,58 @@ |
||||
// Copyright 2022 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.v1; |
||||
|
||||
import "google/api/field_behavior.proto"; |
||||
import "google/api/resource.proto"; |
||||
import "google/protobuf/struct.proto"; |
||||
|
||||
option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1"; |
||||
option go_package = "cloud.google.com/go/discoveryengine/apiv1/discoveryenginepb;discoveryenginepb"; |
||||
option java_multiple_files = true; |
||||
option java_outer_classname = "SchemaProto"; |
||||
option java_package = "com.google.cloud.discoveryengine.v1"; |
||||
option objc_class_prefix = "DISCOVERYENGINE"; |
||||
option php_namespace = "Google\\Cloud\\DiscoveryEngine\\V1"; |
||||
option ruby_package = "Google::Cloud::DiscoveryEngine::V1"; |
||||
|
||||
// Defines the structure and layout of a type of document data. |
||||
message Schema { |
||||
option (google.api.resource) = { |
||||
type: "discoveryengine.googleapis.com/Schema" |
||||
pattern: "projects/{project}/locations/{location}/dataStores/{data_store}/schemas/{schema}" |
||||
pattern: "projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}/schemas/{schema}" |
||||
}; |
||||
|
||||
// Schema representation. One of |
||||
// [struct_schema][google.cloud.discoveryengine.v1.Schema.struct_schema] or |
||||
// [json_schema][google.cloud.discoveryengine.v1.Schema.json_schema] should be |
||||
// provided otherwise an INVALID_ARGUMENT error is thrown. |
||||
oneof schema { |
||||
// The structured representation of the schema. |
||||
google.protobuf.Struct struct_schema = 2; |
||||
|
||||
// The JSON representation of the schema. |
||||
string json_schema = 3; |
||||
} |
||||
|
||||
// Immutable. The full resource name of the schema, in the format of |
||||
// `projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}/schemas/{schema}`. |
||||
// |
||||
// This field must be a UTF-8 encoded string with a length limit of 1024 |
||||
// characters. |
||||
string name = 1 [(google.api.field_behavior) = IMMUTABLE]; |
||||
} |
@ -0,0 +1,256 @@ |
||||
// Copyright 2022 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.v1; |
||||
|
||||
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/v1/schema.proto"; |
||||
import "google/longrunning/operations.proto"; |
||||
import "google/protobuf/empty.proto"; |
||||
import "google/protobuf/timestamp.proto"; |
||||
|
||||
option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1"; |
||||
option go_package = "cloud.google.com/go/discoveryengine/apiv1/discoveryenginepb;discoveryenginepb"; |
||||
option java_multiple_files = true; |
||||
option java_outer_classname = "SchemaServiceProto"; |
||||
option java_package = "com.google.cloud.discoveryengine.v1"; |
||||
option objc_class_prefix = "DISCOVERYENGINE"; |
||||
option php_namespace = "Google\\Cloud\\DiscoveryEngine\\V1"; |
||||
option ruby_package = "Google::Cloud::DiscoveryEngine::V1"; |
||||
|
||||
// Service for managing [Schema][google.cloud.discoveryengine.v1.Schema]s. |
||||
service SchemaService { |
||||
option (google.api.default_host) = "discoveryengine.googleapis.com"; |
||||
option (google.api.oauth_scopes) = |
||||
"https://www.googleapis.com/auth/cloud-platform"; |
||||
|
||||
// Gets a [Schema][google.cloud.discoveryengine.v1.Schema]. |
||||
rpc GetSchema(GetSchemaRequest) returns (Schema) { |
||||
option (google.api.http) = { |
||||
get: "/v1/{name=projects/*/locations/*/dataStores/*/schemas/*}" |
||||
additional_bindings { |
||||
get: "/v1/{name=projects/*/locations/*/collections/*/dataStores/*/schemas/*}" |
||||
} |
||||
}; |
||||
option (google.api.method_signature) = "name"; |
||||
} |
||||
|
||||
// Gets a list of [Schema][google.cloud.discoveryengine.v1.Schema]s. |
||||
rpc ListSchemas(ListSchemasRequest) returns (ListSchemasResponse) { |
||||
option (google.api.http) = { |
||||
get: "/v1/{parent=projects/*/locations/*/dataStores/*}/schemas" |
||||
additional_bindings { |
||||
get: "/v1/{parent=projects/*/locations/*/collections/*/dataStores/*}/schemas" |
||||
} |
||||
}; |
||||
option (google.api.method_signature) = "parent"; |
||||
} |
||||
|
||||
// Creates a [Schema][google.cloud.discoveryengine.v1.Schema]. |
||||
rpc CreateSchema(CreateSchemaRequest) returns (google.longrunning.Operation) { |
||||
option (google.api.http) = { |
||||
post: "/v1/{parent=projects/*/locations/*/dataStores/*}/schemas" |
||||
body: "schema" |
||||
additional_bindings { |
||||
post: "/v1/{parent=projects/*/locations/*/collections/*/dataStores/*}/schemas" |
||||
body: "schema" |
||||
} |
||||
}; |
||||
option (google.api.method_signature) = "parent,schema,schema_id"; |
||||
option (google.longrunning.operation_info) = { |
||||
response_type: "google.cloud.discoveryengine.v1.Schema" |
||||
metadata_type: "google.cloud.discoveryengine.v1.CreateSchemaMetadata" |
||||
}; |
||||
} |
||||
|
||||
// Updates a [Schema][google.cloud.discoveryengine.v1.Schema]. |
||||
rpc UpdateSchema(UpdateSchemaRequest) returns (google.longrunning.Operation) { |
||||
option (google.api.http) = { |
||||
patch: "/v1/{schema.name=projects/*/locations/*/dataStores/*/schemas/*}" |
||||
body: "schema" |
||||
additional_bindings { |
||||
patch: "/v1/{schema.name=projects/*/locations/*/collections/*/dataStores/*/schemas/*}" |
||||
body: "schema" |
||||
} |
||||
}; |
||||
option (google.longrunning.operation_info) = { |
||||
response_type: "google.cloud.discoveryengine.v1.Schema" |
||||
metadata_type: "google.cloud.discoveryengine.v1.UpdateSchemaMetadata" |
||||
}; |
||||
} |
||||
|
||||
// Deletes a [Schema][google.cloud.discoveryengine.v1.Schema]. |
||||
rpc DeleteSchema(DeleteSchemaRequest) returns (google.longrunning.Operation) { |
||||
option (google.api.http) = { |
||||
delete: "/v1/{name=projects/*/locations/*/dataStores/*/schemas/*}" |
||||
additional_bindings { |
||||
delete: "/v1/{name=projects/*/locations/*/collections/*/dataStores/*/schemas/*}" |
||||
} |
||||
}; |
||||
option (google.api.method_signature) = "name"; |
||||
option (google.longrunning.operation_info) = { |
||||
response_type: "google.protobuf.Empty" |
||||
metadata_type: "google.cloud.discoveryengine.v1.DeleteSchemaMetadata" |
||||
}; |
||||
} |
||||
} |
||||
|
||||
// Request message for |
||||
// [SchemaService.GetSchema][google.cloud.discoveryengine.v1.SchemaService.GetSchema] |
||||
// method. |
||||
message GetSchemaRequest { |
||||
// Required. The full resource name of the schema, in the format of |
||||
// `projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}/schemas/{schema}`. |
||||
string name = 1 [ |
||||
(google.api.field_behavior) = REQUIRED, |
||||
(google.api.resource_reference) = { |
||||
type: "discoveryengine.googleapis.com/Schema" |
||||
} |
||||
]; |
||||
} |
||||
|
||||
// Request message for |
||||
// [SchemaService.ListSchemas][google.cloud.discoveryengine.v1.SchemaService.ListSchemas] |
||||
// method. |
||||
message ListSchemasRequest { |
||||
// Required. The parent data store resource name, in the format of |
||||
// `projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}`. |
||||
string parent = 1 [ |
||||
(google.api.field_behavior) = REQUIRED, |
||||
(google.api.resource_reference) = { |
||||
type: "discoveryengine.googleapis.com/DataStore" |
||||
} |
||||
]; |
||||
|
||||
// The maximum number of [Schema][google.cloud.discoveryengine.v1.Schema]s to |
||||
// return. The service may return fewer than this value. |
||||
// |
||||
// If unspecified, at most 100 |
||||
// [Schema][google.cloud.discoveryengine.v1.Schema]s will be returned. |
||||
// |
||||
// The maximum value is 1000; values above 1000 will be coerced to 1000. |
||||
int32 page_size = 2; |
||||
|
||||
// A page token, received from a previous |
||||
// [SchemaService.ListSchemas][google.cloud.discoveryengine.v1.SchemaService.ListSchemas] |
||||
// call. Provide this to retrieve the subsequent page. |
||||
// |
||||
// When paginating, all other parameters provided to |
||||
// [SchemaService.ListSchemas][google.cloud.discoveryengine.v1.SchemaService.ListSchemas] |
||||
// must match the call that provided the page token. |
||||
string page_token = 3; |
||||
} |
||||
|
||||
// Response message for |
||||
// [SchemaService.ListSchemas][google.cloud.discoveryengine.v1.SchemaService.ListSchemas] |
||||
// method. |
||||
message ListSchemasResponse { |
||||
// The [Schema][google.cloud.discoveryengine.v1.Schema]s. |
||||
repeated Schema schemas = 1; |
||||
|
||||
// A token that can be sent as |
||||
// [ListSchemasRequest.page_token][google.cloud.discoveryengine.v1.ListSchemasRequest.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 |
||||
// [SchemaService.CreateSchema][google.cloud.discoveryengine.v1.SchemaService.CreateSchema] |
||||
// method. |
||||
message CreateSchemaRequest { |
||||
// Required. The parent data store resource name, in the format of |
||||
// `projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}`. |
||||
string parent = 1 [ |
||||
(google.api.field_behavior) = REQUIRED, |
||||
(google.api.resource_reference) = { |
||||
type: "discoveryengine.googleapis.com/DataStore" |
||||
} |
||||
]; |
||||
|
||||
// Required. The [Schema][google.cloud.discoveryengine.v1.Schema] to create. |
||||
Schema schema = 2 [(google.api.field_behavior) = REQUIRED]; |
||||
|
||||
// Required. The ID to use for the |
||||
// [Schema][google.cloud.discoveryengine.v1.Schema], which will become the |
||||
// final component of the |
||||
// [Schema.name][google.cloud.discoveryengine.v1.Schema.name]. |
||||
// |
||||
// This field should conform to |
||||
// [RFC-1034](https://tools.ietf.org/html/rfc1034) standard with a length |
||||
// limit of 63 characters. |
||||
string schema_id = 3 [(google.api.field_behavior) = REQUIRED]; |
||||
} |
||||
|
||||
// Request message for |
||||
// [SchemaService.UpdateSchema][google.cloud.discoveryengine.v1.SchemaService.UpdateSchema] |
||||
// method. |
||||
message UpdateSchemaRequest { |
||||
// Required. The [Schema][google.cloud.discoveryengine.v1.Schema] to update. |
||||
Schema schema = 1 [(google.api.field_behavior) = REQUIRED]; |
||||
|
||||
// If set to true, and the [Schema][google.cloud.discoveryengine.v1.Schema] is |
||||
// not found, a new [Schema][google.cloud.discoveryengine.v1.Schema] will be |
||||
// created. In this situation, `update_mask` is ignored. |
||||
bool allow_missing = 3; |
||||
} |
||||
|
||||
// Request message for |
||||
// [SchemaService.DeleteSchema][google.cloud.discoveryengine.v1.SchemaService.DeleteSchema] |
||||
// method. |
||||
message DeleteSchemaRequest { |
||||
// Required. The full resource name of the schema, in the format of |
||||
// `projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}/schemas/{schema}`. |
||||
string name = 1 [ |
||||
(google.api.field_behavior) = REQUIRED, |
||||
(google.api.resource_reference) = { |
||||
type: "discoveryengine.googleapis.com/Schema" |
||||
} |
||||
]; |
||||
} |
||||
|
||||
// Metadata for Create Schema LRO. |
||||
message CreateSchemaMetadata { |
||||
// Operation create time. |
||||
google.protobuf.Timestamp create_time = 1; |
||||
|
||||
// Operation last update time. If the operation is done, this is also the |
||||
// finish time. |
||||
google.protobuf.Timestamp update_time = 2; |
||||
} |
||||
|
||||
// Metadata for UpdateSchema LRO. |
||||
message UpdateSchemaMetadata { |
||||
// Operation create time. |
||||
google.protobuf.Timestamp create_time = 1; |
||||
|
||||
// Operation last update time. If the operation is done, this is also the |
||||
// finish time. |
||||
google.protobuf.Timestamp update_time = 2; |
||||
} |
||||
|
||||
// Metadata for DeleteSchema LRO. |
||||
message DeleteSchemaMetadata { |
||||
// Operation create time. |
||||
google.protobuf.Timestamp create_time = 1; |
||||
|
||||
// Operation last update time. If the operation is done, this is also the |
||||
// finish time. |
||||
google.protobuf.Timestamp update_time = 2; |
||||
} |
@ -0,0 +1,316 @@ |
||||
// Copyright 2022 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.v1; |
||||
|
||||
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/v1/common.proto"; |
||||
import "google/cloud/discoveryengine/v1/document.proto"; |
||||
import "google/protobuf/struct.proto"; |
||||
|
||||
option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1"; |
||||
option go_package = "cloud.google.com/go/discoveryengine/apiv1/discoveryenginepb;discoveryenginepb"; |
||||
option java_multiple_files = true; |
||||
option java_outer_classname = "SearchServiceProto"; |
||||
option java_package = "com.google.cloud.discoveryengine.v1"; |
||||
option objc_class_prefix = "DISCOVERYENGINE"; |
||||
option php_namespace = "Google\\Cloud\\DiscoveryEngine\\V1"; |
||||
option ruby_package = "Google::Cloud::DiscoveryEngine::V1"; |
||||
|
||||
// Service for search. |
||||
service SearchService { |
||||
option (google.api.default_host) = "discoveryengine.googleapis.com"; |
||||
option (google.api.oauth_scopes) = |
||||
"https://www.googleapis.com/auth/cloud-platform"; |
||||
|
||||
// Performs a search. |
||||
rpc Search(SearchRequest) returns (SearchResponse) { |
||||
option (google.api.http) = { |
||||
post: "/v1/{serving_config=projects/*/locations/*/dataStores/*/servingConfigs/*}:search" |
||||
body: "*" |
||||
additional_bindings { |
||||
post: "/v1/{serving_config=projects/*/locations/*/collections/*/dataStores/*/servingConfigs/*}:search" |
||||
body: "*" |
||||
} |
||||
}; |
||||
} |
||||
} |
||||
|
||||
// Request message for |
||||
// [SearchService.Search][google.cloud.discoveryengine.v1.SearchService.Search] |
||||
// method. |
||||
message SearchRequest { |
||||
// Specification to determine under which conditions query expansion should |
||||
// occur. |
||||
message QueryExpansionSpec { |
||||
// Enum describing under which condition query expansion should occur. |
||||
enum Condition { |
||||
// Unspecified query expansion condition. In this case, server behavior |
||||
// defaults to |
||||
// [Condition.DISABLED][google.cloud.discoveryengine.v1.SearchRequest.QueryExpansionSpec.Condition.DISABLED]. |
||||
CONDITION_UNSPECIFIED = 0; |
||||
|
||||
// Disabled query expansion. Only the exact search query is used, even if |
||||
// [SearchResponse.total_size][google.cloud.discoveryengine.v1.SearchResponse.total_size] |
||||
// is zero. |
||||
DISABLED = 1; |
||||
|
||||
// Automatic query expansion built by the Search API. |
||||
AUTO = 2; |
||||
} |
||||
|
||||
// The condition under which query expansion should occur. Default to |
||||
// [Condition.DISABLED][google.cloud.discoveryengine.v1.SearchRequest.QueryExpansionSpec.Condition.DISABLED]. |
||||
Condition condition = 1; |
||||
} |
||||
|
||||
// The specification for query spell correction. |
||||
message SpellCorrectionSpec { |
||||
// Enum describing under which mode spell correction should occur. |
||||
enum Mode { |
||||
// Unspecified spell correction mode. In this case, server behavior |
||||
// defaults to |
||||
// [Mode.AUTO][google.cloud.discoveryengine.v1.SearchRequest.SpellCorrectionSpec.Mode.AUTO]. |
||||
MODE_UNSPECIFIED = 0; |
||||
|
||||
// Search API will try to find a spell suggestion if there |
||||
// is any and put in the |
||||
// [SearchResponse.corrected_query][google.cloud.discoveryengine.v1.SearchResponse.corrected_query]. |
||||
// The spell suggestion will not be used as the search query. |
||||
SUGGESTION_ONLY = 1; |
||||
|
||||
// Automatic spell correction built by the Search API. Search will |
||||
// be based on the corrected query if found. |
||||
AUTO = 2; |
||||
} |
||||
|
||||
// The mode under which spell correction should take effect to |
||||
// replace the original search query. Default to |
||||
// [Mode.AUTO][google.cloud.discoveryengine.v1.SearchRequest.SpellCorrectionSpec.Mode.AUTO]. |
||||
Mode mode = 1; |
||||
} |
||||
|
||||
// The specification that configs the desired behavior of the UCS content |
||||
// search. |
||||
message ContentSearchSpec { |
||||
// The specification that configs the snippet in the search results. |
||||
message SnippetSpec { |
||||
// Max number of snippets returned in each search result. |
||||
// If the matching snippets is less than the max_snippet_count, return all |
||||
// of the snippets; otherwise, return the max_snippet_count. |
||||
// |
||||
// At most 5 snippets will be returned for each SearchResult. |
||||
int32 max_snippet_count = 1; |
||||
|
||||
// if true, only snippet reference is returned. |
||||
bool reference_only = 2; |
||||
} |
||||
|
||||
// The specification that configs the summary in the search response. |
||||
message SummarySpec { |
||||
// The number of top results the summary should be generated from. |
||||
// If the number of returned results is less than summary_result_count, |
||||
// then the summary would be derived from all the results; otherwise, the |
||||
// summary would be derived from the top results. |
||||
// |
||||
// At most 5 results can be used for generating summary. |
||||
int32 summary_result_count = 1; |
||||
} |
||||
|
||||
// If there is no snippet spec provided, there will be no snippet in the |
||||
// search result. |
||||
SnippetSpec snippet_spec = 1; |
||||
|
||||
// If there is no summary spec provided, there will be no summary in the |
||||
// search response. |
||||
SummarySpec summary_spec = 2; |
||||
} |
||||
|
||||
// Required. The resource name of the Search serving config, such as |
||||
// `projects/*/locations/global/collections/default_collection/dataStores/default_data_store/servingConfigs/default_serving_config`. |
||||
// This field is used to identify the serving configuration name, set |
||||
// of models used to make the search. |
||||
string serving_config = 1 [ |
||||
(google.api.field_behavior) = REQUIRED, |
||||
(google.api.resource_reference) = { |
||||
type: "discoveryengine.googleapis.com/ServingConfig" |
||||
} |
||||
]; |
||||
|
||||
// The branch resource name, such as |
||||
// `projects/*/locations/global/collections/default_collection/dataStores/default_data_store/branches/0`. |
||||
// |
||||
// Use `default_branch` as the branch ID or leave this field empty, to search |
||||
// documents under the default branch. |
||||
string branch = 2 [(google.api.resource_reference) = { |
||||
type: "discoveryengine.googleapis.com/Branch" |
||||
}]; |
||||
|
||||
// Raw search query. |
||||
string query = 3; |
||||
|
||||
// Maximum number of [Document][google.cloud.discoveryengine.v1.Document]s to |
||||
// return. If unspecified, defaults to a reasonable value. The maximum allowed |
||||
// value is 100. Values above 100 will be coerced to 100. |
||||
// |
||||
// If this field is negative, an `INVALID_ARGUMENT` is returned. |
||||
int32 page_size = 4; |
||||
|
||||
// A page token received from a previous |
||||
// [SearchService.Search][google.cloud.discoveryengine.v1.SearchService.Search] |
||||
// call. Provide this to retrieve the subsequent page. |
||||
// |
||||
// When paginating, all other parameters provided to |
||||
// [SearchService.Search][google.cloud.discoveryengine.v1.SearchService.Search] |
||||
// must match the call that provided the page token. Otherwise, an |
||||
// `INVALID_ARGUMENT` error is returned. |
||||
string page_token = 5; |
||||
|
||||
// A 0-indexed integer that specifies the current offset (that is, starting |
||||
// result location, amongst the |
||||
// [Document][google.cloud.discoveryengine.v1.Document]s deemed by the API as |
||||
// relevant) in search results. This field is only considered if |
||||
// [page_token][google.cloud.discoveryengine.v1.SearchRequest.page_token] is |
||||
// unset. |
||||
// |
||||
// If this field is negative, an `INVALID_ARGUMENT` is returned. |
||||
int32 offset = 6; |
||||
|
||||
// Information about the end user. |
||||
// Highly recommended for analytics. The user_agent string in UserInfo will |
||||
// be used to deduce device_type for analytics. |
||||
UserInfo user_info = 21; |
||||
|
||||
// Additional search parameters. |
||||
// |
||||
// For public website search only, supported values are: |
||||
// |
||||
// * `user_country_code`: string. Default empty. If set to non-empty, results |
||||
// are restricted or boosted based on the location provided. |
||||
// * `search_type`: double. Default empty. Enables non-webpage searching |
||||
// depending on the value. The only valid non-default value is 1, |
||||
// which enables image searching. |
||||
map<string, google.protobuf.Value> params = 11; |
||||
|
||||
// The query expansion specification that specifies the conditions under which |
||||
// query expansion will occur. |
||||
QueryExpansionSpec query_expansion_spec = 13; |
||||
|
||||
// The spell correction specification that specifies the mode under |
||||
// which spell correction will take effect. |
||||
SpellCorrectionSpec spell_correction_spec = 14; |
||||
|
||||
// A unique identifier for tracking visitors. For example, this could be |
||||
// implemented with an HTTP cookie, which should be able to uniquely identify |
||||
// a visitor on a single device. This unique identifier should not change if |
||||
// the visitor logs in or out of the website. |
||||
// |
||||
// This field should NOT have a fixed value such as `unknown_visitor`. |
||||
// |
||||
// This should be the same identifier as |
||||
// [UserEvent.user_pseudo_id][google.cloud.discoveryengine.v1.UserEvent.user_pseudo_id] |
||||
// and |
||||
// [CompleteQueryRequest.user_pseudo_id][google.cloud.discoveryengine.v1.CompleteQueryRequest.user_pseudo_id] |
||||
// |
||||
// The field must be a UTF-8 encoded string with a length limit of 128 |
||||
// characters. Otherwise, an `INVALID_ARGUMENT` error is returned. |
||||
string user_pseudo_id = 15; |
||||
|
||||
// The content search spec that configs the desired behavior of content |
||||
// search. |
||||
ContentSearchSpec content_search_spec = 24; |
||||
|
||||
// Whether to turn on safe search. This is only supported for |
||||
// [ContentConfig.PUBLIC_WEBSITE][]. |
||||
bool safe_search = 20; |
||||
|
||||
// The user labels applied to a resource must meet the following requirements: |
||||
// |
||||
// * Each resource can have multiple labels, up to a maximum of 64. |
||||
// * Each label must be a key-value pair. |
||||
// * Keys have a minimum length of 1 character and a maximum length of 63 |
||||
// characters and cannot be empty. Values can be empty and have a maximum |
||||
// length of 63 characters. |
||||
// * Keys and values can contain only lowercase letters, numeric characters, |
||||
// underscores, and dashes. All characters must use UTF-8 encoding, and |
||||
// international characters are allowed. |
||||
// * The key portion of a label must be unique. However, you can use the same |
||||
// key with multiple resources. |
||||
// * Keys must start with a lowercase letter or international character. |
||||
// |
||||
// See [Google Cloud |
||||
// Document](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements) |
||||
// for more details. |
||||
map<string, string> user_labels = 22; |
||||
} |
||||
|
||||
// Response message for |
||||
// [SearchService.Search][google.cloud.discoveryengine.v1.SearchService.Search] |
||||
// method. |
||||
message SearchResponse { |
||||
// Represents the search results. |
||||
message SearchResult { |
||||
// [Document.id][google.cloud.discoveryengine.v1.Document.id] of the |
||||
// searched [Document][google.cloud.discoveryengine.v1.Document]. |
||||
string id = 1; |
||||
|
||||
// The document data snippet in the search response. Only fields that are |
||||
// marked as retrievable are populated. |
||||
Document document = 2; |
||||
} |
||||
|
||||
// Summary of the top N search result specified by the summary spec. |
||||
message Summary { |
||||
// The summary content. |
||||
string summary_text = 1; |
||||
} |
||||
|
||||
// A list of matched documents. The order represents the ranking. |
||||
repeated SearchResult results = 1; |
||||
|
||||
// The estimated total count of matched items irrespective of pagination. The |
||||
// count of [results][google.cloud.discoveryengine.v1.SearchResponse.results] |
||||
// returned by pagination may be less than the |
||||
// [total_size][google.cloud.discoveryengine.v1.SearchResponse.total_size] |
||||
// that matches. |
||||
int32 total_size = 3; |
||||
|
||||
// A unique search token. This should be included in the |
||||
// [UserEvent][google.cloud.discoveryengine.v1.UserEvent] logs resulting from |
||||
// this search, which enables accurate attribution of search model |
||||
// performance. |
||||
string attribution_token = 4; |
||||
|
||||
// A token that can be sent as |
||||
// [SearchRequest.page_token][google.cloud.discoveryengine.v1.SearchRequest.page_token] |
||||
// to retrieve the next page. If this field is omitted, there are no |
||||
// subsequent pages. |
||||
string next_page_token = 5; |
||||
|
||||
// Contains the spell corrected query, if found. If the spell correction type |
||||
// is AUTOMATIC, then the search results are based on corrected_query. |
||||
// Otherwise the original query is used for search. |
||||
string corrected_query = 7; |
||||
|
||||
// A summary as part of the search results. |
||||
// This field is only returned if |
||||
// [SearchRequest.ContentSearchSpec.summary_spec][google.cloud.discoveryengine.v1.SearchRequest.ContentSearchSpec.summary_spec] |
||||
// is set. |
||||
Summary summary = 9; |
||||
} |
@ -0,0 +1,458 @@ |
||||
// Copyright 2022 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.v1; |
||||
|
||||
import "google/api/field_behavior.proto"; |
||||
import "google/api/resource.proto"; |
||||
import "google/cloud/discoveryengine/v1/common.proto"; |
||||
import "google/protobuf/duration.proto"; |
||||
import "google/protobuf/timestamp.proto"; |
||||
|
||||
option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1"; |
||||
option go_package = "cloud.google.com/go/discoveryengine/apiv1/discoveryenginepb;discoveryenginepb"; |
||||
option java_multiple_files = true; |
||||
option java_outer_classname = "UserEventProto"; |
||||
option java_package = "com.google.cloud.discoveryengine.v1"; |
||||
option objc_class_prefix = "DISCOVERYENGINE"; |
||||
option php_namespace = "Google\\Cloud\\DiscoveryEngine\\V1"; |
||||
option ruby_package = "Google::Cloud::DiscoveryEngine::V1"; |
||||
|
||||
// UserEvent captures all metadata information Discovery Engine API needs to |
||||
// know about how end users interact with customers' website. |
||||
message UserEvent { |
||||
// Required. User event type. Allowed values are: |
||||
// |
||||
// Generic values: |
||||
// |
||||
// * `search`: Search for Documents. |
||||
// * `view-item`: Detailed page view of a Document. |
||||
// * `view-item-list`: View of a panel or ordered list of Documents. |
||||
// * `view-home-page`: View of the home page. |
||||
// * `view-category-page`: View of a category page, e.g. Home > Men > Jeans |
||||
// |
||||
// Retail-related values: |
||||
// |
||||
// * `add-to-cart`: Add an item(s) to cart, e.g. in Retail online shopping |
||||
// * `purchase`: Purchase an item(s) |
||||
// |
||||
// Media-related values: |
||||
// |
||||
// * `media-play`: Start/resume watching a video, playing a song, etc. |
||||
// * `media-complete`: Finished or stopped midway through a video, song, etc. |
||||
string event_type = 1 [(google.api.field_behavior) = REQUIRED]; |
||||
|
||||
// Required. A unique identifier for tracking visitors. |
||||
// |
||||
// For example, this could be implemented with an HTTP cookie, which should be |
||||
// able to uniquely identify a visitor on a single device. This unique |
||||
// identifier should not change if the visitor log in/out of the website. |
||||
// |
||||
// Do not set the field to the same fixed ID for different users. This mixes |
||||
// the event history of those users together, which results in degraded model |
||||
// quality. |
||||
// |
||||
// The field must be a UTF-8 encoded string with a length limit of 128 |
||||
// characters. Otherwise, an INVALID_ARGUMENT error is returned. |
||||
// |
||||
// The field should not contain PII or user-data. We recommend to use Google |
||||
// Analytics [Client |
||||
// ID](https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#clientId) |
||||
// for this field. |
||||
string user_pseudo_id = 2 [(google.api.field_behavior) = REQUIRED]; |
||||
|
||||
// Only required for |
||||
// [UserEventService.ImportUserEvents][google.cloud.discoveryengine.v1.UserEventService.ImportUserEvents] |
||||
// method. Timestamp of when the user event happened. |
||||
google.protobuf.Timestamp event_time = 3; |
||||
|
||||
// Information about the end user. |
||||
UserInfo user_info = 4; |
||||
|
||||
// Should set to true if the request is made directly from the end user, in |
||||
// which case the |
||||
// [UserEvent.user_info.user_agent][google.cloud.discoveryengine.v1.UserInfo.user_agent] |
||||
// can be populated from the HTTP request. |
||||
// |
||||
// This flag should be set only if the API request is made directly from the |
||||
// end user such as a mobile app (and not if a gateway or a server is |
||||
// processing and pushing the user events). |
||||
// |
||||
// This should not be set when using the JavaScript tag in |
||||
// [UserEventService.CollectUserEvent][google.cloud.discoveryengine.v1.UserEventService.CollectUserEvent]. |
||||
bool direct_user_request = 5; |
||||
|
||||
// A unique identifier for tracking a visitor session with a length limit of |
||||
// 128 bytes. A session is an aggregation of an end user behavior in a time |
||||
// span. |
||||
// |
||||
// A general guideline to populate the session_id: |
||||
// |
||||
// 1. If user has no activity for 30 min, a new session_id should be assigned. |
||||
// 2. The session_id should be unique across users, suggest use uuid or add |
||||
// [UserEvent.user_pseudo_id][google.cloud.discoveryengine.v1.UserEvent.user_pseudo_id] |
||||
// as prefix. |
||||
string session_id = 6; |
||||
|
||||
// Page metadata such as categories and other critical information for certain |
||||
// event types such as `view-category-page`. |
||||
PageInfo page_info = 7; |
||||
|
||||
// Token to attribute an API response to user action(s) to trigger the event. |
||||
// |
||||
// Highly recommended for user events that are the result of |
||||
// [RecommendationService.Recommend][]. This field enables accurate |
||||
// attribution of recommendation model performance. |
||||
// |
||||
// The value must be one of: |
||||
// |
||||
// * [PredictResponse.attribution_token][] for events that are the result of |
||||
// [RecommendationService.Recommend][]. |
||||
// * [SearchResponse.attribution_token][google.cloud.discoveryengine.v1.SearchResponse.attribution_token] for events that are the result of |
||||
// [SearchService.Search][google.cloud.discoveryengine.v1.SearchService.Search]. |
||||
// * [CompleteQueryResponse.attribution_token][] for events that are the |
||||
// result of |
||||
// [CompletionService.CompleteQuery][google.cloud.discoveryengine.v1.CompletionService.CompleteQuery]. |
||||
// |
||||
// This token enables us to accurately attribute page view or conversion |
||||
// completion back to the event and the particular predict response containing |
||||
// this clicked/purchased product. If user clicks on product K in the |
||||
// recommendation results, pass [PredictResponse.attribution_token][] as a URL |
||||
// parameter to product K's page. When recording events on product K's page, |
||||
// log the [PredictResponse.attribution_token][] to this field. |
||||
string attribution_token = 8; |
||||
|
||||
// The filter syntax consists of an expression language for constructing a |
||||
// predicate from one or more fields of the documents being filtered. |
||||
// |
||||
// One example is for `search` events, the associated |
||||
// [SearchRequest][google.cloud.discoveryengine.v1.SearchRequest] may contain |
||||
// a filter expression in [SearchRequest.filter][] conforming to |
||||
// https://google.aip.dev/160#filtering. |
||||
// |
||||
// Similarly, for `view-item-list` events that are generated from a |
||||
// [RecommendationService.RecommendRequest][], this field may be populated |
||||
// directly from [RecommendationService.RecommendRequest.filter][] conforming |
||||
// to https://google.aip.dev/160#filtering. |
||||
// |
||||
// The value must be a UTF-8 encoded string with a length limit of 1,000 |
||||
// characters. Otherwise, an INVALID_ARGUMENT error is returned. |
||||
string filter = 9; |
||||
|
||||
// List of Documents associated with this user event. |
||||
// |
||||
// This field is optional except for the following event types: |
||||
// |
||||
// * `view-item` |
||||
// * `add-to-cart` |
||||
// * `purchase` |
||||
// * `media-play` |
||||
// * `media-complete` |
||||
// |
||||
// In a `search` event, this field represents the documents returned to the |
||||
// end user on the current page (the end user may have not finished browsing |
||||
// the whole page yet). When a new page is returned to the end user, after |
||||
// pagination/filtering/ordering even for the same query, a new `search` event |
||||
// with different |
||||
// [UserEvent.documents][google.cloud.discoveryengine.v1.UserEvent.documents] |
||||
// is desired. |
||||
repeated DocumentInfo documents = 10; |
||||
|
||||
// Panel metadata associated with this user event. |
||||
PanelInfo panel = 11; |
||||
|
||||
// Search API details related to the event. |
||||
// |
||||
// This field should be set for `search` event. |
||||
SearchInfo search_info = 12; |
||||
|
||||
// CompleteQuery API details related to the event. |
||||
// |
||||
// This field should be set for `search` event when autocomplete function is |
||||
// enabled and the user clicks a suggestion for search. |
||||
CompletionInfo completion_info = 13; |
||||
|
||||
// The transaction metadata (if any) associated with this user event. |
||||
TransactionInfo transaction_info = 14; |
||||
|
||||
// A list of identifiers for the independent experiment groups this user event |
||||
// belongs to. This is used to distinguish between user events associated with |
||||
// different experiment setups on the customer end. |
||||
repeated string tag_ids = 15; |
||||
|
||||
// The promotion IDs if this is an event associated with promotions. |
||||
// Currently, this field is restricted to at most one ID. |
||||
repeated string promotion_ids = 16; |
||||
|
||||
// Extra user event features to include in the recommendation model. |
||||
// These attributes must NOT contain data that needs to be parsed or processed |
||||
// further, e.g. JSON or other encodings. |
||||
// |
||||
// If you provide custom attributes for ingested user events, also include |
||||
// them in the user events that you associate with prediction requests. Custom |
||||
// attribute formatting must be consistent between imported events and events |
||||
// provided with prediction requests. This lets the Discovery Engine API use |
||||
// those custom attributes when training models and serving predictions, which |
||||
// helps improve recommendation quality. |
||||
// |
||||
// This field needs to pass all below criteria, otherwise an |
||||
// `INVALID_ARGUMENT` error is returned: |
||||
// |
||||
// * The key must be a UTF-8 encoded string with a length limit of 5,000 |
||||
// characters. |
||||
// * For text attributes, at most 400 values are allowed. Empty values are not |
||||
// allowed. Each value must be a UTF-8 encoded string with a length limit of |
||||
// 256 characters. |
||||
// * For number attributes, at most 400 values are allowed. |
||||
// |
||||
// For product recommendations, an example of extra user information is |
||||
// ` traffic_channel`, which is how a user arrives at the site. Users can |
||||
// arrive |
||||
// at the site by coming to the site directly, coming through Google |
||||
// search, or in other ways. |
||||
map<string, CustomAttribute> attributes = 17; |
||||
|
||||
// Media-specific info. |
||||
MediaInfo media_info = 18; |
||||
} |
||||
|
||||
// Detailed page information. |
||||
message PageInfo { |
||||
// A unique ID of a web page view. |
||||
// |
||||
// This should be kept the same for all user events triggered from the same |
||||
// pageview. For example, an item detail page view could trigger multiple |
||||
// events as the user is browsing the page. The `pageViewId` property should |
||||
// be kept the same for all these events so that they can be grouped together |
||||
// properly. |
||||
// |
||||
// When using the client side event reporting with JavaScript pixel and Google |
||||
// Tag Manager, this value is filled in automatically. |
||||
string pageview_id = 1; |
||||
|
||||
// The most specific category associated with a category page. |
||||
// |
||||
// To represent full path of category, use '>' sign to separate different |
||||
// hierarchies. If '>' is part of the category name, please replace it with |
||||
// other character(s). |
||||
// |
||||
// Category pages include special pages such as sales or promotions. For |
||||
// instance, a special sale page may have the category hierarchy: |
||||
// "pageCategory" : "Sales > 2017 Black Friday Deals". |
||||
// |
||||
// Required for `view-category-page` events. Other event types should not set |
||||
// this field. Otherwise, an INVALID_ARGUMENT error is returned. |
||||
string page_category = 2; |
||||
|
||||
// Complete URL (window.location.href) of the user's current page. |
||||
// |
||||
// When using the client side event reporting with JavaScript pixel and Google |
||||
// Tag Manager, this value is filled in automatically. Maximum length 5,000 |
||||
// characters. |
||||
string uri = 3; |
||||
|
||||
// The referrer URL of the current page. |
||||
// |
||||
// When using the client side event reporting with JavaScript pixel and Google |
||||
// Tag Manager, this value is filled in automatically. However, some browser |
||||
// privacy restrictions may cause this field to be empty. |
||||
string referrer_uri = 4; |
||||
} |
||||
|
||||
// Detailed search information. |
||||
message SearchInfo { |
||||
// The user's search query. |
||||
// |
||||
// See |
||||
// [SearchRequest.query][google.cloud.discoveryengine.v1.SearchRequest.query] |
||||
// for definition. |
||||
// |
||||
// The value must be a UTF-8 encoded string with a length limit of 5,000 |
||||
// characters. Otherwise, an INVALID_ARGUMENT error is returned. |
||||
// |
||||
// At least one of |
||||
// [search_query][google.cloud.discoveryengine.v1.SearchInfo.search_query] or |
||||
// [PageInfo.page_category][google.cloud.discoveryengine.v1.PageInfo.page_category] |
||||
// is required for `search` events. Other event types should not set this |
||||
// field. Otherwise, an INVALID_ARGUMENT error is returned. |
||||
string search_query = 1; |
||||
|
||||
// The order in which products are returned, if applicable. |
||||
// |
||||
// See [SearchRequest.order_by][] for definition and syntax. |
||||
// |
||||
// The value must be a UTF-8 encoded string with a length limit of 1,000 |
||||
// characters. Otherwise, an INVALID_ARGUMENT error is returned. |
||||
// |
||||
// This can only be set for `search` events. Other event types should not set |
||||
// this field. Otherwise, an INVALID_ARGUMENT error is returned. |
||||
string order_by = 2; |
||||
|
||||
// An integer that specifies the current offset for pagination (the 0-indexed |
||||
// starting location, amongst the products deemed by the API as relevant). |
||||
// |
||||
// See |
||||
// [SearchRequest.offset][google.cloud.discoveryengine.v1.SearchRequest.offset] |
||||
// for definition. |
||||
// |
||||
// If this field is negative, an INVALID_ARGUMENT is returned. |
||||
// |
||||
// This can only be set for `search` events. Other event types should not set |
||||
// this field. Otherwise, an INVALID_ARGUMENT error is returned. |
||||
optional int32 offset = 3; |
||||
} |
||||
|
||||
// Detailed completion information including completion attribution token and |
||||
// clicked completion info. |
||||
message CompletionInfo { |
||||
// End user selected [CompleteQueryResponse.CompletionResult.suggestion][]. |
||||
string selected_suggestion = 1; |
||||
|
||||
// End user selected [CompleteQueryResponse.CompletionResult.suggestion][] |
||||
// position, starting from 0. |
||||
int32 selected_position = 2; |
||||
} |
||||
|
||||
// A transaction represents the entire purchase transaction. |
||||
message TransactionInfo { |
||||
// Required. Total non-zero value associated with the transaction. This value |
||||
// may include shipping, tax, or other adjustments to the total value that you |
||||
// want to include. |
||||
optional float value = 1 [(google.api.field_behavior) = REQUIRED]; |
||||
|
||||
// Required. Currency code. Use three-character ISO-4217 code. |
||||
string currency = 2 [(google.api.field_behavior) = REQUIRED]; |
||||
|
||||
// The transaction ID with a length limit of 128 characters. |
||||
string transaction_id = 3; |
||||
|
||||
// All the taxes associated with the transaction. |
||||
optional float tax = 4; |
||||
|
||||
// All the costs associated with the products. These can be manufacturing |
||||
// costs, shipping expenses not borne by the end user, or any other costs, |
||||
// such that: |
||||
// |
||||
// * Profit = [value][google.cloud.discoveryengine.v1.TransactionInfo.value] - |
||||
// [tax][google.cloud.discoveryengine.v1.TransactionInfo.tax] - |
||||
// [cost][google.cloud.discoveryengine.v1.TransactionInfo.cost] |
||||
optional float cost = 5; |
||||
|
||||
// The total discount(s) value applied to this transaction. |
||||
// This figure should be excluded from |
||||
// [TransactionInfo.value][google.cloud.discoveryengine.v1.TransactionInfo.value] |
||||
// |
||||
// For example, if a user paid |
||||
// [TransactionInfo.value][google.cloud.discoveryengine.v1.TransactionInfo.value] |
||||
// amount, then nominal (pre-discount) value of the transaction is the sum of |
||||
// [TransactionInfo.value][google.cloud.discoveryengine.v1.TransactionInfo.value] |
||||
// and |
||||
// [TransactionInfo.discount_value][google.cloud.discoveryengine.v1.TransactionInfo.discount_value] |
||||
// |
||||
// This means that profit is calculated the same way, regardless of the |
||||
// discount value, and that |
||||
// [TransactionInfo.discount_value][google.cloud.discoveryengine.v1.TransactionInfo.discount_value] |
||||
// can be larger than |
||||
// [TransactionInfo.value][google.cloud.discoveryengine.v1.TransactionInfo.value]: |
||||
// |
||||
// * Profit = [value][google.cloud.discoveryengine.v1.TransactionInfo.value] - |
||||
// [tax][google.cloud.discoveryengine.v1.TransactionInfo.tax] - |
||||
// [cost][google.cloud.discoveryengine.v1.TransactionInfo.cost] |
||||
optional float discount_value = 6; |
||||
} |
||||
|
||||
// Detailed document information associated with a user event. |
||||
message DocumentInfo { |
||||
// A required descriptor of the associated |
||||
// [Document][google.cloud.discoveryengine.v1.Document]. |
||||
// |
||||
// * If [id][google.cloud.discoveryengine.v1.DocumentInfo.id] is specified, |
||||
// then the default values for |
||||
// `{location}`, `{collection_id}`, `{data_store_id}`, and `{branch_id}` are |
||||
// used when annotating with the stored Document. |
||||
// |
||||
// * If [name][google.cloud.discoveryengine.v1.DocumentInfo.name] is |
||||
// specified, then the provided values (default values allowed) for |
||||
// `{location}`, `{collection_id}`, `{data_store_id}`, and |
||||
// `{branch_id}` are used when annotating with the stored Document. |
||||
oneof document_descriptor { |
||||
// Required. The Document resource ID. |
||||
string id = 1 [(google.api.field_behavior) = REQUIRED]; |
||||
|
||||
// Required. The Document resource full name, of the form: |
||||
// `projects/{project_id}/locations/{location}/collections/{collection_id}/dataStores/{data_store_id}/branches/{branch_id}/documents/{document_id}` |
||||
string name = 2 [ |
||||
(google.api.field_behavior) = REQUIRED, |
||||
(google.api.resource_reference) = { |
||||
type: "discoveryengine.googleapis.com/Document" |
||||
} |
||||
]; |
||||
} |
||||
|
||||
// Quantity of the Document associated with the user event. Defaults to 1. |
||||
// |
||||
// For example, this field will be 2 if two quantities of the same Document |
||||
// are involved in a `add-to-cart` event. |
||||
// |
||||
// Required for events of the following event types: |
||||
// |
||||
// * `add-to-cart` |
||||
// * `purchase` |
||||
optional int32 quantity = 3; |
||||
|
||||
// The promotion IDs associated with this Document. |
||||
// Currently, this field is restricted to at most one ID. |
||||
repeated string promotion_ids = 4; |
||||
} |
||||
|
||||
// Detailed panel information associated with a user event. |
||||
message PanelInfo { |
||||
// Required. The panel ID. |
||||
string panel_id = 2 [(google.api.field_behavior) = REQUIRED]; |
||||
|
||||
// The display name of the panel. |
||||
string display_name = 3; |
||||
|
||||
// The ordered position of the panel, if shown to the user with other panels. |
||||
// If set, then |
||||
// [total_panels][google.cloud.discoveryengine.v1.PanelInfo.total_panels] must |
||||
// also be set. |
||||
optional int32 panel_position = 4; |
||||
|
||||
// The total number of panels, including this one, shown to the user. |
||||
// Must be set if |
||||
// [panel_position][google.cloud.discoveryengine.v1.PanelInfo.panel_position] |
||||
// is set. |
||||
optional int32 total_panels = 5; |
||||
} |
||||
|
||||
// Media-specific user event information. |
||||
message MediaInfo { |
||||
// The media progress time in seconds, if applicable. |
||||
// For example, if the end user has finished 90 seconds of a playback video, |
||||
// then [MediaInfo.media_progress_duration.seconds][Duration.seconds] should |
||||
// be set to 90. |
||||
google.protobuf.Duration media_progress_duration = 1; |
||||
|
||||
// Media progress should be computed using only the media_progress_duration |
||||
// relative to the media total length. |
||||
// |
||||
// This value must be between `[0, 1.0]` inclusive. |
||||
// |
||||
// If this is not a playback or the progress cannot be computed (e.g. ongoing |
||||
// livestream), this field should be unset. |
||||
optional float media_progress_percentage = 2; |
||||
} |
@ -0,0 +1,133 @@ |
||||
// Copyright 2022 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.v1; |
||||
|
||||
import "google/api/annotations.proto"; |
||||
import "google/api/client.proto"; |
||||
import "google/api/field_behavior.proto"; |
||||
import "google/api/httpbody.proto"; |
||||
import "google/api/resource.proto"; |
||||
import "google/cloud/discoveryengine/v1/import_config.proto"; |
||||
import "google/cloud/discoveryengine/v1/user_event.proto"; |
||||
import "google/longrunning/operations.proto"; |
||||
|
||||
option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1"; |
||||
option go_package = "cloud.google.com/go/discoveryengine/apiv1/discoveryenginepb;discoveryenginepb"; |
||||
option java_multiple_files = true; |
||||
option java_outer_classname = "UserEventServiceProto"; |
||||
option java_package = "com.google.cloud.discoveryengine.v1"; |
||||
option objc_class_prefix = "DISCOVERYENGINE"; |
||||
option php_namespace = "Google\\Cloud\\DiscoveryEngine\\V1"; |
||||
option ruby_package = "Google::Cloud::DiscoveryEngine::V1"; |
||||
|
||||
// Service for ingesting end user actions on a website to Discovery Engine API. |
||||
service UserEventService { |
||||
option (google.api.default_host) = "discoveryengine.googleapis.com"; |
||||
option (google.api.oauth_scopes) = |
||||
"https://www.googleapis.com/auth/cloud-platform"; |
||||
|
||||
// Writes a single user event. |
||||
rpc WriteUserEvent(WriteUserEventRequest) returns (UserEvent) { |
||||
option (google.api.http) = { |
||||
post: "/v1/{parent=projects/*/locations/*/dataStores/*}/userEvents:write" |
||||
body: "user_event" |
||||
additional_bindings { |
||||
post: "/v1/{parent=projects/*/locations/*/collections/*/dataStores/*}/userEvents:write" |
||||
body: "user_event" |
||||
} |
||||
}; |
||||
} |
||||
|
||||
// Writes a single user event from the browser. This uses a GET request to |
||||
// due to browser restriction of POST-ing to a 3rd party domain. |
||||
// |
||||
// This method is used only by the Discovery Engine API JavaScript pixel and |
||||
// Google Tag Manager. Users should not call this method directly. |
||||
rpc CollectUserEvent(CollectUserEventRequest) returns (google.api.HttpBody) { |
||||
option (google.api.http) = { |
||||
get: "/v1/{parent=projects/*/locations/*/dataStores/*}/userEvents:collect" |
||||
additional_bindings { |
||||
get: "/v1/{parent=projects/*/locations/*/collections/*/dataStores/*}/userEvents:collect" |
||||
} |
||||
}; |
||||
} |
||||
|
||||
// Bulk import of User events. Request processing might be |
||||
// synchronous. Events that already exist are skipped. |
||||
// Use this method for backfilling historical user events. |
||||
// |
||||
// Operation.response is of type ImportResponse. Note that it is |
||||
// possible for a subset of the items to be successfully inserted. |
||||
// Operation.metadata is of type ImportMetadata. |
||||
rpc ImportUserEvents(ImportUserEventsRequest) |
||||
returns (google.longrunning.Operation) { |
||||
option (google.api.http) = { |
||||
post: "/v1/{parent=projects/*/locations/*/dataStores/*}/userEvents:import" |
||||
body: "*" |
||||
additional_bindings { |
||||
post: "/v1/{parent=projects/*/locations/*/collections/*/dataStores/*}/userEvents:import" |
||||
body: "*" |
||||
} |
||||
}; |
||||
option (google.longrunning.operation_info) = { |
||||
response_type: "google.cloud.discoveryengine.v1.ImportUserEventsResponse" |
||||
metadata_type: "google.cloud.discoveryengine.v1.ImportUserEventsMetadata" |
||||
}; |
||||
} |
||||
} |
||||
|
||||
// Request message for WriteUserEvent method. |
||||
message WriteUserEventRequest { |
||||
// Required. The parent DataStore resource name, such as |
||||
// `projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}`. |
||||
string parent = 1 [ |
||||
(google.api.field_behavior) = REQUIRED, |
||||
(google.api.resource_reference) = { |
||||
type: "discoveryengine.googleapis.com/DataStore" |
||||
} |
||||
]; |
||||
|
||||
// Required. User event to write. |
||||
optional UserEvent user_event = 2 [(google.api.field_behavior) = REQUIRED]; |
||||
} |
||||
|
||||
// Request message for CollectUserEvent method. |
||||
message CollectUserEventRequest { |
||||
// Required. The parent DataStore resource name, such as |
||||
// `projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}`. |
||||
string parent = 1 [ |
||||
(google.api.field_behavior) = REQUIRED, |
||||
(google.api.resource_reference) = { |
||||
type: "discoveryengine.googleapis.com/DataStore" |
||||
} |
||||
]; |
||||
|
||||
// Required. URL encoded UserEvent proto with a length limit of 2,000,000 |
||||
// characters. |
||||
string user_event = 2 [(google.api.field_behavior) = REQUIRED]; |
||||
|
||||
// The URL including cgi-parameters but excluding the hash fragment with a |
||||
// length limit of 5,000 characters. This is often more useful than the |
||||
// referer URL, because many browsers only send the domain for 3rd party |
||||
// requests. |
||||
optional string uri = 3; |
||||
|
||||
// The event timestamp in milliseconds. This prevents browser caching of |
||||
// otherwise identical get requests. The name is abbreviated to reduce the |
||||
// payload bytes. |
||||
optional int64 ets = 4; |
||||
} |
Loading…
Reference in new issue