agent.proto 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578
  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/cloud/dialogflow/v2beta1/validation_result.proto";
  21. import "google/longrunning/operations.proto";
  22. import "google/protobuf/empty.proto";
  23. import "google/protobuf/field_mask.proto";
  24. option cc_enable_arenas = true;
  25. option csharp_namespace = "Google.Cloud.Dialogflow.V2beta1";
  26. option go_package = "google.golang.org/genproto/googleapis/cloud/dialogflow/v2beta1;dialogflow";
  27. option java_multiple_files = true;
  28. option java_outer_classname = "AgentProto";
  29. option java_package = "com.google.cloud.dialogflow.v2beta1";
  30. option objc_class_prefix = "DF";
  31. // Service for managing [Agents][google.cloud.dialogflow.v2beta1.Agent].
  32. service Agents {
  33. option (google.api.default_host) = "dialogflow.googleapis.com";
  34. option (google.api.oauth_scopes) =
  35. "https://www.googleapis.com/auth/cloud-platform,"
  36. "https://www.googleapis.com/auth/dialogflow";
  37. // Retrieves the specified agent.
  38. rpc GetAgent(GetAgentRequest) returns (Agent) {
  39. option (google.api.http) = {
  40. get: "/v2beta1/{parent=projects/*}/agent"
  41. additional_bindings {
  42. get: "/v2beta1/{parent=projects/*/locations/*}/agent"
  43. }
  44. };
  45. option (google.api.method_signature) = "parent";
  46. }
  47. // Creates/updates the specified agent.
  48. //
  49. // Note: You should always train an agent prior to sending it queries. See the
  50. // [training
  51. // documentation](https://cloud.google.com/dialogflow/es/docs/training).
  52. rpc SetAgent(SetAgentRequest) returns (Agent) {
  53. option (google.api.http) = {
  54. post: "/v2beta1/{agent.parent=projects/*}/agent"
  55. body: "agent"
  56. additional_bindings {
  57. post: "/v2beta1/{agent.parent=projects/*/locations/*}/agent"
  58. body: "agent"
  59. }
  60. };
  61. option (google.api.method_signature) = "agent";
  62. }
  63. // Deletes the specified agent.
  64. rpc DeleteAgent(DeleteAgentRequest) returns (google.protobuf.Empty) {
  65. option (google.api.http) = {
  66. delete: "/v2beta1/{parent=projects/*}/agent"
  67. additional_bindings {
  68. delete: "/v2beta1/{parent=projects/*/locations/*}/agent"
  69. }
  70. };
  71. option (google.api.method_signature) = "parent";
  72. }
  73. // Returns the list of agents.
  74. // Since there is at most one conversational agent per project, this method is
  75. // useful primarily for listing all agents across projects the caller has
  76. // access to. One can achieve that with a wildcard project collection id "-".
  77. // Refer to [List
  78. // Sub-Collections](https://cloud.google.com/apis/design/design_patterns#list_sub-collections).
  79. rpc SearchAgents(SearchAgentsRequest) returns (SearchAgentsResponse) {
  80. option (google.api.http) = {
  81. get: "/v2beta1/{parent=projects/*}/agent:search"
  82. additional_bindings {
  83. get: "/v2beta1/{parent=projects/*/locations/*}/agent:search"
  84. }
  85. };
  86. option (google.api.method_signature) = "parent";
  87. }
  88. // Trains the specified agent.
  89. //
  90. // This method is a [long-running
  91. // operation](https://cloud.google.com/dialogflow/es/docs/how/long-running-operations).
  92. // The returned `Operation` type has the following method-specific fields:
  93. //
  94. // - `metadata`: An empty [Struct
  95. // message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#struct)
  96. // - `response`: An [Empty
  97. // message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#empty)
  98. //
  99. // Note: You should always train an agent prior to sending it queries. See the
  100. // [training
  101. // documentation](https://cloud.google.com/dialogflow/es/docs/training).
  102. rpc TrainAgent(TrainAgentRequest) returns (google.longrunning.Operation) {
  103. option (google.api.http) = {
  104. post: "/v2beta1/{parent=projects/*}/agent:train"
  105. body: "*"
  106. additional_bindings {
  107. post: "/v2beta1/{parent=projects/*/locations/*}/agent:train"
  108. body: "*"
  109. }
  110. };
  111. option (google.api.method_signature) = "parent";
  112. option (google.longrunning.operation_info) = {
  113. response_type: "google.protobuf.Empty"
  114. metadata_type: "google.protobuf.Struct"
  115. };
  116. }
  117. // Exports the specified agent to a ZIP file.
  118. //
  119. // This method is a [long-running
  120. // operation](https://cloud.google.com/dialogflow/es/docs/how/long-running-operations).
  121. // The returned `Operation` type has the following method-specific fields:
  122. //
  123. // - `metadata`: An empty [Struct
  124. // message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#struct)
  125. // - `response`: [ExportAgentResponse][google.cloud.dialogflow.v2beta1.ExportAgentResponse]
  126. rpc ExportAgent(ExportAgentRequest) returns (google.longrunning.Operation) {
  127. option (google.api.http) = {
  128. post: "/v2beta1/{parent=projects/*}/agent:export"
  129. body: "*"
  130. additional_bindings {
  131. post: "/v2beta1/{parent=projects/*/locations/*}/agent:export"
  132. body: "*"
  133. }
  134. };
  135. option (google.api.method_signature) = "parent";
  136. option (google.longrunning.operation_info) = {
  137. response_type: "google.cloud.dialogflow.v2beta1.ExportAgentResponse"
  138. metadata_type: "google.protobuf.Struct"
  139. };
  140. }
  141. // Imports the specified agent from a ZIP file.
  142. //
  143. // Uploads new intents and entity types without deleting the existing ones.
  144. // Intents and entity types with the same name are replaced with the new
  145. // versions from [ImportAgentRequest][google.cloud.dialogflow.v2beta1.ImportAgentRequest]. After the import, the imported draft
  146. // agent will be trained automatically (unless disabled in agent settings).
  147. // However, once the import is done, training may not be completed yet. Please
  148. // call [TrainAgent][google.cloud.dialogflow.v2beta1.Agents.TrainAgent] and wait for the operation it returns in order to train
  149. // explicitly.
  150. //
  151. // This method is a [long-running
  152. // operation](https://cloud.google.com/dialogflow/es/docs/how/long-running-operations).
  153. // The returned `Operation` type has the following method-specific fields:
  154. //
  155. // - `metadata`: An empty [Struct
  156. // message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#struct)
  157. // - `response`: An [Empty
  158. // message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#empty)
  159. //
  160. // The operation only tracks when importing is complete, not when it is done
  161. // training.
  162. //
  163. // Note: You should always train an agent prior to sending it queries. See the
  164. // [training
  165. // documentation](https://cloud.google.com/dialogflow/es/docs/training).
  166. rpc ImportAgent(ImportAgentRequest) returns (google.longrunning.Operation) {
  167. option (google.api.http) = {
  168. post: "/v2beta1/{parent=projects/*}/agent:import"
  169. body: "*"
  170. additional_bindings {
  171. post: "/v2beta1/{parent=projects/*/locations/*}/agent:import"
  172. body: "*"
  173. }
  174. };
  175. option (google.longrunning.operation_info) = {
  176. response_type: "google.protobuf.Empty"
  177. metadata_type: "google.protobuf.Struct"
  178. };
  179. }
  180. // Restores the specified agent from a ZIP file.
  181. //
  182. // Replaces the current agent version with a new one. All the intents and
  183. // entity types in the older version are deleted. After the restore, the
  184. // restored draft agent will be trained automatically (unless disabled in
  185. // agent settings). However, once the restore is done, training may not be
  186. // completed yet. Please call [TrainAgent][google.cloud.dialogflow.v2beta1.Agents.TrainAgent] and wait for the operation it
  187. // returns in order to train explicitly.
  188. //
  189. // This method is a [long-running
  190. // operation](https://cloud.google.com/dialogflow/es/docs/how/long-running-operations).
  191. // The returned `Operation` type has the following method-specific fields:
  192. //
  193. // - `metadata`: An empty [Struct
  194. // message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#struct)
  195. // - `response`: An [Empty
  196. // message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#empty)
  197. //
  198. // The operation only tracks when restoring is complete, not when it is done
  199. // training.
  200. //
  201. // Note: You should always train an agent prior to sending it queries. See the
  202. // [training
  203. // documentation](https://cloud.google.com/dialogflow/es/docs/training).
  204. rpc RestoreAgent(RestoreAgentRequest) returns (google.longrunning.Operation) {
  205. option (google.api.http) = {
  206. post: "/v2beta1/{parent=projects/*}/agent:restore"
  207. body: "*"
  208. additional_bindings {
  209. post: "/v2beta1/{parent=projects/*/locations/*}/agent:restore"
  210. body: "*"
  211. }
  212. };
  213. option (google.longrunning.operation_info) = {
  214. response_type: "google.protobuf.Empty"
  215. metadata_type: "google.protobuf.Struct"
  216. };
  217. }
  218. // Gets agent validation result. Agent validation is performed during
  219. // training time and is updated automatically when training is completed.
  220. rpc GetValidationResult(GetValidationResultRequest) returns (ValidationResult) {
  221. option (google.api.http) = {
  222. get: "/v2beta1/{parent=projects/*}/agent/validationResult"
  223. additional_bindings {
  224. get: "/v2beta1/{parent=projects/*/locations/*}/agent/validationResult"
  225. }
  226. };
  227. }
  228. }
  229. // A Dialogflow agent is a virtual agent that handles conversations with your
  230. // end-users. It is a natural language understanding module that understands the
  231. // nuances of human language. Dialogflow translates end-user text or audio
  232. // during a conversation to structured data that your apps and services can
  233. // understand. You design and build a Dialogflow agent to handle the types of
  234. // conversations required for your system.
  235. //
  236. // For more information about agents, see the
  237. // [Agent guide](https://cloud.google.com/dialogflow/docs/agents-overview).
  238. //
  239. message Agent {
  240. option (google.api.resource) = {
  241. type: "dialogflow.googleapis.com/Agent"
  242. pattern: "projects/{project}/agent"
  243. pattern: "projects/{project}/locations/{location}/agent"
  244. };
  245. // Match mode determines how intents are detected from user queries.
  246. enum MatchMode {
  247. // Not specified.
  248. MATCH_MODE_UNSPECIFIED = 0;
  249. // Best for agents with a small number of examples in intents and/or wide
  250. // use of templates syntax and composite entities.
  251. MATCH_MODE_HYBRID = 1;
  252. // Can be used for agents with a large number of examples in intents,
  253. // especially the ones using @sys.any or very large custom entities.
  254. MATCH_MODE_ML_ONLY = 2;
  255. }
  256. // API version for the agent.
  257. enum ApiVersion {
  258. // Not specified.
  259. API_VERSION_UNSPECIFIED = 0;
  260. // Legacy V1 API.
  261. API_VERSION_V1 = 1;
  262. // V2 API.
  263. API_VERSION_V2 = 2;
  264. // V2beta1 API.
  265. API_VERSION_V2_BETA_1 = 3;
  266. }
  267. // Represents the agent tier.
  268. enum Tier {
  269. // Not specified. This value should never be used.
  270. TIER_UNSPECIFIED = 0;
  271. // Trial Edition, previously known as Standard Edition.
  272. TIER_STANDARD = 1;
  273. // Essentials Edition, previously known as Enterprise Essential Edition.
  274. TIER_ENTERPRISE = 2;
  275. // Essentials Edition (same as TIER_ENTERPRISE), previously known as
  276. // Enterprise Plus Edition.
  277. TIER_ENTERPRISE_PLUS = 3 [deprecated = true];
  278. }
  279. // Required. The project of this agent.
  280. // Format: `projects/<Project ID>` or
  281. // `projects/<Project ID>/locations/<Location ID>`
  282. string parent = 1 [
  283. (google.api.field_behavior) = REQUIRED,
  284. (google.api.resource_reference) = {
  285. type: "cloudresourcemanager.googleapis.com/Project"
  286. }
  287. ];
  288. // Required. The name of this agent.
  289. string display_name = 2;
  290. // Required. The default language of the agent as a language tag. See
  291. // [Language
  292. // Support](https://cloud.google.com/dialogflow/docs/reference/language)
  293. // for a list of the currently supported language codes. This field cannot be
  294. // set by the `Update` method.
  295. string default_language_code = 3;
  296. // Optional. The list of all languages supported by this agent (except for the
  297. // `default_language_code`).
  298. repeated string supported_language_codes = 4;
  299. // Required. The time zone of this agent from the
  300. // [time zone database](https://www.iana.org/time-zones), e.g.,
  301. // America/New_York, Europe/Paris.
  302. string time_zone = 5;
  303. // Optional. The description of this agent.
  304. // The maximum length is 500 characters. If exceeded, the request is rejected.
  305. string description = 6;
  306. // Optional. The URI of the agent's avatar.
  307. // Avatars are used throughout the Dialogflow console and in the self-hosted
  308. // [Web
  309. // Demo](https://cloud.google.com/dialogflow/docs/integrations/web-demo)
  310. // integration.
  311. string avatar_uri = 7;
  312. // Optional. Determines whether this agent should log conversation queries.
  313. bool enable_logging = 8;
  314. // Optional. Determines how intents are detected from user queries.
  315. MatchMode match_mode = 9 [deprecated = true];
  316. // Optional. To filter out false positive results and still get variety in
  317. // matched natural language inputs for your agent, you can tune the machine
  318. // learning classification threshold. If the returned score value is less than
  319. // the threshold value, then a fallback intent will be triggered or, if there
  320. // are no fallback intents defined, no intent will be triggered. The score
  321. // values range from 0.0 (completely uncertain) to 1.0 (completely certain).
  322. // If set to 0.0, the default of 0.3 is used.
  323. float classification_threshold = 10;
  324. // Optional. API version displayed in Dialogflow console. If not specified,
  325. // V2 API is assumed. Clients are free to query different service endpoints
  326. // for different API versions. However, bots connectors and webhook calls will
  327. // follow the specified API version.
  328. ApiVersion api_version = 14;
  329. // Optional. The agent tier. If not specified, TIER_STANDARD is assumed.
  330. Tier tier = 15;
  331. }
  332. // The request message for [Agents.GetAgent][google.cloud.dialogflow.v2beta1.Agents.GetAgent].
  333. message GetAgentRequest {
  334. // Required. The project that the agent to fetch is associated with.
  335. // Format: `projects/<Project ID>` or
  336. // `projects/<Project ID>/locations/<Location ID>`.
  337. string parent = 1 [
  338. (google.api.field_behavior) = REQUIRED,
  339. (google.api.resource_reference) = {
  340. child_type: "dialogflow.googleapis.com/Agent"
  341. }
  342. ];
  343. }
  344. // The request message for [Agents.SetAgent][google.cloud.dialogflow.v2beta1.Agents.SetAgent].
  345. message SetAgentRequest {
  346. // Required. The agent to update.
  347. Agent agent = 1 [(google.api.field_behavior) = REQUIRED];
  348. // Optional. The mask to control which fields get updated.
  349. google.protobuf.FieldMask update_mask = 2;
  350. }
  351. // The request message for [Agents.DeleteAgent][google.cloud.dialogflow.v2beta1.Agents.DeleteAgent].
  352. message DeleteAgentRequest {
  353. // Required. The project that the agent to delete is associated with.
  354. // Format: `projects/<Project ID>` or
  355. // `projects/<Project ID>/locations/<Location ID>`.
  356. string parent = 1 [
  357. (google.api.field_behavior) = REQUIRED,
  358. (google.api.resource_reference) = {
  359. child_type: "dialogflow.googleapis.com/Agent"
  360. }
  361. ];
  362. }
  363. // Contains basic configuration for a sub-agent.
  364. message SubAgent {
  365. // Required. The project of this agent.
  366. // Format: `projects/<Project ID>` or
  367. // `projects/<Project ID>/locations/<Location ID>`.
  368. string project = 1;
  369. // Optional. The unique identifier (`environment name` in dialogflow console)
  370. // of this sub-agent environment. Assumes draft environment if `environment`
  371. // is not set.
  372. string environment = 2;
  373. }
  374. // The request message for [Agents.SearchAgents][google.cloud.dialogflow.v2beta1.Agents.SearchAgents].
  375. message SearchAgentsRequest {
  376. // Required. The project to list agents from.
  377. // Format: `projects/<Project ID or '-'>` or
  378. // `projects/<Project ID or '-'>/locations/<Location ID>`.
  379. string parent = 1 [
  380. (google.api.field_behavior) = REQUIRED,
  381. (google.api.resource_reference) = {
  382. child_type: "dialogflow.googleapis.com/Agent"
  383. }
  384. ];
  385. // Optional. The maximum number of items to return in a single page. By
  386. // default 100 and at most 1000.
  387. int32 page_size = 2;
  388. // Optional. The next_page_token value returned from a previous list request.
  389. string page_token = 3;
  390. }
  391. // The response message for [Agents.SearchAgents][google.cloud.dialogflow.v2beta1.Agents.SearchAgents].
  392. message SearchAgentsResponse {
  393. // The list of agents. There will be a maximum number of items returned based
  394. // on the page_size field in the request.
  395. repeated Agent agents = 1;
  396. // Token to retrieve the next page of results, or empty if there are no
  397. // more results in the list.
  398. string next_page_token = 2;
  399. }
  400. // The request message for [Agents.TrainAgent][google.cloud.dialogflow.v2beta1.Agents.TrainAgent].
  401. message TrainAgentRequest {
  402. // Required. The project that the agent to train is associated with.
  403. // Format: `projects/<Project ID>` or
  404. // `projects/<Project ID>/locations/<Location ID>`.
  405. string parent = 1 [
  406. (google.api.field_behavior) = REQUIRED,
  407. (google.api.resource_reference) = {
  408. child_type: "dialogflow.googleapis.com/Agent"
  409. }
  410. ];
  411. }
  412. // The request message for [Agents.ExportAgent][google.cloud.dialogflow.v2beta1.Agents.ExportAgent].
  413. message ExportAgentRequest {
  414. // Required. The project that the agent to export is associated with.
  415. // Format: `projects/<Project ID>` or
  416. // `projects/<Project ID>/locations/<Location ID>`.
  417. string parent = 1 [
  418. (google.api.field_behavior) = REQUIRED,
  419. (google.api.resource_reference) = {
  420. child_type: "dialogflow.googleapis.com/Agent"
  421. }
  422. ];
  423. // Optional. The
  424. // [Google Cloud Storage](https://cloud.google.com/storage/docs/)
  425. // URI to export the agent to.
  426. // The format of this URI must be `gs://<bucket-name>/<object-name>`.
  427. // If left unspecified, the serialized agent is returned inline.
  428. //
  429. // Dialogflow performs a write operation for the Cloud Storage object
  430. // on the caller's behalf, so your request authentication must
  431. // have write permissions for the object. For more information, see
  432. // [Dialogflow access
  433. // control](https://cloud.google.com/dialogflow/cx/docs/concept/access-control#storage).
  434. string agent_uri = 2;
  435. }
  436. // The response message for [Agents.ExportAgent][google.cloud.dialogflow.v2beta1.Agents.ExportAgent].
  437. message ExportAgentResponse {
  438. // The exported agent.
  439. oneof agent {
  440. // The URI to a file containing the exported agent. This field is populated
  441. // only if `agent_uri` is specified in `ExportAgentRequest`.
  442. string agent_uri = 1;
  443. // Zip compressed raw byte content for agent.
  444. bytes agent_content = 2;
  445. }
  446. }
  447. // The request message for [Agents.ImportAgent][google.cloud.dialogflow.v2beta1.Agents.ImportAgent].
  448. message ImportAgentRequest {
  449. // Required. The project that the agent to import is associated with.
  450. // Format: `projects/<Project ID>` or
  451. // `projects/<Project ID>/locations/<Location ID>`.
  452. string parent = 1 [
  453. (google.api.field_behavior) = REQUIRED,
  454. (google.api.resource_reference) = {
  455. child_type: "dialogflow.googleapis.com/Agent"
  456. }
  457. ];
  458. // Required. The agent to import.
  459. oneof agent {
  460. // The URI to a Google Cloud Storage file containing the agent to import.
  461. // Note: The URI must start with "gs://".
  462. //
  463. // Dialogflow performs a read operation for the Cloud Storage object
  464. // on the caller's behalf, so your request authentication must
  465. // have read permissions for the object. For more information, see
  466. // [Dialogflow access
  467. // control](https://cloud.google.com/dialogflow/cx/docs/concept/access-control#storage).
  468. string agent_uri = 2;
  469. // Zip compressed raw byte content for agent.
  470. bytes agent_content = 3;
  471. }
  472. }
  473. // The request message for [Agents.RestoreAgent][google.cloud.dialogflow.v2beta1.Agents.RestoreAgent].
  474. message RestoreAgentRequest {
  475. // Required. The project that the agent to restore is associated with.
  476. // Format: `projects/<Project ID>` or
  477. // `projects/<Project ID>/locations/<Location ID>`.
  478. string parent = 1 [
  479. (google.api.field_behavior) = REQUIRED,
  480. (google.api.resource_reference) = {
  481. child_type: "dialogflow.googleapis.com/Agent"
  482. }
  483. ];
  484. // Required. The agent to restore.
  485. oneof agent {
  486. // The URI to a Google Cloud Storage file containing the agent to restore.
  487. // Note: The URI must start with "gs://".
  488. //
  489. // Dialogflow performs a read operation for the Cloud Storage object
  490. // on the caller's behalf, so your request authentication must
  491. // have read permissions for the object. For more information, see
  492. // [Dialogflow access
  493. // control](https://cloud.google.com/dialogflow/cx/docs/concept/access-control#storage).
  494. string agent_uri = 2;
  495. // Zip compressed raw byte content for agent.
  496. bytes agent_content = 3;
  497. }
  498. }
  499. // The request message for [Agents.GetValidationResult][google.cloud.dialogflow.v2beta1.Agents.GetValidationResult].
  500. message GetValidationResultRequest {
  501. // Required. The project that the agent is associated with.
  502. // Format: `projects/<Project ID>` or
  503. // `projects/<Project ID>/locations/<Location ID>`.
  504. string parent = 1 [
  505. (google.api.field_behavior) = REQUIRED,
  506. (google.api.resource_reference) = {
  507. child_type: "dialogflow.googleapis.com/Agent"
  508. }
  509. ];
  510. // Optional. The language for which you want a validation result. If not
  511. // specified, the agent's default language is used. [Many
  512. // languages](https://cloud.google.com/dialogflow/docs/reference/language)
  513. // are supported. Note: languages must be enabled in the agent before they can
  514. // be used.
  515. string language_code = 3 [(google.api.field_behavior) = OPTIONAL];
  516. }