generated from crossplane/upjet-provider-template
-
Notifications
You must be signed in to change notification settings - Fork 15
/
zz_group_types.go
executable file
·459 lines (359 loc) · 32.7 KB
/
zz_group_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
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
// 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 DynamicMembershipInitParameters struct {
// Whether rule processing is "On" (true) or "Paused" (false).
Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"`
// The rule that determines membership of this group. For more information, see official documentation on membership rules syntax.
// Rule to determine members for a dynamic group. Required when `group_types` contains 'DynamicMembership'
Rule *string `json:"rule,omitempty" tf:"rule,omitempty"`
}
type DynamicMembershipObservation struct {
// Whether rule processing is "On" (true) or "Paused" (false).
Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"`
// The rule that determines membership of this group. For more information, see official documentation on membership rules syntax.
// Rule to determine members for a dynamic group. Required when `group_types` contains 'DynamicMembership'
Rule *string `json:"rule,omitempty" tf:"rule,omitempty"`
}
type DynamicMembershipParameters struct {
// Whether rule processing is "On" (true) or "Paused" (false).
// +kubebuilder:validation:Optional
Enabled *bool `json:"enabled" tf:"enabled,omitempty"`
// The rule that determines membership of this group. For more information, see official documentation on membership rules syntax.
// Rule to determine members for a dynamic group. Required when `group_types` contains 'DynamicMembership'
// +kubebuilder:validation:Optional
Rule *string `json:"rule" tf:"rule,omitempty"`
}
type GroupInitParameters struct {
// The object IDs of administrative units in which the group is a member. If specified, new groups will be created in the scope of the first administrative unit and added to the others. If empty, new groups will be created at the tenant level.
// The administrative unit IDs in which the group should be. If empty, the group will be created at the tenant level.
// +listType=set
AdministrativeUnitIds []*string `json:"administrativeUnitIds,omitempty" tf:"administrative_unit_ids,omitempty"`
// Indicates whether this group can be assigned to an Azure Active Directory role. Defaults to false. Can only be set to true for security-enabled groups. Changing this forces a new resource to be created.
// Indicates whether this group can be assigned to an Azure Active Directory role. This property can only be `true` for security-enabled groups.
AssignableToRole *bool `json:"assignableToRole,omitempty" tf:"assignable_to_role,omitempty"`
// Indicates whether new members added to the group will be auto-subscribed to receive email notifications. Can only be set for Unified groups.
// Indicates whether new members added to the group will be auto-subscribed to receive email notifications.
AutoSubscribeNewMembers *bool `json:"autoSubscribeNewMembers,omitempty" tf:"auto_subscribe_new_members,omitempty"`
// A set of behaviors for a Microsoft 365 group. Possible values are AllowOnlyMembersToPost, HideGroupInOutlook, SubscribeMembersToCalendarEventsDisabled, SubscribeNewGroupMembers and WelcomeEmailDisabled. See official documentation for more details. Changing this forces a new resource to be created.
// The group behaviours for a Microsoft 365 group
// +listType=set
Behaviors []*string `json:"behaviors,omitempty" tf:"behaviors,omitempty"`
// The description for the group.
// The description for the group
Description *string `json:"description,omitempty" tf:"description,omitempty"`
// The display name for the group.
// The display name for the group
DisplayName *string `json:"displayName,omitempty" tf:"display_name,omitempty"`
// A dynamic_membership block as documented below. Required when types contains DynamicMembership. Cannot be used with the members property.
// An optional block to configure dynamic membership for the group. Cannot be used with `members`
DynamicMembership []DynamicMembershipInitParameters `json:"dynamicMembership,omitempty" tf:"dynamic_membership,omitempty"`
// Indicates whether people external to the organization can send messages to the group. Can only be set for Unified groups.
// Indicates whether people external to the organization can send messages to the group.
ExternalSendersAllowed *bool `json:"externalSendersAllowed,omitempty" tf:"external_senders_allowed,omitempty"`
// Indicates whether the group is displayed in certain parts of the Outlook user interface: in the Address Book, in address lists for selecting message recipients, and in the Browse Groups dialog for searching groups. Can only be set for Unified groups.
// Indicates whether the group is displayed in certain parts of the Outlook user interface: in the Address Book, in address lists for selecting message recipients, and in the Browse Groups dialog for searching groups.
HideFromAddressLists *bool `json:"hideFromAddressLists,omitempty" tf:"hide_from_address_lists,omitempty"`
// Indicates whether the group is displayed in Outlook clients, such as Outlook for Windows and Outlook on the web. Can only be set for Unified groups.
// Indicates whether the group is displayed in Outlook clients, such as Outlook for Windows and Outlook on the web.
HideFromOutlookClients *bool `json:"hideFromOutlookClients,omitempty" tf:"hide_from_outlook_clients,omitempty"`
// Whether the group is a mail enabled, with a shared group mailbox. At least one of mail_enabled or security_enabled must be specified. Only Microsoft 365 groups can be mail enabled (see the types property).
// Whether the group is a mail enabled, with a shared group mailbox. At least one of `mail_enabled` or `security_enabled` must be specified. A group can be mail enabled _and_ security enabled
MailEnabled *bool `json:"mailEnabled,omitempty" tf:"mail_enabled,omitempty"`
// The mail alias for the group, unique in the organisation. Required for mail-enabled groups. Changing this forces a new resource to be created.
// The mail alias for the group, unique in the organisation
MailNickname *string `json:"mailNickname,omitempty" tf:"mail_nickname,omitempty"`
// A set of members who should be present in this group. Supported object types are Users, Groups or Service Principals. Cannot be used with the dynamic_membership block.
// A set of members who should be present in this group. Supported object types are Users, Groups or Service Principals
// +listType=set
Members []*string `json:"members,omitempty" tf:"members,omitempty"`
// The on-premises group type that the AAD group will be written as, when writeback is enabled. Possible values are UniversalDistributionGroup, UniversalMailEnabledSecurityGroup, or UniversalSecurityGroup.
// Indicates the target on-premise group type the group will be written back as
OnpremisesGroupType *string `json:"onpremisesGroupType,omitempty" tf:"onpremises_group_type,omitempty"`
// A set of object IDs of principals that will be granted ownership of the group. Supported object types are users or service principals. Groups cannot be created with no owners or have all their owners removed.
// A set of owners who own this group. Supported object types are Users or Service Principals
// +listType=set
Owners []*string `json:"owners,omitempty" tf:"owners,omitempty"`
// If true, will return an error if an existing group is found with the same name. Defaults to false.
// If `true`, will return an error if an existing group is found with the same name
PreventDuplicateNames *bool `json:"preventDuplicateNames,omitempty" tf:"prevent_duplicate_names,omitempty"`
// A set of provisioning options for a Microsoft 365 group. The only supported value is Team. See official documentation for details. Changing this forces a new resource to be created.
// The group provisioning options for a Microsoft 365 group
// +listType=set
ProvisioningOptions []*string `json:"provisioningOptions,omitempty" tf:"provisioning_options,omitempty"`
// Whether the group is a security group for controlling access to in-app resources. At least one of security_enabled or mail_enabled must be specified. A Microsoft 365 group can be security enabled and mail enabled (see the types property).
// Whether the group is a security group for controlling access to in-app resources. At least one of `security_enabled` or `mail_enabled` must be specified. A group can be security enabled _and_ mail enabled
SecurityEnabled *bool `json:"securityEnabled,omitempty" tf:"security_enabled,omitempty"`
// The colour theme for a Microsoft 365 group. Possible values are Blue, Green, Orange, Pink, Purple, Red or Teal. By default, no theme is set.
// The colour theme for a Microsoft 365 group
Theme *string `json:"theme,omitempty" tf:"theme,omitempty"`
// A set of group types to configure for the group. Supported values are DynamicMembership, which denotes a group with dynamic membership, and Unified, which specifies a Microsoft 365 group. Required when mail_enabled is true. Changing this forces a new resource to be created.
// A set of group types to configure for the group. `Unified` specifies a Microsoft 365 group. Required when `mail_enabled` is true
// +listType=set
Types []*string `json:"types,omitempty" tf:"types,omitempty"`
// The group join policy and group content visibility. Possible values are Private, Public, or Hiddenmembership. Only Microsoft 365 groups can have Hiddenmembership visibility and this value must be set when the group is created. By default, security groups will receive Private visibility and Microsoft 365 groups will receive Public visibility.
// Specifies the group join policy and group content visibility
Visibility *string `json:"visibility,omitempty" tf:"visibility,omitempty"`
// Whether the group will be written back to the configured on-premises Active Directory when Azure AD Connect is used.
// Whether this group should be synced from Azure AD to the on-premises directory when Azure AD Connect is used
WritebackEnabled *bool `json:"writebackEnabled,omitempty" tf:"writeback_enabled,omitempty"`
}
type GroupObservation struct {
// The object IDs of administrative units in which the group is a member. If specified, new groups will be created in the scope of the first administrative unit and added to the others. If empty, new groups will be created at the tenant level.
// The administrative unit IDs in which the group should be. If empty, the group will be created at the tenant level.
// +listType=set
AdministrativeUnitIds []*string `json:"administrativeUnitIds,omitempty" tf:"administrative_unit_ids,omitempty"`
// Indicates whether this group can be assigned to an Azure Active Directory role. Defaults to false. Can only be set to true for security-enabled groups. Changing this forces a new resource to be created.
// Indicates whether this group can be assigned to an Azure Active Directory role. This property can only be `true` for security-enabled groups.
AssignableToRole *bool `json:"assignableToRole,omitempty" tf:"assignable_to_role,omitempty"`
// Indicates whether new members added to the group will be auto-subscribed to receive email notifications. Can only be set for Unified groups.
// Indicates whether new members added to the group will be auto-subscribed to receive email notifications.
AutoSubscribeNewMembers *bool `json:"autoSubscribeNewMembers,omitempty" tf:"auto_subscribe_new_members,omitempty"`
// A set of behaviors for a Microsoft 365 group. Possible values are AllowOnlyMembersToPost, HideGroupInOutlook, SubscribeMembersToCalendarEventsDisabled, SubscribeNewGroupMembers and WelcomeEmailDisabled. See official documentation for more details. Changing this forces a new resource to be created.
// The group behaviours for a Microsoft 365 group
// +listType=set
Behaviors []*string `json:"behaviors,omitempty" tf:"behaviors,omitempty"`
// The description for the group.
// The description for the group
Description *string `json:"description,omitempty" tf:"description,omitempty"`
// The display name for the group.
// The display name for the group
DisplayName *string `json:"displayName,omitempty" tf:"display_name,omitempty"`
// A dynamic_membership block as documented below. Required when types contains DynamicMembership. Cannot be used with the members property.
// An optional block to configure dynamic membership for the group. Cannot be used with `members`
DynamicMembership []DynamicMembershipObservation `json:"dynamicMembership,omitempty" tf:"dynamic_membership,omitempty"`
// Indicates whether people external to the organization can send messages to the group. Can only be set for Unified groups.
// Indicates whether people external to the organization can send messages to the group.
ExternalSendersAllowed *bool `json:"externalSendersAllowed,omitempty" tf:"external_senders_allowed,omitempty"`
// Indicates whether the group is displayed in certain parts of the Outlook user interface: in the Address Book, in address lists for selecting message recipients, and in the Browse Groups dialog for searching groups. Can only be set for Unified groups.
// Indicates whether the group is displayed in certain parts of the Outlook user interface: in the Address Book, in address lists for selecting message recipients, and in the Browse Groups dialog for searching groups.
HideFromAddressLists *bool `json:"hideFromAddressLists,omitempty" tf:"hide_from_address_lists,omitempty"`
// Indicates whether the group is displayed in Outlook clients, such as Outlook for Windows and Outlook on the web. Can only be set for Unified groups.
// Indicates whether the group is displayed in Outlook clients, such as Outlook for Windows and Outlook on the web.
HideFromOutlookClients *bool `json:"hideFromOutlookClients,omitempty" tf:"hide_from_outlook_clients,omitempty"`
ID *string `json:"id,omitempty" tf:"id,omitempty"`
// The SMTP address for the group.
// The SMTP address for the group
Mail *string `json:"mail,omitempty" tf:"mail,omitempty"`
// Whether the group is a mail enabled, with a shared group mailbox. At least one of mail_enabled or security_enabled must be specified. Only Microsoft 365 groups can be mail enabled (see the types property).
// Whether the group is a mail enabled, with a shared group mailbox. At least one of `mail_enabled` or `security_enabled` must be specified. A group can be mail enabled _and_ security enabled
MailEnabled *bool `json:"mailEnabled,omitempty" tf:"mail_enabled,omitempty"`
// The mail alias for the group, unique in the organisation. Required for mail-enabled groups. Changing this forces a new resource to be created.
// The mail alias for the group, unique in the organisation
MailNickname *string `json:"mailNickname,omitempty" tf:"mail_nickname,omitempty"`
// A set of members who should be present in this group. Supported object types are Users, Groups or Service Principals. Cannot be used with the dynamic_membership block.
// A set of members who should be present in this group. Supported object types are Users, Groups or Service Principals
// +listType=set
Members []*string `json:"members,omitempty" tf:"members,omitempty"`
// The object ID of the group.
// The object ID of the group
ObjectID *string `json:"objectId,omitempty" tf:"object_id,omitempty"`
// The on-premises FQDN, also called dnsDomainName, synchronised from the on-premises directory when Azure AD Connect is used.
// The on-premises FQDN, also called dnsDomainName, synchronized from the on-premises directory when Azure AD Connect is used
OnpremisesDomainName *string `json:"onpremisesDomainName,omitempty" tf:"onpremises_domain_name,omitempty"`
// The on-premises group type that the AAD group will be written as, when writeback is enabled. Possible values are UniversalDistributionGroup, UniversalMailEnabledSecurityGroup, or UniversalSecurityGroup.
// Indicates the target on-premise group type the group will be written back as
OnpremisesGroupType *string `json:"onpremisesGroupType,omitempty" tf:"onpremises_group_type,omitempty"`
// The on-premises NetBIOS name, synchronised from the on-premises directory when Azure AD Connect is used.
// The on-premises NetBIOS name, synchronized from the on-premises directory when Azure AD Connect is used
OnpremisesNetbiosName *string `json:"onpremisesNetbiosName,omitempty" tf:"onpremises_netbios_name,omitempty"`
// The on-premises SAM account name, synchronised from the on-premises directory when Azure AD Connect is used.
// The on-premises SAM account name, synchronized from the on-premises directory when Azure AD Connect is used
OnpremisesSamAccountName *string `json:"onpremisesSamAccountName,omitempty" tf:"onpremises_sam_account_name,omitempty"`
// The on-premises security identifier (SID), synchronised from the on-premises directory when Azure AD Connect is used.
// The on-premises security identifier (SID), synchronized from the on-premises directory when Azure AD Connect is used
OnpremisesSecurityIdentifier *string `json:"onpremisesSecurityIdentifier,omitempty" tf:"onpremises_security_identifier,omitempty"`
// Whether this group is synchronised from an on-premises directory (true), no longer synchronised (false), or has never been synchronised (null).
// Whether this group is synchronized from an on-premises directory (true), no longer synchronized (false), or has never been synchronized (null)
OnpremisesSyncEnabled *bool `json:"onpremisesSyncEnabled,omitempty" tf:"onpremises_sync_enabled,omitempty"`
// A set of object IDs of principals that will be granted ownership of the group. Supported object types are users or service principals. Groups cannot be created with no owners or have all their owners removed.
// A set of owners who own this group. Supported object types are Users or Service Principals
// +listType=set
Owners []*string `json:"owners,omitempty" tf:"owners,omitempty"`
// The preferred language for a Microsoft 365 group, in ISO 639-1 notation.
// The preferred language for a Microsoft 365 group, in ISO 639-1 notation
PreferredLanguage *string `json:"preferredLanguage,omitempty" tf:"preferred_language,omitempty"`
// If true, will return an error if an existing group is found with the same name. Defaults to false.
// If `true`, will return an error if an existing group is found with the same name
PreventDuplicateNames *bool `json:"preventDuplicateNames,omitempty" tf:"prevent_duplicate_names,omitempty"`
// A set of provisioning options for a Microsoft 365 group. The only supported value is Team. See official documentation for details. Changing this forces a new resource to be created.
// The group provisioning options for a Microsoft 365 group
// +listType=set
ProvisioningOptions []*string `json:"provisioningOptions,omitempty" tf:"provisioning_options,omitempty"`
// List of email addresses for the group that direct to the same group mailbox.
// Email addresses for the group that direct to the same group mailbox
ProxyAddresses []*string `json:"proxyAddresses,omitempty" tf:"proxy_addresses,omitempty"`
// Whether the group is a security group for controlling access to in-app resources. At least one of security_enabled or mail_enabled must be specified. A Microsoft 365 group can be security enabled and mail enabled (see the types property).
// Whether the group is a security group for controlling access to in-app resources. At least one of `security_enabled` or `mail_enabled` must be specified. A group can be security enabled _and_ mail enabled
SecurityEnabled *bool `json:"securityEnabled,omitempty" tf:"security_enabled,omitempty"`
// The colour theme for a Microsoft 365 group. Possible values are Blue, Green, Orange, Pink, Purple, Red or Teal. By default, no theme is set.
// The colour theme for a Microsoft 365 group
Theme *string `json:"theme,omitempty" tf:"theme,omitempty"`
// A set of group types to configure for the group. Supported values are DynamicMembership, which denotes a group with dynamic membership, and Unified, which specifies a Microsoft 365 group. Required when mail_enabled is true. Changing this forces a new resource to be created.
// A set of group types to configure for the group. `Unified` specifies a Microsoft 365 group. Required when `mail_enabled` is true
// +listType=set
Types []*string `json:"types,omitempty" tf:"types,omitempty"`
// The group join policy and group content visibility. Possible values are Private, Public, or Hiddenmembership. Only Microsoft 365 groups can have Hiddenmembership visibility and this value must be set when the group is created. By default, security groups will receive Private visibility and Microsoft 365 groups will receive Public visibility.
// Specifies the group join policy and group content visibility
Visibility *string `json:"visibility,omitempty" tf:"visibility,omitempty"`
// Whether the group will be written back to the configured on-premises Active Directory when Azure AD Connect is used.
// Whether this group should be synced from Azure AD to the on-premises directory when Azure AD Connect is used
WritebackEnabled *bool `json:"writebackEnabled,omitempty" tf:"writeback_enabled,omitempty"`
}
type GroupParameters struct {
// The object IDs of administrative units in which the group is a member. If specified, new groups will be created in the scope of the first administrative unit and added to the others. If empty, new groups will be created at the tenant level.
// The administrative unit IDs in which the group should be. If empty, the group will be created at the tenant level.
// +kubebuilder:validation:Optional
// +listType=set
AdministrativeUnitIds []*string `json:"administrativeUnitIds,omitempty" tf:"administrative_unit_ids,omitempty"`
// Indicates whether this group can be assigned to an Azure Active Directory role. Defaults to false. Can only be set to true for security-enabled groups. Changing this forces a new resource to be created.
// Indicates whether this group can be assigned to an Azure Active Directory role. This property can only be `true` for security-enabled groups.
// +kubebuilder:validation:Optional
AssignableToRole *bool `json:"assignableToRole,omitempty" tf:"assignable_to_role,omitempty"`
// Indicates whether new members added to the group will be auto-subscribed to receive email notifications. Can only be set for Unified groups.
// Indicates whether new members added to the group will be auto-subscribed to receive email notifications.
// +kubebuilder:validation:Optional
AutoSubscribeNewMembers *bool `json:"autoSubscribeNewMembers,omitempty" tf:"auto_subscribe_new_members,omitempty"`
// A set of behaviors for a Microsoft 365 group. Possible values are AllowOnlyMembersToPost, HideGroupInOutlook, SubscribeMembersToCalendarEventsDisabled, SubscribeNewGroupMembers and WelcomeEmailDisabled. See official documentation for more details. Changing this forces a new resource to be created.
// The group behaviours for a Microsoft 365 group
// +kubebuilder:validation:Optional
// +listType=set
Behaviors []*string `json:"behaviors,omitempty" tf:"behaviors,omitempty"`
// The description for the group.
// The description for the group
// +kubebuilder:validation:Optional
Description *string `json:"description,omitempty" tf:"description,omitempty"`
// The display name for the group.
// The display name for the group
// +kubebuilder:validation:Optional
DisplayName *string `json:"displayName,omitempty" tf:"display_name,omitempty"`
// A dynamic_membership block as documented below. Required when types contains DynamicMembership. Cannot be used with the members property.
// An optional block to configure dynamic membership for the group. Cannot be used with `members`
// +kubebuilder:validation:Optional
DynamicMembership []DynamicMembershipParameters `json:"dynamicMembership,omitempty" tf:"dynamic_membership,omitempty"`
// Indicates whether people external to the organization can send messages to the group. Can only be set for Unified groups.
// Indicates whether people external to the organization can send messages to the group.
// +kubebuilder:validation:Optional
ExternalSendersAllowed *bool `json:"externalSendersAllowed,omitempty" tf:"external_senders_allowed,omitempty"`
// Indicates whether the group is displayed in certain parts of the Outlook user interface: in the Address Book, in address lists for selecting message recipients, and in the Browse Groups dialog for searching groups. Can only be set for Unified groups.
// Indicates whether the group is displayed in certain parts of the Outlook user interface: in the Address Book, in address lists for selecting message recipients, and in the Browse Groups dialog for searching groups.
// +kubebuilder:validation:Optional
HideFromAddressLists *bool `json:"hideFromAddressLists,omitempty" tf:"hide_from_address_lists,omitempty"`
// Indicates whether the group is displayed in Outlook clients, such as Outlook for Windows and Outlook on the web. Can only be set for Unified groups.
// Indicates whether the group is displayed in Outlook clients, such as Outlook for Windows and Outlook on the web.
// +kubebuilder:validation:Optional
HideFromOutlookClients *bool `json:"hideFromOutlookClients,omitempty" tf:"hide_from_outlook_clients,omitempty"`
// Whether the group is a mail enabled, with a shared group mailbox. At least one of mail_enabled or security_enabled must be specified. Only Microsoft 365 groups can be mail enabled (see the types property).
// Whether the group is a mail enabled, with a shared group mailbox. At least one of `mail_enabled` or `security_enabled` must be specified. A group can be mail enabled _and_ security enabled
// +kubebuilder:validation:Optional
MailEnabled *bool `json:"mailEnabled,omitempty" tf:"mail_enabled,omitempty"`
// The mail alias for the group, unique in the organisation. Required for mail-enabled groups. Changing this forces a new resource to be created.
// The mail alias for the group, unique in the organisation
// +kubebuilder:validation:Optional
MailNickname *string `json:"mailNickname,omitempty" tf:"mail_nickname,omitempty"`
// A set of members who should be present in this group. Supported object types are Users, Groups or Service Principals. Cannot be used with the dynamic_membership block.
// A set of members who should be present in this group. Supported object types are Users, Groups or Service Principals
// +kubebuilder:validation:Optional
// +listType=set
Members []*string `json:"members,omitempty" tf:"members,omitempty"`
// The on-premises group type that the AAD group will be written as, when writeback is enabled. Possible values are UniversalDistributionGroup, UniversalMailEnabledSecurityGroup, or UniversalSecurityGroup.
// Indicates the target on-premise group type the group will be written back as
// +kubebuilder:validation:Optional
OnpremisesGroupType *string `json:"onpremisesGroupType,omitempty" tf:"onpremises_group_type,omitempty"`
// A set of object IDs of principals that will be granted ownership of the group. Supported object types are users or service principals. Groups cannot be created with no owners or have all their owners removed.
// A set of owners who own this group. Supported object types are Users or Service Principals
// +kubebuilder:validation:Optional
// +listType=set
Owners []*string `json:"owners,omitempty" tf:"owners,omitempty"`
// If true, will return an error if an existing group is found with the same name. Defaults to false.
// If `true`, will return an error if an existing group is found with the same name
// +kubebuilder:validation:Optional
PreventDuplicateNames *bool `json:"preventDuplicateNames,omitempty" tf:"prevent_duplicate_names,omitempty"`
// A set of provisioning options for a Microsoft 365 group. The only supported value is Team. See official documentation for details. Changing this forces a new resource to be created.
// The group provisioning options for a Microsoft 365 group
// +kubebuilder:validation:Optional
// +listType=set
ProvisioningOptions []*string `json:"provisioningOptions,omitempty" tf:"provisioning_options,omitempty"`
// Whether the group is a security group for controlling access to in-app resources. At least one of security_enabled or mail_enabled must be specified. A Microsoft 365 group can be security enabled and mail enabled (see the types property).
// Whether the group is a security group for controlling access to in-app resources. At least one of `security_enabled` or `mail_enabled` must be specified. A group can be security enabled _and_ mail enabled
// +kubebuilder:validation:Optional
SecurityEnabled *bool `json:"securityEnabled,omitempty" tf:"security_enabled,omitempty"`
// The colour theme for a Microsoft 365 group. Possible values are Blue, Green, Orange, Pink, Purple, Red or Teal. By default, no theme is set.
// The colour theme for a Microsoft 365 group
// +kubebuilder:validation:Optional
Theme *string `json:"theme,omitempty" tf:"theme,omitempty"`
// A set of group types to configure for the group. Supported values are DynamicMembership, which denotes a group with dynamic membership, and Unified, which specifies a Microsoft 365 group. Required when mail_enabled is true. Changing this forces a new resource to be created.
// A set of group types to configure for the group. `Unified` specifies a Microsoft 365 group. Required when `mail_enabled` is true
// +kubebuilder:validation:Optional
// +listType=set
Types []*string `json:"types,omitempty" tf:"types,omitempty"`
// The group join policy and group content visibility. Possible values are Private, Public, or Hiddenmembership. Only Microsoft 365 groups can have Hiddenmembership visibility and this value must be set when the group is created. By default, security groups will receive Private visibility and Microsoft 365 groups will receive Public visibility.
// Specifies the group join policy and group content visibility
// +kubebuilder:validation:Optional
Visibility *string `json:"visibility,omitempty" tf:"visibility,omitempty"`
// Whether the group will be written back to the configured on-premises Active Directory when Azure AD Connect is used.
// Whether this group should be synced from Azure AD to the on-premises directory when Azure AD Connect is used
// +kubebuilder:validation:Optional
WritebackEnabled *bool `json:"writebackEnabled,omitempty" tf:"writeback_enabled,omitempty"`
}
// GroupSpec defines the desired state of Group
type GroupSpec struct {
v1.ResourceSpec `json:",inline"`
ForProvider GroupParameters `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 GroupInitParameters `json:"initProvider,omitempty"`
}
// GroupStatus defines the observed state of Group.
type GroupStatus struct {
v1.ResourceStatus `json:",inline"`
AtProvider GroupObservation `json:"atProvider,omitempty"`
}
// +kubebuilder:object:root=true
// +kubebuilder:subresource:status
// +kubebuilder:storageversion
// Group is the Schema for the Groups API.
// +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,azuread}
type Group struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.displayName) || (has(self.initProvider) && has(self.initProvider.displayName))",message="spec.forProvider.displayName is a required parameter"
Spec GroupSpec `json:"spec"`
Status GroupStatus `json:"status,omitempty"`
}
// +kubebuilder:object:root=true
// GroupList contains a list of Groups
type GroupList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []Group `json:"items"`
}
// Repository type metadata.
var (
Group_Kind = "Group"
Group_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: Group_Kind}.String()
Group_KindAPIVersion = Group_Kind + "." + CRDGroupVersion.String()
Group_GroupVersionKind = CRDGroupVersion.WithKind(Group_Kind)
)
func init() {
SchemeBuilder.Register(&Group{}, &GroupList{})
}