generated from crossplane/upjet-provider-template
-
Notifications
You must be signed in to change notification settings - Fork 8
/
zz_record_types.go
executable file
·249 lines (196 loc) · 14.9 KB
/
zz_record_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
/*
Copyright 2022 Upbound Inc.
*/
// Code generated by upjet. DO NOT EDIT.
package v1alpha1
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 RecordInitParameters struct {
// The ID of the Domain to access. Changing .
// The ID of the Domain to access.
// +crossplane:generate:reference:type=Domain
DomainID *float64 `json:"domainId,omitempty" tf:"domain_id,omitempty"`
// Reference to a Domain to populate domainId.
// +kubebuilder:validation:Optional
DomainIDRef *v1.Reference `json:"domainIdRef,omitempty" tf:"-"`
// Selector for a Domain to populate domainId.
// +kubebuilder:validation:Optional
DomainIDSelector *v1.Selector `json:"domainIdSelector,omitempty" tf:"-"`
// The name of this Record. Setting this is invalid for SRV records as it is generated by the API. This field's actual usage depends on the type of record this represents. For A and AAAA records, this is the subdomain being associated with an IP address.
// The name of this Record. This field's actual usage depends on the type of record this represents. For A and AAAA records, this is the subdomain being associated with an IP address. Generated for SRV records.
Name *string `json:"name,omitempty" tf:"name,omitempty"`
// The port this Record points to.
// The port this Record points to.
Port *float64 `json:"port,omitempty" tf:"port,omitempty"`
// The priority of the target host. Lower values are preferred.
// The priority of the target host. Lower values are preferred.
Priority *float64 `json:"priority,omitempty" tf:"priority,omitempty"`
// The protocol this Record's service communicates with. Only valid for SRV records.
// The protocol this Record's service communicates with. Only valid for SRV records.
Protocol *string `json:"protocol,omitempty" tf:"protocol,omitempty"`
// The type of Record this is in the DNS system. For example, A records associate a domain name with an IPv4 address, and AAAA records associate a domain name with an IPv6 address. See all supported record types here. Changing .
// The type of Record this is in the DNS system. For example, A records associate a domain name with an IPv4 address, and AAAA records associate a domain name with an IPv6 address.
RecordType *string `json:"recordType,omitempty" tf:"record_type,omitempty"`
// The service this Record identified. Only valid for SRV records.
// The service this Record identified. Only valid for SRV records.
Service *string `json:"service,omitempty" tf:"service,omitempty"`
// 'Time to Live' - the amount of time in seconds that this Domain's records may be cached by resolvers or other domain servers. Valid values are 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200 - any other value will be rounded to the nearest valid value.
// 'Time to Live' - the amount of time in seconds that this Domain's records may be cached by resolvers or other domain servers. Valid values are 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200 - any other value will be rounded to the nearest valid value.
TTLSec *float64 `json:"ttlSec,omitempty" tf:"ttl_sec,omitempty"`
// The tag portion of a CAA record. It is invalid to set this on other record types.
// The tag portion of a CAA record. It is invalid to set this on other record types.
Tag *string `json:"tag,omitempty" tf:"tag,omitempty"`
// The target for this Record. This field's actual usage depends on the type of record this represents. For A and AAAA records, this is the address the named Domain should resolve to.
// The target for this Record. This field's actual usage depends on the type of record this represents. For A and AAAA records, this is the address the named Domain should resolve to.
Target *string `json:"target,omitempty" tf:"target,omitempty"`
// The relative weight of this Record. Higher values are preferred.
// The relative weight of this Record. Higher values are preferred.
Weight *float64 `json:"weight,omitempty" tf:"weight,omitempty"`
}
type RecordObservation struct {
// The ID of the Domain to access. Changing .
// The ID of the Domain to access.
DomainID *float64 `json:"domainId,omitempty" tf:"domain_id,omitempty"`
ID *string `json:"id,omitempty" tf:"id,omitempty"`
// The name of this Record. Setting this is invalid for SRV records as it is generated by the API. This field's actual usage depends on the type of record this represents. For A and AAAA records, this is the subdomain being associated with an IP address.
// The name of this Record. This field's actual usage depends on the type of record this represents. For A and AAAA records, this is the subdomain being associated with an IP address. Generated for SRV records.
Name *string `json:"name,omitempty" tf:"name,omitempty"`
// The port this Record points to.
// The port this Record points to.
Port *float64 `json:"port,omitempty" tf:"port,omitempty"`
// The priority of the target host. Lower values are preferred.
// The priority of the target host. Lower values are preferred.
Priority *float64 `json:"priority,omitempty" tf:"priority,omitempty"`
// The protocol this Record's service communicates with. Only valid for SRV records.
// The protocol this Record's service communicates with. Only valid for SRV records.
Protocol *string `json:"protocol,omitempty" tf:"protocol,omitempty"`
// The type of Record this is in the DNS system. For example, A records associate a domain name with an IPv4 address, and AAAA records associate a domain name with an IPv6 address. See all supported record types here. Changing .
// The type of Record this is in the DNS system. For example, A records associate a domain name with an IPv4 address, and AAAA records associate a domain name with an IPv6 address.
RecordType *string `json:"recordType,omitempty" tf:"record_type,omitempty"`
// The service this Record identified. Only valid for SRV records.
// The service this Record identified. Only valid for SRV records.
Service *string `json:"service,omitempty" tf:"service,omitempty"`
// 'Time to Live' - the amount of time in seconds that this Domain's records may be cached by resolvers or other domain servers. Valid values are 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200 - any other value will be rounded to the nearest valid value.
// 'Time to Live' - the amount of time in seconds that this Domain's records may be cached by resolvers or other domain servers. Valid values are 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200 - any other value will be rounded to the nearest valid value.
TTLSec *float64 `json:"ttlSec,omitempty" tf:"ttl_sec,omitempty"`
// The tag portion of a CAA record. It is invalid to set this on other record types.
// The tag portion of a CAA record. It is invalid to set this on other record types.
Tag *string `json:"tag,omitempty" tf:"tag,omitempty"`
// The target for this Record. This field's actual usage depends on the type of record this represents. For A and AAAA records, this is the address the named Domain should resolve to.
// The target for this Record. This field's actual usage depends on the type of record this represents. For A and AAAA records, this is the address the named Domain should resolve to.
Target *string `json:"target,omitempty" tf:"target,omitempty"`
// The relative weight of this Record. Higher values are preferred.
// The relative weight of this Record. Higher values are preferred.
Weight *float64 `json:"weight,omitempty" tf:"weight,omitempty"`
}
type RecordParameters struct {
// The ID of the Domain to access. Changing .
// The ID of the Domain to access.
// +crossplane:generate:reference:type=Domain
// +kubebuilder:validation:Optional
DomainID *float64 `json:"domainId,omitempty" tf:"domain_id,omitempty"`
// Reference to a Domain to populate domainId.
// +kubebuilder:validation:Optional
DomainIDRef *v1.Reference `json:"domainIdRef,omitempty" tf:"-"`
// Selector for a Domain to populate domainId.
// +kubebuilder:validation:Optional
DomainIDSelector *v1.Selector `json:"domainIdSelector,omitempty" tf:"-"`
// The name of this Record. Setting this is invalid for SRV records as it is generated by the API. This field's actual usage depends on the type of record this represents. For A and AAAA records, this is the subdomain being associated with an IP address.
// The name of this Record. This field's actual usage depends on the type of record this represents. For A and AAAA records, this is the subdomain being associated with an IP address. Generated for SRV records.
// +kubebuilder:validation:Optional
Name *string `json:"name,omitempty" tf:"name,omitempty"`
// The port this Record points to.
// The port this Record points to.
// +kubebuilder:validation:Optional
Port *float64 `json:"port,omitempty" tf:"port,omitempty"`
// The priority of the target host. Lower values are preferred.
// The priority of the target host. Lower values are preferred.
// +kubebuilder:validation:Optional
Priority *float64 `json:"priority,omitempty" tf:"priority,omitempty"`
// The protocol this Record's service communicates with. Only valid for SRV records.
// The protocol this Record's service communicates with. Only valid for SRV records.
// +kubebuilder:validation:Optional
Protocol *string `json:"protocol,omitempty" tf:"protocol,omitempty"`
// The type of Record this is in the DNS system. For example, A records associate a domain name with an IPv4 address, and AAAA records associate a domain name with an IPv6 address. See all supported record types here. Changing .
// The type of Record this is in the DNS system. For example, A records associate a domain name with an IPv4 address, and AAAA records associate a domain name with an IPv6 address.
// +kubebuilder:validation:Optional
RecordType *string `json:"recordType,omitempty" tf:"record_type,omitempty"`
// The service this Record identified. Only valid for SRV records.
// The service this Record identified. Only valid for SRV records.
// +kubebuilder:validation:Optional
Service *string `json:"service,omitempty" tf:"service,omitempty"`
// 'Time to Live' - the amount of time in seconds that this Domain's records may be cached by resolvers or other domain servers. Valid values are 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200 - any other value will be rounded to the nearest valid value.
// 'Time to Live' - the amount of time in seconds that this Domain's records may be cached by resolvers or other domain servers. Valid values are 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200 - any other value will be rounded to the nearest valid value.
// +kubebuilder:validation:Optional
TTLSec *float64 `json:"ttlSec,omitempty" tf:"ttl_sec,omitempty"`
// The tag portion of a CAA record. It is invalid to set this on other record types.
// The tag portion of a CAA record. It is invalid to set this on other record types.
// +kubebuilder:validation:Optional
Tag *string `json:"tag,omitempty" tf:"tag,omitempty"`
// The target for this Record. This field's actual usage depends on the type of record this represents. For A and AAAA records, this is the address the named Domain should resolve to.
// The target for this Record. This field's actual usage depends on the type of record this represents. For A and AAAA records, this is the address the named Domain should resolve to.
// +kubebuilder:validation:Optional
Target *string `json:"target,omitempty" tf:"target,omitempty"`
// The relative weight of this Record. Higher values are preferred.
// The relative weight of this Record. Higher values are preferred.
// +kubebuilder:validation:Optional
Weight *float64 `json:"weight,omitempty" tf:"weight,omitempty"`
}
// RecordSpec defines the desired state of Record
type RecordSpec struct {
v1.ResourceSpec `json:",inline"`
ForProvider RecordParameters `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 RecordInitParameters `json:"initProvider,omitempty"`
}
// RecordStatus defines the observed state of Record.
type RecordStatus struct {
v1.ResourceStatus `json:",inline"`
AtProvider RecordObservation `json:"atProvider,omitempty"`
}
// +kubebuilder:object:root=true
// +kubebuilder:subresource:status
// +kubebuilder:storageversion
// Record is the Schema for the Records API. Manages a Linode Domain Record.
// +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,linode}
type Record 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.recordType) || (has(self.initProvider) && has(self.initProvider.recordType))",message="spec.forProvider.recordType is a required parameter"
// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.target) || (has(self.initProvider) && has(self.initProvider.target))",message="spec.forProvider.target is a required parameter"
Spec RecordSpec `json:"spec"`
Status RecordStatus `json:"status,omitempty"`
}
// +kubebuilder:object:root=true
// RecordList contains a list of Records
type RecordList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []Record `json:"items"`
}
// Repository type metadata.
var (
Record_Kind = "Record"
Record_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: Record_Kind}.String()
Record_KindAPIVersion = Record_Kind + "." + CRDGroupVersion.String()
Record_GroupVersionKind = CRDGroupVersion.WithKind(Record_Kind)
)
func init() {
SchemeBuilder.Register(&Record{}, &RecordList{})
}