google.cloud.dialogflow.cx.v3beta1.intent.proto Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of proto-google-cloud-dialogflow-cx-v3beta1 Show documentation
Show all versions of proto-google-cloud-dialogflow-cx-v3beta1 Show documentation
PROTO library for proto-google-cloud-dialogflow-cx-v3beta1
// Copyright 2024 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.cx.v3beta1;
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/cx/v3beta1/inline.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.Cx.V3Beta1";
option go_package = "cloud.google.com/go/dialogflow/cx/apiv3beta1/cxpb;cxpb";
option java_multiple_files = true;
option java_outer_classname = "IntentProto";
option java_package = "com.google.cloud.dialogflow.cx.v3beta1";
option objc_class_prefix = "DF";
option ruby_package = "Google::Cloud::Dialogflow::CX::V3beta1";
// Service for managing [Intents][google.cloud.dialogflow.cx.v3beta1.Intent].
service Intents {
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";
// Returns the list of all intents in the specified agent.
rpc ListIntents(ListIntentsRequest) returns (ListIntentsResponse) {
option (google.api.http) = {
get: "/v3beta1/{parent=projects/*/locations/*/agents/*}/intents"
};
option (google.api.method_signature) = "parent";
}
// Retrieves the specified intent.
rpc GetIntent(GetIntentRequest) returns (Intent) {
option (google.api.http) = {
get: "/v3beta1/{name=projects/*/locations/*/agents/*/intents/*}"
};
option (google.api.method_signature) = "name";
}
// Creates an intent in the specified agent.
//
// Note: You should always train a flow prior to sending it queries. See the
// [training
// documentation](https://cloud.google.com/dialogflow/cx/docs/concept/training).
rpc CreateIntent(CreateIntentRequest) returns (Intent) {
option (google.api.http) = {
post: "/v3beta1/{parent=projects/*/locations/*/agents/*}/intents"
body: "intent"
};
option (google.api.method_signature) = "parent,intent";
}
// Updates the specified intent.
//
// Note: You should always train a flow prior to sending it queries. See the
// [training
// documentation](https://cloud.google.com/dialogflow/cx/docs/concept/training).
rpc UpdateIntent(UpdateIntentRequest) returns (Intent) {
option (google.api.http) = {
patch: "/v3beta1/{intent.name=projects/*/locations/*/agents/*/intents/*}"
body: "intent"
};
option (google.api.method_signature) = "intent,update_mask";
}
// Deletes the specified intent.
//
// Note: You should always train a flow prior to sending it queries. See the
// [training
// documentation](https://cloud.google.com/dialogflow/cx/docs/concept/training).
rpc DeleteIntent(DeleteIntentRequest) returns (google.protobuf.Empty) {
option (google.api.http) = {
delete: "/v3beta1/{name=projects/*/locations/*/agents/*/intents/*}"
};
option (google.api.method_signature) = "name";
}
// Imports the specified intents into the agent.
//
// This method is a [long-running
// operation](https://cloud.google.com/dialogflow/cx/docs/how/long-running-operation).
// The returned `Operation` type has the following method-specific fields:
//
// - `metadata`:
// [ImportIntentsMetadata][google.cloud.dialogflow.cx.v3beta1.ImportIntentsMetadata]
// - `response`:
// [ImportIntentsResponse][google.cloud.dialogflow.cx.v3beta1.ImportIntentsResponse]
rpc ImportIntents(ImportIntentsRequest)
returns (google.longrunning.Operation) {
option (google.api.http) = {
post: "/v3beta1/{parent=projects/*/locations/*/agents/*}/intents:import"
body: "*"
};
option (google.longrunning.operation_info) = {
response_type: "ImportIntentsResponse"
metadata_type: "ImportIntentsMetadata"
};
}
// Exports the selected intents.
//
// This method is a [long-running
// operation](https://cloud.google.com/dialogflow/cx/docs/how/long-running-operation).
// The returned `Operation` type has the following method-specific fields:
//
// - `metadata`:
// [ExportIntentsMetadata][google.cloud.dialogflow.cx.v3beta1.ExportIntentsMetadata]
// - `response`:
// [ExportIntentsResponse][google.cloud.dialogflow.cx.v3beta1.ExportIntentsResponse]
rpc ExportIntents(ExportIntentsRequest)
returns (google.longrunning.Operation) {
option (google.api.http) = {
post: "/v3beta1/{parent=projects/*/locations/*/agents/*}/intents:export"
body: "*"
};
option (google.longrunning.operation_info) = {
response_type: "ExportIntentsResponse"
metadata_type: "ExportIntentsMetadata"
};
}
}
// An intent represents a user's intent to interact with a conversational agent.
//
// You can provide information for the Dialogflow API to use to match user input
// to an intent by adding training phrases (i.e., examples of user input) to
// your intent.
message Intent {
option (google.api.resource) = {
type: "dialogflow.googleapis.com/Intent"
pattern: "projects/{project}/locations/{location}/agents/{agent}/intents/{intent}"
};
// Represents an example that the agent is trained on to identify the intent.
message TrainingPhrase {
// Represents a part of a training phrase.
message Part {
// Required. The text for this part.
string text = 1 [(google.api.field_behavior) = REQUIRED];
// The [parameter][google.cloud.dialogflow.cx.v3beta1.Intent.Parameter]
// used to annotate this part of the training phrase. This field is
// required for annotated parts of the training phrase.
string parameter_id = 2;
}
// Output only. The unique identifier of the training phrase.
string id = 1;
// 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.cx.v3beta1.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 `parameter_id` field is set.
repeated Part parts = 2 [(google.api.field_behavior) = REQUIRED];
// Indicates how many times this example was added to the intent.
int32 repeat_count = 3;
}
// Represents an intent parameter.
message Parameter {
// Required. The unique identifier of the parameter. This field
// is used by [training
// phrases][google.cloud.dialogflow.cx.v3beta1.Intent.TrainingPhrase] to
// annotate their
// [parts][google.cloud.dialogflow.cx.v3beta1.Intent.TrainingPhrase.Part].
string id = 1 [(google.api.field_behavior) = REQUIRED];
// Required. The entity type of the parameter.
// Format: `projects/-/locations/-/agents/-/entityTypes/` for system entity types (for example,
// `projects/-/locations/-/agents/-/entityTypes/sys.date`), or
// `projects//locations//agents//entityTypes/` for developer entity types.
string entity_type = 2 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "dialogflow.googleapis.com/EntityType"
}
];
// Indicates whether the parameter represents a list of values.
bool is_list = 3;
// Indicates whether the parameter content should be redacted in log. If
// redaction is enabled, the parameter content will be replaced by parameter
// name during logging.
// Note: the parameter content is subject to redaction if either parameter
// level redaction or [entity type level
// redaction][google.cloud.dialogflow.cx.v3beta1.EntityType.redact] is
// enabled.
bool redact = 4;
}
// The unique identifier of the intent.
// Required for the
// [Intents.UpdateIntent][google.cloud.dialogflow.cx.v3beta1.Intents.UpdateIntent]
// method.
// [Intents.CreateIntent][google.cloud.dialogflow.cx.v3beta1.Intents.CreateIntent]
// populates the name automatically.
// Format: `projects//locations//agents//intents/`.
string name = 1;
// Required. The human-readable name of the intent, unique within the agent.
string display_name = 2 [(google.api.field_behavior) = REQUIRED];
// The collection of training phrases the agent is trained on to identify the
// intent.
repeated TrainingPhrase training_phrases = 3;
// The collection of parameters associated with the intent.
repeated Parameter parameters = 4;
// The priority of this intent. Higher numbers represent higher
// priorities.
//
// - If the supplied value is unspecified or 0, the service
// translates the value to 500,000, which corresponds to the
// `Normal` priority in the console.
// - If the supplied value is negative, the intent is ignored
// in runtime detect intent requests.
int32 priority = 5;
// Indicates whether this is a fallback intent. Currently only default
// fallback intent is allowed in the agent, which is added upon agent
// creation.
// Adding training phrases to fallback intent is useful in the case of
// requests that are mistakenly matched, since training phrases assigned to
// fallback intents act as negative examples that triggers no-match event.
bool is_fallback = 6;
// The key/value metadata to label an intent. Labels can contain
// lowercase letters, digits and the symbols '-' and '_'. International
// characters are allowed, including letters from unicase alphabets. Keys must
// start with a letter. Keys and values can be no longer than 63 characters
// and no more than 128 bytes.
//
// Prefix "sys-" is reserved for Dialogflow defined labels. Currently allowed
// Dialogflow defined labels include:
// * sys-head
// * sys-contextual
// The above labels do not require value. "sys-head" means the intent is a
// head intent. "sys-contextual" means the intent is a contextual intent.
map labels = 7;
// Human readable description for better understanding an intent like its
// scope, content, result etc. Maximum character limit: 140 characters.
string description = 8;
}
// The request message for
// [Intents.ListIntents][google.cloud.dialogflow.cx.v3beta1.Intents.ListIntents].
message ListIntentsRequest {
// Required. The agent to list all intents for.
// Format: `projects//locations//agents/`.
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
child_type: "dialogflow.googleapis.com/Intent"
}
];
// The language to list intents for. The following fields are language
// dependent:
//
// * `Intent.training_phrases.parts.text`
//
// If not specified, the agent's default language is used.
// [Many
// languages](https://cloud.google.com/dialogflow/cx/docs/reference/language)
// are supported.
// Note: languages must be enabled in the agent before they can be used.
string language_code = 2;
// The resource view to apply to the returned intent.
IntentView intent_view = 5;
// The maximum number of items to return in a single page. By default 100 and
// at most 1000.
int32 page_size = 3;
// The next_page_token value returned from a previous list request.
string page_token = 4;
}
// The response message for
// [Intents.ListIntents][google.cloud.dialogflow.cx.v3beta1.Intents.ListIntents].
message ListIntentsResponse {
// The list of 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.cx.v3beta1.Intents.GetIntent].
message GetIntentRequest {
// Required. The name of the intent.
// Format: `projects//locations//agents//intents/`.
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "dialogflow.googleapis.com/Intent"
}
];
// The language to retrieve the intent for. The following fields are language
// dependent:
//
// * `Intent.training_phrases.parts.text`
//
// If not specified, the agent's default language is used.
// [Many
// languages](https://cloud.google.com/dialogflow/cx/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
// [Intents.CreateIntent][google.cloud.dialogflow.cx.v3beta1.Intents.CreateIntent].
message CreateIntentRequest {
// Required. The agent to create an intent for.
// Format: `projects//locations//agents/`.
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
child_type: "dialogflow.googleapis.com/Intent"
}
];
// Required. The intent to create.
Intent intent = 2 [(google.api.field_behavior) = REQUIRED];
// The language of the following fields in `intent`:
//
// * `Intent.training_phrases.parts.text`
//
// If not specified, the agent's default language is used.
// [Many
// languages](https://cloud.google.com/dialogflow/cx/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
// [Intents.UpdateIntent][google.cloud.dialogflow.cx.v3beta1.Intents.UpdateIntent].
message UpdateIntentRequest {
// Required. The intent to update.
Intent intent = 1 [(google.api.field_behavior) = REQUIRED];
// The language of the following fields in `intent`:
//
// * `Intent.training_phrases.parts.text`
//
// If not specified, the agent's default language is used.
// [Many
// languages](https://cloud.google.com/dialogflow/cx/docs/reference/language)
// are supported.
// Note: languages must be enabled in the agent before they can be used.
string language_code = 2;
// The mask to control which fields get updated. If the mask is not present,
// all fields will be updated.
google.protobuf.FieldMask update_mask = 3;
}
// The request message for
// [Intents.DeleteIntent][google.cloud.dialogflow.cx.v3beta1.Intents.DeleteIntent].
message DeleteIntentRequest {
// Required. The name of the intent to delete.
// Format: `projects//locations//agents//intents/`.
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "dialogflow.googleapis.com/Intent"
}
];
}
// 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.
enum IntentView {
// Not specified. Treated as INTENT_VIEW_FULL.
INTENT_VIEW_UNSPECIFIED = 0;
// Training phrases field is not populated in the response.
INTENT_VIEW_PARTIAL = 1;
// All fields are populated.
INTENT_VIEW_FULL = 2;
}
// The request message for
// [Intents.ImportIntents][google.cloud.dialogflow.cx.v3beta1.Intents.ImportIntents].
message ImportIntentsRequest {
// Merge option when display name conflicts exist during import.
enum MergeOption {
// Unspecified. Should not be used.
MERGE_OPTION_UNSPECIFIED = 0;
// DEPRECATED: Please use
// [REPORT_CONFLICT][ImportIntentsRequest.REPORT_CONFLICT] instead.
// Fail the request if there are intents whose display names conflict with
// the display names of intents in the agent.
REJECT = 1 [deprecated = true];
// Replace the original intent in the agent with the new intent when display
// name conflicts exist.
REPLACE = 2;
// Merge the original intent with the new intent when display name conflicts
// exist.
MERGE = 3;
// Create new intents with new display names to differentiate them from the
// existing intents when display name conflicts exist.
RENAME = 4;
// Report conflict information if display names conflict is detected.
// Otherwise, import intents.
REPORT_CONFLICT = 5;
// Keep the original intent and discard the conflicting new intent when
// display name conflicts exist.
KEEP = 6;
}
// Required. The agent to import the intents into.
// Format: `projects//locations//agents/`.
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
child_type: "dialogflow.googleapis.com/Intent"
}
];
// Required. The intents to import.
oneof intents {
// The [Google Cloud Storage](https://cloud.google.com/storage/docs/) URI
// to import intents from. The format of this URI must be
// `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 intents_uri = 2;
// Uncompressed byte content of intents.
InlineSource intents_content = 3;
}
// Merge option for importing intents. If not specified, `REJECT` is assumed.
MergeOption merge_option = 4;
}
// The response message for
// [Intents.ImportIntents][google.cloud.dialogflow.cx.v3beta1.Intents.ImportIntents].
message ImportIntentsResponse {
// Conflicting resources detected during the import process. Only filled when
// [REPORT_CONFLICT][ImportIntentsResponse.REPORT_CONFLICT] is set in the
// request and there are conflicts in the display names.
message ConflictingResources {
// Display names of conflicting intents.
repeated string intent_display_names = 1;
// Display names of conflicting entities.
repeated string entity_display_names = 2;
}
// The unique identifier of the imported intents.
// Format: `projects//locations//agents//intents/`.
repeated string intents = 1 [(google.api.resource_reference) = {
type: "dialogflow.googleapis.com/Intent"
}];
// Info which resources have conflicts when
// [REPORT_CONFLICT][ImportIntentsResponse.REPORT_CONFLICT] merge_option is
// set in ImportIntentsRequest.
ConflictingResources conflicting_resources = 2;
}
// Metadata returned for the
// [Intents.ImportIntents][google.cloud.dialogflow.cx.v3beta1.Intents.ImportIntents]
// long running operation.
message ImportIntentsMetadata {}
// The request message for
// [Intents.ExportIntents][google.cloud.dialogflow.cx.v3beta1.Intents.ExportIntents].
message ExportIntentsRequest {
// Data format of the exported intents.
enum DataFormat {
// Unspecified format. Treated as `BLOB`.
DATA_FORMAT_UNSPECIFIED = 0;
// Intents will be exported as raw bytes.
BLOB = 1;
// Intents will be exported in JSON format.
JSON = 2;
// Intents will be exported in CSV format.
CSV = 3;
}
// Required. The name of the parent agent to export intents.
// Format: `projects//locations//agents/`.
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
child_type: "dialogflow.googleapis.com/Intent"
}
];
// Required. The name of the intents to export.
// Format: `projects//locations//agents//intents/`.
repeated string intents = 2 [(google.api.field_behavior) = REQUIRED];
// The destination to export.
oneof destination {
// Optional. The [Google Cloud
// Storage](https://cloud.google.com/storage/docs/) URI to export the
// intents to. The format of this URI must be
// `gs:///`.
//
// 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 intents_uri = 3 [(google.api.field_behavior) = OPTIONAL];
// Optional. The option to return the serialized intents inline.
bool intents_content_inline = 4 [(google.api.field_behavior) = OPTIONAL];
}
// Optional. The data format of the exported intents. If not specified, `BLOB`
// is assumed.
DataFormat data_format = 5 [(google.api.field_behavior) = OPTIONAL];
}
// The response message for
// [Intents.ExportIntents][google.cloud.dialogflow.cx.v3beta1.Intents.ExportIntents].
message ExportIntentsResponse {
// The exported intents.
oneof intents {
// The URI to a file containing the exported intents. This field is
// populated only if `intents_uri` is specified in
// [ExportIntentsRequest][google.cloud.dialogflow.cx.v3beta1.ExportIntentsRequest].
string intents_uri = 1;
// Uncompressed byte content for intents. This field is populated only if
// `intents_content_inline` is set to true in
// [ExportIntentsRequest][google.cloud.dialogflow.cx.v3beta1.ExportIntentsRequest].
InlineDestination intents_content = 2;
}
}
// Metadata returned for the
// [Intents.ExportIntents][google.cloud.dialogflow.cx.v3beta1.Intents.ExportIntents]
// long running operation.
message ExportIntentsMetadata {}