generated from crossplane/upjet-provider-template
-
Notifications
You must be signed in to change notification settings - Fork 9
/
zz_record_types.go
executable file
·181 lines (142 loc) · 10 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
/*
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 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"`
}
// RecordStatus defines the observed state of Record.
type RecordStatus struct {
v1.ResourceStatus `json:",inline"`
AtProvider RecordObservation `json:"atProvider,omitempty"`
}
// +kubebuilder:object:root=true
// Record is the Schema for the Records API. Manages a Linode Domain Record.
// +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,linode}
type Record struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
// +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'ObserveOnly' || has(self.forProvider.recordType)",message="recordType is a required parameter"
// +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'ObserveOnly' || has(self.forProvider.target)",message="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{})
}