knowledge_base.proto 8.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234
  1. // Copyright 2021 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. }
  152. // Response message for [KnowledgeBases.ListKnowledgeBases][google.cloud.dialogflow.v2.KnowledgeBases.ListKnowledgeBases].
  153. message ListKnowledgeBasesResponse {
  154. // The list of knowledge bases.
  155. repeated KnowledgeBase knowledge_bases = 1;
  156. // Token to retrieve the next page of results, or empty if there are no
  157. // more results in the list.
  158. string next_page_token = 2;
  159. }
  160. // Request message for [KnowledgeBases.GetKnowledgeBase][google.cloud.dialogflow.v2.KnowledgeBases.GetKnowledgeBase].
  161. message GetKnowledgeBaseRequest {
  162. // Required. The name of the knowledge base to retrieve.
  163. // Format `projects/<Project ID>/locations/<Location
  164. // ID>/knowledgeBases/<Knowledge Base ID>`.
  165. string name = 1 [
  166. (google.api.field_behavior) = REQUIRED,
  167. (google.api.resource_reference) = {
  168. type: "dialogflow.googleapis.com/KnowledgeBase"
  169. }
  170. ];
  171. }
  172. // Request message for [KnowledgeBases.CreateKnowledgeBase][google.cloud.dialogflow.v2.KnowledgeBases.CreateKnowledgeBase].
  173. message CreateKnowledgeBaseRequest {
  174. // Required. The project to create a knowledge base for.
  175. // Format: `projects/<Project ID>/locations/<Location ID>`.
  176. string parent = 1 [
  177. (google.api.field_behavior) = REQUIRED,
  178. (google.api.resource_reference) = {
  179. child_type: "dialogflow.googleapis.com/KnowledgeBase"
  180. }
  181. ];
  182. // Required. The knowledge base to create.
  183. KnowledgeBase knowledge_base = 2 [(google.api.field_behavior) = REQUIRED];
  184. }
  185. // Request message for [KnowledgeBases.DeleteKnowledgeBase][google.cloud.dialogflow.v2.KnowledgeBases.DeleteKnowledgeBase].
  186. message DeleteKnowledgeBaseRequest {
  187. // Required. The name of the knowledge base to delete.
  188. // Format: `projects/<Project ID>/locations/<Location
  189. // ID>/knowledgeBases/<Knowledge Base ID>`.
  190. string name = 1 [
  191. (google.api.field_behavior) = REQUIRED,
  192. (google.api.resource_reference) = {
  193. type: "dialogflow.googleapis.com/KnowledgeBase"
  194. }
  195. ];
  196. // Optional. Force deletes the knowledge base. When set to true, any documents
  197. // in the knowledge base are also deleted.
  198. bool force = 2 [(google.api.field_behavior) = OPTIONAL];
  199. }
  200. // Request message for [KnowledgeBases.UpdateKnowledgeBase][google.cloud.dialogflow.v2.KnowledgeBases.UpdateKnowledgeBase].
  201. message UpdateKnowledgeBaseRequest {
  202. // Required. The knowledge base to update.
  203. KnowledgeBase knowledge_base = 1 [(google.api.field_behavior) = REQUIRED];
  204. // Optional. Not specified means `update all`.
  205. // Currently, only `display_name` can be updated, an InvalidArgument will be
  206. // returned for attempting to update other fields.
  207. google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = OPTIONAL];
  208. }