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/annotations.proto"; 20import "google/api/client.proto"; 21import "google/api/field_behavior.proto"; 22import "google/api/resource.proto"; 23import "google/cloud/discoveryengine/v1beta/schema.proto"; 24import "google/longrunning/operations.proto"; 25import "google/protobuf/empty.proto"; 26import "google/protobuf/timestamp.proto"; 27 28option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1Beta"; 29option go_package = "cloud.google.com/go/discoveryengine/apiv1beta/discoveryenginepb;discoveryenginepb"; 30option java_multiple_files = true; 31option java_outer_classname = "SchemaServiceProto"; 32option java_package = "com.google.cloud.discoveryengine.v1beta"; 33option objc_class_prefix = "DISCOVERYENGINE"; 34option php_namespace = "Google\\Cloud\\DiscoveryEngine\\V1beta"; 35option ruby_package = "Google::Cloud::DiscoveryEngine::V1beta"; 36 37// Service for managing [Schema][google.cloud.discoveryengine.v1beta.Schema]s. 38service SchemaService { 39 option (google.api.default_host) = "discoveryengine.googleapis.com"; 40 option (google.api.oauth_scopes) = 41 "https://www.googleapis.com/auth/cloud-platform"; 42 43 // Gets a [Schema][google.cloud.discoveryengine.v1beta.Schema]. 44 rpc GetSchema(GetSchemaRequest) returns (Schema) { 45 option (google.api.http) = { 46 get: "/v1beta/{name=projects/*/locations/*/dataStores/*/schemas/*}" 47 additional_bindings { 48 get: "/v1beta/{name=projects/*/locations/*/collections/*/dataStores/*/schemas/*}" 49 } 50 }; 51 option (google.api.method_signature) = "name"; 52 } 53 54 // Gets a list of [Schema][google.cloud.discoveryengine.v1beta.Schema]s. 55 rpc ListSchemas(ListSchemasRequest) returns (ListSchemasResponse) { 56 option (google.api.http) = { 57 get: "/v1beta/{parent=projects/*/locations/*/dataStores/*}/schemas" 58 additional_bindings { 59 get: "/v1beta/{parent=projects/*/locations/*/collections/*/dataStores/*}/schemas" 60 } 61 }; 62 option (google.api.method_signature) = "parent"; 63 } 64 65 // Creates a [Schema][google.cloud.discoveryengine.v1beta.Schema]. 66 rpc CreateSchema(CreateSchemaRequest) returns (google.longrunning.Operation) { 67 option (google.api.http) = { 68 post: "/v1beta/{parent=projects/*/locations/*/dataStores/*}/schemas" 69 body: "schema" 70 additional_bindings { 71 post: "/v1beta/{parent=projects/*/locations/*/collections/*/dataStores/*}/schemas" 72 body: "schema" 73 } 74 }; 75 option (google.api.method_signature) = "parent,schema,schema_id"; 76 option (google.longrunning.operation_info) = { 77 response_type: "google.cloud.discoveryengine.v1beta.Schema" 78 metadata_type: "google.cloud.discoveryengine.v1beta.CreateSchemaMetadata" 79 }; 80 } 81 82 // Updates a [Schema][google.cloud.discoveryengine.v1beta.Schema]. 83 rpc UpdateSchema(UpdateSchemaRequest) returns (google.longrunning.Operation) { 84 option (google.api.http) = { 85 patch: "/v1beta/{schema.name=projects/*/locations/*/dataStores/*/schemas/*}" 86 body: "schema" 87 additional_bindings { 88 patch: "/v1beta/{schema.name=projects/*/locations/*/collections/*/dataStores/*/schemas/*}" 89 body: "schema" 90 } 91 }; 92 option (google.longrunning.operation_info) = { 93 response_type: "google.cloud.discoveryengine.v1beta.Schema" 94 metadata_type: "google.cloud.discoveryengine.v1beta.UpdateSchemaMetadata" 95 }; 96 } 97 98 // Deletes a [Schema][google.cloud.discoveryengine.v1beta.Schema]. 99 rpc DeleteSchema(DeleteSchemaRequest) returns (google.longrunning.Operation) { 100 option (google.api.http) = { 101 delete: "/v1beta/{name=projects/*/locations/*/dataStores/*/schemas/*}" 102 additional_bindings { 103 delete: "/v1beta/{name=projects/*/locations/*/collections/*/dataStores/*/schemas/*}" 104 } 105 }; 106 option (google.api.method_signature) = "name"; 107 option (google.longrunning.operation_info) = { 108 response_type: "google.protobuf.Empty" 109 metadata_type: "google.cloud.discoveryengine.v1beta.DeleteSchemaMetadata" 110 }; 111 } 112} 113 114// Request message for 115// [SchemaService.GetSchema][google.cloud.discoveryengine.v1beta.SchemaService.GetSchema] 116// method. 117message GetSchemaRequest { 118 // Required. The full resource name of the schema, in the format of 119 // `projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}/schemas/{schema}`. 120 string name = 1 [ 121 (google.api.field_behavior) = REQUIRED, 122 (google.api.resource_reference) = { 123 type: "discoveryengine.googleapis.com/Schema" 124 } 125 ]; 126} 127 128// Request message for 129// [SchemaService.ListSchemas][google.cloud.discoveryengine.v1beta.SchemaService.ListSchemas] 130// method. 131message ListSchemasRequest { 132 // Required. The parent data store resource name, in the format of 133 // `projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}`. 134 string parent = 1 [ 135 (google.api.field_behavior) = REQUIRED, 136 (google.api.resource_reference) = { 137 type: "discoveryengine.googleapis.com/DataStore" 138 } 139 ]; 140 141 // The maximum number of [Schema][google.cloud.discoveryengine.v1beta.Schema]s 142 // to return. The service may return fewer than this value. 143 // 144 // If unspecified, at most 100 145 // [Schema][google.cloud.discoveryengine.v1beta.Schema]s will be returned. 146 // 147 // The maximum value is 1000; values above 1000 will be coerced to 1000. 148 int32 page_size = 2; 149 150 // A page token, received from a previous 151 // [SchemaService.ListSchemas][google.cloud.discoveryengine.v1beta.SchemaService.ListSchemas] 152 // call. Provide this to retrieve the subsequent page. 153 // 154 // When paginating, all other parameters provided to 155 // [SchemaService.ListSchemas][google.cloud.discoveryengine.v1beta.SchemaService.ListSchemas] 156 // must match the call that provided the page token. 157 string page_token = 3; 158} 159 160// Response message for 161// [SchemaService.ListSchemas][google.cloud.discoveryengine.v1beta.SchemaService.ListSchemas] 162// method. 163message ListSchemasResponse { 164 // The [Schema][google.cloud.discoveryengine.v1beta.Schema]s. 165 repeated Schema schemas = 1; 166 167 // A token that can be sent as 168 // [ListSchemasRequest.page_token][google.cloud.discoveryengine.v1beta.ListSchemasRequest.page_token] 169 // to retrieve the next page. If this field is omitted, there are no 170 // subsequent pages. 171 string next_page_token = 2; 172} 173 174// Request message for 175// [SchemaService.CreateSchema][google.cloud.discoveryengine.v1beta.SchemaService.CreateSchema] 176// method. 177message CreateSchemaRequest { 178 // Required. The parent data store resource name, in the format of 179 // `projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}`. 180 string parent = 1 [ 181 (google.api.field_behavior) = REQUIRED, 182 (google.api.resource_reference) = { 183 type: "discoveryengine.googleapis.com/DataStore" 184 } 185 ]; 186 187 // Required. The [Schema][google.cloud.discoveryengine.v1beta.Schema] to 188 // create. 189 Schema schema = 2 [(google.api.field_behavior) = REQUIRED]; 190 191 // Required. The ID to use for the 192 // [Schema][google.cloud.discoveryengine.v1beta.Schema], which will become the 193 // final component of the 194 // [Schema.name][google.cloud.discoveryengine.v1beta.Schema.name]. 195 // 196 // This field should conform to 197 // [RFC-1034](https://tools.ietf.org/html/rfc1034) standard with a length 198 // limit of 63 characters. 199 string schema_id = 3 [(google.api.field_behavior) = REQUIRED]; 200} 201 202// Request message for 203// [SchemaService.UpdateSchema][google.cloud.discoveryengine.v1beta.SchemaService.UpdateSchema] 204// method. 205message UpdateSchemaRequest { 206 // Required. The [Schema][google.cloud.discoveryengine.v1beta.Schema] to 207 // update. 208 Schema schema = 1 [(google.api.field_behavior) = REQUIRED]; 209 210 // If set to true, and the 211 // [Schema][google.cloud.discoveryengine.v1beta.Schema] is not found, a new 212 // [Schema][google.cloud.discoveryengine.v1beta.Schema] will be created. In 213 // this situation, `update_mask` is ignored. 214 bool allow_missing = 3; 215} 216 217// Request message for 218// [SchemaService.DeleteSchema][google.cloud.discoveryengine.v1beta.SchemaService.DeleteSchema] 219// method. 220message DeleteSchemaRequest { 221 // Required. The full resource name of the schema, in the format of 222 // `projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}/schemas/{schema}`. 223 string name = 1 [ 224 (google.api.field_behavior) = REQUIRED, 225 (google.api.resource_reference) = { 226 type: "discoveryengine.googleapis.com/Schema" 227 } 228 ]; 229} 230 231// Metadata for Create Schema LRO. 232message CreateSchemaMetadata { 233 // Operation create time. 234 google.protobuf.Timestamp create_time = 1; 235 236 // Operation last update time. If the operation is done, this is also the 237 // finish time. 238 google.protobuf.Timestamp update_time = 2; 239} 240 241// Metadata for UpdateSchema LRO. 242message UpdateSchemaMetadata { 243 // Operation create time. 244 google.protobuf.Timestamp create_time = 1; 245 246 // Operation last update time. If the operation is done, this is also the 247 // finish time. 248 google.protobuf.Timestamp update_time = 2; 249} 250 251// Metadata for DeleteSchema LRO. 252message DeleteSchemaMetadata { 253 // Operation create time. 254 google.protobuf.Timestamp create_time = 1; 255 256 // Operation last update time. If the operation is done, this is also the 257 // finish time. 258 google.protobuf.Timestamp update_time = 2; 259} 260