-
Notifications
You must be signed in to change notification settings - Fork 60
/
zz_networkpeering_types.go
executable file
·194 lines (150 loc) · 10.4 KB
/
zz_networkpeering_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
// 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 NetworkPeeringInitParameters struct {
// Whether to export the custom routes to the peer network. Defaults to false.
ExportCustomRoutes *bool `json:"exportCustomRoutes,omitempty" tf:"export_custom_routes,omitempty"`
// Whether subnet routes with public IP range are exported. The default value is true, all subnet routes are exported. The IPv4 special-use ranges (https://en.wikipedia.org/wiki/IPv4#Special_addresses) are always exported to peers and are not controlled by this field.
ExportSubnetRoutesWithPublicIP *bool `json:"exportSubnetRoutesWithPublicIp,omitempty" tf:"export_subnet_routes_with_public_ip,omitempty"`
// Whether to import the custom routes from the peer network. Defaults to false.
ImportCustomRoutes *bool `json:"importCustomRoutes,omitempty" tf:"import_custom_routes,omitempty"`
// Whether subnet routes with public IP range are imported. The default value is false. The IPv4 special-use ranges (https://en.wikipedia.org/wiki/IPv4#Special_addresses) are always imported from peers and are not controlled by this field.
ImportSubnetRoutesWithPublicIP *bool `json:"importSubnetRoutesWithPublicIp,omitempty" tf:"import_subnet_routes_with_public_ip,omitempty"`
// The peer network in the peering. The peer network
// may belong to a different project.
// +crossplane:generate:reference:type=github.com/upbound/provider-gcp/apis/compute/v1beta1.Network
// +crossplane:generate:reference:extractor=github.com/crossplane/upjet/pkg/resource.ExtractParamPath("self_link",true)
PeerNetwork *string `json:"peerNetwork,omitempty" tf:"peer_network,omitempty"`
// Reference to a Network in compute to populate peerNetwork.
// +kubebuilder:validation:Optional
PeerNetworkRef *v1.Reference `json:"peerNetworkRef,omitempty" tf:"-"`
// Selector for a Network in compute to populate peerNetwork.
// +kubebuilder:validation:Optional
PeerNetworkSelector *v1.Selector `json:"peerNetworkSelector,omitempty" tf:"-"`
// Which IP version(s) of traffic and routes are allowed to be imported or exported between peer networks. The default value is IPV4_ONLY. Possible values: ["IPV4_ONLY", "IPV4_IPV6"].
StackType *string `json:"stackType,omitempty" tf:"stack_type,omitempty"`
}
type NetworkPeeringObservation struct {
// Whether to export the custom routes to the peer network. Defaults to false.
ExportCustomRoutes *bool `json:"exportCustomRoutes,omitempty" tf:"export_custom_routes,omitempty"`
// Whether subnet routes with public IP range are exported. The default value is true, all subnet routes are exported. The IPv4 special-use ranges (https://en.wikipedia.org/wiki/IPv4#Special_addresses) are always exported to peers and are not controlled by this field.
ExportSubnetRoutesWithPublicIP *bool `json:"exportSubnetRoutesWithPublicIp,omitempty" tf:"export_subnet_routes_with_public_ip,omitempty"`
// an identifier for the resource with format {{network}}/{{name}}
ID *string `json:"id,omitempty" tf:"id,omitempty"`
// Whether to import the custom routes from the peer network. Defaults to false.
ImportCustomRoutes *bool `json:"importCustomRoutes,omitempty" tf:"import_custom_routes,omitempty"`
// Whether subnet routes with public IP range are imported. The default value is false. The IPv4 special-use ranges (https://en.wikipedia.org/wiki/IPv4#Special_addresses) are always imported from peers and are not controlled by this field.
ImportSubnetRoutesWithPublicIP *bool `json:"importSubnetRoutesWithPublicIp,omitempty" tf:"import_subnet_routes_with_public_ip,omitempty"`
// The primary network of the peering.
Network *string `json:"network,omitempty" tf:"network,omitempty"`
// The peer network in the peering. The peer network
// may belong to a different project.
PeerNetwork *string `json:"peerNetwork,omitempty" tf:"peer_network,omitempty"`
// Which IP version(s) of traffic and routes are allowed to be imported or exported between peer networks. The default value is IPV4_ONLY. Possible values: ["IPV4_ONLY", "IPV4_IPV6"].
StackType *string `json:"stackType,omitempty" tf:"stack_type,omitempty"`
// State for the peering, either ACTIVE or INACTIVE. The peering is
// ACTIVE when there's a matching configuration in the peer network.
State *string `json:"state,omitempty" tf:"state,omitempty"`
// Details about the current state of the peering.
StateDetails *string `json:"stateDetails,omitempty" tf:"state_details,omitempty"`
}
type NetworkPeeringParameters struct {
// Whether to export the custom routes to the peer network. Defaults to false.
// +kubebuilder:validation:Optional
ExportCustomRoutes *bool `json:"exportCustomRoutes,omitempty" tf:"export_custom_routes,omitempty"`
// Whether subnet routes with public IP range are exported. The default value is true, all subnet routes are exported. The IPv4 special-use ranges (https://en.wikipedia.org/wiki/IPv4#Special_addresses) are always exported to peers and are not controlled by this field.
// +kubebuilder:validation:Optional
ExportSubnetRoutesWithPublicIP *bool `json:"exportSubnetRoutesWithPublicIp,omitempty" tf:"export_subnet_routes_with_public_ip,omitempty"`
// Whether to import the custom routes from the peer network. Defaults to false.
// +kubebuilder:validation:Optional
ImportCustomRoutes *bool `json:"importCustomRoutes,omitempty" tf:"import_custom_routes,omitempty"`
// Whether subnet routes with public IP range are imported. The default value is false. The IPv4 special-use ranges (https://en.wikipedia.org/wiki/IPv4#Special_addresses) are always imported from peers and are not controlled by this field.
// +kubebuilder:validation:Optional
ImportSubnetRoutesWithPublicIP *bool `json:"importSubnetRoutesWithPublicIp,omitempty" tf:"import_subnet_routes_with_public_ip,omitempty"`
// The primary network of the peering.
// +crossplane:generate:reference:type=github.com/upbound/provider-gcp/apis/compute/v1beta1.Network
// +crossplane:generate:reference:extractor=github.com/crossplane/upjet/pkg/resource.ExtractParamPath("self_link",true)
// +kubebuilder:validation:Optional
Network *string `json:"network,omitempty" tf:"network,omitempty"`
// Reference to a Network in compute to populate network.
// +kubebuilder:validation:Optional
NetworkRef *v1.Reference `json:"networkRef,omitempty" tf:"-"`
// Selector for a Network in compute to populate network.
// +kubebuilder:validation:Optional
NetworkSelector *v1.Selector `json:"networkSelector,omitempty" tf:"-"`
// The peer network in the peering. The peer network
// may belong to a different project.
// +crossplane:generate:reference:type=github.com/upbound/provider-gcp/apis/compute/v1beta1.Network
// +crossplane:generate:reference:extractor=github.com/crossplane/upjet/pkg/resource.ExtractParamPath("self_link",true)
// +kubebuilder:validation:Optional
PeerNetwork *string `json:"peerNetwork,omitempty" tf:"peer_network,omitempty"`
// Reference to a Network in compute to populate peerNetwork.
// +kubebuilder:validation:Optional
PeerNetworkRef *v1.Reference `json:"peerNetworkRef,omitempty" tf:"-"`
// Selector for a Network in compute to populate peerNetwork.
// +kubebuilder:validation:Optional
PeerNetworkSelector *v1.Selector `json:"peerNetworkSelector,omitempty" tf:"-"`
// Which IP version(s) of traffic and routes are allowed to be imported or exported between peer networks. The default value is IPV4_ONLY. Possible values: ["IPV4_ONLY", "IPV4_IPV6"].
// +kubebuilder:validation:Optional
StackType *string `json:"stackType,omitempty" tf:"stack_type,omitempty"`
}
// NetworkPeeringSpec defines the desired state of NetworkPeering
type NetworkPeeringSpec struct {
v1.ResourceSpec `json:",inline"`
ForProvider NetworkPeeringParameters `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 NetworkPeeringInitParameters `json:"initProvider,omitempty"`
}
// NetworkPeeringStatus defines the observed state of NetworkPeering.
type NetworkPeeringStatus struct {
v1.ResourceStatus `json:",inline"`
AtProvider NetworkPeeringObservation `json:"atProvider,omitempty"`
}
// +kubebuilder:object:root=true
// +kubebuilder:subresource:status
// +kubebuilder:storageversion
// NetworkPeering is the Schema for the NetworkPeerings API. Manages a network peering within GCE.
// +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,gcp}
type NetworkPeering struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec NetworkPeeringSpec `json:"spec"`
Status NetworkPeeringStatus `json:"status,omitempty"`
}
// +kubebuilder:object:root=true
// NetworkPeeringList contains a list of NetworkPeerings
type NetworkPeeringList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []NetworkPeering `json:"items"`
}
// Repository type metadata.
var (
NetworkPeering_Kind = "NetworkPeering"
NetworkPeering_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: NetworkPeering_Kind}.String()
NetworkPeering_KindAPIVersion = NetworkPeering_Kind + "." + CRDGroupVersion.String()
NetworkPeering_GroupVersionKind = CRDGroupVersion.WithKind(NetworkPeering_Kind)
)
func init() {
SchemeBuilder.Register(&NetworkPeering{}, &NetworkPeeringList{})
}