generated from crossplane/upjet-provider-template
/
zz_endpoint_types.go
executable file
·133 lines (101 loc) · 5.99 KB
/
zz_endpoint_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
/*
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 EndpointObservation struct {
// GCP network endpoint groups corresponding to the Private Service Connect endpoint service.
EndpointGroupNames []*string `json:"endpointGroupNames,omitempty" tf:"endpoint_group_names,omitempty"`
// Name of the PrivateLink endpoint service in AWS. Returns null while the endpoint service is being created.
EndpointServiceName *string `json:"endpointServiceName,omitempty" tf:"endpoint_service_name,omitempty"`
// Error message pertaining to the AWS PrivateLink connection. Returns null if there are no errors.
// AWS:
ErrorMessage *string `json:"errorMessage,omitempty" tf:"error_message,omitempty"`
ID *string `json:"id,omitempty" tf:"id,omitempty"`
// Unique identifiers of the interface endpoints in your VPC that you added to the AWS PrivateLink connection.
// AZURE:
InterfaceEndpoints []*string `json:"interfaceEndpoints,omitempty" tf:"interface_endpoints,omitempty"`
// All private endpoints that you have added to this Azure Private Link Service.
PrivateEndpoints []*string `json:"privateEndpoints,omitempty" tf:"private_endpoints,omitempty"`
// Unique identifier of the AWS PrivateLink connection.
PrivateLinkID *string `json:"privateLinkId,omitempty" tf:"private_link_id,omitempty"`
// Name of the Azure Private Link Service that Atlas manages.
// GCP:
PrivateLinkServiceName *string `json:"privateLinkServiceName,omitempty" tf:"private_link_service_name,omitempty"`
PrivateLinkServiceResourceID *string `json:"privateLinkServiceResourceId,omitempty" tf:"private_link_service_resource_id,omitempty"`
// Required Unique identifier for the project.
ProjectID *string `json:"projectId,omitempty" tf:"project_id,omitempty"`
// Name of the cloud provider for which you want to create the private endpoint service. Atlas accepts AWS, AZURE or GCP.
ProviderName *string `json:"providerName,omitempty" tf:"provider_name,omitempty"`
// Cloud provider region in which you want to create the private endpoint connection.
// Accepted values are: AWS regions, AZURE regions and GCP regions
Region *string `json:"region,omitempty" tf:"region,omitempty"`
// GCP region for the Private Service Connect endpoint service.
RegionName *string `json:"regionName,omitempty" tf:"region_name,omitempty"`
// Unique alphanumeric and special character strings that identify the service attachments associated with the GCP Private Service Connect endpoint service. Returns an empty list while Atlas creates the service attachments.
ServiceAttachmentNames []*string `json:"serviceAttachmentNames,omitempty" tf:"service_attachment_names,omitempty"`
// Status of the AWS PrivateLink connection or Status of the Azure Private Link Service. Atlas returns one of the following values:
// AWS:
Status *string `json:"status,omitempty" tf:"status,omitempty"`
}
type EndpointParameters struct {
// Required Unique identifier for the project.
// +kubebuilder:validation:Optional
ProjectID *string `json:"projectId,omitempty" tf:"project_id,omitempty"`
// Name of the cloud provider for which you want to create the private endpoint service. Atlas accepts AWS, AZURE or GCP.
// +kubebuilder:validation:Optional
ProviderName *string `json:"providerName,omitempty" tf:"provider_name,omitempty"`
// Cloud provider region in which you want to create the private endpoint connection.
// Accepted values are: AWS regions, AZURE regions and GCP regions
// +kubebuilder:validation:Optional
Region *string `json:"region,omitempty" tf:"region,omitempty"`
}
// EndpointSpec defines the desired state of Endpoint
type EndpointSpec struct {
v1.ResourceSpec `json:",inline"`
ForProvider EndpointParameters `json:"forProvider"`
}
// EndpointStatus defines the observed state of Endpoint.
type EndpointStatus struct {
v1.ResourceStatus `json:",inline"`
AtProvider EndpointObservation `json:"atProvider,omitempty"`
}
// +kubebuilder:object:root=true
// Endpoint is the Schema for the Endpoints API. Provides a Private Endpoint 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,mongodbatlas}
type Endpoint struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
// +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'ObserveOnly' || has(self.forProvider.projectId)",message="projectId is a required parameter"
// +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'ObserveOnly' || has(self.forProvider.providerName)",message="providerName is a required parameter"
// +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'ObserveOnly' || has(self.forProvider.region)",message="region is a required parameter"
Spec EndpointSpec `json:"spec"`
Status EndpointStatus `json:"status,omitempty"`
}
// +kubebuilder:object:root=true
// EndpointList contains a list of Endpoints
type EndpointList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []Endpoint `json:"items"`
}
// Repository type metadata.
var (
Endpoint_Kind = "Endpoint"
Endpoint_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: Endpoint_Kind}.String()
Endpoint_KindAPIVersion = Endpoint_Kind + "." + CRDGroupVersion.String()
Endpoint_GroupVersionKind = CRDGroupVersion.WithKind(Endpoint_Kind)
)
func init() {
SchemeBuilder.Register(&Endpoint{}, &EndpointList{})
}