• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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.v1;
18
19import "google/api/annotations.proto";
20import "google/api/client.proto";
21import "google/api/field_behavior.proto";
22import "google/api/resource.proto";
23import "google/cloud/discoveryengine/v1/data_store.proto";
24import "google/longrunning/operations.proto";
25import "google/protobuf/empty.proto";
26import "google/protobuf/field_mask.proto";
27import "google/protobuf/timestamp.proto";
28
29option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1";
30option go_package = "cloud.google.com/go/discoveryengine/apiv1/discoveryenginepb;discoveryenginepb";
31option java_multiple_files = true;
32option java_outer_classname = "DataStoreServiceProto";
33option java_package = "com.google.cloud.discoveryengine.v1";
34option objc_class_prefix = "DISCOVERYENGINE";
35option php_namespace = "Google\\Cloud\\DiscoveryEngine\\V1";
36option ruby_package = "Google::Cloud::DiscoveryEngine::V1";
37
38// Service for managing [DataStore][google.cloud.discoveryengine.v1.DataStore]
39// configuration.
40service DataStoreService {
41  option (google.api.default_host) = "discoveryengine.googleapis.com";
42  option (google.api.oauth_scopes) =
43      "https://www.googleapis.com/auth/cloud-platform";
44
45  // Creates a [DataStore][google.cloud.discoveryengine.v1.DataStore].
46  //
47  // DataStore is for storing
48  // [Documents][google.cloud.discoveryengine.v1.Document]. To serve these
49  // documents for Search, or Recommendation use case, an
50  // [Engine][google.cloud.discoveryengine.v1.Engine] needs to be created
51  // separately.
52  rpc CreateDataStore(CreateDataStoreRequest)
53      returns (google.longrunning.Operation) {
54    option (google.api.http) = {
55      post: "/v1/{parent=projects/*/locations/*}/dataStores"
56      body: "data_store"
57      additional_bindings {
58        post: "/v1/{parent=projects/*/locations/*/collections/*}/dataStores"
59        body: "data_store"
60      }
61    };
62    option (google.api.method_signature) = "parent,data_store,data_store_id";
63    option (google.longrunning.operation_info) = {
64      response_type: "google.cloud.discoveryengine.v1.DataStore"
65      metadata_type: "google.cloud.discoveryengine.v1.CreateDataStoreMetadata"
66    };
67  }
68
69  // Gets a [DataStore][google.cloud.discoveryengine.v1.DataStore].
70  rpc GetDataStore(GetDataStoreRequest) returns (DataStore) {
71    option (google.api.http) = {
72      get: "/v1/{name=projects/*/locations/*/dataStores/*}"
73      additional_bindings {
74        get: "/v1/{name=projects/*/locations/*/collections/*/dataStores/*}"
75      }
76    };
77    option (google.api.method_signature) = "name";
78  }
79
80  // Lists all the [DataStore][google.cloud.discoveryengine.v1.DataStore]s
81  // associated with the project.
82  rpc ListDataStores(ListDataStoresRequest) returns (ListDataStoresResponse) {
83    option (google.api.http) = {
84      get: "/v1/{parent=projects/*/locations/*}/dataStores"
85      additional_bindings {
86        get: "/v1/{parent=projects/*/locations/*/collections/*}/dataStores"
87      }
88    };
89    option (google.api.method_signature) = "parent";
90  }
91
92  // Deletes a [DataStore][google.cloud.discoveryengine.v1.DataStore].
93  rpc DeleteDataStore(DeleteDataStoreRequest)
94      returns (google.longrunning.Operation) {
95    option (google.api.http) = {
96      delete: "/v1/{name=projects/*/locations/*/dataStores/*}"
97      additional_bindings {
98        delete: "/v1/{name=projects/*/locations/*/collections/*/dataStores/*}"
99      }
100    };
101    option (google.api.method_signature) = "name";
102    option (google.longrunning.operation_info) = {
103      response_type: "google.protobuf.Empty"
104      metadata_type: "google.cloud.discoveryengine.v1.DeleteDataStoreMetadata"
105    };
106  }
107
108  // Updates a [DataStore][google.cloud.discoveryengine.v1.DataStore]
109  rpc UpdateDataStore(UpdateDataStoreRequest) returns (DataStore) {
110    option (google.api.http) = {
111      patch: "/v1/{data_store.name=projects/*/locations/*/dataStores/*}"
112      body: "data_store"
113      additional_bindings {
114        patch: "/v1/{data_store.name=projects/*/locations/*/collections/*/dataStores/*}"
115        body: "data_store"
116      }
117    };
118    option (google.api.method_signature) = "data_store,update_mask";
119  }
120}
121
122// Request for
123// [DataStoreService.CreateDataStore][google.cloud.discoveryengine.v1.DataStoreService.CreateDataStore]
124// method.
125message CreateDataStoreRequest {
126  // Required. The parent resource name, such as
127  // `projects/{project}/locations/{location}/collections/{collection}`.
128  string parent = 1 [
129    (google.api.field_behavior) = REQUIRED,
130    (google.api.resource_reference) = {
131      type: "discoveryengine.googleapis.com/Collection"
132    }
133  ];
134
135  // Required. The [DataStore][google.cloud.discoveryengine.v1.DataStore] to
136  // create.
137  DataStore data_store = 2 [(google.api.field_behavior) = REQUIRED];
138
139  // Required. The ID to use for the
140  // [DataStore][google.cloud.discoveryengine.v1.DataStore], which will become
141  // the final component of the
142  // [DataStore][google.cloud.discoveryengine.v1.DataStore]'s resource name.
143  //
144  // This field must conform to [RFC-1034](https://tools.ietf.org/html/rfc1034)
145  // standard with a length limit of 63 characters. Otherwise, an
146  // INVALID_ARGUMENT error is returned.
147  string data_store_id = 3 [(google.api.field_behavior) = REQUIRED];
148
149  // A boolean flag indicating whether user want to directly create an advanced
150  // data store for site search.
151  // If the data store is not configured as site
152  // search (GENERIC vertical and PUBLIC_WEBSITE content_config), this flag will
153  // be ignored.
154  bool create_advanced_site_search = 4;
155}
156
157// Request message for
158// [DataStoreService.GetDataStore][google.cloud.discoveryengine.v1.DataStoreService.GetDataStore]
159// method.
160message GetDataStoreRequest {
161  // Required. Full resource name of
162  // [DataStore][google.cloud.discoveryengine.v1.DataStore], such as
163  // `projects/{project}/locations/{location}/collections/{collection_id}/dataStores/{data_store_id}`.
164  //
165  // If the caller does not have permission to access the
166  // [DataStore][google.cloud.discoveryengine.v1.DataStore], regardless of
167  // whether or not it exists, a PERMISSION_DENIED error is returned.
168  //
169  // If the requested [DataStore][google.cloud.discoveryengine.v1.DataStore]
170  // does not exist, a NOT_FOUND error is returned.
171  string name = 1 [
172    (google.api.field_behavior) = REQUIRED,
173    (google.api.resource_reference) = {
174      type: "discoveryengine.googleapis.com/DataStore"
175    }
176  ];
177}
178
179// Metadata related to the progress of the
180// [DataStoreService.CreateDataStore][google.cloud.discoveryengine.v1.DataStoreService.CreateDataStore]
181// operation. This will be returned by the google.longrunning.Operation.metadata
182// field.
183message CreateDataStoreMetadata {
184  // Operation create time.
185  google.protobuf.Timestamp create_time = 1;
186
187  // Operation last update time. If the operation is done, this is also the
188  // finish time.
189  google.protobuf.Timestamp update_time = 2;
190}
191
192// Request message for
193// [DataStoreService.ListDataStores][google.cloud.discoveryengine.v1.DataStoreService.ListDataStores]
194// method.
195message ListDataStoresRequest {
196  // Required. The parent branch resource name, such as
197  // `projects/{project}/locations/{location}/collections/{collection_id}`.
198  //
199  // If the caller does not have permission to list
200  // [DataStore][google.cloud.discoveryengine.v1.DataStore]s under this
201  // location, regardless of whether or not this data store exists, a
202  // PERMISSION_DENIED error is returned.
203  string parent = 1 [
204    (google.api.field_behavior) = REQUIRED,
205    (google.api.resource_reference) = {
206      type: "discoveryengine.googleapis.com/Collection"
207    }
208  ];
209
210  // Maximum number of [DataStore][google.cloud.discoveryengine.v1.DataStore]s
211  // to return. If unspecified, defaults to 10. The maximum allowed value is 50.
212  // Values above 50 will be coerced to 50.
213  //
214  // If this field is negative, an INVALID_ARGUMENT is returned.
215  int32 page_size = 2;
216
217  // A page token
218  // [ListDataStoresResponse.next_page_token][google.cloud.discoveryengine.v1.ListDataStoresResponse.next_page_token],
219  // received from a previous
220  // [DataStoreService.ListDataStores][google.cloud.discoveryengine.v1.DataStoreService.ListDataStores]
221  // call. Provide this to retrieve the subsequent page.
222  //
223  // When paginating, all other parameters provided to
224  // [DataStoreService.ListDataStores][google.cloud.discoveryengine.v1.DataStoreService.ListDataStores]
225  // must match the call that provided the page token. Otherwise, an
226  // INVALID_ARGUMENT error is returned.
227  string page_token = 3;
228
229  // Filter by solution type. For example: filter =
230  // 'solution_type:SOLUTION_TYPE_SEARCH'
231  string filter = 4;
232}
233
234// Response message for
235// [DataStoreService.ListDataStores][google.cloud.discoveryengine.v1.DataStoreService.ListDataStores]
236// method.
237message ListDataStoresResponse {
238  // All the customer's [DataStore][google.cloud.discoveryengine.v1.DataStore]s.
239  repeated DataStore data_stores = 1;
240
241  // A token that can be sent as
242  // [ListDataStoresRequest.page_token][google.cloud.discoveryengine.v1.ListDataStoresRequest.page_token]
243  // to retrieve the next page. If this field is omitted, there are no
244  // subsequent pages.
245  string next_page_token = 2;
246}
247
248// Request message for
249// [DataStoreService.DeleteDataStore][google.cloud.discoveryengine.v1.DataStoreService.DeleteDataStore]
250// method.
251message DeleteDataStoreRequest {
252  // Required. Full resource name of
253  // [DataStore][google.cloud.discoveryengine.v1.DataStore], such as
254  // `projects/{project}/locations/{location}/collections/{collection_id}/dataStores/{data_store_id}`.
255  //
256  // If the caller does not have permission to delete the
257  // [DataStore][google.cloud.discoveryengine.v1.DataStore], regardless of
258  // whether or not it exists, a PERMISSION_DENIED error is returned.
259  //
260  // If the [DataStore][google.cloud.discoveryengine.v1.DataStore] to delete
261  // does not exist, a NOT_FOUND error is returned.
262  string name = 1 [
263    (google.api.field_behavior) = REQUIRED,
264    (google.api.resource_reference) = {
265      type: "discoveryengine.googleapis.com/DataStore"
266    }
267  ];
268}
269
270// Request message for
271// [DataStoreService.UpdateDataStore][google.cloud.discoveryengine.v1.DataStoreService.UpdateDataStore]
272// method.
273message UpdateDataStoreRequest {
274  // Required. The [DataStore][google.cloud.discoveryengine.v1.DataStore] to
275  // update.
276  //
277  // If the caller does not have permission to update the
278  // [DataStore][google.cloud.discoveryengine.v1.DataStore], regardless of
279  // whether or not it exists, a PERMISSION_DENIED error is returned.
280  //
281  // If the [DataStore][google.cloud.discoveryengine.v1.DataStore] to update
282  // does not exist, a NOT_FOUND error is returned.
283  DataStore data_store = 1 [(google.api.field_behavior) = REQUIRED];
284
285  // Indicates which fields in the provided
286  // [DataStore][google.cloud.discoveryengine.v1.DataStore] to update.
287  //
288  // If an unsupported or unknown field is provided, an INVALID_ARGUMENT error
289  // is returned.
290  google.protobuf.FieldMask update_mask = 2;
291}
292
293// Metadata related to the progress of the
294// [DataStoreService.DeleteDataStore][google.cloud.discoveryengine.v1.DataStoreService.DeleteDataStore]
295// operation. This will be returned by the google.longrunning.Operation.metadata
296// field.
297message DeleteDataStoreMetadata {
298  // Operation create time.
299  google.protobuf.Timestamp create_time = 1;
300
301  // Operation last update time. If the operation is done, this is also the
302  // finish time.
303  google.protobuf.Timestamp update_time = 2;
304}
305