108 lines
4.2 KiB
Protocol Buffer
108 lines
4.2 KiB
Protocol Buffer
// Copyright 2020 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.v3;
|
|
|
|
import "google/api/resource.proto";
|
|
import "google/cloud/dialogflow/cx/v3/response_message.proto";
|
|
import "google/protobuf/struct.proto";
|
|
import "google/api/annotations.proto";
|
|
|
|
option cc_enable_arenas = true;
|
|
option csharp_namespace = "Google.Cloud.Dialogflow.Cx.V3";
|
|
option go_package = "google.golang.org/genproto/googleapis/cloud/dialogflow/cx/v3;cx";
|
|
option java_multiple_files = true;
|
|
option java_outer_classname = "FulfillmentProto";
|
|
option java_package = "com.google.cloud.dialogflow.cx.v3";
|
|
option objc_class_prefix = "DF";
|
|
|
|
// A fulfillment can do one or more of the following actions at the same time:
|
|
//
|
|
// * Generate rich message responses.
|
|
// * Set parameter values.
|
|
// * Call the webhook.
|
|
//
|
|
// Fulfillments can be called at various stages in the [Page][google.cloud.dialogflow.cx.v3.Page] or
|
|
// [Form][google.cloud.dialogflow.cx.v3.Form] lifecycle. For example, when a [DetectIntentRequest][google.cloud.dialogflow.cx.v3.DetectIntentRequest] drives a
|
|
// session to enter a new page, the page's entry fulfillment can add a static
|
|
// response to the [QueryResult][google.cloud.dialogflow.cx.v3.QueryResult] in the returning [DetectIntentResponse][google.cloud.dialogflow.cx.v3.DetectIntentResponse],
|
|
// call the webhook (for example, to load user data from a database), or both.
|
|
message Fulfillment {
|
|
// Setting a parameter value.
|
|
message SetParameterAction {
|
|
// Display name of the parameter.
|
|
string parameter = 1;
|
|
|
|
// The new value of the parameter. A null value clears the parameter.
|
|
google.protobuf.Value value = 2;
|
|
}
|
|
|
|
// A list of cascading if-else conditions. Cases are mutually exclusive.
|
|
// The first one with a matching condition is selected, all the rest ignored.
|
|
message ConditionalCases {
|
|
// Each case has a Boolean condition. When it is evaluated to be True, the
|
|
// corresponding messages will be selected and evaluated recursively.
|
|
message Case {
|
|
// The list of messages or conditional cases to activate for this case.
|
|
message CaseContent {
|
|
// Either a message is returned or additional cases to be evaluated.
|
|
oneof cases_or_message {
|
|
// Returned message.
|
|
ResponseMessage message = 1;
|
|
|
|
// Additional cases to be evaluated.
|
|
ConditionalCases additional_cases = 2;
|
|
}
|
|
}
|
|
|
|
// The condition to activate and select this case. Empty means the
|
|
// condition is always true. The condition is evaluated against [form
|
|
// parameters][Form.parameters] or [session
|
|
// parameters][SessionInfo.parameters].
|
|
//
|
|
// See the [conditions
|
|
// reference](https://cloud.google.com/dialogflow/cx/docs/reference/condition).
|
|
string condition = 1;
|
|
|
|
// A list of case content.
|
|
repeated CaseContent case_content = 2;
|
|
}
|
|
|
|
// A list of cascading if-else conditions.
|
|
repeated Case cases = 1;
|
|
}
|
|
|
|
// The list of rich message responses to present to the user.
|
|
repeated ResponseMessage messages = 1;
|
|
|
|
// The webhook to call.
|
|
// Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent
|
|
// ID>/webhooks/<Webhook ID>`.
|
|
string webhook = 2 [(google.api.resource_reference) = {
|
|
type: "dialogflow.googleapis.com/Webhook"
|
|
}];
|
|
|
|
// The tag used by the webhook to identify which fulfillment is being called.
|
|
// This field is required if `webhook` is specified.
|
|
string tag = 3;
|
|
|
|
// Set parameter values before executing the webhook.
|
|
repeated SetParameterAction set_parameter_actions = 4;
|
|
|
|
// Conditional cases for this fulfillment.
|
|
repeated ConditionalCases conditional_cases = 5;
|
|
}
|