pulumi-azuread 5.48.0a1706744699__py3-none-any.whl → 6.8.0a1766208344__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of pulumi-azuread might be problematic. Click here for more details.

Files changed (87) hide show
  1. pulumi_azuread/__init__.py +48 -1
  2. pulumi_azuread/_inputs.py +3803 -919
  3. pulumi_azuread/_utilities.py +52 -12
  4. pulumi_azuread/access_package.py +84 -78
  5. pulumi_azuread/access_package_assignment_policy.py +202 -196
  6. pulumi_azuread/access_package_catalog.py +82 -76
  7. pulumi_azuread/access_package_catalog_role_assignment.py +73 -67
  8. pulumi_azuread/access_package_resource_catalog_association.py +73 -67
  9. pulumi_azuread/access_package_resource_package_association.py +79 -73
  10. pulumi_azuread/administrative_unit.py +120 -100
  11. pulumi_azuread/administrative_unit_member.py +66 -50
  12. pulumi_azuread/administrative_unit_role_member.py +75 -69
  13. pulumi_azuread/app_role_assignment.py +164 -264
  14. pulumi_azuread/application.py +766 -692
  15. pulumi_azuread/application_api_access.py +84 -80
  16. pulumi_azuread/application_app_role.py +120 -116
  17. pulumi_azuread/application_certificate.py +349 -211
  18. pulumi_azuread/application_fallback_public_client.py +50 -44
  19. pulumi_azuread/application_federated_identity_credential.py +142 -197
  20. pulumi_azuread/application_from_template.py +90 -84
  21. pulumi_azuread/application_identifier_uri.py +56 -52
  22. pulumi_azuread/application_known_clients.py +50 -44
  23. pulumi_azuread/application_optional_claims.py +87 -81
  24. pulumi_azuread/application_owner.py +76 -42
  25. pulumi_azuread/application_password.py +159 -205
  26. pulumi_azuread/application_permission_scope.py +160 -156
  27. pulumi_azuread/application_pre_authorized.py +120 -236
  28. pulumi_azuread/application_redirect_uris.py +75 -69
  29. pulumi_azuread/application_registration.py +315 -309
  30. pulumi_azuread/authentication_strength_policy.py +73 -67
  31. pulumi_azuread/claims_mapping_policy.py +48 -42
  32. pulumi_azuread/conditional_access_policy.py +248 -232
  33. pulumi_azuread/config/__init__.py +2 -1
  34. pulumi_azuread/config/__init__.pyi +23 -17
  35. pulumi_azuread/config/vars.py +47 -37
  36. pulumi_azuread/custom_directory_role.py +128 -122
  37. pulumi_azuread/directory_role.py +60 -54
  38. pulumi_azuread/directory_role_assignment.py +194 -181
  39. pulumi_azuread/directory_role_eligibility_schedule_request.py +86 -80
  40. pulumi_azuread/directory_role_member.py +54 -48
  41. pulumi_azuread/get_access_package.py +45 -31
  42. pulumi_azuread/get_access_package_catalog.py +40 -27
  43. pulumi_azuread/get_access_package_catalog_role.py +39 -25
  44. pulumi_azuread/get_administrative_unit.py +42 -27
  45. pulumi_azuread/get_application.py +135 -94
  46. pulumi_azuread/get_application_published_app_ids.py +42 -47
  47. pulumi_azuread/get_application_template.py +49 -33
  48. pulumi_azuread/get_client_config.py +24 -15
  49. pulumi_azuread/get_directory_object.py +32 -21
  50. pulumi_azuread/get_directory_role_templates.py +20 -12
  51. pulumi_azuread/get_directory_roles.py +23 -14
  52. pulumi_azuread/get_domains.py +65 -46
  53. pulumi_azuread/get_group.py +147 -88
  54. pulumi_azuread/get_group_role_management_policy.py +178 -0
  55. pulumi_azuread/get_groups.py +71 -51
  56. pulumi_azuread/get_named_location.py +47 -22
  57. pulumi_azuread/get_service_principal.py +108 -90
  58. pulumi_azuread/get_service_principals.py +60 -64
  59. pulumi_azuread/get_user.py +186 -118
  60. pulumi_azuread/get_users.py +96 -53
  61. pulumi_azuread/group.py +622 -464
  62. pulumi_azuread/group_member.py +56 -50
  63. pulumi_azuread/group_role_management_policy.py +544 -0
  64. pulumi_azuread/group_without_members.py +1610 -0
  65. pulumi_azuread/invitation.py +126 -120
  66. pulumi_azuread/named_location.py +90 -76
  67. pulumi_azuread/outputs.py +2844 -1308
  68. pulumi_azuread/privileged_access_group_assignment_schedule.py +695 -0
  69. pulumi_azuread/privileged_access_group_eligibility_schedule.py +695 -0
  70. pulumi_azuread/provider.py +292 -246
  71. pulumi_azuread/pulumi-plugin.json +2 -1
  72. pulumi_azuread/service_principal.py +400 -461
  73. pulumi_azuread/service_principal_certificate.py +230 -145
  74. pulumi_azuread/service_principal_claims_mapping_policy_assignment.py +53 -47
  75. pulumi_azuread/service_principal_delegated_permission_grant.py +146 -140
  76. pulumi_azuread/service_principal_password.py +156 -141
  77. pulumi_azuread/service_principal_token_signing_certificate.py +119 -124
  78. pulumi_azuread/synchronization_job.py +105 -111
  79. pulumi_azuread/synchronization_job_provision_on_demand.py +396 -0
  80. pulumi_azuread/synchronization_secret.py +64 -70
  81. pulumi_azuread/user.py +776 -730
  82. pulumi_azuread/user_flow_attribute.py +76 -70
  83. {pulumi_azuread-5.48.0a1706744699.dist-info → pulumi_azuread-6.8.0a1766208344.dist-info}/METADATA +21 -20
  84. pulumi_azuread-6.8.0a1766208344.dist-info/RECORD +87 -0
  85. {pulumi_azuread-5.48.0a1706744699.dist-info → pulumi_azuread-6.8.0a1766208344.dist-info}/WHEEL +1 -1
  86. pulumi_azuread-5.48.0a1706744699.dist-info/RECORD +0 -81
  87. {pulumi_azuread-5.48.0a1706744699.dist-info → pulumi_azuread-6.8.0a1766208344.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,1610 @@
1
+ # coding=utf-8
2
+ # *** WARNING: this file was generated by pulumi-language-python. ***
3
+ # *** Do not edit by hand unless you're certain you know what you are doing! ***
4
+
5
+ import builtins as _builtins
6
+ import warnings
7
+ import sys
8
+ import pulumi
9
+ import pulumi.runtime
10
+ from typing import Any, Mapping, Optional, Sequence, Union, overload
11
+ if sys.version_info >= (3, 11):
12
+ from typing import NotRequired, TypedDict, TypeAlias
13
+ else:
14
+ from typing_extensions import NotRequired, TypedDict, TypeAlias
15
+ from . import _utilities
16
+ from . import outputs
17
+ from ._inputs import *
18
+
19
+ __all__ = ['GroupWithoutMembersArgs', 'GroupWithoutMembers']
20
+
21
+ @pulumi.input_type
22
+ class GroupWithoutMembersArgs:
23
+ def __init__(__self__, *,
24
+ display_name: pulumi.Input[_builtins.str],
25
+ administrative_unit_ids: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
26
+ assignable_to_role: Optional[pulumi.Input[_builtins.bool]] = None,
27
+ auto_subscribe_new_members: Optional[pulumi.Input[_builtins.bool]] = None,
28
+ behaviors: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
29
+ description: Optional[pulumi.Input[_builtins.str]] = None,
30
+ dynamic_membership: Optional[pulumi.Input['GroupWithoutMembersDynamicMembershipArgs']] = None,
31
+ external_senders_allowed: Optional[pulumi.Input[_builtins.bool]] = None,
32
+ hide_from_address_lists: Optional[pulumi.Input[_builtins.bool]] = None,
33
+ hide_from_outlook_clients: Optional[pulumi.Input[_builtins.bool]] = None,
34
+ mail_enabled: Optional[pulumi.Input[_builtins.bool]] = None,
35
+ mail_nickname: Optional[pulumi.Input[_builtins.str]] = None,
36
+ onpremises_group_type: Optional[pulumi.Input[_builtins.str]] = None,
37
+ owners: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
38
+ prevent_duplicate_names: Optional[pulumi.Input[_builtins.bool]] = None,
39
+ provisioning_options: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
40
+ security_enabled: Optional[pulumi.Input[_builtins.bool]] = None,
41
+ theme: Optional[pulumi.Input[_builtins.str]] = None,
42
+ types: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
43
+ visibility: Optional[pulumi.Input[_builtins.str]] = None,
44
+ writeback_enabled: Optional[pulumi.Input[_builtins.bool]] = None):
45
+ """
46
+ The set of arguments for constructing a GroupWithoutMembers resource.
47
+ :param pulumi.Input[_builtins.str] display_name: The display name for the group.
48
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] administrative_unit_ids: 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.
49
+
50
+ > **Caution** When using the AdministrativeUnitMember resource, or the `members` property of the AdministrativeUnit resource, to manage Administrative Unit membership for a group, you will need to use an `ignore_changes = [administrative_unit_ids]` lifecycle meta argument for the `Group` resource, in order to avoid a persistent diff.
51
+ :param pulumi.Input[_builtins.bool] assignable_to_role: 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.
52
+ :param pulumi.Input[_builtins.bool] auto_subscribe_new_members: Indicates whether new members added to the group will be auto-subscribed to receive email notifications. Can only be set for Unified groups.
53
+
54
+ > **Known Permissions Issue** The `auto_subscribe_new_members` property can only be set when authenticating as a Member user of the tenant and _not_ when authenticating as a Guest user or as a service principal. Please see the [Microsoft Graph Known Issues](https://docs.microsoft.com/en-us/graph/known-issues#groups) documentation.
55
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] behaviors: A set of behaviors for a Microsoft 365 group. Possible values are `AllowOnlyMembersToPost`, `HideGroupInOutlook`, `SkipExchangeInstantOn`, `SubscribeMembersToCalendarEventsDisabled`, `SubscribeNewGroupMembers` and `WelcomeEmailDisabled`. See [official documentation](https://docs.microsoft.com/en-us/graph/group-set-options) for more details. Changing this forces a new resource to be created.
56
+ :param pulumi.Input[_builtins.str] description: The description for the group.
57
+ :param pulumi.Input['GroupWithoutMembersDynamicMembershipArgs'] dynamic_membership: A `dynamic_membership` block as documented below. Required when `types` contains `DynamicMembership`. Cannot be used with the `members` property.
58
+ :param pulumi.Input[_builtins.bool] external_senders_allowed: Indicates whether people external to the organization can send messages to the group. Can only be set for Unified groups.
59
+
60
+ > **Known Permissions Issue** The `external_senders_allowed` property can only be set when authenticating as a Member user of the tenant and _not_ when authenticating as a Guest user or as a service principal. Please see the [Microsoft Graph Known Issues](https://docs.microsoft.com/en-us/graph/known-issues#groups) documentation.
61
+ :param pulumi.Input[_builtins.bool] hide_from_address_lists: 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.
62
+
63
+ > **Known Permissions Issue** The `hide_from_address_lists` property can only be set when authenticating as a Member user of the tenant and _not_ when authenticating as a Guest user or as a service principal. Please see the [Microsoft Graph Known Issues](https://docs.microsoft.com/en-us/graph/known-issues#groups) documentation.
64
+ :param pulumi.Input[_builtins.bool] hide_from_outlook_clients: 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.
65
+
66
+ > **Known Permissions Issue** The `hide_from_outlook_clients` property can only be set when authenticating as a Member user of the tenant and _not_ when authenticating as a Guest user or as a service principal. Please see the [Microsoft Graph Known Issues](https://docs.microsoft.com/en-us/graph/known-issues#groups) documentation.
67
+ :param pulumi.Input[_builtins.bool] mail_enabled: 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).
68
+ :param pulumi.Input[_builtins.str] mail_nickname: The mail alias for the group, unique in the organisation. Required for mail-enabled groups. Changing this forces a new resource to be created.
69
+ :param pulumi.Input[_builtins.str] onpremises_group_type: The on-premises group type that the AAD group will be written as, when writeback is enabled. Possible values are `UniversalDistributionGroup`, `UniversalMailEnabledSecurityGroup`, or `UniversalSecurityGroup`.
70
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] owners: A set of owners who own this group. Supported object types are Users or Service Principals
71
+ :param pulumi.Input[_builtins.bool] prevent_duplicate_names: If `true`, will return an error if an existing group is found with the same name. Defaults to `false`.
72
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] provisioning_options: A set of provisioning options for a Microsoft 365 group. The only supported value is `Team`. See [official documentation](https://docs.microsoft.com/en-us/graph/group-set-options) for details. Changing this forces a new resource to be created.
73
+ :param pulumi.Input[_builtins.bool] security_enabled: 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).
74
+ :param pulumi.Input[_builtins.str] theme: 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.
75
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] types: 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.
76
+
77
+ > **Supported Group Types** At present, only security groups and Microsoft 365 groups can be created or managed with this resource. Distribution groups and mail-enabled security groups are not supported. Microsoft 365 groups can be security-enabled.
78
+ :param pulumi.Input[_builtins.str] visibility: 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.
79
+
80
+ > **Group Name Uniqueness** Group names are not unique within Azure Active Directory. Use the `prevent_duplicate_names` argument to check for existing groups if you want to avoid name collisions.
81
+ :param pulumi.Input[_builtins.bool] writeback_enabled: Whether the group will be written back to the configured on-premises Active Directory when Azure AD Connect is used.
82
+ """
83
+ pulumi.set(__self__, "display_name", display_name)
84
+ if administrative_unit_ids is not None:
85
+ pulumi.set(__self__, "administrative_unit_ids", administrative_unit_ids)
86
+ if assignable_to_role is not None:
87
+ pulumi.set(__self__, "assignable_to_role", assignable_to_role)
88
+ if auto_subscribe_new_members is not None:
89
+ pulumi.set(__self__, "auto_subscribe_new_members", auto_subscribe_new_members)
90
+ if behaviors is not None:
91
+ pulumi.set(__self__, "behaviors", behaviors)
92
+ if description is not None:
93
+ pulumi.set(__self__, "description", description)
94
+ if dynamic_membership is not None:
95
+ pulumi.set(__self__, "dynamic_membership", dynamic_membership)
96
+ if external_senders_allowed is not None:
97
+ pulumi.set(__self__, "external_senders_allowed", external_senders_allowed)
98
+ if hide_from_address_lists is not None:
99
+ pulumi.set(__self__, "hide_from_address_lists", hide_from_address_lists)
100
+ if hide_from_outlook_clients is not None:
101
+ pulumi.set(__self__, "hide_from_outlook_clients", hide_from_outlook_clients)
102
+ if mail_enabled is not None:
103
+ pulumi.set(__self__, "mail_enabled", mail_enabled)
104
+ if mail_nickname is not None:
105
+ pulumi.set(__self__, "mail_nickname", mail_nickname)
106
+ if onpremises_group_type is not None:
107
+ pulumi.set(__self__, "onpremises_group_type", onpremises_group_type)
108
+ if owners is not None:
109
+ pulumi.set(__self__, "owners", owners)
110
+ if prevent_duplicate_names is not None:
111
+ pulumi.set(__self__, "prevent_duplicate_names", prevent_duplicate_names)
112
+ if provisioning_options is not None:
113
+ pulumi.set(__self__, "provisioning_options", provisioning_options)
114
+ if security_enabled is not None:
115
+ pulumi.set(__self__, "security_enabled", security_enabled)
116
+ if theme is not None:
117
+ pulumi.set(__self__, "theme", theme)
118
+ if types is not None:
119
+ pulumi.set(__self__, "types", types)
120
+ if visibility is not None:
121
+ pulumi.set(__self__, "visibility", visibility)
122
+ if writeback_enabled is not None:
123
+ pulumi.set(__self__, "writeback_enabled", writeback_enabled)
124
+
125
+ @_builtins.property
126
+ @pulumi.getter(name="displayName")
127
+ def display_name(self) -> pulumi.Input[_builtins.str]:
128
+ """
129
+ The display name for the group.
130
+ """
131
+ return pulumi.get(self, "display_name")
132
+
133
+ @display_name.setter
134
+ def display_name(self, value: pulumi.Input[_builtins.str]):
135
+ pulumi.set(self, "display_name", value)
136
+
137
+ @_builtins.property
138
+ @pulumi.getter(name="administrativeUnitIds")
139
+ def administrative_unit_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
140
+ """
141
+ 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.
142
+
143
+ > **Caution** When using the AdministrativeUnitMember resource, or the `members` property of the AdministrativeUnit resource, to manage Administrative Unit membership for a group, you will need to use an `ignore_changes = [administrative_unit_ids]` lifecycle meta argument for the `Group` resource, in order to avoid a persistent diff.
144
+ """
145
+ return pulumi.get(self, "administrative_unit_ids")
146
+
147
+ @administrative_unit_ids.setter
148
+ def administrative_unit_ids(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
149
+ pulumi.set(self, "administrative_unit_ids", value)
150
+
151
+ @_builtins.property
152
+ @pulumi.getter(name="assignableToRole")
153
+ def assignable_to_role(self) -> Optional[pulumi.Input[_builtins.bool]]:
154
+ """
155
+ 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.
156
+ """
157
+ return pulumi.get(self, "assignable_to_role")
158
+
159
+ @assignable_to_role.setter
160
+ def assignable_to_role(self, value: Optional[pulumi.Input[_builtins.bool]]):
161
+ pulumi.set(self, "assignable_to_role", value)
162
+
163
+ @_builtins.property
164
+ @pulumi.getter(name="autoSubscribeNewMembers")
165
+ def auto_subscribe_new_members(self) -> Optional[pulumi.Input[_builtins.bool]]:
166
+ """
167
+ Indicates whether new members added to the group will be auto-subscribed to receive email notifications. Can only be set for Unified groups.
168
+
169
+ > **Known Permissions Issue** The `auto_subscribe_new_members` property can only be set when authenticating as a Member user of the tenant and _not_ when authenticating as a Guest user or as a service principal. Please see the [Microsoft Graph Known Issues](https://docs.microsoft.com/en-us/graph/known-issues#groups) documentation.
170
+ """
171
+ return pulumi.get(self, "auto_subscribe_new_members")
172
+
173
+ @auto_subscribe_new_members.setter
174
+ def auto_subscribe_new_members(self, value: Optional[pulumi.Input[_builtins.bool]]):
175
+ pulumi.set(self, "auto_subscribe_new_members", value)
176
+
177
+ @_builtins.property
178
+ @pulumi.getter
179
+ def behaviors(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
180
+ """
181
+ A set of behaviors for a Microsoft 365 group. Possible values are `AllowOnlyMembersToPost`, `HideGroupInOutlook`, `SkipExchangeInstantOn`, `SubscribeMembersToCalendarEventsDisabled`, `SubscribeNewGroupMembers` and `WelcomeEmailDisabled`. See [official documentation](https://docs.microsoft.com/en-us/graph/group-set-options) for more details. Changing this forces a new resource to be created.
182
+ """
183
+ return pulumi.get(self, "behaviors")
184
+
185
+ @behaviors.setter
186
+ def behaviors(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
187
+ pulumi.set(self, "behaviors", value)
188
+
189
+ @_builtins.property
190
+ @pulumi.getter
191
+ def description(self) -> Optional[pulumi.Input[_builtins.str]]:
192
+ """
193
+ The description for the group.
194
+ """
195
+ return pulumi.get(self, "description")
196
+
197
+ @description.setter
198
+ def description(self, value: Optional[pulumi.Input[_builtins.str]]):
199
+ pulumi.set(self, "description", value)
200
+
201
+ @_builtins.property
202
+ @pulumi.getter(name="dynamicMembership")
203
+ def dynamic_membership(self) -> Optional[pulumi.Input['GroupWithoutMembersDynamicMembershipArgs']]:
204
+ """
205
+ A `dynamic_membership` block as documented below. Required when `types` contains `DynamicMembership`. Cannot be used with the `members` property.
206
+ """
207
+ return pulumi.get(self, "dynamic_membership")
208
+
209
+ @dynamic_membership.setter
210
+ def dynamic_membership(self, value: Optional[pulumi.Input['GroupWithoutMembersDynamicMembershipArgs']]):
211
+ pulumi.set(self, "dynamic_membership", value)
212
+
213
+ @_builtins.property
214
+ @pulumi.getter(name="externalSendersAllowed")
215
+ def external_senders_allowed(self) -> Optional[pulumi.Input[_builtins.bool]]:
216
+ """
217
+ Indicates whether people external to the organization can send messages to the group. Can only be set for Unified groups.
218
+
219
+ > **Known Permissions Issue** The `external_senders_allowed` property can only be set when authenticating as a Member user of the tenant and _not_ when authenticating as a Guest user or as a service principal. Please see the [Microsoft Graph Known Issues](https://docs.microsoft.com/en-us/graph/known-issues#groups) documentation.
220
+ """
221
+ return pulumi.get(self, "external_senders_allowed")
222
+
223
+ @external_senders_allowed.setter
224
+ def external_senders_allowed(self, value: Optional[pulumi.Input[_builtins.bool]]):
225
+ pulumi.set(self, "external_senders_allowed", value)
226
+
227
+ @_builtins.property
228
+ @pulumi.getter(name="hideFromAddressLists")
229
+ def hide_from_address_lists(self) -> Optional[pulumi.Input[_builtins.bool]]:
230
+ """
231
+ 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.
232
+
233
+ > **Known Permissions Issue** The `hide_from_address_lists` property can only be set when authenticating as a Member user of the tenant and _not_ when authenticating as a Guest user or as a service principal. Please see the [Microsoft Graph Known Issues](https://docs.microsoft.com/en-us/graph/known-issues#groups) documentation.
234
+ """
235
+ return pulumi.get(self, "hide_from_address_lists")
236
+
237
+ @hide_from_address_lists.setter
238
+ def hide_from_address_lists(self, value: Optional[pulumi.Input[_builtins.bool]]):
239
+ pulumi.set(self, "hide_from_address_lists", value)
240
+
241
+ @_builtins.property
242
+ @pulumi.getter(name="hideFromOutlookClients")
243
+ def hide_from_outlook_clients(self) -> Optional[pulumi.Input[_builtins.bool]]:
244
+ """
245
+ 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.
246
+
247
+ > **Known Permissions Issue** The `hide_from_outlook_clients` property can only be set when authenticating as a Member user of the tenant and _not_ when authenticating as a Guest user or as a service principal. Please see the [Microsoft Graph Known Issues](https://docs.microsoft.com/en-us/graph/known-issues#groups) documentation.
248
+ """
249
+ return pulumi.get(self, "hide_from_outlook_clients")
250
+
251
+ @hide_from_outlook_clients.setter
252
+ def hide_from_outlook_clients(self, value: Optional[pulumi.Input[_builtins.bool]]):
253
+ pulumi.set(self, "hide_from_outlook_clients", value)
254
+
255
+ @_builtins.property
256
+ @pulumi.getter(name="mailEnabled")
257
+ def mail_enabled(self) -> Optional[pulumi.Input[_builtins.bool]]:
258
+ """
259
+ 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).
260
+ """
261
+ return pulumi.get(self, "mail_enabled")
262
+
263
+ @mail_enabled.setter
264
+ def mail_enabled(self, value: Optional[pulumi.Input[_builtins.bool]]):
265
+ pulumi.set(self, "mail_enabled", value)
266
+
267
+ @_builtins.property
268
+ @pulumi.getter(name="mailNickname")
269
+ def mail_nickname(self) -> Optional[pulumi.Input[_builtins.str]]:
270
+ """
271
+ The mail alias for the group, unique in the organisation. Required for mail-enabled groups. Changing this forces a new resource to be created.
272
+ """
273
+ return pulumi.get(self, "mail_nickname")
274
+
275
+ @mail_nickname.setter
276
+ def mail_nickname(self, value: Optional[pulumi.Input[_builtins.str]]):
277
+ pulumi.set(self, "mail_nickname", value)
278
+
279
+ @_builtins.property
280
+ @pulumi.getter(name="onpremisesGroupType")
281
+ def onpremises_group_type(self) -> Optional[pulumi.Input[_builtins.str]]:
282
+ """
283
+ The on-premises group type that the AAD group will be written as, when writeback is enabled. Possible values are `UniversalDistributionGroup`, `UniversalMailEnabledSecurityGroup`, or `UniversalSecurityGroup`.
284
+ """
285
+ return pulumi.get(self, "onpremises_group_type")
286
+
287
+ @onpremises_group_type.setter
288
+ def onpremises_group_type(self, value: Optional[pulumi.Input[_builtins.str]]):
289
+ pulumi.set(self, "onpremises_group_type", value)
290
+
291
+ @_builtins.property
292
+ @pulumi.getter
293
+ def owners(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
294
+ """
295
+ A set of owners who own this group. Supported object types are Users or Service Principals
296
+ """
297
+ return pulumi.get(self, "owners")
298
+
299
+ @owners.setter
300
+ def owners(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
301
+ pulumi.set(self, "owners", value)
302
+
303
+ @_builtins.property
304
+ @pulumi.getter(name="preventDuplicateNames")
305
+ def prevent_duplicate_names(self) -> Optional[pulumi.Input[_builtins.bool]]:
306
+ """
307
+ If `true`, will return an error if an existing group is found with the same name. Defaults to `false`.
308
+ """
309
+ return pulumi.get(self, "prevent_duplicate_names")
310
+
311
+ @prevent_duplicate_names.setter
312
+ def prevent_duplicate_names(self, value: Optional[pulumi.Input[_builtins.bool]]):
313
+ pulumi.set(self, "prevent_duplicate_names", value)
314
+
315
+ @_builtins.property
316
+ @pulumi.getter(name="provisioningOptions")
317
+ def provisioning_options(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
318
+ """
319
+ A set of provisioning options for a Microsoft 365 group. The only supported value is `Team`. See [official documentation](https://docs.microsoft.com/en-us/graph/group-set-options) for details. Changing this forces a new resource to be created.
320
+ """
321
+ return pulumi.get(self, "provisioning_options")
322
+
323
+ @provisioning_options.setter
324
+ def provisioning_options(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
325
+ pulumi.set(self, "provisioning_options", value)
326
+
327
+ @_builtins.property
328
+ @pulumi.getter(name="securityEnabled")
329
+ def security_enabled(self) -> Optional[pulumi.Input[_builtins.bool]]:
330
+ """
331
+ 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).
332
+ """
333
+ return pulumi.get(self, "security_enabled")
334
+
335
+ @security_enabled.setter
336
+ def security_enabled(self, value: Optional[pulumi.Input[_builtins.bool]]):
337
+ pulumi.set(self, "security_enabled", value)
338
+
339
+ @_builtins.property
340
+ @pulumi.getter
341
+ def theme(self) -> Optional[pulumi.Input[_builtins.str]]:
342
+ """
343
+ 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.
344
+ """
345
+ return pulumi.get(self, "theme")
346
+
347
+ @theme.setter
348
+ def theme(self, value: Optional[pulumi.Input[_builtins.str]]):
349
+ pulumi.set(self, "theme", value)
350
+
351
+ @_builtins.property
352
+ @pulumi.getter
353
+ def types(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
354
+ """
355
+ 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.
356
+
357
+ > **Supported Group Types** At present, only security groups and Microsoft 365 groups can be created or managed with this resource. Distribution groups and mail-enabled security groups are not supported. Microsoft 365 groups can be security-enabled.
358
+ """
359
+ return pulumi.get(self, "types")
360
+
361
+ @types.setter
362
+ def types(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
363
+ pulumi.set(self, "types", value)
364
+
365
+ @_builtins.property
366
+ @pulumi.getter
367
+ def visibility(self) -> Optional[pulumi.Input[_builtins.str]]:
368
+ """
369
+ 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.
370
+
371
+ > **Group Name Uniqueness** Group names are not unique within Azure Active Directory. Use the `prevent_duplicate_names` argument to check for existing groups if you want to avoid name collisions.
372
+ """
373
+ return pulumi.get(self, "visibility")
374
+
375
+ @visibility.setter
376
+ def visibility(self, value: Optional[pulumi.Input[_builtins.str]]):
377
+ pulumi.set(self, "visibility", value)
378
+
379
+ @_builtins.property
380
+ @pulumi.getter(name="writebackEnabled")
381
+ def writeback_enabled(self) -> Optional[pulumi.Input[_builtins.bool]]:
382
+ """
383
+ Whether the group will be written back to the configured on-premises Active Directory when Azure AD Connect is used.
384
+ """
385
+ return pulumi.get(self, "writeback_enabled")
386
+
387
+ @writeback_enabled.setter
388
+ def writeback_enabled(self, value: Optional[pulumi.Input[_builtins.bool]]):
389
+ pulumi.set(self, "writeback_enabled", value)
390
+
391
+
392
+ @pulumi.input_type
393
+ class _GroupWithoutMembersState:
394
+ def __init__(__self__, *,
395
+ administrative_unit_ids: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
396
+ assignable_to_role: Optional[pulumi.Input[_builtins.bool]] = None,
397
+ auto_subscribe_new_members: Optional[pulumi.Input[_builtins.bool]] = None,
398
+ behaviors: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
399
+ description: Optional[pulumi.Input[_builtins.str]] = None,
400
+ display_name: Optional[pulumi.Input[_builtins.str]] = None,
401
+ dynamic_membership: Optional[pulumi.Input['GroupWithoutMembersDynamicMembershipArgs']] = None,
402
+ external_senders_allowed: Optional[pulumi.Input[_builtins.bool]] = None,
403
+ hide_from_address_lists: Optional[pulumi.Input[_builtins.bool]] = None,
404
+ hide_from_outlook_clients: Optional[pulumi.Input[_builtins.bool]] = None,
405
+ mail: Optional[pulumi.Input[_builtins.str]] = None,
406
+ mail_enabled: Optional[pulumi.Input[_builtins.bool]] = None,
407
+ mail_nickname: Optional[pulumi.Input[_builtins.str]] = None,
408
+ object_id: Optional[pulumi.Input[_builtins.str]] = None,
409
+ onpremises_domain_name: Optional[pulumi.Input[_builtins.str]] = None,
410
+ onpremises_group_type: Optional[pulumi.Input[_builtins.str]] = None,
411
+ onpremises_netbios_name: Optional[pulumi.Input[_builtins.str]] = None,
412
+ onpremises_sam_account_name: Optional[pulumi.Input[_builtins.str]] = None,
413
+ onpremises_security_identifier: Optional[pulumi.Input[_builtins.str]] = None,
414
+ onpremises_sync_enabled: Optional[pulumi.Input[_builtins.bool]] = None,
415
+ owners: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
416
+ preferred_language: Optional[pulumi.Input[_builtins.str]] = None,
417
+ prevent_duplicate_names: Optional[pulumi.Input[_builtins.bool]] = None,
418
+ provisioning_options: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
419
+ proxy_addresses: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
420
+ security_enabled: Optional[pulumi.Input[_builtins.bool]] = None,
421
+ theme: Optional[pulumi.Input[_builtins.str]] = None,
422
+ types: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
423
+ visibility: Optional[pulumi.Input[_builtins.str]] = None,
424
+ writeback_enabled: Optional[pulumi.Input[_builtins.bool]] = None):
425
+ """
426
+ Input properties used for looking up and filtering GroupWithoutMembers resources.
427
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] administrative_unit_ids: 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.
428
+
429
+ > **Caution** When using the AdministrativeUnitMember resource, or the `members` property of the AdministrativeUnit resource, to manage Administrative Unit membership for a group, you will need to use an `ignore_changes = [administrative_unit_ids]` lifecycle meta argument for the `Group` resource, in order to avoid a persistent diff.
430
+ :param pulumi.Input[_builtins.bool] assignable_to_role: 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.
431
+ :param pulumi.Input[_builtins.bool] auto_subscribe_new_members: Indicates whether new members added to the group will be auto-subscribed to receive email notifications. Can only be set for Unified groups.
432
+
433
+ > **Known Permissions Issue** The `auto_subscribe_new_members` property can only be set when authenticating as a Member user of the tenant and _not_ when authenticating as a Guest user or as a service principal. Please see the [Microsoft Graph Known Issues](https://docs.microsoft.com/en-us/graph/known-issues#groups) documentation.
434
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] behaviors: A set of behaviors for a Microsoft 365 group. Possible values are `AllowOnlyMembersToPost`, `HideGroupInOutlook`, `SkipExchangeInstantOn`, `SubscribeMembersToCalendarEventsDisabled`, `SubscribeNewGroupMembers` and `WelcomeEmailDisabled`. See [official documentation](https://docs.microsoft.com/en-us/graph/group-set-options) for more details. Changing this forces a new resource to be created.
435
+ :param pulumi.Input[_builtins.str] description: The description for the group.
436
+ :param pulumi.Input[_builtins.str] display_name: The display name for the group.
437
+ :param pulumi.Input['GroupWithoutMembersDynamicMembershipArgs'] dynamic_membership: A `dynamic_membership` block as documented below. Required when `types` contains `DynamicMembership`. Cannot be used with the `members` property.
438
+ :param pulumi.Input[_builtins.bool] external_senders_allowed: Indicates whether people external to the organization can send messages to the group. Can only be set for Unified groups.
439
+
440
+ > **Known Permissions Issue** The `external_senders_allowed` property can only be set when authenticating as a Member user of the tenant and _not_ when authenticating as a Guest user or as a service principal. Please see the [Microsoft Graph Known Issues](https://docs.microsoft.com/en-us/graph/known-issues#groups) documentation.
441
+ :param pulumi.Input[_builtins.bool] hide_from_address_lists: 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.
442
+
443
+ > **Known Permissions Issue** The `hide_from_address_lists` property can only be set when authenticating as a Member user of the tenant and _not_ when authenticating as a Guest user or as a service principal. Please see the [Microsoft Graph Known Issues](https://docs.microsoft.com/en-us/graph/known-issues#groups) documentation.
444
+ :param pulumi.Input[_builtins.bool] hide_from_outlook_clients: 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.
445
+
446
+ > **Known Permissions Issue** The `hide_from_outlook_clients` property can only be set when authenticating as a Member user of the tenant and _not_ when authenticating as a Guest user or as a service principal. Please see the [Microsoft Graph Known Issues](https://docs.microsoft.com/en-us/graph/known-issues#groups) documentation.
447
+ :param pulumi.Input[_builtins.str] mail: The SMTP address for the group.
448
+ :param pulumi.Input[_builtins.bool] mail_enabled: 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).
449
+ :param pulumi.Input[_builtins.str] mail_nickname: The mail alias for the group, unique in the organisation. Required for mail-enabled groups. Changing this forces a new resource to be created.
450
+ :param pulumi.Input[_builtins.str] object_id: The object ID of the group.
451
+ :param pulumi.Input[_builtins.str] onpremises_domain_name: The on-premises FQDN, also called dnsDomainName, synchronised from the on-premises directory when Azure AD Connect is used.
452
+ :param pulumi.Input[_builtins.str] onpremises_group_type: The on-premises group type that the AAD group will be written as, when writeback is enabled. Possible values are `UniversalDistributionGroup`, `UniversalMailEnabledSecurityGroup`, or `UniversalSecurityGroup`.
453
+ :param pulumi.Input[_builtins.str] onpremises_netbios_name: The on-premises NetBIOS name, synchronised from the on-premises directory when Azure AD Connect is used.
454
+ :param pulumi.Input[_builtins.str] onpremises_sam_account_name: The on-premises SAM account name, synchronised from the on-premises directory when Azure AD Connect is used.
455
+ :param pulumi.Input[_builtins.str] onpremises_security_identifier: The on-premises security identifier (SID), synchronised from the on-premises directory when Azure AD Connect is used.
456
+ :param pulumi.Input[_builtins.bool] onpremises_sync_enabled: Whether this group is synchronised from an on-premises directory (`true`), no longer synchronised (`false`), or has never been synchronised (`null`).
457
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] owners: A set of owners who own this group. Supported object types are Users or Service Principals
458
+ :param pulumi.Input[_builtins.str] preferred_language: The preferred language for a Microsoft 365 group, in ISO 639-1 notation.
459
+ :param pulumi.Input[_builtins.bool] prevent_duplicate_names: If `true`, will return an error if an existing group is found with the same name. Defaults to `false`.
460
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] provisioning_options: A set of provisioning options for a Microsoft 365 group. The only supported value is `Team`. See [official documentation](https://docs.microsoft.com/en-us/graph/group-set-options) for details. Changing this forces a new resource to be created.
461
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] proxy_addresses: List of email addresses for the group that direct to the same group mailbox.
462
+ :param pulumi.Input[_builtins.bool] security_enabled: 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).
463
+ :param pulumi.Input[_builtins.str] theme: 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.
464
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] types: 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.
465
+
466
+ > **Supported Group Types** At present, only security groups and Microsoft 365 groups can be created or managed with this resource. Distribution groups and mail-enabled security groups are not supported. Microsoft 365 groups can be security-enabled.
467
+ :param pulumi.Input[_builtins.str] visibility: 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.
468
+
469
+ > **Group Name Uniqueness** Group names are not unique within Azure Active Directory. Use the `prevent_duplicate_names` argument to check for existing groups if you want to avoid name collisions.
470
+ :param pulumi.Input[_builtins.bool] writeback_enabled: Whether the group will be written back to the configured on-premises Active Directory when Azure AD Connect is used.
471
+ """
472
+ if administrative_unit_ids is not None:
473
+ pulumi.set(__self__, "administrative_unit_ids", administrative_unit_ids)
474
+ if assignable_to_role is not None:
475
+ pulumi.set(__self__, "assignable_to_role", assignable_to_role)
476
+ if auto_subscribe_new_members is not None:
477
+ pulumi.set(__self__, "auto_subscribe_new_members", auto_subscribe_new_members)
478
+ if behaviors is not None:
479
+ pulumi.set(__self__, "behaviors", behaviors)
480
+ if description is not None:
481
+ pulumi.set(__self__, "description", description)
482
+ if display_name is not None:
483
+ pulumi.set(__self__, "display_name", display_name)
484
+ if dynamic_membership is not None:
485
+ pulumi.set(__self__, "dynamic_membership", dynamic_membership)
486
+ if external_senders_allowed is not None:
487
+ pulumi.set(__self__, "external_senders_allowed", external_senders_allowed)
488
+ if hide_from_address_lists is not None:
489
+ pulumi.set(__self__, "hide_from_address_lists", hide_from_address_lists)
490
+ if hide_from_outlook_clients is not None:
491
+ pulumi.set(__self__, "hide_from_outlook_clients", hide_from_outlook_clients)
492
+ if mail is not None:
493
+ pulumi.set(__self__, "mail", mail)
494
+ if mail_enabled is not None:
495
+ pulumi.set(__self__, "mail_enabled", mail_enabled)
496
+ if mail_nickname is not None:
497
+ pulumi.set(__self__, "mail_nickname", mail_nickname)
498
+ if object_id is not None:
499
+ pulumi.set(__self__, "object_id", object_id)
500
+ if onpremises_domain_name is not None:
501
+ pulumi.set(__self__, "onpremises_domain_name", onpremises_domain_name)
502
+ if onpremises_group_type is not None:
503
+ pulumi.set(__self__, "onpremises_group_type", onpremises_group_type)
504
+ if onpremises_netbios_name is not None:
505
+ pulumi.set(__self__, "onpremises_netbios_name", onpremises_netbios_name)
506
+ if onpremises_sam_account_name is not None:
507
+ pulumi.set(__self__, "onpremises_sam_account_name", onpremises_sam_account_name)
508
+ if onpremises_security_identifier is not None:
509
+ pulumi.set(__self__, "onpremises_security_identifier", onpremises_security_identifier)
510
+ if onpremises_sync_enabled is not None:
511
+ pulumi.set(__self__, "onpremises_sync_enabled", onpremises_sync_enabled)
512
+ if owners is not None:
513
+ pulumi.set(__self__, "owners", owners)
514
+ if preferred_language is not None:
515
+ pulumi.set(__self__, "preferred_language", preferred_language)
516
+ if prevent_duplicate_names is not None:
517
+ pulumi.set(__self__, "prevent_duplicate_names", prevent_duplicate_names)
518
+ if provisioning_options is not None:
519
+ pulumi.set(__self__, "provisioning_options", provisioning_options)
520
+ if proxy_addresses is not None:
521
+ pulumi.set(__self__, "proxy_addresses", proxy_addresses)
522
+ if security_enabled is not None:
523
+ pulumi.set(__self__, "security_enabled", security_enabled)
524
+ if theme is not None:
525
+ pulumi.set(__self__, "theme", theme)
526
+ if types is not None:
527
+ pulumi.set(__self__, "types", types)
528
+ if visibility is not None:
529
+ pulumi.set(__self__, "visibility", visibility)
530
+ if writeback_enabled is not None:
531
+ pulumi.set(__self__, "writeback_enabled", writeback_enabled)
532
+
533
+ @_builtins.property
534
+ @pulumi.getter(name="administrativeUnitIds")
535
+ def administrative_unit_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
536
+ """
537
+ 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.
538
+
539
+ > **Caution** When using the AdministrativeUnitMember resource, or the `members` property of the AdministrativeUnit resource, to manage Administrative Unit membership for a group, you will need to use an `ignore_changes = [administrative_unit_ids]` lifecycle meta argument for the `Group` resource, in order to avoid a persistent diff.
540
+ """
541
+ return pulumi.get(self, "administrative_unit_ids")
542
+
543
+ @administrative_unit_ids.setter
544
+ def administrative_unit_ids(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
545
+ pulumi.set(self, "administrative_unit_ids", value)
546
+
547
+ @_builtins.property
548
+ @pulumi.getter(name="assignableToRole")
549
+ def assignable_to_role(self) -> Optional[pulumi.Input[_builtins.bool]]:
550
+ """
551
+ 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.
552
+ """
553
+ return pulumi.get(self, "assignable_to_role")
554
+
555
+ @assignable_to_role.setter
556
+ def assignable_to_role(self, value: Optional[pulumi.Input[_builtins.bool]]):
557
+ pulumi.set(self, "assignable_to_role", value)
558
+
559
+ @_builtins.property
560
+ @pulumi.getter(name="autoSubscribeNewMembers")
561
+ def auto_subscribe_new_members(self) -> Optional[pulumi.Input[_builtins.bool]]:
562
+ """
563
+ Indicates whether new members added to the group will be auto-subscribed to receive email notifications. Can only be set for Unified groups.
564
+
565
+ > **Known Permissions Issue** The `auto_subscribe_new_members` property can only be set when authenticating as a Member user of the tenant and _not_ when authenticating as a Guest user or as a service principal. Please see the [Microsoft Graph Known Issues](https://docs.microsoft.com/en-us/graph/known-issues#groups) documentation.
566
+ """
567
+ return pulumi.get(self, "auto_subscribe_new_members")
568
+
569
+ @auto_subscribe_new_members.setter
570
+ def auto_subscribe_new_members(self, value: Optional[pulumi.Input[_builtins.bool]]):
571
+ pulumi.set(self, "auto_subscribe_new_members", value)
572
+
573
+ @_builtins.property
574
+ @pulumi.getter
575
+ def behaviors(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
576
+ """
577
+ A set of behaviors for a Microsoft 365 group. Possible values are `AllowOnlyMembersToPost`, `HideGroupInOutlook`, `SkipExchangeInstantOn`, `SubscribeMembersToCalendarEventsDisabled`, `SubscribeNewGroupMembers` and `WelcomeEmailDisabled`. See [official documentation](https://docs.microsoft.com/en-us/graph/group-set-options) for more details. Changing this forces a new resource to be created.
578
+ """
579
+ return pulumi.get(self, "behaviors")
580
+
581
+ @behaviors.setter
582
+ def behaviors(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
583
+ pulumi.set(self, "behaviors", value)
584
+
585
+ @_builtins.property
586
+ @pulumi.getter
587
+ def description(self) -> Optional[pulumi.Input[_builtins.str]]:
588
+ """
589
+ The description for the group.
590
+ """
591
+ return pulumi.get(self, "description")
592
+
593
+ @description.setter
594
+ def description(self, value: Optional[pulumi.Input[_builtins.str]]):
595
+ pulumi.set(self, "description", value)
596
+
597
+ @_builtins.property
598
+ @pulumi.getter(name="displayName")
599
+ def display_name(self) -> Optional[pulumi.Input[_builtins.str]]:
600
+ """
601
+ The display name for the group.
602
+ """
603
+ return pulumi.get(self, "display_name")
604
+
605
+ @display_name.setter
606
+ def display_name(self, value: Optional[pulumi.Input[_builtins.str]]):
607
+ pulumi.set(self, "display_name", value)
608
+
609
+ @_builtins.property
610
+ @pulumi.getter(name="dynamicMembership")
611
+ def dynamic_membership(self) -> Optional[pulumi.Input['GroupWithoutMembersDynamicMembershipArgs']]:
612
+ """
613
+ A `dynamic_membership` block as documented below. Required when `types` contains `DynamicMembership`. Cannot be used with the `members` property.
614
+ """
615
+ return pulumi.get(self, "dynamic_membership")
616
+
617
+ @dynamic_membership.setter
618
+ def dynamic_membership(self, value: Optional[pulumi.Input['GroupWithoutMembersDynamicMembershipArgs']]):
619
+ pulumi.set(self, "dynamic_membership", value)
620
+
621
+ @_builtins.property
622
+ @pulumi.getter(name="externalSendersAllowed")
623
+ def external_senders_allowed(self) -> Optional[pulumi.Input[_builtins.bool]]:
624
+ """
625
+ Indicates whether people external to the organization can send messages to the group. Can only be set for Unified groups.
626
+
627
+ > **Known Permissions Issue** The `external_senders_allowed` property can only be set when authenticating as a Member user of the tenant and _not_ when authenticating as a Guest user or as a service principal. Please see the [Microsoft Graph Known Issues](https://docs.microsoft.com/en-us/graph/known-issues#groups) documentation.
628
+ """
629
+ return pulumi.get(self, "external_senders_allowed")
630
+
631
+ @external_senders_allowed.setter
632
+ def external_senders_allowed(self, value: Optional[pulumi.Input[_builtins.bool]]):
633
+ pulumi.set(self, "external_senders_allowed", value)
634
+
635
+ @_builtins.property
636
+ @pulumi.getter(name="hideFromAddressLists")
637
+ def hide_from_address_lists(self) -> Optional[pulumi.Input[_builtins.bool]]:
638
+ """
639
+ 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.
640
+
641
+ > **Known Permissions Issue** The `hide_from_address_lists` property can only be set when authenticating as a Member user of the tenant and _not_ when authenticating as a Guest user or as a service principal. Please see the [Microsoft Graph Known Issues](https://docs.microsoft.com/en-us/graph/known-issues#groups) documentation.
642
+ """
643
+ return pulumi.get(self, "hide_from_address_lists")
644
+
645
+ @hide_from_address_lists.setter
646
+ def hide_from_address_lists(self, value: Optional[pulumi.Input[_builtins.bool]]):
647
+ pulumi.set(self, "hide_from_address_lists", value)
648
+
649
+ @_builtins.property
650
+ @pulumi.getter(name="hideFromOutlookClients")
651
+ def hide_from_outlook_clients(self) -> Optional[pulumi.Input[_builtins.bool]]:
652
+ """
653
+ 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.
654
+
655
+ > **Known Permissions Issue** The `hide_from_outlook_clients` property can only be set when authenticating as a Member user of the tenant and _not_ when authenticating as a Guest user or as a service principal. Please see the [Microsoft Graph Known Issues](https://docs.microsoft.com/en-us/graph/known-issues#groups) documentation.
656
+ """
657
+ return pulumi.get(self, "hide_from_outlook_clients")
658
+
659
+ @hide_from_outlook_clients.setter
660
+ def hide_from_outlook_clients(self, value: Optional[pulumi.Input[_builtins.bool]]):
661
+ pulumi.set(self, "hide_from_outlook_clients", value)
662
+
663
+ @_builtins.property
664
+ @pulumi.getter
665
+ def mail(self) -> Optional[pulumi.Input[_builtins.str]]:
666
+ """
667
+ The SMTP address for the group.
668
+ """
669
+ return pulumi.get(self, "mail")
670
+
671
+ @mail.setter
672
+ def mail(self, value: Optional[pulumi.Input[_builtins.str]]):
673
+ pulumi.set(self, "mail", value)
674
+
675
+ @_builtins.property
676
+ @pulumi.getter(name="mailEnabled")
677
+ def mail_enabled(self) -> Optional[pulumi.Input[_builtins.bool]]:
678
+ """
679
+ 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).
680
+ """
681
+ return pulumi.get(self, "mail_enabled")
682
+
683
+ @mail_enabled.setter
684
+ def mail_enabled(self, value: Optional[pulumi.Input[_builtins.bool]]):
685
+ pulumi.set(self, "mail_enabled", value)
686
+
687
+ @_builtins.property
688
+ @pulumi.getter(name="mailNickname")
689
+ def mail_nickname(self) -> Optional[pulumi.Input[_builtins.str]]:
690
+ """
691
+ The mail alias for the group, unique in the organisation. Required for mail-enabled groups. Changing this forces a new resource to be created.
692
+ """
693
+ return pulumi.get(self, "mail_nickname")
694
+
695
+ @mail_nickname.setter
696
+ def mail_nickname(self, value: Optional[pulumi.Input[_builtins.str]]):
697
+ pulumi.set(self, "mail_nickname", value)
698
+
699
+ @_builtins.property
700
+ @pulumi.getter(name="objectId")
701
+ def object_id(self) -> Optional[pulumi.Input[_builtins.str]]:
702
+ """
703
+ The object ID of the group.
704
+ """
705
+ return pulumi.get(self, "object_id")
706
+
707
+ @object_id.setter
708
+ def object_id(self, value: Optional[pulumi.Input[_builtins.str]]):
709
+ pulumi.set(self, "object_id", value)
710
+
711
+ @_builtins.property
712
+ @pulumi.getter(name="onpremisesDomainName")
713
+ def onpremises_domain_name(self) -> Optional[pulumi.Input[_builtins.str]]:
714
+ """
715
+ The on-premises FQDN, also called dnsDomainName, synchronised from the on-premises directory when Azure AD Connect is used.
716
+ """
717
+ return pulumi.get(self, "onpremises_domain_name")
718
+
719
+ @onpremises_domain_name.setter
720
+ def onpremises_domain_name(self, value: Optional[pulumi.Input[_builtins.str]]):
721
+ pulumi.set(self, "onpremises_domain_name", value)
722
+
723
+ @_builtins.property
724
+ @pulumi.getter(name="onpremisesGroupType")
725
+ def onpremises_group_type(self) -> Optional[pulumi.Input[_builtins.str]]:
726
+ """
727
+ The on-premises group type that the AAD group will be written as, when writeback is enabled. Possible values are `UniversalDistributionGroup`, `UniversalMailEnabledSecurityGroup`, or `UniversalSecurityGroup`.
728
+ """
729
+ return pulumi.get(self, "onpremises_group_type")
730
+
731
+ @onpremises_group_type.setter
732
+ def onpremises_group_type(self, value: Optional[pulumi.Input[_builtins.str]]):
733
+ pulumi.set(self, "onpremises_group_type", value)
734
+
735
+ @_builtins.property
736
+ @pulumi.getter(name="onpremisesNetbiosName")
737
+ def onpremises_netbios_name(self) -> Optional[pulumi.Input[_builtins.str]]:
738
+ """
739
+ The on-premises NetBIOS name, synchronised from the on-premises directory when Azure AD Connect is used.
740
+ """
741
+ return pulumi.get(self, "onpremises_netbios_name")
742
+
743
+ @onpremises_netbios_name.setter
744
+ def onpremises_netbios_name(self, value: Optional[pulumi.Input[_builtins.str]]):
745
+ pulumi.set(self, "onpremises_netbios_name", value)
746
+
747
+ @_builtins.property
748
+ @pulumi.getter(name="onpremisesSamAccountName")
749
+ def onpremises_sam_account_name(self) -> Optional[pulumi.Input[_builtins.str]]:
750
+ """
751
+ The on-premises SAM account name, synchronised from the on-premises directory when Azure AD Connect is used.
752
+ """
753
+ return pulumi.get(self, "onpremises_sam_account_name")
754
+
755
+ @onpremises_sam_account_name.setter
756
+ def onpremises_sam_account_name(self, value: Optional[pulumi.Input[_builtins.str]]):
757
+ pulumi.set(self, "onpremises_sam_account_name", value)
758
+
759
+ @_builtins.property
760
+ @pulumi.getter(name="onpremisesSecurityIdentifier")
761
+ def onpremises_security_identifier(self) -> Optional[pulumi.Input[_builtins.str]]:
762
+ """
763
+ The on-premises security identifier (SID), synchronised from the on-premises directory when Azure AD Connect is used.
764
+ """
765
+ return pulumi.get(self, "onpremises_security_identifier")
766
+
767
+ @onpremises_security_identifier.setter
768
+ def onpremises_security_identifier(self, value: Optional[pulumi.Input[_builtins.str]]):
769
+ pulumi.set(self, "onpremises_security_identifier", value)
770
+
771
+ @_builtins.property
772
+ @pulumi.getter(name="onpremisesSyncEnabled")
773
+ def onpremises_sync_enabled(self) -> Optional[pulumi.Input[_builtins.bool]]:
774
+ """
775
+ Whether this group is synchronised from an on-premises directory (`true`), no longer synchronised (`false`), or has never been synchronised (`null`).
776
+ """
777
+ return pulumi.get(self, "onpremises_sync_enabled")
778
+
779
+ @onpremises_sync_enabled.setter
780
+ def onpremises_sync_enabled(self, value: Optional[pulumi.Input[_builtins.bool]]):
781
+ pulumi.set(self, "onpremises_sync_enabled", value)
782
+
783
+ @_builtins.property
784
+ @pulumi.getter
785
+ def owners(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
786
+ """
787
+ A set of owners who own this group. Supported object types are Users or Service Principals
788
+ """
789
+ return pulumi.get(self, "owners")
790
+
791
+ @owners.setter
792
+ def owners(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
793
+ pulumi.set(self, "owners", value)
794
+
795
+ @_builtins.property
796
+ @pulumi.getter(name="preferredLanguage")
797
+ def preferred_language(self) -> Optional[pulumi.Input[_builtins.str]]:
798
+ """
799
+ The preferred language for a Microsoft 365 group, in ISO 639-1 notation.
800
+ """
801
+ return pulumi.get(self, "preferred_language")
802
+
803
+ @preferred_language.setter
804
+ def preferred_language(self, value: Optional[pulumi.Input[_builtins.str]]):
805
+ pulumi.set(self, "preferred_language", value)
806
+
807
+ @_builtins.property
808
+ @pulumi.getter(name="preventDuplicateNames")
809
+ def prevent_duplicate_names(self) -> Optional[pulumi.Input[_builtins.bool]]:
810
+ """
811
+ If `true`, will return an error if an existing group is found with the same name. Defaults to `false`.
812
+ """
813
+ return pulumi.get(self, "prevent_duplicate_names")
814
+
815
+ @prevent_duplicate_names.setter
816
+ def prevent_duplicate_names(self, value: Optional[pulumi.Input[_builtins.bool]]):
817
+ pulumi.set(self, "prevent_duplicate_names", value)
818
+
819
+ @_builtins.property
820
+ @pulumi.getter(name="provisioningOptions")
821
+ def provisioning_options(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
822
+ """
823
+ A set of provisioning options for a Microsoft 365 group. The only supported value is `Team`. See [official documentation](https://docs.microsoft.com/en-us/graph/group-set-options) for details. Changing this forces a new resource to be created.
824
+ """
825
+ return pulumi.get(self, "provisioning_options")
826
+
827
+ @provisioning_options.setter
828
+ def provisioning_options(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
829
+ pulumi.set(self, "provisioning_options", value)
830
+
831
+ @_builtins.property
832
+ @pulumi.getter(name="proxyAddresses")
833
+ def proxy_addresses(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
834
+ """
835
+ List of email addresses for the group that direct to the same group mailbox.
836
+ """
837
+ return pulumi.get(self, "proxy_addresses")
838
+
839
+ @proxy_addresses.setter
840
+ def proxy_addresses(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
841
+ pulumi.set(self, "proxy_addresses", value)
842
+
843
+ @_builtins.property
844
+ @pulumi.getter(name="securityEnabled")
845
+ def security_enabled(self) -> Optional[pulumi.Input[_builtins.bool]]:
846
+ """
847
+ 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).
848
+ """
849
+ return pulumi.get(self, "security_enabled")
850
+
851
+ @security_enabled.setter
852
+ def security_enabled(self, value: Optional[pulumi.Input[_builtins.bool]]):
853
+ pulumi.set(self, "security_enabled", value)
854
+
855
+ @_builtins.property
856
+ @pulumi.getter
857
+ def theme(self) -> Optional[pulumi.Input[_builtins.str]]:
858
+ """
859
+ 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.
860
+ """
861
+ return pulumi.get(self, "theme")
862
+
863
+ @theme.setter
864
+ def theme(self, value: Optional[pulumi.Input[_builtins.str]]):
865
+ pulumi.set(self, "theme", value)
866
+
867
+ @_builtins.property
868
+ @pulumi.getter
869
+ def types(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
870
+ """
871
+ 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.
872
+
873
+ > **Supported Group Types** At present, only security groups and Microsoft 365 groups can be created or managed with this resource. Distribution groups and mail-enabled security groups are not supported. Microsoft 365 groups can be security-enabled.
874
+ """
875
+ return pulumi.get(self, "types")
876
+
877
+ @types.setter
878
+ def types(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
879
+ pulumi.set(self, "types", value)
880
+
881
+ @_builtins.property
882
+ @pulumi.getter
883
+ def visibility(self) -> Optional[pulumi.Input[_builtins.str]]:
884
+ """
885
+ 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.
886
+
887
+ > **Group Name Uniqueness** Group names are not unique within Azure Active Directory. Use the `prevent_duplicate_names` argument to check for existing groups if you want to avoid name collisions.
888
+ """
889
+ return pulumi.get(self, "visibility")
890
+
891
+ @visibility.setter
892
+ def visibility(self, value: Optional[pulumi.Input[_builtins.str]]):
893
+ pulumi.set(self, "visibility", value)
894
+
895
+ @_builtins.property
896
+ @pulumi.getter(name="writebackEnabled")
897
+ def writeback_enabled(self) -> Optional[pulumi.Input[_builtins.bool]]:
898
+ """
899
+ Whether the group will be written back to the configured on-premises Active Directory when Azure AD Connect is used.
900
+ """
901
+ return pulumi.get(self, "writeback_enabled")
902
+
903
+ @writeback_enabled.setter
904
+ def writeback_enabled(self, value: Optional[pulumi.Input[_builtins.bool]]):
905
+ pulumi.set(self, "writeback_enabled", value)
906
+
907
+
908
+ @pulumi.type_token("azuread:index/groupWithoutMembers:GroupWithoutMembers")
909
+ class GroupWithoutMembers(pulumi.CustomResource):
910
+ @overload
911
+ def __init__(__self__,
912
+ resource_name: str,
913
+ opts: Optional[pulumi.ResourceOptions] = None,
914
+ administrative_unit_ids: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
915
+ assignable_to_role: Optional[pulumi.Input[_builtins.bool]] = None,
916
+ auto_subscribe_new_members: Optional[pulumi.Input[_builtins.bool]] = None,
917
+ behaviors: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
918
+ description: Optional[pulumi.Input[_builtins.str]] = None,
919
+ display_name: Optional[pulumi.Input[_builtins.str]] = None,
920
+ dynamic_membership: Optional[pulumi.Input[Union['GroupWithoutMembersDynamicMembershipArgs', 'GroupWithoutMembersDynamicMembershipArgsDict']]] = None,
921
+ external_senders_allowed: Optional[pulumi.Input[_builtins.bool]] = None,
922
+ hide_from_address_lists: Optional[pulumi.Input[_builtins.bool]] = None,
923
+ hide_from_outlook_clients: Optional[pulumi.Input[_builtins.bool]] = None,
924
+ mail_enabled: Optional[pulumi.Input[_builtins.bool]] = None,
925
+ mail_nickname: Optional[pulumi.Input[_builtins.str]] = None,
926
+ onpremises_group_type: Optional[pulumi.Input[_builtins.str]] = None,
927
+ owners: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
928
+ prevent_duplicate_names: Optional[pulumi.Input[_builtins.bool]] = None,
929
+ provisioning_options: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
930
+ security_enabled: Optional[pulumi.Input[_builtins.bool]] = None,
931
+ theme: Optional[pulumi.Input[_builtins.str]] = None,
932
+ types: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
933
+ visibility: Optional[pulumi.Input[_builtins.str]] = None,
934
+ writeback_enabled: Optional[pulumi.Input[_builtins.bool]] = None,
935
+ __props__=None):
936
+ """
937
+ Manages a group within Azure Active Directory. Does not directly manage or expose members of the group.
938
+
939
+ ## API Permissions
940
+
941
+ The following API permissions are required in order to use this resource.
942
+
943
+ When authenticated with a service principal, this resource requires one of the following application roles: `Group.ReadWrite.All` or `Directory.ReadWrite.All`.
944
+
945
+ Alternatively, if the authenticated service principal is also an owner of the group being managed, this resource can use the application role: `Group.Create`.
946
+
947
+ If using the `assignable_to_role` property, this resource additionally requires the `RoleManagement.ReadWrite.Directory` application role.
948
+
949
+ If specifying owners for a group, which are user principals, this resource additionally requires one of the following application roles: `User.Read.All`, `User.ReadWrite.All`, `Directory.Read.All` or `Directory.ReadWrite.All`
950
+
951
+ When authenticated with a user principal, this resource requires one of the following directory roles: `Groups Administrator`, `User Administrator` or `Global Administrator`
952
+
953
+ When creating this resource in administrative units exclusively, the directory role `Groups Administrator` is required to be scoped on any administrative unit used. Additionally, it must be possible to read the administrative units being used, which can be granted through the `AdministrativeUnit.Read.All` or `Directory.Read.All` application roles.
954
+
955
+ The `external_senders_allowed`, `auto_subscribe_new_members`, `hide_from_address_lists` and `hide_from_outlook_clients` properties can only be configured when authenticating as a user and cannot be configured when authenticating as a service principal. Additionally, the user being used for authentication must be a Member of the tenant where the group is being managed and _not_ a Guest. This is a known API issue; please see the [Microsoft Graph Known Issues](https://docs.microsoft.com/en-us/graph/known-issues#groups) official documentation.
956
+
957
+ ## Example Usage
958
+
959
+ *Basic example*
960
+
961
+ ```python
962
+ import pulumi
963
+ import pulumi_azuread as azuread
964
+
965
+ current = azuread.get_client_config()
966
+ example = azuread.GroupWithoutMembers("example",
967
+ display_name="example",
968
+ owners=[current.object_id],
969
+ security_enabled=True)
970
+ ```
971
+
972
+ *Microsoft 365 group*
973
+
974
+ ```python
975
+ import pulumi
976
+ import pulumi_azuread as azuread
977
+
978
+ current = azuread.get_client_config()
979
+ group_owner = azuread.User("group_owner",
980
+ user_principal_name="example-group-owner@example.com",
981
+ display_name="Group Owner",
982
+ mail_nickname="example-group-owner",
983
+ password="SecretP@sswd99!")
984
+ example = azuread.GroupWithoutMembers("example",
985
+ display_name="example",
986
+ mail_enabled=True,
987
+ mail_nickname="ExampleGroup",
988
+ security_enabled=True,
989
+ types=["Unified"],
990
+ owners=[
991
+ current.object_id,
992
+ group_owner.object_id,
993
+ ])
994
+ ```
995
+
996
+ *Group with dynamic membership*
997
+
998
+ ```python
999
+ import pulumi
1000
+ import pulumi_azuread as azuread
1001
+
1002
+ current = azuread.get_client_config()
1003
+ example = azuread.GroupWithoutMembers("example",
1004
+ display_name="MyGroup",
1005
+ owners=[current.object_id],
1006
+ security_enabled=True,
1007
+ types=["DynamicMembership"],
1008
+ dynamic_membership={
1009
+ "enabled": True,
1010
+ "rule": "user.department -eq \\"Sales\\"",
1011
+ })
1012
+ ```
1013
+
1014
+ ## Import
1015
+
1016
+ Groups can be imported using their object ID, e.g.
1017
+
1018
+ ```sh
1019
+ $ pulumi import azuread:index/groupWithoutMembers:GroupWithoutMembers my_group /groups/00000000-0000-0000-0000-000000000000
1020
+ ```
1021
+
1022
+ :param str resource_name: The name of the resource.
1023
+ :param pulumi.ResourceOptions opts: Options for the resource.
1024
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] administrative_unit_ids: 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.
1025
+
1026
+ > **Caution** When using the AdministrativeUnitMember resource, or the `members` property of the AdministrativeUnit resource, to manage Administrative Unit membership for a group, you will need to use an `ignore_changes = [administrative_unit_ids]` lifecycle meta argument for the `Group` resource, in order to avoid a persistent diff.
1027
+ :param pulumi.Input[_builtins.bool] assignable_to_role: 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.
1028
+ :param pulumi.Input[_builtins.bool] auto_subscribe_new_members: Indicates whether new members added to the group will be auto-subscribed to receive email notifications. Can only be set for Unified groups.
1029
+
1030
+ > **Known Permissions Issue** The `auto_subscribe_new_members` property can only be set when authenticating as a Member user of the tenant and _not_ when authenticating as a Guest user or as a service principal. Please see the [Microsoft Graph Known Issues](https://docs.microsoft.com/en-us/graph/known-issues#groups) documentation.
1031
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] behaviors: A set of behaviors for a Microsoft 365 group. Possible values are `AllowOnlyMembersToPost`, `HideGroupInOutlook`, `SkipExchangeInstantOn`, `SubscribeMembersToCalendarEventsDisabled`, `SubscribeNewGroupMembers` and `WelcomeEmailDisabled`. See [official documentation](https://docs.microsoft.com/en-us/graph/group-set-options) for more details. Changing this forces a new resource to be created.
1032
+ :param pulumi.Input[_builtins.str] description: The description for the group.
1033
+ :param pulumi.Input[_builtins.str] display_name: The display name for the group.
1034
+ :param pulumi.Input[Union['GroupWithoutMembersDynamicMembershipArgs', 'GroupWithoutMembersDynamicMembershipArgsDict']] dynamic_membership: A `dynamic_membership` block as documented below. Required when `types` contains `DynamicMembership`. Cannot be used with the `members` property.
1035
+ :param pulumi.Input[_builtins.bool] external_senders_allowed: Indicates whether people external to the organization can send messages to the group. Can only be set for Unified groups.
1036
+
1037
+ > **Known Permissions Issue** The `external_senders_allowed` property can only be set when authenticating as a Member user of the tenant and _not_ when authenticating as a Guest user or as a service principal. Please see the [Microsoft Graph Known Issues](https://docs.microsoft.com/en-us/graph/known-issues#groups) documentation.
1038
+ :param pulumi.Input[_builtins.bool] hide_from_address_lists: 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.
1039
+
1040
+ > **Known Permissions Issue** The `hide_from_address_lists` property can only be set when authenticating as a Member user of the tenant and _not_ when authenticating as a Guest user or as a service principal. Please see the [Microsoft Graph Known Issues](https://docs.microsoft.com/en-us/graph/known-issues#groups) documentation.
1041
+ :param pulumi.Input[_builtins.bool] hide_from_outlook_clients: 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.
1042
+
1043
+ > **Known Permissions Issue** The `hide_from_outlook_clients` property can only be set when authenticating as a Member user of the tenant and _not_ when authenticating as a Guest user or as a service principal. Please see the [Microsoft Graph Known Issues](https://docs.microsoft.com/en-us/graph/known-issues#groups) documentation.
1044
+ :param pulumi.Input[_builtins.bool] mail_enabled: 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).
1045
+ :param pulumi.Input[_builtins.str] mail_nickname: The mail alias for the group, unique in the organisation. Required for mail-enabled groups. Changing this forces a new resource to be created.
1046
+ :param pulumi.Input[_builtins.str] onpremises_group_type: The on-premises group type that the AAD group will be written as, when writeback is enabled. Possible values are `UniversalDistributionGroup`, `UniversalMailEnabledSecurityGroup`, or `UniversalSecurityGroup`.
1047
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] owners: A set of owners who own this group. Supported object types are Users or Service Principals
1048
+ :param pulumi.Input[_builtins.bool] prevent_duplicate_names: If `true`, will return an error if an existing group is found with the same name. Defaults to `false`.
1049
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] provisioning_options: A set of provisioning options for a Microsoft 365 group. The only supported value is `Team`. See [official documentation](https://docs.microsoft.com/en-us/graph/group-set-options) for details. Changing this forces a new resource to be created.
1050
+ :param pulumi.Input[_builtins.bool] security_enabled: 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).
1051
+ :param pulumi.Input[_builtins.str] theme: 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.
1052
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] types: 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.
1053
+
1054
+ > **Supported Group Types** At present, only security groups and Microsoft 365 groups can be created or managed with this resource. Distribution groups and mail-enabled security groups are not supported. Microsoft 365 groups can be security-enabled.
1055
+ :param pulumi.Input[_builtins.str] visibility: 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.
1056
+
1057
+ > **Group Name Uniqueness** Group names are not unique within Azure Active Directory. Use the `prevent_duplicate_names` argument to check for existing groups if you want to avoid name collisions.
1058
+ :param pulumi.Input[_builtins.bool] writeback_enabled: Whether the group will be written back to the configured on-premises Active Directory when Azure AD Connect is used.
1059
+ """
1060
+ ...
1061
+ @overload
1062
+ def __init__(__self__,
1063
+ resource_name: str,
1064
+ args: GroupWithoutMembersArgs,
1065
+ opts: Optional[pulumi.ResourceOptions] = None):
1066
+ """
1067
+ Manages a group within Azure Active Directory. Does not directly manage or expose members of the group.
1068
+
1069
+ ## API Permissions
1070
+
1071
+ The following API permissions are required in order to use this resource.
1072
+
1073
+ When authenticated with a service principal, this resource requires one of the following application roles: `Group.ReadWrite.All` or `Directory.ReadWrite.All`.
1074
+
1075
+ Alternatively, if the authenticated service principal is also an owner of the group being managed, this resource can use the application role: `Group.Create`.
1076
+
1077
+ If using the `assignable_to_role` property, this resource additionally requires the `RoleManagement.ReadWrite.Directory` application role.
1078
+
1079
+ If specifying owners for a group, which are user principals, this resource additionally requires one of the following application roles: `User.Read.All`, `User.ReadWrite.All`, `Directory.Read.All` or `Directory.ReadWrite.All`
1080
+
1081
+ When authenticated with a user principal, this resource requires one of the following directory roles: `Groups Administrator`, `User Administrator` or `Global Administrator`
1082
+
1083
+ When creating this resource in administrative units exclusively, the directory role `Groups Administrator` is required to be scoped on any administrative unit used. Additionally, it must be possible to read the administrative units being used, which can be granted through the `AdministrativeUnit.Read.All` or `Directory.Read.All` application roles.
1084
+
1085
+ The `external_senders_allowed`, `auto_subscribe_new_members`, `hide_from_address_lists` and `hide_from_outlook_clients` properties can only be configured when authenticating as a user and cannot be configured when authenticating as a service principal. Additionally, the user being used for authentication must be a Member of the tenant where the group is being managed and _not_ a Guest. This is a known API issue; please see the [Microsoft Graph Known Issues](https://docs.microsoft.com/en-us/graph/known-issues#groups) official documentation.
1086
+
1087
+ ## Example Usage
1088
+
1089
+ *Basic example*
1090
+
1091
+ ```python
1092
+ import pulumi
1093
+ import pulumi_azuread as azuread
1094
+
1095
+ current = azuread.get_client_config()
1096
+ example = azuread.GroupWithoutMembers("example",
1097
+ display_name="example",
1098
+ owners=[current.object_id],
1099
+ security_enabled=True)
1100
+ ```
1101
+
1102
+ *Microsoft 365 group*
1103
+
1104
+ ```python
1105
+ import pulumi
1106
+ import pulumi_azuread as azuread
1107
+
1108
+ current = azuread.get_client_config()
1109
+ group_owner = azuread.User("group_owner",
1110
+ user_principal_name="example-group-owner@example.com",
1111
+ display_name="Group Owner",
1112
+ mail_nickname="example-group-owner",
1113
+ password="SecretP@sswd99!")
1114
+ example = azuread.GroupWithoutMembers("example",
1115
+ display_name="example",
1116
+ mail_enabled=True,
1117
+ mail_nickname="ExampleGroup",
1118
+ security_enabled=True,
1119
+ types=["Unified"],
1120
+ owners=[
1121
+ current.object_id,
1122
+ group_owner.object_id,
1123
+ ])
1124
+ ```
1125
+
1126
+ *Group with dynamic membership*
1127
+
1128
+ ```python
1129
+ import pulumi
1130
+ import pulumi_azuread as azuread
1131
+
1132
+ current = azuread.get_client_config()
1133
+ example = azuread.GroupWithoutMembers("example",
1134
+ display_name="MyGroup",
1135
+ owners=[current.object_id],
1136
+ security_enabled=True,
1137
+ types=["DynamicMembership"],
1138
+ dynamic_membership={
1139
+ "enabled": True,
1140
+ "rule": "user.department -eq \\"Sales\\"",
1141
+ })
1142
+ ```
1143
+
1144
+ ## Import
1145
+
1146
+ Groups can be imported using their object ID, e.g.
1147
+
1148
+ ```sh
1149
+ $ pulumi import azuread:index/groupWithoutMembers:GroupWithoutMembers my_group /groups/00000000-0000-0000-0000-000000000000
1150
+ ```
1151
+
1152
+ :param str resource_name: The name of the resource.
1153
+ :param GroupWithoutMembersArgs args: The arguments to use to populate this resource's properties.
1154
+ :param pulumi.ResourceOptions opts: Options for the resource.
1155
+ """
1156
+ ...
1157
+ def __init__(__self__, resource_name: str, *args, **kwargs):
1158
+ resource_args, opts = _utilities.get_resource_args_opts(GroupWithoutMembersArgs, pulumi.ResourceOptions, *args, **kwargs)
1159
+ if resource_args is not None:
1160
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
1161
+ else:
1162
+ __self__._internal_init(resource_name, *args, **kwargs)
1163
+
1164
+ def _internal_init(__self__,
1165
+ resource_name: str,
1166
+ opts: Optional[pulumi.ResourceOptions] = None,
1167
+ administrative_unit_ids: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
1168
+ assignable_to_role: Optional[pulumi.Input[_builtins.bool]] = None,
1169
+ auto_subscribe_new_members: Optional[pulumi.Input[_builtins.bool]] = None,
1170
+ behaviors: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
1171
+ description: Optional[pulumi.Input[_builtins.str]] = None,
1172
+ display_name: Optional[pulumi.Input[_builtins.str]] = None,
1173
+ dynamic_membership: Optional[pulumi.Input[Union['GroupWithoutMembersDynamicMembershipArgs', 'GroupWithoutMembersDynamicMembershipArgsDict']]] = None,
1174
+ external_senders_allowed: Optional[pulumi.Input[_builtins.bool]] = None,
1175
+ hide_from_address_lists: Optional[pulumi.Input[_builtins.bool]] = None,
1176
+ hide_from_outlook_clients: Optional[pulumi.Input[_builtins.bool]] = None,
1177
+ mail_enabled: Optional[pulumi.Input[_builtins.bool]] = None,
1178
+ mail_nickname: Optional[pulumi.Input[_builtins.str]] = None,
1179
+ onpremises_group_type: Optional[pulumi.Input[_builtins.str]] = None,
1180
+ owners: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
1181
+ prevent_duplicate_names: Optional[pulumi.Input[_builtins.bool]] = None,
1182
+ provisioning_options: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
1183
+ security_enabled: Optional[pulumi.Input[_builtins.bool]] = None,
1184
+ theme: Optional[pulumi.Input[_builtins.str]] = None,
1185
+ types: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
1186
+ visibility: Optional[pulumi.Input[_builtins.str]] = None,
1187
+ writeback_enabled: Optional[pulumi.Input[_builtins.bool]] = None,
1188
+ __props__=None):
1189
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
1190
+ if not isinstance(opts, pulumi.ResourceOptions):
1191
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
1192
+ if opts.id is None:
1193
+ if __props__ is not None:
1194
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
1195
+ __props__ = GroupWithoutMembersArgs.__new__(GroupWithoutMembersArgs)
1196
+
1197
+ __props__.__dict__["administrative_unit_ids"] = administrative_unit_ids
1198
+ __props__.__dict__["assignable_to_role"] = assignable_to_role
1199
+ __props__.__dict__["auto_subscribe_new_members"] = auto_subscribe_new_members
1200
+ __props__.__dict__["behaviors"] = behaviors
1201
+ __props__.__dict__["description"] = description
1202
+ if display_name is None and not opts.urn:
1203
+ raise TypeError("Missing required property 'display_name'")
1204
+ __props__.__dict__["display_name"] = display_name
1205
+ __props__.__dict__["dynamic_membership"] = dynamic_membership
1206
+ __props__.__dict__["external_senders_allowed"] = external_senders_allowed
1207
+ __props__.__dict__["hide_from_address_lists"] = hide_from_address_lists
1208
+ __props__.__dict__["hide_from_outlook_clients"] = hide_from_outlook_clients
1209
+ __props__.__dict__["mail_enabled"] = mail_enabled
1210
+ __props__.__dict__["mail_nickname"] = mail_nickname
1211
+ __props__.__dict__["onpremises_group_type"] = onpremises_group_type
1212
+ __props__.__dict__["owners"] = owners
1213
+ __props__.__dict__["prevent_duplicate_names"] = prevent_duplicate_names
1214
+ __props__.__dict__["provisioning_options"] = provisioning_options
1215
+ __props__.__dict__["security_enabled"] = security_enabled
1216
+ __props__.__dict__["theme"] = theme
1217
+ __props__.__dict__["types"] = types
1218
+ __props__.__dict__["visibility"] = visibility
1219
+ __props__.__dict__["writeback_enabled"] = writeback_enabled
1220
+ __props__.__dict__["mail"] = None
1221
+ __props__.__dict__["object_id"] = None
1222
+ __props__.__dict__["onpremises_domain_name"] = None
1223
+ __props__.__dict__["onpremises_netbios_name"] = None
1224
+ __props__.__dict__["onpremises_sam_account_name"] = None
1225
+ __props__.__dict__["onpremises_security_identifier"] = None
1226
+ __props__.__dict__["onpremises_sync_enabled"] = None
1227
+ __props__.__dict__["preferred_language"] = None
1228
+ __props__.__dict__["proxy_addresses"] = None
1229
+ super(GroupWithoutMembers, __self__).__init__(
1230
+ 'azuread:index/groupWithoutMembers:GroupWithoutMembers',
1231
+ resource_name,
1232
+ __props__,
1233
+ opts)
1234
+
1235
+ @staticmethod
1236
+ def get(resource_name: str,
1237
+ id: pulumi.Input[str],
1238
+ opts: Optional[pulumi.ResourceOptions] = None,
1239
+ administrative_unit_ids: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
1240
+ assignable_to_role: Optional[pulumi.Input[_builtins.bool]] = None,
1241
+ auto_subscribe_new_members: Optional[pulumi.Input[_builtins.bool]] = None,
1242
+ behaviors: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
1243
+ description: Optional[pulumi.Input[_builtins.str]] = None,
1244
+ display_name: Optional[pulumi.Input[_builtins.str]] = None,
1245
+ dynamic_membership: Optional[pulumi.Input[Union['GroupWithoutMembersDynamicMembershipArgs', 'GroupWithoutMembersDynamicMembershipArgsDict']]] = None,
1246
+ external_senders_allowed: Optional[pulumi.Input[_builtins.bool]] = None,
1247
+ hide_from_address_lists: Optional[pulumi.Input[_builtins.bool]] = None,
1248
+ hide_from_outlook_clients: Optional[pulumi.Input[_builtins.bool]] = None,
1249
+ mail: Optional[pulumi.Input[_builtins.str]] = None,
1250
+ mail_enabled: Optional[pulumi.Input[_builtins.bool]] = None,
1251
+ mail_nickname: Optional[pulumi.Input[_builtins.str]] = None,
1252
+ object_id: Optional[pulumi.Input[_builtins.str]] = None,
1253
+ onpremises_domain_name: Optional[pulumi.Input[_builtins.str]] = None,
1254
+ onpremises_group_type: Optional[pulumi.Input[_builtins.str]] = None,
1255
+ onpremises_netbios_name: Optional[pulumi.Input[_builtins.str]] = None,
1256
+ onpremises_sam_account_name: Optional[pulumi.Input[_builtins.str]] = None,
1257
+ onpremises_security_identifier: Optional[pulumi.Input[_builtins.str]] = None,
1258
+ onpremises_sync_enabled: Optional[pulumi.Input[_builtins.bool]] = None,
1259
+ owners: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
1260
+ preferred_language: Optional[pulumi.Input[_builtins.str]] = None,
1261
+ prevent_duplicate_names: Optional[pulumi.Input[_builtins.bool]] = None,
1262
+ provisioning_options: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
1263
+ proxy_addresses: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
1264
+ security_enabled: Optional[pulumi.Input[_builtins.bool]] = None,
1265
+ theme: Optional[pulumi.Input[_builtins.str]] = None,
1266
+ types: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
1267
+ visibility: Optional[pulumi.Input[_builtins.str]] = None,
1268
+ writeback_enabled: Optional[pulumi.Input[_builtins.bool]] = None) -> 'GroupWithoutMembers':
1269
+ """
1270
+ Get an existing GroupWithoutMembers resource's state with the given name, id, and optional extra
1271
+ properties used to qualify the lookup.
1272
+
1273
+ :param str resource_name: The unique name of the resulting resource.
1274
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
1275
+ :param pulumi.ResourceOptions opts: Options for the resource.
1276
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] administrative_unit_ids: 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.
1277
+
1278
+ > **Caution** When using the AdministrativeUnitMember resource, or the `members` property of the AdministrativeUnit resource, to manage Administrative Unit membership for a group, you will need to use an `ignore_changes = [administrative_unit_ids]` lifecycle meta argument for the `Group` resource, in order to avoid a persistent diff.
1279
+ :param pulumi.Input[_builtins.bool] assignable_to_role: 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.
1280
+ :param pulumi.Input[_builtins.bool] auto_subscribe_new_members: Indicates whether new members added to the group will be auto-subscribed to receive email notifications. Can only be set for Unified groups.
1281
+
1282
+ > **Known Permissions Issue** The `auto_subscribe_new_members` property can only be set when authenticating as a Member user of the tenant and _not_ when authenticating as a Guest user or as a service principal. Please see the [Microsoft Graph Known Issues](https://docs.microsoft.com/en-us/graph/known-issues#groups) documentation.
1283
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] behaviors: A set of behaviors for a Microsoft 365 group. Possible values are `AllowOnlyMembersToPost`, `HideGroupInOutlook`, `SkipExchangeInstantOn`, `SubscribeMembersToCalendarEventsDisabled`, `SubscribeNewGroupMembers` and `WelcomeEmailDisabled`. See [official documentation](https://docs.microsoft.com/en-us/graph/group-set-options) for more details. Changing this forces a new resource to be created.
1284
+ :param pulumi.Input[_builtins.str] description: The description for the group.
1285
+ :param pulumi.Input[_builtins.str] display_name: The display name for the group.
1286
+ :param pulumi.Input[Union['GroupWithoutMembersDynamicMembershipArgs', 'GroupWithoutMembersDynamicMembershipArgsDict']] dynamic_membership: A `dynamic_membership` block as documented below. Required when `types` contains `DynamicMembership`. Cannot be used with the `members` property.
1287
+ :param pulumi.Input[_builtins.bool] external_senders_allowed: Indicates whether people external to the organization can send messages to the group. Can only be set for Unified groups.
1288
+
1289
+ > **Known Permissions Issue** The `external_senders_allowed` property can only be set when authenticating as a Member user of the tenant and _not_ when authenticating as a Guest user or as a service principal. Please see the [Microsoft Graph Known Issues](https://docs.microsoft.com/en-us/graph/known-issues#groups) documentation.
1290
+ :param pulumi.Input[_builtins.bool] hide_from_address_lists: 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.
1291
+
1292
+ > **Known Permissions Issue** The `hide_from_address_lists` property can only be set when authenticating as a Member user of the tenant and _not_ when authenticating as a Guest user or as a service principal. Please see the [Microsoft Graph Known Issues](https://docs.microsoft.com/en-us/graph/known-issues#groups) documentation.
1293
+ :param pulumi.Input[_builtins.bool] hide_from_outlook_clients: 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.
1294
+
1295
+ > **Known Permissions Issue** The `hide_from_outlook_clients` property can only be set when authenticating as a Member user of the tenant and _not_ when authenticating as a Guest user or as a service principal. Please see the [Microsoft Graph Known Issues](https://docs.microsoft.com/en-us/graph/known-issues#groups) documentation.
1296
+ :param pulumi.Input[_builtins.str] mail: The SMTP address for the group.
1297
+ :param pulumi.Input[_builtins.bool] mail_enabled: 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).
1298
+ :param pulumi.Input[_builtins.str] mail_nickname: The mail alias for the group, unique in the organisation. Required for mail-enabled groups. Changing this forces a new resource to be created.
1299
+ :param pulumi.Input[_builtins.str] object_id: The object ID of the group.
1300
+ :param pulumi.Input[_builtins.str] onpremises_domain_name: The on-premises FQDN, also called dnsDomainName, synchronised from the on-premises directory when Azure AD Connect is used.
1301
+ :param pulumi.Input[_builtins.str] onpremises_group_type: The on-premises group type that the AAD group will be written as, when writeback is enabled. Possible values are `UniversalDistributionGroup`, `UniversalMailEnabledSecurityGroup`, or `UniversalSecurityGroup`.
1302
+ :param pulumi.Input[_builtins.str] onpremises_netbios_name: The on-premises NetBIOS name, synchronised from the on-premises directory when Azure AD Connect is used.
1303
+ :param pulumi.Input[_builtins.str] onpremises_sam_account_name: The on-premises SAM account name, synchronised from the on-premises directory when Azure AD Connect is used.
1304
+ :param pulumi.Input[_builtins.str] onpremises_security_identifier: The on-premises security identifier (SID), synchronised from the on-premises directory when Azure AD Connect is used.
1305
+ :param pulumi.Input[_builtins.bool] onpremises_sync_enabled: Whether this group is synchronised from an on-premises directory (`true`), no longer synchronised (`false`), or has never been synchronised (`null`).
1306
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] owners: A set of owners who own this group. Supported object types are Users or Service Principals
1307
+ :param pulumi.Input[_builtins.str] preferred_language: The preferred language for a Microsoft 365 group, in ISO 639-1 notation.
1308
+ :param pulumi.Input[_builtins.bool] prevent_duplicate_names: If `true`, will return an error if an existing group is found with the same name. Defaults to `false`.
1309
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] provisioning_options: A set of provisioning options for a Microsoft 365 group. The only supported value is `Team`. See [official documentation](https://docs.microsoft.com/en-us/graph/group-set-options) for details. Changing this forces a new resource to be created.
1310
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] proxy_addresses: List of email addresses for the group that direct to the same group mailbox.
1311
+ :param pulumi.Input[_builtins.bool] security_enabled: 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).
1312
+ :param pulumi.Input[_builtins.str] theme: 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.
1313
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] types: 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.
1314
+
1315
+ > **Supported Group Types** At present, only security groups and Microsoft 365 groups can be created or managed with this resource. Distribution groups and mail-enabled security groups are not supported. Microsoft 365 groups can be security-enabled.
1316
+ :param pulumi.Input[_builtins.str] visibility: 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.
1317
+
1318
+ > **Group Name Uniqueness** Group names are not unique within Azure Active Directory. Use the `prevent_duplicate_names` argument to check for existing groups if you want to avoid name collisions.
1319
+ :param pulumi.Input[_builtins.bool] writeback_enabled: Whether the group will be written back to the configured on-premises Active Directory when Azure AD Connect is used.
1320
+ """
1321
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
1322
+
1323
+ __props__ = _GroupWithoutMembersState.__new__(_GroupWithoutMembersState)
1324
+
1325
+ __props__.__dict__["administrative_unit_ids"] = administrative_unit_ids
1326
+ __props__.__dict__["assignable_to_role"] = assignable_to_role
1327
+ __props__.__dict__["auto_subscribe_new_members"] = auto_subscribe_new_members
1328
+ __props__.__dict__["behaviors"] = behaviors
1329
+ __props__.__dict__["description"] = description
1330
+ __props__.__dict__["display_name"] = display_name
1331
+ __props__.__dict__["dynamic_membership"] = dynamic_membership
1332
+ __props__.__dict__["external_senders_allowed"] = external_senders_allowed
1333
+ __props__.__dict__["hide_from_address_lists"] = hide_from_address_lists
1334
+ __props__.__dict__["hide_from_outlook_clients"] = hide_from_outlook_clients
1335
+ __props__.__dict__["mail"] = mail
1336
+ __props__.__dict__["mail_enabled"] = mail_enabled
1337
+ __props__.__dict__["mail_nickname"] = mail_nickname
1338
+ __props__.__dict__["object_id"] = object_id
1339
+ __props__.__dict__["onpremises_domain_name"] = onpremises_domain_name
1340
+ __props__.__dict__["onpremises_group_type"] = onpremises_group_type
1341
+ __props__.__dict__["onpremises_netbios_name"] = onpremises_netbios_name
1342
+ __props__.__dict__["onpremises_sam_account_name"] = onpremises_sam_account_name
1343
+ __props__.__dict__["onpremises_security_identifier"] = onpremises_security_identifier
1344
+ __props__.__dict__["onpremises_sync_enabled"] = onpremises_sync_enabled
1345
+ __props__.__dict__["owners"] = owners
1346
+ __props__.__dict__["preferred_language"] = preferred_language
1347
+ __props__.__dict__["prevent_duplicate_names"] = prevent_duplicate_names
1348
+ __props__.__dict__["provisioning_options"] = provisioning_options
1349
+ __props__.__dict__["proxy_addresses"] = proxy_addresses
1350
+ __props__.__dict__["security_enabled"] = security_enabled
1351
+ __props__.__dict__["theme"] = theme
1352
+ __props__.__dict__["types"] = types
1353
+ __props__.__dict__["visibility"] = visibility
1354
+ __props__.__dict__["writeback_enabled"] = writeback_enabled
1355
+ return GroupWithoutMembers(resource_name, opts=opts, __props__=__props__)
1356
+
1357
+ @_builtins.property
1358
+ @pulumi.getter(name="administrativeUnitIds")
1359
+ def administrative_unit_ids(self) -> pulumi.Output[Optional[Sequence[_builtins.str]]]:
1360
+ """
1361
+ 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.
1362
+
1363
+ > **Caution** When using the AdministrativeUnitMember resource, or the `members` property of the AdministrativeUnit resource, to manage Administrative Unit membership for a group, you will need to use an `ignore_changes = [administrative_unit_ids]` lifecycle meta argument for the `Group` resource, in order to avoid a persistent diff.
1364
+ """
1365
+ return pulumi.get(self, "administrative_unit_ids")
1366
+
1367
+ @_builtins.property
1368
+ @pulumi.getter(name="assignableToRole")
1369
+ def assignable_to_role(self) -> pulumi.Output[Optional[_builtins.bool]]:
1370
+ """
1371
+ 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.
1372
+ """
1373
+ return pulumi.get(self, "assignable_to_role")
1374
+
1375
+ @_builtins.property
1376
+ @pulumi.getter(name="autoSubscribeNewMembers")
1377
+ def auto_subscribe_new_members(self) -> pulumi.Output[_builtins.bool]:
1378
+ """
1379
+ Indicates whether new members added to the group will be auto-subscribed to receive email notifications. Can only be set for Unified groups.
1380
+
1381
+ > **Known Permissions Issue** The `auto_subscribe_new_members` property can only be set when authenticating as a Member user of the tenant and _not_ when authenticating as a Guest user or as a service principal. Please see the [Microsoft Graph Known Issues](https://docs.microsoft.com/en-us/graph/known-issues#groups) documentation.
1382
+ """
1383
+ return pulumi.get(self, "auto_subscribe_new_members")
1384
+
1385
+ @_builtins.property
1386
+ @pulumi.getter
1387
+ def behaviors(self) -> pulumi.Output[Optional[Sequence[_builtins.str]]]:
1388
+ """
1389
+ A set of behaviors for a Microsoft 365 group. Possible values are `AllowOnlyMembersToPost`, `HideGroupInOutlook`, `SkipExchangeInstantOn`, `SubscribeMembersToCalendarEventsDisabled`, `SubscribeNewGroupMembers` and `WelcomeEmailDisabled`. See [official documentation](https://docs.microsoft.com/en-us/graph/group-set-options) for more details. Changing this forces a new resource to be created.
1390
+ """
1391
+ return pulumi.get(self, "behaviors")
1392
+
1393
+ @_builtins.property
1394
+ @pulumi.getter
1395
+ def description(self) -> pulumi.Output[Optional[_builtins.str]]:
1396
+ """
1397
+ The description for the group.
1398
+ """
1399
+ return pulumi.get(self, "description")
1400
+
1401
+ @_builtins.property
1402
+ @pulumi.getter(name="displayName")
1403
+ def display_name(self) -> pulumi.Output[_builtins.str]:
1404
+ """
1405
+ The display name for the group.
1406
+ """
1407
+ return pulumi.get(self, "display_name")
1408
+
1409
+ @_builtins.property
1410
+ @pulumi.getter(name="dynamicMembership")
1411
+ def dynamic_membership(self) -> pulumi.Output[Optional['outputs.GroupWithoutMembersDynamicMembership']]:
1412
+ """
1413
+ A `dynamic_membership` block as documented below. Required when `types` contains `DynamicMembership`. Cannot be used with the `members` property.
1414
+ """
1415
+ return pulumi.get(self, "dynamic_membership")
1416
+
1417
+ @_builtins.property
1418
+ @pulumi.getter(name="externalSendersAllowed")
1419
+ def external_senders_allowed(self) -> pulumi.Output[_builtins.bool]:
1420
+ """
1421
+ Indicates whether people external to the organization can send messages to the group. Can only be set for Unified groups.
1422
+
1423
+ > **Known Permissions Issue** The `external_senders_allowed` property can only be set when authenticating as a Member user of the tenant and _not_ when authenticating as a Guest user or as a service principal. Please see the [Microsoft Graph Known Issues](https://docs.microsoft.com/en-us/graph/known-issues#groups) documentation.
1424
+ """
1425
+ return pulumi.get(self, "external_senders_allowed")
1426
+
1427
+ @_builtins.property
1428
+ @pulumi.getter(name="hideFromAddressLists")
1429
+ def hide_from_address_lists(self) -> pulumi.Output[_builtins.bool]:
1430
+ """
1431
+ 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.
1432
+
1433
+ > **Known Permissions Issue** The `hide_from_address_lists` property can only be set when authenticating as a Member user of the tenant and _not_ when authenticating as a Guest user or as a service principal. Please see the [Microsoft Graph Known Issues](https://docs.microsoft.com/en-us/graph/known-issues#groups) documentation.
1434
+ """
1435
+ return pulumi.get(self, "hide_from_address_lists")
1436
+
1437
+ @_builtins.property
1438
+ @pulumi.getter(name="hideFromOutlookClients")
1439
+ def hide_from_outlook_clients(self) -> pulumi.Output[_builtins.bool]:
1440
+ """
1441
+ 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.
1442
+
1443
+ > **Known Permissions Issue** The `hide_from_outlook_clients` property can only be set when authenticating as a Member user of the tenant and _not_ when authenticating as a Guest user or as a service principal. Please see the [Microsoft Graph Known Issues](https://docs.microsoft.com/en-us/graph/known-issues#groups) documentation.
1444
+ """
1445
+ return pulumi.get(self, "hide_from_outlook_clients")
1446
+
1447
+ @_builtins.property
1448
+ @pulumi.getter
1449
+ def mail(self) -> pulumi.Output[_builtins.str]:
1450
+ """
1451
+ The SMTP address for the group.
1452
+ """
1453
+ return pulumi.get(self, "mail")
1454
+
1455
+ @_builtins.property
1456
+ @pulumi.getter(name="mailEnabled")
1457
+ def mail_enabled(self) -> pulumi.Output[Optional[_builtins.bool]]:
1458
+ """
1459
+ 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).
1460
+ """
1461
+ return pulumi.get(self, "mail_enabled")
1462
+
1463
+ @_builtins.property
1464
+ @pulumi.getter(name="mailNickname")
1465
+ def mail_nickname(self) -> pulumi.Output[_builtins.str]:
1466
+ """
1467
+ The mail alias for the group, unique in the organisation. Required for mail-enabled groups. Changing this forces a new resource to be created.
1468
+ """
1469
+ return pulumi.get(self, "mail_nickname")
1470
+
1471
+ @_builtins.property
1472
+ @pulumi.getter(name="objectId")
1473
+ def object_id(self) -> pulumi.Output[_builtins.str]:
1474
+ """
1475
+ The object ID of the group.
1476
+ """
1477
+ return pulumi.get(self, "object_id")
1478
+
1479
+ @_builtins.property
1480
+ @pulumi.getter(name="onpremisesDomainName")
1481
+ def onpremises_domain_name(self) -> pulumi.Output[_builtins.str]:
1482
+ """
1483
+ The on-premises FQDN, also called dnsDomainName, synchronised from the on-premises directory when Azure AD Connect is used.
1484
+ """
1485
+ return pulumi.get(self, "onpremises_domain_name")
1486
+
1487
+ @_builtins.property
1488
+ @pulumi.getter(name="onpremisesGroupType")
1489
+ def onpremises_group_type(self) -> pulumi.Output[_builtins.str]:
1490
+ """
1491
+ The on-premises group type that the AAD group will be written as, when writeback is enabled. Possible values are `UniversalDistributionGroup`, `UniversalMailEnabledSecurityGroup`, or `UniversalSecurityGroup`.
1492
+ """
1493
+ return pulumi.get(self, "onpremises_group_type")
1494
+
1495
+ @_builtins.property
1496
+ @pulumi.getter(name="onpremisesNetbiosName")
1497
+ def onpremises_netbios_name(self) -> pulumi.Output[_builtins.str]:
1498
+ """
1499
+ The on-premises NetBIOS name, synchronised from the on-premises directory when Azure AD Connect is used.
1500
+ """
1501
+ return pulumi.get(self, "onpremises_netbios_name")
1502
+
1503
+ @_builtins.property
1504
+ @pulumi.getter(name="onpremisesSamAccountName")
1505
+ def onpremises_sam_account_name(self) -> pulumi.Output[_builtins.str]:
1506
+ """
1507
+ The on-premises SAM account name, synchronised from the on-premises directory when Azure AD Connect is used.
1508
+ """
1509
+ return pulumi.get(self, "onpremises_sam_account_name")
1510
+
1511
+ @_builtins.property
1512
+ @pulumi.getter(name="onpremisesSecurityIdentifier")
1513
+ def onpremises_security_identifier(self) -> pulumi.Output[_builtins.str]:
1514
+ """
1515
+ The on-premises security identifier (SID), synchronised from the on-premises directory when Azure AD Connect is used.
1516
+ """
1517
+ return pulumi.get(self, "onpremises_security_identifier")
1518
+
1519
+ @_builtins.property
1520
+ @pulumi.getter(name="onpremisesSyncEnabled")
1521
+ def onpremises_sync_enabled(self) -> pulumi.Output[_builtins.bool]:
1522
+ """
1523
+ Whether this group is synchronised from an on-premises directory (`true`), no longer synchronised (`false`), or has never been synchronised (`null`).
1524
+ """
1525
+ return pulumi.get(self, "onpremises_sync_enabled")
1526
+
1527
+ @_builtins.property
1528
+ @pulumi.getter
1529
+ def owners(self) -> pulumi.Output[Sequence[_builtins.str]]:
1530
+ """
1531
+ A set of owners who own this group. Supported object types are Users or Service Principals
1532
+ """
1533
+ return pulumi.get(self, "owners")
1534
+
1535
+ @_builtins.property
1536
+ @pulumi.getter(name="preferredLanguage")
1537
+ def preferred_language(self) -> pulumi.Output[_builtins.str]:
1538
+ """
1539
+ The preferred language for a Microsoft 365 group, in ISO 639-1 notation.
1540
+ """
1541
+ return pulumi.get(self, "preferred_language")
1542
+
1543
+ @_builtins.property
1544
+ @pulumi.getter(name="preventDuplicateNames")
1545
+ def prevent_duplicate_names(self) -> pulumi.Output[Optional[_builtins.bool]]:
1546
+ """
1547
+ If `true`, will return an error if an existing group is found with the same name. Defaults to `false`.
1548
+ """
1549
+ return pulumi.get(self, "prevent_duplicate_names")
1550
+
1551
+ @_builtins.property
1552
+ @pulumi.getter(name="provisioningOptions")
1553
+ def provisioning_options(self) -> pulumi.Output[Optional[Sequence[_builtins.str]]]:
1554
+ """
1555
+ A set of provisioning options for a Microsoft 365 group. The only supported value is `Team`. See [official documentation](https://docs.microsoft.com/en-us/graph/group-set-options) for details. Changing this forces a new resource to be created.
1556
+ """
1557
+ return pulumi.get(self, "provisioning_options")
1558
+
1559
+ @_builtins.property
1560
+ @pulumi.getter(name="proxyAddresses")
1561
+ def proxy_addresses(self) -> pulumi.Output[Sequence[_builtins.str]]:
1562
+ """
1563
+ List of email addresses for the group that direct to the same group mailbox.
1564
+ """
1565
+ return pulumi.get(self, "proxy_addresses")
1566
+
1567
+ @_builtins.property
1568
+ @pulumi.getter(name="securityEnabled")
1569
+ def security_enabled(self) -> pulumi.Output[Optional[_builtins.bool]]:
1570
+ """
1571
+ 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).
1572
+ """
1573
+ return pulumi.get(self, "security_enabled")
1574
+
1575
+ @_builtins.property
1576
+ @pulumi.getter
1577
+ def theme(self) -> pulumi.Output[Optional[_builtins.str]]:
1578
+ """
1579
+ 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.
1580
+ """
1581
+ return pulumi.get(self, "theme")
1582
+
1583
+ @_builtins.property
1584
+ @pulumi.getter
1585
+ def types(self) -> pulumi.Output[Optional[Sequence[_builtins.str]]]:
1586
+ """
1587
+ 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.
1588
+
1589
+ > **Supported Group Types** At present, only security groups and Microsoft 365 groups can be created or managed with this resource. Distribution groups and mail-enabled security groups are not supported. Microsoft 365 groups can be security-enabled.
1590
+ """
1591
+ return pulumi.get(self, "types")
1592
+
1593
+ @_builtins.property
1594
+ @pulumi.getter
1595
+ def visibility(self) -> pulumi.Output[_builtins.str]:
1596
+ """
1597
+ 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.
1598
+
1599
+ > **Group Name Uniqueness** Group names are not unique within Azure Active Directory. Use the `prevent_duplicate_names` argument to check for existing groups if you want to avoid name collisions.
1600
+ """
1601
+ return pulumi.get(self, "visibility")
1602
+
1603
+ @_builtins.property
1604
+ @pulumi.getter(name="writebackEnabled")
1605
+ def writeback_enabled(self) -> pulumi.Output[Optional[_builtins.bool]]:
1606
+ """
1607
+ Whether the group will be written back to the configured on-premises Active Directory when Azure AD Connect is used.
1608
+ """
1609
+ return pulumi.get(self, "writeback_enabled")
1610
+