knowledge_base.proto 9.9 KB

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