/
zz_botalias_types.go
executable file
·226 lines (168 loc) · 10.7 KB
/
zz_botalias_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
// SPDX-FileCopyrightText: 2024 The Crossplane Authors <https://crossplane.io>
//
// SPDX-License-Identifier: Apache-2.0
// 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 BotAliasInitParameters struct {
// The name of the bot.
BotName *string `json:"botName,omitempty" tf:"bot_name,omitempty"`
// The version of the bot.
BotVersion *string `json:"botVersion,omitempty" tf:"bot_version,omitempty"`
// The settings that determine how Amazon Lex uses conversation logs for the alias. Attributes are documented under conversation_logs.
ConversationLogs []ConversationLogsInitParameters `json:"conversationLogs,omitempty" tf:"conversation_logs,omitempty"`
// A description of the alias. Must be less than or equal to 200 characters in length.
Description *string `json:"description,omitempty" tf:"description,omitempty"`
}
type BotAliasObservation struct {
// The ARN of the bot alias.
Arn *string `json:"arn,omitempty" tf:"arn,omitempty"`
// The name of the bot.
BotName *string `json:"botName,omitempty" tf:"bot_name,omitempty"`
// The version of the bot.
BotVersion *string `json:"botVersion,omitempty" tf:"bot_version,omitempty"`
// Checksum of the bot alias.
Checksum *string `json:"checksum,omitempty" tf:"checksum,omitempty"`
// The settings that determine how Amazon Lex uses conversation logs for the alias. Attributes are documented under conversation_logs.
ConversationLogs []ConversationLogsObservation `json:"conversationLogs,omitempty" tf:"conversation_logs,omitempty"`
// The date that the bot alias was created.
CreatedDate *string `json:"createdDate,omitempty" tf:"created_date,omitempty"`
// A description of the alias. Must be less than or equal to 200 characters in length.
Description *string `json:"description,omitempty" tf:"description,omitempty"`
ID *string `json:"id,omitempty" tf:"id,omitempty"`
// The date that the bot alias was updated. When you create a resource, the creation date and the last updated date are the same.
LastUpdatedDate *string `json:"lastUpdatedDate,omitempty" tf:"last_updated_date,omitempty"`
}
type BotAliasParameters struct {
// The name of the bot.
// +kubebuilder:validation:Optional
BotName *string `json:"botName,omitempty" tf:"bot_name,omitempty"`
// The version of the bot.
// +kubebuilder:validation:Optional
BotVersion *string `json:"botVersion,omitempty" tf:"bot_version,omitempty"`
// The settings that determine how Amazon Lex uses conversation logs for the alias. Attributes are documented under conversation_logs.
// +kubebuilder:validation:Optional
ConversationLogs []ConversationLogsParameters `json:"conversationLogs,omitempty" tf:"conversation_logs,omitempty"`
// A description of the alias. Must be less than or equal to 200 characters in length.
// +kubebuilder:validation:Optional
Description *string `json:"description,omitempty" tf:"description,omitempty"`
// Region is the region you'd like your resource to be created in.
// +upjet:crd:field:TFTag=-
// +kubebuilder:validation:Required
Region *string `json:"region" tf:"-"`
}
type ConversationLogsInitParameters struct {
// The Amazon Resource Name (ARN) of the IAM role used to write your logs to CloudWatch Logs or an S3 bucket. Must be between 20 and 2048 characters in length.
IAMRoleArn *string `json:"iamRoleArn,omitempty" tf:"iam_role_arn,omitempty"`
// The settings for your conversation logs. You can log text, audio, or both. Attributes are documented under log_settings.
LogSettings []LogSettingsInitParameters `json:"logSettings,omitempty" tf:"log_settings,omitempty"`
}
type ConversationLogsObservation struct {
// The Amazon Resource Name (ARN) of the IAM role used to write your logs to CloudWatch Logs or an S3 bucket. Must be between 20 and 2048 characters in length.
IAMRoleArn *string `json:"iamRoleArn,omitempty" tf:"iam_role_arn,omitempty"`
// The settings for your conversation logs. You can log text, audio, or both. Attributes are documented under log_settings.
LogSettings []LogSettingsObservation `json:"logSettings,omitempty" tf:"log_settings,omitempty"`
}
type ConversationLogsParameters struct {
// The Amazon Resource Name (ARN) of the IAM role used to write your logs to CloudWatch Logs or an S3 bucket. Must be between 20 and 2048 characters in length.
// +kubebuilder:validation:Optional
IAMRoleArn *string `json:"iamRoleArn" tf:"iam_role_arn,omitempty"`
// The settings for your conversation logs. You can log text, audio, or both. Attributes are documented under log_settings.
// +kubebuilder:validation:Optional
LogSettings []LogSettingsParameters `json:"logSettings,omitempty" tf:"log_settings,omitempty"`
}
type LogSettingsInitParameters struct {
// The destination where logs are delivered. Options are CLOUDWATCH_LOGS or S3.
Destination *string `json:"destination,omitempty" tf:"destination,omitempty"`
// The Amazon Resource Name (ARN) of the key used to encrypt audio logs in an S3 bucket. This can only be specified when destination is set to S3. Must be between 20 and 2048 characters in length.
KMSKeyArn *string `json:"kmsKeyArn,omitempty" tf:"kms_key_arn,omitempty"`
// The type of logging that is enabled. Options are AUDIO or TEXT.
LogType *string `json:"logType,omitempty" tf:"log_type,omitempty"`
// The Amazon Resource Name (ARN) of the CloudWatch Logs log group or S3 bucket where the logs are delivered. Must be less than or equal to 2048 characters in length.
ResourceArn *string `json:"resourceArn,omitempty" tf:"resource_arn,omitempty"`
}
type LogSettingsObservation struct {
// The destination where logs are delivered. Options are CLOUDWATCH_LOGS or S3.
Destination *string `json:"destination,omitempty" tf:"destination,omitempty"`
// The Amazon Resource Name (ARN) of the key used to encrypt audio logs in an S3 bucket. This can only be specified when destination is set to S3. Must be between 20 and 2048 characters in length.
KMSKeyArn *string `json:"kmsKeyArn,omitempty" tf:"kms_key_arn,omitempty"`
// The type of logging that is enabled. Options are AUDIO or TEXT.
LogType *string `json:"logType,omitempty" tf:"log_type,omitempty"`
// The Amazon Resource Name (ARN) of the CloudWatch Logs log group or S3 bucket where the logs are delivered. Must be less than or equal to 2048 characters in length.
ResourceArn *string `json:"resourceArn,omitempty" tf:"resource_arn,omitempty"`
// (Computed) The prefix of the S3 object key for AUDIO logs or the log stream name for TEXT logs.
ResourcePrefix *string `json:"resourcePrefix,omitempty" tf:"resource_prefix,omitempty"`
}
type LogSettingsParameters struct {
// The destination where logs are delivered. Options are CLOUDWATCH_LOGS or S3.
// +kubebuilder:validation:Optional
Destination *string `json:"destination" tf:"destination,omitempty"`
// The Amazon Resource Name (ARN) of the key used to encrypt audio logs in an S3 bucket. This can only be specified when destination is set to S3. Must be between 20 and 2048 characters in length.
// +kubebuilder:validation:Optional
KMSKeyArn *string `json:"kmsKeyArn,omitempty" tf:"kms_key_arn,omitempty"`
// The type of logging that is enabled. Options are AUDIO or TEXT.
// +kubebuilder:validation:Optional
LogType *string `json:"logType" tf:"log_type,omitempty"`
// The Amazon Resource Name (ARN) of the CloudWatch Logs log group or S3 bucket where the logs are delivered. Must be less than or equal to 2048 characters in length.
// +kubebuilder:validation:Optional
ResourceArn *string `json:"resourceArn" tf:"resource_arn,omitempty"`
}
// BotAliasSpec defines the desired state of BotAlias
type BotAliasSpec struct {
v1.ResourceSpec `json:",inline"`
ForProvider BotAliasParameters `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 BotAliasInitParameters `json:"initProvider,omitempty"`
}
// BotAliasStatus defines the observed state of BotAlias.
type BotAliasStatus struct {
v1.ResourceStatus `json:",inline"`
AtProvider BotAliasObservation `json:"atProvider,omitempty"`
}
// +kubebuilder:object:root=true
// +kubebuilder:subresource:status
// +kubebuilder:storageversion
// BotAlias is the Schema for the BotAliass API. Provides an Amazon Lex Bot Alias resource.
// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].status"
// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].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:resource:scope=Cluster,categories={crossplane,managed,aws}
type BotAlias 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.botName) || (has(self.initProvider) && has(self.initProvider.botName))",message="spec.forProvider.botName is a required parameter"
// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.botVersion) || (has(self.initProvider) && has(self.initProvider.botVersion))",message="spec.forProvider.botVersion is a required parameter"
Spec BotAliasSpec `json:"spec"`
Status BotAliasStatus `json:"status,omitempty"`
}
// +kubebuilder:object:root=true
// BotAliasList contains a list of BotAliass
type BotAliasList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []BotAlias `json:"items"`
}
// Repository type metadata.
var (
BotAlias_Kind = "BotAlias"
BotAlias_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: BotAlias_Kind}.String()
BotAlias_KindAPIVersion = BotAlias_Kind + "." + CRDGroupVersion.String()
BotAlias_GroupVersionKind = CRDGroupVersion.WithKind(BotAlias_Kind)
)
func init() {
SchemeBuilder.Register(&BotAlias{}, &BotAliasList{})
}