123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559 |
- // Copyright 2022 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/client.proto";
- import "google/api/field_behavior.proto";
- import "google/api/resource.proto";
- import "google/cloud/dialogflow/v2/validation_result.proto";
- import "google/longrunning/operations.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 = "AgentProto";
- option java_package = "com.google.cloud.dialogflow.v2";
- option objc_class_prefix = "DF";
- // Service for managing [Agents][google.cloud.dialogflow.v2.Agent].
- service Agents {
- option (google.api.default_host) = "dialogflow.googleapis.com";
- option (google.api.oauth_scopes) =
- "https://www.googleapis.com/auth/cloud-platform,"
- "https://www.googleapis.com/auth/dialogflow";
- // Retrieves the specified agent.
- rpc GetAgent(GetAgentRequest) returns (Agent) {
- option (google.api.http) = {
- get: "/v2/{parent=projects/*}/agent"
- additional_bindings {
- get: "/v2/{parent=projects/*/locations/*}/agent"
- }
- };
- option (google.api.method_signature) = "parent";
- }
- // Creates/updates the specified agent.
- //
- // Note: You should always train an agent prior to sending it queries. See the
- // [training
- // documentation](https://cloud.google.com/dialogflow/es/docs/training).
- rpc SetAgent(SetAgentRequest) returns (Agent) {
- option (google.api.http) = {
- post: "/v2/{agent.parent=projects/*}/agent"
- body: "agent"
- additional_bindings {
- post: "/v2/{agent.parent=projects/*/locations/*}/agent"
- body: "agent"
- }
- };
- option (google.api.method_signature) = "agent";
- }
- // Deletes the specified agent.
- rpc DeleteAgent(DeleteAgentRequest) returns (google.protobuf.Empty) {
- option (google.api.http) = {
- delete: "/v2/{parent=projects/*}/agent"
- additional_bindings {
- delete: "/v2/{parent=projects/*/locations/*}/agent"
- }
- };
- option (google.api.method_signature) = "parent";
- }
- // 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"
- additional_bindings {
- get: "/v2/{parent=projects/*/locations/*}/agent:search"
- }
- };
- option (google.api.method_signature) = "parent";
- }
- // Trains the specified agent.
- //
- // This method is a [long-running
- // operation](https://cloud.google.com/dialogflow/es/docs/how/long-running-operations).
- // The returned `Operation` type has the following method-specific fields:
- //
- // - `metadata`: An empty [Struct
- // message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#struct)
- // - `response`: An [Empty
- // message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#empty)
- //
- // Note: You should always train an agent prior to sending it queries. See the
- // [training
- // documentation](https://cloud.google.com/dialogflow/es/docs/training).
- rpc TrainAgent(TrainAgentRequest) returns (google.longrunning.Operation) {
- option (google.api.http) = {
- post: "/v2/{parent=projects/*}/agent:train"
- body: "*"
- additional_bindings {
- post: "/v2/{parent=projects/*/locations/*}/agent:train"
- body: "*"
- }
- };
- option (google.api.method_signature) = "parent";
- option (google.longrunning.operation_info) = {
- response_type: "google.protobuf.Empty"
- metadata_type: "google.protobuf.Struct"
- };
- }
- // Exports the specified agent to a ZIP file.
- //
- // This method is a [long-running
- // operation](https://cloud.google.com/dialogflow/es/docs/how/long-running-operations).
- // The returned `Operation` type has the following method-specific fields:
- //
- // - `metadata`: An empty [Struct
- // message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#struct)
- // - `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: "*"
- additional_bindings {
- post: "/v2/{parent=projects/*/locations/*}/agent:export"
- body: "*"
- }
- };
- option (google.api.method_signature) = "parent";
- option (google.longrunning.operation_info) = {
- response_type: "google.cloud.dialogflow.v2.ExportAgentResponse"
- metadata_type: "google.protobuf.Struct"
- };
- }
- // 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][google.cloud.dialogflow.v2.ImportAgentRequest]. After the import, the imported draft
- // agent will be trained automatically (unless disabled in agent settings).
- // However, once the import is done, training may not be completed yet. Please
- // call [TrainAgent][google.cloud.dialogflow.v2.Agents.TrainAgent] and wait for the operation it returns in order to train
- // explicitly.
- //
- // This method is a [long-running
- // operation](https://cloud.google.com/dialogflow/es/docs/how/long-running-operations).
- // The returned `Operation` type has the following method-specific fields:
- //
- // - `metadata`: An empty [Struct
- // message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#struct)
- // - `response`: An [Empty
- // message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#empty)
- //
- // The operation only tracks when importing is complete, not when it is done
- // training.
- //
- // Note: You should always train an agent prior to sending it queries. See the
- // [training
- // documentation](https://cloud.google.com/dialogflow/es/docs/training).
- rpc ImportAgent(ImportAgentRequest) returns (google.longrunning.Operation) {
- option (google.api.http) = {
- post: "/v2/{parent=projects/*}/agent:import"
- body: "*"
- additional_bindings {
- post: "/v2/{parent=projects/*/locations/*}/agent:import"
- body: "*"
- }
- };
- option (google.longrunning.operation_info) = {
- response_type: "google.protobuf.Empty"
- metadata_type: "google.protobuf.Struct"
- };
- }
- // 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. After the restore, the
- // restored draft agent will be trained automatically (unless disabled in
- // agent settings). However, once the restore is done, training may not be
- // completed yet. Please call [TrainAgent][google.cloud.dialogflow.v2.Agents.TrainAgent] and wait for the operation it
- // returns in order to train explicitly.
- //
- // This method is a [long-running
- // operation](https://cloud.google.com/dialogflow/es/docs/how/long-running-operations).
- // The returned `Operation` type has the following method-specific fields:
- //
- // - `metadata`: An empty [Struct
- // message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#struct)
- // - `response`: An [Empty
- // message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#empty)
- //
- // The operation only tracks when restoring is complete, not when it is done
- // training.
- //
- // Note: You should always train an agent prior to sending it queries. See the
- // [training
- // documentation](https://cloud.google.com/dialogflow/es/docs/training).
- rpc RestoreAgent(RestoreAgentRequest) returns (google.longrunning.Operation) {
- option (google.api.http) = {
- post: "/v2/{parent=projects/*}/agent:restore"
- body: "*"
- additional_bindings {
- post: "/v2/{parent=projects/*/locations/*}/agent:restore"
- body: "*"
- }
- };
- option (google.longrunning.operation_info) = {
- response_type: "google.protobuf.Empty"
- metadata_type: "google.protobuf.Struct"
- };
- }
- // Gets agent validation result. Agent validation is performed during
- // training time and is updated automatically when training is completed.
- rpc GetValidationResult(GetValidationResultRequest) returns (ValidationResult) {
- option (google.api.http) = {
- get: "/v2/{parent=projects/*}/agent/validationResult"
- additional_bindings {
- get: "/v2/{parent=projects/*/locations/*}/agent/validationResult"
- }
- };
- }
- }
- // A Dialogflow agent is a virtual agent that handles conversations with your
- // end-users. It is a natural language understanding module that understands the
- // nuances of human language. Dialogflow translates end-user text or audio
- // during a conversation to structured data that your apps and services can
- // understand. You design and build a Dialogflow agent to handle the types of
- // conversations required for your system.
- //
- // For more information about agents, see the
- // [Agent guide](https://cloud.google.com/dialogflow/docs/agents-overview).
- //
- message Agent {
- option (google.api.resource) = {
- type: "dialogflow.googleapis.com/Agent"
- pattern: "projects/{project}/agent"
- pattern: "projects/{project}/locations/{location}/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 custom entities.
- MATCH_MODE_ML_ONLY = 2;
- }
- // API version for the agent.
- enum ApiVersion {
- // Not specified.
- API_VERSION_UNSPECIFIED = 0;
- // Legacy V1 API.
- API_VERSION_V1 = 1;
- // V2 API.
- API_VERSION_V2 = 2;
- // V2beta1 API.
- API_VERSION_V2_BETA_1 = 3;
- }
- // Represents the agent tier.
- enum Tier {
- // Not specified. This value should never be used.
- TIER_UNSPECIFIED = 0;
- // Trial Edition, previously known as Standard Edition.
- TIER_STANDARD = 1;
- // Essentials Edition, previously known as Enterprise Essential Edition.
- TIER_ENTERPRISE = 2;
- // Essentials Edition (same as TIER_ENTERPRISE), previously known as
- // Enterprise Plus Edition.
- TIER_ENTERPRISE_PLUS = 3 [deprecated = true];
- }
- // Required. The project of this agent.
- // Format: `projects/<Project ID>`.
- string parent = 1 [
- (google.api.field_behavior) = REQUIRED,
- (google.api.resource_reference) = {
- type: "cloudresourcemanager.googleapis.com/Project"
- }
- ];
- // Required. The name of this agent.
- string display_name = 2 [(google.api.field_behavior) = REQUIRED];
- // Required. The default language of the agent as a language tag. See
- // [Language
- // Support](https://cloud.google.com/dialogflow/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 [(google.api.field_behavior) = REQUIRED];
- // Optional. The list of all languages supported by this agent (except for the
- // `default_language_code`).
- repeated string supported_language_codes = 4 [(google.api.field_behavior) = OPTIONAL];
- // 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 [(google.api.field_behavior) = REQUIRED];
- // Optional. The description of this agent.
- // The maximum length is 500 characters. If exceeded, the request is rejected.
- string description = 6 [(google.api.field_behavior) = OPTIONAL];
- // 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/docs/integrations/web-demo)
- // integration.
- string avatar_uri = 7 [(google.api.field_behavior) = OPTIONAL];
- // Optional. Determines whether this agent should log conversation queries.
- bool enable_logging = 8 [(google.api.field_behavior) = OPTIONAL];
- // Optional. Determines how intents are detected from user queries.
- MatchMode match_mode = 9 [
- deprecated = true,
- (google.api.field_behavior) = OPTIONAL
- ];
- // 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 [(google.api.field_behavior) = OPTIONAL];
- // Optional. API version displayed in Dialogflow console. If not specified,
- // V2 API is assumed. Clients are free to query different service endpoints
- // for different API versions. However, bots connectors and webhook calls will
- // follow the specified API version.
- ApiVersion api_version = 14 [(google.api.field_behavior) = OPTIONAL];
- // Optional. The agent tier. If not specified, TIER_STANDARD is assumed.
- Tier tier = 15 [(google.api.field_behavior) = OPTIONAL];
- }
- // 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 [
- (google.api.field_behavior) = REQUIRED,
- (google.api.resource_reference) = {
- child_type: "dialogflow.googleapis.com/Agent"
- }
- ];
- }
- // The request message for [Agents.SetAgent][google.cloud.dialogflow.v2.Agents.SetAgent].
- message SetAgentRequest {
- // Required. The agent to update.
- Agent agent = 1 [(google.api.field_behavior) = REQUIRED];
- // Optional. The mask to control which fields get updated.
- google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = OPTIONAL];
- }
- // The request message for [Agents.DeleteAgent][google.cloud.dialogflow.v2.Agents.DeleteAgent].
- message DeleteAgentRequest {
- // Required. The project that the agent to delete is associated with.
- // Format: `projects/<Project ID>`.
- string parent = 1 [
- (google.api.field_behavior) = REQUIRED,
- (google.api.resource_reference) = {
- child_type: "dialogflow.googleapis.com/Agent"
- }
- ];
- }
- // 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 [
- (google.api.field_behavior) = REQUIRED,
- (google.api.resource_reference) = {
- child_type: "dialogflow.googleapis.com/Agent"
- }
- ];
- // Optional. The maximum number of items to return in a single page. By
- // default 100 and at most 1000.
- int32 page_size = 2 [(google.api.field_behavior) = 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 [
- (google.api.field_behavior) = REQUIRED,
- (google.api.resource_reference) = {
- child_type: "dialogflow.googleapis.com/Agent"
- }
- ];
- }
- // 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 [
- (google.api.field_behavior) = REQUIRED,
- (google.api.resource_reference) = {
- child_type: "dialogflow.googleapis.com/Agent"
- }
- ];
- // Required. 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.
- //
- // Dialogflow performs a write operation for the Cloud Storage object
- // on the caller's behalf, so your request authentication must
- // have write permissions for the object. For more information, see
- // [Dialogflow access
- // control](https://cloud.google.com/dialogflow/cx/docs/concept/access-control#storage).
- string agent_uri = 2 [(google.api.field_behavior) = REQUIRED];
- }
- // The response message for [Agents.ExportAgent][google.cloud.dialogflow.v2.Agents.ExportAgent].
- message ExportAgentResponse {
- // 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;
- // Zip compressed raw byte content for agent.
- 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 [
- (google.api.field_behavior) = REQUIRED,
- (google.api.resource_reference) = {
- child_type: "dialogflow.googleapis.com/Agent"
- }
- ];
- // 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://".
- //
- // Dialogflow performs a read operation for the Cloud Storage object
- // on the caller's behalf, so your request authentication must
- // have read permissions for the object. For more information, see
- // [Dialogflow access
- // control](https://cloud.google.com/dialogflow/cx/docs/concept/access-control#storage).
- string agent_uri = 2;
- // Zip compressed raw byte content for agent.
- 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 [
- (google.api.field_behavior) = REQUIRED,
- (google.api.resource_reference) = {
- child_type: "dialogflow.googleapis.com/Agent"
- }
- ];
- // 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://".
- //
- // Dialogflow performs a read operation for the Cloud Storage object
- // on the caller's behalf, so your request authentication must
- // have read permissions for the object. For more information, see
- // [Dialogflow access
- // control](https://cloud.google.com/dialogflow/cx/docs/concept/access-control#storage).
- string agent_uri = 2;
- // Zip compressed raw byte content for agent.
- bytes agent_content = 3;
- }
- }
- // The request message for [Agents.GetValidationResult][google.cloud.dialogflow.v2.Agents.GetValidationResult].
- message GetValidationResultRequest {
- // Required. The project that the agent is associated with.
- // Format: `projects/<Project ID>`.
- string parent = 1 [
- (google.api.field_behavior) = REQUIRED,
- (google.api.resource_reference) = {
- child_type: "dialogflow.googleapis.com/Agent"
- }
- ];
- // Optional. The language for which you want a validation result. If not
- // specified, the agent's default language is used. [Many
- // languages](https://cloud.google.com/dialogflow/docs/reference/language)
- // are supported. Note: languages must be enabled in the agent before they can
- // be used.
- string language_code = 3 [(google.api.field_behavior) = OPTIONAL];
- }
|