flow.proto 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590
  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.cx.v3;
  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/cx/v3/advanced_settings.proto";
  21. import "google/cloud/dialogflow/cx/v3/page.proto";
  22. import "google/cloud/dialogflow/cx/v3/validation_message.proto";
  23. import "google/longrunning/operations.proto";
  24. import "google/protobuf/empty.proto";
  25. import "google/protobuf/field_mask.proto";
  26. import "google/protobuf/timestamp.proto";
  27. option cc_enable_arenas = true;
  28. option csharp_namespace = "Google.Cloud.Dialogflow.Cx.V3";
  29. option go_package = "google.golang.org/genproto/googleapis/cloud/dialogflow/cx/v3;cx";
  30. option java_multiple_files = true;
  31. option java_outer_classname = "FlowProto";
  32. option java_package = "com.google.cloud.dialogflow.cx.v3";
  33. option objc_class_prefix = "DF";
  34. // Service for managing [Flows][google.cloud.dialogflow.cx.v3.Flow].
  35. service Flows {
  36. option (google.api.default_host) = "dialogflow.googleapis.com";
  37. option (google.api.oauth_scopes) =
  38. "https://www.googleapis.com/auth/cloud-platform,"
  39. "https://www.googleapis.com/auth/dialogflow";
  40. // Creates a flow in the specified agent.
  41. //
  42. // Note: You should always train a flow prior to sending it queries. See the
  43. // [training
  44. // documentation](https://cloud.google.com/dialogflow/cx/docs/concept/training).
  45. rpc CreateFlow(CreateFlowRequest) returns (Flow) {
  46. option (google.api.http) = {
  47. post: "/v3/{parent=projects/*/locations/*/agents/*}/flows"
  48. body: "flow"
  49. };
  50. option (google.api.method_signature) = "parent,flow";
  51. }
  52. // Deletes a specified flow.
  53. rpc DeleteFlow(DeleteFlowRequest) returns (google.protobuf.Empty) {
  54. option (google.api.http) = {
  55. delete: "/v3/{name=projects/*/locations/*/agents/*/flows/*}"
  56. };
  57. option (google.api.method_signature) = "name";
  58. }
  59. // Returns the list of all flows in the specified agent.
  60. rpc ListFlows(ListFlowsRequest) returns (ListFlowsResponse) {
  61. option (google.api.http) = {
  62. get: "/v3/{parent=projects/*/locations/*/agents/*}/flows"
  63. };
  64. option (google.api.method_signature) = "parent";
  65. }
  66. // Retrieves the specified flow.
  67. rpc GetFlow(GetFlowRequest) returns (Flow) {
  68. option (google.api.http) = {
  69. get: "/v3/{name=projects/*/locations/*/agents/*/flows/*}"
  70. };
  71. option (google.api.method_signature) = "name";
  72. }
  73. // Updates the specified flow.
  74. //
  75. // Note: You should always train a flow prior to sending it queries. See the
  76. // [training
  77. // documentation](https://cloud.google.com/dialogflow/cx/docs/concept/training).
  78. rpc UpdateFlow(UpdateFlowRequest) returns (Flow) {
  79. option (google.api.http) = {
  80. patch: "/v3/{flow.name=projects/*/locations/*/agents/*/flows/*}"
  81. body: "flow"
  82. };
  83. option (google.api.method_signature) = "flow,update_mask";
  84. }
  85. // Trains the specified flow. Note that only the flow in 'draft' environment
  86. // is trained.
  87. //
  88. // Note: You should always train a flow prior to sending it queries. See the
  89. // [training
  90. // documentation](https://cloud.google.com/dialogflow/cx/docs/concept/training).
  91. rpc TrainFlow(TrainFlowRequest) returns (google.longrunning.Operation) {
  92. option (google.api.http) = {
  93. post: "/v3/{name=projects/*/locations/*/agents/*/flows/*}:train"
  94. body: "*"
  95. };
  96. option (google.api.method_signature) = "name";
  97. option (google.longrunning.operation_info) = {
  98. response_type: "google.protobuf.Empty"
  99. metadata_type: "google.protobuf.Struct"
  100. };
  101. }
  102. // Validates the specified flow and creates or updates validation results.
  103. // Please call this API after the training is completed to get the complete
  104. // validation results.
  105. rpc ValidateFlow(ValidateFlowRequest) returns (FlowValidationResult) {
  106. option (google.api.http) = {
  107. post: "/v3/{name=projects/*/locations/*/agents/*/flows/*}:validate"
  108. body: "*"
  109. };
  110. }
  111. // Gets the latest flow validation result. Flow validation is performed
  112. // when ValidateFlow is called.
  113. rpc GetFlowValidationResult(GetFlowValidationResultRequest) returns (FlowValidationResult) {
  114. option (google.api.http) = {
  115. get: "/v3/{name=projects/*/locations/*/agents/*/flows/*/validationResult}"
  116. };
  117. option (google.api.method_signature) = "name";
  118. }
  119. // Imports the specified flow to the specified agent from a binary file.
  120. //
  121. // Note: You should always train a flow prior to sending it queries. See the
  122. // [training
  123. // documentation](https://cloud.google.com/dialogflow/cx/docs/concept/training).
  124. rpc ImportFlow(ImportFlowRequest) returns (google.longrunning.Operation) {
  125. option (google.api.http) = {
  126. post: "/v3/{parent=projects/*/locations/*/agents/*}/flows:import"
  127. body: "*"
  128. };
  129. option (google.longrunning.operation_info) = {
  130. response_type: "ImportFlowResponse"
  131. metadata_type: "google.protobuf.Struct"
  132. };
  133. }
  134. // Exports the specified flow to a binary file.
  135. //
  136. // Note that resources (e.g. intents, entities, webhooks) that the flow
  137. // references will also be exported.
  138. rpc ExportFlow(ExportFlowRequest) returns (google.longrunning.Operation) {
  139. option (google.api.http) = {
  140. post: "/v3/{name=projects/*/locations/*/agents/*/flows/*}:export"
  141. body: "*"
  142. };
  143. option (google.longrunning.operation_info) = {
  144. response_type: "ExportFlowResponse"
  145. metadata_type: "google.protobuf.Struct"
  146. };
  147. }
  148. }
  149. // Settings related to NLU.
  150. message NluSettings {
  151. // NLU model type.
  152. enum ModelType {
  153. // Not specified. `MODEL_TYPE_STANDARD` will be used.
  154. MODEL_TYPE_UNSPECIFIED = 0;
  155. // Use standard NLU model.
  156. MODEL_TYPE_STANDARD = 1;
  157. // Use advanced NLU model.
  158. MODEL_TYPE_ADVANCED = 3;
  159. }
  160. // NLU model training mode.
  161. enum ModelTrainingMode {
  162. // Not specified. `MODEL_TRAINING_MODE_AUTOMATIC` will be used.
  163. MODEL_TRAINING_MODE_UNSPECIFIED = 0;
  164. // NLU model training is automatically triggered when a flow gets modified.
  165. // User can also manually trigger model training in this mode.
  166. MODEL_TRAINING_MODE_AUTOMATIC = 1;
  167. // User needs to manually trigger NLU model training. Best for large flows
  168. // whose models take long time to train.
  169. MODEL_TRAINING_MODE_MANUAL = 2;
  170. }
  171. // Indicates the type of NLU model.
  172. ModelType model_type = 1;
  173. // To filter out false positive results and still get variety in matched
  174. // natural language inputs for your agent, you can tune the machine learning
  175. // classification threshold. If the returned score value is less than the
  176. // threshold value, then a no-match event will be triggered. The score values
  177. // range from 0.0 (completely uncertain) to 1.0 (completely certain). If set
  178. // to 0.0, the default of 0.3 is used.
  179. float classification_threshold = 3;
  180. // Indicates NLU model training mode.
  181. ModelTrainingMode model_training_mode = 4;
  182. }
  183. // Flows represents the conversation flows when you build your chatbot agent.
  184. //
  185. // A flow consists of many pages connected by the transition routes.
  186. // Conversations always start with the built-in Start Flow (with an all-0 ID).
  187. // Transition routes can direct the conversation session from the current flow
  188. // (parent flow) to another flow (sub flow). When the sub flow is finished,
  189. // Dialogflow will bring the session back to the parent flow, where the sub flow
  190. // is started.
  191. //
  192. // Usually, when a transition route is followed by a matched intent, the intent
  193. // will be "consumed". This means the intent won't activate more transition
  194. // routes. However, when the followed transition route moves the conversation
  195. // session into a different flow, the matched intent can be carried over and to
  196. // be consumed in the target flow.
  197. message Flow {
  198. option (google.api.resource) = {
  199. type: "dialogflow.googleapis.com/Flow"
  200. pattern: "projects/{project}/locations/{location}/agents/{agent}/flows/{flow}"
  201. };
  202. // The unique identifier of the flow.
  203. // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent
  204. // ID>/flows/<Flow ID>`.
  205. string name = 1;
  206. // Required. The human-readable name of the flow.
  207. string display_name = 2 [(google.api.field_behavior) = REQUIRED];
  208. // The description of the flow. The maximum length is 500 characters. If
  209. // exceeded, the request is rejected.
  210. string description = 3;
  211. // A flow's transition routes serve two purposes:
  212. //
  213. // * They are responsible for matching the user's first utterances in the
  214. // flow.
  215. // * They are inherited by every page's [transition
  216. // routes][Page.transition_routes] and can support use cases such as the user
  217. // saying "help" or "can I talk to a human?", which can be handled in a common
  218. // way regardless of the current page. Transition routes defined in the page
  219. // have higher priority than those defined in the flow.
  220. //
  221. // TransitionRoutes are evalauted in the following order:
  222. //
  223. // * TransitionRoutes with intent specified..
  224. // * TransitionRoutes with only condition specified.
  225. //
  226. // TransitionRoutes with intent specified are inherited by pages in the flow.
  227. repeated TransitionRoute transition_routes = 4;
  228. // A flow's event handlers serve two purposes:
  229. //
  230. // * They are responsible for handling events (e.g. no match,
  231. // webhook errors) in the flow.
  232. // * They are inherited by every page's [event
  233. // handlers][Page.event_handlers], which can be used to handle common events
  234. // regardless of the current page. Event handlers defined in the page
  235. // have higher priority than those defined in the flow.
  236. //
  237. // Unlike [transition_routes][google.cloud.dialogflow.cx.v3.Flow.transition_routes], these handlers are
  238. // evaluated on a first-match basis. The first one that matches the event
  239. // get executed, with the rest being ignored.
  240. repeated EventHandler event_handlers = 10;
  241. // A flow's transition route group serve two purposes:
  242. //
  243. // * They are responsible for matching the user's first utterances in the
  244. // flow.
  245. // * They are inherited by every page's [transition
  246. // route groups][Page.transition_route_groups]. Transition route groups
  247. // defined in the page have higher priority than those defined in the flow.
  248. //
  249. // Format:`projects/<Project ID>/locations/<Location ID>/agents/<Agent
  250. // ID>/flows/<Flow ID>/transitionRouteGroups/<TransitionRouteGroup ID>`.
  251. repeated string transition_route_groups = 15 [(google.api.resource_reference) = {
  252. type: "dialogflow.googleapis.com/TransitionRouteGroup"
  253. }];
  254. // NLU related settings of the flow.
  255. NluSettings nlu_settings = 11;
  256. }
  257. // The request message for [Flows.CreateFlow][google.cloud.dialogflow.cx.v3.Flows.CreateFlow].
  258. message CreateFlowRequest {
  259. // Required. The agent to create a flow for.
  260. // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent ID>`.
  261. string parent = 1 [
  262. (google.api.field_behavior) = REQUIRED,
  263. (google.api.resource_reference) = {
  264. child_type: "dialogflow.googleapis.com/Flow"
  265. }
  266. ];
  267. // Required. The flow to create.
  268. Flow flow = 2 [(google.api.field_behavior) = REQUIRED];
  269. // The language of the following fields in `flow`:
  270. //
  271. // * `Flow.event_handlers.trigger_fulfillment.messages`
  272. // * `Flow.event_handlers.trigger_fulfillment.conditional_cases`
  273. // * `Flow.transition_routes.trigger_fulfillment.messages`
  274. // * `Flow.transition_routes.trigger_fulfillment.conditional_cases`
  275. //
  276. // If not specified, the agent's default language is used.
  277. // [Many
  278. // languages](https://cloud.google.com/dialogflow/cx/docs/reference/language)
  279. // are supported.
  280. // Note: languages must be enabled in the agent before they can be used.
  281. string language_code = 3;
  282. }
  283. // The request message for [Flows.DeleteFlow][google.cloud.dialogflow.cx.v3.Flows.DeleteFlow].
  284. message DeleteFlowRequest {
  285. // Required. The name of the flow to delete.
  286. // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent
  287. // ID>/flows/<Flow ID>`.
  288. string name = 1 [
  289. (google.api.field_behavior) = REQUIRED,
  290. (google.api.resource_reference) = {
  291. type: "dialogflow.googleapis.com/Flow"
  292. }
  293. ];
  294. // This field has no effect for flows with no incoming transitions.
  295. // For flows with incoming transitions:
  296. //
  297. // * If `force` is set to false, an error will be returned with message
  298. // indicating the incoming transitions.
  299. // * If `force` is set to true, Dialogflow will remove the flow, as well as
  300. // any transitions to the flow (i.e. [Target
  301. // flow][EventHandler.target_flow] in event handlers or [Target
  302. // flow][TransitionRoute.target_flow] in transition routes that point to
  303. // this flow will be cleared).
  304. bool force = 2;
  305. }
  306. // The request message for [Flows.ListFlows][google.cloud.dialogflow.cx.v3.Flows.ListFlows].
  307. message ListFlowsRequest {
  308. // Required. The agent containing the flows.
  309. // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent ID>`.
  310. string parent = 1 [
  311. (google.api.field_behavior) = REQUIRED,
  312. (google.api.resource_reference) = {
  313. child_type: "dialogflow.googleapis.com/Flow"
  314. }
  315. ];
  316. // The maximum number of items to return in a single page. By default 100 and
  317. // at most 1000.
  318. int32 page_size = 2;
  319. // The next_page_token value returned from a previous list request.
  320. string page_token = 3;
  321. // The language to list flows for. The following fields are language
  322. // dependent:
  323. //
  324. // * `Flow.event_handlers.trigger_fulfillment.messages`
  325. // * `Flow.event_handlers.trigger_fulfillment.conditional_cases`
  326. // * `Flow.transition_routes.trigger_fulfillment.messages`
  327. // * `Flow.transition_routes.trigger_fulfillment.conditional_cases`
  328. //
  329. // If not specified, the agent's default language is used.
  330. // [Many
  331. // languages](https://cloud.google.com/dialogflow/cx/docs/reference/language)
  332. // are supported.
  333. // Note: languages must be enabled in the agent before they can be used.
  334. string language_code = 4;
  335. }
  336. // The response message for [Flows.ListFlows][google.cloud.dialogflow.cx.v3.Flows.ListFlows].
  337. message ListFlowsResponse {
  338. // The list of flows. There will be a maximum number of items returned based
  339. // on the page_size field in the request.
  340. repeated Flow flows = 1;
  341. // Token to retrieve the next page of results, or empty if there are no more
  342. // results in the list.
  343. string next_page_token = 2;
  344. }
  345. // The response message for [Flows.GetFlow][google.cloud.dialogflow.cx.v3.Flows.GetFlow].
  346. message GetFlowRequest {
  347. // Required. The name of the flow to get.
  348. // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent
  349. // ID>/flows/<Flow ID>`.
  350. string name = 1 [
  351. (google.api.field_behavior) = REQUIRED,
  352. (google.api.resource_reference) = {
  353. type: "dialogflow.googleapis.com/Flow"
  354. }
  355. ];
  356. // The language to retrieve the flow for. The following fields are language
  357. // dependent:
  358. //
  359. // * `Flow.event_handlers.trigger_fulfillment.messages`
  360. // * `Flow.event_handlers.trigger_fulfillment.conditional_cases`
  361. // * `Flow.transition_routes.trigger_fulfillment.messages`
  362. // * `Flow.transition_routes.trigger_fulfillment.conditional_cases`
  363. //
  364. // If not specified, the agent's default language is used.
  365. // [Many
  366. // languages](https://cloud.google.com/dialogflow/cx/docs/reference/language)
  367. // are supported.
  368. // Note: languages must be enabled in the agent before they can be used.
  369. string language_code = 2;
  370. }
  371. // The request message for [Flows.UpdateFlow][google.cloud.dialogflow.cx.v3.Flows.UpdateFlow].
  372. message UpdateFlowRequest {
  373. // Required. The flow to update.
  374. Flow flow = 1 [(google.api.field_behavior) = REQUIRED];
  375. // Required. The mask to control which fields get updated. If `update_mask` is not
  376. // specified, an error will be returned.
  377. google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED];
  378. // The language of the following fields in `flow`:
  379. //
  380. // * `Flow.event_handlers.trigger_fulfillment.messages`
  381. // * `Flow.event_handlers.trigger_fulfillment.conditional_cases`
  382. // * `Flow.transition_routes.trigger_fulfillment.messages`
  383. // * `Flow.transition_routes.trigger_fulfillment.conditional_cases`
  384. //
  385. // If not specified, the agent's default language is used.
  386. // [Many
  387. // languages](https://cloud.google.com/dialogflow/cx/docs/reference/language)
  388. // are supported.
  389. // Note: languages must be enabled in the agent before they can be used.
  390. string language_code = 3;
  391. }
  392. // The request message for [Flows.TrainFlow][google.cloud.dialogflow.cx.v3.Flows.TrainFlow].
  393. message TrainFlowRequest {
  394. // Required. The flow to train.
  395. // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent
  396. // ID>/flows/<Flow ID>`.
  397. string name = 1 [
  398. (google.api.field_behavior) = REQUIRED,
  399. (google.api.resource_reference) = {
  400. type: "dialogflow.googleapis.com/Flow"
  401. }
  402. ];
  403. }
  404. // The request message for [Flows.ValidateFlow][google.cloud.dialogflow.cx.v3.Flows.ValidateFlow].
  405. message ValidateFlowRequest {
  406. // Required. The flow to validate.
  407. // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent
  408. // ID>/flows/<Flow ID>`.
  409. string name = 1 [
  410. (google.api.field_behavior) = REQUIRED,
  411. (google.api.resource_reference) = {
  412. type: "dialogflow.googleapis.com/Flow"
  413. }
  414. ];
  415. // If not specified, the agent's default language is used.
  416. string language_code = 2;
  417. }
  418. // The request message for [Flows.GetFlowValidationResult][google.cloud.dialogflow.cx.v3.Flows.GetFlowValidationResult].
  419. message GetFlowValidationResultRequest {
  420. // Required. The flow name.
  421. // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent
  422. // ID>/flows/<Flow ID>/validationResult`.
  423. string name = 1 [
  424. (google.api.field_behavior) = REQUIRED,
  425. (google.api.resource_reference) = {
  426. type: "dialogflow.googleapis.com/FlowValidationResult"
  427. }
  428. ];
  429. // If not specified, the agent's default language is used.
  430. string language_code = 2;
  431. }
  432. // The response message for [Flows.GetFlowValidationResult][google.cloud.dialogflow.cx.v3.Flows.GetFlowValidationResult].
  433. message FlowValidationResult {
  434. option (google.api.resource) = {
  435. type: "dialogflow.googleapis.com/FlowValidationResult"
  436. pattern: "projects/{project}/locations/{location}/agents/{agent}/flows/{flow}/validationResult"
  437. };
  438. // The unique identifier of the flow validation result.
  439. // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent
  440. // ID>/flows/<Flow ID>/validationResult`.
  441. string name = 1;
  442. // Contains all validation messages.
  443. repeated ValidationMessage validation_messages = 2;
  444. // Last time the flow was validated.
  445. google.protobuf.Timestamp update_time = 3;
  446. }
  447. // The request message for [Flows.ImportFlow][google.cloud.dialogflow.cx.v3.Flows.ImportFlow].
  448. message ImportFlowRequest {
  449. // Import option.
  450. enum ImportOption {
  451. // Unspecified. Treated as `KEEP`.
  452. IMPORT_OPTION_UNSPECIFIED = 0;
  453. // Always respect settings in exported flow content. It may cause a
  454. // import failure if some settings (e.g. custom NLU) are not supported in
  455. // the agent to import into.
  456. KEEP = 1;
  457. // Fallback to default settings if some settings are not supported in the
  458. // agent to import into. E.g. Standard NLU will be used if custom NLU is
  459. // not available.
  460. FALLBACK = 2;
  461. }
  462. // Required. The agent to import the flow into.
  463. // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent ID>`.
  464. string parent = 1 [
  465. (google.api.field_behavior) = REQUIRED,
  466. (google.api.resource_reference) = {
  467. child_type: "dialogflow.googleapis.com/Flow"
  468. }
  469. ];
  470. // Required. The flow to import.
  471. oneof flow {
  472. // The [Google Cloud Storage](https://cloud.google.com/storage/docs/) URI
  473. // to import flow from. The format of this URI must be
  474. // `gs://<bucket-name>/<object-name>`.
  475. string flow_uri = 2;
  476. // Uncompressed raw byte content for flow.
  477. bytes flow_content = 3;
  478. }
  479. // Flow import mode. If not specified, `KEEP` is assumed.
  480. ImportOption import_option = 4;
  481. }
  482. // The response message for [Flows.ImportFlow][google.cloud.dialogflow.cx.v3.Flows.ImportFlow].
  483. message ImportFlowResponse {
  484. // The unique identifier of the new flow.
  485. // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent
  486. // ID>/flows/<Flow ID>`.
  487. string flow = 1 [(google.api.resource_reference) = {
  488. type: "dialogflow.googleapis.com/Flow"
  489. }];
  490. }
  491. // The request message for [Flows.ExportFlow][google.cloud.dialogflow.cx.v3.Flows.ExportFlow].
  492. message ExportFlowRequest {
  493. // Required. The name of the flow to export.
  494. // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent
  495. // ID>/flows/<Flow ID>`.
  496. string name = 1 [
  497. (google.api.field_behavior) = REQUIRED,
  498. (google.api.resource_reference) = {
  499. type: "dialogflow.googleapis.com/Flow"
  500. }
  501. ];
  502. // Optional. The [Google Cloud Storage](https://cloud.google.com/storage/docs/) URI to
  503. // export the flow to. The format of this URI must be
  504. // `gs://<bucket-name>/<object-name>`.
  505. // If left unspecified, the serialized flow is returned inline.
  506. string flow_uri = 2 [(google.api.field_behavior) = OPTIONAL];
  507. // Optional. Whether to export flows referenced by the specified flow.
  508. bool include_referenced_flows = 4 [(google.api.field_behavior) = OPTIONAL];
  509. }
  510. // The response message for [Flows.ExportFlow][google.cloud.dialogflow.cx.v3.Flows.ExportFlow].
  511. message ExportFlowResponse {
  512. // The exported flow.
  513. oneof flow {
  514. // The URI to a file containing the exported flow. This field is populated
  515. // only if `flow_uri` is specified in [ExportFlowRequest][google.cloud.dialogflow.cx.v3.ExportFlowRequest].
  516. string flow_uri = 1;
  517. // Uncompressed raw byte content for flow.
  518. bytes flow_content = 2;
  519. }
  520. }