-
Notifications
You must be signed in to change notification settings - Fork 59
/
zz_intent_types.go
executable file
·388 lines (302 loc) · 21.7 KB
/
zz_intent_types.go
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
377
378
379
380
381
382
383
384
385
386
387
388
// SPDX-FileCopyrightText: 2023 The Crossplane Authors <https://crossplane.io>
//
// SPDX-License-Identifier: Apache-2.0
/*
Copyright 2021 The Crossplane Authors.
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.
*/
// Code generated by upjet. DO NOT EDIT.
package v1beta1
import (
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime/schema"
v1 "github.com/crossplane/crossplane-runtime/apis/common/v1"
)
type IntentInitParameters struct {
// Human readable description for better understanding an intent like its scope, content, result etc. Maximum character limit: 140 characters.
Description *string `json:"description,omitempty" tf:"description,omitempty"`
// The human-readable name of the intent, unique within the agent.
DisplayName *string `json:"displayName,omitempty" tf:"display_name,omitempty"`
// 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.
IsFallback *bool `json:"isFallback,omitempty" tf:"is_fallback,omitempty"`
// 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.
// An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.
// +mapType=granular
Labels map[string]*string `json:"labels,omitempty" tf:"labels,omitempty"`
// 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 are supported. Note: languages must be enabled in the agent before they can be used.
LanguageCode *string `json:"languageCode,omitempty" tf:"language_code,omitempty"`
// The collection of parameters associated with the intent.
// Structure is documented below.
Parameters []ParametersInitParameters `json:"parameters,omitempty" tf:"parameters,omitempty"`
// The agent to create an intent for.
// Format: projects//locations//agents/.
// +crossplane:generate:reference:type=github.com/upbound/provider-gcp/apis/dialogflowcx/v1beta1.Agent
// +crossplane:generate:reference:extractor=github.com/crossplane/upjet/pkg/resource.ExtractResourceID()
Parent *string `json:"parent,omitempty" tf:"parent,omitempty"`
// Reference to a Agent in dialogflowcx to populate parent.
// +kubebuilder:validation:Optional
ParentRef *v1.Reference `json:"parentRef,omitempty" tf:"-"`
// Selector for a Agent in dialogflowcx to populate parent.
// +kubebuilder:validation:Optional
ParentSelector *v1.Selector `json:"parentSelector,omitempty" tf:"-"`
// 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.
Priority *float64 `json:"priority,omitempty" tf:"priority,omitempty"`
// The collection of training phrases the agent is trained on to identify the intent.
// Structure is documented below.
TrainingPhrases []TrainingPhrasesInitParameters `json:"trainingPhrases,omitempty" tf:"training_phrases,omitempty"`
}
type IntentObservation struct {
// Human readable description for better understanding an intent like its scope, content, result etc. Maximum character limit: 140 characters.
Description *string `json:"description,omitempty" tf:"description,omitempty"`
// The human-readable name of the intent, unique within the agent.
DisplayName *string `json:"displayName,omitempty" tf:"display_name,omitempty"`
// an identifier for the resource with format {{parent}}/intents/{{name}}
ID *string `json:"id,omitempty" tf:"id,omitempty"`
// 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.
IsFallback *bool `json:"isFallback,omitempty" tf:"is_fallback,omitempty"`
// 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.
// An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.
// +mapType=granular
Labels map[string]*string `json:"labels,omitempty" tf:"labels,omitempty"`
// 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 are supported. Note: languages must be enabled in the agent before they can be used.
LanguageCode *string `json:"languageCode,omitempty" tf:"language_code,omitempty"`
// The unique identifier of the intent.
// Format: projects//locations//agents//intents/.
Name *string `json:"name,omitempty" tf:"name,omitempty"`
// The collection of parameters associated with the intent.
// Structure is documented below.
Parameters []ParametersObservation `json:"parameters,omitempty" tf:"parameters,omitempty"`
// The agent to create an intent for.
// Format: projects//locations//agents/.
Parent *string `json:"parent,omitempty" tf:"parent,omitempty"`
// 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.
Priority *float64 `json:"priority,omitempty" tf:"priority,omitempty"`
// The collection of training phrases the agent is trained on to identify the intent.
// Structure is documented below.
TrainingPhrases []TrainingPhrasesObservation `json:"trainingPhrases,omitempty" tf:"training_phrases,omitempty"`
}
type IntentParameters struct {
// Human readable description for better understanding an intent like its scope, content, result etc. Maximum character limit: 140 characters.
// +kubebuilder:validation:Optional
Description *string `json:"description,omitempty" tf:"description,omitempty"`
// The human-readable name of the intent, unique within the agent.
// +kubebuilder:validation:Optional
DisplayName *string `json:"displayName,omitempty" tf:"display_name,omitempty"`
// 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.
// +kubebuilder:validation:Optional
IsFallback *bool `json:"isFallback,omitempty" tf:"is_fallback,omitempty"`
// 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.
// An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.
// +kubebuilder:validation:Optional
// +mapType=granular
Labels map[string]*string `json:"labels,omitempty" tf:"labels,omitempty"`
// 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 are supported. Note: languages must be enabled in the agent before they can be used.
// +kubebuilder:validation:Optional
LanguageCode *string `json:"languageCode,omitempty" tf:"language_code,omitempty"`
// The collection of parameters associated with the intent.
// Structure is documented below.
// +kubebuilder:validation:Optional
Parameters []ParametersParameters `json:"parameters,omitempty" tf:"parameters,omitempty"`
// The agent to create an intent for.
// Format: projects//locations//agents/.
// +crossplane:generate:reference:type=github.com/upbound/provider-gcp/apis/dialogflowcx/v1beta1.Agent
// +crossplane:generate:reference:extractor=github.com/crossplane/upjet/pkg/resource.ExtractResourceID()
// +kubebuilder:validation:Optional
Parent *string `json:"parent,omitempty" tf:"parent,omitempty"`
// Reference to a Agent in dialogflowcx to populate parent.
// +kubebuilder:validation:Optional
ParentRef *v1.Reference `json:"parentRef,omitempty" tf:"-"`
// Selector for a Agent in dialogflowcx to populate parent.
// +kubebuilder:validation:Optional
ParentSelector *v1.Selector `json:"parentSelector,omitempty" tf:"-"`
// 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.
// +kubebuilder:validation:Optional
Priority *float64 `json:"priority,omitempty" tf:"priority,omitempty"`
// The collection of training phrases the agent is trained on to identify the intent.
// Structure is documented below.
// +kubebuilder:validation:Optional
TrainingPhrases []TrainingPhrasesParameters `json:"trainingPhrases,omitempty" tf:"training_phrases,omitempty"`
}
type ParametersInitParameters struct {
// 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.
EntityType *string `json:"entityType,omitempty" tf:"entity_type,omitempty"`
// The unique identifier of the parameter. This field is used by training phrases to annotate their parts.
ID *string `json:"id,omitempty" tf:"id,omitempty"`
// Indicates whether the parameter represents a list of values.
IsList *bool `json:"isList,omitempty" tf:"is_list,omitempty"`
// 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 is enabled.
Redact *bool `json:"redact,omitempty" tf:"redact,omitempty"`
}
type ParametersObservation struct {
// 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.
EntityType *string `json:"entityType,omitempty" tf:"entity_type,omitempty"`
// The unique identifier of the parameter. This field is used by training phrases to annotate their parts.
ID *string `json:"id,omitempty" tf:"id,omitempty"`
// Indicates whether the parameter represents a list of values.
IsList *bool `json:"isList,omitempty" tf:"is_list,omitempty"`
// 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 is enabled.
Redact *bool `json:"redact,omitempty" tf:"redact,omitempty"`
}
type ParametersParameters struct {
// 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.
// +kubebuilder:validation:Optional
EntityType *string `json:"entityType" tf:"entity_type,omitempty"`
// The unique identifier of the parameter. This field is used by training phrases to annotate their parts.
// +kubebuilder:validation:Optional
ID *string `json:"id" tf:"id,omitempty"`
// Indicates whether the parameter represents a list of values.
// +kubebuilder:validation:Optional
IsList *bool `json:"isList,omitempty" tf:"is_list,omitempty"`
// 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 is enabled.
// +kubebuilder:validation:Optional
Redact *bool `json:"redact,omitempty" tf:"redact,omitempty"`
}
type PartsInitParameters struct {
// The parameter used to annotate this part of the training phrase. This field is required for annotated parts of the training phrase.
ParameterID *string `json:"parameterId,omitempty" tf:"parameter_id,omitempty"`
// The text for this part.
Text *string `json:"text,omitempty" tf:"text,omitempty"`
}
type PartsObservation struct {
// The parameter used to annotate this part of the training phrase. This field is required for annotated parts of the training phrase.
ParameterID *string `json:"parameterId,omitempty" tf:"parameter_id,omitempty"`
// The text for this part.
Text *string `json:"text,omitempty" tf:"text,omitempty"`
}
type PartsParameters struct {
// The parameter used to annotate this part of the training phrase. This field is required for annotated parts of the training phrase.
// +kubebuilder:validation:Optional
ParameterID *string `json:"parameterId,omitempty" tf:"parameter_id,omitempty"`
// The text for this part.
// +kubebuilder:validation:Optional
Text *string `json:"text" tf:"text,omitempty"`
}
type TrainingPhrasesInitParameters struct {
// 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 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 parameterId field is set.
// Structure is documented below.
Parts []PartsInitParameters `json:"parts,omitempty" tf:"parts,omitempty"`
// Indicates how many times this example was added to the intent.
RepeatCount *float64 `json:"repeatCount,omitempty" tf:"repeat_count,omitempty"`
}
type TrainingPhrasesObservation struct {
// (Output)
// The unique identifier of the training phrase.
ID *string `json:"id,omitempty" tf:"id,omitempty"`
// 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 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 parameterId field is set.
// Structure is documented below.
Parts []PartsObservation `json:"parts,omitempty" tf:"parts,omitempty"`
// Indicates how many times this example was added to the intent.
RepeatCount *float64 `json:"repeatCount,omitempty" tf:"repeat_count,omitempty"`
}
type TrainingPhrasesParameters struct {
// 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 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 parameterId field is set.
// Structure is documented below.
// +kubebuilder:validation:Optional
Parts []PartsParameters `json:"parts" tf:"parts,omitempty"`
// Indicates how many times this example was added to the intent.
// +kubebuilder:validation:Optional
RepeatCount *float64 `json:"repeatCount,omitempty" tf:"repeat_count,omitempty"`
}
// IntentSpec defines the desired state of Intent
type IntentSpec struct {
v1.ResourceSpec `json:",inline"`
ForProvider IntentParameters `json:"forProvider"`
// THIS IS A BETA FIELD. It will be honored
// unless the Management Policies feature flag is disabled.
// InitProvider holds the same fields as ForProvider, with the exception
// of Identifier and other resource reference fields. The fields that are
// in InitProvider are merged into ForProvider when the resource is created.
// The same fields are also added to the terraform ignore_changes hook, to
// avoid updating them after creation. This is useful for fields that are
// required on creation, but we do not desire to update them after creation,
// for example because of an external controller is managing them, like an
// autoscaler.
InitProvider IntentInitParameters `json:"initProvider,omitempty"`
}
// IntentStatus defines the observed state of Intent.
type IntentStatus struct {
v1.ResourceStatus `json:",inline"`
AtProvider IntentObservation `json:"atProvider,omitempty"`
}
// +kubebuilder:object:root=true
// Intent is the Schema for the Intents API. An intent represents a user's intent to interact with a conversational agent.
// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status"
// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].status"
// +kubebuilder:printcolumn:name="EXTERNAL-NAME",type="string",JSONPath=".metadata.annotations.crossplane\\.io/external-name"
// +kubebuilder:printcolumn:name="AGE",type="date",JSONPath=".metadata.creationTimestamp"
// +kubebuilder:subresource:status
// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,gcp}
type Intent struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.displayName) || (has(self.initProvider) && has(self.initProvider.displayName))",message="spec.forProvider.displayName is a required parameter"
Spec IntentSpec `json:"spec"`
Status IntentStatus `json:"status,omitempty"`
}
// +kubebuilder:object:root=true
// IntentList contains a list of Intents
type IntentList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []Intent `json:"items"`
}
// Repository type metadata.
var (
Intent_Kind = "Intent"
Intent_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: Intent_Kind}.String()
Intent_KindAPIVersion = Intent_Kind + "." + CRDGroupVersion.String()
Intent_GroupVersionKind = CRDGroupVersion.WithKind(Intent_Kind)
)
func init() {
SchemeBuilder.Register(&Intent{}, &IntentList{})
}