xref: /aosp_15_r20/external/googleapis/google/cloud/dialogflow/v2/fulfillment.proto (revision d5c09012810ac0c9f33fe448fb6da8260d444cc9)
1*d5c09012SAndroid Build Coastguard Worker// Copyright 2023 Google LLC
2*d5c09012SAndroid Build Coastguard Worker//
3*d5c09012SAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License");
4*d5c09012SAndroid Build Coastguard Worker// you may not use this file except in compliance with the License.
5*d5c09012SAndroid Build Coastguard Worker// You may obtain a copy of the License at
6*d5c09012SAndroid Build Coastguard Worker//
7*d5c09012SAndroid Build Coastguard Worker//     http://www.apache.org/licenses/LICENSE-2.0
8*d5c09012SAndroid Build Coastguard Worker//
9*d5c09012SAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software
10*d5c09012SAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS,
11*d5c09012SAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12*d5c09012SAndroid Build Coastguard Worker// See the License for the specific language governing permissions and
13*d5c09012SAndroid Build Coastguard Worker// limitations under the License.
14*d5c09012SAndroid Build Coastguard Worker
15*d5c09012SAndroid Build Coastguard Workersyntax = "proto3";
16*d5c09012SAndroid Build Coastguard Worker
17*d5c09012SAndroid Build Coastguard Workerpackage google.cloud.dialogflow.v2;
18*d5c09012SAndroid Build Coastguard Worker
19*d5c09012SAndroid Build Coastguard Workerimport "google/api/annotations.proto";
20*d5c09012SAndroid Build Coastguard Workerimport "google/api/client.proto";
21*d5c09012SAndroid Build Coastguard Workerimport "google/api/field_behavior.proto";
22*d5c09012SAndroid Build Coastguard Workerimport "google/api/resource.proto";
23*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/field_mask.proto";
24*d5c09012SAndroid Build Coastguard Worker
25*d5c09012SAndroid Build Coastguard Workeroption cc_enable_arenas = true;
26*d5c09012SAndroid Build Coastguard Workeroption csharp_namespace = "Google.Cloud.Dialogflow.V2";
27*d5c09012SAndroid Build Coastguard Workeroption go_package = "cloud.google.com/go/dialogflow/apiv2/dialogflowpb;dialogflowpb";
28*d5c09012SAndroid Build Coastguard Workeroption java_multiple_files = true;
29*d5c09012SAndroid Build Coastguard Workeroption java_outer_classname = "FulfillmentProto";
30*d5c09012SAndroid Build Coastguard Workeroption java_package = "com.google.cloud.dialogflow.v2";
31*d5c09012SAndroid Build Coastguard Workeroption objc_class_prefix = "DF";
32*d5c09012SAndroid Build Coastguard Worker
33*d5c09012SAndroid Build Coastguard Worker// Service for managing [Fulfillments][google.cloud.dialogflow.v2.Fulfillment].
34*d5c09012SAndroid Build Coastguard Workerservice Fulfillments {
35*d5c09012SAndroid Build Coastguard Worker  option (google.api.default_host) = "dialogflow.googleapis.com";
36*d5c09012SAndroid Build Coastguard Worker  option (google.api.oauth_scopes) =
37*d5c09012SAndroid Build Coastguard Worker      "https://www.googleapis.com/auth/cloud-platform,"
38*d5c09012SAndroid Build Coastguard Worker      "https://www.googleapis.com/auth/dialogflow";
39*d5c09012SAndroid Build Coastguard Worker
40*d5c09012SAndroid Build Coastguard Worker  // Retrieves the fulfillment.
41*d5c09012SAndroid Build Coastguard Worker  rpc GetFulfillment(GetFulfillmentRequest) returns (Fulfillment) {
42*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
43*d5c09012SAndroid Build Coastguard Worker      get: "/v2/{name=projects/*/agent/fulfillment}"
44*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
45*d5c09012SAndroid Build Coastguard Worker        get: "/v2/{name=projects/*/locations/*/agent/fulfillment}"
46*d5c09012SAndroid Build Coastguard Worker      }
47*d5c09012SAndroid Build Coastguard Worker    };
48*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "name";
49*d5c09012SAndroid Build Coastguard Worker  }
50*d5c09012SAndroid Build Coastguard Worker
51*d5c09012SAndroid Build Coastguard Worker  // Updates the fulfillment.
52*d5c09012SAndroid Build Coastguard Worker  rpc UpdateFulfillment(UpdateFulfillmentRequest) returns (Fulfillment) {
53*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
54*d5c09012SAndroid Build Coastguard Worker      patch: "/v2/{fulfillment.name=projects/*/agent/fulfillment}"
55*d5c09012SAndroid Build Coastguard Worker      body: "fulfillment"
56*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
57*d5c09012SAndroid Build Coastguard Worker        patch: "/v2/{fulfillment.name=projects/*/locations/*/agent/fulfillment}"
58*d5c09012SAndroid Build Coastguard Worker        body: "fulfillment"
59*d5c09012SAndroid Build Coastguard Worker      }
60*d5c09012SAndroid Build Coastguard Worker    };
61*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "fulfillment,update_mask";
62*d5c09012SAndroid Build Coastguard Worker  }
63*d5c09012SAndroid Build Coastguard Worker}
64*d5c09012SAndroid Build Coastguard Worker
65*d5c09012SAndroid Build Coastguard Worker// By default, your agent responds to a matched intent with a static response.
66*d5c09012SAndroid Build Coastguard Worker// As an alternative, you can provide a more dynamic response by using
67*d5c09012SAndroid Build Coastguard Worker// fulfillment. When you enable fulfillment for an intent, Dialogflow responds
68*d5c09012SAndroid Build Coastguard Worker// to that intent by calling a service that you define. For example, if an
69*d5c09012SAndroid Build Coastguard Worker// end-user wants to schedule a haircut on Friday, your service can check your
70*d5c09012SAndroid Build Coastguard Worker// database and respond to the end-user with availability information for
71*d5c09012SAndroid Build Coastguard Worker// Friday.
72*d5c09012SAndroid Build Coastguard Worker//
73*d5c09012SAndroid Build Coastguard Worker// For more information, see the [fulfillment
74*d5c09012SAndroid Build Coastguard Worker// guide](https://cloud.google.com/dialogflow/docs/fulfillment-overview).
75*d5c09012SAndroid Build Coastguard Workermessage Fulfillment {
76*d5c09012SAndroid Build Coastguard Worker  option (google.api.resource) = {
77*d5c09012SAndroid Build Coastguard Worker    type: "dialogflow.googleapis.com/Fulfillment"
78*d5c09012SAndroid Build Coastguard Worker    pattern: "projects/{project}/agent/fulfillment"
79*d5c09012SAndroid Build Coastguard Worker    pattern: "projects/{project}/locations/{location}/agent/fulfillment"
80*d5c09012SAndroid Build Coastguard Worker  };
81*d5c09012SAndroid Build Coastguard Worker
82*d5c09012SAndroid Build Coastguard Worker  // Represents configuration for a generic web service.
83*d5c09012SAndroid Build Coastguard Worker  // Dialogflow supports two mechanisms for authentications:
84*d5c09012SAndroid Build Coastguard Worker  //
85*d5c09012SAndroid Build Coastguard Worker  // - Basic authentication with username and password.
86*d5c09012SAndroid Build Coastguard Worker  // - Authentication with additional authentication headers.
87*d5c09012SAndroid Build Coastguard Worker  //
88*d5c09012SAndroid Build Coastguard Worker  // More information could be found at:
89*d5c09012SAndroid Build Coastguard Worker  // https://cloud.google.com/dialogflow/docs/fulfillment-configure.
90*d5c09012SAndroid Build Coastguard Worker  message GenericWebService {
91*d5c09012SAndroid Build Coastguard Worker    // Required. The fulfillment URI for receiving POST requests.
92*d5c09012SAndroid Build Coastguard Worker    // It must use https protocol.
93*d5c09012SAndroid Build Coastguard Worker    string uri = 1 [(google.api.field_behavior) = REQUIRED];
94*d5c09012SAndroid Build Coastguard Worker
95*d5c09012SAndroid Build Coastguard Worker    // Optional. The user name for HTTP Basic authentication.
96*d5c09012SAndroid Build Coastguard Worker    string username = 2 [(google.api.field_behavior) = OPTIONAL];
97*d5c09012SAndroid Build Coastguard Worker
98*d5c09012SAndroid Build Coastguard Worker    // Optional. The password for HTTP Basic authentication.
99*d5c09012SAndroid Build Coastguard Worker    string password = 3 [(google.api.field_behavior) = OPTIONAL];
100*d5c09012SAndroid Build Coastguard Worker
101*d5c09012SAndroid Build Coastguard Worker    // Optional. The HTTP request headers to send together with fulfillment
102*d5c09012SAndroid Build Coastguard Worker    // requests.
103*d5c09012SAndroid Build Coastguard Worker    map<string, string> request_headers = 4
104*d5c09012SAndroid Build Coastguard Worker        [(google.api.field_behavior) = OPTIONAL];
105*d5c09012SAndroid Build Coastguard Worker
106*d5c09012SAndroid Build Coastguard Worker    // Optional. Indicates if generic web service is created through Cloud
107*d5c09012SAndroid Build Coastguard Worker    // Functions integration. Defaults to false.
108*d5c09012SAndroid Build Coastguard Worker    //
109*d5c09012SAndroid Build Coastguard Worker    // is_cloud_function is deprecated. Cloud functions can be configured by
110*d5c09012SAndroid Build Coastguard Worker    // its uri as a regular web service now.
111*d5c09012SAndroid Build Coastguard Worker    bool is_cloud_function = 5
112*d5c09012SAndroid Build Coastguard Worker        [deprecated = true, (google.api.field_behavior) = OPTIONAL];
113*d5c09012SAndroid Build Coastguard Worker  }
114*d5c09012SAndroid Build Coastguard Worker
115*d5c09012SAndroid Build Coastguard Worker  // Whether fulfillment is enabled for the specific feature.
116*d5c09012SAndroid Build Coastguard Worker  message Feature {
117*d5c09012SAndroid Build Coastguard Worker    // The type of the feature.
118*d5c09012SAndroid Build Coastguard Worker    enum Type {
119*d5c09012SAndroid Build Coastguard Worker      // Feature type not specified.
120*d5c09012SAndroid Build Coastguard Worker      TYPE_UNSPECIFIED = 0;
121*d5c09012SAndroid Build Coastguard Worker
122*d5c09012SAndroid Build Coastguard Worker      // Fulfillment is enabled for SmallTalk.
123*d5c09012SAndroid Build Coastguard Worker      SMALLTALK = 1;
124*d5c09012SAndroid Build Coastguard Worker    }
125*d5c09012SAndroid Build Coastguard Worker
126*d5c09012SAndroid Build Coastguard Worker    // The type of the feature that enabled for fulfillment.
127*d5c09012SAndroid Build Coastguard Worker    Type type = 1;
128*d5c09012SAndroid Build Coastguard Worker  }
129*d5c09012SAndroid Build Coastguard Worker
130*d5c09012SAndroid Build Coastguard Worker  // Required. The unique identifier of the fulfillment.
131*d5c09012SAndroid Build Coastguard Worker  // Supported formats:
132*d5c09012SAndroid Build Coastguard Worker  //
133*d5c09012SAndroid Build Coastguard Worker  // - `projects/<Project ID>/agent/fulfillment`
134*d5c09012SAndroid Build Coastguard Worker  // - `projects/<Project ID>/locations/<Location ID>/agent/fulfillment`
135*d5c09012SAndroid Build Coastguard Worker  //
136*d5c09012SAndroid Build Coastguard Worker  // This field is not used for Fulfillment in an Environment.
137*d5c09012SAndroid Build Coastguard Worker  string name = 1 [(google.api.field_behavior) = REQUIRED];
138*d5c09012SAndroid Build Coastguard Worker
139*d5c09012SAndroid Build Coastguard Worker  // Optional. The human-readable name of the fulfillment, unique within the
140*d5c09012SAndroid Build Coastguard Worker  // agent.
141*d5c09012SAndroid Build Coastguard Worker  //
142*d5c09012SAndroid Build Coastguard Worker  // This field is not used for Fulfillment in an Environment.
143*d5c09012SAndroid Build Coastguard Worker  string display_name = 2 [(google.api.field_behavior) = OPTIONAL];
144*d5c09012SAndroid Build Coastguard Worker
145*d5c09012SAndroid Build Coastguard Worker  // Required. The fulfillment configuration.
146*d5c09012SAndroid Build Coastguard Worker  oneof fulfillment {
147*d5c09012SAndroid Build Coastguard Worker    // Configuration for a generic web service.
148*d5c09012SAndroid Build Coastguard Worker    GenericWebService generic_web_service = 3;
149*d5c09012SAndroid Build Coastguard Worker  }
150*d5c09012SAndroid Build Coastguard Worker
151*d5c09012SAndroid Build Coastguard Worker  // Optional. Whether fulfillment is enabled.
152*d5c09012SAndroid Build Coastguard Worker  bool enabled = 4 [(google.api.field_behavior) = OPTIONAL];
153*d5c09012SAndroid Build Coastguard Worker
154*d5c09012SAndroid Build Coastguard Worker  // Optional. The field defines whether the fulfillment is enabled for certain
155*d5c09012SAndroid Build Coastguard Worker  // features.
156*d5c09012SAndroid Build Coastguard Worker  repeated Feature features = 5 [(google.api.field_behavior) = OPTIONAL];
157*d5c09012SAndroid Build Coastguard Worker}
158*d5c09012SAndroid Build Coastguard Worker
159*d5c09012SAndroid Build Coastguard Worker// The request message for
160*d5c09012SAndroid Build Coastguard Worker// [Fulfillments.GetFulfillment][google.cloud.dialogflow.v2.Fulfillments.GetFulfillment].
161*d5c09012SAndroid Build Coastguard Workermessage GetFulfillmentRequest {
162*d5c09012SAndroid Build Coastguard Worker  // Required. The name of the fulfillment.
163*d5c09012SAndroid Build Coastguard Worker  // Format: `projects/<Project ID>/agent/fulfillment`.
164*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
165*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
166*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
167*d5c09012SAndroid Build Coastguard Worker      type: "dialogflow.googleapis.com/Fulfillment"
168*d5c09012SAndroid Build Coastguard Worker    }
169*d5c09012SAndroid Build Coastguard Worker  ];
170*d5c09012SAndroid Build Coastguard Worker}
171*d5c09012SAndroid Build Coastguard Worker
172*d5c09012SAndroid Build Coastguard Worker// The request message for
173*d5c09012SAndroid Build Coastguard Worker// [Fulfillments.UpdateFulfillment][google.cloud.dialogflow.v2.Fulfillments.UpdateFulfillment].
174*d5c09012SAndroid Build Coastguard Workermessage UpdateFulfillmentRequest {
175*d5c09012SAndroid Build Coastguard Worker  // Required. The fulfillment to update.
176*d5c09012SAndroid Build Coastguard Worker  Fulfillment fulfillment = 1 [(google.api.field_behavior) = REQUIRED];
177*d5c09012SAndroid Build Coastguard Worker
178*d5c09012SAndroid Build Coastguard Worker  // Required. The mask to control which fields get updated. If the mask is not
179*d5c09012SAndroid Build Coastguard Worker  // present, all fields will be updated.
180*d5c09012SAndroid Build Coastguard Worker  google.protobuf.FieldMask update_mask = 2
181*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = REQUIRED];
182*d5c09012SAndroid Build Coastguard Worker}
183