knowledge_base.proto 11 KB

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