-
Notifications
You must be signed in to change notification settings - Fork 117
/
zz_metricstream_types.go
executable file
·328 lines (241 loc) · 17.3 KB
/
zz_metricstream_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
/*
Copyright 2022 Upbound Inc.
*/
// 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 ExcludeFilterInitParameters struct {
// An array that defines the metrics you want to exclude for this metric namespace
MetricNames []*string `json:"metricNames,omitempty" tf:"metric_names,omitempty"`
// Name of the metric namespace in the filter.
Namespace *string `json:"namespace,omitempty" tf:"namespace,omitempty"`
}
type ExcludeFilterObservation struct {
// An array that defines the metrics you want to exclude for this metric namespace
MetricNames []*string `json:"metricNames,omitempty" tf:"metric_names,omitempty"`
// Name of the metric namespace in the filter.
Namespace *string `json:"namespace,omitempty" tf:"namespace,omitempty"`
}
type ExcludeFilterParameters struct {
// An array that defines the metrics you want to exclude for this metric namespace
// +kubebuilder:validation:Optional
MetricNames []*string `json:"metricNames,omitempty" tf:"metric_names,omitempty"`
// Name of the metric namespace in the filter.
// +kubebuilder:validation:Optional
Namespace *string `json:"namespace" tf:"namespace,omitempty"`
}
type IncludeFilterInitParameters struct {
// An array that defines the metrics you want to include for this metric namespace
MetricNames []*string `json:"metricNames,omitempty" tf:"metric_names,omitempty"`
// Name of the metric namespace in the filter.
Namespace *string `json:"namespace,omitempty" tf:"namespace,omitempty"`
}
type IncludeFilterObservation struct {
// An array that defines the metrics you want to include for this metric namespace
MetricNames []*string `json:"metricNames,omitempty" tf:"metric_names,omitempty"`
// Name of the metric namespace in the filter.
Namespace *string `json:"namespace,omitempty" tf:"namespace,omitempty"`
}
type IncludeFilterParameters struct {
// An array that defines the metrics you want to include for this metric namespace
// +kubebuilder:validation:Optional
MetricNames []*string `json:"metricNames,omitempty" tf:"metric_names,omitempty"`
// Name of the metric namespace in the filter.
// +kubebuilder:validation:Optional
Namespace *string `json:"namespace" tf:"namespace,omitempty"`
}
type IncludeMetricInitParameters struct {
// The name of the metric.
MetricName *string `json:"metricName,omitempty" tf:"metric_name,omitempty"`
// The namespace of the metric.
Namespace *string `json:"namespace,omitempty" tf:"namespace,omitempty"`
}
type IncludeMetricObservation struct {
// The name of the metric.
MetricName *string `json:"metricName,omitempty" tf:"metric_name,omitempty"`
// The namespace of the metric.
Namespace *string `json:"namespace,omitempty" tf:"namespace,omitempty"`
}
type IncludeMetricParameters struct {
// The name of the metric.
// +kubebuilder:validation:Optional
MetricName *string `json:"metricName" tf:"metric_name,omitempty"`
// The namespace of the metric.
// +kubebuilder:validation:Optional
Namespace *string `json:"namespace" tf:"namespace,omitempty"`
}
type MetricStreamInitParameters struct {
// List of exclusive metric filters. If you specify this parameter, the stream sends metrics from all metric namespaces except for the namespaces and the conditional metric names that you specify here. If you don't specify metric names or provide empty metric names whole metric namespace is excluded. Conflicts with include_filter.
ExcludeFilter []ExcludeFilterInitParameters `json:"excludeFilter,omitempty" tf:"exclude_filter,omitempty"`
// List of inclusive metric filters. If you specify this parameter, the stream sends only the conditional metric names from the metric namespaces that you specify here. If you don't specify metric names or provide empty metric names whole metric namespace is included. Conflicts with exclude_filter.
IncludeFilter []IncludeFilterInitParameters `json:"includeFilter,omitempty" tf:"include_filter,omitempty"`
// account observability.
IncludeLinkedAccountsMetrics *bool `json:"includeLinkedAccountsMetrics,omitempty" tf:"include_linked_accounts_metrics,omitempty"`
// Friendly name of the metric stream. Conflicts with name_prefix.
Name *string `json:"name,omitempty" tf:"name,omitempty"`
// Output format for the stream. Possible values are json and opentelemetry0.7. For more information about output formats, see Metric streams output formats.
OutputFormat *string `json:"outputFormat,omitempty" tf:"output_format,omitempty"`
// For each entry in this array, you specify one or more metrics and the list of additional statistics to stream for those metrics. The additional statistics that you can stream depend on the stream's output_format. If the OutputFormat is json, you can stream any additional statistic that is supported by CloudWatch, listed in CloudWatch statistics definitions. If the OutputFormat is opentelemetry0.7, you can stream percentile statistics (p99 etc.). See details below.
StatisticsConfiguration []StatisticsConfigurationInitParameters `json:"statisticsConfiguration,omitempty" tf:"statistics_configuration,omitempty"`
// Key-value map of resource tags.
Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"`
}
type MetricStreamObservation struct {
// ARN of the metric stream.
Arn *string `json:"arn,omitempty" tf:"arn,omitempty"`
// Date and time in RFC3339 format that the metric stream was created.
CreationDate *string `json:"creationDate,omitempty" tf:"creation_date,omitempty"`
// List of exclusive metric filters. If you specify this parameter, the stream sends metrics from all metric namespaces except for the namespaces and the conditional metric names that you specify here. If you don't specify metric names or provide empty metric names whole metric namespace is excluded. Conflicts with include_filter.
ExcludeFilter []ExcludeFilterObservation `json:"excludeFilter,omitempty" tf:"exclude_filter,omitempty"`
// ARN of the Amazon Kinesis Firehose delivery stream to use for this metric stream.
FirehoseArn *string `json:"firehoseArn,omitempty" tf:"firehose_arn,omitempty"`
ID *string `json:"id,omitempty" tf:"id,omitempty"`
// List of inclusive metric filters. If you specify this parameter, the stream sends only the conditional metric names from the metric namespaces that you specify here. If you don't specify metric names or provide empty metric names whole metric namespace is included. Conflicts with exclude_filter.
IncludeFilter []IncludeFilterObservation `json:"includeFilter,omitempty" tf:"include_filter,omitempty"`
// account observability.
IncludeLinkedAccountsMetrics *bool `json:"includeLinkedAccountsMetrics,omitempty" tf:"include_linked_accounts_metrics,omitempty"`
// Date and time in RFC3339 format that the metric stream was last updated.
LastUpdateDate *string `json:"lastUpdateDate,omitempty" tf:"last_update_date,omitempty"`
// Friendly name of the metric stream. Conflicts with name_prefix.
Name *string `json:"name,omitempty" tf:"name,omitempty"`
// Output format for the stream. Possible values are json and opentelemetry0.7. For more information about output formats, see Metric streams output formats.
OutputFormat *string `json:"outputFormat,omitempty" tf:"output_format,omitempty"`
// ARN of the IAM role that this metric stream will use to access Amazon Kinesis Firehose resources. For more information about role permissions, see Trust between CloudWatch and Kinesis Data Firehose.
RoleArn *string `json:"roleArn,omitempty" tf:"role_arn,omitempty"`
// State of the metric stream. Possible values are running and stopped.
State *string `json:"state,omitempty" tf:"state,omitempty"`
// For each entry in this array, you specify one or more metrics and the list of additional statistics to stream for those metrics. The additional statistics that you can stream depend on the stream's output_format. If the OutputFormat is json, you can stream any additional statistic that is supported by CloudWatch, listed in CloudWatch statistics definitions. If the OutputFormat is opentelemetry0.7, you can stream percentile statistics (p99 etc.). See details below.
StatisticsConfiguration []StatisticsConfigurationObservation `json:"statisticsConfiguration,omitempty" tf:"statistics_configuration,omitempty"`
// Key-value map of resource tags.
Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"`
// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.
TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"`
}
type MetricStreamParameters struct {
// List of exclusive metric filters. If you specify this parameter, the stream sends metrics from all metric namespaces except for the namespaces and the conditional metric names that you specify here. If you don't specify metric names or provide empty metric names whole metric namespace is excluded. Conflicts with include_filter.
// +kubebuilder:validation:Optional
ExcludeFilter []ExcludeFilterParameters `json:"excludeFilter,omitempty" tf:"exclude_filter,omitempty"`
// ARN of the Amazon Kinesis Firehose delivery stream to use for this metric stream.
// +crossplane:generate:reference:type=github.com/upbound/provider-aws/apis/firehose/v1beta1.DeliveryStream
// +crossplane:generate:reference:extractor=github.com/upbound/upjet/pkg/resource.ExtractParamPath("arn",false)
// +kubebuilder:validation:Optional
FirehoseArn *string `json:"firehoseArn,omitempty" tf:"firehose_arn,omitempty"`
// Reference to a DeliveryStream in firehose to populate firehoseArn.
// +kubebuilder:validation:Optional
FirehoseArnRef *v1.Reference `json:"firehoseArnRef,omitempty" tf:"-"`
// Selector for a DeliveryStream in firehose to populate firehoseArn.
// +kubebuilder:validation:Optional
FirehoseArnSelector *v1.Selector `json:"firehoseArnSelector,omitempty" tf:"-"`
// List of inclusive metric filters. If you specify this parameter, the stream sends only the conditional metric names from the metric namespaces that you specify here. If you don't specify metric names or provide empty metric names whole metric namespace is included. Conflicts with exclude_filter.
// +kubebuilder:validation:Optional
IncludeFilter []IncludeFilterParameters `json:"includeFilter,omitempty" tf:"include_filter,omitempty"`
// account observability.
// +kubebuilder:validation:Optional
IncludeLinkedAccountsMetrics *bool `json:"includeLinkedAccountsMetrics,omitempty" tf:"include_linked_accounts_metrics,omitempty"`
// Friendly name of the metric stream. Conflicts with name_prefix.
// +kubebuilder:validation:Optional
Name *string `json:"name,omitempty" tf:"name,omitempty"`
// Output format for the stream. Possible values are json and opentelemetry0.7. For more information about output formats, see Metric streams output formats.
// +kubebuilder:validation:Optional
OutputFormat *string `json:"outputFormat,omitempty" tf:"output_format,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:"-"`
// ARN of the IAM role that this metric stream will use to access Amazon Kinesis Firehose resources. For more information about role permissions, see Trust between CloudWatch and Kinesis Data Firehose.
// +crossplane:generate:reference:type=github.com/upbound/provider-aws/apis/iam/v1beta1.Role
// +crossplane:generate:reference:extractor=github.com/upbound/provider-aws/config/common.ARNExtractor()
// +kubebuilder:validation:Optional
RoleArn *string `json:"roleArn,omitempty" tf:"role_arn,omitempty"`
// Reference to a Role in iam to populate roleArn.
// +kubebuilder:validation:Optional
RoleArnRef *v1.Reference `json:"roleArnRef,omitempty" tf:"-"`
// Selector for a Role in iam to populate roleArn.
// +kubebuilder:validation:Optional
RoleArnSelector *v1.Selector `json:"roleArnSelector,omitempty" tf:"-"`
// For each entry in this array, you specify one or more metrics and the list of additional statistics to stream for those metrics. The additional statistics that you can stream depend on the stream's output_format. If the OutputFormat is json, you can stream any additional statistic that is supported by CloudWatch, listed in CloudWatch statistics definitions. If the OutputFormat is opentelemetry0.7, you can stream percentile statistics (p99 etc.). See details below.
// +kubebuilder:validation:Optional
StatisticsConfiguration []StatisticsConfigurationParameters `json:"statisticsConfiguration,omitempty" tf:"statistics_configuration,omitempty"`
// Key-value map of resource tags.
// +kubebuilder:validation:Optional
Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"`
}
type StatisticsConfigurationInitParameters struct {
// The additional statistics to stream for the metrics listed in include_metrics.
AdditionalStatistics []*string `json:"additionalStatistics,omitempty" tf:"additional_statistics,omitempty"`
// An array that defines the metrics that are to have additional statistics streamed. See details below.
IncludeMetric []IncludeMetricInitParameters `json:"includeMetric,omitempty" tf:"include_metric,omitempty"`
}
type StatisticsConfigurationObservation struct {
// The additional statistics to stream for the metrics listed in include_metrics.
AdditionalStatistics []*string `json:"additionalStatistics,omitempty" tf:"additional_statistics,omitempty"`
// An array that defines the metrics that are to have additional statistics streamed. See details below.
IncludeMetric []IncludeMetricObservation `json:"includeMetric,omitempty" tf:"include_metric,omitempty"`
}
type StatisticsConfigurationParameters struct {
// The additional statistics to stream for the metrics listed in include_metrics.
// +kubebuilder:validation:Optional
AdditionalStatistics []*string `json:"additionalStatistics" tf:"additional_statistics,omitempty"`
// An array that defines the metrics that are to have additional statistics streamed. See details below.
// +kubebuilder:validation:Optional
IncludeMetric []IncludeMetricParameters `json:"includeMetric" tf:"include_metric,omitempty"`
}
// MetricStreamSpec defines the desired state of MetricStream
type MetricStreamSpec struct {
v1.ResourceSpec `json:",inline"`
ForProvider MetricStreamParameters `json:"forProvider"`
// THIS IS AN ALPHA FIELD. Do not use it in production. It is not honored
// unless the relevant Crossplane feature flag is enabled, and may be
// changed or removed without notice.
// 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 MetricStreamInitParameters `json:"initProvider,omitempty"`
}
// MetricStreamStatus defines the observed state of MetricStream.
type MetricStreamStatus struct {
v1.ResourceStatus `json:",inline"`
AtProvider MetricStreamObservation `json:"atProvider,omitempty"`
}
// +kubebuilder:object:root=true
// MetricStream is the Schema for the MetricStreams API. Provides a CloudWatch Metric Stream resource.
// +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,aws}
type MetricStream 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.name) || (has(self.initProvider) && has(self.initProvider.name))",message="spec.forProvider.name is a required parameter"
// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.outputFormat) || (has(self.initProvider) && has(self.initProvider.outputFormat))",message="spec.forProvider.outputFormat is a required parameter"
Spec MetricStreamSpec `json:"spec"`
Status MetricStreamStatus `json:"status,omitempty"`
}
// +kubebuilder:object:root=true
// MetricStreamList contains a list of MetricStreams
type MetricStreamList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []MetricStream `json:"items"`
}
// Repository type metadata.
var (
MetricStream_Kind = "MetricStream"
MetricStream_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: MetricStream_Kind}.String()
MetricStream_KindAPIVersion = MetricStream_Kind + "." + CRDGroupVersion.String()
MetricStream_GroupVersionKind = CRDGroupVersion.WithKind(MetricStream_Kind)
)
func init() {
SchemeBuilder.Register(&MetricStream{}, &MetricStreamList{})
}