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