conversation_profile.proto 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735
  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/audio_config.proto";
  21. import "google/cloud/dialogflow/v2beta1/participant.proto";
  22. import "google/longrunning/operations.proto";
  23. import "google/protobuf/empty.proto";
  24. import "google/protobuf/field_mask.proto";
  25. import "google/protobuf/timestamp.proto";
  26. option cc_enable_arenas = true;
  27. option csharp_namespace = "Google.Cloud.Dialogflow.V2beta1";
  28. option go_package = "google.golang.org/genproto/googleapis/cloud/dialogflow/v2beta1;dialogflow";
  29. option java_multiple_files = true;
  30. option java_outer_classname = "ConversationProfileProto";
  31. option java_package = "com.google.cloud.dialogflow.v2beta1";
  32. option objc_class_prefix = "DF";
  33. option (google.api.resource_definition) = {
  34. type: "dialogflow.googleapis.com/CXSecuritySettings"
  35. pattern: "projects/{project}/locations/{location}/securitySettings/{security_settings}"
  36. };
  37. option (google.api.resource_definition) = {
  38. type: "dialogflow.googleapis.com/ConversationModel"
  39. pattern: "projects/{project}/locations/{location}/conversationModels/{conversation_model}"
  40. };
  41. // Service for managing [ConversationProfiles][google.cloud.dialogflow.v2beta1.ConversationProfile].
  42. service ConversationProfiles {
  43. option (google.api.default_host) = "dialogflow.googleapis.com";
  44. option (google.api.oauth_scopes) =
  45. "https://www.googleapis.com/auth/cloud-platform,"
  46. "https://www.googleapis.com/auth/dialogflow";
  47. // Returns the list of all conversation profiles in the specified project.
  48. rpc ListConversationProfiles(ListConversationProfilesRequest) returns (ListConversationProfilesResponse) {
  49. option (google.api.http) = {
  50. get: "/v2beta1/{parent=projects/*}/conversationProfiles"
  51. additional_bindings {
  52. get: "/v2beta1/{parent=projects/*/locations/*}/conversationProfiles"
  53. }
  54. };
  55. option (google.api.method_signature) = "parent";
  56. }
  57. // Retrieves the specified conversation profile.
  58. rpc GetConversationProfile(GetConversationProfileRequest) returns (ConversationProfile) {
  59. option (google.api.http) = {
  60. get: "/v2beta1/{name=projects/*/conversationProfiles/*}"
  61. additional_bindings {
  62. get: "/v2beta1/{name=projects/*/locations/*/conversationProfiles/*}"
  63. }
  64. };
  65. option (google.api.method_signature) = "name";
  66. }
  67. // Creates a conversation profile in the specified project.
  68. //
  69. // [ConversationProfile.CreateTime][] and [ConversationProfile.UpdateTime][]
  70. // aren't populated in the response. You can retrieve them via
  71. // [GetConversationProfile][google.cloud.dialogflow.v2beta1.ConversationProfiles.GetConversationProfile] API.
  72. rpc CreateConversationProfile(CreateConversationProfileRequest) returns (ConversationProfile) {
  73. option (google.api.http) = {
  74. post: "/v2beta1/{parent=projects/*}/conversationProfiles"
  75. body: "conversation_profile"
  76. additional_bindings {
  77. post: "/v2beta1/{parent=projects/*/locations/*}/conversationProfiles"
  78. body: "conversation_profile"
  79. }
  80. };
  81. option (google.api.method_signature) = "parent,conversation_profile";
  82. }
  83. // Updates the specified conversation profile.
  84. //
  85. // [ConversationProfile.CreateTime][] and [ConversationProfile.UpdateTime][]
  86. // aren't populated in the response. You can retrieve them via
  87. // [GetConversationProfile][google.cloud.dialogflow.v2beta1.ConversationProfiles.GetConversationProfile] API.
  88. rpc UpdateConversationProfile(UpdateConversationProfileRequest) returns (ConversationProfile) {
  89. option (google.api.http) = {
  90. patch: "/v2beta1/{conversation_profile.name=projects/*/conversationProfiles/*}"
  91. body: "conversation_profile"
  92. additional_bindings {
  93. patch: "/v2beta1/{conversation_profile.name=projects/*/locations/*/conversationProfiles/*}"
  94. body: "conversation_profile"
  95. }
  96. };
  97. option (google.api.method_signature) = "conversation_profile,update_mask";
  98. }
  99. // Deletes the specified conversation profile.
  100. rpc DeleteConversationProfile(DeleteConversationProfileRequest) returns (google.protobuf.Empty) {
  101. option (google.api.http) = {
  102. delete: "/v2beta1/{name=projects/*/conversationProfiles/*}"
  103. additional_bindings {
  104. delete: "/v2beta1/{name=projects/*/locations/*/conversationProfiles/*}"
  105. }
  106. };
  107. option (google.api.method_signature) = "name";
  108. }
  109. // Adds or updates a suggestion feature in a conversation profile.
  110. // If the conversation profile contains the type of suggestion feature for
  111. // the participant role, it will update it. Otherwise it will insert the
  112. // suggestion feature.
  113. //
  114. // This method is a [long-running
  115. // operation](https://cloud.google.com/dialogflow/es/docs/how/long-running-operations).
  116. // The returned `Operation` type has the following method-specific fields:
  117. //
  118. // - `metadata`: [SetSuggestionFeatureConfigOperationMetadata][google.cloud.dialogflow.v2beta1.SetSuggestionFeatureConfigOperationMetadata]
  119. // - `response`: [ConversationProfile][google.cloud.dialogflow.v2beta1.ConversationProfile]
  120. //
  121. // If a long running operation to add or update suggestion feature
  122. // config for the same conversation profile, participant role and suggestion
  123. // feature type exists, please cancel the existing long running operation
  124. // before sending such request, otherwise the request will be rejected.
  125. rpc SetSuggestionFeatureConfig(SetSuggestionFeatureConfigRequest) returns (google.longrunning.Operation) {
  126. option (google.api.http) = {
  127. post: "/v2beta1/{conversation_profile=projects/*/conversationProfiles/*}:setSuggestionFeatureConfig"
  128. body: "*"
  129. additional_bindings {
  130. post: "/v2beta1/{conversation_profile=projects/*/locations/*/conversationProfiles/*}:setSuggestionFeatureConfig"
  131. body: "*"
  132. }
  133. };
  134. option (google.api.method_signature) = "conversation_profile";
  135. option (google.longrunning.operation_info) = {
  136. response_type: "ConversationProfile"
  137. metadata_type: "SetSuggestionFeatureConfigOperationMetadata"
  138. };
  139. }
  140. // Clears a suggestion feature from a conversation profile for the given
  141. // participant role.
  142. //
  143. // This method is a [long-running
  144. // operation](https://cloud.google.com/dialogflow/es/docs/how/long-running-operations).
  145. // The returned `Operation` type has the following method-specific fields:
  146. //
  147. // - `metadata`: [ClearSuggestionFeatureConfigOperationMetadata][google.cloud.dialogflow.v2beta1.ClearSuggestionFeatureConfigOperationMetadata]
  148. // - `response`: [ConversationProfile][google.cloud.dialogflow.v2beta1.ConversationProfile]
  149. rpc ClearSuggestionFeatureConfig(ClearSuggestionFeatureConfigRequest) returns (google.longrunning.Operation) {
  150. option (google.api.http) = {
  151. post: "/v2beta1/{conversation_profile=projects/*/conversationProfiles/*}:clearSuggestionFeatureConfig"
  152. body: "*"
  153. additional_bindings {
  154. post: "/v2beta1/{conversation_profile=projects/*/locations/*/conversationProfiles/*}:clearSuggestionFeatureConfig"
  155. body: "*"
  156. }
  157. };
  158. option (google.api.method_signature) = "conversation_profile";
  159. option (google.longrunning.operation_info) = {
  160. response_type: "ConversationProfile"
  161. metadata_type: "ClearSuggestionFeatureConfigOperationMetadata"
  162. };
  163. }
  164. }
  165. // Defines the services to connect to incoming Dialogflow conversations.
  166. message ConversationProfile {
  167. option (google.api.resource) = {
  168. type: "dialogflow.googleapis.com/ConversationProfile"
  169. pattern: "projects/{project}/conversationProfiles/{conversation_profile}"
  170. pattern: "projects/{project}/locations/{location}/conversationProfiles/{conversation_profile}"
  171. };
  172. // The unique identifier of this conversation profile.
  173. // Format: `projects/<Project ID>/locations/<Location
  174. // ID>/conversationProfiles/<Conversation Profile ID>`.
  175. string name = 1;
  176. // Required. Human readable name for this profile. Max length 1024 bytes.
  177. string display_name = 2 [(google.api.field_behavior) = REQUIRED];
  178. // Output only. Create time of the conversation profile.
  179. google.protobuf.Timestamp create_time = 11 [(google.api.field_behavior) = OUTPUT_ONLY];
  180. // Output only. Update time of the conversation profile.
  181. google.protobuf.Timestamp update_time = 12 [(google.api.field_behavior) = OUTPUT_ONLY];
  182. // Configuration for an automated agent to use with this profile.
  183. AutomatedAgentConfig automated_agent_config = 3;
  184. // Configuration for agent assistance to use with this profile.
  185. HumanAgentAssistantConfig human_agent_assistant_config = 4;
  186. // Configuration for connecting to a live agent.
  187. //
  188. // Currently, this feature is not general available, please contact Google
  189. // to get access.
  190. HumanAgentHandoffConfig human_agent_handoff_config = 5;
  191. // Configuration for publishing conversation lifecycle events.
  192. NotificationConfig notification_config = 6;
  193. // Configuration for logging conversation lifecycle events.
  194. LoggingConfig logging_config = 7;
  195. // Configuration for publishing new message events. Event will be sent in
  196. // format of [ConversationEvent][google.cloud.dialogflow.v2beta1.ConversationEvent]
  197. NotificationConfig new_message_event_notification_config = 8;
  198. // Settings for speech transcription.
  199. SpeechToTextConfig stt_config = 9;
  200. // Language code for the conversation profile. If not specified, the language
  201. // is en-US. Language at ConversationProfile should be set for all non en-us
  202. // languages.
  203. // This should be a [BCP-47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt)
  204. // language tag. Example: "en-US".
  205. string language_code = 10;
  206. // The time zone of this conversational profile from the
  207. // [time zone database](https://www.iana.org/time-zones), e.g.,
  208. // America/New_York, Europe/Paris. Defaults to America/New_York.
  209. string time_zone = 14;
  210. // Name of the CX SecuritySettings reference for the agent.
  211. // Format: `projects/<Project ID>/locations/<Location
  212. // ID>/securitySettings/<Security Settings ID>`.
  213. string security_settings = 13 [(google.api.resource_reference) = {
  214. type: "dialogflow.googleapis.com/CXSecuritySettings"
  215. }];
  216. }
  217. // Defines the Automated Agent to connect to a conversation.
  218. message AutomatedAgentConfig {
  219. // Required. ID of the Dialogflow agent environment to use.
  220. //
  221. // This project needs to either be the same project as the conversation or you
  222. // need to grant `service-<Conversation Project
  223. // Number>@gcp-sa-dialogflow.iam.gserviceaccount.com` the `Dialogflow API
  224. // Service Agent` role in this project.
  225. //
  226. // - For ES agents, use format: `projects/<Project ID>/locations/<Location
  227. // ID>/agent/environments/<Environment ID or '-'>`. If environment is not
  228. // specified, the default `draft` environment is used. Refer to
  229. // [DetectIntentRequest](/dialogflow/docs/reference/rpc/google.cloud.dialogflow.v2beta1#google.cloud.dialogflow.v2beta1.DetectIntentRequest)
  230. // for more details.
  231. //
  232. // - For CX agents, use format `projects/<Project ID>/locations/<Location
  233. // ID>/agents/<Agent ID>/environments/<Environment ID
  234. // or '-'>`. If environment is not specified, the default `draft` environment
  235. // is used.
  236. string agent = 1 [
  237. (google.api.field_behavior) = REQUIRED,
  238. (google.api.resource_reference) = {
  239. type: "dialogflow.googleapis.com/Agent"
  240. }
  241. ];
  242. }
  243. // Defines the Human Agent Assistant to connect to a conversation.
  244. message HumanAgentAssistantConfig {
  245. // Settings of suggestion trigger.
  246. message SuggestionTriggerSettings {
  247. // Do not trigger if last utterance is small talk.
  248. bool no_small_talk = 1;
  249. // Only trigger suggestion if participant role of last utterance is
  250. // END_USER.
  251. bool only_end_user = 2;
  252. }
  253. // Config for suggestion features.
  254. message SuggestionFeatureConfig {
  255. // The suggestion feature.
  256. SuggestionFeature suggestion_feature = 5;
  257. // Automatically iterates all participants and tries to compile
  258. // suggestions.
  259. //
  260. // Supported features: ARTICLE_SUGGESTION, FAQ, DIALOGFLOW_ASSIST.
  261. bool enable_event_based_suggestion = 3;
  262. // Settings of suggestion trigger.
  263. //
  264. // Currently, only ARTICLE_SUGGESTION, FAQ, and DIALOGFLOW_ASSIST will use
  265. // this field.
  266. SuggestionTriggerSettings suggestion_trigger_settings = 10;
  267. // Configs of query.
  268. SuggestionQueryConfig query_config = 6;
  269. // Configs of custom conversation model.
  270. ConversationModelConfig conversation_model_config = 7;
  271. // Configs for processing conversation.
  272. ConversationProcessConfig conversation_process_config = 8;
  273. }
  274. // Detail human agent assistant config.
  275. message SuggestionConfig {
  276. // Configuration of different suggestion features. One feature can have only
  277. // one config.
  278. repeated SuggestionFeatureConfig feature_configs = 2;
  279. // If `group_suggestion_responses` is false, and there are multiple
  280. // `feature_configs` in `event based suggestion` or
  281. // StreamingAnalyzeContent, we will try to deliver suggestions to customers
  282. // as soon as we get new suggestion. Different type of suggestions based on
  283. // the same context will be in separate Pub/Sub event or
  284. // `StreamingAnalyzeContentResponse`.
  285. //
  286. // If `group_suggestion_responses` set to true. All the suggestions to the
  287. // same participant based on the same context will be grouped into a single
  288. // Pub/Sub event or StreamingAnalyzeContentResponse.
  289. bool group_suggestion_responses = 3;
  290. }
  291. // Config for suggestion query.
  292. message SuggestionQueryConfig {
  293. // Knowledge base source settings.
  294. //
  295. // Supported features: ARTICLE_SUGGESTION, FAQ.
  296. message KnowledgeBaseQuerySource {
  297. // Required. Knowledge bases to query. Format:
  298. // `projects/<Project ID>/locations/<Location
  299. // ID>/knowledgeBases/<Knowledge Base ID>`. Currently, only one knowledge
  300. // base is supported.
  301. repeated string knowledge_bases = 1 [
  302. (google.api.field_behavior) = REQUIRED,
  303. (google.api.resource_reference) = {
  304. type: "dialogflow.googleapis.com/KnowledgeBase"
  305. }
  306. ];
  307. }
  308. // Document source settings.
  309. //
  310. // Supported features: SMART_REPLY, SMART_COMPOSE.
  311. message DocumentQuerySource {
  312. // Required. Knowledge documents to query from. Format:
  313. // `projects/<Project ID>/locations/<Location
  314. // ID>/knowledgeBases/<KnowledgeBase ID>/documents/<Document ID>`.
  315. // Currently, only one document is supported.
  316. repeated string documents = 1 [
  317. (google.api.field_behavior) = REQUIRED,
  318. (google.api.resource_reference) = {
  319. type: "dialogflow.googleapis.com/Document"
  320. }
  321. ];
  322. }
  323. // Dialogflow source setting.
  324. //
  325. // Supported feature: DIALOGFLOW_ASSIST.
  326. message DialogflowQuerySource {
  327. // Required. The name of a dialogflow virtual agent used for end user side intent
  328. // detection and suggestion. Format: `projects/<Project Number /
  329. // ID>/locations/<Location ID>/agent`. When multiple agents are allowed in
  330. // the same Dialogflow project.
  331. string agent = 1 [
  332. (google.api.field_behavior) = REQUIRED,
  333. (google.api.resource_reference) = {
  334. type: "dialogflow.googleapis.com/Agent"
  335. }
  336. ];
  337. }
  338. // Settings that determine how to filter recent conversation context when
  339. // generating suggestions.
  340. message ContextFilterSettings {
  341. // If set to true, the last message from virtual agent (hand off message)
  342. // and the message before it (trigger message of hand off) are dropped.
  343. bool drop_handoff_messages = 1;
  344. // If set to true, all messages from virtual agent are dropped.
  345. bool drop_virtual_agent_messages = 2;
  346. // If set to true, all messages from ivr stage are dropped.
  347. bool drop_ivr_messages = 3;
  348. }
  349. // Source of query.
  350. oneof query_source {
  351. // Query from knowledgebase. It is used by:
  352. // ARTICLE_SUGGESTION, FAQ.
  353. KnowledgeBaseQuerySource knowledge_base_query_source = 1;
  354. // Query from knowledge base document. It is used by:
  355. // SMART_REPLY, SMART_COMPOSE.
  356. DocumentQuerySource document_query_source = 2;
  357. // Query from Dialogflow agent. It is used by DIALOGFLOW_ASSIST.
  358. DialogflowQuerySource dialogflow_query_source = 3;
  359. }
  360. // Maximum number of results to return. Currently, if unset, defaults to 10.
  361. // And the max number is 20.
  362. int32 max_results = 4;
  363. // Confidence threshold of query result.
  364. //
  365. // Agent Assist gives each suggestion a score in the range [0.0, 1.0], based
  366. // on the relevance between the suggestion and the current conversation
  367. // context. A score of 0.0 has no relevance, while a score of 1.0 has high
  368. // relevance. Only suggestions with a score greater than or equal to the
  369. // value of this field are included in the results.
  370. //
  371. // For a baseline model (the default), the recommended value is in the range
  372. // [0.05, 0.1].
  373. //
  374. // For a custom model, there is no recommended value. Tune this value by
  375. // starting from a very low value and slowly increasing until you have
  376. // desired results.
  377. //
  378. // If this field is not set, it is default to 0.0, which means that all
  379. // suggestions are returned.
  380. //
  381. // Supported features: ARTICLE_SUGGESTION, FAQ, SMART_REPLY, SMART_COMPOSE.
  382. float confidence_threshold = 5;
  383. // Determines how recent conversation context is filtered when generating
  384. // suggestions. If unspecified, no messages will be dropped.
  385. ContextFilterSettings context_filter_settings = 7;
  386. }
  387. // Custom conversation models used in agent assist feature.
  388. //
  389. // Supported feature: ARTICLE_SUGGESTION, SMART_COMPOSE, SMART_REPLY,
  390. // CONVERSATION_SUMMARIZATION.
  391. message ConversationModelConfig {
  392. // Conversation model resource name. Format: `projects/<Project
  393. // ID>/conversationModels/<Model ID>`.
  394. string model = 1 [(google.api.resource_reference) = {
  395. type: "dialogflow.googleapis.com/ConversationModel"
  396. }];
  397. }
  398. // Config to process conversation.
  399. message ConversationProcessConfig {
  400. // Number of recent non-small-talk sentences to use as context for article
  401. // and FAQ suggestion
  402. int32 recent_sentences_count = 2;
  403. }
  404. // Configuration for analyses to run on each conversation message.
  405. message MessageAnalysisConfig {
  406. // Enable entity extraction in conversation messages on [agent assist
  407. // stage](https://cloud.google.com/dialogflow/priv/docs/contact-center/basics#stages).
  408. // If unspecified, defaults to false.
  409. //
  410. // Currently, this feature is not general available, please contact Google
  411. // to get access.
  412. bool enable_entity_extraction = 2;
  413. // Enable sentiment analysis in conversation messages on [agent assist
  414. // stage](https://cloud.google.com/dialogflow/priv/docs/contact-center/basics#stages).
  415. // If unspecified, defaults to false. Sentiment analysis inspects user input
  416. // and identifies the prevailing subjective opinion, especially to determine
  417. // a user's attitude as positive, negative, or neutral:
  418. // https://cloud.google.com/natural-language/docs/basics#sentiment_analysis
  419. // For [Participants.StreamingAnalyzeContent][google.cloud.dialogflow.v2beta1.Participants.StreamingAnalyzeContent] method, result will be in
  420. // [StreamingAnalyzeContentResponse.message.SentimentAnalysisResult][google.cloud.dialogflow.v2beta1.StreamingAnalyzeContentResponse.message].
  421. // For [Participants.AnalyzeContent][google.cloud.dialogflow.v2beta1.Participants.AnalyzeContent] method, result will be in
  422. // [AnalyzeContentResponse.message.SentimentAnalysisResult][google.cloud.dialogflow.v2beta1.AnalyzeContentResponse.message]
  423. // For [Conversations.ListMessages][google.cloud.dialogflow.v2beta1.Conversations.ListMessages] method, result will be in
  424. // [ListMessagesResponse.messages.SentimentAnalysisResult][google.cloud.dialogflow.v2beta1.ListMessagesResponse.messages]
  425. // If Pub/Sub notification is configured, result will be in
  426. // [ConversationEvent.new_message_payload.SentimentAnalysisResult][google.cloud.dialogflow.v2beta1.ConversationEvent.new_message_payload].
  427. bool enable_sentiment_analysis = 3;
  428. }
  429. // Pub/Sub topic on which to publish new agent assistant events.
  430. NotificationConfig notification_config = 2;
  431. // Configuration for agent assistance of human agent participant.
  432. SuggestionConfig human_agent_suggestion_config = 3;
  433. // Configuration for agent assistance of end user participant.
  434. //
  435. // Currently, this feature is not general available, please contact Google
  436. // to get access.
  437. SuggestionConfig end_user_suggestion_config = 4;
  438. // Configuration for message analysis.
  439. MessageAnalysisConfig message_analysis_config = 5;
  440. }
  441. // Defines the hand off to a live agent, typically on which external agent
  442. // service provider to connect to a conversation.
  443. //
  444. // Currently, this feature is not general available, please contact Google
  445. // to get access.
  446. message HumanAgentHandoffConfig {
  447. // Configuration specific to LivePerson (https://www.liveperson.com).
  448. message LivePersonConfig {
  449. // Required. Account number of the LivePerson account to connect. This is
  450. // the account number you input at the login page.
  451. string account_number = 1 [(google.api.field_behavior) = REQUIRED];
  452. }
  453. // Configuration specific to Salesforce Live Agent.
  454. message SalesforceLiveAgentConfig {
  455. // Required. The organization ID of the Salesforce account.
  456. string organization_id = 1 [(google.api.field_behavior) = REQUIRED];
  457. // Required. Live Agent deployment ID.
  458. string deployment_id = 2 [(google.api.field_behavior) = REQUIRED];
  459. // Required. Live Agent chat button ID.
  460. string button_id = 3 [(google.api.field_behavior) = REQUIRED];
  461. // Required. Domain of the Live Agent endpoint for this agent. You can find
  462. // the endpoint URL in the `Live Agent settings` page. For example if URL
  463. // has the form https://d.la4-c2-phx.salesforceliveagent.com/...,
  464. // you should fill in d.la4-c2-phx.salesforceliveagent.com.
  465. string endpoint_domain = 4 [(google.api.field_behavior) = REQUIRED];
  466. }
  467. // Required. Specifies which agent service to connect for human agent handoff.
  468. oneof agent_service {
  469. // Uses LivePerson (https://www.liveperson.com).
  470. LivePersonConfig live_person_config = 1;
  471. // Uses Salesforce Live Agent.
  472. SalesforceLiveAgentConfig salesforce_live_agent_config = 2;
  473. }
  474. }
  475. // Defines notification behavior.
  476. message NotificationConfig {
  477. // Format of cloud pub/sub message.
  478. enum MessageFormat {
  479. // If it is unspecified, PROTO will be used.
  480. MESSAGE_FORMAT_UNSPECIFIED = 0;
  481. // Pubsub message will be serialized proto.
  482. PROTO = 1;
  483. // Pubsub message will be json.
  484. JSON = 2;
  485. }
  486. // Name of the Pub/Sub topic to publish conversation
  487. // events like
  488. // [CONVERSATION_STARTED][google.cloud.dialogflow.v2beta1.ConversationEvent.Type.CONVERSATION_STARTED] as
  489. // serialized [ConversationEvent][google.cloud.dialogflow.v2beta1.ConversationEvent] protos.
  490. //
  491. // For telephony integration to receive notification, make sure either this
  492. // topic is in the same project as the conversation or you grant
  493. // `service-<Conversation Project
  494. // Number>@gcp-sa-dialogflow.iam.gserviceaccount.com` the `Dialogflow Service
  495. // Agent` role in the topic project.
  496. //
  497. // For chat integration to receive notification, make sure API caller has been
  498. // granted the `Dialogflow Service Agent` role for the topic.
  499. //
  500. // Format: `projects/<Project ID>/locations/<Location ID>/topics/<Topic ID>`.
  501. string topic = 1;
  502. // Format of message.
  503. MessageFormat message_format = 2;
  504. }
  505. // Defines logging behavior for conversation lifecycle events.
  506. message LoggingConfig {
  507. // Whether to log conversation events like
  508. // [CONVERSATION_STARTED][google.cloud.dialogflow.v2beta1.ConversationEvent.Type.CONVERSATION_STARTED] to
  509. // Stackdriver in the conversation project as JSON format
  510. // [ConversationEvent][google.cloud.dialogflow.v2beta1.ConversationEvent] protos.
  511. bool enable_stackdriver_logging = 3;
  512. }
  513. // The request message for [ConversationProfiles.ListConversationProfiles][google.cloud.dialogflow.v2beta1.ConversationProfiles.ListConversationProfiles].
  514. message ListConversationProfilesRequest {
  515. // Required. The project to list all conversation profiles from.
  516. // Format: `projects/<Project ID>/locations/<Location ID>`.
  517. string parent = 1 [
  518. (google.api.field_behavior) = REQUIRED,
  519. (google.api.resource_reference) = {
  520. child_type: "dialogflow.googleapis.com/ConversationProfile"
  521. }
  522. ];
  523. // The maximum number of items to return in a single page. By
  524. // default 100 and at most 1000.
  525. int32 page_size = 2;
  526. // The next_page_token value returned from a previous list request.
  527. string page_token = 3;
  528. }
  529. // The response message for [ConversationProfiles.ListConversationProfiles][google.cloud.dialogflow.v2beta1.ConversationProfiles.ListConversationProfiles].
  530. message ListConversationProfilesResponse {
  531. // The list of project conversation profiles. There is a maximum number
  532. // of items returned based on the page_size field in the request.
  533. repeated ConversationProfile conversation_profiles = 1;
  534. // Token to retrieve the next page of results, or empty if there are no
  535. // more results in the list.
  536. string next_page_token = 2;
  537. }
  538. // The request message for [ConversationProfiles.GetConversationProfile][google.cloud.dialogflow.v2beta1.ConversationProfiles.GetConversationProfile].
  539. message GetConversationProfileRequest {
  540. // Required. The resource name of the conversation profile.
  541. // Format: `projects/<Project ID>/locations/<Location
  542. // ID>/conversationProfiles/<Conversation Profile ID>`.
  543. string name = 1 [
  544. (google.api.field_behavior) = REQUIRED,
  545. (google.api.resource_reference) = {
  546. type: "dialogflow.googleapis.com/ConversationProfile"
  547. }
  548. ];
  549. }
  550. // The request message for [ConversationProfiles.CreateConversationProfile][google.cloud.dialogflow.v2beta1.ConversationProfiles.CreateConversationProfile].
  551. message CreateConversationProfileRequest {
  552. // Required. The project to create a conversation profile for.
  553. // Format: `projects/<Project ID>/locations/<Location ID>`.
  554. string parent = 1 [
  555. (google.api.field_behavior) = REQUIRED,
  556. (google.api.resource_reference) = {
  557. child_type: "dialogflow.googleapis.com/ConversationProfile"
  558. }
  559. ];
  560. // Required. The conversation profile to create.
  561. ConversationProfile conversation_profile = 2 [(google.api.field_behavior) = REQUIRED];
  562. }
  563. // The request message for [ConversationProfiles.UpdateConversationProfile][google.cloud.dialogflow.v2beta1.ConversationProfiles.UpdateConversationProfile].
  564. message UpdateConversationProfileRequest {
  565. // Required. The conversation profile to update.
  566. ConversationProfile conversation_profile = 1 [(google.api.field_behavior) = REQUIRED];
  567. // Required. The mask to control which fields to update.
  568. google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED];
  569. }
  570. // The request message for [ConversationProfiles.DeleteConversationProfile][google.cloud.dialogflow.v2beta1.ConversationProfiles.DeleteConversationProfile].
  571. //
  572. // This operation fails if the conversation profile is still referenced from
  573. // a phone number.
  574. message DeleteConversationProfileRequest {
  575. // Required. The name of the conversation profile to delete.
  576. // Format: `projects/<Project ID>/locations/<Location
  577. // ID>/conversationProfiles/<Conversation Profile ID>`.
  578. string name = 1 [
  579. (google.api.field_behavior) = REQUIRED,
  580. (google.api.resource_reference) = {
  581. type: "dialogflow.googleapis.com/ConversationProfile"
  582. }
  583. ];
  584. }
  585. // The request message for
  586. // [ConversationProfiles.SetSuggestionFeature][].
  587. message SetSuggestionFeatureConfigRequest {
  588. // Required. The Conversation Profile to add or update the suggestion feature
  589. // config. Format: `projects/<Project ID>/locations/<Location
  590. // ID>/conversationProfiles/<Conversation Profile ID>`.
  591. string conversation_profile = 1 [(google.api.field_behavior) = REQUIRED];
  592. // Required. The participant role to add or update the suggestion feature
  593. // config. Only HUMAN_AGENT or END_USER can be used.
  594. Participant.Role participant_role = 2 [(google.api.field_behavior) = REQUIRED];
  595. // Required. The suggestion feature config to add or update.
  596. HumanAgentAssistantConfig.SuggestionFeatureConfig suggestion_feature_config = 3 [(google.api.field_behavior) = REQUIRED];
  597. }
  598. // The request message for [ConversationProfiles.ClearFeature][].
  599. message ClearSuggestionFeatureConfigRequest {
  600. // Required. The Conversation Profile to add or update the suggestion feature
  601. // config. Format: `projects/<Project ID>/locations/<Location
  602. // ID>/conversationProfiles/<Conversation Profile ID>`.
  603. string conversation_profile = 1 [(google.api.field_behavior) = REQUIRED];
  604. // Required. The participant role to remove the suggestion feature
  605. // config. Only HUMAN_AGENT or END_USER can be used.
  606. Participant.Role participant_role = 2 [(google.api.field_behavior) = REQUIRED];
  607. // Required. The type of the suggestion feature to remove.
  608. SuggestionFeature.Type suggestion_feature_type = 3 [(google.api.field_behavior) = REQUIRED];
  609. }
  610. // Metadata for a [ConversationProfile.SetSuggestionFeatureConfig][]
  611. // operation.
  612. message SetSuggestionFeatureConfigOperationMetadata {
  613. // The resource name of the conversation profile. Format:
  614. // `projects/<Project ID>/locations/<Location
  615. // ID>/conversationProfiles/<Conversation Profile ID>`
  616. string conversation_profile = 1;
  617. // Required. The participant role to add or update the suggestion feature
  618. // config. Only HUMAN_AGENT or END_USER can be used.
  619. Participant.Role participant_role = 2 [(google.api.field_behavior) = REQUIRED];
  620. // Required. The type of the suggestion feature to add or update.
  621. SuggestionFeature.Type suggestion_feature_type = 3 [(google.api.field_behavior) = REQUIRED];
  622. // Timestamp whe the request was created. The time is measured on server side.
  623. google.protobuf.Timestamp create_time = 4;
  624. }
  625. // Metadata for a [ConversationProfile.ClearSuggestionFeatureConfig][]
  626. // operation.
  627. message ClearSuggestionFeatureConfigOperationMetadata {
  628. // The resource name of the conversation profile. Format:
  629. // `projects/<Project ID>/locations/<Location
  630. // ID>/conversationProfiles/<Conversation Profile ID>`
  631. string conversation_profile = 1;
  632. // Required. The participant role to remove the suggestion feature
  633. // config. Only HUMAN_AGENT or END_USER can be used.
  634. Participant.Role participant_role = 2 [(google.api.field_behavior) = REQUIRED];
  635. // Required. The type of the suggestion feature to remove.
  636. SuggestionFeature.Type suggestion_feature_type = 3 [(google.api.field_behavior) = REQUIRED];
  637. // Timestamp whe the request was created. The time is measured on server side.
  638. google.protobuf.Timestamp create_time = 4;
  639. }