-
Notifications
You must be signed in to change notification settings - Fork 118
/
zz_trafficmirrorfilterrule_types.go
executable file
·278 lines (208 loc) · 14.6 KB
/
zz_trafficmirrorfilterrule_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
// 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 DestinationPortRangeInitParameters struct {
// Starting port of the range
FromPort *float64 `json:"fromPort,omitempty" tf:"from_port,omitempty"`
// Ending port of the range
ToPort *float64 `json:"toPort,omitempty" tf:"to_port,omitempty"`
}
type DestinationPortRangeObservation struct {
// Starting port of the range
FromPort *float64 `json:"fromPort,omitempty" tf:"from_port,omitempty"`
// Ending port of the range
ToPort *float64 `json:"toPort,omitempty" tf:"to_port,omitempty"`
}
type DestinationPortRangeParameters struct {
// Starting port of the range
// +kubebuilder:validation:Optional
FromPort *float64 `json:"fromPort,omitempty" tf:"from_port,omitempty"`
// Ending port of the range
// +kubebuilder:validation:Optional
ToPort *float64 `json:"toPort,omitempty" tf:"to_port,omitempty"`
}
type SourcePortRangeInitParameters struct {
// Starting port of the range
FromPort *float64 `json:"fromPort,omitempty" tf:"from_port,omitempty"`
// Ending port of the range
ToPort *float64 `json:"toPort,omitempty" tf:"to_port,omitempty"`
}
type SourcePortRangeObservation struct {
// Starting port of the range
FromPort *float64 `json:"fromPort,omitempty" tf:"from_port,omitempty"`
// Ending port of the range
ToPort *float64 `json:"toPort,omitempty" tf:"to_port,omitempty"`
}
type SourcePortRangeParameters struct {
// Starting port of the range
// +kubebuilder:validation:Optional
FromPort *float64 `json:"fromPort,omitempty" tf:"from_port,omitempty"`
// Ending port of the range
// +kubebuilder:validation:Optional
ToPort *float64 `json:"toPort,omitempty" tf:"to_port,omitempty"`
}
type TrafficMirrorFilterRuleInitParameters struct {
// Description of the traffic mirror filter rule.
Description *string `json:"description,omitempty" tf:"description,omitempty"`
// Destination CIDR block to assign to the Traffic Mirror rule.
DestinationCidrBlock *string `json:"destinationCidrBlock,omitempty" tf:"destination_cidr_block,omitempty"`
// Destination port range. Supported only when the protocol is set to TCP(6) or UDP(17). See Traffic mirror port range documented below
DestinationPortRange []DestinationPortRangeInitParameters `json:"destinationPortRange,omitempty" tf:"destination_port_range,omitempty"`
// Protocol number, for example 17 (UDP), to assign to the Traffic Mirror rule. For information about the protocol value, see Protocol Numbers on the Internet Assigned Numbers Authority (IANA) website.
Protocol *float64 `json:"protocol,omitempty" tf:"protocol,omitempty"`
// Action to take (accept | reject) on the filtered traffic. Valid values are accept and reject
RuleAction *string `json:"ruleAction,omitempty" tf:"rule_action,omitempty"`
// Number of the Traffic Mirror rule. This number must be unique for each Traffic Mirror rule in a given direction. The rules are processed in ascending order by rule number.
RuleNumber *float64 `json:"ruleNumber,omitempty" tf:"rule_number,omitempty"`
// Source CIDR block to assign to the Traffic Mirror rule.
SourceCidrBlock *string `json:"sourceCidrBlock,omitempty" tf:"source_cidr_block,omitempty"`
// Source port range. Supported only when the protocol is set to TCP(6) or UDP(17). See Traffic mirror port range documented below
SourcePortRange []SourcePortRangeInitParameters `json:"sourcePortRange,omitempty" tf:"source_port_range,omitempty"`
// Direction of traffic to be captured. Valid values are ingress and egress
TrafficDirection *string `json:"trafficDirection,omitempty" tf:"traffic_direction,omitempty"`
// ID of the traffic mirror filter to which this rule should be added
// +crossplane:generate:reference:type=github.com/upbound/provider-aws/apis/ec2/v1beta1.TrafficMirrorFilter
// +crossplane:generate:reference:extractor=github.com/crossplane/upjet/pkg/resource.ExtractResourceID()
TrafficMirrorFilterID *string `json:"trafficMirrorFilterId,omitempty" tf:"traffic_mirror_filter_id,omitempty"`
// Reference to a TrafficMirrorFilter in ec2 to populate trafficMirrorFilterId.
// +kubebuilder:validation:Optional
TrafficMirrorFilterIDRef *v1.Reference `json:"trafficMirrorFilterIdRef,omitempty" tf:"-"`
// Selector for a TrafficMirrorFilter in ec2 to populate trafficMirrorFilterId.
// +kubebuilder:validation:Optional
TrafficMirrorFilterIDSelector *v1.Selector `json:"trafficMirrorFilterIdSelector,omitempty" tf:"-"`
}
type TrafficMirrorFilterRuleObservation struct {
// ARN of the traffic mirror filter rule.
Arn *string `json:"arn,omitempty" tf:"arn,omitempty"`
// Description of the traffic mirror filter rule.
Description *string `json:"description,omitempty" tf:"description,omitempty"`
// Destination CIDR block to assign to the Traffic Mirror rule.
DestinationCidrBlock *string `json:"destinationCidrBlock,omitempty" tf:"destination_cidr_block,omitempty"`
// Destination port range. Supported only when the protocol is set to TCP(6) or UDP(17). See Traffic mirror port range documented below
DestinationPortRange []DestinationPortRangeObservation `json:"destinationPortRange,omitempty" tf:"destination_port_range,omitempty"`
// Name of the traffic mirror filter rule.
ID *string `json:"id,omitempty" tf:"id,omitempty"`
// Protocol number, for example 17 (UDP), to assign to the Traffic Mirror rule. For information about the protocol value, see Protocol Numbers on the Internet Assigned Numbers Authority (IANA) website.
Protocol *float64 `json:"protocol,omitempty" tf:"protocol,omitempty"`
// Action to take (accept | reject) on the filtered traffic. Valid values are accept and reject
RuleAction *string `json:"ruleAction,omitempty" tf:"rule_action,omitempty"`
// Number of the Traffic Mirror rule. This number must be unique for each Traffic Mirror rule in a given direction. The rules are processed in ascending order by rule number.
RuleNumber *float64 `json:"ruleNumber,omitempty" tf:"rule_number,omitempty"`
// Source CIDR block to assign to the Traffic Mirror rule.
SourceCidrBlock *string `json:"sourceCidrBlock,omitempty" tf:"source_cidr_block,omitempty"`
// Source port range. Supported only when the protocol is set to TCP(6) or UDP(17). See Traffic mirror port range documented below
SourcePortRange []SourcePortRangeObservation `json:"sourcePortRange,omitempty" tf:"source_port_range,omitempty"`
// Direction of traffic to be captured. Valid values are ingress and egress
TrafficDirection *string `json:"trafficDirection,omitempty" tf:"traffic_direction,omitempty"`
// ID of the traffic mirror filter to which this rule should be added
TrafficMirrorFilterID *string `json:"trafficMirrorFilterId,omitempty" tf:"traffic_mirror_filter_id,omitempty"`
}
type TrafficMirrorFilterRuleParameters struct {
// Description of the traffic mirror filter rule.
// +kubebuilder:validation:Optional
Description *string `json:"description,omitempty" tf:"description,omitempty"`
// Destination CIDR block to assign to the Traffic Mirror rule.
// +kubebuilder:validation:Optional
DestinationCidrBlock *string `json:"destinationCidrBlock,omitempty" tf:"destination_cidr_block,omitempty"`
// Destination port range. Supported only when the protocol is set to TCP(6) or UDP(17). See Traffic mirror port range documented below
// +kubebuilder:validation:Optional
DestinationPortRange []DestinationPortRangeParameters `json:"destinationPortRange,omitempty" tf:"destination_port_range,omitempty"`
// Protocol number, for example 17 (UDP), to assign to the Traffic Mirror rule. For information about the protocol value, see Protocol Numbers on the Internet Assigned Numbers Authority (IANA) website.
// +kubebuilder:validation:Optional
Protocol *float64 `json:"protocol,omitempty" tf:"protocol,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:"-"`
// Action to take (accept | reject) on the filtered traffic. Valid values are accept and reject
// +kubebuilder:validation:Optional
RuleAction *string `json:"ruleAction,omitempty" tf:"rule_action,omitempty"`
// Number of the Traffic Mirror rule. This number must be unique for each Traffic Mirror rule in a given direction. The rules are processed in ascending order by rule number.
// +kubebuilder:validation:Optional
RuleNumber *float64 `json:"ruleNumber,omitempty" tf:"rule_number,omitempty"`
// Source CIDR block to assign to the Traffic Mirror rule.
// +kubebuilder:validation:Optional
SourceCidrBlock *string `json:"sourceCidrBlock,omitempty" tf:"source_cidr_block,omitempty"`
// Source port range. Supported only when the protocol is set to TCP(6) or UDP(17). See Traffic mirror port range documented below
// +kubebuilder:validation:Optional
SourcePortRange []SourcePortRangeParameters `json:"sourcePortRange,omitempty" tf:"source_port_range,omitempty"`
// Direction of traffic to be captured. Valid values are ingress and egress
// +kubebuilder:validation:Optional
TrafficDirection *string `json:"trafficDirection,omitempty" tf:"traffic_direction,omitempty"`
// ID of the traffic mirror filter to which this rule should be added
// +crossplane:generate:reference:type=github.com/upbound/provider-aws/apis/ec2/v1beta1.TrafficMirrorFilter
// +crossplane:generate:reference:extractor=github.com/crossplane/upjet/pkg/resource.ExtractResourceID()
// +kubebuilder:validation:Optional
TrafficMirrorFilterID *string `json:"trafficMirrorFilterId,omitempty" tf:"traffic_mirror_filter_id,omitempty"`
// Reference to a TrafficMirrorFilter in ec2 to populate trafficMirrorFilterId.
// +kubebuilder:validation:Optional
TrafficMirrorFilterIDRef *v1.Reference `json:"trafficMirrorFilterIdRef,omitempty" tf:"-"`
// Selector for a TrafficMirrorFilter in ec2 to populate trafficMirrorFilterId.
// +kubebuilder:validation:Optional
TrafficMirrorFilterIDSelector *v1.Selector `json:"trafficMirrorFilterIdSelector,omitempty" tf:"-"`
}
// TrafficMirrorFilterRuleSpec defines the desired state of TrafficMirrorFilterRule
type TrafficMirrorFilterRuleSpec struct {
v1.ResourceSpec `json:",inline"`
ForProvider TrafficMirrorFilterRuleParameters `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 TrafficMirrorFilterRuleInitParameters `json:"initProvider,omitempty"`
}
// TrafficMirrorFilterRuleStatus defines the observed state of TrafficMirrorFilterRule.
type TrafficMirrorFilterRuleStatus struct {
v1.ResourceStatus `json:",inline"`
AtProvider TrafficMirrorFilterRuleObservation `json:"atProvider,omitempty"`
}
// +kubebuilder:object:root=true
// +kubebuilder:subresource:status
// +kubebuilder:storageversion
// TrafficMirrorFilterRule is the Schema for the TrafficMirrorFilterRules API. Provides an Traffic mirror filter rule
// +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 TrafficMirrorFilterRule 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.destinationCidrBlock) || (has(self.initProvider) && has(self.initProvider.destinationCidrBlock))",message="spec.forProvider.destinationCidrBlock is a required parameter"
// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.ruleAction) || (has(self.initProvider) && has(self.initProvider.ruleAction))",message="spec.forProvider.ruleAction is a required parameter"
// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.ruleNumber) || (has(self.initProvider) && has(self.initProvider.ruleNumber))",message="spec.forProvider.ruleNumber is a required parameter"
// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.sourceCidrBlock) || (has(self.initProvider) && has(self.initProvider.sourceCidrBlock))",message="spec.forProvider.sourceCidrBlock is a required parameter"
// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.trafficDirection) || (has(self.initProvider) && has(self.initProvider.trafficDirection))",message="spec.forProvider.trafficDirection is a required parameter"
Spec TrafficMirrorFilterRuleSpec `json:"spec"`
Status TrafficMirrorFilterRuleStatus `json:"status,omitempty"`
}
// +kubebuilder:object:root=true
// TrafficMirrorFilterRuleList contains a list of TrafficMirrorFilterRules
type TrafficMirrorFilterRuleList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []TrafficMirrorFilterRule `json:"items"`
}
// Repository type metadata.
var (
TrafficMirrorFilterRule_Kind = "TrafficMirrorFilterRule"
TrafficMirrorFilterRule_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: TrafficMirrorFilterRule_Kind}.String()
TrafficMirrorFilterRule_KindAPIVersion = TrafficMirrorFilterRule_Kind + "." + CRDGroupVersion.String()
TrafficMirrorFilterRule_GroupVersionKind = CRDGroupVersion.WithKind(TrafficMirrorFilterRule_Kind)
)
func init() {
SchemeBuilder.Register(&TrafficMirrorFilterRule{}, &TrafficMirrorFilterRuleList{})
}