1// Copyright 2023 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.dialogflow.v2beta1; 18 19import "google/api/annotations.proto"; 20import "google/api/client.proto"; 21import "google/api/field_behavior.proto"; 22import "google/api/resource.proto"; 23import "google/protobuf/empty.proto"; 24import "google/protobuf/field_mask.proto"; 25 26option cc_enable_arenas = true; 27option csharp_namespace = "Google.Cloud.Dialogflow.V2Beta1"; 28option go_package = "cloud.google.com/go/dialogflow/apiv2beta1/dialogflowpb;dialogflowpb"; 29option java_multiple_files = true; 30option java_outer_classname = "KnowledgeBaseProto"; 31option java_package = "com.google.cloud.dialogflow.v2beta1"; 32option objc_class_prefix = "DF"; 33 34// Service for managing 35// [KnowledgeBases][google.cloud.dialogflow.v2beta1.KnowledgeBase]. 36service KnowledgeBases { 37 option (google.api.default_host) = "dialogflow.googleapis.com"; 38 option (google.api.oauth_scopes) = 39 "https://www.googleapis.com/auth/cloud-platform," 40 "https://www.googleapis.com/auth/dialogflow"; 41 42 // Returns the list of all knowledge bases of the specified agent. 43 // 44 // Note: The `projects.agent.knowledgeBases` resource is deprecated; 45 // only use `projects.knowledgeBases`. 46 rpc ListKnowledgeBases(ListKnowledgeBasesRequest) 47 returns (ListKnowledgeBasesResponse) { 48 option (google.api.http) = { 49 get: "/v2beta1/{parent=projects/*}/knowledgeBases" 50 additional_bindings { 51 get: "/v2beta1/{parent=projects/*/locations/*}/knowledgeBases" 52 } 53 additional_bindings { 54 get: "/v2beta1/{parent=projects/*/agent}/knowledgeBases" 55 } 56 }; 57 option (google.api.method_signature) = "parent"; 58 } 59 60 // Retrieves the specified knowledge base. 61 // 62 // Note: The `projects.agent.knowledgeBases` resource is deprecated; 63 // only use `projects.knowledgeBases`. 64 rpc GetKnowledgeBase(GetKnowledgeBaseRequest) returns (KnowledgeBase) { 65 option (google.api.http) = { 66 get: "/v2beta1/{name=projects/*/knowledgeBases/*}" 67 additional_bindings { 68 get: "/v2beta1/{name=projects/*/locations/*/knowledgeBases/*}" 69 } 70 additional_bindings { 71 get: "/v2beta1/{name=projects/*/agent/knowledgeBases/*}" 72 } 73 }; 74 option (google.api.method_signature) = "name"; 75 } 76 77 // Creates a knowledge base. 78 // 79 // Note: The `projects.agent.knowledgeBases` resource is deprecated; 80 // only use `projects.knowledgeBases`. 81 rpc CreateKnowledgeBase(CreateKnowledgeBaseRequest) returns (KnowledgeBase) { 82 option (google.api.http) = { 83 post: "/v2beta1/{parent=projects/*}/knowledgeBases" 84 body: "knowledge_base" 85 additional_bindings { 86 post: "/v2beta1/{parent=projects/*/locations/*}/knowledgeBases" 87 body: "knowledge_base" 88 } 89 additional_bindings { 90 post: "/v2beta1/{parent=projects/*/agent}/knowledgeBases" 91 body: "knowledge_base" 92 } 93 }; 94 option (google.api.method_signature) = "parent,knowledge_base"; 95 } 96 97 // Deletes the specified knowledge base. 98 // 99 // Note: The `projects.agent.knowledgeBases` resource is deprecated; 100 // only use `projects.knowledgeBases`. 101 rpc DeleteKnowledgeBase(DeleteKnowledgeBaseRequest) 102 returns (google.protobuf.Empty) { 103 option (google.api.http) = { 104 delete: "/v2beta1/{name=projects/*/knowledgeBases/*}" 105 additional_bindings { 106 delete: "/v2beta1/{name=projects/*/locations/*/knowledgeBases/*}" 107 } 108 additional_bindings { 109 delete: "/v2beta1/{name=projects/*/agent/knowledgeBases/*}" 110 } 111 }; 112 option (google.api.method_signature) = "name"; 113 } 114 115 // Updates the specified knowledge base. 116 // 117 // Note: The `projects.agent.knowledgeBases` resource is deprecated; 118 // only use `projects.knowledgeBases`. 119 rpc UpdateKnowledgeBase(UpdateKnowledgeBaseRequest) returns (KnowledgeBase) { 120 option (google.api.http) = { 121 patch: "/v2beta1/{knowledge_base.name=projects/*/knowledgeBases/*}" 122 body: "knowledge_base" 123 additional_bindings { 124 patch: "/v2beta1/{knowledge_base.name=projects/*/locations/*/knowledgeBases/*}" 125 body: "knowledge_base" 126 } 127 additional_bindings { 128 patch: "/v2beta1/{knowledge_base.name=projects/*/agent/knowledgeBases/*}" 129 body: "knowledge_base" 130 } 131 }; 132 option (google.api.method_signature) = "knowledge_base,update_mask"; 133 option (google.api.method_signature) = "knowledge_base"; 134 } 135} 136 137// A knowledge base represents a collection of knowledge documents that you 138// provide to Dialogflow. Your knowledge documents contain information that may 139// be useful during conversations with end-users. Some Dialogflow features use 140// knowledge bases when looking for a response to an end-user input. 141// 142// For more information, see the [knowledge base 143// guide](https://cloud.google.com/dialogflow/docs/how/knowledge-bases). 144// 145// Note: The `projects.agent.knowledgeBases` resource is deprecated; 146// only use `projects.knowledgeBases`. 147message KnowledgeBase { 148 option (google.api.resource) = { 149 type: "dialogflow.googleapis.com/KnowledgeBase" 150 pattern: "projects/{project}/knowledgeBases/{knowledge_base}" 151 pattern: "projects/{project}/locations/{location}/knowledgeBases/{knowledge_base}" 152 }; 153 154 // The knowledge base resource name. 155 // The name must be empty when creating a knowledge base. 156 // Format: `projects/<Project ID>/locations/<Location 157 // ID>/knowledgeBases/<Knowledge Base ID>`. 158 string name = 1; 159 160 // Required. The display name of the knowledge base. The name must be 1024 161 // bytes or less; otherwise, the creation request fails. 162 string display_name = 2 [(google.api.field_behavior) = REQUIRED]; 163 164 // Language which represents the KnowledgeBase. When the KnowledgeBase is 165 // created/updated, this is populated for all non en-us languages. If not 166 // populated, the default language en-us applies. 167 string language_code = 4; 168} 169 170// Request message for 171// [KnowledgeBases.ListKnowledgeBases][google.cloud.dialogflow.v2beta1.KnowledgeBases.ListKnowledgeBases]. 172message ListKnowledgeBasesRequest { 173 // Required. The project to list of knowledge bases for. 174 // Format: `projects/<Project ID>/locations/<Location ID>`. 175 string parent = 1 [ 176 (google.api.field_behavior) = REQUIRED, 177 (google.api.resource_reference) = { 178 child_type: "dialogflow.googleapis.com/KnowledgeBase" 179 } 180 ]; 181 182 // The maximum number of items to return in a single page. By 183 // default 10 and at most 100. 184 int32 page_size = 2; 185 186 // The next_page_token value returned from a previous list request. 187 string page_token = 3; 188 189 // The filter expression used to filter knowledge bases returned by the list 190 // method. The expression has the following syntax: 191 // 192 // <field> <operator> <value> [AND <field> <operator> <value>] ... 193 // 194 // The following fields and operators are supported: 195 // 196 // * display_name with has(:) operator 197 // * language_code with equals(=) operator 198 // 199 // Examples: 200 // 201 // * 'language_code=en-us' matches knowledge bases with en-us language code. 202 // * 'display_name:articles' matches knowledge bases whose display name 203 // contains "articles". 204 // * 'display_name:"Best Articles"' matches knowledge bases whose display 205 // name contains "Best Articles". 206 // * 'language_code=en-gb AND display_name=articles' matches all knowledge 207 // bases whose display name contains "articles" and whose language code is 208 // "en-gb". 209 // 210 // Note: An empty filter string (i.e. "") is a no-op and will result in no 211 // filtering. 212 // 213 // For more information about filtering, see 214 // [API Filtering](https://aip.dev/160). 215 string filter = 4; 216} 217 218// Response message for 219// [KnowledgeBases.ListKnowledgeBases][google.cloud.dialogflow.v2beta1.KnowledgeBases.ListKnowledgeBases]. 220message ListKnowledgeBasesResponse { 221 // The list of knowledge bases. 222 repeated KnowledgeBase knowledge_bases = 1; 223 224 // Token to retrieve the next page of results, or empty if there are no 225 // more results in the list. 226 string next_page_token = 2; 227} 228 229// Request message for 230// [KnowledgeBases.GetKnowledgeBase][google.cloud.dialogflow.v2beta1.KnowledgeBases.GetKnowledgeBase]. 231message GetKnowledgeBaseRequest { 232 // Required. The name of the knowledge base to retrieve. 233 // Format `projects/<Project ID>/locations/<Location 234 // ID>/knowledgeBases/<Knowledge Base ID>`. 235 string name = 1 [ 236 (google.api.field_behavior) = REQUIRED, 237 (google.api.resource_reference) = { 238 type: "dialogflow.googleapis.com/KnowledgeBase" 239 } 240 ]; 241} 242 243// Request message for 244// [KnowledgeBases.CreateKnowledgeBase][google.cloud.dialogflow.v2beta1.KnowledgeBases.CreateKnowledgeBase]. 245message CreateKnowledgeBaseRequest { 246 // Required. The project to create a knowledge base for. 247 // Format: `projects/<Project ID>/locations/<Location ID>`. 248 string parent = 1 [ 249 (google.api.field_behavior) = REQUIRED, 250 (google.api.resource_reference) = { 251 child_type: "dialogflow.googleapis.com/KnowledgeBase" 252 } 253 ]; 254 255 // Required. The knowledge base to create. 256 KnowledgeBase knowledge_base = 2 [(google.api.field_behavior) = REQUIRED]; 257} 258 259// Request message for 260// [KnowledgeBases.DeleteKnowledgeBase][google.cloud.dialogflow.v2beta1.KnowledgeBases.DeleteKnowledgeBase]. 261message DeleteKnowledgeBaseRequest { 262 // Required. The name of the knowledge base to delete. 263 // Format: `projects/<Project ID>/locations/<Location 264 // ID>/knowledgeBases/<Knowledge Base ID>`. 265 string name = 1 [ 266 (google.api.field_behavior) = REQUIRED, 267 (google.api.resource_reference) = { 268 type: "dialogflow.googleapis.com/KnowledgeBase" 269 } 270 ]; 271 272 // Optional. Force deletes the knowledge base. When set to true, any documents 273 // in the knowledge base are also deleted. 274 bool force = 2 [(google.api.field_behavior) = OPTIONAL]; 275} 276 277// Request message for 278// [KnowledgeBases.UpdateKnowledgeBase][google.cloud.dialogflow.v2beta1.KnowledgeBases.UpdateKnowledgeBase]. 279message UpdateKnowledgeBaseRequest { 280 // Required. The knowledge base to update. 281 KnowledgeBase knowledge_base = 1 [(google.api.field_behavior) = REQUIRED]; 282 283 // Optional. Not specified means `update all`. 284 // Currently, only `display_name` can be updated, an InvalidArgument will be 285 // returned for attempting to update other fields. 286 google.protobuf.FieldMask update_mask = 2 287 [(google.api.field_behavior) = OPTIONAL]; 288} 289