generated from crossplane/upjet-provider-template
/
zz_integration_types.go
executable file
·173 lines (127 loc) · 6.64 KB
/
zz_integration_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
/*
Copyright 2023 Upbound Inc. - ANKASOFT
*/
// 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 IntegrationObservation struct {
// Ids of the cloud accounts to associate with this integration.
AssociatedCloudAccountIds []*string `json:"associatedCloudAccountIds,omitempty" tf:"associated_cloud_account_ids,omitempty"`
// Date when the entity was created. The date is in ISO 8601 and UTC.
CreatedAt *string `json:"createdAt,omitempty" tf:"created_at,omitempty"`
// Additional custom properties that may be used to extend the Integration.
CustomProperties map[string]*string `json:"customProperties,omitempty" tf:"custom_properties,omitempty"`
// A human-friendly description.
Description *string `json:"description,omitempty" tf:"description,omitempty"`
ID *string `json:"id,omitempty" tf:"id,omitempty"`
// Integration specific properties supplied in as name value pairs.
IntegrationProperties map[string]*string `json:"integrationProperties,omitempty" tf:"integration_properties,omitempty"`
// Integration type.
IntegrationType *string `json:"integrationType,omitempty" tf:"integration_type,omitempty"`
Links []LinksObservation `json:"links,omitempty" tf:"links,omitempty"`
// The name of the integration.
Name *string `json:"name,omitempty" tf:"name,omitempty"`
// The id of the organization this entity belongs to.
OrgID *string `json:"orgId,omitempty" tf:"org_id,omitempty"`
// Email of the user that owns the entity.
Owner *string `json:"owner,omitempty" tf:"owner,omitempty"`
Tags []TagsObservation `json:"tags,omitempty" tf:"tags,omitempty"`
// Date when the entity was last updated. The date is ISO 8601 and UTC.
UpdatedAt *string `json:"updatedAt,omitempty" tf:"updated_at,omitempty"`
}
type IntegrationParameters struct {
// Ids of the cloud accounts to associate with this integration.
// +kubebuilder:validation:Optional
AssociatedCloudAccountIds []*string `json:"associatedCloudAccountIds,omitempty" tf:"associated_cloud_account_ids,omitempty"`
// Certificate to be used to connect to the integration.
// +kubebuilder:validation:Optional
CertificateSecretRef *v1.SecretKeySelector `json:"certificateSecretRef,omitempty" tf:"-"`
// Additional custom properties that may be used to extend the Integration.
// +kubebuilder:validation:Optional
CustomProperties map[string]*string `json:"customProperties,omitempty" tf:"custom_properties,omitempty"`
// A human-friendly description.
// +kubebuilder:validation:Optional
Description *string `json:"description,omitempty" tf:"description,omitempty"`
// Integration specific properties supplied in as name value pairs.
// +kubebuilder:validation:Optional
IntegrationProperties map[string]*string `json:"integrationProperties,omitempty" tf:"integration_properties,omitempty"`
// Integration type.
// +kubebuilder:validation:Optional
IntegrationType *string `json:"integrationType,omitempty" tf:"integration_type,omitempty"`
// The name of the integration.
// +kubebuilder:validation:Optional
Name *string `json:"name,omitempty" tf:"name,omitempty"`
// Access key id or username to be used to authenticate with the integration.
// +kubebuilder:validation:Optional
PrivateKeyIDSecretRef *v1.SecretKeySelector `json:"privateKeyIdSecretRef,omitempty" tf:"-"`
// Secret access key or password to be used to authenticate with the integration.
// +kubebuilder:validation:Optional
PrivateKeySecretRef *v1.SecretKeySelector `json:"privateKeySecretRef,omitempty" tf:"-"`
// +kubebuilder:validation:Optional
Tags []TagsParameters `json:"tags,omitempty" tf:"tags,omitempty"`
}
type LinksObservation struct {
Href *string `json:"href,omitempty" tf:"href,omitempty"`
Hrefs []*string `json:"hrefs,omitempty" tf:"hrefs,omitempty"`
Rel *string `json:"rel,omitempty" tf:"rel,omitempty"`
}
type LinksParameters struct {
}
type TagsObservation struct {
Key *string `json:"key,omitempty" tf:"key,omitempty"`
Value *string `json:"value,omitempty" tf:"value,omitempty"`
}
type TagsParameters struct {
// +kubebuilder:validation:Required
Key *string `json:"key" tf:"key,omitempty"`
// +kubebuilder:validation:Required
Value *string `json:"value" tf:"value,omitempty"`
}
// IntegrationSpec defines the desired state of Integration
type IntegrationSpec struct {
v1.ResourceSpec `json:",inline"`
ForProvider IntegrationParameters `json:"forProvider"`
}
// IntegrationStatus defines the observed state of Integration.
type IntegrationStatus struct {
v1.ResourceStatus `json:",inline"`
AtProvider IntegrationObservation `json:"atProvider,omitempty"`
}
// +kubebuilder:object:root=true
// Integration is the Schema for the Integrations API. <no value>
// +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,vra}
type Integration struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
// +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'ObserveOnly' || has(self.forProvider.integrationProperties)",message="integrationProperties is a required parameter"
// +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'ObserveOnly' || has(self.forProvider.integrationType)",message="integrationType is a required parameter"
// +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'ObserveOnly' || has(self.forProvider.name)",message="name is a required parameter"
Spec IntegrationSpec `json:"spec"`
Status IntegrationStatus `json:"status,omitempty"`
}
// +kubebuilder:object:root=true
// IntegrationList contains a list of Integrations
type IntegrationList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []Integration `json:"items"`
}
// Repository type metadata.
var (
Integration_Kind = "Integration"
Integration_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: Integration_Kind}.String()
Integration_KindAPIVersion = Integration_Kind + "." + CRDGroupVersion.String()
Integration_GroupVersionKind = CRDGroupVersion.WithKind(Integration_Kind)
)
func init() {
SchemeBuilder.Register(&Integration{}, &IntegrationList{})
}