-
Notifications
You must be signed in to change notification settings - Fork 69
/
zz_labserviceplan_types.go
executable file
·258 lines (191 loc) · 12.5 KB
/
zz_labserviceplan_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
250
251
252
253
254
255
256
257
258
/*
Copyright 2022 Upbound Inc.
*/
// 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 DefaultAutoShutdownObservation struct {
// The amount of time a VM will stay running after a user disconnects if this behavior is enabled. This value must be formatted as an ISO 8601 string.
DisconnectDelay *string `json:"disconnectDelay,omitempty" tf:"disconnect_delay,omitempty"`
// The amount of time a VM will idle before it is shutdown if this behavior is enabled. This value must be formatted as an ISO 8601 string.
IdleDelay *string `json:"idleDelay,omitempty" tf:"idle_delay,omitempty"`
// The amount of time a VM will stay running before it is shutdown if no connection is made and this behavior is enabled. This value must be formatted as an ISO 8601 string.
NoConnectDelay *string `json:"noConnectDelay,omitempty" tf:"no_connect_delay,omitempty"`
// Will a VM get shutdown when it has idled for a period of time? Possible values are LowUsage and UserAbsence.
ShutdownOnIdle *string `json:"shutdownOnIdle,omitempty" tf:"shutdown_on_idle,omitempty"`
}
type DefaultAutoShutdownParameters struct {
// The amount of time a VM will stay running after a user disconnects if this behavior is enabled. This value must be formatted as an ISO 8601 string.
// +kubebuilder:validation:Optional
DisconnectDelay *string `json:"disconnectDelay,omitempty" tf:"disconnect_delay,omitempty"`
// The amount of time a VM will idle before it is shutdown if this behavior is enabled. This value must be formatted as an ISO 8601 string.
// +kubebuilder:validation:Optional
IdleDelay *string `json:"idleDelay,omitempty" tf:"idle_delay,omitempty"`
// The amount of time a VM will stay running before it is shutdown if no connection is made and this behavior is enabled. This value must be formatted as an ISO 8601 string.
// +kubebuilder:validation:Optional
NoConnectDelay *string `json:"noConnectDelay,omitempty" tf:"no_connect_delay,omitempty"`
// Will a VM get shutdown when it has idled for a period of time? Possible values are LowUsage and UserAbsence.
// +kubebuilder:validation:Optional
ShutdownOnIdle *string `json:"shutdownOnIdle,omitempty" tf:"shutdown_on_idle,omitempty"`
}
type DefaultConnectionObservation struct {
// The enabled access level for Client Access over RDP. Possible values are Private and Public.
ClientRdpAccess *string `json:"clientRdpAccess,omitempty" tf:"client_rdp_access,omitempty"`
// The enabled access level for Client Access over SSH. Possible values are Private and Public.
ClientSSHAccess *string `json:"clientSshAccess,omitempty" tf:"client_ssh_access,omitempty"`
// The enabled access level for Web Access over RDP. Possible values are Private and Public.
WebRdpAccess *string `json:"webRdpAccess,omitempty" tf:"web_rdp_access,omitempty"`
// The enabled access level for Web Access over SSH. Possible values are Private and Public.
WebSSHAccess *string `json:"webSshAccess,omitempty" tf:"web_ssh_access,omitempty"`
}
type DefaultConnectionParameters struct {
// The enabled access level for Client Access over RDP. Possible values are Private and Public.
// +kubebuilder:validation:Optional
ClientRdpAccess *string `json:"clientRdpAccess,omitempty" tf:"client_rdp_access,omitempty"`
// The enabled access level for Client Access over SSH. Possible values are Private and Public.
// +kubebuilder:validation:Optional
ClientSSHAccess *string `json:"clientSshAccess,omitempty" tf:"client_ssh_access,omitempty"`
// The enabled access level for Web Access over RDP. Possible values are Private and Public.
// +kubebuilder:validation:Optional
WebRdpAccess *string `json:"webRdpAccess,omitempty" tf:"web_rdp_access,omitempty"`
// The enabled access level for Web Access over SSH. Possible values are Private and Public.
// +kubebuilder:validation:Optional
WebSSHAccess *string `json:"webSshAccess,omitempty" tf:"web_ssh_access,omitempty"`
}
type LabServicePlanObservation struct {
// The allowed regions for the lab creator to use when creating labs using this Lab Service Plan. The allowed region's count must be between 1 and 28.
AllowedRegions []*string `json:"allowedRegions,omitempty" tf:"allowed_regions,omitempty"`
// A default_auto_shutdown block as defined below.
DefaultAutoShutdown []DefaultAutoShutdownObservation `json:"defaultAutoShutdown,omitempty" tf:"default_auto_shutdown,omitempty"`
// A default_connection block as defined below.
DefaultConnection []DefaultConnectionObservation `json:"defaultConnection,omitempty" tf:"default_connection,omitempty"`
// The resource ID of the Subnet for the Lab Service Plan network profile.
DefaultNetworkSubnetID *string `json:"defaultNetworkSubnetId,omitempty" tf:"default_network_subnet_id,omitempty"`
// The ID of the Lab Service Plan.
ID *string `json:"id,omitempty" tf:"id,omitempty"`
// The Azure Region where the Lab Service Plan should exist. Changing this forces a new resource to be created.
Location *string `json:"location,omitempty" tf:"location,omitempty"`
// The name of the Resource Group where the Lab Service Plan should exist. Changing this forces a new resource to be created.
ResourceGroupName *string `json:"resourceGroupName,omitempty" tf:"resource_group_name,omitempty"`
// The resource ID of the Shared Image Gallery attached to this Lab Service Plan. When saving a lab template virtual machine image it will be persisted in this gallery. The shared images from the gallery can be made available to use when creating new labs.
SharedGalleryID *string `json:"sharedGalleryId,omitempty" tf:"shared_gallery_id,omitempty"`
// A support block as defined below.
Support []SupportObservation `json:"support,omitempty" tf:"support,omitempty"`
// A mapping of tags which should be assigned to the Lab Service Plan.
Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"`
}
type LabServicePlanParameters struct {
// The allowed regions for the lab creator to use when creating labs using this Lab Service Plan. The allowed region's count must be between 1 and 28.
// +kubebuilder:validation:Optional
AllowedRegions []*string `json:"allowedRegions,omitempty" tf:"allowed_regions,omitempty"`
// A default_auto_shutdown block as defined below.
// +kubebuilder:validation:Optional
DefaultAutoShutdown []DefaultAutoShutdownParameters `json:"defaultAutoShutdown,omitempty" tf:"default_auto_shutdown,omitempty"`
// A default_connection block as defined below.
// +kubebuilder:validation:Optional
DefaultConnection []DefaultConnectionParameters `json:"defaultConnection,omitempty" tf:"default_connection,omitempty"`
// The resource ID of the Subnet for the Lab Service Plan network profile.
// +crossplane:generate:reference:type=github.com/upbound/provider-azure/apis/network/v1beta1.Subnet
// +crossplane:generate:reference:extractor=github.com/upbound/provider-azure/apis/rconfig.ExtractResourceID()
// +kubebuilder:validation:Optional
DefaultNetworkSubnetID *string `json:"defaultNetworkSubnetId,omitempty" tf:"default_network_subnet_id,omitempty"`
// Reference to a Subnet in network to populate defaultNetworkSubnetId.
// +kubebuilder:validation:Optional
DefaultNetworkSubnetIDRef *v1.Reference `json:"defaultNetworkSubnetIdRef,omitempty" tf:"-"`
// Selector for a Subnet in network to populate defaultNetworkSubnetId.
// +kubebuilder:validation:Optional
DefaultNetworkSubnetIDSelector *v1.Selector `json:"defaultNetworkSubnetIdSelector,omitempty" tf:"-"`
// The Azure Region where the Lab Service Plan should exist. Changing this forces a new resource to be created.
// +kubebuilder:validation:Optional
Location *string `json:"location,omitempty" tf:"location,omitempty"`
// The name of the Resource Group where the Lab Service Plan should exist. Changing this forces a new resource to be created.
// +crossplane:generate:reference:type=github.com/upbound/provider-azure/apis/azure/v1beta1.ResourceGroup
// +kubebuilder:validation:Optional
ResourceGroupName *string `json:"resourceGroupName,omitempty" tf:"resource_group_name,omitempty"`
// Reference to a ResourceGroup in azure to populate resourceGroupName.
// +kubebuilder:validation:Optional
ResourceGroupNameRef *v1.Reference `json:"resourceGroupNameRef,omitempty" tf:"-"`
// Selector for a ResourceGroup in azure to populate resourceGroupName.
// +kubebuilder:validation:Optional
ResourceGroupNameSelector *v1.Selector `json:"resourceGroupNameSelector,omitempty" tf:"-"`
// The resource ID of the Shared Image Gallery attached to this Lab Service Plan. When saving a lab template virtual machine image it will be persisted in this gallery. The shared images from the gallery can be made available to use when creating new labs.
// +kubebuilder:validation:Optional
SharedGalleryID *string `json:"sharedGalleryId,omitempty" tf:"shared_gallery_id,omitempty"`
// A support block as defined below.
// +kubebuilder:validation:Optional
Support []SupportParameters `json:"support,omitempty" tf:"support,omitempty"`
// A mapping of tags which should be assigned to the Lab Service Plan.
// +kubebuilder:validation:Optional
Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"`
}
type SupportObservation struct {
// The email address for the support contact.
Email *string `json:"email,omitempty" tf:"email,omitempty"`
// The instructions for users of the Lab Service Plan.
Instructions *string `json:"instructions,omitempty" tf:"instructions,omitempty"`
// The phone number for the support contact.
Phone *string `json:"phone,omitempty" tf:"phone,omitempty"`
// The web address for users of the Lab Service Plan.
URL *string `json:"url,omitempty" tf:"url,omitempty"`
}
type SupportParameters struct {
// The email address for the support contact.
// +kubebuilder:validation:Optional
Email *string `json:"email,omitempty" tf:"email,omitempty"`
// The instructions for users of the Lab Service Plan.
// +kubebuilder:validation:Optional
Instructions *string `json:"instructions,omitempty" tf:"instructions,omitempty"`
// The phone number for the support contact.
// +kubebuilder:validation:Optional
Phone *string `json:"phone,omitempty" tf:"phone,omitempty"`
// The web address for users of the Lab Service Plan.
// +kubebuilder:validation:Optional
URL *string `json:"url,omitempty" tf:"url,omitempty"`
}
// LabServicePlanSpec defines the desired state of LabServicePlan
type LabServicePlanSpec struct {
v1.ResourceSpec `json:",inline"`
ForProvider LabServicePlanParameters `json:"forProvider"`
}
// LabServicePlanStatus defines the observed state of LabServicePlan.
type LabServicePlanStatus struct {
v1.ResourceStatus `json:",inline"`
AtProvider LabServicePlanObservation `json:"atProvider,omitempty"`
}
// +kubebuilder:object:root=true
// LabServicePlan is the Schema for the LabServicePlans API. Manages a Lab Service Plan.
// +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,azure}
type LabServicePlan struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
// +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'ObserveOnly' || has(self.forProvider.allowedRegions)",message="allowedRegions is a required parameter"
// +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'ObserveOnly' || has(self.forProvider.location)",message="location is a required parameter"
Spec LabServicePlanSpec `json:"spec"`
Status LabServicePlanStatus `json:"status,omitempty"`
}
// +kubebuilder:object:root=true
// LabServicePlanList contains a list of LabServicePlans
type LabServicePlanList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []LabServicePlan `json:"items"`
}
// Repository type metadata.
var (
LabServicePlan_Kind = "LabServicePlan"
LabServicePlan_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: LabServicePlan_Kind}.String()
LabServicePlan_KindAPIVersion = LabServicePlan_Kind + "." + CRDGroupVersion.String()
LabServicePlan_GroupVersionKind = CRDGroupVersion.WithKind(LabServicePlan_Kind)
)
func init() {
SchemeBuilder.Register(&LabServicePlan{}, &LabServicePlanList{})
}