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,544 @@
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__ = ['GroupRoleManagementPolicyArgs', 'GroupRoleManagementPolicy']
20
+
21
+ @pulumi.input_type
22
+ class GroupRoleManagementPolicyArgs:
23
+ def __init__(__self__, *,
24
+ group_id: pulumi.Input[_builtins.str],
25
+ role_id: pulumi.Input[_builtins.str],
26
+ activation_rules: Optional[pulumi.Input['GroupRoleManagementPolicyActivationRulesArgs']] = None,
27
+ active_assignment_rules: Optional[pulumi.Input['GroupRoleManagementPolicyActiveAssignmentRulesArgs']] = None,
28
+ eligible_assignment_rules: Optional[pulumi.Input['GroupRoleManagementPolicyEligibleAssignmentRulesArgs']] = None,
29
+ notification_rules: Optional[pulumi.Input['GroupRoleManagementPolicyNotificationRulesArgs']] = None):
30
+ """
31
+ The set of arguments for constructing a GroupRoleManagementPolicy resource.
32
+ :param pulumi.Input[_builtins.str] group_id: The ID of the Azure AD group for which the policy applies.
33
+ :param pulumi.Input[_builtins.str] role_id: The type of assignment this policy coveres. Can be either `member` or `owner`.
34
+ :param pulumi.Input['GroupRoleManagementPolicyActivationRulesArgs'] activation_rules: An `activation_rules` block as defined below.
35
+ :param pulumi.Input['GroupRoleManagementPolicyActiveAssignmentRulesArgs'] active_assignment_rules: An `active_assignment_rules` block as defined below.
36
+ :param pulumi.Input['GroupRoleManagementPolicyEligibleAssignmentRulesArgs'] eligible_assignment_rules: An `eligible_assignment_rules` block as defined below.
37
+ :param pulumi.Input['GroupRoleManagementPolicyNotificationRulesArgs'] notification_rules: A `notification_rules` block as defined below.
38
+ """
39
+ pulumi.set(__self__, "group_id", group_id)
40
+ pulumi.set(__self__, "role_id", role_id)
41
+ if activation_rules is not None:
42
+ pulumi.set(__self__, "activation_rules", activation_rules)
43
+ if active_assignment_rules is not None:
44
+ pulumi.set(__self__, "active_assignment_rules", active_assignment_rules)
45
+ if eligible_assignment_rules is not None:
46
+ pulumi.set(__self__, "eligible_assignment_rules", eligible_assignment_rules)
47
+ if notification_rules is not None:
48
+ pulumi.set(__self__, "notification_rules", notification_rules)
49
+
50
+ @_builtins.property
51
+ @pulumi.getter(name="groupId")
52
+ def group_id(self) -> pulumi.Input[_builtins.str]:
53
+ """
54
+ The ID of the Azure AD group for which the policy applies.
55
+ """
56
+ return pulumi.get(self, "group_id")
57
+
58
+ @group_id.setter
59
+ def group_id(self, value: pulumi.Input[_builtins.str]):
60
+ pulumi.set(self, "group_id", value)
61
+
62
+ @_builtins.property
63
+ @pulumi.getter(name="roleId")
64
+ def role_id(self) -> pulumi.Input[_builtins.str]:
65
+ """
66
+ The type of assignment this policy coveres. Can be either `member` or `owner`.
67
+ """
68
+ return pulumi.get(self, "role_id")
69
+
70
+ @role_id.setter
71
+ def role_id(self, value: pulumi.Input[_builtins.str]):
72
+ pulumi.set(self, "role_id", value)
73
+
74
+ @_builtins.property
75
+ @pulumi.getter(name="activationRules")
76
+ def activation_rules(self) -> Optional[pulumi.Input['GroupRoleManagementPolicyActivationRulesArgs']]:
77
+ """
78
+ An `activation_rules` block as defined below.
79
+ """
80
+ return pulumi.get(self, "activation_rules")
81
+
82
+ @activation_rules.setter
83
+ def activation_rules(self, value: Optional[pulumi.Input['GroupRoleManagementPolicyActivationRulesArgs']]):
84
+ pulumi.set(self, "activation_rules", value)
85
+
86
+ @_builtins.property
87
+ @pulumi.getter(name="activeAssignmentRules")
88
+ def active_assignment_rules(self) -> Optional[pulumi.Input['GroupRoleManagementPolicyActiveAssignmentRulesArgs']]:
89
+ """
90
+ An `active_assignment_rules` block as defined below.
91
+ """
92
+ return pulumi.get(self, "active_assignment_rules")
93
+
94
+ @active_assignment_rules.setter
95
+ def active_assignment_rules(self, value: Optional[pulumi.Input['GroupRoleManagementPolicyActiveAssignmentRulesArgs']]):
96
+ pulumi.set(self, "active_assignment_rules", value)
97
+
98
+ @_builtins.property
99
+ @pulumi.getter(name="eligibleAssignmentRules")
100
+ def eligible_assignment_rules(self) -> Optional[pulumi.Input['GroupRoleManagementPolicyEligibleAssignmentRulesArgs']]:
101
+ """
102
+ An `eligible_assignment_rules` block as defined below.
103
+ """
104
+ return pulumi.get(self, "eligible_assignment_rules")
105
+
106
+ @eligible_assignment_rules.setter
107
+ def eligible_assignment_rules(self, value: Optional[pulumi.Input['GroupRoleManagementPolicyEligibleAssignmentRulesArgs']]):
108
+ pulumi.set(self, "eligible_assignment_rules", value)
109
+
110
+ @_builtins.property
111
+ @pulumi.getter(name="notificationRules")
112
+ def notification_rules(self) -> Optional[pulumi.Input['GroupRoleManagementPolicyNotificationRulesArgs']]:
113
+ """
114
+ A `notification_rules` block as defined below.
115
+ """
116
+ return pulumi.get(self, "notification_rules")
117
+
118
+ @notification_rules.setter
119
+ def notification_rules(self, value: Optional[pulumi.Input['GroupRoleManagementPolicyNotificationRulesArgs']]):
120
+ pulumi.set(self, "notification_rules", value)
121
+
122
+
123
+ @pulumi.input_type
124
+ class _GroupRoleManagementPolicyState:
125
+ def __init__(__self__, *,
126
+ activation_rules: Optional[pulumi.Input['GroupRoleManagementPolicyActivationRulesArgs']] = None,
127
+ active_assignment_rules: Optional[pulumi.Input['GroupRoleManagementPolicyActiveAssignmentRulesArgs']] = None,
128
+ description: Optional[pulumi.Input[_builtins.str]] = None,
129
+ display_name: Optional[pulumi.Input[_builtins.str]] = None,
130
+ eligible_assignment_rules: Optional[pulumi.Input['GroupRoleManagementPolicyEligibleAssignmentRulesArgs']] = None,
131
+ group_id: Optional[pulumi.Input[_builtins.str]] = None,
132
+ notification_rules: Optional[pulumi.Input['GroupRoleManagementPolicyNotificationRulesArgs']] = None,
133
+ role_id: Optional[pulumi.Input[_builtins.str]] = None):
134
+ """
135
+ Input properties used for looking up and filtering GroupRoleManagementPolicy resources.
136
+ :param pulumi.Input['GroupRoleManagementPolicyActivationRulesArgs'] activation_rules: An `activation_rules` block as defined below.
137
+ :param pulumi.Input['GroupRoleManagementPolicyActiveAssignmentRulesArgs'] active_assignment_rules: An `active_assignment_rules` block as defined below.
138
+ :param pulumi.Input[_builtins.str] description: (String) The description of this policy.
139
+ :param pulumi.Input[_builtins.str] display_name: (String) The display name of this policy.
140
+ :param pulumi.Input['GroupRoleManagementPolicyEligibleAssignmentRulesArgs'] eligible_assignment_rules: An `eligible_assignment_rules` block as defined below.
141
+ :param pulumi.Input[_builtins.str] group_id: The ID of the Azure AD group for which the policy applies.
142
+ :param pulumi.Input['GroupRoleManagementPolicyNotificationRulesArgs'] notification_rules: A `notification_rules` block as defined below.
143
+ :param pulumi.Input[_builtins.str] role_id: The type of assignment this policy coveres. Can be either `member` or `owner`.
144
+ """
145
+ if activation_rules is not None:
146
+ pulumi.set(__self__, "activation_rules", activation_rules)
147
+ if active_assignment_rules is not None:
148
+ pulumi.set(__self__, "active_assignment_rules", active_assignment_rules)
149
+ if description is not None:
150
+ pulumi.set(__self__, "description", description)
151
+ if display_name is not None:
152
+ pulumi.set(__self__, "display_name", display_name)
153
+ if eligible_assignment_rules is not None:
154
+ pulumi.set(__self__, "eligible_assignment_rules", eligible_assignment_rules)
155
+ if group_id is not None:
156
+ pulumi.set(__self__, "group_id", group_id)
157
+ if notification_rules is not None:
158
+ pulumi.set(__self__, "notification_rules", notification_rules)
159
+ if role_id is not None:
160
+ pulumi.set(__self__, "role_id", role_id)
161
+
162
+ @_builtins.property
163
+ @pulumi.getter(name="activationRules")
164
+ def activation_rules(self) -> Optional[pulumi.Input['GroupRoleManagementPolicyActivationRulesArgs']]:
165
+ """
166
+ An `activation_rules` block as defined below.
167
+ """
168
+ return pulumi.get(self, "activation_rules")
169
+
170
+ @activation_rules.setter
171
+ def activation_rules(self, value: Optional[pulumi.Input['GroupRoleManagementPolicyActivationRulesArgs']]):
172
+ pulumi.set(self, "activation_rules", value)
173
+
174
+ @_builtins.property
175
+ @pulumi.getter(name="activeAssignmentRules")
176
+ def active_assignment_rules(self) -> Optional[pulumi.Input['GroupRoleManagementPolicyActiveAssignmentRulesArgs']]:
177
+ """
178
+ An `active_assignment_rules` block as defined below.
179
+ """
180
+ return pulumi.get(self, "active_assignment_rules")
181
+
182
+ @active_assignment_rules.setter
183
+ def active_assignment_rules(self, value: Optional[pulumi.Input['GroupRoleManagementPolicyActiveAssignmentRulesArgs']]):
184
+ pulumi.set(self, "active_assignment_rules", value)
185
+
186
+ @_builtins.property
187
+ @pulumi.getter
188
+ def description(self) -> Optional[pulumi.Input[_builtins.str]]:
189
+ """
190
+ (String) The description of this policy.
191
+ """
192
+ return pulumi.get(self, "description")
193
+
194
+ @description.setter
195
+ def description(self, value: Optional[pulumi.Input[_builtins.str]]):
196
+ pulumi.set(self, "description", value)
197
+
198
+ @_builtins.property
199
+ @pulumi.getter(name="displayName")
200
+ def display_name(self) -> Optional[pulumi.Input[_builtins.str]]:
201
+ """
202
+ (String) The display name of this policy.
203
+ """
204
+ return pulumi.get(self, "display_name")
205
+
206
+ @display_name.setter
207
+ def display_name(self, value: Optional[pulumi.Input[_builtins.str]]):
208
+ pulumi.set(self, "display_name", value)
209
+
210
+ @_builtins.property
211
+ @pulumi.getter(name="eligibleAssignmentRules")
212
+ def eligible_assignment_rules(self) -> Optional[pulumi.Input['GroupRoleManagementPolicyEligibleAssignmentRulesArgs']]:
213
+ """
214
+ An `eligible_assignment_rules` block as defined below.
215
+ """
216
+ return pulumi.get(self, "eligible_assignment_rules")
217
+
218
+ @eligible_assignment_rules.setter
219
+ def eligible_assignment_rules(self, value: Optional[pulumi.Input['GroupRoleManagementPolicyEligibleAssignmentRulesArgs']]):
220
+ pulumi.set(self, "eligible_assignment_rules", value)
221
+
222
+ @_builtins.property
223
+ @pulumi.getter(name="groupId")
224
+ def group_id(self) -> Optional[pulumi.Input[_builtins.str]]:
225
+ """
226
+ The ID of the Azure AD group for which the policy applies.
227
+ """
228
+ return pulumi.get(self, "group_id")
229
+
230
+ @group_id.setter
231
+ def group_id(self, value: Optional[pulumi.Input[_builtins.str]]):
232
+ pulumi.set(self, "group_id", value)
233
+
234
+ @_builtins.property
235
+ @pulumi.getter(name="notificationRules")
236
+ def notification_rules(self) -> Optional[pulumi.Input['GroupRoleManagementPolicyNotificationRulesArgs']]:
237
+ """
238
+ A `notification_rules` block as defined below.
239
+ """
240
+ return pulumi.get(self, "notification_rules")
241
+
242
+ @notification_rules.setter
243
+ def notification_rules(self, value: Optional[pulumi.Input['GroupRoleManagementPolicyNotificationRulesArgs']]):
244
+ pulumi.set(self, "notification_rules", value)
245
+
246
+ @_builtins.property
247
+ @pulumi.getter(name="roleId")
248
+ def role_id(self) -> Optional[pulumi.Input[_builtins.str]]:
249
+ """
250
+ The type of assignment this policy coveres. Can be either `member` or `owner`.
251
+ """
252
+ return pulumi.get(self, "role_id")
253
+
254
+ @role_id.setter
255
+ def role_id(self, value: Optional[pulumi.Input[_builtins.str]]):
256
+ pulumi.set(self, "role_id", value)
257
+
258
+
259
+ @pulumi.type_token("azuread:index/groupRoleManagementPolicy:GroupRoleManagementPolicy")
260
+ class GroupRoleManagementPolicy(pulumi.CustomResource):
261
+ @overload
262
+ def __init__(__self__,
263
+ resource_name: str,
264
+ opts: Optional[pulumi.ResourceOptions] = None,
265
+ activation_rules: Optional[pulumi.Input[Union['GroupRoleManagementPolicyActivationRulesArgs', 'GroupRoleManagementPolicyActivationRulesArgsDict']]] = None,
266
+ active_assignment_rules: Optional[pulumi.Input[Union['GroupRoleManagementPolicyActiveAssignmentRulesArgs', 'GroupRoleManagementPolicyActiveAssignmentRulesArgsDict']]] = None,
267
+ eligible_assignment_rules: Optional[pulumi.Input[Union['GroupRoleManagementPolicyEligibleAssignmentRulesArgs', 'GroupRoleManagementPolicyEligibleAssignmentRulesArgsDict']]] = None,
268
+ group_id: Optional[pulumi.Input[_builtins.str]] = None,
269
+ notification_rules: Optional[pulumi.Input[Union['GroupRoleManagementPolicyNotificationRulesArgs', 'GroupRoleManagementPolicyNotificationRulesArgsDict']]] = None,
270
+ role_id: Optional[pulumi.Input[_builtins.str]] = None,
271
+ __props__=None):
272
+ """
273
+ Manage a role policy for an Azure AD group.
274
+
275
+ ## API Permissions
276
+
277
+ The following API permissions are required in order to use this resource.
278
+
279
+ When authenticated with a service principal, this resource requires the `RoleManagementPolicy.ReadWrite.AzureADGroup` Microsoft Graph API permissions.
280
+
281
+ When authenticated with a user principal, this resource requires `Global Administrator` directory role, or the `Privileged Role Administrator` role in Identity Governance.
282
+
283
+ ## Example Usage
284
+
285
+ ```python
286
+ import pulumi
287
+ import pulumi_azuread as azuread
288
+
289
+ example = azuread.Group("example",
290
+ display_name="group-name",
291
+ security_enabled=True)
292
+ member = azuread.User("member",
293
+ user_principal_name="jdoe@example.com",
294
+ display_name="J. Doe",
295
+ mail_nickname="jdoe",
296
+ password="SecretP@sswd99!")
297
+ example_group_role_management_policy = azuread.GroupRoleManagementPolicy("example",
298
+ group_id=example.id,
299
+ role_id="member",
300
+ active_assignment_rules={
301
+ "expire_after": "P365D",
302
+ },
303
+ eligible_assignment_rules={
304
+ "expiration_required": False,
305
+ },
306
+ notification_rules={
307
+ "eligible_assignments": {
308
+ "approver_notifications": {
309
+ "notification_level": "Critical",
310
+ "default_recipients": False,
311
+ "additional_recipients": [
312
+ "someone@example.com",
313
+ "someone.else@example.com",
314
+ ],
315
+ },
316
+ },
317
+ })
318
+ ```
319
+
320
+ ## Import
321
+
322
+ Because these policies are created automatically by Entra ID, they will auto-import on first use.
323
+
324
+ :param str resource_name: The name of the resource.
325
+ :param pulumi.ResourceOptions opts: Options for the resource.
326
+ :param pulumi.Input[Union['GroupRoleManagementPolicyActivationRulesArgs', 'GroupRoleManagementPolicyActivationRulesArgsDict']] activation_rules: An `activation_rules` block as defined below.
327
+ :param pulumi.Input[Union['GroupRoleManagementPolicyActiveAssignmentRulesArgs', 'GroupRoleManagementPolicyActiveAssignmentRulesArgsDict']] active_assignment_rules: An `active_assignment_rules` block as defined below.
328
+ :param pulumi.Input[Union['GroupRoleManagementPolicyEligibleAssignmentRulesArgs', 'GroupRoleManagementPolicyEligibleAssignmentRulesArgsDict']] eligible_assignment_rules: An `eligible_assignment_rules` block as defined below.
329
+ :param pulumi.Input[_builtins.str] group_id: The ID of the Azure AD group for which the policy applies.
330
+ :param pulumi.Input[Union['GroupRoleManagementPolicyNotificationRulesArgs', 'GroupRoleManagementPolicyNotificationRulesArgsDict']] notification_rules: A `notification_rules` block as defined below.
331
+ :param pulumi.Input[_builtins.str] role_id: The type of assignment this policy coveres. Can be either `member` or `owner`.
332
+ """
333
+ ...
334
+ @overload
335
+ def __init__(__self__,
336
+ resource_name: str,
337
+ args: GroupRoleManagementPolicyArgs,
338
+ opts: Optional[pulumi.ResourceOptions] = None):
339
+ """
340
+ Manage a role policy for an Azure AD group.
341
+
342
+ ## API Permissions
343
+
344
+ The following API permissions are required in order to use this resource.
345
+
346
+ When authenticated with a service principal, this resource requires the `RoleManagementPolicy.ReadWrite.AzureADGroup` Microsoft Graph API permissions.
347
+
348
+ When authenticated with a user principal, this resource requires `Global Administrator` directory role, or the `Privileged Role Administrator` role in Identity Governance.
349
+
350
+ ## Example Usage
351
+
352
+ ```python
353
+ import pulumi
354
+ import pulumi_azuread as azuread
355
+
356
+ example = azuread.Group("example",
357
+ display_name="group-name",
358
+ security_enabled=True)
359
+ member = azuread.User("member",
360
+ user_principal_name="jdoe@example.com",
361
+ display_name="J. Doe",
362
+ mail_nickname="jdoe",
363
+ password="SecretP@sswd99!")
364
+ example_group_role_management_policy = azuread.GroupRoleManagementPolicy("example",
365
+ group_id=example.id,
366
+ role_id="member",
367
+ active_assignment_rules={
368
+ "expire_after": "P365D",
369
+ },
370
+ eligible_assignment_rules={
371
+ "expiration_required": False,
372
+ },
373
+ notification_rules={
374
+ "eligible_assignments": {
375
+ "approver_notifications": {
376
+ "notification_level": "Critical",
377
+ "default_recipients": False,
378
+ "additional_recipients": [
379
+ "someone@example.com",
380
+ "someone.else@example.com",
381
+ ],
382
+ },
383
+ },
384
+ })
385
+ ```
386
+
387
+ ## Import
388
+
389
+ Because these policies are created automatically by Entra ID, they will auto-import on first use.
390
+
391
+ :param str resource_name: The name of the resource.
392
+ :param GroupRoleManagementPolicyArgs args: The arguments to use to populate this resource's properties.
393
+ :param pulumi.ResourceOptions opts: Options for the resource.
394
+ """
395
+ ...
396
+ def __init__(__self__, resource_name: str, *args, **kwargs):
397
+ resource_args, opts = _utilities.get_resource_args_opts(GroupRoleManagementPolicyArgs, pulumi.ResourceOptions, *args, **kwargs)
398
+ if resource_args is not None:
399
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
400
+ else:
401
+ __self__._internal_init(resource_name, *args, **kwargs)
402
+
403
+ def _internal_init(__self__,
404
+ resource_name: str,
405
+ opts: Optional[pulumi.ResourceOptions] = None,
406
+ activation_rules: Optional[pulumi.Input[Union['GroupRoleManagementPolicyActivationRulesArgs', 'GroupRoleManagementPolicyActivationRulesArgsDict']]] = None,
407
+ active_assignment_rules: Optional[pulumi.Input[Union['GroupRoleManagementPolicyActiveAssignmentRulesArgs', 'GroupRoleManagementPolicyActiveAssignmentRulesArgsDict']]] = None,
408
+ eligible_assignment_rules: Optional[pulumi.Input[Union['GroupRoleManagementPolicyEligibleAssignmentRulesArgs', 'GroupRoleManagementPolicyEligibleAssignmentRulesArgsDict']]] = None,
409
+ group_id: Optional[pulumi.Input[_builtins.str]] = None,
410
+ notification_rules: Optional[pulumi.Input[Union['GroupRoleManagementPolicyNotificationRulesArgs', 'GroupRoleManagementPolicyNotificationRulesArgsDict']]] = None,
411
+ role_id: Optional[pulumi.Input[_builtins.str]] = None,
412
+ __props__=None):
413
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
414
+ if not isinstance(opts, pulumi.ResourceOptions):
415
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
416
+ if opts.id is None:
417
+ if __props__ is not None:
418
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
419
+ __props__ = GroupRoleManagementPolicyArgs.__new__(GroupRoleManagementPolicyArgs)
420
+
421
+ __props__.__dict__["activation_rules"] = activation_rules
422
+ __props__.__dict__["active_assignment_rules"] = active_assignment_rules
423
+ __props__.__dict__["eligible_assignment_rules"] = eligible_assignment_rules
424
+ if group_id is None and not opts.urn:
425
+ raise TypeError("Missing required property 'group_id'")
426
+ __props__.__dict__["group_id"] = group_id
427
+ __props__.__dict__["notification_rules"] = notification_rules
428
+ if role_id is None and not opts.urn:
429
+ raise TypeError("Missing required property 'role_id'")
430
+ __props__.__dict__["role_id"] = role_id
431
+ __props__.__dict__["description"] = None
432
+ __props__.__dict__["display_name"] = None
433
+ super(GroupRoleManagementPolicy, __self__).__init__(
434
+ 'azuread:index/groupRoleManagementPolicy:GroupRoleManagementPolicy',
435
+ resource_name,
436
+ __props__,
437
+ opts)
438
+
439
+ @staticmethod
440
+ def get(resource_name: str,
441
+ id: pulumi.Input[str],
442
+ opts: Optional[pulumi.ResourceOptions] = None,
443
+ activation_rules: Optional[pulumi.Input[Union['GroupRoleManagementPolicyActivationRulesArgs', 'GroupRoleManagementPolicyActivationRulesArgsDict']]] = None,
444
+ active_assignment_rules: Optional[pulumi.Input[Union['GroupRoleManagementPolicyActiveAssignmentRulesArgs', 'GroupRoleManagementPolicyActiveAssignmentRulesArgsDict']]] = None,
445
+ description: Optional[pulumi.Input[_builtins.str]] = None,
446
+ display_name: Optional[pulumi.Input[_builtins.str]] = None,
447
+ eligible_assignment_rules: Optional[pulumi.Input[Union['GroupRoleManagementPolicyEligibleAssignmentRulesArgs', 'GroupRoleManagementPolicyEligibleAssignmentRulesArgsDict']]] = None,
448
+ group_id: Optional[pulumi.Input[_builtins.str]] = None,
449
+ notification_rules: Optional[pulumi.Input[Union['GroupRoleManagementPolicyNotificationRulesArgs', 'GroupRoleManagementPolicyNotificationRulesArgsDict']]] = None,
450
+ role_id: Optional[pulumi.Input[_builtins.str]] = None) -> 'GroupRoleManagementPolicy':
451
+ """
452
+ Get an existing GroupRoleManagementPolicy resource's state with the given name, id, and optional extra
453
+ properties used to qualify the lookup.
454
+
455
+ :param str resource_name: The unique name of the resulting resource.
456
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
457
+ :param pulumi.ResourceOptions opts: Options for the resource.
458
+ :param pulumi.Input[Union['GroupRoleManagementPolicyActivationRulesArgs', 'GroupRoleManagementPolicyActivationRulesArgsDict']] activation_rules: An `activation_rules` block as defined below.
459
+ :param pulumi.Input[Union['GroupRoleManagementPolicyActiveAssignmentRulesArgs', 'GroupRoleManagementPolicyActiveAssignmentRulesArgsDict']] active_assignment_rules: An `active_assignment_rules` block as defined below.
460
+ :param pulumi.Input[_builtins.str] description: (String) The description of this policy.
461
+ :param pulumi.Input[_builtins.str] display_name: (String) The display name of this policy.
462
+ :param pulumi.Input[Union['GroupRoleManagementPolicyEligibleAssignmentRulesArgs', 'GroupRoleManagementPolicyEligibleAssignmentRulesArgsDict']] eligible_assignment_rules: An `eligible_assignment_rules` block as defined below.
463
+ :param pulumi.Input[_builtins.str] group_id: The ID of the Azure AD group for which the policy applies.
464
+ :param pulumi.Input[Union['GroupRoleManagementPolicyNotificationRulesArgs', 'GroupRoleManagementPolicyNotificationRulesArgsDict']] notification_rules: A `notification_rules` block as defined below.
465
+ :param pulumi.Input[_builtins.str] role_id: The type of assignment this policy coveres. Can be either `member` or `owner`.
466
+ """
467
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
468
+
469
+ __props__ = _GroupRoleManagementPolicyState.__new__(_GroupRoleManagementPolicyState)
470
+
471
+ __props__.__dict__["activation_rules"] = activation_rules
472
+ __props__.__dict__["active_assignment_rules"] = active_assignment_rules
473
+ __props__.__dict__["description"] = description
474
+ __props__.__dict__["display_name"] = display_name
475
+ __props__.__dict__["eligible_assignment_rules"] = eligible_assignment_rules
476
+ __props__.__dict__["group_id"] = group_id
477
+ __props__.__dict__["notification_rules"] = notification_rules
478
+ __props__.__dict__["role_id"] = role_id
479
+ return GroupRoleManagementPolicy(resource_name, opts=opts, __props__=__props__)
480
+
481
+ @_builtins.property
482
+ @pulumi.getter(name="activationRules")
483
+ def activation_rules(self) -> pulumi.Output['outputs.GroupRoleManagementPolicyActivationRules']:
484
+ """
485
+ An `activation_rules` block as defined below.
486
+ """
487
+ return pulumi.get(self, "activation_rules")
488
+
489
+ @_builtins.property
490
+ @pulumi.getter(name="activeAssignmentRules")
491
+ def active_assignment_rules(self) -> pulumi.Output['outputs.GroupRoleManagementPolicyActiveAssignmentRules']:
492
+ """
493
+ An `active_assignment_rules` block as defined below.
494
+ """
495
+ return pulumi.get(self, "active_assignment_rules")
496
+
497
+ @_builtins.property
498
+ @pulumi.getter
499
+ def description(self) -> pulumi.Output[_builtins.str]:
500
+ """
501
+ (String) The description of this policy.
502
+ """
503
+ return pulumi.get(self, "description")
504
+
505
+ @_builtins.property
506
+ @pulumi.getter(name="displayName")
507
+ def display_name(self) -> pulumi.Output[_builtins.str]:
508
+ """
509
+ (String) The display name of this policy.
510
+ """
511
+ return pulumi.get(self, "display_name")
512
+
513
+ @_builtins.property
514
+ @pulumi.getter(name="eligibleAssignmentRules")
515
+ def eligible_assignment_rules(self) -> pulumi.Output['outputs.GroupRoleManagementPolicyEligibleAssignmentRules']:
516
+ """
517
+ An `eligible_assignment_rules` block as defined below.
518
+ """
519
+ return pulumi.get(self, "eligible_assignment_rules")
520
+
521
+ @_builtins.property
522
+ @pulumi.getter(name="groupId")
523
+ def group_id(self) -> pulumi.Output[_builtins.str]:
524
+ """
525
+ The ID of the Azure AD group for which the policy applies.
526
+ """
527
+ return pulumi.get(self, "group_id")
528
+
529
+ @_builtins.property
530
+ @pulumi.getter(name="notificationRules")
531
+ def notification_rules(self) -> pulumi.Output['outputs.GroupRoleManagementPolicyNotificationRules']:
532
+ """
533
+ A `notification_rules` block as defined below.
534
+ """
535
+ return pulumi.get(self, "notification_rules")
536
+
537
+ @_builtins.property
538
+ @pulumi.getter(name="roleId")
539
+ def role_id(self) -> pulumi.Output[_builtins.str]:
540
+ """
541
+ The type of assignment this policy coveres. Can be either `member` or `owner`.
542
+ """
543
+ return pulumi.get(self, "role_id")
544
+