aboutsummaryrefslogtreecommitdiff
path: root/google/cloud/dialogflow/v2
diff options
context:
space:
mode:
Diffstat (limited to 'google/cloud/dialogflow/v2')
-rw-r--r--google/cloud/dialogflow/v2/BUILD.bazel164
-rw-r--r--google/cloud/dialogflow/v2/agent.proto335
-rw-r--r--google/cloud/dialogflow/v2/audio_config.proto126
-rw-r--r--google/cloud/dialogflow/v2/context.proto185
-rw-r--r--google/cloud/dialogflow/v2/dialogflow_gapic.yaml1227
-rw-r--r--google/cloud/dialogflow/v2/entity_type.proto436
-rw-r--r--google/cloud/dialogflow/v2/intent.proto848
-rw-r--r--google/cloud/dialogflow/v2/session.proto555
-rw-r--r--google/cloud/dialogflow/v2/session_entity_type.proto195
-rw-r--r--google/cloud/dialogflow/v2/webhook.proto128
10 files changed, 4199 insertions, 0 deletions
diff --git a/google/cloud/dialogflow/v2/BUILD.bazel b/google/cloud/dialogflow/v2/BUILD.bazel
new file mode 100644
index 000000000..df2ea23fd
--- /dev/null
+++ b/google/cloud/dialogflow/v2/BUILD.bazel
@@ -0,0 +1,164 @@
+# This is an API workspace, having public visibility by default makes perfect sense.
+package(default_visibility = ["//visibility:public"])
+
+##############################################################################
+# Common
+##############################################################################
+load("@com_google_api_codegen//rules_gapic:gapic.bzl", "proto_library_with_info")
+
+proto_library(
+ name = "dialogflow_proto",
+ srcs = [
+ "agent.proto",
+ "context.proto",
+ "entity_type.proto",
+ "intent.proto",
+ "session.proto",
+ "session_entity_type.proto",
+ "webhook.proto",
+ ],
+ deps = [
+ "//google/api:annotations_proto",
+ "//google/longrunning:operations_proto",
+ "//google/rpc:status_proto",
+ "//google/type:latlng_proto",
+ "@com_google_protobuf//:empty_proto",
+ "@com_google_protobuf//:field_mask_proto",
+ "@com_google_protobuf//:struct_proto",
+ "@com_google_protobuf//:timestamp_proto",
+ ],
+)
+
+proto_library_with_info(
+ name = "dialogflow_proto_with_info",
+ deps = [":dialogflow_proto"],
+)
+
+##############################################################################
+# Java
+##############################################################################
+load("@io_grpc_grpc_java//:java_grpc_library.bzl", "java_grpc_library")
+load(
+ "@com_google_api_codegen//rules_gapic/java:java_gapic.bzl",
+ "java_gapic_library",
+ "java_resource_name_proto_library",
+)
+load("@com_google_api_codegen//rules_gapic/java:java_gapic_pkg.bzl", "java_gapic_assembly_gradle_pkg")
+
+_JAVA_GRPC_DEPS = [
+ "@com_google_api_grpc_proto_google_common_protos//jar",
+]
+
+java_proto_library(
+ name = "dialogflow_java_proto",
+ deps = [":dialogflow_proto"],
+)
+
+java_grpc_library(
+ name = "dialogflow_java_grpc",
+ srcs = [":dialogflow_proto"],
+ deps = [":dialogflow_java_proto"] + _JAVA_GRPC_DEPS,
+)
+
+java_resource_name_proto_library(
+ name = "dialogflow_resource_name_java_proto",
+ gapic_yaml = "dialogflow_gapic.yaml",
+ deps = [":dialogflow_proto"],
+)
+
+java_gapic_library(
+ name = "dialogflow_java_gapic",
+ src = ":dialogflow_proto_with_info",
+ gapic_yaml = "dialogflow_gapic.yaml",
+ service_yaml = "//google/cloud/dialogflow:dialogflow_v2.yaml",
+ test_deps = [":dialogflow_java_grpc"],
+ deps = [
+ ":dialogflow_java_proto",
+ ":dialogflow_resource_name_java_proto",
+ ] + _JAVA_GRPC_DEPS,
+)
+
+[java_test(
+ name = test_name,
+ test_class = test_name,
+ runtime_deps = [
+ ":dialogflow_java_gapic_test",
+ ],
+) for test_name in [
+ "com.google.cloud.dialogflow.v2.AgentsClientTest",
+ "com.google.cloud.dialogflow.v2.ContextsClientTest",
+ "com.google.cloud.dialogflow.v2.EntityTypesClientTest",
+ "com.google.cloud.dialogflow.v2.IntentsClientTest",
+ "com.google.cloud.dialogflow.v2.SessionEntityTypesClientTest",
+ "com.google.cloud.dialogflow.v2.SessionsClientTest",
+]]
+
+# Opensource Packages
+java_gapic_assembly_gradle_pkg(
+ name = "google-cloud-dialogflow-v2-java",
+ client_deps = [":dialogflow_java_gapic"],
+ client_group = "com.google.cloud",
+ client_test_deps = [":dialogflow_java_gapic_test"],
+ grpc_deps = [":dialogflow_java_grpc"],
+ grpc_group = "com.google.api.grpc",
+ proto_deps = [
+ ":dialogflow_java_proto",
+ ":dialogflow_proto",
+ ":dialogflow_resource_name_java_proto",
+ ] + _JAVA_GRPC_DEPS,
+ version = "0.0.0-SNAPSHOT",
+)
+
+##############################################################################
+# Go
+##############################################################################
+load("@io_bazel_rules_go//proto:def.bzl", "go_proto_library")
+load("@com_google_api_codegen//rules_gapic/go:go_gapic.bzl", "go_gapic_srcjar", "go_gapic_library")
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
+load("@com_google_api_codegen//rules_gapic/go:go_gapic_pkg.bzl", "go_gapic_assembly_pkg")
+
+go_proto_library(
+ name = "dialogflow_go_proto",
+ compilers = ["@io_bazel_rules_go//proto:go_grpc"],
+ importpath = "google.golang.org/genproto/googleapis/cloud/dialogflow/v2",
+ protos = [":dialogflow_proto_with_info"],
+ deps = [
+ "//google/api:annotations_go_proto",
+ "//google/longrunning:longrunning_go_proto",
+ "//google/rpc:status_go_proto",
+ "//google/type:latlng_go_proto",
+ ],
+)
+
+go_gapic_library(
+ name = "dialogflow_go_gapic",
+ src = ":dialogflow_proto_with_info",
+ gapic_yaml = "dialogflow_gapic.yaml",
+ importpath = "cloud.google.com/go/dialogflow/apiv2",
+ service_yaml = "//google/cloud/dialogflow:dialogflow_v2.yaml",
+ deps = [
+ ":dialogflow_go_proto",
+ "//google/longrunning:longrunning_go_gapic",
+ "//google/longrunning:longrunning_go_proto",
+ "@com_google_cloud_go//longrunning:go_default_library",
+ "@io_bazel_rules_go//proto/wkt:struct_go_proto",
+ ],
+)
+
+go_test(
+ name = "dialogflow_go_gapic_test",
+ srcs = [":dialogflow_go_gapic_srcjar_test"],
+ embed = [":dialogflow_go_gapic"],
+ importpath = "cloud.google.com/go/dialogflow/apiv2",
+)
+
+# Opensource Packages
+go_gapic_assembly_pkg(
+ name = "gapi-cloud-dialogflow-v2-go",
+ deps = [
+ ":dialogflow_go_gapic",
+ ":dialogflow_go_gapic_srcjar-smoke-test.srcjar",
+ ":dialogflow_go_gapic_srcjar-test.srcjar",
+ ":dialogflow_go_proto",
+ ],
+)
diff --git a/google/cloud/dialogflow/v2/agent.proto b/google/cloud/dialogflow/v2/agent.proto
new file mode 100644
index 000000000..a0c7c0d0f
--- /dev/null
+++ b/google/cloud/dialogflow/v2/agent.proto
@@ -0,0 +1,335 @@
+// Copyright 2019 Google LLC.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+syntax = "proto3";
+
+package google.cloud.dialogflow.v2;
+
+import "google/api/annotations.proto";
+import "google/api/resource.proto";
+import "google/longrunning/operations.proto";
+import "google/protobuf/empty.proto";
+import "google/protobuf/field_mask.proto";
+import "google/protobuf/struct.proto";
+
+option cc_enable_arenas = true;
+option csharp_namespace = "Google.Cloud.Dialogflow.V2";
+option go_package = "google.golang.org/genproto/googleapis/cloud/dialogflow/v2;dialogflow";
+option java_multiple_files = true;
+option java_outer_classname = "AgentProto";
+option java_package = "com.google.cloud.dialogflow.v2";
+option objc_class_prefix = "DF";
+
+// Agents are best described as Natural Language Understanding (NLU) modules
+// that transform user requests into actionable data. You can include agents
+// in your app, product, or service to determine user intent and respond to the
+// user in a natural way.
+//
+// After you create an agent, you can add [Intents][google.cloud.dialogflow.v2.Intents], [Contexts][google.cloud.dialogflow.v2.Contexts],
+// [Entity Types][google.cloud.dialogflow.v2.EntityTypes], [Webhooks][google.cloud.dialogflow.v2.WebhookRequest], and so on to
+// manage the flow of a conversation and match user input to predefined intents
+// and actions.
+//
+// You can create an agent using both Dialogflow Standard Edition and
+// Dialogflow Enterprise Edition. For details, see
+// [Dialogflow
+// Editions](https://cloud.google.com/dialogflow-enterprise/docs/editions).
+//
+// You can save your agent for backup or versioning by exporting the agent by
+// using the [ExportAgent][google.cloud.dialogflow.v2.Agents.ExportAgent] method. You can import a saved
+// agent by using the [ImportAgent][google.cloud.dialogflow.v2.Agents.ImportAgent] method.
+//
+// Dialogflow provides several
+// [prebuilt
+// agents](https://cloud.google.com/dialogflow-enterprise/docs/agents-prebuilt)
+// for common conversation scenarios such as determining a date and time,
+// converting currency, and so on.
+//
+// For more information about agents, see the
+// [Dialogflow
+// documentation](https://cloud.google.com/dialogflow-enterprise/docs/agents-overview).
+service Agents {
+ // Retrieves the specified agent.
+ rpc GetAgent(GetAgentRequest) returns (Agent) {
+ option (google.api.http) = {
+ get: "/v2/{parent=projects/*}/agent"
+ };
+ }
+
+ // Returns the list of agents.
+ //
+ // Since there is at most one conversational agent per project, this method is
+ // useful primarily for listing all agents across projects the caller has
+ // access to. One can achieve that with a wildcard project collection id "-".
+ // Refer to [List
+ // Sub-Collections](https://cloud.google.com/apis/design/design_patterns#list_sub-collections).
+ rpc SearchAgents(SearchAgentsRequest) returns (SearchAgentsResponse) {
+ option (google.api.http) = {
+ get: "/v2/{parent=projects/*}/agent:search"
+ };
+ }
+
+ // Trains the specified agent.
+ //
+ // Operation <response: [google.protobuf.Empty][google.protobuf.Empty]>
+ rpc TrainAgent(TrainAgentRequest) returns (google.longrunning.Operation) {
+ option (google.api.http) = {
+ post: "/v2/{parent=projects/*}/agent:train"
+ body: "*"
+ };
+ }
+
+ // Exports the specified agent to a ZIP file.
+ //
+ // Operation <response: [ExportAgentResponse][google.cloud.dialogflow.v2.ExportAgentResponse]>
+ rpc ExportAgent(ExportAgentRequest) returns (google.longrunning.Operation) {
+ option (google.api.http) = {
+ post: "/v2/{parent=projects/*}/agent:export"
+ body: "*"
+ };
+ }
+
+ // Imports the specified agent from a ZIP file.
+ //
+ // Uploads new intents and entity types without deleting the existing ones.
+ // Intents and entity types with the same name are replaced with the new
+ // versions from ImportAgentRequest.
+ //
+ // Operation <response: [google.protobuf.Empty][google.protobuf.Empty]>
+ rpc ImportAgent(ImportAgentRequest) returns (google.longrunning.Operation) {
+ option (google.api.http) = {
+ post: "/v2/{parent=projects/*}/agent:import"
+ body: "*"
+ };
+ }
+
+ // Restores the specified agent from a ZIP file.
+ //
+ // Replaces the current agent version with a new one. All the intents and
+ // entity types in the older version are deleted.
+ //
+ // Operation <response: [google.protobuf.Empty][google.protobuf.Empty]>
+ rpc RestoreAgent(RestoreAgentRequest) returns (google.longrunning.Operation) {
+ option (google.api.http) = {
+ post: "/v2/{parent=projects/*}/agent:restore"
+ body: "*"
+ };
+ }
+}
+
+// Represents a conversational agent.
+message Agent {
+ // Match mode determines how intents are detected from user queries.
+ enum MatchMode {
+ // Not specified.
+ MATCH_MODE_UNSPECIFIED = 0;
+
+ // Best for agents with a small number of examples in intents and/or wide
+ // use of templates syntax and composite entities.
+ MATCH_MODE_HYBRID = 1;
+
+ // Can be used for agents with a large number of examples in intents,
+ // especially the ones using @sys.any or very large developer entities.
+ MATCH_MODE_ML_ONLY = 2;
+ }
+
+ // Required. The project of this agent.
+ // Format: `projects/<Project ID>`.
+ string parent = 1;
+
+ // Required. The name of this agent.
+ string display_name = 2;
+
+ // Required. The default language of the agent as a language tag. See
+ // [Language
+ // Support](https://cloud.google.com/dialogflow-enterprise/docs/reference/language)
+ // for a list of the currently supported language codes. This field cannot be
+ // set by the `Update` method.
+ string default_language_code = 3;
+
+ // Optional. The list of all languages supported by this agent (except for the
+ // `default_language_code`).
+ repeated string supported_language_codes = 4;
+
+ // Required. The time zone of this agent from the
+ // [time zone database](https://www.iana.org/time-zones), e.g.,
+ // America/New_York, Europe/Paris.
+ string time_zone = 5;
+
+ // Optional. The description of this agent.
+ // The maximum length is 500 characters. If exceeded, the request is rejected.
+ string description = 6;
+
+ // Optional. The URI of the agent's avatar.
+ // Avatars are used throughout the Dialogflow console and in the self-hosted
+ // [Web
+ // Demo](https://cloud.google.com/dialogflow-enterprise/docs/integrations/web-demo)
+ // integration.
+ string avatar_uri = 7;
+
+ // Optional. Determines whether this agent should log conversation queries.
+ bool enable_logging = 8;
+
+ // Optional. Determines how intents are detected from user queries.
+ MatchMode match_mode = 9;
+
+ // Optional. To filter out false positive results and still get variety in
+ // matched natural language inputs for your agent, you can tune the machine
+ // learning classification threshold. If the returned score value is less than
+ // the threshold value, then a fallback intent will be triggered or, if there
+ // are no fallback intents defined, no intent will be triggered. The score
+ // values range from 0.0 (completely uncertain) to 1.0 (completely certain).
+ // If set to 0.0, the default of 0.3 is used.
+ float classification_threshold = 10;
+}
+
+// The request message for [Agents.GetAgent][google.cloud.dialogflow.v2.Agents.GetAgent].
+message GetAgentRequest {
+ // Required. The project that the agent to fetch is associated with.
+ // Format: `projects/<Project ID>`.
+ string parent = 1;
+}
+
+// The request message for [Agents.SearchAgents][google.cloud.dialogflow.v2.Agents.SearchAgents].
+message SearchAgentsRequest {
+ // Required. The project to list agents from.
+ // Format: `projects/<Project ID or '-'>`.
+ string parent = 1;
+
+ // Optional. The maximum number of items to return in a single page. By
+ // default 100 and at most 1000.
+ int32 page_size = 2;
+
+ // Optional. The next_page_token value returned from a previous list request.
+ string page_token = 3;
+}
+
+// The response message for [Agents.SearchAgents][google.cloud.dialogflow.v2.Agents.SearchAgents].
+message SearchAgentsResponse {
+ // The list of agents. There will be a maximum number of items returned based
+ // on the page_size field in the request.
+ repeated Agent agents = 1;
+
+ // Token to retrieve the next page of results, or empty if there are no
+ // more results in the list.
+ string next_page_token = 2;
+}
+
+// The request message for [Agents.TrainAgent][google.cloud.dialogflow.v2.Agents.TrainAgent].
+message TrainAgentRequest {
+ // Required. The project that the agent to train is associated with.
+ // Format: `projects/<Project ID>`.
+ string parent = 1;
+}
+
+// The request message for [Agents.ExportAgent][google.cloud.dialogflow.v2.Agents.ExportAgent].
+message ExportAgentRequest {
+ // Required. The project that the agent to export is associated with.
+ // Format: `projects/<Project ID>`.
+ string parent = 1;
+
+ // Optional. The
+ // [Google Cloud Storage](https://cloud.google.com/storage/docs/)
+ // URI to export the agent to.
+ // The format of this URI must be `gs://<bucket-name>/<object-name>`.
+ // If left unspecified, the serialized agent is returned inline.
+ string agent_uri = 2;
+}
+
+// The response message for [Agents.ExportAgent][google.cloud.dialogflow.v2.Agents.ExportAgent].
+message ExportAgentResponse {
+ // Required. The exported agent.
+ oneof agent {
+ // The URI to a file containing the exported agent. This field is populated
+ // only if `agent_uri` is specified in `ExportAgentRequest`.
+ string agent_uri = 1;
+
+ // The exported agent.
+ //
+ // Example for how to export an agent to a zip file via a command line:
+ // <pre>curl \
+ // 'https://dialogflow.googleapis.com/v2/projects/&lt;project_name&gt;/agent:export'\
+ // -X POST \
+ // -H 'Authorization: Bearer '$(gcloud auth application-default
+ // print-access-token) \
+ // -H 'Accept: application/json' \
+ // -H 'Content-Type: application/json' \
+ // --compressed \
+ // --data-binary '{}' \
+ // | grep agentContent | sed -e 's/.*"agentContent": "\([^"]*\)".*/\1/' \
+ // | base64 --decode > &lt;agent zip file&gt;</pre>
+ bytes agent_content = 2;
+ }
+}
+
+// The request message for [Agents.ImportAgent][google.cloud.dialogflow.v2.Agents.ImportAgent].
+message ImportAgentRequest {
+ // Required. The project that the agent to import is associated with.
+ // Format: `projects/<Project ID>`.
+ string parent = 1;
+
+ // Required. The agent to import.
+ oneof agent {
+ // The URI to a Google Cloud Storage file containing the agent to import.
+ // Note: The URI must start with "gs://".
+ string agent_uri = 2;
+
+ // The agent to import.
+ //
+ // Example for how to import an agent via the command line:
+ // <pre>curl \
+ // 'https://dialogflow.googleapis.com/v2/projects/&lt;project_name&gt;/agent:import\
+ // -X POST \
+ // -H 'Authorization: Bearer '$(gcloud auth application-default
+ // print-access-token) \
+ // -H 'Accept: application/json' \
+ // -H 'Content-Type: application/json' \
+ // --compressed \
+ // --data-binary "{
+ // 'agentContent': '$(cat &lt;agent zip file&gt; | base64 -w 0)'
+ // }"</pre>
+ bytes agent_content = 3;
+ }
+}
+
+// The request message for [Agents.RestoreAgent][google.cloud.dialogflow.v2.Agents.RestoreAgent].
+message RestoreAgentRequest {
+ // Required. The project that the agent to restore is associated with.
+ // Format: `projects/<Project ID>`.
+ string parent = 1;
+
+ // Required. The agent to restore.
+ oneof agent {
+ // The URI to a Google Cloud Storage file containing the agent to restore.
+ // Note: The URI must start with "gs://".
+ string agent_uri = 2;
+
+ // The agent to restore.
+ //
+ // Example for how to restore an agent via the command line:
+ // <pre>curl \
+ // 'https://dialogflow.googleapis.com/v2/projects/&lt;project_name&gt;/agent:restore\
+ // -X POST \
+ // -H 'Authorization: Bearer '$(gcloud auth application-default
+ // print-access-token) \
+ // -H 'Accept: application/json' \
+ // -H 'Content-Type: application/json' \
+ // --compressed \
+ // --data-binary "{
+ // 'agentContent': '$(cat &lt;agent zip file&gt; | base64 -w 0)'
+ // }"</pre>
+ bytes agent_content = 3;
+ }
+}
diff --git a/google/cloud/dialogflow/v2/audio_config.proto b/google/cloud/dialogflow/v2/audio_config.proto
new file mode 100644
index 000000000..d3ae64e9f
--- /dev/null
+++ b/google/cloud/dialogflow/v2/audio_config.proto
@@ -0,0 +1,126 @@
+// Copyright 2019 Google LLC.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+syntax = "proto3";
+
+package google.cloud.dialogflow.v2;
+
+import "google/api/annotations.proto";
+
+option cc_enable_arenas = true;
+option csharp_namespace = "Google.Cloud.Dialogflow.V2";
+option go_package = "google.golang.org/genproto/googleapis/cloud/dialogflow/v2;dialogflow";
+option java_multiple_files = true;
+option java_outer_classname = "AudioConfigProto";
+option java_package = "com.google.cloud.dialogflow.v2";
+option objc_class_prefix = "DF";
+
+// Gender of the voice as described in
+// [SSML voice element](https://www.w3.org/TR/speech-synthesis11/#edef_voice).
+enum SsmlVoiceGender {
+ // An unspecified gender, which means that the client doesn't care which
+ // gender the selected voice will have.
+ SSML_VOICE_GENDER_UNSPECIFIED = 0;
+
+ // A male voice.
+ SSML_VOICE_GENDER_MALE = 1;
+
+ // A female voice.
+ SSML_VOICE_GENDER_FEMALE = 2;
+
+ // A gender-neutral voice.
+ SSML_VOICE_GENDER_NEUTRAL = 3;
+}
+
+// Description of which voice to use for speech synthesis.
+message VoiceSelectionParams {
+ // Optional. The name of the voice. If not set, the service will choose a
+ // voice based on the other parameters such as language_code and gender.
+ string name = 1;
+
+ // Optional. The preferred gender of the voice. If not set, the service will
+ // choose a voice based on the other parameters such as language_code and
+ // name. Note that this is only a preference, not requirement. If a
+ // voice of the appropriate gender is not available, the synthesizer should
+ // substitute a voice with a different gender rather than failing the request.
+ SsmlVoiceGender ssml_gender = 2;
+}
+
+// Configuration of how speech should be synthesized.
+message SynthesizeSpeechConfig {
+ // Optional. Speaking rate/speed, in the range [0.25, 4.0]. 1.0 is the normal
+ // native speed supported by the specific voice. 2.0 is twice as fast, and
+ // 0.5 is half as fast. If unset(0.0), defaults to the native 1.0 speed. Any
+ // other values < 0.25 or > 4.0 will return an error.
+ double speaking_rate = 1;
+
+ // Optional. Speaking pitch, in the range [-20.0, 20.0]. 20 means increase 20
+ // semitones from the original pitch. -20 means decrease 20 semitones from the
+ // original pitch.
+ double pitch = 2;
+
+ // Optional. Volume gain (in dB) of the normal native volume supported by the
+ // specific voice, in the range [-96.0, 16.0]. If unset, or set to a value of
+ // 0.0 (dB), will play at normal native signal amplitude. A value of -6.0 (dB)
+ // will play at approximately half the amplitude of the normal native signal
+ // amplitude. A value of +6.0 (dB) will play at approximately twice the
+ // amplitude of the normal native signal amplitude. We strongly recommend not
+ // to exceed +10 (dB) as there's usually no effective increase in loudness for
+ // any value greater than that.
+ double volume_gain_db = 3;
+
+ // Optional. An identifier which selects 'audio effects' profiles that are
+ // applied on (post synthesized) text to speech. Effects are applied on top of
+ // each other in the order they are given.
+ repeated string effects_profile_id = 5;
+
+ // Optional. The desired voice of the synthesized audio.
+ VoiceSelectionParams voice = 4;
+}
+
+// Audio encoding of the output audio format in Text-To-Speech.
+enum OutputAudioEncoding {
+ // Not specified.
+ OUTPUT_AUDIO_ENCODING_UNSPECIFIED = 0;
+
+ // Uncompressed 16-bit signed little-endian samples (Linear PCM).
+ // Audio content returned as LINEAR16 also contains a WAV header.
+ OUTPUT_AUDIO_ENCODING_LINEAR_16 = 1;
+
+ // MP3 audio.
+ OUTPUT_AUDIO_ENCODING_MP3 = 2;
+
+ // Opus encoded audio wrapped in an ogg container. The result will be a
+ // file which can be played natively on Android, and in browsers (at least
+ // Chrome and Firefox). The quality of the encoding is considerably higher
+ // than MP3 while using approximately the same bitrate.
+ OUTPUT_AUDIO_ENCODING_OGG_OPUS = 3;
+}
+
+// Instructs the speech synthesizer how to generate the output audio content.
+message OutputAudioConfig {
+ // Required. Audio encoding of the synthesized audio content.
+ OutputAudioEncoding audio_encoding = 1;
+
+ // Optional. The synthesis sample rate (in hertz) for this audio. If not
+ // provided, then the synthesizer will use the default sample rate based on
+ // the audio encoding. If this is different from the voice's natural sample
+ // rate, then the synthesizer will honor this request by converting to the
+ // desired sample rate (which might result in worse audio quality).
+ int32 sample_rate_hertz = 2;
+
+ // Optional. Configuration of how speech should be synthesized.
+ SynthesizeSpeechConfig synthesize_speech_config = 3;
+}
diff --git a/google/cloud/dialogflow/v2/context.proto b/google/cloud/dialogflow/v2/context.proto
new file mode 100644
index 000000000..3c870e32b
--- /dev/null
+++ b/google/cloud/dialogflow/v2/context.proto
@@ -0,0 +1,185 @@
+// Copyright 2019 Google LLC.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+syntax = "proto3";
+
+package google.cloud.dialogflow.v2;
+
+import "google/api/annotations.proto";
+import "google/api/resource.proto";
+import "google/protobuf/empty.proto";
+import "google/protobuf/field_mask.proto";
+import "google/protobuf/struct.proto";
+
+option cc_enable_arenas = true;
+option csharp_namespace = "Google.Cloud.Dialogflow.V2";
+option go_package = "google.golang.org/genproto/googleapis/cloud/dialogflow/v2;dialogflow";
+option java_multiple_files = true;
+option java_outer_classname = "ContextProto";
+option java_package = "com.google.cloud.dialogflow.v2";
+option objc_class_prefix = "DF";
+
+// A context represents additional information included with user input or with
+// an intent returned by the Dialogflow API. Contexts are helpful for
+// differentiating user input which may be vague or have a different meaning
+// depending on additional details from your application such as user setting
+// and preferences, previous user input, where the user is in your application,
+// geographic location, and so on.
+//
+// You can include contexts as input parameters of a
+// [DetectIntent][google.cloud.dialogflow.v2.Sessions.DetectIntent] (or
+// [StreamingDetectIntent][google.cloud.dialogflow.v2.Sessions.StreamingDetectIntent]) request,
+// or as output contexts included in the returned intent.
+// Contexts expire when an intent is matched, after the number of `DetectIntent`
+// requests specified by the `lifespan_count` parameter, or after 20 minutes
+// if no intents are matched for a `DetectIntent` request.
+//
+// For more information about contexts, see the
+// [Dialogflow
+// documentation](https://cloud.google.com/dialogflow-enterprise/docs/contexts-overview).
+service Contexts {
+ // Returns the list of all contexts in the specified session.
+ rpc ListContexts(ListContextsRequest) returns (ListContextsResponse) {
+ option (google.api.http) = {
+ get: "/v2/{parent=projects/*/agent/sessions/*}/contexts"
+ };
+ }
+
+ // Retrieves the specified context.
+ rpc GetContext(GetContextRequest) returns (Context) {
+ option (google.api.http) = {
+ get: "/v2/{name=projects/*/agent/sessions/*/contexts/*}"
+ };
+ }
+
+ // Creates a context.
+ //
+ // If the specified context already exists, overrides the context.
+ rpc CreateContext(CreateContextRequest) returns (Context) {
+ option (google.api.http) = {
+ post: "/v2/{parent=projects/*/agent/sessions/*}/contexts"
+ body: "context"
+ };
+ }
+
+ // Updates the specified context.
+ rpc UpdateContext(UpdateContextRequest) returns (Context) {
+ option (google.api.http) = {
+ patch: "/v2/{context.name=projects/*/agent/sessions/*/contexts/*}"
+ body: "context"
+ };
+ }
+
+ // Deletes the specified context.
+ rpc DeleteContext(DeleteContextRequest) returns (google.protobuf.Empty) {
+ option (google.api.http) = {
+ delete: "/v2/{name=projects/*/agent/sessions/*/contexts/*}"
+ };
+ }
+
+ // Deletes all active contexts in the specified session.
+ rpc DeleteAllContexts(DeleteAllContextsRequest) returns (google.protobuf.Empty) {
+ option (google.api.http) = {
+ delete: "/v2/{parent=projects/*/agent/sessions/*}/contexts"
+ };
+ }
+}
+
+// Represents a context.
+message Context {
+ // Required. The unique identifier of the context. Format:
+ // `projects/<Project ID>/agent/sessions/<Session ID>/contexts/<Context ID>`.
+ //
+ // The `Context ID` is always converted to lowercase, may only contain
+ // characters in [a-zA-Z0-9_-%] and may be at most 250 bytes long.
+ string name = 1;
+
+ // Optional. The number of conversational query requests after which the
+ // context expires. If set to `0` (the default) the context expires
+ // immediately. Contexts expire automatically after 20 minutes if there
+ // are no matching queries.
+ int32 lifespan_count = 2;
+
+ // Optional. The collection of parameters associated with this context.
+ // Refer to [this
+ // doc](https://cloud.google.com/dialogflow-enterprise/docs/intents-actions-parameters)
+ // for syntax.
+ google.protobuf.Struct parameters = 3;
+}
+
+// The request message for [Contexts.ListContexts][google.cloud.dialogflow.v2.Contexts.ListContexts].
+message ListContextsRequest {
+ // Required. The session to list all contexts from.
+ // Format: `projects/<Project ID>/agent/sessions/<Session ID>`.
+ string parent = 1;
+
+ // Optional. The maximum number of items to return in a single page. By
+ // default 100 and at most 1000.
+ int32 page_size = 2;
+
+ // Optional. The next_page_token value returned from a previous list request.
+ string page_token = 3;
+}
+
+// The response message for [Contexts.ListContexts][google.cloud.dialogflow.v2.Contexts.ListContexts].
+message ListContextsResponse {
+ // The list of contexts. There will be a maximum number of items
+ // returned based on the page_size field in the request.
+ repeated Context contexts = 1;
+
+ // Token to retrieve the next page of results, or empty if there are no
+ // more results in the list.
+ string next_page_token = 2;
+}
+
+// The request message for [Contexts.GetContext][google.cloud.dialogflow.v2.Contexts.GetContext].
+message GetContextRequest {
+ // Required. The name of the context. Format:
+ // `projects/<Project ID>/agent/sessions/<Session ID>/contexts/<Context ID>`.
+ string name = 1;
+}
+
+// The request message for [Contexts.CreateContext][google.cloud.dialogflow.v2.Contexts.CreateContext].
+message CreateContextRequest {
+ // Required. The session to create a context for.
+ // Format: `projects/<Project ID>/agent/sessions/<Session ID>`.
+ string parent = 1;
+
+ // Required. The context to create.
+ Context context = 2;
+}
+
+// The request message for [Contexts.UpdateContext][google.cloud.dialogflow.v2.Contexts.UpdateContext].
+message UpdateContextRequest {
+ // Required. The context to update.
+ Context context = 1;
+
+ // Optional. The mask to control which fields get updated.
+ google.protobuf.FieldMask update_mask = 2;
+}
+
+// The request message for [Contexts.DeleteContext][google.cloud.dialogflow.v2.Contexts.DeleteContext].
+message DeleteContextRequest {
+ // Required. The name of the context to delete. Format:
+ // `projects/<Project ID>/agent/sessions/<Session ID>/contexts/<Context ID>`.
+ string name = 1;
+}
+
+// The request message for [Contexts.DeleteAllContexts][google.cloud.dialogflow.v2.Contexts.DeleteAllContexts].
+message DeleteAllContextsRequest {
+ // Required. The name of the session to delete all contexts from. Format:
+ // `projects/<Project ID>/agent/sessions/<Session ID>`.
+ string parent = 1;
+}
diff --git a/google/cloud/dialogflow/v2/dialogflow_gapic.yaml b/google/cloud/dialogflow/v2/dialogflow_gapic.yaml
new file mode 100644
index 000000000..61edb1959
--- /dev/null
+++ b/google/cloud/dialogflow/v2/dialogflow_gapic.yaml
@@ -0,0 +1,1227 @@
+type: com.google.api.codegen.ConfigProto
+config_schema_version: 1.0.0
+# The settings of generated code in a specific language.
+language_settings:
+ java:
+ package_name: com.google.cloud.dialogflow.v2
+ python:
+ package_name: google.cloud.dialogflow_v2.gapic
+ go:
+ package_name: cloud.google.com/go/dialogflow/apiv2
+ csharp:
+ package_name: Google.Cloud.Dialogflow.V2
+ ruby:
+ package_name: Google::Cloud::Dialogflow::V2
+ php:
+ package_name: Google\Cloud\Dialogflow\V2
+ nodejs:
+ package_name: dialogflow.v2
+ domain_layer_location: google-cloud
+# A list of API interface configurations.
+interfaces:
+ # The fully qualified name of the API interface.
+- name: google.cloud.dialogflow.v2.Agents
+ # A list of resource collection configurations.
+ # Consists of a name_pattern and an entity_name.
+ # The name_pattern is a pattern to describe the names of the resources of this
+ # collection, using the platform's conventions for URI patterns. A generator
+ # may use this to generate methods to compose and decompose such names. The
+ # pattern should use named placeholders as in `shelves/{shelf}/books/{book}`;
+ # those will be taken as hints for the parameter names of the generated
+ # methods. If empty, no name methods are generated.
+ # The entity_name is the name to be used as a basis for generated methods and
+ # classes.
+ collections:
+ - name_pattern: projects/{project}
+ entity_name: project
+ language_overrides:
+ - language: csharp
+ common_resource_name: Google.Api.Gax.ResourceNames.ProjectName
+ # Definition for retryable codes.
+ retry_codes_def:
+ - name: idempotent
+ retry_codes:
+ - UNAVAILABLE
+ - DEADLINE_EXCEEDED
+ - name: non_idempotent
+ retry_codes: []
+ # Definition for retry/backoff parameters.
+ retry_params_def:
+ - name: default
+ initial_retry_delay_millis: 100
+ retry_delay_multiplier: 1.3
+ max_retry_delay_millis: 60000
+ initial_rpc_timeout_millis: 20000
+ rpc_timeout_multiplier: 1
+ max_rpc_timeout_millis: 20000
+ total_timeout_millis: 600000
+ # A list of method configurations.
+ # Common properties:
+ # name - The simple name of the method.
+ # flattening - Specifies the configuration for parameter flattening.
+ # Describes the parameter groups for which a generator should produce
+ # method overloads which allow a client to directly pass request message
+ # fields as method parameters. This information may or may not be used,
+ # depending on the target language.
+ # Consists of groups, which each represent a list of parameters to be
+ # flattened. Each parameter listed must be a field of the request
+ # message.
+ # required_fields - Fields that are always required for a request to be
+ # valid.
+ #
+ # page_streaming - Specifies the configuration for paging.
+ # Describes information for generating a method which transforms a
+ # paging list RPC into a stream of resources.
+ # Consists of a request and a response.
+ # The request specifies request information of the list method. It
+ # defines which fields match the paging pattern in the request. The
+ # request consists of a page_size_field and a token_field. The
+ # page_size_field is the name of the optional field specifying the
+ # maximum number of elements to be returned in the response. The
+ # token_field is the name of the field in the request containing the
+ # page token.
+ # The response specifies response information of the list method. It
+ # defines which fields match the paging pattern in the response. The
+ # response consists of a token_field and a resources_field. The
+ # token_field is the name of the field in the response containing the
+ # next page token. The resources_field is the name of the field in the
+ # response containing the list of resources belonging to the page.
+ # retry_codes_name - Specifies the configuration for retryable codes. The
+ # name must be defined in interfaces.retry_codes_def.
+ # retry_params_name - Specifies the configuration for retry/backoff
+ # parameters. The name must be defined in interfaces.retry_params_def.
+ # field_name_patterns - Maps the field name of the request type to
+ # entity_name of interfaces.collections.
+ # Specifies the string pattern that the field must follow.
+ # timeout_millis - Specifies the default timeout for a non-retrying call. If
+ # the call is retrying, refer to retry_params_name instead.
+ methods:
+ - name: GetAgent
+ flattening:
+ groups:
+ - parameters:
+ - parent
+ required_fields:
+ - parent
+ retry_codes_name: idempotent
+ retry_params_name: default
+ field_name_patterns:
+ parent: project
+ timeout_millis: 60000
+ resource_name_treatment: STATIC_TYPES
+ - name: SearchAgents
+ flattening:
+ groups:
+ - parameters:
+ - parent
+ required_fields:
+ - parent
+ page_streaming:
+ request:
+ page_size_field: page_size
+ token_field: page_token
+ response:
+ token_field: next_page_token
+ resources_field: agents
+ retry_codes_name: idempotent
+ retry_params_name: default
+ field_name_patterns:
+ parent: project
+ timeout_millis: 60000
+ resource_name_treatment: STATIC_TYPES
+ - name: TrainAgent
+ flattening:
+ groups:
+ - parameters:
+ - parent
+ required_fields:
+ - parent
+ retry_codes_name: idempotent
+ retry_params_name: default
+ field_name_patterns:
+ parent: project
+ timeout_millis: 60000
+ long_running:
+ # LINT.IfChange(train_agent_long_running_operation)
+ return_type: google.protobuf.Empty
+ metadata_type: google.protobuf.Struct
+ # LINT.ThenChange()
+ initial_poll_delay_millis: 500
+ poll_delay_multiplier: 1.5
+ max_poll_delay_millis: 5000
+ total_poll_timeout_millis: 300000
+ resource_name_treatment: STATIC_TYPES
+ - name: ExportAgent
+ flattening:
+ groups:
+ - parameters:
+ - parent
+ required_fields:
+ - parent
+ retry_codes_name: idempotent
+ retry_params_name: default
+ field_name_patterns:
+ parent: project
+ timeout_millis: 60000
+ long_running:
+ # LINT.IfChange(export_agent_long_running_operation)
+ return_type: google.cloud.dialogflow.v2.ExportAgentResponse
+ metadata_type: google.protobuf.Struct
+ # LINT.ThenChange()
+ initial_poll_delay_millis: 500
+ poll_delay_multiplier: 1.5
+ max_poll_delay_millis: 5000
+ total_poll_timeout_millis: 300000
+ resource_name_treatment: STATIC_TYPES
+ - name: ImportAgent
+ required_fields:
+ - parent
+ retry_codes_name: non_idempotent
+ retry_params_name: default
+ field_name_patterns:
+ parent: project
+ timeout_millis: 60000
+ long_running:
+ # LINT.IfChange(import_agent_long_running_operation)
+ return_type: google.protobuf.Empty
+ metadata_type: google.protobuf.Struct
+ # LINT.ThenChange()
+ initial_poll_delay_millis: 500
+ poll_delay_multiplier: 1.5
+ max_poll_delay_millis: 5000
+ total_poll_timeout_millis: 300000
+ resource_name_treatment: STATIC_TYPES
+ - name: RestoreAgent
+
+ required_fields:
+ - parent
+ retry_codes_name: idempotent
+ retry_params_name: default
+ field_name_patterns:
+ parent: project
+ timeout_millis: 60000
+ long_running:
+ # LINT.IfChange(restore_agent_long_running_operation)
+ return_type: google.protobuf.Empty
+ metadata_type: google.protobuf.Struct
+ # LINT.ThenChange()
+ initial_poll_delay_millis: 500
+ poll_delay_multiplier: 1.5
+ max_poll_delay_millis: 5000
+ total_poll_timeout_millis: 300000
+ resource_name_treatment: STATIC_TYPES
+ # The fully qualified name of the API interface.
+- name: google.cloud.dialogflow.v2.Contexts
+ # A list of resource collection configurations.
+ # Consists of a name_pattern and an entity_name.
+ # The name_pattern is a pattern to describe the names of the resources of this
+ # collection, using the platform's conventions for URI patterns. A generator
+ # may use this to generate methods to compose and decompose such names. The
+ # pattern should use named placeholders as in `shelves/{shelf}/books/{book}`;
+ # those will be taken as hints for the parameter names of the generated
+ # methods. If empty, no name methods are generated.
+ # The entity_name is the name to be used as a basis for generated methods and
+ # classes.
+ collections:
+ - name_pattern: projects/{project}/agent/sessions/{session}
+ entity_name: session
+ - name_pattern: projects/{project}/agent/sessions/{session}/contexts/{context}
+ entity_name: context
+ # Definition for retryable codes.
+ retry_codes_def:
+ - name: idempotent
+ retry_codes:
+ - UNAVAILABLE
+ - DEADLINE_EXCEEDED
+ - name: non_idempotent
+ retry_codes: []
+ # Definition for retry/backoff parameters.
+ retry_params_def:
+ - name: default
+ initial_retry_delay_millis: 100
+ retry_delay_multiplier: 1.3
+ max_retry_delay_millis: 60000
+ initial_rpc_timeout_millis: 20000
+ rpc_timeout_multiplier: 1
+ max_rpc_timeout_millis: 20000
+ total_timeout_millis: 600000
+ # A list of method configurations.
+ # Common properties:
+ # name - The simple name of the method.
+ # flattening - Specifies the configuration for parameter flattening.
+ # Describes the parameter groups for which a generator should produce
+ # method overloads which allow a client to directly pass request message
+ # fields as method parameters. This information may or may not be used,
+ # depending on the target language.
+ # Consists of groups, which each represent a list of parameters to be
+ # flattened. Each parameter listed must be a field of the request
+ # message.
+ # required_fields - Fields that are always required for a request to be
+ # valid.
+ #
+ # page_streaming - Specifies the configuration for paging.
+ # Describes information for generating a method which transforms a
+ # paging list RPC into a stream of resources.
+ # Consists of a request and a response.
+ # The request specifies request information of the list method. It
+ # defines which fields match the paging pattern in the request. The
+ # request consists of a page_size_field and a token_field. The
+ # page_size_field is the name of the optional field specifying the
+ # maximum number of elements to be returned in the response. The
+ # token_field is the name of the field in the request containing the
+ # page token.
+ # The response specifies response information of the list method. It
+ # defines which fields match the paging pattern in the response. The
+ # response consists of a token_field and a resources_field. The
+ # token_field is the name of the field in the response containing the
+ # next page token. The resources_field is the name of the field in the
+ # response containing the list of resources belonging to the page.
+ # retry_codes_name - Specifies the configuration for retryable codes. The
+ # name must be defined in interfaces.retry_codes_def.
+ # retry_params_name - Specifies the configuration for retry/backoff
+ # parameters. The name must be defined in interfaces.retry_params_def.
+ # field_name_patterns - Maps the field name of the request type to
+ # entity_name of interfaces.collections.
+ # Specifies the string pattern that the field must follow.
+ # timeout_millis - Specifies the default timeout for a non-retrying call. If
+ # the call is retrying, refer to retry_params_name instead.
+ methods:
+ - name: ListContexts
+ flattening:
+ groups:
+ - parameters:
+ - parent
+ required_fields:
+ - parent
+ page_streaming:
+ request:
+ page_size_field: page_size
+ token_field: page_token
+ response:
+ token_field: next_page_token
+ resources_field: contexts
+ retry_codes_name: idempotent
+ retry_params_name: default
+ field_name_patterns:
+ parent: session
+ timeout_millis: 60000
+ resource_name_treatment: STATIC_TYPES
+ - name: GetContext
+ flattening:
+ groups:
+ - parameters:
+ - name
+ required_fields:
+ - name
+ retry_codes_name: idempotent
+ retry_params_name: default
+ field_name_patterns:
+ name: context
+ timeout_millis: 60000
+ resource_name_treatment: STATIC_TYPES
+ - name: CreateContext
+ flattening:
+ groups:
+ - parameters:
+ - parent
+ - context
+ required_fields:
+ - parent
+ - context
+ retry_codes_name: non_idempotent
+ retry_params_name: default
+ field_name_patterns:
+ parent: session
+ timeout_millis: 60000
+ resource_name_treatment: STATIC_TYPES
+ - name: UpdateContext
+ flattening:
+ groups:
+ - parameters:
+ - context
+ required_fields:
+ - context
+ retry_codes_name: non_idempotent
+ retry_params_name: default
+ field_name_patterns:
+ context.name: context
+ timeout_millis: 60000
+ resource_name_treatment: STATIC_TYPES
+ - name: DeleteContext
+ flattening:
+ groups:
+ - parameters:
+ - name
+ required_fields:
+ - name
+ retry_codes_name: idempotent
+ retry_params_name: default
+ field_name_patterns:
+ name: context
+ timeout_millis: 60000
+ resource_name_treatment: STATIC_TYPES
+ - name: DeleteAllContexts
+ flattening:
+ groups:
+ - parameters:
+ - parent
+ required_fields:
+ - parent
+ retry_codes_name: idempotent
+ retry_params_name: default
+ field_name_patterns:
+ parent: session
+ timeout_millis: 60000
+ resource_name_treatment: STATIC_TYPES
+ # The fully qualified name of the API interface.
+- name: google.cloud.dialogflow.v2.EntityTypes
+ # A list of resource collection configurations.
+ # Consists of a name_pattern and an entity_name.
+ # The name_pattern is a pattern to describe the names of the resources of this
+ # collection, using the platform's conventions for URI patterns. A generator
+ # may use this to generate methods to compose and decompose such names. The
+ # pattern should use named placeholders as in `shelves/{shelf}/books/{book}`;
+ # those will be taken as hints for the parameter names of the generated
+ # methods. If empty, no name methods are generated.
+ # The entity_name is the name to be used as a basis for generated methods and
+ # classes.
+ collections:
+ - name_pattern: projects/{project}/agent
+ entity_name: project_agent
+ - name_pattern: projects/{project}/agent/entityTypes/{entity_type}
+ entity_name: entity_type
+ # Definition for retryable codes.
+ retry_codes_def:
+ - name: idempotent
+ retry_codes:
+ - UNAVAILABLE
+ - DEADLINE_EXCEEDED
+ - name: non_idempotent
+ retry_codes: []
+ # Definition for retry/backoff parameters.
+ retry_params_def:
+ - name: default
+ initial_retry_delay_millis: 100
+ retry_delay_multiplier: 1.3
+ max_retry_delay_millis: 60000
+ initial_rpc_timeout_millis: 20000
+ rpc_timeout_multiplier: 1
+ max_rpc_timeout_millis: 20000
+ total_timeout_millis: 600000
+ # A list of method configurations.
+ # Common properties:
+ # name - The simple name of the method.
+ # flattening - Specifies the configuration for parameter flattening.
+ # Describes the parameter groups for which a generator should produce
+ # method overloads which allow a client to directly pass request message
+ # fields as method parameters. This information may or may not be used,
+ # depending on the target language.
+ # Consists of groups, which each represent a list of parameters to be
+ # flattened. Each parameter listed must be a field of the request
+ # message.
+ # required_fields - Fields that are always required for a request to be
+ # valid.
+ #
+ # page_streaming - Specifies the configuration for paging.
+ # Describes information for generating a method which transforms a
+ # paging list RPC into a stream of resources.
+ # Consists of a request and a response.
+ # The request specifies request information of the list method. It
+ # defines which fields match the paging pattern in the request. The
+ # request consists of a page_size_field and a token_field. The
+ # page_size_field is the name of the optional field specifying the
+ # maximum number of elements to be returned in the response. The
+ # token_field is the name of the field in the request containing the
+ # page token.
+ # The response specifies response information of the list method. It
+ # defines which fields match the paging pattern in the response. The
+ # response consists of a token_field and a resources_field. The
+ # token_field is the name of the field in the response containing the
+ # next page token. The resources_field is the name of the field in the
+ # response containing the list of resources belonging to the page.
+ # retry_codes_name - Specifies the configuration for retryable codes. The
+ # name must be defined in interfaces.retry_codes_def.
+ # retry_params_name - Specifies the configuration for retry/backoff
+ # parameters. The name must be defined in interfaces.retry_params_def.
+ # field_name_patterns - Maps the field name of the request type to
+ # entity_name of interfaces.collections.
+ # Specifies the string pattern that the field must follow.
+ # timeout_millis - Specifies the default timeout for a non-retrying call. If
+ # the call is retrying, refer to retry_params_name instead.
+ methods:
+ - name: ListEntityTypes
+ flattening:
+ groups:
+ - parameters:
+ - parent
+ - parameters:
+ - parent
+ - language_code
+ required_fields:
+ - parent
+ page_streaming:
+ request:
+ page_size_field: page_size
+ token_field: page_token
+ response:
+ token_field: next_page_token
+ resources_field: entity_types
+ retry_codes_name: idempotent
+ retry_params_name: default
+ field_name_patterns:
+ parent: project_agent
+ timeout_millis: 60000
+ resource_name_treatment: STATIC_TYPES
+ - name: GetEntityType
+ flattening:
+ groups:
+ - parameters:
+ - name
+ - parameters:
+ - name
+ - language_code
+ required_fields:
+ - name
+ retry_codes_name: idempotent
+ retry_params_name: default
+ field_name_patterns:
+ name: entity_type
+ timeout_millis: 60000
+ resource_name_treatment: STATIC_TYPES
+ - name: CreateEntityType
+ flattening:
+ groups:
+ - parameters:
+ - parent
+ - entity_type
+ - parameters:
+ - parent
+ - entity_type
+ - language_code
+ required_fields:
+ - parent
+ - entity_type
+ retry_codes_name: non_idempotent
+ retry_params_name: default
+ field_name_patterns:
+ parent: project_agent
+ timeout_millis: 60000
+ resource_name_treatment: STATIC_TYPES
+ - name: UpdateEntityType
+ flattening:
+ groups:
+ - parameters:
+ - entity_type
+ - parameters:
+ - entity_type
+ - language_code
+ required_fields:
+ - entity_type
+ retry_codes_name: non_idempotent
+ retry_params_name: default
+ field_name_patterns:
+ entity_type.name: entity_type
+ timeout_millis: 60000
+ resource_name_treatment: STATIC_TYPES
+ - name: DeleteEntityType
+ flattening:
+ groups:
+ - parameters:
+ - name
+ required_fields:
+ - name
+ retry_codes_name: idempotent
+ retry_params_name: default
+ field_name_patterns:
+ name: entity_type
+ timeout_millis: 60000
+ resource_name_treatment: STATIC_TYPES
+ - name: BatchUpdateEntityTypes
+ required_fields:
+ - parent
+ retry_codes_name: non_idempotent
+ retry_params_name: default
+ field_name_patterns:
+ parent: project_agent
+ timeout_millis: 60000
+ long_running:
+ # LINT.IfChange(batch_update_entity_types_long_running_operation)
+ return_type: google.cloud.dialogflow.v2.BatchUpdateEntityTypesResponse
+ metadata_type: google.protobuf.Struct
+ # LINT.ThenChange()
+ initial_poll_delay_millis: 500
+ poll_delay_multiplier: 1.5
+ max_poll_delay_millis: 5000
+ total_poll_timeout_millis: 300000
+ resource_name_treatment: STATIC_TYPES
+ - name: BatchDeleteEntityTypes
+ flattening:
+ groups:
+ - parameters:
+ - parent
+ - entity_type_names
+ required_fields:
+ - parent
+ - entity_type_names
+ retry_codes_name: idempotent
+ retry_params_name: default
+ field_name_patterns:
+ parent: project_agent
+ timeout_millis: 60000
+ long_running:
+ # LINT.IfChange(batch_delete_entity_types_long_running_operation)
+ return_type: google.protobuf.Empty
+ metadata_type: google.protobuf.Struct
+ # LINT.ThenChange()
+ initial_poll_delay_millis: 500
+ poll_delay_multiplier: 1.5
+ max_poll_delay_millis: 5000
+ total_poll_timeout_millis: 300000
+ resource_name_treatment: STATIC_TYPES
+ - name: BatchCreateEntities
+ flattening:
+ groups:
+ - parameters:
+ - parent
+ - entities
+ - parameters:
+ - parent
+ - entities
+ - language_code
+ required_fields:
+ - parent
+ - entities
+ retry_codes_name: non_idempotent
+ retry_params_name: default
+ field_name_patterns:
+ parent: entity_type
+ timeout_millis: 60000
+ long_running:
+ # LINT.IfChange(batch_create_entities_long_running_operation)
+ return_type: google.protobuf.Empty
+ metadata_type: google.protobuf.Struct
+ # LINT.ThenChange()
+ initial_poll_delay_millis: 500
+ poll_delay_multiplier: 1.5
+ max_poll_delay_millis: 5000
+ total_poll_timeout_millis: 300000
+ resource_name_treatment: STATIC_TYPES
+ - name: BatchUpdateEntities
+ flattening:
+ groups:
+ - parameters:
+ - parent
+ - entities
+ - parameters:
+ - parent
+ - entities
+ - language_code
+ required_fields:
+ - parent
+ - entities
+ retry_codes_name: non_idempotent
+ retry_params_name: default
+ field_name_patterns:
+ parent: entity_type
+ timeout_millis: 60000
+ long_running:
+ # LINT.IfChange(batch_update_entities_long_running_operation)
+ return_type: google.protobuf.Empty
+ metadata_type: google.protobuf.Struct
+ # LINT.ThenChange()
+ initial_poll_delay_millis: 500
+ poll_delay_multiplier: 1.5
+ max_poll_delay_millis: 5000
+ total_poll_timeout_millis: 300000
+ resource_name_treatment: STATIC_TYPES
+ - name: BatchDeleteEntities
+ flattening:
+ groups:
+ - parameters:
+ - parent
+ - entity_values
+ - parameters:
+ - parent
+ - entity_values
+ - language_code
+ required_fields:
+ - parent
+ - entity_values
+ retry_codes_name: idempotent
+ retry_params_name: default
+ field_name_patterns:
+ parent: entity_type
+ timeout_millis: 60000
+ long_running:
+ # LINT.IfChange(batch_delete_entities_long_running_operation)
+ return_type: google.protobuf.Empty
+ metadata_type: google.protobuf.Struct
+ # LINT.ThenChange()
+ initial_poll_delay_millis: 500
+ poll_delay_multiplier: 1.5
+ max_poll_delay_millis: 5000
+ total_poll_timeout_millis: 300000
+ resource_name_treatment: STATIC_TYPES
+ # The fully qualified name of the API interface.
+- name: google.cloud.dialogflow.v2.Intents
+ # A list of resource collection configurations.
+ # Consists of a name_pattern and an entity_name.
+ # The name_pattern is a pattern to describe the names of the resources of this
+ # collection, using the platform's conventions for URI patterns. A generator
+ # may use this to generate methods to compose and decompose such names. The
+ # pattern should use named placeholders as in `shelves/{shelf}/books/{book}`;
+ # those will be taken as hints for the parameter names of the generated
+ # methods. If empty, no name methods are generated.
+ # The entity_name is the name to be used as a basis for generated methods and
+ # classes.
+ collections:
+ - name_pattern: projects/{project}/agent
+ entity_name: project_agent
+ - name_pattern: projects/{project}/agent/intents/{intent}
+ entity_name: intent
+ - name_pattern: projects/{project}/agents/{agent}
+ entity_name: agent
+ # Definition for retryable codes.
+ retry_codes_def:
+ - name: idempotent
+ retry_codes:
+ - UNAVAILABLE
+ - DEADLINE_EXCEEDED
+ - name: non_idempotent
+ retry_codes: []
+ # Definition for retry/backoff parameters.
+ retry_params_def:
+ - name: default
+ initial_retry_delay_millis: 100
+ retry_delay_multiplier: 1.3
+ max_retry_delay_millis: 60000
+ initial_rpc_timeout_millis: 20000
+ rpc_timeout_multiplier: 1
+ max_rpc_timeout_millis: 20000
+ total_timeout_millis: 600000
+ # A list of method configurations.
+ # Common properties:
+ # name - The simple name of the method.
+ # flattening - Specifies the configuration for parameter flattening.
+ # Describes the parameter groups for which a generator should produce
+ # method overloads which allow a client to directly pass request message
+ # fields as method parameters. This information may or may not be used,
+ # depending on the target language.
+ # Consists of groups, which each represent a list of parameters to be
+ # flattened. Each parameter listed must be a field of the request
+ # message.
+ # required_fields - Fields that are always required for a request to be
+ # valid.
+ #
+ # page_streaming - Specifies the configuration for paging.
+ # Describes information for generating a method which transforms a
+ # paging list RPC into a stream of resources.
+ # Consists of a request and a response.
+ # The request specifies request information of the list method. It
+ # defines which fields match the paging pattern in the request. The
+ # request consists of a page_size_field and a token_field. The
+ # page_size_field is the name of the optional field specifying the
+ # maximum number of elements to be returned in the response. The
+ # token_field is the name of the field in the request containing the
+ # page token.
+ # The response specifies response information of the list method. It
+ # defines which fields match the paging pattern in the response. The
+ # response consists of a token_field and a resources_field. The
+ # token_field is the name of the field in the response containing the
+ # next page token. The resources_field is the name of the field in the
+ # response containing the list of resources belonging to the page.
+ # retry_codes_name - Specifies the configuration for retryable codes. The
+ # name must be defined in interfaces.retry_codes_def.
+ # retry_params_name - Specifies the configuration for retry/backoff
+ # parameters. The name must be defined in interfaces.retry_params_def.
+ # field_name_patterns - Maps the field name of the request type to
+ # entity_name of interfaces.collections.
+ # Specifies the string pattern that the field must follow.
+ # timeout_millis - Specifies the default timeout for a non-retrying call. If
+ # the call is retrying, refer to retry_params_name instead.
+ methods:
+ - name: ListIntents
+ flattening:
+ groups:
+ - parameters:
+ - parent
+ - parameters:
+ - parent
+ - language_code
+ required_fields:
+ - parent
+ page_streaming:
+ request:
+ page_size_field: page_size
+ token_field: page_token
+ response:
+ token_field: next_page_token
+ resources_field: intents
+ retry_codes_name: idempotent
+ retry_params_name: default
+ field_name_patterns:
+ parent: project_agent
+ timeout_millis: 60000
+ resource_name_treatment: STATIC_TYPES
+ - name: GetIntent
+ flattening:
+ groups:
+ - parameters:
+ - name
+ - parameters:
+ - name
+ - language_code
+ required_fields:
+ - name
+ retry_codes_name: idempotent
+ retry_params_name: default
+ field_name_patterns:
+ name: intent
+ timeout_millis: 60000
+ resource_name_treatment: STATIC_TYPES
+ - name: CreateIntent
+ flattening:
+ groups:
+ - parameters:
+ - parent
+ - intent
+ - parameters:
+ - parent
+ - intent
+ - language_code
+ required_fields:
+ - parent
+ - intent
+ retry_codes_name: non_idempotent
+ retry_params_name: default
+ field_name_patterns:
+ parent: project_agent
+ timeout_millis: 60000
+ resource_name_treatment: STATIC_TYPES
+ - name: UpdateIntent
+ flattening:
+ groups:
+ - parameters:
+ - intent
+ - language_code
+ - parameters:
+ - intent
+ - language_code
+ - update_mask
+ required_fields:
+ - intent
+ - language_code
+ retry_codes_name: non_idempotent
+ retry_params_name: default
+ field_name_patterns:
+ intent.name: intent
+ timeout_millis: 60000
+ resource_name_treatment: STATIC_TYPES
+ - name: DeleteIntent
+ flattening:
+ groups:
+ - parameters:
+ - name
+ required_fields:
+ - name
+ retry_codes_name: idempotent
+ retry_params_name: default
+ field_name_patterns:
+ name: intent
+ timeout_millis: 60000
+ resource_name_treatment: STATIC_TYPES
+ - name: BatchUpdateIntents
+ required_fields:
+ - parent
+ - language_code
+ retry_codes_name: non_idempotent
+ retry_params_name: default
+ field_name_patterns:
+ parent: project_agent
+ timeout_millis: 60000
+ long_running:
+ # LINT.IfChange(batch_update_intents_long_running_operation)
+ return_type: google.cloud.dialogflow.v2.BatchUpdateIntentsResponse
+ metadata_type: google.protobuf.Struct
+ # LINT.ThenChange()
+ initial_poll_delay_millis: 500
+ poll_delay_multiplier: 1.5
+ max_poll_delay_millis: 5000
+ total_poll_timeout_millis: 300000
+ resource_name_treatment: STATIC_TYPES
+ - name: BatchDeleteIntents
+ flattening:
+ groups:
+ - parameters:
+ - parent
+ - intents
+ required_fields:
+ - parent
+ - intents
+ retry_codes_name: idempotent
+ retry_params_name: default
+ field_name_patterns:
+ parent: project_agent
+ timeout_millis: 60000
+ long_running:
+ # LINT.IfChange(batch_delete_intents_long_running_operation)
+ return_type: google.protobuf.Empty
+ metadata_type: google.protobuf.Struct
+ # LINT.ThenChange()
+ initial_poll_delay_millis: 500
+ poll_delay_multiplier: 1.5
+ max_poll_delay_millis: 5000
+ total_poll_timeout_millis: 300000
+ resource_name_treatment: STATIC_TYPES
+ # The fully qualified name of the API interface.
+- name: google.cloud.dialogflow.v2.SessionEntityTypes
+ # A list of resource collection configurations.
+ # Consists of a name_pattern and an entity_name.
+ # The name_pattern is a pattern to describe the names of the resources of this
+ # collection, using the platform's conventions for URI patterns. A generator
+ # may use this to generate methods to compose and decompose such names. The
+ # pattern should use named placeholders as in `shelves/{shelf}/books/{book}`;
+ # those will be taken as hints for the parameter names of the generated
+ # methods. If empty, no name methods are generated.
+ # The entity_name is the name to be used as a basis for generated methods and
+ # classes.
+ collections:
+ - name_pattern: projects/{project}/agent/sessions/{session}
+ entity_name: session
+ - name_pattern: projects/{project}/agent/sessions/{session}/entityTypes/{entity_type}
+ entity_name: session_entity_type
+ # Definition for retryable codes.
+ retry_codes_def:
+ - name: idempotent
+ retry_codes:
+ - UNAVAILABLE
+ - DEADLINE_EXCEEDED
+ - name: non_idempotent
+ retry_codes: []
+ # Definition for retry/backoff parameters.
+ retry_params_def:
+ - name: default
+ initial_retry_delay_millis: 100
+ retry_delay_multiplier: 1.3
+ max_retry_delay_millis: 60000
+ initial_rpc_timeout_millis: 20000
+ rpc_timeout_multiplier: 1
+ max_rpc_timeout_millis: 20000
+ total_timeout_millis: 600000
+ # A list of method configurations.
+ # Common properties:
+ # name - The simple name of the method.
+ # flattening - Specifies the configuration for parameter flattening.
+ # Describes the parameter groups for which a generator should produce
+ # method overloads which allow a client to directly pass request message
+ # fields as method parameters. This information may or may not be used,
+ # depending on the target language.
+ # Consists of groups, which each represent a list of parameters to be
+ # flattened. Each parameter listed must be a field of the request
+ # message.
+ # required_fields - Fields that are always required for a request to be
+ # valid.
+ #
+ # page_streaming - Specifies the configuration for paging.
+ # Describes information for generating a method which transforms a
+ # paging list RPC into a stream of resources.
+ # Consists of a request and a response.
+ # The request specifies request information of the list method. It
+ # defines which fields match the paging pattern in the request. The
+ # request consists of a page_size_field and a token_field. The
+ # page_size_field is the name of the optional field specifying the
+ # maximum number of elements to be returned in the response. The
+ # token_field is the name of the field in the request containing the
+ # page token.
+ # The response specifies response information of the list method. It
+ # defines which fields match the paging pattern in the response. The
+ # response consists of a token_field and a resources_field. The
+ # token_field is the name of the field in the response containing the
+ # next page token. The resources_field is the name of the field in the
+ # response containing the list of resources belonging to the page.
+ # retry_codes_name - Specifies the configuration for retryable codes. The
+ # name must be defined in interfaces.retry_codes_def.
+ # retry_params_name - Specifies the configuration for retry/backoff
+ # parameters. The name must be defined in interfaces.retry_params_def.
+ # field_name_patterns - Maps the field name of the request type to
+ # entity_name of interfaces.collections.
+ # Specifies the string pattern that the field must follow.
+ # timeout_millis - Specifies the default timeout for a non-retrying call. If
+ # the call is retrying, refer to retry_params_name instead.
+ methods:
+ - name: ListSessionEntityTypes
+ flattening:
+ groups:
+ - parameters:
+ - parent
+ required_fields:
+ - parent
+ page_streaming:
+ request:
+ page_size_field: page_size
+ token_field: page_token
+ response:
+ token_field: next_page_token
+ resources_field: session_entity_types
+ retry_codes_name: idempotent
+ retry_params_name: default
+ field_name_patterns:
+ parent: session
+ timeout_millis: 60000
+ resource_name_treatment: STATIC_TYPES
+ - name: GetSessionEntityType
+ flattening:
+ groups:
+ - parameters:
+ - name
+ required_fields:
+ - name
+ retry_codes_name: idempotent
+ retry_params_name: default
+ field_name_patterns:
+ name: session_entity_type
+ timeout_millis: 60000
+ resource_name_treatment: STATIC_TYPES
+ - name: CreateSessionEntityType
+ flattening:
+ groups:
+ - parameters:
+ - parent
+ - session_entity_type
+ required_fields:
+ - parent
+ - session_entity_type
+ retry_codes_name: non_idempotent
+ retry_params_name: default
+ field_name_patterns:
+ parent: session
+ timeout_millis: 60000
+ resource_name_treatment: STATIC_TYPES
+ - name: UpdateSessionEntityType
+ flattening:
+ groups:
+ - parameters:
+ - session_entity_type
+ required_fields:
+ - session_entity_type
+ retry_codes_name: non_idempotent
+ retry_params_name: default
+ field_name_patterns:
+ session_entity_type.name: session_entity_type
+ timeout_millis: 60000
+ resource_name_treatment: STATIC_TYPES
+ - name: DeleteSessionEntityType
+ flattening:
+ groups:
+ - parameters:
+ - name
+ required_fields:
+ - name
+ retry_codes_name: idempotent
+ retry_params_name: default
+ field_name_patterns:
+ name: session_entity_type
+ timeout_millis: 60000
+ resource_name_treatment: STATIC_TYPES
+ # The fully qualified name of the API interface.
+- name: google.cloud.dialogflow.v2.Sessions
+ # A list of resource collection configurations.
+ # Consists of a name_pattern and an entity_name.
+ # The name_pattern is a pattern to describe the names of the resources of this
+ # collection, using the platform's conventions for URI patterns. A generator
+ # may use this to generate methods to compose and decompose such names. The
+ # pattern should use named placeholders as in `shelves/{shelf}/books/{book}`;
+ # those will be taken as hints for the parameter names of the generated
+ # methods. If empty, no name methods are generated.
+ # The entity_name is the name to be used as a basis for generated methods and
+ # classes.
+ collections:
+ - name_pattern: projects/{project}/agent/sessions/{session}
+ entity_name: session
+ # Definition for retryable codes.
+ retry_codes_def:
+ - name: idempotent
+ retry_codes:
+ - UNAVAILABLE
+ - DEADLINE_EXCEEDED
+ - name: non_idempotent
+ retry_codes: []
+ # Definition for retry/backoff parameters.
+ retry_params_def:
+ - name: default
+ initial_retry_delay_millis: 100
+ retry_delay_multiplier: 1.3
+ max_retry_delay_millis: 60000
+ initial_rpc_timeout_millis: 20000
+ rpc_timeout_multiplier: 1
+ max_rpc_timeout_millis: 20000
+ total_timeout_millis: 600000
+ # A list of method configurations.
+ # Common properties:
+ # name - The simple name of the method.
+ # flattening - Specifies the configuration for parameter flattening.
+ # Describes the parameter groups for which a generator should produce
+ # method overloads which allow a client to directly pass request message
+ # fields as method parameters. This information may or may not be used,
+ # depending on the target language.
+ # Consists of groups, which each represent a list of parameters to be
+ # flattened. Each parameter listed must be a field of the request
+ # message.
+ # required_fields - Fields that are always required for a request to be
+ # valid.
+ #
+ # page_streaming - Specifies the configuration for paging.
+ # Describes information for generating a method which transforms a
+ # paging list RPC into a stream of resources.
+ # Consists of a request and a response.
+ # The request specifies request information of the list method. It
+ # defines which fields match the paging pattern in the request. The
+ # request consists of a page_size_field and a token_field. The
+ # page_size_field is the name of the optional field specifying the
+ # maximum number of elements to be returned in the response. The
+ # token_field is the name of the field in the request containing the
+ # page token.
+ # The response specifies response information of the list method. It
+ # defines which fields match the paging pattern in the response. The
+ # response consists of a token_field and a resources_field. The
+ # token_field is the name of the field in the response containing the
+ # next page token. The resources_field is the name of the field in the
+ # response containing the list of resources belonging to the page.
+ # retry_codes_name - Specifies the configuration for retryable codes. The
+ # name must be defined in interfaces.retry_codes_def.
+ # retry_params_name - Specifies the configuration for retry/backoff
+ # parameters. The name must be defined in interfaces.retry_params_def.
+ # field_name_patterns - Maps the field name of the request type to
+ # entity_name of interfaces.collections.
+ # Specifies the string pattern that the field must follow.
+ # timeout_millis - Specifies the default timeout for a non-retrying call. If
+ # the call is retrying, refer to retry_params_name instead.
+ methods:
+ - name: DetectIntent
+ flattening:
+ groups:
+ - parameters:
+ - session
+ - query_input
+ required_fields:
+ - session
+ - query_input
+ retry_codes_name: non_idempotent
+ retry_params_name: default
+ field_name_patterns:
+ session: session
+ timeout_millis: 220000
+ resource_name_treatment: STATIC_TYPES
+ - name: StreamingDetectIntent
+ required_fields:
+ - session
+ - query_input
+ retry_codes_name: non_idempotent
+ retry_params_name: default
+ timeout_millis: 220000
+resource_name_generation:
+- message_name: GetAgentRequest
+ field_entity_map:
+ parent: project
+- message_name: SearchAgentsRequest
+ field_entity_map:
+ parent: project
+- message_name: TrainAgentRequest
+ field_entity_map:
+ parent: project
+- message_name: ExportAgentRequest
+ field_entity_map:
+ parent: project
+- message_name: ImportAgentRequest
+ field_entity_map:
+ parent: project
+- message_name: RestoreAgentRequest
+ field_entity_map:
+ parent: project
+- message_name: ListContextsRequest
+ field_entity_map:
+ parent: session
+- message_name: GetContextRequest
+ field_entity_map:
+ name: context
+- message_name: CreateContextRequest
+ field_entity_map:
+ parent: session
+- message_name: Context
+ field_entity_map:
+ name: context
+- message_name: DeleteContextRequest
+ field_entity_map:
+ name: context
+- message_name: DeleteAllContextsRequest
+ field_entity_map:
+ parent: session
+- message_name: ListEntityTypesRequest
+ field_entity_map:
+ parent: project_agent
+- message_name: GetEntityTypeRequest
+ field_entity_map:
+ name: entity_type
+- message_name: CreateEntityTypeRequest
+ field_entity_map:
+ parent: project_agent
+- message_name: EntityType
+ field_entity_map:
+ name: entity_type
+- message_name: DeleteEntityTypeRequest
+ field_entity_map:
+ name: entity_type
+- message_name: BatchUpdateEntityTypesRequest
+ field_entity_map:
+ parent: project_agent
+- message_name: BatchDeleteEntityTypesRequest
+ field_entity_map:
+ parent: project_agent
+- message_name: BatchCreateEntitiesRequest
+ field_entity_map:
+ parent: entity_type
+- message_name: BatchUpdateEntitiesRequest
+ field_entity_map:
+ parent: entity_type
+- message_name: BatchDeleteEntitiesRequest
+ field_entity_map:
+ parent: entity_type
+- message_name: ListIntentsRequest
+ field_entity_map:
+ parent: project_agent
+- message_name: GetIntentRequest
+ field_entity_map:
+ name: intent
+- message_name: CreateIntentRequest
+ field_entity_map:
+ parent: project_agent
+- message_name: Intent
+ field_entity_map:
+ name: intent
+- message_name: DeleteIntentRequest
+ field_entity_map:
+ name: intent
+- message_name: BatchUpdateIntentsRequest
+ field_entity_map:
+ parent: project_agent
+- message_name: BatchDeleteIntentsRequest
+ field_entity_map:
+ parent: project_agent
+- message_name: ListSessionEntityTypesRequest
+ field_entity_map:
+ parent: session
+- message_name: GetSessionEntityTypeRequest
+ field_entity_map:
+ name: session_entity_type
+- message_name: CreateSessionEntityTypeRequest
+ field_entity_map:
+ parent: session
+- message_name: SessionEntityType
+ field_entity_map:
+ name: session_entity_type
+- message_name: DeleteSessionEntityTypeRequest
+ field_entity_map:
+ name: session_entity_type
+- message_name: DetectIntentRequest
+ field_entity_map:
+ session: session
diff --git a/google/cloud/dialogflow/v2/entity_type.proto b/google/cloud/dialogflow/v2/entity_type.proto
new file mode 100644
index 000000000..ea24d9d1b
--- /dev/null
+++ b/google/cloud/dialogflow/v2/entity_type.proto
@@ -0,0 +1,436 @@
+// Copyright 2019 Google LLC.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+syntax = "proto3";
+
+package google.cloud.dialogflow.v2;
+
+import "google/api/annotations.proto";
+import "google/api/resource.proto";
+import "google/longrunning/operations.proto";
+import "google/protobuf/empty.proto";
+import "google/protobuf/field_mask.proto";
+import "google/protobuf/struct.proto";
+
+option cc_enable_arenas = true;
+option csharp_namespace = "Google.Cloud.Dialogflow.V2";
+option go_package = "google.golang.org/genproto/googleapis/cloud/dialogflow/v2;dialogflow";
+option java_multiple_files = true;
+option java_outer_classname = "EntityTypeProto";
+option java_package = "com.google.cloud.dialogflow.v2";
+option objc_class_prefix = "DF";
+
+// Entities are extracted from user input and represent parameters that are
+// meaningful to your application. For example, a date range, a proper name
+// such as a geographic location or landmark, and so on. Entities represent
+// actionable data for your application.
+//
+// When you define an entity, you can also include synonyms that all map to
+// that entity. For example, "soft drink", "soda", "pop", and so on.
+//
+// There are three types of entities:
+//
+// * **System** - entities that are defined by the Dialogflow API for common
+// data types such as date, time, currency, and so on. A system entity is
+// represented by the `EntityType` type.
+//
+// * **Developer** - entities that are defined by you that represent
+// actionable data that is meaningful to your application. For example,
+// you could define a `pizza.sauce` entity for red or white pizza sauce,
+// a `pizza.cheese` entity for the different types of cheese on a pizza,
+// a `pizza.topping` entity for different toppings, and so on. A developer
+// entity is represented by the `EntityType` type.
+//
+// * **User** - entities that are built for an individual user such as
+// favorites, preferences, playlists, and so on. A user entity is
+// represented by the [SessionEntityType][google.cloud.dialogflow.v2.SessionEntityType] type.
+//
+// For more information about entity types, see the
+// [Dialogflow
+// documentation](https://cloud.google.com/dialogflow-enterprise/docs/entities-overview).
+service EntityTypes {
+ // Returns the list of all entity types in the specified agent.
+ rpc ListEntityTypes(ListEntityTypesRequest) returns (ListEntityTypesResponse) {
+ option (google.api.http) = {
+ get: "/v2/{parent=projects/*/agent}/entityTypes"
+ };
+ }
+
+ // Retrieves the specified entity type.
+ rpc GetEntityType(GetEntityTypeRequest) returns (EntityType) {
+ option (google.api.http) = {
+ get: "/v2/{name=projects/*/agent/entityTypes/*}"
+ };
+ }
+
+ // Creates an entity type in the specified agent.
+ rpc CreateEntityType(CreateEntityTypeRequest) returns (EntityType) {
+ option (google.api.http) = {
+ post: "/v2/{parent=projects/*/agent}/entityTypes"
+ body: "entity_type"
+ };
+ }
+
+ // Updates the specified entity type.
+ rpc UpdateEntityType(UpdateEntityTypeRequest) returns (EntityType) {
+ option (google.api.http) = {
+ patch: "/v2/{entity_type.name=projects/*/agent/entityTypes/*}"
+ body: "entity_type"
+ };
+ }
+
+ // Deletes the specified entity type.
+ rpc DeleteEntityType(DeleteEntityTypeRequest) returns (google.protobuf.Empty) {
+ option (google.api.http) = {
+ delete: "/v2/{name=projects/*/agent/entityTypes/*}"
+ };
+ }
+
+ // Updates/Creates multiple entity types in the specified agent.
+ //
+ // Operation <response: [BatchUpdateEntityTypesResponse][google.cloud.dialogflow.v2.BatchUpdateEntityTypesResponse]>
+ rpc BatchUpdateEntityTypes(BatchUpdateEntityTypesRequest) returns (google.longrunning.Operation) {
+ option (google.api.http) = {
+ post: "/v2/{parent=projects/*/agent}/entityTypes:batchUpdate"
+ body: "*"
+ };
+ }
+
+ // Deletes entity types in the specified agent.
+ //
+ // Operation <response: [google.protobuf.Empty][google.protobuf.Empty]>
+ rpc BatchDeleteEntityTypes(BatchDeleteEntityTypesRequest) returns (google.longrunning.Operation) {
+ option (google.api.http) = {
+ post: "/v2/{parent=projects/*/agent}/entityTypes:batchDelete"
+ body: "*"
+ };
+ }
+
+ // Creates multiple new entities in the specified entity type.
+ //
+ // Operation <response: [google.protobuf.Empty][google.protobuf.Empty]>
+ rpc BatchCreateEntities(BatchCreateEntitiesRequest) returns (google.longrunning.Operation) {
+ option (google.api.http) = {
+ post: "/v2/{parent=projects/*/agent/entityTypes/*}/entities:batchCreate"
+ body: "*"
+ };
+ }
+
+ // Updates or creates multiple entities in the specified entity type. This
+ // method does not affect entities in the entity type that aren't explicitly
+ // specified in the request.
+ //
+ // Operation <response: [google.protobuf.Empty][google.protobuf.Empty]>
+ rpc BatchUpdateEntities(BatchUpdateEntitiesRequest) returns (google.longrunning.Operation) {
+ option (google.api.http) = {
+ post: "/v2/{parent=projects/*/agent/entityTypes/*}/entities:batchUpdate"
+ body: "*"
+ };
+ }
+
+ // Deletes entities in the specified entity type.
+ //
+ // Operation <response: [google.protobuf.Empty][google.protobuf.Empty]>
+ rpc BatchDeleteEntities(BatchDeleteEntitiesRequest) returns (google.longrunning.Operation) {
+ option (google.api.http) = {
+ post: "/v2/{parent=projects/*/agent/entityTypes/*}/entities:batchDelete"
+ body: "*"
+ };
+ }
+}
+
+// Represents an entity type.
+// Entity types serve as a tool for extracting parameter values from natural
+// language queries.
+message EntityType {
+ // An **entity entry** for an associated entity type.
+ message Entity {
+ // Required. The primary value associated with this entity entry.
+ // For example, if the entity type is *vegetable*, the value could be
+ // *scallions*.
+ //
+ // For `KIND_MAP` entity types:
+ //
+ // * A canonical value to be used in place of synonyms.
+ //
+ // For `KIND_LIST` entity types:
+ //
+ // * A string that can contain references to other entity types (with or
+ // without aliases).
+ string value = 1;
+
+ // Required. A collection of value synonyms. For example, if the entity type
+ // is *vegetable*, and `value` is *scallions*, a synonym could be *green
+ // onions*.
+ //
+ // For `KIND_LIST` entity types:
+ //
+ // * This collection must contain exactly one synonym equal to `value`.
+ repeated string synonyms = 2;
+ }
+
+ // Represents kinds of entities.
+ enum Kind {
+ // Not specified. This value should be never used.
+ KIND_UNSPECIFIED = 0;
+
+ // Map entity types allow mapping of a group of synonyms to a canonical
+ // value.
+ KIND_MAP = 1;
+
+ // List entity types contain a set of entries that do not map to canonical
+ // values. However, list entity types can contain references to other entity
+ // types (with or without aliases).
+ KIND_LIST = 2;
+ }
+
+ // Represents different entity type expansion modes. Automated expansion
+ // allows an agent to recognize values that have not been explicitly listed in
+ // the entity (for example, new kinds of shopping list items).
+ enum AutoExpansionMode {
+ // Auto expansion disabled for the entity.
+ AUTO_EXPANSION_MODE_UNSPECIFIED = 0;
+
+ // Allows an agent to recognize values that have not been explicitly
+ // listed in the entity.
+ AUTO_EXPANSION_MODE_DEFAULT = 1;
+ }
+
+ // The unique identifier of the entity type.
+ // Required for [EntityTypes.UpdateEntityType][google.cloud.dialogflow.v2.EntityTypes.UpdateEntityType] and
+ // [EntityTypes.BatchUpdateEntityTypes][google.cloud.dialogflow.v2.EntityTypes.BatchUpdateEntityTypes] methods.
+ // Format: `projects/<Project ID>/agent/entityTypes/<Entity Type ID>`.
+ string name = 1;
+
+ // Required. The name of the entity type.
+ string display_name = 2;
+
+ // Required. Indicates the kind of entity type.
+ Kind kind = 3;
+
+ // Optional. Indicates whether the entity type can be automatically
+ // expanded.
+ AutoExpansionMode auto_expansion_mode = 4;
+
+ // Optional. The collection of entity entries associated with the entity type.
+ repeated Entity entities = 6;
+}
+
+// The request message for [EntityTypes.ListEntityTypes][google.cloud.dialogflow.v2.EntityTypes.ListEntityTypes].
+message ListEntityTypesRequest {
+ // Required. The agent to list all entity types from.
+ // Format: `projects/<Project ID>/agent`.
+ string parent = 1;
+
+ // Optional. The language to list entity synonyms for. If not specified,
+ // the agent's default language is used.
+ // [Many
+ // languages](https://cloud.google.com/dialogflow-enterprise/docs/reference/language)
+ // are supported. Note: languages must be enabled in the agent before they can
+ // be used.
+ string language_code = 2;
+
+ // Optional. The maximum number of items to return in a single page. By
+ // default 100 and at most 1000.
+ int32 page_size = 3;
+
+ // Optional. The next_page_token value returned from a previous list request.
+ string page_token = 4;
+}
+
+// The response message for [EntityTypes.ListEntityTypes][google.cloud.dialogflow.v2.EntityTypes.ListEntityTypes].
+message ListEntityTypesResponse {
+ // The list of agent entity types. There will be a maximum number of items
+ // returned based on the page_size field in the request.
+ repeated EntityType entity_types = 1;
+
+ // Token to retrieve the next page of results, or empty if there are no
+ // more results in the list.
+ string next_page_token = 2;
+}
+
+// The request message for [EntityTypes.GetEntityType][google.cloud.dialogflow.v2.EntityTypes.GetEntityType].
+message GetEntityTypeRequest {
+ // Required. The name of the entity type.
+ // Format: `projects/<Project ID>/agent/entityTypes/<EntityType ID>`.
+ string name = 1;
+
+ // Optional. The language to retrieve entity synonyms for. If not specified,
+ // the agent's default language is used.
+ // [Many
+ // languages](https://cloud.google.com/dialogflow-enterprise/docs/reference/language)
+ // are supported. Note: languages must be enabled in the agent before they can
+ // be used.
+ string language_code = 2;
+}
+
+// The request message for [EntityTypes.CreateEntityType][google.cloud.dialogflow.v2.EntityTypes.CreateEntityType].
+message CreateEntityTypeRequest {
+ // Required. The agent to create a entity type for.
+ // Format: `projects/<Project ID>/agent`.
+ string parent = 1;
+
+ // Required. The entity type to create.
+ EntityType entity_type = 2;
+
+ // Optional. The language of entity synonyms defined in `entity_type`. If not
+ // specified, the agent's default language is used.
+ // [Many
+ // languages](https://cloud.google.com/dialogflow-enterprise/docs/reference/language)
+ // are supported. Note: languages must be enabled in the agent before they can
+ // be used.
+ string language_code = 3;
+}
+
+// The request message for [EntityTypes.UpdateEntityType][google.cloud.dialogflow.v2.EntityTypes.UpdateEntityType].
+message UpdateEntityTypeRequest {
+ // Required. The entity type to update.
+ EntityType entity_type = 1;
+
+ // Optional. The language of entity synonyms defined in `entity_type`. If not
+ // specified, the agent's default language is used.
+ // [Many
+ // languages](https://cloud.google.com/dialogflow-enterprise/docs/reference/language)
+ // are supported. Note: languages must be enabled in the agent before they can
+ // be used.
+ string language_code = 2;
+
+ // Optional. The mask to control which fields get updated.
+ google.protobuf.FieldMask update_mask = 3;
+}
+
+// The request message for [EntityTypes.DeleteEntityType][google.cloud.dialogflow.v2.EntityTypes.DeleteEntityType].
+message DeleteEntityTypeRequest {
+ // Required. The name of the entity type to delete.
+ // Format: `projects/<Project ID>/agent/entityTypes/<EntityType ID>`.
+ string name = 1;
+}
+
+// The request message for [EntityTypes.BatchUpdateEntityTypes][google.cloud.dialogflow.v2.EntityTypes.BatchUpdateEntityTypes].
+message BatchUpdateEntityTypesRequest {
+ // Required. The name of the agent to update or create entity types in.
+ // Format: `projects/<Project ID>/agent`.
+ string parent = 1;
+
+ // Required. The source of the entity type batch.
+ //
+ // For each entity type in the batch:
+ //
+ // * If `name` is specified, we update an existing entity type.
+ // * If `name` is not specified, we create a new entity type.
+ oneof entity_type_batch {
+ // The URI to a Google Cloud Storage file containing entity types to update
+ // or create. The file format can either be a serialized proto (of
+ // EntityBatch type) or a JSON object. Note: The URI must start with
+ // "gs://".
+ string entity_type_batch_uri = 2;
+
+ // The collection of entity types to update or create.
+ EntityTypeBatch entity_type_batch_inline = 3;
+ }
+
+ // Optional. The language of entity synonyms defined in `entity_types`. If not
+ // specified, the agent's default language is used.
+ // [Many
+ // languages](https://cloud.google.com/dialogflow-enterprise/docs/reference/language)
+ // are supported. Note: languages must be enabled in the agent before they can
+ // be used.
+ string language_code = 4;
+
+ // Optional. The mask to control which fields get updated.
+ google.protobuf.FieldMask update_mask = 5;
+}
+
+// The response message for [EntityTypes.BatchUpdateEntityTypes][google.cloud.dialogflow.v2.EntityTypes.BatchUpdateEntityTypes].
+message BatchUpdateEntityTypesResponse {
+ // The collection of updated or created entity types.
+ repeated EntityType entity_types = 1;
+}
+
+// The request message for [EntityTypes.BatchDeleteEntityTypes][google.cloud.dialogflow.v2.EntityTypes.BatchDeleteEntityTypes].
+message BatchDeleteEntityTypesRequest {
+ // Required. The name of the agent to delete all entities types for. Format:
+ // `projects/<Project ID>/agent`.
+ string parent = 1;
+
+ // Required. The names entity types to delete. All names must point to the
+ // same agent as `parent`.
+ repeated string entity_type_names = 2;
+}
+
+// The request message for [EntityTypes.BatchCreateEntities][google.cloud.dialogflow.v2.EntityTypes.BatchCreateEntities].
+message BatchCreateEntitiesRequest {
+ // Required. The name of the entity type to create entities in. Format:
+ // `projects/<Project ID>/agent/entityTypes/<Entity Type ID>`.
+ string parent = 1;
+
+ // Required. The entities to create.
+ repeated EntityType.Entity entities = 2;
+
+ // Optional. The language of entity synonyms defined in `entities`. If not
+ // specified, the agent's default language is used.
+ // [Many
+ // languages](https://cloud.google.com/dialogflow-enterprise/docs/reference/language)
+ // are supported. Note: languages must be enabled in the agent before they can
+ // be used.
+ string language_code = 3;
+}
+
+// The request message for [EntityTypes.BatchUpdateEntities][google.cloud.dialogflow.v2.EntityTypes.BatchUpdateEntities].
+message BatchUpdateEntitiesRequest {
+ // Required. The name of the entity type to update or create entities in.
+ // Format: `projects/<Project ID>/agent/entityTypes/<Entity Type ID>`.
+ string parent = 1;
+
+ // Required. The entities to update or create.
+ repeated EntityType.Entity entities = 2;
+
+ // Optional. The language of entity synonyms defined in `entities`. If not
+ // specified, the agent's default language is used.
+ // [Many
+ // languages](https://cloud.google.com/dialogflow-enterprise/docs/reference/language)
+ // are supported. Note: languages must be enabled in the agent before they can
+ // be used.
+ string language_code = 3;
+
+ // Optional. The mask to control which fields get updated.
+ google.protobuf.FieldMask update_mask = 4;
+}
+
+// The request message for [EntityTypes.BatchDeleteEntities][google.cloud.dialogflow.v2.EntityTypes.BatchDeleteEntities].
+message BatchDeleteEntitiesRequest {
+ // Required. The name of the entity type to delete entries for. Format:
+ // `projects/<Project ID>/agent/entityTypes/<Entity Type ID>`.
+ string parent = 1;
+
+ // Required. The canonical `values` of the entities to delete. Note that
+ // these are not fully-qualified names, i.e. they don't start with
+ // `projects/<Project ID>`.
+ repeated string entity_values = 2;
+
+ // Optional. The language of entity synonyms defined in `entities`. If not
+ // specified, the agent's default language is used.
+ // [Many
+ // languages](https://cloud.google.com/dialogflow-enterprise/docs/reference/language)
+ // are supported. Note: languages must be enabled in the agent before they can
+ // be used.
+ string language_code = 3;
+}
+
+// This message is a wrapper around a collection of entity types.
+message EntityTypeBatch {
+ // A collection of entity types.
+ repeated EntityType entity_types = 1;
+}
diff --git a/google/cloud/dialogflow/v2/intent.proto b/google/cloud/dialogflow/v2/intent.proto
new file mode 100644
index 000000000..bd7382fcf
--- /dev/null
+++ b/google/cloud/dialogflow/v2/intent.proto
@@ -0,0 +1,848 @@
+// Copyright 2019 Google LLC.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+syntax = "proto3";
+
+package google.cloud.dialogflow.v2;
+
+import "google/api/annotations.proto";
+import "google/api/resource.proto";
+import "google/cloud/dialogflow/v2/context.proto";
+import "google/longrunning/operations.proto";
+import "google/protobuf/duration.proto";
+import "google/protobuf/empty.proto";
+import "google/protobuf/field_mask.proto";
+import "google/protobuf/struct.proto";
+
+option cc_enable_arenas = true;
+option csharp_namespace = "Google.Cloud.Dialogflow.V2";
+option go_package = "google.golang.org/genproto/googleapis/cloud/dialogflow/v2;dialogflow";
+option java_multiple_files = true;
+option java_outer_classname = "IntentProto";
+option java_package = "com.google.cloud.dialogflow.v2";
+option objc_class_prefix = "DF";
+
+// An intent represents a mapping between input from a user and an action to
+// be taken by your application. When you pass user input to the
+// [DetectIntent][google.cloud.dialogflow.v2.Sessions.DetectIntent] (or
+// [StreamingDetectIntent][google.cloud.dialogflow.v2.Sessions.StreamingDetectIntent]) method, the
+// Dialogflow API analyzes the input and searches
+// for a matching intent. If no match is found, the Dialogflow API returns a
+// fallback intent (`is_fallback` = true).
+//
+// You can provide additional information for the Dialogflow API to use to
+// match user input to an intent by adding the following to your intent.
+//
+// * **Contexts** - provide additional context for intent analysis. For
+// example, if an intent is related to an object in your application that
+// plays music, you can provide a context to determine when to match the
+// intent if the user input is "turn it off". You can include a context
+// that matches the intent when there is previous user input of
+// "play music", and not when there is previous user input of
+// "turn on the light".
+//
+// * **Events** - allow for matching an intent by using an event name
+// instead of user input. Your application can provide an event name and
+// related parameters to the Dialogflow API to match an intent. For
+// example, when your application starts, you can send a welcome event
+// with a user name parameter to the Dialogflow API to match an intent with
+// a personalized welcome message for the user.
+//
+// * **Training phrases** - provide examples of user input to train the
+// Dialogflow API agent to better match intents.
+//
+// For more information about intents, see the
+// [Dialogflow
+// documentation](https://cloud.google.com/dialogflow-enterprise/docs/intents-overview).
+service Intents {
+ // Returns the list of all intents in the specified agent.
+ rpc ListIntents(ListIntentsRequest) returns (ListIntentsResponse) {
+ option (google.api.http) = {
+ get: "/v2/{parent=projects/*/agent}/intents"
+ };
+ }
+
+ // Retrieves the specified intent.
+ rpc GetIntent(GetIntentRequest) returns (Intent) {
+ option (google.api.http) = {
+ get: "/v2/{name=projects/*/agent/intents/*}"
+ };
+ }
+
+ // Creates an intent in the specified agent.
+ rpc CreateIntent(CreateIntentRequest) returns (Intent) {
+ option (google.api.http) = {
+ post: "/v2/{parent=projects/*/agent}/intents"
+ body: "intent"
+ };
+ }
+
+ // Updates the specified intent.
+ rpc UpdateIntent(UpdateIntentRequest) returns (Intent) {
+ option (google.api.http) = {
+ patch: "/v2/{intent.name=projects/*/agent/intents/*}"
+ body: "intent"
+ };
+ }
+
+ // Deletes the specified intent and its direct or indirect followup intents.
+ rpc DeleteIntent(DeleteIntentRequest) returns (google.protobuf.Empty) {
+ option (google.api.http) = {
+ delete: "/v2/{name=projects/*/agent/intents/*}"
+ };
+ }
+
+ // Updates/Creates multiple intents in the specified agent.
+ //
+ // Operation <response: [BatchUpdateIntentsResponse][google.cloud.dialogflow.v2.BatchUpdateIntentsResponse]>
+ rpc BatchUpdateIntents(BatchUpdateIntentsRequest) returns (google.longrunning.Operation) {
+ option (google.api.http) = {
+ post: "/v2/{parent=projects/*/agent}/intents:batchUpdate"
+ body: "*"
+ };
+ }
+
+ // Deletes intents in the specified agent.
+ //
+ // Operation <response: [google.protobuf.Empty][google.protobuf.Empty]>
+ rpc BatchDeleteIntents(BatchDeleteIntentsRequest) returns (google.longrunning.Operation) {
+ option (google.api.http) = {
+ post: "/v2/{parent=projects/*/agent}/intents:batchDelete"
+ body: "*"
+ };
+ }
+}
+
+// Represents an intent.
+// Intents convert a number of user expressions or patterns into an action. An
+// action is an extraction of a user command or sentence semantics.
+message Intent {
+ // Represents an example that the agent is trained on.
+ message TrainingPhrase {
+ // Represents a part of a training phrase.
+ message Part {
+ // Required. The text for this part.
+ string text = 1;
+
+ // Optional. The entity type name prefixed with `@`.
+ // This field is required for annotated parts of the training phrase.
+ string entity_type = 2;
+
+ // Optional. The parameter name for the value extracted from the
+ // annotated part of the example.
+ // This field is required for annotated parts of the training phrase.
+ string alias = 3;
+
+ // Optional. Indicates whether the text was manually annotated.
+ // This field is set to true when the Dialogflow Console is used to
+ // manually annotate the part. When creating an annotated part with the
+ // API, you must set this to true.
+ bool user_defined = 4;
+ }
+
+ // Represents different types of training phrases.
+ enum Type {
+ // Not specified. This value should never be used.
+ TYPE_UNSPECIFIED = 0;
+
+ // Examples do not contain @-prefixed entity type names, but example parts
+ // can be annotated with entity types.
+ EXAMPLE = 1;
+
+ // Templates are not annotated with entity types, but they can contain
+ // @-prefixed entity type names as substrings.
+ // Template mode has been deprecated. Example mode is the only supported
+ // way to create new training phrases. If you have existing training
+ // phrases that you've created in template mode, those will continue to
+ // work.
+ TEMPLATE = 2 [deprecated = true];
+ }
+
+ // Output only. The unique identifier of this training phrase.
+ string name = 1;
+
+ // Required. The type of the training phrase.
+ Type type = 2;
+
+ // Required. The ordered list of training phrase parts.
+ // The parts are concatenated in order to form the training phrase.
+ //
+ // Note: The API does not automatically annotate training phrases like the
+ // Dialogflow Console does.
+ //
+ // Note: Do not forget to include whitespace at part boundaries,
+ // so the training phrase is well formatted when the parts are concatenated.
+ //
+ // If the training phrase does not need to be annotated with parameters,
+ // you just need a single part with only the [Part.text][google.cloud.dialogflow.v2.Intent.TrainingPhrase.Part.text] field set.
+ //
+ // If you want to annotate the training phrase, you must create multiple
+ // parts, where the fields of each part are populated in one of two ways:
+ //
+ // - `Part.text` is set to a part of the phrase that has no parameters.
+ // - `Part.text` is set to a part of the phrase that you want to annotate,
+ // and the `entity_type`, `alias`, and `user_defined` fields are all
+ // set.
+ repeated Part parts = 3;
+
+ // Optional. Indicates how many times this example was added to
+ // the intent. Each time a developer adds an existing sample by editing an
+ // intent or training, this counter is increased.
+ int32 times_added_count = 4;
+ }
+
+ // Represents intent parameters.
+ message Parameter {
+ // The unique identifier of this parameter.
+ string name = 1;
+
+ // Required. The name of the parameter.
+ string display_name = 2;
+
+ // Optional. The definition of the parameter value. It can be:
+ // - a constant string,
+ // - a parameter value defined as `$parameter_name`,
+ // - an original parameter value defined as `$parameter_name.original`,
+ // - a parameter value from some context defined as
+ // `#context_name.parameter_name`.
+ string value = 3;
+
+ // Optional. The default value to use when the `value` yields an empty
+ // result.
+ // Default values can be extracted from contexts by using the following
+ // syntax: `#context_name.parameter_name`.
+ string default_value = 4;
+
+ // Optional. The name of the entity type, prefixed with `@`, that
+ // describes values of the parameter. If the parameter is
+ // required, this must be provided.
+ string entity_type_display_name = 5;
+
+ // Optional. Indicates whether the parameter is required. That is,
+ // whether the intent cannot be completed without collecting the parameter
+ // value.
+ bool mandatory = 6;
+
+ // Optional. The collection of prompts that the agent can present to the
+ // user in order to collect value for the parameter.
+ repeated string prompts = 7;
+
+ // Optional. Indicates whether the parameter represents a list of values.
+ bool is_list = 8;
+ }
+
+ // Corresponds to the `Response` field in the Dialogflow console.
+ message Message {
+ // The text response message.
+ message Text {
+ // Optional. The collection of the agent's responses.
+ repeated string text = 1;
+ }
+
+ // The image response message.
+ message Image {
+ // Optional. The public URI to an image file.
+ string image_uri = 1;
+
+ // Optional. A text description of the image to be used for accessibility,
+ // e.g., screen readers.
+ string accessibility_text = 2;
+ }
+
+ // The quick replies response message.
+ message QuickReplies {
+ // Optional. The title of the collection of quick replies.
+ string title = 1;
+
+ // Optional. The collection of quick replies.
+ repeated string quick_replies = 2;
+ }
+
+ // The card response message.
+ message Card {
+ // Optional. Contains information about a button.
+ message Button {
+ // Optional. The text to show on the button.
+ string text = 1;
+
+ // Optional. The text to send back to the Dialogflow API or a URI to
+ // open.
+ string postback = 2;
+ }
+
+ // Optional. The title of the card.
+ string title = 1;
+
+ // Optional. The subtitle of the card.
+ string subtitle = 2;
+
+ // Optional. The public URI to an image file for the card.
+ string image_uri = 3;
+
+ // Optional. The collection of card buttons.
+ repeated Button buttons = 4;
+ }
+
+ // The simple response message containing speech or text.
+ message SimpleResponse {
+ // One of text_to_speech or ssml must be provided. The plain text of the
+ // speech output. Mutually exclusive with ssml.
+ string text_to_speech = 1;
+
+ // One of text_to_speech or ssml must be provided. Structured spoken
+ // response to the user in the SSML format. Mutually exclusive with
+ // text_to_speech.
+ string ssml = 2;
+
+ // Optional. The text to display.
+ string display_text = 3;
+ }
+
+ // The collection of simple response candidates.
+ // This message in `QueryResult.fulfillment_messages` and
+ // `WebhookResponse.fulfillment_messages` should contain only one
+ // `SimpleResponse`.
+ message SimpleResponses {
+ // Required. The list of simple responses.
+ repeated SimpleResponse simple_responses = 1;
+ }
+
+ // The basic card message. Useful for displaying information.
+ message BasicCard {
+ // The button object that appears at the bottom of a card.
+ message Button {
+ // Opens the given URI.
+ message OpenUriAction {
+ // Required. The HTTP or HTTPS scheme URI.
+ string uri = 1;
+ }
+
+ // Required. The title of the button.
+ string title = 1;
+
+ // Required. Action to take when a user taps on the button.
+ OpenUriAction open_uri_action = 2;
+ }
+
+ // Optional. The title of the card.
+ string title = 1;
+
+ // Optional. The subtitle of the card.
+ string subtitle = 2;
+
+ // Required, unless image is present. The body text of the card.
+ string formatted_text = 3;
+
+ // Optional. The image for the card.
+ Image image = 4;
+
+ // Optional. The collection of card buttons.
+ repeated Button buttons = 5;
+ }
+
+ // The suggestion chip message that the user can tap to quickly post a reply
+ // to the conversation.
+ message Suggestion {
+ // Required. The text shown the in the suggestion chip.
+ string title = 1;
+ }
+
+ // The collection of suggestions.
+ message Suggestions {
+ // Required. The list of suggested replies.
+ repeated Suggestion suggestions = 1;
+ }
+
+ // The suggestion chip message that allows the user to jump out to the app
+ // or website associated with this agent.
+ message LinkOutSuggestion {
+ // Required. The name of the app or site this chip is linking to.
+ string destination_name = 1;
+
+ // Required. The URI of the app or site to open when the user taps the
+ // suggestion chip.
+ string uri = 2;
+ }
+
+ // The card for presenting a list of options to select from.
+ message ListSelect {
+ // An item in the list.
+ message Item {
+ // Required. Additional information about this option.
+ SelectItemInfo info = 1;
+
+ // Required. The title of the list item.
+ string title = 2;
+
+ // Optional. The main text describing the item.
+ string description = 3;
+
+ // Optional. The image to display.
+ Image image = 4;
+ }
+
+ // Optional. The overall title of the list.
+ string title = 1;
+
+ // Required. List items.
+ repeated Item items = 2;
+ }
+
+ // The card for presenting a carousel of options to select from.
+ message CarouselSelect {
+ // An item in the carousel.
+ message Item {
+ // Required. Additional info about the option item.
+ SelectItemInfo info = 1;
+
+ // Required. Title of the carousel item.
+ string title = 2;
+
+ // Optional. The body text of the card.
+ string description = 3;
+
+ // Optional. The image to display.
+ Image image = 4;
+ }
+
+ // Required. Carousel items.
+ repeated Item items = 1;
+ }
+
+ // Additional info about the select item for when it is triggered in a
+ // dialog.
+ message SelectItemInfo {
+ // Required. A unique key that will be sent back to the agent if this
+ // response is given.
+ string key = 1;
+
+ // Optional. A list of synonyms that can also be used to trigger this
+ // item in dialog.
+ repeated string synonyms = 2;
+ }
+
+ // Represents different platforms that a rich message can be intended for.
+ enum Platform {
+ // Not specified.
+ PLATFORM_UNSPECIFIED = 0;
+
+ // Facebook.
+ FACEBOOK = 1;
+
+ // Slack.
+ SLACK = 2;
+
+ // Telegram.
+ TELEGRAM = 3;
+
+ // Kik.
+ KIK = 4;
+
+ // Skype.
+ SKYPE = 5;
+
+ // Line.
+ LINE = 6;
+
+ // Viber.
+ VIBER = 7;
+
+ // Actions on Google.
+ // When using Actions on Google, you can choose one of the specific
+ // Intent.Message types that mention support for Actions on Google,
+ // or you can use the advanced Intent.Message.payload field.
+ // The payload field provides access to AoG features not available in the
+ // specific message types.
+ // If using the Intent.Message.payload field, it should have a structure
+ // similar to the JSON message shown here. For more information, see
+ // [Actions on Google Webhook
+ // Format](https://developers.google.com/actions/dialogflow/webhook)
+ // <pre>{
+ // "expectUserResponse": true,
+ // "isSsml": false,
+ // "noInputPrompts": [],
+ // "richResponse": {
+ // "items": [
+ // {
+ // "simpleResponse": {
+ // "displayText": "hi",
+ // "textToSpeech": "hello"
+ // }
+ // }
+ // ],
+ // "suggestions": [
+ // {
+ // "title": "Say this"
+ // },
+ // {
+ // "title": "or this"
+ // }
+ // ]
+ // },
+ // "systemIntent": {
+ // "data": {
+ // "@type": "type.googleapis.com/google.actions.v2.OptionValueSpec",
+ // "listSelect": {
+ // "items": [
+ // {
+ // "optionInfo": {
+ // "key": "key1",
+ // "synonyms": [
+ // "key one"
+ // ]
+ // },
+ // "title": "must not be empty, but unique"
+ // },
+ // {
+ // "optionInfo": {
+ // "key": "key2",
+ // "synonyms": [
+ // "key two"
+ // ]
+ // },
+ // "title": "must not be empty, but unique"
+ // }
+ // ]
+ // }
+ // },
+ // "intent": "actions.intent.OPTION"
+ // }
+ // }</pre>
+ ACTIONS_ON_GOOGLE = 8;
+ }
+
+ // Required. The rich response message.
+ oneof message {
+ // The text response.
+ Text text = 1;
+
+ // The image response.
+ Image image = 2;
+
+ // The quick replies response.
+ QuickReplies quick_replies = 3;
+
+ // The card response.
+ Card card = 4;
+
+ // Returns a response containing a custom, platform-specific payload.
+ // See the Intent.Message.Platform type for a description of the
+ // structure that may be required for your platform.
+ google.protobuf.Struct payload = 5;
+
+ // The voice and text-only responses for Actions on Google.
+ SimpleResponses simple_responses = 7;
+
+ // The basic card response for Actions on Google.
+ BasicCard basic_card = 8;
+
+ // The suggestion chips for Actions on Google.
+ Suggestions suggestions = 9;
+
+ // The link out suggestion chip for Actions on Google.
+ LinkOutSuggestion link_out_suggestion = 10;
+
+ // The list card response for Actions on Google.
+ ListSelect list_select = 11;
+
+ // The carousel card response for Actions on Google.
+ CarouselSelect carousel_select = 12;
+ }
+
+ // Optional. The platform that this message is intended for.
+ Platform platform = 6;
+ }
+
+ // Represents a single followup intent in the chain.
+ message FollowupIntentInfo {
+ // The unique identifier of the followup intent.
+ // Format: `projects/<Project ID>/agent/intents/<Intent ID>`.
+ string followup_intent_name = 1;
+
+ // The unique identifier of the followup intent's parent.
+ // Format: `projects/<Project ID>/agent/intents/<Intent ID>`.
+ string parent_followup_intent_name = 2;
+ }
+
+ // Represents the different states that webhooks can be in.
+ enum WebhookState {
+ // Webhook is disabled in the agent and in the intent.
+ WEBHOOK_STATE_UNSPECIFIED = 0;
+
+ // Webhook is enabled in the agent and in the intent.
+ WEBHOOK_STATE_ENABLED = 1;
+
+ // Webhook is enabled in the agent and in the intent. Also, each slot
+ // filling prompt is forwarded to the webhook.
+ WEBHOOK_STATE_ENABLED_FOR_SLOT_FILLING = 2;
+ }
+
+ // The unique identifier of this intent.
+ // Required for [Intents.UpdateIntent][google.cloud.dialogflow.v2.Intents.UpdateIntent] and [Intents.BatchUpdateIntents][google.cloud.dialogflow.v2.Intents.BatchUpdateIntents]
+ // methods.
+ // Format: `projects/<Project ID>/agent/intents/<Intent ID>`.
+ string name = 1;
+
+ // Required. The name of this intent.
+ string display_name = 2;
+
+ // Optional. Indicates whether webhooks are enabled for the intent.
+ WebhookState webhook_state = 6;
+
+ // Optional. The priority of this intent. Higher numbers represent higher
+ // priorities. If this is zero or unspecified, we use the default
+ // priority 500000.
+ //
+ // Negative numbers mean that the intent is disabled.
+ int32 priority = 3;
+
+ // Optional. Indicates whether this is a fallback intent.
+ bool is_fallback = 4;
+
+ // Optional. Indicates whether Machine Learning is disabled for the intent.
+ // Note: If `ml_diabled` setting is set to true, then this intent is not
+ // taken into account during inference in `ML ONLY` match mode. Also,
+ // auto-markup in the UI is turned off.
+ bool ml_disabled = 19;
+
+ // Optional. The list of context names required for this intent to be
+ // triggered.
+ // Format: `projects/<Project ID>/agent/sessions/-/contexts/<Context ID>`.
+ repeated string input_context_names = 7;
+
+ // Optional. The collection of event names that trigger the intent.
+ // If the collection of input contexts is not empty, all of the contexts must
+ // be present in the active user session for an event to trigger this intent.
+ repeated string events = 8;
+
+ // Optional. The collection of examples that the agent is
+ // trained on.
+ repeated TrainingPhrase training_phrases = 9;
+
+ // Optional. The name of the action associated with the intent.
+ // Note: The action name must not contain whitespaces.
+ string action = 10;
+
+ // Optional. The collection of contexts that are activated when the intent
+ // is matched. Context messages in this collection should not set the
+ // parameters field. Setting the `lifespan_count` to 0 will reset the context
+ // when the intent is matched.
+ // Format: `projects/<Project ID>/agent/sessions/-/contexts/<Context ID>`.
+ repeated Context output_contexts = 11;
+
+ // Optional. Indicates whether to delete all contexts in the current
+ // session when this intent is matched.
+ bool reset_contexts = 12;
+
+ // Optional. The collection of parameters associated with the intent.
+ repeated Parameter parameters = 13;
+
+ // Optional. The collection of rich messages corresponding to the
+ // `Response` field in the Dialogflow console.
+ repeated Message messages = 14;
+
+ // Optional. The list of platforms for which the first response will be
+ // taken from among the messages assigned to the DEFAULT_PLATFORM.
+ repeated Message.Platform default_response_platforms = 15;
+
+ // Read-only. The unique identifier of the root intent in the chain of
+ // followup intents. It identifies the correct followup intents chain for
+ // this intent. We populate this field only in the output.
+ //
+ // Format: `projects/<Project ID>/agent/intents/<Intent ID>`.
+ string root_followup_intent_name = 16;
+
+ // Read-only after creation. The unique identifier of the parent intent in the
+ // chain of followup intents. You can set this field when creating an intent,
+ // for example with [CreateIntent][] or [BatchUpdateIntents][], in order to
+ // make this intent a followup intent.
+ //
+ // It identifies the parent followup intent.
+ // Format: `projects/<Project ID>/agent/intents/<Intent ID>`.
+ string parent_followup_intent_name = 17;
+
+ // Read-only. Information about all followup intents that have this intent as
+ // a direct or indirect parent. We populate this field only in the output.
+ repeated FollowupIntentInfo followup_intent_info = 18;
+}
+
+// The request message for [Intents.ListIntents][google.cloud.dialogflow.v2.Intents.ListIntents].
+message ListIntentsRequest {
+ // Required. The agent to list all intents from.
+ // Format: `projects/<Project ID>/agent`.
+ string parent = 1;
+
+ // Optional. The language to list training phrases, parameters and rich
+ // messages for. If not specified, the agent's default language is used.
+ // [Many
+ // languages](https://cloud.google.com/dialogflow-enterprise/docs/reference/language)
+ // are supported. Note: languages must be enabled in the agent before they can
+ // be used.
+ string language_code = 2;
+
+ // Optional. The resource view to apply to the returned intent.
+ IntentView intent_view = 3;
+
+ // Optional. The maximum number of items to return in a single page. By
+ // default 100 and at most 1000.
+ int32 page_size = 4;
+
+ // Optional. The next_page_token value returned from a previous list request.
+ string page_token = 5;
+}
+
+// The response message for [Intents.ListIntents][google.cloud.dialogflow.v2.Intents.ListIntents].
+message ListIntentsResponse {
+ // The list of agent intents. There will be a maximum number of items
+ // returned based on the page_size field in the request.
+ repeated Intent intents = 1;
+
+ // Token to retrieve the next page of results, or empty if there are no
+ // more results in the list.
+ string next_page_token = 2;
+}
+
+// The request message for [Intents.GetIntent][google.cloud.dialogflow.v2.Intents.GetIntent].
+message GetIntentRequest {
+ // Required. The name of the intent.
+ // Format: `projects/<Project ID>/agent/intents/<Intent ID>`.
+ string name = 1;
+
+ // Optional. The language to retrieve training phrases, parameters and rich
+ // messages for. If not specified, the agent's default language is used.
+ // [Many
+ // languages](https://cloud.google.com/dialogflow-enterprise/docs/reference/language)
+ // are supported. Note: languages must be enabled in the agent before they can
+ // be used.
+ string language_code = 2;
+
+ // Optional. The resource view to apply to the returned intent.
+ IntentView intent_view = 3;
+}
+
+// The request message for [Intents.CreateIntent][google.cloud.dialogflow.v2.Intents.CreateIntent].
+message CreateIntentRequest {
+ // Required. The agent to create a intent for.
+ // Format: `projects/<Project ID>/agent`.
+ string parent = 1;
+
+ // Required. The intent to create.
+ Intent intent = 2;
+
+ // Optional. The language of training phrases, parameters and rich messages
+ // defined in `intent`. If not specified, the agent's default language is
+ // used. [Many
+ // languages](https://cloud.google.com/dialogflow-enterprise/docs/reference/language)
+ // are supported. Note: languages must be enabled in the agent before they can
+ // be used.
+ string language_code = 3;
+
+ // Optional. The resource view to apply to the returned intent.
+ IntentView intent_view = 4;
+}
+
+// The request message for [Intents.UpdateIntent][google.cloud.dialogflow.v2.Intents.UpdateIntent].
+message UpdateIntentRequest {
+ // Required. The intent to update.
+ Intent intent = 1;
+
+ // Optional. The language of training phrases, parameters and rich messages
+ // defined in `intent`. If not specified, the agent's default language is
+ // used. [Many
+ // languages](https://cloud.google.com/dialogflow-enterprise/docs/reference/language)
+ // are supported. Note: languages must be enabled in the agent before they can
+ // be used.
+ string language_code = 2;
+
+ // Optional. The mask to control which fields get updated.
+ google.protobuf.FieldMask update_mask = 3;
+
+ // Optional. The resource view to apply to the returned intent.
+ IntentView intent_view = 4;
+}
+
+// The request message for [Intents.DeleteIntent][google.cloud.dialogflow.v2.Intents.DeleteIntent].
+message DeleteIntentRequest {
+ // Required. The name of the intent to delete. If this intent has direct or
+ // indirect followup intents, we also delete them.
+ // Format: `projects/<Project ID>/agent/intents/<Intent ID>`.
+ string name = 1;
+}
+
+// The request message for [Intents.BatchUpdateIntents][google.cloud.dialogflow.v2.Intents.BatchUpdateIntents].
+message BatchUpdateIntentsRequest {
+ // Required. The name of the agent to update or create intents in.
+ // Format: `projects/<Project ID>/agent`.
+ string parent = 1;
+
+ // Required. The source of the intent batch.
+ oneof intent_batch {
+ // The URI to a Google Cloud Storage file containing intents to update or
+ // create. The file format can either be a serialized proto (of IntentBatch
+ // type) or JSON object. Note: The URI must start with "gs://".
+ string intent_batch_uri = 2;
+
+ // The collection of intents to update or create.
+ IntentBatch intent_batch_inline = 3;
+ }
+
+ // Optional. The language of training phrases, parameters and rich messages
+ // defined in `intents`. If not specified, the agent's default language is
+ // used. [Many
+ // languages](https://cloud.google.com/dialogflow-enterprise/docs/reference/language)
+ // are supported. Note: languages must be enabled in the agent before they can
+ // be used.
+ string language_code = 4;
+
+ // Optional. The mask to control which fields get updated.
+ google.protobuf.FieldMask update_mask = 5;
+
+ // Optional. The resource view to apply to the returned intent.
+ IntentView intent_view = 6;
+}
+
+// The response message for [Intents.BatchUpdateIntents][google.cloud.dialogflow.v2.Intents.BatchUpdateIntents].
+message BatchUpdateIntentsResponse {
+ // The collection of updated or created intents.
+ repeated Intent intents = 1;
+}
+
+// The request message for [Intents.BatchDeleteIntents][google.cloud.dialogflow.v2.Intents.BatchDeleteIntents].
+message BatchDeleteIntentsRequest {
+ // Required. The name of the agent to delete all entities types for. Format:
+ // `projects/<Project ID>/agent`.
+ string parent = 1;
+
+ // Required. The collection of intents to delete. Only intent `name` must be
+ // filled in.
+ repeated Intent intents = 2;
+}
+
+// This message is a wrapper around a collection of intents.
+message IntentBatch {
+ // A collection of intents.
+ repeated Intent intents = 1;
+}
+
+// Represents the options for views of an intent.
+// An intent can be a sizable object. Therefore, we provide a resource view that
+// does not return training phrases in the response by default.
+enum IntentView {
+ // Training phrases field is not populated in the response.
+ INTENT_VIEW_UNSPECIFIED = 0;
+
+ // All fields are populated.
+ INTENT_VIEW_FULL = 1;
+}
diff --git a/google/cloud/dialogflow/v2/session.proto b/google/cloud/dialogflow/v2/session.proto
new file mode 100644
index 000000000..e10bb6db8
--- /dev/null
+++ b/google/cloud/dialogflow/v2/session.proto
@@ -0,0 +1,555 @@
+// Copyright 2019 Google LLC.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+syntax = "proto3";
+
+package google.cloud.dialogflow.v2;
+
+import "google/api/annotations.proto";
+import "google/api/resource.proto";
+import "google/cloud/dialogflow/v2/audio_config.proto";
+import "google/cloud/dialogflow/v2/context.proto";
+import "google/cloud/dialogflow/v2/intent.proto";
+import "google/cloud/dialogflow/v2/session_entity_type.proto";
+import "google/protobuf/struct.proto";
+import "google/rpc/status.proto";
+import "google/type/latlng.proto";
+
+option cc_enable_arenas = true;
+option csharp_namespace = "Google.Cloud.Dialogflow.V2";
+option go_package = "google.golang.org/genproto/googleapis/cloud/dialogflow/v2;dialogflow";
+option java_multiple_files = true;
+option java_outer_classname = "SessionProto";
+option java_package = "com.google.cloud.dialogflow.v2";
+option objc_class_prefix = "DF";
+
+// A session represents an interaction with a user. You retrieve user input
+// and pass it to the [DetectIntent][google.cloud.dialogflow.v2.Sessions.DetectIntent] (or
+// [StreamingDetectIntent][google.cloud.dialogflow.v2.Sessions.StreamingDetectIntent]) method to determine
+// user intent and respond.
+service Sessions {
+ // Processes a natural language query and returns structured, actionable data
+ // as a result. This method is not idempotent, because it may cause contexts
+ // and session entity types to be updated, which in turn might affect
+ // results of future queries.
+ rpc DetectIntent(DetectIntentRequest) returns (DetectIntentResponse) {
+ option (google.api.http) = {
+ post: "/v2/{session=projects/*/agent/sessions/*}:detectIntent"
+ body: "*"
+ };
+ }
+
+ // Processes a natural language query in audio format in a streaming fashion
+ // and returns structured, actionable data as a result. This method is only
+ // available via the gRPC API (not REST).
+ rpc StreamingDetectIntent(stream StreamingDetectIntentRequest) returns (stream StreamingDetectIntentResponse) {
+ }
+}
+
+// The request to detect user's intent.
+message DetectIntentRequest {
+ // Required. The name of the session this query is sent to. Format:
+ // `projects/<Project ID>/agent/sessions/<Session ID>`. It's up to the API
+ // caller to choose an appropriate session ID. It can be a random number or
+ // some type of user identifier (preferably hashed). The length of the session
+ // ID must not exceed 36 bytes.
+ string session = 1;
+
+ // Optional. The parameters of this query.
+ QueryParameters query_params = 2;
+
+ // Required. The input specification. It can be set to:
+ //
+ // 1. an audio config
+ // which instructs the speech recognizer how to process the speech audio,
+ //
+ // 2. a conversational query in the form of text, or
+ //
+ // 3. an event that specifies which intent to trigger.
+ QueryInput query_input = 3;
+
+ // Optional. Instructs the speech synthesizer how to generate the output
+ // audio. If this field is not set and agent-level speech synthesizer is not
+ // configured, no output audio is generated.
+ OutputAudioConfig output_audio_config = 4;
+
+ // Optional. The natural language speech audio to be processed. This field
+ // should be populated iff `query_input` is set to an input audio config.
+ // A single request can contain up to 1 minute of speech audio data.
+ bytes input_audio = 5;
+}
+
+// The message returned from the DetectIntent method.
+message DetectIntentResponse {
+ // The unique identifier of the response. It can be used to
+ // locate a response in the training example set or for reporting issues.
+ string response_id = 1;
+
+ // The selected results of the conversational query or event processing.
+ // See `alternative_query_results` for additional potential results.
+ QueryResult query_result = 2;
+
+ // Specifies the status of the webhook request.
+ google.rpc.Status webhook_status = 3;
+
+ // The audio data bytes encoded as specified in the request.
+ // Note: The output audio is generated based on the values of default platform
+ // text responses found in the `query_result.fulfillment_messages` field. If
+ // multiple default text responses exist, they will be concatenated when
+ // generating audio. If no default platform text responses exist, the
+ // generated audio content will be empty.
+ bytes output_audio = 4;
+
+ // The config used by the speech synthesizer to generate the output audio.
+ OutputAudioConfig output_audio_config = 6;
+}
+
+// Represents the parameters of the conversational query.
+message QueryParameters {
+ // Optional. The time zone of this conversational query from the
+ // [time zone database](https://www.iana.org/time-zones), e.g.,
+ // America/New_York, Europe/Paris. If not provided, the time zone specified in
+ // agent settings is used.
+ string time_zone = 1;
+
+ // Optional. The geo location of this conversational query.
+ google.type.LatLng geo_location = 2;
+
+ // Optional. The collection of contexts to be activated before this query is
+ // executed.
+ repeated Context contexts = 3;
+
+ // Optional. Specifies whether to delete all contexts in the current session
+ // before the new ones are activated.
+ bool reset_contexts = 4;
+
+ // Optional. Additional session entity types to replace or extend developer
+ // entity types with. The entity synonyms apply to all languages and persist
+ // for the session of this query.
+ repeated SessionEntityType session_entity_types = 5;
+
+ // Optional. This field can be used to pass custom data into the webhook
+ // associated with the agent. Arbitrary JSON objects are supported.
+ google.protobuf.Struct payload = 6;
+
+ // Optional. Configures the type of sentiment analysis to perform. If not
+ // provided, sentiment analysis is not performed.
+ SentimentAnalysisRequestConfig sentiment_analysis_request_config = 10;
+}
+
+// Represents the query input. It can contain either:
+//
+// 1. An audio config which
+// instructs the speech recognizer how to process the speech audio.
+//
+// 2. A conversational query in the form of text,.
+//
+// 3. An event that specifies which intent to trigger.
+message QueryInput {
+ // Required. The input specification.
+ oneof input {
+ // Instructs the speech recognizer how to process the speech audio.
+ InputAudioConfig audio_config = 1;
+
+ // The natural language text to be processed.
+ TextInput text = 2;
+
+ // The event to be processed.
+ EventInput event = 3;
+ }
+}
+
+// Represents the result of conversational query or event processing.
+message QueryResult {
+ // The original conversational query text:
+ // - If natural language text was provided as input, `query_text` contains
+ // a copy of the input.
+ // - If natural language speech audio was provided as input, `query_text`
+ // contains the speech recognition result. If speech recognizer produced
+ // multiple alternatives, a particular one is picked.
+ // - If an event was provided as input, `query_text` is not set.
+ string query_text = 1;
+
+ // The language that was triggered during intent detection.
+ // See [Language
+ // Support](https://cloud.google.com/dialogflow-enterprise/docs/reference/language)
+ // for a list of the currently supported language codes.
+ string language_code = 15;
+
+ // The Speech recognition confidence between 0.0 and 1.0. A higher number
+ // indicates an estimated greater likelihood that the recognized words are
+ // correct. The default of 0.0 is a sentinel value indicating that confidence
+ // was not set.
+ //
+ // This field is not guaranteed to be accurate or set. In particular this
+ // field isn't set for StreamingDetectIntent since the streaming endpoint has
+ // separate confidence estimates per portion of the audio in
+ // StreamingRecognitionResult.
+ float speech_recognition_confidence = 2;
+
+ // The action name from the matched intent.
+ string action = 3;
+
+ // The collection of extracted parameters.
+ google.protobuf.Struct parameters = 4;
+
+ // This field is set to:
+ // - `false` if the matched intent has required parameters and not all of
+ // the required parameter values have been collected.
+ // - `true` if all required parameter values have been collected, or if the
+ // matched intent doesn't contain any required parameters.
+ bool all_required_params_present = 5;
+
+ // The text to be pronounced to the user or shown on the screen.
+ // Note: This is a legacy field, `fulfillment_messages` should be preferred.
+ string fulfillment_text = 6;
+
+ // The collection of rich messages to present to the user.
+ repeated Intent.Message fulfillment_messages = 7;
+
+ // If the query was fulfilled by a webhook call, this field is set to the
+ // value of the `source` field returned in the webhook response.
+ string webhook_source = 8;
+
+ // If the query was fulfilled by a webhook call, this field is set to the
+ // value of the `payload` field returned in the webhook response.
+ google.protobuf.Struct webhook_payload = 9;
+
+ // The collection of output contexts. If applicable,
+ // `output_contexts.parameters` contains entries with name
+ // `<parameter name>.original` containing the original parameter values
+ // before the query.
+ repeated Context output_contexts = 10;
+
+ // The intent that matched the conversational query. Some, not
+ // all fields are filled in this message, including but not limited to:
+ // `name`, `display_name` and `webhook_state`.
+ Intent intent = 11;
+
+ // The intent detection confidence. Values range from 0.0
+ // (completely uncertain) to 1.0 (completely certain).
+ // If there are `multiple knowledge_answers` messages, this value is set to
+ // the greatest `knowledgeAnswers.match_confidence` value in the list.
+ float intent_detection_confidence = 12;
+
+ // The free-form diagnostic info. For example, this field could contain
+ // webhook call latency. The string keys of the Struct's fields map can change
+ // without notice.
+ google.protobuf.Struct diagnostic_info = 14;
+
+ // The sentiment analysis result, which depends on the
+ // `sentiment_analysis_request_config` specified in the request.
+ SentimentAnalysisResult sentiment_analysis_result = 17;
+}
+
+// The top-level message sent by the client to the
+// `StreamingDetectIntent` method.
+//
+// Multiple request messages should be sent in order:
+//
+// 1. The first message must contain `session`, `query_input` plus optionally
+// `query_params` and/or `single_utterance`. The message must not contain `input_audio`.
+//
+// 2. If `query_input` was set to a streaming input audio config,
+// all subsequent messages must contain only `input_audio`.
+// Otherwise, finish the request stream.
+message StreamingDetectIntentRequest {
+ // Required. The name of the session the query is sent to.
+ // Format of the session name:
+ // `projects/<Project ID>/agent/sessions/<Session ID>`. It’s up to the API
+ // caller to choose an appropriate `Session ID`. It can be a random number or
+ // some type of user identifier (preferably hashed). The length of the session
+ // ID must not exceed 36 characters.
+ string session = 1;
+
+ // Optional. The parameters of this query.
+ QueryParameters query_params = 2;
+
+ // Required. The input specification. It can be set to:
+ //
+ // 1. an audio config which instructs the speech recognizer how to process
+ // the speech audio,
+ //
+ // 2. a conversational query in the form of text, or
+ //
+ // 3. an event that specifies which intent to trigger.
+ QueryInput query_input = 3;
+
+ // Optional. If `false` (default), recognition does not cease until the
+ // client closes the stream.
+ // If `true`, the recognizer will detect a single spoken utterance in input
+ // audio. Recognition ceases when it detects the audio's voice has
+ // stopped or paused. In this case, once a detected intent is received, the
+ // client should close the stream and start a new request with a new stream as
+ // needed.
+ // This setting is ignored when `query_input` is a piece of text or an event.
+ bool single_utterance = 4;
+
+ // Optional. Instructs the speech synthesizer how to generate the output
+ // audio. If this field is not set and agent-level speech synthesizer is not
+ // configured, no output audio is generated.
+ OutputAudioConfig output_audio_config = 5;
+
+ // Optional. The input audio content to be recognized. Must be sent if
+ // `query_input` was set to a streaming input audio config. The complete audio
+ // over all streaming messages must not exceed 1 minute.
+ bytes input_audio = 6;
+}
+
+// The top-level message returned from the
+// `StreamingDetectIntent` method.
+//
+// Multiple response messages can be returned in order:
+//
+// 1. If the input was set to streaming audio, the first one or more messages
+// contain `recognition_result`. Each `recognition_result` represents a more
+// complete transcript of what the user said. The last `recognition_result`
+// has `is_final` set to `true`.
+//
+// 2. The next message contains `response_id`, `query_result`
+// and optionally `webhook_status` if a WebHook was called.
+message StreamingDetectIntentResponse {
+ // The unique identifier of the response. It can be used to
+ // locate a response in the training example set or for reporting issues.
+ string response_id = 1;
+
+ // The result of speech recognition.
+ StreamingRecognitionResult recognition_result = 2;
+
+ // The result of the conversational query or event processing.
+ QueryResult query_result = 3;
+
+ // Specifies the status of the webhook request.
+ google.rpc.Status webhook_status = 4;
+
+ // The audio data bytes encoded as specified in the request.
+ bytes output_audio = 5;
+
+ // Instructs the speech synthesizer how to generate the output audio. This
+ // field is populated from the agent-level speech synthesizer configuration,
+ // if enabled.
+ OutputAudioConfig output_audio_config = 6;
+}
+
+// Contains a speech recognition result corresponding to a portion of the audio
+// that is currently being processed or an indication that this is the end
+// of the single requested utterance.
+//
+// Example:
+//
+// 1. transcript: "tube"
+//
+// 2. transcript: "to be a"
+//
+// 3. transcript: "to be"
+//
+// 4. transcript: "to be or not to be"
+// is_final: true
+//
+// 5. transcript: " that's"
+//
+// 6. transcript: " that is"
+//
+// 7. message_type: `MESSAGE_TYPE_END_OF_SINGLE_UTTERANCE`
+//
+// 8. transcript: " that is the question"
+// is_final: true
+//
+// Only two of the responses contain final results (#4 and #8 indicated by
+// `is_final: true`). Concatenating these generates the full transcript: "to be
+// or not to be that is the question".
+//
+// In each response we populate:
+//
+// * for `MESSAGE_TYPE_TRANSCRIPT`: `transcript` and possibly `is_final`.
+//
+// * for `MESSAGE_TYPE_END_OF_SINGLE_UTTERANCE`: only `message_type`.
+message StreamingRecognitionResult {
+ // Type of the response message.
+ enum MessageType {
+ // Not specified. Should never be used.
+ MESSAGE_TYPE_UNSPECIFIED = 0;
+
+ // Message contains a (possibly partial) transcript.
+ TRANSCRIPT = 1;
+
+ // Event indicates that the server has detected the end of the user's speech
+ // utterance and expects no additional speech. Therefore, the server will
+ // not process additional audio (although it may subsequently return
+ // additional results). The client should stop sending additional audio
+ // data, half-close the gRPC connection, and wait for any additional results
+ // until the server closes the gRPC connection. This message is only sent if
+ // `single_utterance` was set to `true`, and is not used otherwise.
+ END_OF_SINGLE_UTTERANCE = 2;
+ }
+
+ // Type of the result message.
+ MessageType message_type = 1;
+
+ // Transcript text representing the words that the user spoke.
+ // Populated if and only if `message_type` = `MESSAGE_TYPE_TRANSCRIPT`.
+ string transcript = 2;
+
+ // If `false`, the `StreamingRecognitionResult` represents an
+ // interim result that may change. If `true`, the recognizer will not return
+ // any further hypotheses about this piece of the audio. May only be populated
+ // for `message_type` = `MESSAGE_TYPE_TRANSCRIPT`.
+ bool is_final = 3;
+
+ // The Speech confidence between 0.0 and 1.0 for the current portion of audio.
+ // A higher number indicates an estimated greater likelihood that the
+ // recognized words are correct. The default of 0.0 is a sentinel value
+ // indicating that confidence was not set.
+ //
+ // This field is typically only provided if `is_final` is true and you should
+ // not rely on it being accurate or even set.
+ float confidence = 4;
+}
+
+// Instructs the speech recognizer how to process the audio content.
+message InputAudioConfig {
+ // Required. Audio encoding of the audio content to process.
+ AudioEncoding audio_encoding = 1;
+
+ // Required. Sample rate (in Hertz) of the audio content sent in the query.
+ // Refer to
+ // [Cloud Speech API
+ // documentation](https://cloud.google.com/speech-to-text/docs/basics) for
+ // more details.
+ int32 sample_rate_hertz = 2;
+
+ // Required. The language of the supplied audio. Dialogflow does not do
+ // translations. See [Language
+ // Support](https://cloud.google.com/dialogflow-enterprise/docs/reference/language)
+ // for a list of the currently supported language codes. Note that queries in
+ // the same session do not necessarily need to specify the same language.
+ string language_code = 3;
+
+ // Optional. The collection of phrase hints which are used to boost accuracy
+ // of speech recognition.
+ // Refer to
+ // [Cloud Speech API
+ // documentation](https://cloud.google.com/speech-to-text/docs/basics#phrase-hints)
+ // for more details.
+ repeated string phrase_hints = 4;
+}
+
+// Represents the natural language text to be processed.
+message TextInput {
+ // Required. The UTF-8 encoded natural language text to be processed.
+ // Text length must not exceed 256 characters.
+ string text = 1;
+
+ // Required. The language of this conversational query. See [Language
+ // Support](https://cloud.google.com/dialogflow-enterprise/docs/reference/language)
+ // for a list of the currently supported language codes. Note that queries in
+ // the same session do not necessarily need to specify the same language.
+ string language_code = 2;
+}
+
+// Audio encoding of the audio content sent in the conversational query request.
+// Refer to the
+// [Cloud Speech API
+// documentation](https://cloud.google.com/speech-to-text/docs/basics) for more
+// details.
+enum AudioEncoding {
+ // Not specified.
+ AUDIO_ENCODING_UNSPECIFIED = 0;
+
+ // Uncompressed 16-bit signed little-endian samples (Linear PCM).
+ AUDIO_ENCODING_LINEAR_16 = 1;
+
+ // [`FLAC`](https://xiph.org/flac/documentation.html) (Free Lossless Audio
+ // Codec) is the recommended encoding because it is lossless (therefore
+ // recognition is not compromised) and requires only about half the
+ // bandwidth of `LINEAR16`. `FLAC` stream encoding supports 16-bit and
+ // 24-bit samples, however, not all fields in `STREAMINFO` are supported.
+ AUDIO_ENCODING_FLAC = 2;
+
+ // 8-bit samples that compand 14-bit audio samples using G.711 PCMU/mu-law.
+ AUDIO_ENCODING_MULAW = 3;
+
+ // Adaptive Multi-Rate Narrowband codec. `sample_rate_hertz` must be 8000.
+ AUDIO_ENCODING_AMR = 4;
+
+ // Adaptive Multi-Rate Wideband codec. `sample_rate_hertz` must be 16000.
+ AUDIO_ENCODING_AMR_WB = 5;
+
+ // Opus encoded audio frames in Ogg container
+ // ([OggOpus](https://wiki.xiph.org/OggOpus)).
+ // `sample_rate_hertz` must be 16000.
+ AUDIO_ENCODING_OGG_OPUS = 6;
+
+ // Although the use of lossy encodings is not recommended, if a very low
+ // bitrate encoding is required, `OGG_OPUS` is highly preferred over
+ // Speex encoding. The [Speex](https://speex.org/) encoding supported by
+ // Dialogflow API has a header byte in each block, as in MIME type
+ // `audio/x-speex-with-header-byte`.
+ // It is a variant of the RTP Speex encoding defined in
+ // [RFC 5574](https://tools.ietf.org/html/rfc5574).
+ // The stream is a sequence of blocks, one block per RTP packet. Each block
+ // starts with a byte containing the length of the block, in bytes, followed
+ // by one or more frames of Speex data, padded to an integral number of
+ // bytes (octets) as specified in RFC 5574. In other words, each RTP header
+ // is replaced with a single byte containing the block length. Only Speex
+ // wideband is supported. `sample_rate_hertz` must be 16000.
+ AUDIO_ENCODING_SPEEX_WITH_HEADER_BYTE = 7;
+}
+
+// Events allow for matching intents by event name instead of the natural
+// language input. For instance, input `<event: { name: "welcome_event",
+// parameters: { name: "Sam" } }>` can trigger a personalized welcome response.
+// The parameter `name` may be used by the agent in the response:
+// `"Hello #welcome_event.name! What can I do for you today?"`.
+message EventInput {
+ // Required. The unique identifier of the event.
+ string name = 1;
+
+ // Optional. The collection of parameters associated with the event.
+ google.protobuf.Struct parameters = 2;
+
+ // Required. The language of this query. See [Language
+ // Support](https://cloud.google.com/dialogflow-enterprise/docs/reference/language)
+ // for a list of the currently supported language codes. Note that queries in
+ // the same session do not necessarily need to specify the same language.
+ string language_code = 3;
+}
+
+// Configures the types of sentiment analysis to perform.
+message SentimentAnalysisRequestConfig {
+ // Optional. Instructs the service to perform sentiment analysis on
+ // `query_text`. If not provided, sentiment analysis is not performed on
+ // `query_text`.
+ bool analyze_query_text_sentiment = 1;
+}
+
+// The result of sentiment analysis as configured by
+// `sentiment_analysis_request_config`.
+message SentimentAnalysisResult {
+ // The sentiment analysis result for `query_text`.
+ Sentiment query_text_sentiment = 1;
+}
+
+// The sentiment, such as positive/negative feeling or association, for a unit
+// of analysis, such as the query text.
+message Sentiment {
+ // Sentiment score between -1.0 (negative sentiment) and 1.0 (positive
+ // sentiment).
+ float score = 1;
+
+ // A non-negative number in the [0, +inf) range, which represents the absolute
+ // magnitude of sentiment, regardless of score (positive or negative).
+ float magnitude = 2;
+}
diff --git a/google/cloud/dialogflow/v2/session_entity_type.proto b/google/cloud/dialogflow/v2/session_entity_type.proto
new file mode 100644
index 000000000..10d666fd1
--- /dev/null
+++ b/google/cloud/dialogflow/v2/session_entity_type.proto
@@ -0,0 +1,195 @@
+// Copyright 2019 Google LLC.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+syntax = "proto3";
+
+package google.cloud.dialogflow.v2;
+
+import "google/api/annotations.proto";
+import "google/api/resource.proto";
+import "google/cloud/dialogflow/v2/entity_type.proto";
+import "google/protobuf/empty.proto";
+import "google/protobuf/field_mask.proto";
+
+option cc_enable_arenas = true;
+option csharp_namespace = "Google.Cloud.Dialogflow.V2";
+option go_package = "google.golang.org/genproto/googleapis/cloud/dialogflow/v2;dialogflow";
+option java_multiple_files = true;
+option java_outer_classname = "SessionEntityTypeProto";
+option java_package = "com.google.cloud.dialogflow.v2";
+option objc_class_prefix = "DF";
+
+// Entities are extracted from user input and represent parameters that are
+// meaningful to your application. For example, a date range, a proper name
+// such as a geographic location or landmark, and so on. Entities represent
+// actionable data for your application.
+//
+// Session entity types are referred to as **User** entity types and are
+// entities that are built for an individual user such as
+// favorites, preferences, playlists, and so on. You can redefine a session
+// entity type at the session level.
+//
+// For more information about entity types, see the
+// [Dialogflow
+// documentation](https://cloud.google.com/dialogflow-enterprise/docs/entities-overview).
+service SessionEntityTypes {
+ // Returns the list of all session entity types in the specified session.
+ rpc ListSessionEntityTypes(ListSessionEntityTypesRequest) returns (ListSessionEntityTypesResponse) {
+ option (google.api.http) = {
+ get: "/v2/{parent=projects/*/agent/sessions/*}/entityTypes"
+ };
+ }
+
+ // Retrieves the specified session entity type.
+ rpc GetSessionEntityType(GetSessionEntityTypeRequest) returns (SessionEntityType) {
+ option (google.api.http) = {
+ get: "/v2/{name=projects/*/agent/sessions/*/entityTypes/*}"
+ };
+ }
+
+ // Creates a session entity type.
+ //
+ // If the specified session entity type already exists, overrides the session
+ // entity type.
+ rpc CreateSessionEntityType(CreateSessionEntityTypeRequest) returns (SessionEntityType) {
+ option (google.api.http) = {
+ post: "/v2/{parent=projects/*/agent/sessions/*}/entityTypes"
+ body: "session_entity_type"
+ };
+ }
+
+ // Updates the specified session entity type.
+ rpc UpdateSessionEntityType(UpdateSessionEntityTypeRequest) returns (SessionEntityType) {
+ option (google.api.http) = {
+ patch: "/v2/{session_entity_type.name=projects/*/agent/sessions/*/entityTypes/*}"
+ body: "session_entity_type"
+ };
+ }
+
+ // Deletes the specified session entity type.
+ rpc DeleteSessionEntityType(DeleteSessionEntityTypeRequest) returns (google.protobuf.Empty) {
+ option (google.api.http) = {
+ delete: "/v2/{name=projects/*/agent/sessions/*/entityTypes/*}"
+ };
+ }
+}
+
+// Represents a session entity type.
+//
+// Extends or replaces a developer entity type at the user session level (we
+// refer to the entity types defined at the agent level as "developer entity
+// types").
+//
+// Note: session entity types apply to all queries, regardless of the language.
+message SessionEntityType {
+ // The types of modifications for a session entity type.
+ enum EntityOverrideMode {
+ // Not specified. This value should be never used.
+ ENTITY_OVERRIDE_MODE_UNSPECIFIED = 0;
+
+ // The collection of session entities overrides the collection of entities
+ // in the corresponding developer entity type.
+ ENTITY_OVERRIDE_MODE_OVERRIDE = 1;
+
+ // The collection of session entities extends the collection of entities in
+ // the corresponding developer entity type.
+ //
+ // Note: Even in this override mode calls to `ListSessionEntityTypes`,
+ // `GetSessionEntityType`, `CreateSessionEntityType` and
+ // `UpdateSessionEntityType` only return the additional entities added in
+ // this session entity type. If you want to get the supplemented list,
+ // please call [EntityTypes.GetEntityType][google.cloud.dialogflow.v2.EntityTypes.GetEntityType] on the developer entity type
+ // and merge.
+ ENTITY_OVERRIDE_MODE_SUPPLEMENT = 2;
+ }
+
+ // Required. The unique identifier of this session entity type. Format:
+ // `projects/<Project ID>/agent/sessions/<Session ID>/entityTypes/<Entity Type
+ // Display Name>`.
+ //
+ // `<Entity Type Display Name>` must be the display name of an existing entity
+ // type in the same agent that will be overridden or supplemented.
+ string name = 1;
+
+ // Required. Indicates whether the additional data should override or
+ // supplement the developer entity type definition.
+ EntityOverrideMode entity_override_mode = 2;
+
+ // Required. The collection of entities associated with this session entity
+ // type.
+ repeated EntityType.Entity entities = 3;
+}
+
+// The request message for [SessionEntityTypes.ListSessionEntityTypes][google.cloud.dialogflow.v2.SessionEntityTypes.ListSessionEntityTypes].
+message ListSessionEntityTypesRequest {
+ // Required. The session to list all session entity types from.
+ // Format: `projects/<Project ID>/agent/sessions/<Session ID>`.
+ string parent = 1;
+
+ // Optional. The maximum number of items to return in a single page. By
+ // default 100 and at most 1000.
+ int32 page_size = 2;
+
+ // Optional. The next_page_token value returned from a previous list request.
+ string page_token = 3;
+}
+
+// The response message for [SessionEntityTypes.ListSessionEntityTypes][google.cloud.dialogflow.v2.SessionEntityTypes.ListSessionEntityTypes].
+message ListSessionEntityTypesResponse {
+ // The list of session entity types. There will be a maximum number of items
+ // returned based on the page_size field in the request.
+ repeated SessionEntityType session_entity_types = 1;
+
+ // Token to retrieve the next page of results, or empty if there are no
+ // more results in the list.
+ string next_page_token = 2;
+}
+
+// The request message for [SessionEntityTypes.GetSessionEntityType][google.cloud.dialogflow.v2.SessionEntityTypes.GetSessionEntityType].
+message GetSessionEntityTypeRequest {
+ // Required. The name of the session entity type. Format:
+ // `projects/<Project ID>/agent/sessions/<Session ID>/entityTypes/<Entity Type
+ // Display Name>`.
+ string name = 1;
+}
+
+// The request message for [SessionEntityTypes.CreateSessionEntityType][google.cloud.dialogflow.v2.SessionEntityTypes.CreateSessionEntityType].
+message CreateSessionEntityTypeRequest {
+ // Required. The session to create a session entity type for.
+ // Format: `projects/<Project ID>/agent/sessions/<Session ID>`.
+ string parent = 1;
+
+ // Required. The session entity type to create.
+ SessionEntityType session_entity_type = 2;
+}
+
+// The request message for [SessionEntityTypes.UpdateSessionEntityType][google.cloud.dialogflow.v2.SessionEntityTypes.UpdateSessionEntityType].
+message UpdateSessionEntityTypeRequest {
+ // Required. The entity type to update. Format:
+ // `projects/<Project ID>/agent/sessions/<Session ID>/entityTypes/<Entity Type
+ // Display Name>`.
+ SessionEntityType session_entity_type = 1;
+
+ // Optional. The mask to control which fields get updated.
+ google.protobuf.FieldMask update_mask = 2;
+}
+
+// The request message for [SessionEntityTypes.DeleteSessionEntityType][google.cloud.dialogflow.v2.SessionEntityTypes.DeleteSessionEntityType].
+message DeleteSessionEntityTypeRequest {
+ // Required. The name of the entity type to delete. Format:
+ // `projects/<Project ID>/agent/sessions/<Session ID>/entityTypes/<Entity Type
+ // Display Name>`.
+ string name = 1;
+}
diff --git a/google/cloud/dialogflow/v2/webhook.proto b/google/cloud/dialogflow/v2/webhook.proto
new file mode 100644
index 000000000..4c958cebe
--- /dev/null
+++ b/google/cloud/dialogflow/v2/webhook.proto
@@ -0,0 +1,128 @@
+// Copyright 2019 Google LLC.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+syntax = "proto3";
+
+package google.cloud.dialogflow.v2;
+
+import "google/cloud/dialogflow/v2/context.proto";
+import "google/cloud/dialogflow/v2/intent.proto";
+import "google/cloud/dialogflow/v2/session.proto";
+import "google/protobuf/struct.proto";
+import "google/api/annotations.proto";
+
+option cc_enable_arenas = true;
+option csharp_namespace = "Google.Cloud.Dialogflow.V2";
+option go_package = "google.golang.org/genproto/googleapis/cloud/dialogflow/v2;dialogflow";
+option java_multiple_files = true;
+option java_outer_classname = "WebhookProto";
+option java_package = "com.google.cloud.dialogflow.v2";
+option objc_class_prefix = "DF";
+
+// The request message for a webhook call.
+message WebhookRequest {
+ // The unique identifier of detectIntent request session.
+ // Can be used to identify end-user inside webhook implementation.
+ // Format: `projects/<Project ID>/agent/sessions/<Session ID>`, or
+ // `projects/<Project ID>/agent/environments/<Environment ID>/users/<User
+ // ID>/sessions/<Session ID>`.
+ string session = 4;
+
+ // The unique identifier of the response. Contains the same value as
+ // `[Streaming]DetectIntentResponse.response_id`.
+ string response_id = 1;
+
+ // The result of the conversational query or event processing. Contains the
+ // same value as `[Streaming]DetectIntentResponse.query_result`.
+ QueryResult query_result = 2;
+
+ // Optional. The contents of the original request that was passed to
+ // `[Streaming]DetectIntent` call.
+ OriginalDetectIntentRequest original_detect_intent_request = 3;
+}
+
+// The response message for a webhook call.
+message WebhookResponse {
+ // Optional. The text to be shown on the screen. This value is passed directly
+ // to `QueryResult.fulfillment_text`.
+ string fulfillment_text = 1;
+
+ // Optional. The collection of rich messages to present to the user. This
+ // value is passed directly to `QueryResult.fulfillment_messages`.
+ repeated Intent.Message fulfillment_messages = 2;
+
+ // Optional. This value is passed directly to `QueryResult.webhook_source`.
+ string source = 3;
+
+ // Optional. This value is passed directly to `QueryResult.webhook_payload`.
+ // See the related `fulfillment_messages[i].payload field`, which may be used
+ // as an alternative to this field.
+ //
+ // This field can be used for Actions on Google responses.
+ // It should have a structure similar to the JSON message shown here. For more
+ // information, see
+ // [Actions on Google Webhook
+ // Format](https://developers.google.com/actions/dialogflow/webhook)
+ // <pre>{
+ // "google": {
+ // "expectUserResponse": true,
+ // "richResponse": {
+ // "items": [
+ // {
+ // "simpleResponse": {
+ // "textToSpeech": "this is a simple response"
+ // }
+ // }
+ // ]
+ // }
+ // }
+ // }</pre>
+ google.protobuf.Struct payload = 4;
+
+ // Optional. The collection of output contexts. This value is passed directly
+ // to `QueryResult.output_contexts`.
+ repeated Context output_contexts = 5;
+
+ // Optional. Makes the platform immediately invoke another `DetectIntent` call
+ // internally with the specified event as input.
+ EventInput followup_event_input = 6;
+}
+
+// Represents the contents of the original request that was passed to
+// the `[Streaming]DetectIntent` call.
+message OriginalDetectIntentRequest {
+ // The source of this request, e.g., `google`, `facebook`, `slack`. It is set
+ // by Dialogflow-owned servers.
+ string source = 1;
+
+ // Optional. The version of the protocol used for this request.
+ // This field is AoG-specific.
+ string version = 2;
+
+ // Optional. This field is set to the value of the `QueryParameters.payload`
+ // field passed in the request. Some integrations that query a Dialogflow
+ // agent may provide additional information in the payload.
+ //
+ // In particular for the Telephony Gateway this field has the form:
+ // <pre>{
+ // "telephony": {
+ // "caller_id": "+18558363987"
+ // }
+ // }</pre>
+ // Note: The caller ID field (`caller_id`) will be redacted for Standard
+ // Edition agents and populated with the caller ID in [E.164
+ // format](https://en.wikipedia.org/wiki/E.164) for Enterprise Edition agents.
+ google.protobuf.Struct payload = 3;
+}