1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
|
// 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.cx.v3;
import "google/api/annotations.proto";
import "google/api/client.proto";
import "google/api/field_behavior.proto";
import "google/api/resource.proto";
import "google/protobuf/empty.proto";
import "google/protobuf/field_mask.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 = "IntentProto";
option java_package = "com.google.cloud.dialogflow.cx.v3";
option objc_class_prefix = "DF";
option ruby_package = "Google::Cloud::Dialogflow::CX::V3";
// Service for managing [Intents][google.cloud.dialogflow.cx.v3.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: "/v3/{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: "/v3/{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: "/v3/{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: "/v3/{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: "/v3/{name=projects/*/locations/*/agents/*/intents/*}"
};
option (google.api.method_signature) = "name";
}
}
// 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.v3.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.v3.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.v3.Intent.TrainingPhrase] to annotate their
// [parts][google.cloud.dialogflow.cx.v3.Intent.TrainingPhrase.Part].
string id = 1 [(google.api.field_behavior) = REQUIRED];
// Required. The entity type of the parameter.
// Format: `projects/-/locations/-/agents/-/entityTypes/<System Entity Type
// ID>` for system entity types (for example,
// `projects/-/locations/-/agents/-/entityTypes/sys.date`), or
// `projects/<Project ID>/locations/<Location ID>/agents/<Agent
// ID>/entityTypes/<Entity Type ID>` 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.v3.EntityType.redact] is
// enabled.
bool redact = 4;
}
// The unique identifier of the intent.
// Required for the [Intents.UpdateIntent][google.cloud.dialogflow.cx.v3.Intents.UpdateIntent] method. [Intents.CreateIntent][google.cloud.dialogflow.cx.v3.Intents.CreateIntent]
// populates the name automatically.
// Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent
// ID>/intents/<Intent ID>`.
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<string, string> 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.v3.Intents.ListIntents].
message ListIntentsRequest {
// Required. The agent to list all intents for.
// Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent ID>`.
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.v3.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.v3.Intents.GetIntent].
message GetIntentRequest {
// Required. The name of the intent.
// Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent
// ID>/intents/<Intent ID>`.
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.v3.Intents.CreateIntent].
message CreateIntentRequest {
// Required. The agent to create an intent for.
// Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent ID>`.
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.v3.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.v3.Intents.DeleteIntent].
message DeleteIntentRequest {
// Required. The name of the intent to delete.
// Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent
// ID>/intents/<Intent ID>`.
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;
}
|