xref: /aosp_15_r20/external/googleapis/google/cloud/discoveryengine/v1beta/site_search_engine.proto (revision d5c09012810ac0c9f33fe448fb6da8260d444cc9)
1// Copyright 2022 Google LLC
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7//     http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15syntax = "proto3";
16
17package google.cloud.discoveryengine.v1beta;
18
19import "google/api/field_behavior.proto";
20import "google/api/resource.proto";
21import "google/protobuf/timestamp.proto";
22
23option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1Beta";
24option go_package = "cloud.google.com/go/discoveryengine/apiv1beta/discoveryenginepb;discoveryenginepb";
25option java_multiple_files = true;
26option java_outer_classname = "SiteSearchEngineProto";
27option java_package = "com.google.cloud.discoveryengine.v1beta";
28option objc_class_prefix = "DISCOVERYENGINE";
29option php_namespace = "Google\\Cloud\\DiscoveryEngine\\V1beta";
30option ruby_package = "Google::Cloud::DiscoveryEngine::V1beta";
31
32// SiteSearchEngine captures DataStore level site search persisting
33// configurations. It is a singleton value per data store.
34message SiteSearchEngine {
35  option (google.api.resource) = {
36    type: "discoveryengine.googleapis.com/SiteSearchEngine"
37    pattern: "projects/{project}/locations/{location}/dataStores/{data_store}/siteSearchEngine"
38    pattern: "projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}/siteSearchEngine"
39  };
40
41  // The fully qualified resource name of the site search engine.
42  // Format: `projects/*/locations/*/dataStores/*/siteSearchEngine`
43  string name = 1;
44}
45
46// A target site for the SiteSearchEngine.
47message TargetSite {
48  option (google.api.resource) = {
49    type: "discoveryengine.googleapis.com/TargetSite"
50    pattern: "projects/{project}/locations/{location}/dataStores/{data_store}/siteSearchEngine/targetSites/{target_site}"
51    pattern: "projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}/siteSearchEngine/targetSites/{target_site}"
52  };
53
54  // Site search indexing failure reasons.
55  message FailureReason {
56    // Failed due to insufficient quota.
57    message QuotaFailure {
58      // This number is an estimation on how much total quota this project needs
59      // to successfully complete indexing.
60      int64 total_required_quota = 1;
61    }
62
63    // Failure reason.
64    oneof failure {
65      // Failed due to insufficient quota.
66      QuotaFailure quota_failure = 1;
67    }
68  }
69
70  // Possible target site types.
71  enum Type {
72    // This value is unused. In this case, server behavior defaults to
73    // [Type.INCLUDE][google.cloud.discoveryengine.v1beta.TargetSite.Type.INCLUDE].
74    TYPE_UNSPECIFIED = 0;
75
76    // Include the target site.
77    INCLUDE = 1;
78
79    // Exclude the target site.
80    EXCLUDE = 2;
81  }
82
83  // Target site indexing status enumeration.
84  enum IndexingStatus {
85    // Defaults to SUCCEEDED.
86    INDEXING_STATUS_UNSPECIFIED = 0;
87
88    // The target site is in the update queue and will be picked up by indexing
89    // pipeline.
90    PENDING = 1;
91
92    // The target site fails to be indexed.
93    FAILED = 2;
94
95    // The target site has been indexed.
96    SUCCEEDED = 3;
97
98    // The previously indexed target site has been marked to be deleted. This is
99    // a transitioning state which will resulted in either:
100    // 1. target site deleted if unindexing is successful;
101    // 2. state reverts to SUCCEEDED if the unindexing fails.
102    DELETING = 4;
103  }
104
105  // Output only. The fully qualified resource name of the target site.
106  // `projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}/siteSearchEngine/targetSites/{target_site}`
107  // The `target_site_id` is system-generated.
108  string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
109
110  // Required. Input only. The user provided URI pattern from which the
111  // `generated_uri_pattern` is generated.
112  string provided_uri_pattern = 2 [
113    (google.api.field_behavior) = REQUIRED,
114    (google.api.field_behavior) = INPUT_ONLY
115  ];
116
117  // The type of the target site, e.g., whether the site is to be included or
118  // excluded.
119  Type type = 3;
120
121  // Input only. If set to false, a uri_pattern is generated to include all
122  // pages whose address contains the provided_uri_pattern. If set to true, an
123  // uri_pattern is generated to try to be an exact match of the
124  // provided_uri_pattern or just the specific page if the provided_uri_pattern
125  // is a specific one. provided_uri_pattern is always normalized to
126  // generate the URI pattern to be used by the search engine.
127  bool exact_match = 6 [(google.api.field_behavior) = INPUT_ONLY];
128
129  // Output only. This is system-generated based on the provided_uri_pattern.
130  string generated_uri_pattern = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
131
132  // Output only. Site ownership and validity verification status.
133  SiteVerificationInfo site_verification_info = 7
134      [(google.api.field_behavior) = OUTPUT_ONLY];
135
136  // Output only. Indexing status.
137  IndexingStatus indexing_status = 8
138      [(google.api.field_behavior) = OUTPUT_ONLY];
139
140  // Output only. The target site's last updated time.
141  google.protobuf.Timestamp update_time = 5
142      [(google.api.field_behavior) = OUTPUT_ONLY];
143
144  // Output only. Failure reason.
145  FailureReason failure_reason = 9 [(google.api.field_behavior) = OUTPUT_ONLY];
146}
147
148// Verification information for target sites in advanced site search.
149message SiteVerificationInfo {
150  // Site verification state.
151  enum SiteVerificationState {
152    // Defaults to VERIFIED.
153    SITE_VERIFICATION_STATE_UNSPECIFIED = 0;
154
155    // Site ownership verified.
156    VERIFIED = 1;
157
158    // Site ownership pending verification or verification failed.
159    UNVERIFIED = 2;
160
161    // Site exempt from verification, e.g., a public website that opens to all.
162    EXEMPTED = 3;
163  }
164
165  // Site verification state indicating the ownership and validity.
166  SiteVerificationState site_verification_state = 1;
167
168  // Latest site verification time.
169  google.protobuf.Timestamp verify_time = 2;
170}
171